😸

polygonscan(testnet)のverifyをhardhatから行う方法

2022/04/19に公開

日本語の記事が少なかったので、私の備忘録も含めて記載します。
また、タイトルに違和感を覚える方もいるかもしれませんが、多くの人に読んでもらうためにあえてpolygonscanのという文言を入れています。
ご了承ください。

環境

  • hardhat
  • node
  • npx
  • スマートコントラクトはデプロイ済みを想定

やりたいこと

mumbaiにデプロイしたスマートコントラクトを、verify(polygonscan-testnet)したい。

1.polygonscanのsign-up

https://polygonscan.com/

アカウント未作成の方は、上のURLからsign-upしましょう。
すでにアカウントがある方はsign-inしましょう。
テストネットではアカウントを作成できないので、メインネットでアカウントを作成しましょう。

2.APIキーの取得

続いてpolygonscanのAPIキーを発行します

https://polygonscan.com/myapikey

AddからAPIキーを発行します。

3. パッケージをインストール

以下のコマンドで、hardhat-etherscanをインストールします。

npm install --save-dev @nomiclabs/hardhat-etherscan
または
yarn add --dev @nomiclabs/hardhat-etherscan

▼ 一応リンクも貼っておきます
https://hardhat.org/plugins/nomiclabs-hardhat-etherscan.html

4.hardhat.config.jsの編集

※コントラクトはすでにminbaiにデプロイ済みを想定しています。

それでは、hardhat.config.jsを編集します。

先ほどインストールしたパッケージを読み込みます。

require("@nomiclabs/hardhat-waffle"); // これはもとからある
require("@nomiclabs/hardhat-etherscan"); // これを追加

module.exportsetherscanプロパティを追加します。
YOUR_API_KEYを先ほど取得したAPIキーに変更してください。

module.exports = {
    solidity: "0.8.4",
    networks: {
        mumbai: {
            url: process.env.API_URL, // 環境変数から取得しています
            accounts: [process.env.PRIVATE_KEY], // 環境変数から取得しています
        },
    },
    // ここを追加
    etherscan: {
        apiKey: "YOUR_API_KEY",
    },
};

5.hardhatコマンドの実行

以下のコマンドを実行します。
YOUR_CONTRACT_ADDRESSは、デプロイしたコントラクトのアドレスを入れます。

npx hardhat verify YOUR_CONTRACT_ADDRESS --network mumbai

以下の表示が出たらOKです。

Nothing to compile
Successfully submitted source code for contract
...

Successfully verified contract AAA on Etherscan.
https://mumbai.polygonscan.com/address/YOUR_CONTRACT_ADDRESS#code

表示されたURLをクリックすると、verifyが完了しているはずです。


質問等ありましたら、私のTwitterまでメッセージください!
https://twitter.com/totsumaru_dot

Discussion