前提条件
Foundryがインストールされていることを確認します。以下のコマンドを実行してください:1.2.3-stable です。このバージョン以降を使用してください。
Foundryがまだインストールされていない場合は、以下のコマンドを実行してインストールします:
Foundryのインストールには他のオプションもあります。
Foundryインストールドキュメント を参照してください。
EVMテストネット資金は Injectiveテストネットfaucet からリクエストできます。
秘密鍵の取り扱いには注意が必要です。
ここに記載されている手順は、ローカル開発とテストネットには十分です。
しかし、メインネットで使用する秘密鍵には十分なセキュリティではありません。
メインネットでは鍵のセキュリティに関するベストプラクティスに従い、メインネットと他のネットワーク間で同じ鍵/アカウントを再利用しないでください。
新しいFoundryプロジェクトのセットアップ
gitを使用してデモリポジトリをクローンします。プロジェクトはすでに完全にセットアップされています。forge-std ライブラリをインストールします。
プロジェクト構造の確認
コードエディタ/IDEでリポジトリを開き、ディレクトリ構造を確認しましょう。foundry.toml ファイルは、Injective EVMテストネットに接続するよう事前に設定されています。
続行する前に、Injectiveテストネットアカウントの秘密鍵を提供するだけです。
以下のコマンドを入力して秘密鍵をインポートし、injTest という名前のアカウントに保存します:
これにより、秘密鍵の暗号化バージョンが
~/.foundry/keystores に保存され、
後続のコマンドで --account CLIフラグを使用してアクセスできます。スマートコントラクトの編集
このデモに含まれるスマートコントラクトは非常にシンプルです。以下の機能を持っています:- 数値である
valueを1つ保存します。 value()クエリメソッドを公開します。increment(num)トランザクションメソッドを公開します。
src/Counter.sol
スマートコントラクトのコンパイル
以下のコマンドを実行します:foundry.toml ファイルで設定されたSolidityコンパイラ (solc) のバージョンを自動的にダウンロードして実行します。
コンパイル出力の確認
コンパイラが完了すると、プロジェクトディレクトリに追加のディレクトリが表示されます:Counter.json ファイル (out/Counter.sol/Counter.json) を開きます。
その中に、abi と bytecode フィールドを含むコンパイラ出力が表示されます。
これらのアーティファクトは、後のすべてのステップ(テスト、デプロイ、検証、インタラクション)で使用されます。
