📝

スマコンをExplore(Etherscan, Polyscan)でVerifyする3つの方法

2023/05/20に公開

ブロックチェーンの良さであるコードの透明性

ブロックチェーンによる恩恵はいくつかあるが、そのうちの一つにコードの透明があると考える。コードの透明性はブロックチェーン開発者のエコシステムにおける重要な仕組みである。
すべてのコードはExploreでVerifyすべき

Remix Pluginを使う方法(ETHのみ)

EthereumでのVerifyであれば一番簡単でおすすめの方法です。ユーザーもAPIキーと初期値をABI encodeしたものを入れるだけなので、敷居が低いと感じています。
https://remix.ethereum.org/

1.EtherscanでAPIキーを取得

https://qiita.com/taijusanagi/items/c34d14767feeb3e131a8

2.RemixでEtherscanのpluginを導入

3.EtherscanのAPIキーを入力

4.コントラクトアドレスやネットワークを設定してVerify

@poanet/solidity-flattenerを使う方法(ETH・MATIC・EVM互換)

EtherscanやPolyscanからファイルを設定して手動でVerifyする方法です。ファイルを設定する際に依存関係の設定がめんどくさいので、すべてのimportを1ファイルに展開して1つのsolファイルとして、設定してverifyするのがおすすめです。

1.以下のgithubをクローンする

https://github.com/poanetwork/solidity-flattener

2.demo/src配下に対象のファイルを設定

demo/src配下に、flat化させたいsolidityファイルを追加する

3.config.jsonを設定

config.json
{
  "inputFilePath": "./demo/src/TestNFT.sol",
  "outputDir": "./out"
}

4.npm startでflat化

5.Explore(Etherscanやpolyscan)からVerify画面に移動

6.ファイル設定はsingleファイルへ

7.flat化したコードを追加してVerify

(最近不調)Remix Flattenを使う方法(ETH・MATIC・EVM互換)

上記のfalt化させてVerifyする方法は、Remixを使用するのが一番簡単でした、

1.Remixからコードをflat化


Remixのファイルを右クリックしてFlattenを選択

2.Explore(Etherscanやpolyscan)からVerify画面に移動

3.ファイル設定はsingleファイルへ

4.flat化したコードを追加してVerify

(おまけ)とりあえず雑にコントラクトが叩きたい人向けにおすすめ

VerifyされてないけどABIは持っている場合に雑にコントラクトを叩きたい人向けに、友人が便利なツールを開発しているので紹介
https://contract-tester.xyz/

Metamaskを接続して、コントラクトアドレスとABIを入れることで雑にコントラクトを叩くことができます。

ABIを入れた状態で(なんならABIを入れなくてもok)他の人に共有することもできるので、メンバー間でコントラクトを叩ける環境を準備するのにおすすめです。

Discussion