2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

【Ethereum/Turffle】デプロイしたスマートコントラクトをEtherscanでVerifyする方法

Last updated at Posted at 2019-08-22

概要

EthereumにデプロイしたコントラクトをEthescanでVerifyする方法の解説。
Truffleでデプロイした場合を想定しています。
Remixでもできますが、エラーになる可能性が高くなります。

できること

  • Etherscan上でコントラクトとやりとりができるようになる
  • Etherscanでコントラクトのソースコードが公開できる

手順

  1. コントラクトのソースコードをFlattenする
  2. コンストラクタに引数があればエンコードする
  3. EtherscanでVerifyする

1. コントラクトのソースコードをFlattenする

コントラクトコードを単一のファイルにまとめるためのツールをインストール。
-Dで開発用のパッケージとしてインストールします。

$ npm install -D truffle-flattener

コントラクトを単一ファイルにまとめます。
以下のコマンドでコントラクトへのパスを引数に与えます。

$ ./node_modules/.bin/truffle-flattener path/to/your/contract.sol > flat.sol

flat.solというファイルに書き込まれるので、その内容をコピーします。

2. コンストラクタに引数があればエンコードする

コンストラクタに与えた引数を16進数表記にエンコードします。
こちらのサイトでエンコードできます。
赤枠のところで引数を16進数に変換ができます。
変換できたらそれをコピーしておきます。

スクリーンショット 2019-08-22 13.37.58.png

3. EtherscanでVerifyする

EtherscanでVerifyしたいデプロイ済みのコントラクトのページに行きます。
赤枠のところをクリック。
スクリーンショット 2019-08-22 13.42.17.png

ソースコードのタイプにSingle Fileを指定し、コンパイラのバージョンを指定する。
スクリーンショット 2019-08-22 13.44.16.png

赤枠にflat.solの中身をペースト。
青枠にコンストラクタの引数を16進数でエンコードしたものをペースト。
スクリーンショット 2019-08-22 13.46.45.png

Verufy & Publishをクリック。

問題なければ完了!

Verifyに失敗する場合

  • コンパイラのバージョン指定を見直す
  • 最適化(Optimization)のオプションをコンパイル時と合わせる
  • Remixでデプロイした場合はソースコードが異なる可能性がある

Happy Hacking :sunglasses: !

参考

https://michalzalecki.com/how-to-verify-smart-contract-on-etherscan/
https://abi.hashex.org

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?