方式一:
使用truffle插件: https://github.com/rkalis/truffle-plugin-verify
truffle run verify 合約名稱@合約地址 --network 網路名稱 --debug
注意:需要開啟VPN,然后給CMD也設定代理,否則CMD無法訪問外網會驗證失敗 (每次新開CMD都要執行)
//cmd設定代理
set HTTP_PROXY=http://127.0.0.1:port
set HTTPS_PROXY=http://127.0.0.1:port
方式二:
在etherscan上手動上傳
1、合約檔案如果有匯入的外部合約,需要整合成一個檔案(truffle插件自動生成)truffle-flattener
生成的可能要去掉多余的License描述,如有多個的話
truffle-flattener x.sol > xx.sol
2、選擇部署時正確的編譯版本、是否優化
部署使用0.8.1,代碼中是0.8.0,在上傳時選擇任何一個都驗證失敗,最后選擇的是最新的0.8.4版本直接驗證成功(就很詭異)
3、如果是有建構式,需要填寫ABI-encode,也可以根據ABI JSON自動生成,,沒有就不需要填寫
ABI Encoding Service Online for Solidity Smart Contracts by HashEx
方式三:
remix上的etherscan插件
其實跟truffle插件差不多,也是用API Key去請求,前提是你的合約在remix上編譯的就比較方便,否則不建議使用,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/398461.html
標籤:區塊鏈
上一篇:網路安全--騰訊
