问题标签 [openzeppelin]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
126 浏览

solidity - 如何在 ropsten etherscan 上查看已部署的 Solidity 合约代码

我一直在关注关于可升级合约的不同教程并部署了一个透明代理,但我在 ropsten etherscan 上看不到合约代码,所以我决定恢复到一个简单的实现(我是一个初学者),只是使用普通的 OpenZeppelin 合约。不幸的是,即使在将我的新合同松露成功部署到 ropsten 测试网之后,我也无法在 ropsten etherscan 上查看合同的源代码,我在这里遗漏了什么吗?提前谢谢!

0 投票
0 回答
305 浏览

ethereum - 如何让你的智能合约接受任何基于 ERC20 的 Token 并获取发送者的地址以及发送的 Token 数量?

我正在尝试创建一个接受 ERC20 代币的合同。并在接受后,获取发送者的地址以及发送了多少令牌。(类似于 msg.sender 和 msg.value 的东西)。然后将其存储在映射中,然后发出事件。我已经使用一个在 ropsten 网络上几乎没有 UNI 代币的帐户设置了元掩码,我将使用它在 remix 中将 UNI 代币转移到我的合约中。所以我希望我的合约接受任何 ERC20 代币,而不仅仅是 UNI。我不想创建任何自定义令牌。

我读到 ERC20 不允许开发人员处理传入的令牌交易。我试图实现 IERC777Recipient,但我无法让它工作。

  1. 我想如果有人可以帮助我设置这个基本合同。
  2. 有没有可以实现的功能,当我们将代币转入合约时会自动调用?
0 投票
2 回答
202 浏览

solidity - 使用 tron 和 tronbox 编译 openzeppelin ERC721 失败

我希望有人可以帮助解决这个问题。我一直在尝试使用 Solidity 和 tronbox 在 Tron 上学习智能合约,但在尝试创建 ERC721 代币时遇到了问题。

我使用 openzeppelin 文档创建了非常简单的 ERC20.sol 合约,但是在 openzeppelin 文档中发现 ERC721 合约出现错误。

https://docs.openzeppelin.com/contracts/4.x/erc721

我最初认为这可能是因为 Solidity 版本,但我已经更改了solidity 并多次安装了适当的 openzeppelin 版本,并且其他版本的 openzeppelin 存在相同的错误。

当前设置:

完整输出:

0 投票
2 回答
332 浏览

openzeppelin - OpenZeppelin ERC721完全导入

我正在尝试重新创建一个 nft 项目,但文件 ERC721Full.sol 不再存在于当前版本的 OpenZeppelin Repo 中。我尝试将 ERC721Full 导入的所有文件导入我的智能合约文件,但我的计算机似乎无法访问这些导入。有谁知道解决方案?

0 投票
1 回答
265 浏览

solidity - `erc1155` 的任何版本的`@openzeppelin/contracts` 是否使用 sol 0.5.0

我安装npm install @openzeppelin/contracts --save-dev使用令牌erc1155,我的项目在所有智能合约的 0.5.0 版本上运行并且erc1155正在使用 0.8.0 并且我收到此错误Error: Truffle is currently using solc 0.5.16, but one or more of your contracts specify "pragma solidity ^0.8.0".Is any version of @openzeppelin/contracts --save-devfor erc1155use sol 0.5.0?

0 投票
2 回答
394 浏览

solidity - Erorr after truffle compile in Erc721 openzeppelin contract

im doing step by step of this article and i had a problem on truffle compile part. I've got this error in cmd:

my contract :

I'd be thankfull if anyone tell me whatis the problem?

0 投票
1 回答
221 浏览

inheritance - 无法从继承 NFT 合约的单独合约访问 ERC721 OpenZeppelin NFT

我正在创建一个继承 openzeppelin ERC721 NFT 智能合约的 NFT。我有一个继承 ERC721 的合同 BookCreation。这个智能合约是我在 mintBook() 函数中铸造 NFT 的地方:

然后我有另一个智能合约,书店,这将是你可以买卖这些 NFT 的市场。

我已经在我的 BookCreation 合约中覆盖了 ERC721 函数 ownerOf(uint256 tokenID)。

然后我在 BookStore 中像这样调用这个函数(我也试过用 super.ownerOf(_tokenID) 和 ownerOf(_tokenID) 代替 (BookCreation.ownerOf(_tokenID)):

我遇到了一个问题,虽然我可以在 BookCreation 智能合约中铸造一本书,并通过在 BookCreation 中调用 ownerOf(tokenId) 来查看此 NFT 在区块链上的反映,但当我尝试在同一 tokenID 上调用 BookStore 中的此函数时调用 BookCreation.ownerOf(tokenId),它无法看到创建的 NFT。

我有点不确定如何能够读取在单独的智能合约中创建的 NFT,任何指导都会有所帮助!

BookCreation 类的其他相关部分:

0 投票
0 回答
109 浏览

solidity - 铸造代币时的众售合同问题

我目前正在处理众包销售合同,但我遇到了一个函数问题,因为错误列表和函数代码已附加,我需要有人告诉我代码中发生了什么以及如何我解决了我在代码中面临的错误。Solidity 版本 ^0.5.0

代码:

错误一:

不允许从“函数()视图返回(合同 IERC20)”到“合同 ERC20Mintable”的显式类型转换。ERC20Mintable erc20Mintable = ERC20Mintable(token);

错误2:

错误 3:

Crowdsale.sol:179:28:TypeError:类型合约 TokenTimelock 不能隐式转换为预期的类型地址。创始人时间锁 = 新代币时间锁(代币,创始人基金,发布时间);

0 投票
0 回答
120 浏览

ethereum - 来自 openzeppelin 的 `__{ContractName}_init_unchained` 的用途

我一直在阅读有关可升级合同的 openzeppelin 文档:https ://docs.openzeppelin.com/contracts/4.x/upgradeable 。

它提到

每个 __{ContractName}_init 函数都嵌入了对所有父初始化器的线性化调用。因此,调用其中两个 init 函数可能会初始化同一个合约两次。

我不太明白为什么这会导致在初始化器修饰符的保护下两次初始化同一个合约。是不是因为父初始化函数可能会收到来自子合约的两个并行调用?

为什么通过定义一个额外的函数__{ContractName}_init_unchained可以缓解这个问题?

感谢任何解释,谢谢!:)

0 投票
0 回答
140 浏览

solidity - 如何将预编译的合约部署到安全帽节点

我有一个代理合约,想替换底层的实现合约。

我已经有了智能合约的 abi 和字节码(从 artifacts 文件夹中检索),所以这就是我所做的:

它工作正常,但我不希望合同存在于我的contracts文件夹中,因此我已将其删除并npx hardhat compile再次运行。

现在,当我再次尝试运行此部署脚本时,安全帽不断抛出此错误:

经过一些尝试错误,似乎与缓存文件夹有关,一旦缓存文件夹中的相关元数据消失,就会弹出此错误,否则不会。

有人可以指导我解决这个问题吗?如何在不将合同留在contracts文件夹中的情况下仅使用 abi 和字节码部署合同?

谢谢!:)

这是我升级合约的代码: