Now and Nawoo

NFTの制作記録、技術メモ → C#, Solidity, Blockchain, Bitcoin, Ethereum, NFT

Truffle Verify Plugin の使い方

Truffle Verify Pluginは、EtherscanやPolygonscanにコントラクトのコードを登録するためのプラグイン。 Flattenせずに、ちゃんと複数ファイルで登録してくれる。

インストール

> npm i -D truffle-plugin-verify

Ethescan(Polygonscan)のAPI keyを取得

アカウントを作成して、API Keyを発行する。

secrets.jsonに追加

{
  "mnemonic": "...",
  "polygonscanApiKey": "...",
  "etherscanApiKey": "..."
}

truffle-config.jsに追加

const { mnemonic, polygonscanApiKey, etherscanApiKey } = require("./secrets.json");

(中略)

  api_keys: {
    etherscan: etherscanApiKey,
    polygonscan: polygonscanApiKey,
  },
  plugins: [
    'truffle-plugin-verify'
  ]
};

実行

コントラクト名とネットワークを指定して実行。

> truffle run verify HelloNft --network matic_testnet

しばらく待つと完了する。

Verifying HelloNft
Pass - Verified: https://mumbai.polygonscan.com/address/...#code
Successfully verified 1 contract(s).

エラー

最初に実行したときはエラーが出た。

Fail - Unable to verify

デプロイしたときは、Solidityのバージョンが 0.8.7 だったのが、 その後 0.8.8 にアップデートしていたことが原因だった。

truffle-config.jsでコンパイラバージョンを ^0.8.0 から 0.8.7 に変更したらうまくいった。