Etherscan

在 Rinkeby etherscan 上驗證代幣合約

  • October 13, 2021

我正在 Rinkeby 上測試我的新代幣合約。合約是使用 Brownie 編譯和部署的。我正在將令牌部署到 Rinkeby,並且它已正確編譯和部署。

但是,當我嘗試在 Etherscan 上驗證我的合約時,它一直失敗並出現以下錯誤:

錯誤!無法生成合約字節碼和 ABI

在原始碼中找到以下 ContractName(s):Context.sol:Context, IERC20.sol:IERC20, Token.sol:Token

但我們無法找到匹配的字節碼 (err_code_2)

我的契約包含多個文件(確切地說是 3 個),我使用的是 Solidity 編譯器版本 0.8.1。

我嘗試使用拜占庭、君士坦丁堡和伊斯坦布爾 EVM 進行編譯和部署。但我不斷收到同樣的錯誤。

在使用 Brownie 進行部署時,我無法使用該publish_source參數,因為這需要 API 密鑰,而且據我所知,Etherscan Rinkeby 沒有 API 密鑰。

我錯過了什麼嗎?還是無法在 Etherscan Rinkeby 上進行驗證?

似乎問題確實是etherscan rinkeby。我在 ropsten 上部署了合約,然後用 etherscan 對其進行了驗證,一切順利,沒有任何問題得到驗證。

即使在設置 brownie 以使用我的 etherscan API 密鑰時也是如此。它總是無法連接到api.rinkeby.etherscan.io. 但是在 ropsten 上沒有問題。

簡短的回答是:您必須在etherscan.io上為主網和其他公共測試網(Ropsten、Rinkeby、Goerli..)創建 API 密鑰。

(獎金)

此外,在嘗試使用位於子目錄中的介面驗證契約時,我遇到了一些問題。

也許不是你的情況,但如果你使用 Truffle 來管理合約部署,有一個有趣的外掛可以自動驗證合約:truffle-plugin-verify

我試過了,效果很好。你基本上需要

  • 通過 npm 安裝 truffle & 外掛
  • 在 Etherscan 上創建 API 密鑰
  • 更新松露配置文件
  • 使用錢包簽署交易以創建合約(例如:@truffle/hdwallet-provider)
  • 遷移,最後驗證合約

引用自:https://ethereum.stackexchange.com/questions/93391