etherscanでのコントラクトベリファイにはLicense指定が必須でコメントは消してもよい
はじめに
etherscanでソースコードのベリファイの動きを勉強しました。そのノートです。
TruffleとOpenZeppelinを使ってコントラクトを作成しました。
ソースはここにおいてあります。
コントラクトデプロイ1
こんなコントラクトをデプロイしました。
pragma solidity >=0.4.21 <0.7.0;
import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
import "@openzeppelin/contracts/token/ERC20/ERC20Detailed.sol";
contract PToken is ERC20, ERC20Detailed {
constructor(uint256 initialSupply) ERC20Detailed("PToken", "PTN", 18) public {
_mint(msg.sender, initialSupply);
}
}
ではベリファイに進みます。
etherscanにアップロードできるファイルの種類は4つ
Standard-Json-Inputって何?
truffleでコンパイルした後にできるjsonではない
build/contracts/PToken.json
をアップロードしてみた
Error! Unable to generate Contract ByteCode and ABI (General Exception, unable to get compiled [bytecode])
エラー!コントラクトのByteCodeおよびABIを生成できません(一般例外、コンパイルされた[bytecode]を取得できません)
こういう形式らしい
そのjsonのmetadataにあるやつがそれっぽい、でもダメだった
これ
parseしてみる
エラー
Unable to process the standard-input-json you uploaded. ErrCode: Only literal contents of the source file, Source using URLS are not supported
アップロードしたstandard-input-jsonを処理できません。 ErrCode:ソースファイルのリテラルコンテンツのみ、URLSを使用するソースはサポートされていません
以下のように、sources[<file_name>].urls
ではなく、sources[<file_name>].content
でなければならないということだと思った。
truffle-flattenerを使ってSingle fileを指定するとできた
これを使うと、インポートとかをさかのぼって一つのファイルにまとめられる
無事ベリファイできた
Contractタブにソースコードが表示された
コントラクトデプロイ2
1とまったく同じSolidityをデプロイした
etherscanではすでにベリファイされている
前のやつと同じバイトコードだから
コントラクトデプロイ3
名前を一文字変えた。PToken
からLToken
にした。コンストラクタ引数は変えていない。
pragma solidity >=0.4.21 <0.7.0;
import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
import "@openzeppelin/contracts/token/ERC20/ERC20Detailed.sol";
contract LToken is ERC20, ERC20Detailed {
constructor(uint256 initialSupply) ERC20Detailed("PToken", "PTN", 18) public {
_mint(msg.sender, initialSupply);
}
}
コントラクトの名前を変えると同一ではなくなる
etherscanの画面がまだベリファイではない。
ベリファイではLicenseが必須項目、コメントの有無はベリファイに影響しない
Licenseは必須項目
LicenseをNoneに指定
コメントを消してアップロード
License Noneと表示される。Licenseの表記がないコントラクトは、昔の時代のものなのかもしれない。
おわりに
コントラクトベリファイは、Single fileを選択する。
全く同じバイトコードのコントラクトは、自動的にベリファイされる。
Licenseの指定は必須。
コントラクトのコメントは消しても問題ない。
Author And Source
この問題について(etherscanでのコントラクトベリファイにはLicense指定が必須でコメントは消してもよい), 我々は、より多くの情報をここで見つけました https://qiita.com/planethouki/items/a06426a2cf7025c478a0著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .