⛑️
hardhatからEtherscanにコードを登録する方法
概要
Etherscanにコードを登録する方法のうち、hardhatから登録する日本語記事が見当たらなかったので実際に登録するにあたってやったことを共有します
コードを登録すると以下のようにetherscanからコントラクトのメソッドを呼び出すことができるようになります。
「直コンでmintする」みたいなのはコレですね。
環境
- 2022/01/23現在
- hardhat 2.8.3
- テストネットで検証
- ほぼ同じ方法でメインネットやpolygonチェーンでも可能
手順
準備
関連ライブラリのインストール
npm install --save-dev @nomiclabs/hardhat-etherscan
hardhat.config.js
の最上部に以下を追記
// hardhat.config.js
require("@nomiclabs/hardhat-etherscan");
// ...
ネットワーク情報の追加
以下を参考に、ネットワーク情報を hardhat.config.js
に追記する
デプロイ
hardhatからテストネットにコントラクトをデプロイする
# NETWORK_NAME は前ステップで追記したネットワーク名に置き換える
npx hardhat run scripts/deploy.js --network NETWORK_NAME
APIキーの発行と登録
- https://etherscan.io/ にて会員登録、ログインする
- https://etherscan.io/myapikey にてAPIKeyを発行する
- API keys created on Etherscan.io can be used for the Kovan, Rinkeby, Ropsten, and Goerli Testnets.
- Etherscan.ioで作成されたAPIキーは、Kovan、Rinkeby、Ropsten、およびGoerliTestnetsで使用できます。
-
hardhat.config.js
を編集
module.exports = {
networks: {
mainnet: { ... }
},
etherscan: {
apiKey: "発行したAPIKey"
}
};
コードの登録
# API_KEY を先程発行した34文字のAPIキーに置き換える
npx hardhat verify --network NETWORK_NAME デプロイしたコントラクトAddress
コンパイル等問題なければ、成功ログが表示される
Nothing to compile
Compiling 1 file with 0.8.4
Successfully submitted source code for contract
contracts/TakaiSushiLimitedMembership.sol:TakaiSushiLimitedMembership at 0x2949c658ED864a79B6DdbbDA3BeEB6Bb4a80ACDA
for verification on the block explorer. Waiting for verification result...
Successfully verified contract TakaiSushiLimitedMembership on Etherscan.
https://rinkeby.etherscan.io/address/0x2949c658ED864a79B6DdbbDA3BeEB6Bb4a80ACDA
今回のサンプル↓
まとめ
- hardhatからetherscanにコードを登録し、直コンで○○をできるようにした
参考リンク
etc
Solidityについてワイワイ学ぶコミュニティ「solidity-jp」を作りました!
いまから学んでみたい/学習中だけどの日本語の情報が少ない/古くて時間がかかっているという方、一緒に学びましょう〜!!
また、TwitterにてSolidityに関する技術情報を発信しています。良ければフォローお願いします!
Discussion