コントラクトをEtherscanで最適化しよう。(verifyを行いましょう)
こんにちは、CryptoGamesの高橋です。
↓4万種類以上のエアドロなどの実績があります。気になる方は是非。
今回の記事は下の記事の続きです。
さて、みなさんのコントラクト、作ったばかりだと、Etherscanで見た時にこんな風になっていませんか?
これは「Verify and Publish」という作業が行われていないためです。
この工程を経ることによって、「Etherscan」上でCodeを読んだり、コントラクトの読み書きができるようになります。
是非まだの方はやってみましょう。
1 Etherscanを見に行こう
まずは、Etherscanを見にいきましょう。
OpenSeaの下の「Details」の「Contract Address」を選択します。
すると、このように「Etherscan」の画面になりました。Polygonの場合は「Polygonscan」になります。
「contract」を選択しましょう。
すると、こんな画面になります。
ここから「Verify and Publish」 という作業が必要になってきます。
では、「Verify and Publish」を選択しましょう。
2 そもそもVerifyって何?(飛ばしても大丈夫です)
ちなみに、そもそもverifyとはどういったもので、なぜこれが必要なのでしょう?
実は、やることは自分が作ったコードなどをコピペして、「verify」を行うだけです。なんでこんな二度手間が必要なんでしょう?
私は一般的にパスワードなどが2回聞かれるのと一緒なのかなと思います。
すでにコントラクトはデプロイしていますが、本当に意図通りのコードになっているのかの確認のために同じコードのverifyが必要なのかなと思います。
これによって、このコントラクトは、少なくとも意図通りのコントラクトであるということが示されることになります。
3 Verifyをしよう
さて、戻りまして、verifyを行っていきましょう。
この赤い枠を選択していくことになります。
一つ一つみていきましょう。
3ー① Please select Compiler Type
まずはコンパイラのタイプが聞かれています。
今回は、下のように「contracts」フォルダ内にある「PurpleEye.sol」という一つのファイルに対してのみ実施しましたので「solidity(single file)」を選択します。
3ー② Please select Compiler Version
次はコンパイラのバージョンです。
Remixを見てみましょう。
このようにバージョンが書かれていますので、「0.8.7+commit.e28d00a7」を選びましょう。
3ー③ Please select Open Source License Type
次はオープンソースのライセンスタイプです。
何を言っているの?という感じかもですが、簡単です。
こんな感じで、コードの一行目に書いてありますので、ここでは「MIT」を選択します。
ちなみにこの部分、コメントにもかかわらず、これがないとどこかのバージョンからか、警告が出るようになりました。
結構大事なものなんですね。
というわけで、全て選択できましたので、「continue」で次に進みましょう。
3ー④ Optimization(最適化)
この新しい画面、ちょっと難しそうですが、大丈夫です。
まずこの「Optimization」についてです。
コンパイラを見てみると、下のように「Enable optimization」にチェックをつけていましたね。
そのため、「Yes」にします。
3ー⑤ Enter the Solidity Contract Code below
なんだか難しそうなんですが、要は、コントラクトのコードを貼り付けてくださいと言っています。
そのため、コードをコピペして、そのままここに貼り付けちゃいましょう。
3ー⑥ Constructor Arguments
おそらく、一番の引っ掛かりポイントがここです。
コンストラクタの引数を入れてください。と書いてあります。
そのため、コンストラクタで引数の設定をしていない場合はここは無視して構いません。
でも引数を設定している場合は、、、ABIって言われても。。。とちょっと泣きそうになるかもしれません。
大丈夫です。デプロイの際にこちらを押してコピーしたのを覚えていますでしょうか?
このコピーしたものは適当な場所に保存してみてください。
なんだか目が痛くなりそうですねw
大事なのは一番下です。
見てみると、突然0が連続しだしたところがありますね。
ここです。
ここから最後までがコンストラクタの引数の部分になります。
最初に入っている値を全て消してからこの0以下の部分をコピペしましょう。
3ー⑦ Verify and Publish
これで全てできましたので「I'm not a robot」にチェックを入れて、「Verify and Publish」 を選択しましょう。
少し待つと。。
こんな風になれば成功です。
4 コントラクトを見てみよう
では、コントラクトを見てみましょう。
このように「Code」「Read Contract」「Write Contract」と出ていれば成功です。
これで、Etherscan上でコントラクトの読み書きができるようになりましたね。
ちなみにその下に「Contract Source Code Verified(Exact Match)」とあるのでコードが完全一致しているよということも書かれているのですね。
いかがだったでしょうか。
Verifyの際の参考にしていただければ幸いです。
サポートをしていただけたらすごく嬉しいです😄 いただけたサポートを励みに、これからもコツコツ頑張っていきます😊