【问题标题】:Error Verifying smart contract on EtherScan using Hardhat使用 Hardhat 在 EtherScan 上验证智能合约时出错
【发布时间】:2021-11-15 03:41:26
【问题描述】:

下面是我的智能合约(已经部署)。当我尝试验证它以将代码提交给 Etherscan 时,我收到以下错误,我真的不知道为什么。请问有人可以建议吗?

 npx hardhat verify --network ropsten 0xE9abA803d6a801fce021d0074ae71256C9F24Da4

错误信息:

 Error in plugin @nomiclabs/hardhat-etherscan: More than one contract was found to match the deployed bytecode.
 Please use the contract parameter with one of the following contracts:
 * @openzeppelin/contracts/finance/PaymentSplitter.sol:PaymentSplitter
  * contracts/MyNFTContract.sol: MyNFTContract

 For example:

   hardhat verify --contract contracts/Example.sol:ExampleContract <other args>

 If you are running the verify subtask from within Hardhat instead:

   await run("verify:verify", {
     <other args>,
     contract: "contracts/Example.sol:ExampleContract"
  };

MyNFTContract.sol:

 // SPDX-License-Identifier: MIT
 pragma solidity ^0.8.0;

 import "@openzeppelin/contracts/finance/PaymentSplitter.sol";

 contract MyNFTContract is PaymentSplitter {
     // Addresses of payees
     address[] private _CSPayees = [
         0x23377d974d85C49E9CB6cfdF4e0EED1C0Fc85E6A,
         0x85F68F10d3c13867FD36f2a353eeD56533f1C751
     ];
     // Number of shares allocated per address in this contract.  In same order as _CSPayees
     uint256[] private _CSShares = [1, 2];

     constructor() PaymentSplitter(_CSPayees, _CSShares) {}
 }

我的部署脚本 deploy.js:

 async function main() {
const PaymentSplitter = await ethers.getContractFactory("MyNFTContract")

// Start deployment, returning a promise that resolves to a contract object
const myNFT = await PaymentSplitter.deploy()
console.log("Contract deployed to address:", myNFT.address)
 }

 main()
.then(() => process.exit(0))
.catch((error) => {
    console.error(error)
    process.exit(1)
})

【问题讨论】:

    标签: solidity smartcontracts openzeppelin hardhat


    【解决方案1】:

    Hardhat 在项目中发现了多个合约(您的MyNFTContract 和导入的PaymentSplitter),它不知道您要验证哪个字节码。

    您需要使用--contract 选项指定合同(您要验证的)。

    npx hardhat verify \
    --contract "contracts/MyNFTContract.sol" \
    --network ropsten 0xE9abA803d6a801fce021d0074ae71256C9F24Da4
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-09-12
      • 2021-11-14
      • 2022-12-09
      • 2022-12-24
      • 2022-11-24
      • 2022-01-20
      • 1970-01-01
      • 2021-10-09
      相关资源
      最近更新 更多