You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Hardhat在EtherScan验证智能合约出现多合约匹配错误如何解决

问题原因

你的MyNFTContract合约继承了OpenZeppelin的PaymentSplitter,且未新增任何自定义方法、公开状态变量或逻辑修改,仅在构造函数中给父合约传入了固定的收款地址和份额参数,编译后生成的字节码与原生PaymentSplitter合约高度重合,Hardhat的Etherscan验证插件无法自动识别你需要验证的目标合约,因此触发报错要求手动指定合约。

解决方法

在原有验证命令中添加--contract参数,明确指定你要验证的合约路径与合约名即可,修改后的命令如下:

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

如果执行上述命令后仍有异常,可先执行npx hardhat clean清理本地编译缓存,再重新执行验证命令即可。

补充说明(脚本调用验证任务的情况)

如果你是在Hardhat脚本中调用验证子任务,只需要在传入的参数中新增contract字段即可,示例如下:

await run("verify:verify", {
  address: "0xE9abA803d6a801fce021d0074ae71256C9F24Da4",
  contract: "contracts/MyNFTContract.sol:MyNFTContract"
});

内容的提问来源于stack exchange,提问作者johnDoe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 11:24:04