Etherscan

無法在 etherscan.io 上驗證 Solidity 合約程式碼

  • July 16, 2021

我無法在 Etherscan 上驗證以下契約。混音中沒有錯誤。我嘗試了類似問題的答案中推薦的所有解決方案,它們是:

  • 刪除 pragma 中的 ^
  • 開啟和不開啟優化的編譯合約

在此處輸入圖像描述

該合約目前部署在地址0x113b1D84A5D25b9A921434F8131b71aDa45dAeac

// Version of Solidity compiler this program was written for
pragma solidity ^0.5.14;

// Game contract
contract HoT {
 ...program code...
}

任何想法為什麼會發生這種情況?謝謝!

這些是在此步驟中減少歧義的部署前建議。

問題是無法確定字節碼是如何生成的,因為 pragma 允許靈活性。

如果可能,請檢查您用於編譯的工具,例如solcRemix 或truffle-config.js計算出必須使用的編譯器版本。

如果你不能做到這一點,那就是反複試驗。沒有建構子參數,因此搜尋區域為solidity 0.5.14 及更高版本,有無優化。都試一試。從正式版本開始,因為沒有人應該使用每晚建構進行生產。

Etherscan 將在使用給定參數編譯提供的原始碼時確認合約,並生成區塊鏈上字節碼的逐位精確副本。換句話說,它將重現編譯過程並將您所說的位於該地址的程式碼與實際存在的程式碼進行比較。

希望能幫助到你。

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