如何解决使用导入的 OpenZeppelin 文件在 Etherscan 上验证和发布合同
我目前正在构建符合 ERC721 的合约并已在此处发布合约:https://ropsten.etherscan.io/address/0xa513bc0a0d3af384fefcd8bbc1cc0c9763307c39 - 我正在尝试验证和发布合约源代码
我的文件的开头看起来像这样:
// SPDX-License-Identifier: MIT
// We will be using solidity version 0.8.4
pragma solidity 0.8.4;
import "@openzeppelin/contracts/token/ERC721/ERC721.sol";
contract ViperToken is ERC721 {
但是,当尝试使用 solidity 单个文件验证和发布时,出现以下错误:
ParserError: Source "@openzeppelin/contracts/token/ERC721/ERC721.sol" not found: File import callback not supported
--> myc:6:1:
|
6 | import "@openzeppelin/contracts/token/ERC721/ERC721.sol"
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
任何人都可以指出我的方向 1. 解决这个问题或 2. 有关如何适当编写具有导入的依赖项的合同的文档,可以使用 Etherscan 进行验证。现在这只是一个单一的文件合同。
解决方法
简单地说,我必须钻进一个兔子洞才能解决这个问题,因为我对 Solidity 还很陌生。
我必须执行以下操作;
- 学习和使用 https://www.trufflesuite.com/ 来设置项目并将我的合同放在那里(使用 Ganache 对任何刚接触 Solidity 的人进行测试也有很大帮助)
- 使用 HD Wallet 提供程序包并按照此处的教程在 ropsten Etherscan https://medium.com/coinmonks/5-minute-guide-to-deploying-smart-contracts-with-truffle-and-ropsten-b3e30d5ee1e
- 最后,使用 truffle-plugin-verify https://github.com/rkalis/truffle-plugin-verify 在 Etherscan 上验证合约
总而言之,我很确定在 Etherscan 网络应用程序中无法验证包含导入文件的合同。
如果有人有兴趣了解我如何构建它,最终产品就在这里https://github.com/lukecurtis93/viper-nft(这只是我在网上找到的一个 CryptoKitties 克隆作为基础并更新了所有内容)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。