gpt4 book ai didi

ethereum - 尝试使用 brownie 框架将标准 OpenZeppelin ERC777 合约部署到 ganache-cli 时出错

转载 作者:行者123 更新时间:2023-12-05 04:42:26 26 4
gpt4 key购买 nike

我正在使用 brownie 框架和 solidity 熟悉智能合约开发。一开始,我使用 brownie console 来部署一些标准的 OpenZeppelin 代币合约。

我通过直接从他们的文档中复制代码并调整导入以与 brownie 一起使用来做到这一点,如本页所示:https://docs.openzeppelin.com/contracts/3.x/erc777

它适用于 ERC20 和 ERC721 合约。然而,ERC777 总是被还原并给我一个没有错误消息的交易,其中没有任何跟踪方法有效,因为它们不是为部署交易实现的。

ERC777 代币代码(不工作)

// contracts/GLDToken.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.6.0;

import "OpenZeppelin/openzeppelin-contracts@3.0.0/contracts/token/ERC777/ERC777.sol";

contract GLDToken is ERC777 {
constructor(uint256 initialSupply, address[] memory defaultOperators)
public
ERC777("Gold", "GLD", defaultOperators)
{
_mint(msg.sender, initialSupply, "", "");
}
}

ERC20 代币代码(工作中)

// contracts/TestToken.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.6.0;

import "OpenZeppelin/openzeppelin-contracts@3.0.0/contracts/token/ERC20/ERC20.sol";

contract TestToken is ERC20 {
constructor(uint256 initialSupply) public ERC20("Gold", "GLD") {
_mint(msg.sender, initialSupply);
}
}

在 Brownie 控制台中输出

>>> t1 = TestToken.deploy(1e21, {'from': accounts[0]})
Transaction sent: 0x33de3fadb7ccf2dd8b3841365ad88190c3486a803f6ea30c04ef8c0111ec9cbd
Gas price: 0.0 gwei Gas limit: 6721975 Nonce: 2
TestToken.constructor confirmed Block: 4 Gas used: 721166 (10.73%)
TestToken deployed at: 0x8c81630387e9507739fCeB6cbB14Ea1Da11D2339

>>> t2 = GLDToken.deploy(1e21, [], {'from': accounts[1]})
Transaction sent: 0xca91d510e7a54099182fe218ff0ec55c62ccb06227afbe9d9497790e35776651
Gas price: 0.0 gwei Gas limit: 6721975 Nonce: 0
GLDToken.constructor confirmed (reverted) Block: 5 Gas used: 260948 (3.88%)

我还尝试在列表中为默认代币运营商输入一个有效地址(已部署的运营商合约),该地址作为第二个参数传递给 GLDToken 的部署函数。不幸的是,这没有任何区别。

我已经用尽了部署函数的所有可能性,但没有得到更多的调试信息。有没有人遇到过类似的问题,或者知道如何进一步调试?任何帮助将不胜感激!

最佳答案

我在使用 openzeppelin 的 ERC777 合约时遇到了类似的问题。我在网上找不到足够的答案,所以我想分享对我有用的东西。我提供了契约(Contract)的平面文件。在我的第 772 行:IERC1820Registry 内部常量 _ERC1820_REGISTRY = IERC1820Registry(0x1820a4B7618BdE71Dce8cdc73aAB6C95905faD24);

我在本地部署了一个 ERC1820 注册表并替换了那个地址。

Registry

然后我能够部署 ERC777。

希望有用并有所帮助。

关于ethereum - 尝试使用 brownie 框架将标准 OpenZeppelin ERC777 合约部署到 ganache-cli 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69855481/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com