見出し画像

Foundryを使って、テストコントラクトのVerifyまでを実行しよう!

本日はFoundryを使って、コントラクトのデプロイ・Verifyまでを実行してみましょう。

0 事前準備について

1 テストアカウントの作成について

テストを行うときは、間違って、実際の資金が使われないよう、テスト用のアカウントで行うのが良いと思います。

テスト用のアカウントを準備してください。

やり方が不明な場合は、こちらをご参照ください。

2 Sepoliaトークンの取得について

本日は、イーサリアムのテストネットである、Sepoliaにデプロイを行います。

事前にSepoliaトークンの取得をお願いします。

やり方が不明な場合は、こちらをご参照ください。

3 EtherscanのAPIキーの取得について

今回は、Verifyまでを自動的に行います。

そのため、事前にEtherscanのAPIキーの取得をお願いします。

やり方が不明な場合は、こちらをご参照ください。

1 Foundryのインストールを行う

では、Foundryのインストールを行いましょう。

こちらから行っていきます。

1 インストールの開始

こちらのコマンドからインストールを開始します。

ターミナルを開き、実行すると、このようになりました。(私のPCはzshなので、そこは変えています。)

2 PATHの反映

PATHが追加されたようなので、「Source」コマンドを打つように書かれています。

このように実行します。

3 インストールの実行

このように、インストールを行うには、シンプルに「foundryup」と入力すると書かれています。

下のように実行することができました。

また、ここで、「forge」「cast」「anvil」「chisel」の4つがインストールされたことが確認できました。

4 エラーが起きた場合について

うまくいかない場合は、こちらのページをご参照ください。

2 プロジェクトを作成しよう

では、実際にプロジェクトを作ってみましょう。

こちらに沿って進めていきます。

1 プロジェクトの作成

では、こちらのコマンドでプロジェクトを作成します。

forge init hello_foundry

なお、できたコントラクトはこちらになります。

2 コンパイルの実行

次のコマンドでコンパイルを行います。

forge build

3 テストの実行

最後に、こちらのコマンドでテストを行います。

(本日は、中身に触れません。)

forge test

ちなみに、こちらがテストのコードです。

3 Sepoliaへのデプロイについて

1 Deployについて

デプロイのやり方は、こちらに沿って進めていきます。

2 SepoliaのRPCの取得について

デプロイに必要なRPCChainlistから取ってくるのが便利だと思います。

任意の「RPC Server Address」を使用します。

3 デプロイを実行しよう

では、「forge create」コマンドで実行してみましょう。

下のように、①RPC URL、②秘密鍵、③デプロイするコントラクトを指定しています。

forge create --rpc-url <your_rpc_url> \
--private-key <your_private_key> \
> src/Counter.sol:Counter

下のように、デプロイが完了しました。

4 エクスプローラで確認しよう

エクスプローラで確認すると、このようにデプロイがされていることが確認できました。

https://sepolia.etherscan.io/address/0x5b109dc0e819369def1c1b7c03c77db57e94ad26

5 引数が必要な場合について

ちなみに、デプロイ時に引数が必要なときは、下のように、
「--constructor-args」で指定します。

6 Verifyも実施しよう

Verifyを実行するには、下のように、「--etherscan-api-key」「--verify」を設定します。

forge create --rpc-url <your_rpc_url> \
    --private-key <your_private_key> \
    --etherscan-api-key <your_etherscan_api_key> \
    --verify \
    src/Counter.sol:MyToken

下のように実行することができました。

エクスプローラを確認すると、このように「Verify」ができていることがわかります。

https://sepolia.etherscan.io/address/0x4ae823518fdba9b31da07fab355053623326cdc3#code

今回は以上です。

サポートをしていただけたらすごく嬉しいです😄 いただけたサポートを励みに、これからもコツコツ頑張っていきます😊