如何使用Hardhat在Arbiscan上验证合约?对应配置报错如何解决?
Hardhat Arbitrum Rinkeby链Arbiscan合约验证报错解决方案
报错核心原因:@nomiclabs/hardhat-etherscan 旧版本未内置Arbitrum系列网络的API端点映射,仅默认支持Etherscan生态的网络配置,因此识别ChainID 421611(Arbitrum Rinkeby)时会触发找不到对应端点的错误。
具体修复步骤
- 补充customChains自定义网络配置
在hardhat.config.js的etherscan配置项中,新增customChains字段手动指定Arbitrum Rinkeby的API端点,完整配置示例如下:
etherscan: { apiKey: { arbitrumTestnet: process.env.ARBISCAN_APIKEY }, customChains: [ { network: "arbitrum_rinkeby", chainId: 421611, urls: { apiURL: "https://api-testnet.arbiscan.io/api", browserURL: "https://testnet.arbiscan.io" } } ] }
- 确认网络配置参数匹配
检查hardhat.config.js中networks字段下的arbitrum_rinkeby配置,确保chainId严格为421611,和customChains中的配置保持一致:
networks: { arbitrum_rinkeby: { url: "你的Arbitrum Rinkeby RPC节点地址", chainId: 421611, accounts: [process.env.WALLET_PRIVATE_KEY] } }
- 核对API密钥有效性
使用的API密钥需为Arbiscan平台独立申请的密钥,和Etherscan平台的密钥不通用,不可直接混用Etherscan的API密钥。 - 执行验证命令时指定对应网络
验证命令需明确指定网络参数,示例如下:npx hardhat verify --network arbitrum_rinkeby 合约部署地址 构造函数入参
内容的提问来源于stack exchange,提问作者hiep ninh
相关产品推荐
相关产品推荐

