5 在Sepolia上验证合约报错:hardhat-verify found one or more errors during the verification process

执行以下命令验证合约:
hardhat verify --network Sepolia 0x64f632b88513918915a95f96fb2a83dd259a8e60

报错提示如下:
Successfully verified contract MyERC20V1 on Sourcify.
https://repo.sourcify.dev/contracts/full_match/11155111/0x64f632b88513918915a95f96fb2a83dd259a8e60/
hardhat-verify found one or more errors during the verification process:

Etherscan:
ReadableStream is not defined

请先 登录 后评论

3 个回答

Tiny熊
  擅长:智能合约,以太坊

大概率是网络问题

请先 登录 后评论
Wade - Footprint Analytics CTO
  擅长:数据分析,GameFi,NFT

是不是你的Node.js 版本,或者依赖库的问题

请先 登录 后评论
Ric Li C

在使用 Hardhat 验证合约时遇到 ReadableStream is not defined 错误,通常是因为环境设置不当或使用了不兼容的库。以下是一些解决此问题的建议:

  1. 检查 Node.js 版本
    确保你使用的 Node.js 版本是最新的,因为某些较旧的版本可能不支持最新的特性。建议使用 Node.js 14.x 或更高版本。

  2. 更新 Hardhat 和插件
    检查并更新 Hardhat 及其相关插件,确保你使用的是最新版本。这可以通过以下命令完成:

bash

npm update --save-dev hardhat
npm update --save-dev @nomiclabs/hardhat-etherscan
  1. 环境配置
    确保你的 hardhat.config.js 文件中正确配置了 Etherscan API 密钥。示例配置如下:

javascript

require('@nomiclabs/hardhat-etherscan');

module.exports = {
  solidity: "0.8.0",
  networks: {
    sepolia: {
      url: `https://sepolia.infura.io/v3/YOUR_INFURA_PROJECT_ID`,
      accounts: [`0x${YOUR_PRIVATE_KEY}`]
    }
  },
  etherscan: {
    apiKey: {
      sepolia: "YOUR_ETHERSCAN_API_KEY"
    }
  }
};

  1. 使用正确的合约地址
    确保在验证时使用的合约地址是正确的。你可以通过 Etherscan 或类似的区块链浏览器确认合约地址。

  2. 检查合约的 ABI 和源代码
    确保合约的 ABI 和源代码与部署时使用的一致。若源代码存在更改,验证也会失败。

  3. 调试信息输出
    运行验证命令时,可以使用 --debug 标志获取更详细的输出信息,帮助排查问题:

bash

npx hardhat verify --network sepolia --debug 0x64f632b88513918915a95f96fb2a83dd259a8e60

  1. Alternative Verification Tool
    如果问题依然存在,可以考虑使用 Sourcify 进行合约验证,方法如下:

    访问 Sourcify 并手动上传合约代码进行验证。

请先 登录 后评论
  • 3 关注
  • 0 收藏,1882 浏览
  • study888 提出于 2024-05-10 13:56