メインコンテンツへスキップ

前提条件

以下のコマンドを実行して、Foundry がインストールされていることを確認してください:
forge --version
このチュートリアルで使用したバージョンは 1.2.3-stable です。チュートリアルに沿って進める際は、このバージョン以降を使用してください。 まだ Foundry をインストールしていない場合は、以下のコマンドを実行してインストールしてください:
curl -L https://foundry.paradigm.xyz | bash
Foundry のインストール方法は他にもあります。 Foundry インストールドキュメントを参照してください。
ウォレットと、Testnet INJ で資金が入ったアカウントが必要です。
Injective Testnet faucet から EVM testnet の資金をリクエストできます。
アカウントを作成したら、このチュートリアルを完了するために必要になるため、秘密鍵をアクセスしやすい場所にコピーしておいてください。
秘密鍵は慎重に取り扱ってください。 ここでの手順はローカル開発および Testnet には十分と考えられます。 しかし、Mainnet で使用する秘密鍵にはセキュリティが十分ではありません。 Mainnet ではキーセキュリティのベストプラクティスに従い、Mainnet と他のネットワーク間で同じキー/アカウントを再利用しないようにしてください。

新しい Foundry プロジェクトのセットアップ

git を使用してデモリポジトリをクローンします。プロジェクトは既に完全にセットアップされています。
git clone https://github.com/injective-dev/foundry-inj
cd foundry-inj
このプロジェクトで使用されるユーティリティ関数を提供する forge-std ライブラリをインストールします。
forge install foundry-rs/forge-std

プロジェクト構成の確認

コードエディタ/IDE でリポジトリを開き、ディレクトリ構造を確認してください。
foundry-inj/
  src/
    Counter.sol → smart contract の Solidity コード
  test/
    Counter.t.sol → テストケース
  foundry.toml → 設定ファイル
foundry.toml ファイルは、Injective EVM Testnet に接続するよう既に設定されています。 次に進む前に必要なのは、Injective Testnet アカウントの秘密鍵を設定することだけです。 以下のコマンドを入力して秘密鍵をインポートし、injTest という名前のアカウントとして保存します:
cast wallet import injTest --interactive
これにより、秘密鍵の入力を求められ、さらにこのアカウントを使用するたびに入力する必要があるパスワードの設定も求められます。 先ほど作成して資金を入金したアカウントの秘密鍵を使用してください(例:Injective Testnet faucet 経由)。 秘密鍵やパスワードを入力またはペーストしても、ターミナルには何も表示されないことに注意してください。 出力は以下のようになります:
Enter private key:
Enter password:
`injTest` keystore was saved successfully. Address: 0x58f936cb685bd6a7dc9a21fa83e8aaaf8edd5724
これにより、秘密鍵の暗号化されたバージョンが ~/.foundry/keystores に保存され、 以降のコマンドでは --account CLI フラグを使用してアクセスできます。

smart contract の編集

このデモに含まれている smart contract は非常にシンプルです。以下の機能があります:
  • 数値である value を1つ格納します。
  • value() クエリメソッドを公開します。
  • increment(num) トランザクションメソッドを公開します。
ファイルを開いてください:src/Counter.sol
// SPDX-License-Identifier: MIT
pragma solidity 0.8.28;

contract Counter {
    uint256 public value = 0;

    function increment(uint256 num) external {
        value += num;
    }
}

smart contract のコンパイル

以下のコマンドを実行してください:
forge build
Foundry は foundry.toml ファイルで設定された Solidity コンパイラ(solc)のバージョンを自動的にダウンロードして実行します。

コンパイル出力の確認

コンパイラが完了すると、プロジェクトディレクトリに追加のディレクトリが表示されます:
foundry-inj/
  cache/
    ...
  out/
    build-info/
      ...
    Counter.sol/
        Counter.json → このファイルを開いてください
Counter.json ファイル(out/Counter.sol/Counter.json)を開いてください。 その中に、abibytecode フィールドを含むコンパイラの出力が表示されます。 これらのアーティファクトは、以降のすべてのステップ(テスト、デプロイ、検証、およびインタラクション)で使用されます。

次のステップ

Foundry プロジェクトのセットアップと smart contract のコンパイルが完了しました。次は smart contract のテストを行いましょう! 次のチュートリアル Foundry を使用した smart contract のテスト に進んでください。