インストール|ユーザーブック |開発者ドキュメント |クレートドキュメント
Foundry は、Rust で書かれたイーサリアム アプリケーション開発用の超高速でポータブルなモジュール式ツールキットです。
鋳造工場は次のもので構成されます。
Forge : Ethereum テスト フレームワーク (Truffle、Hardhat、DappTools など)。
キャスト: EVM スマート コントラクトと対話し、トランザクションを送信し、チェーン データを取得するためのスイス アーミー ナイフ。
Anvil : Ganache、Hardhat Network に似たローカル Ethereum ノード。
Chisel : 高速、実用的、冗長な堅牢性のある REPL。
Foundry を使い始めるにあたってサポートが必要ですか? ?を読んでください。ファウンドリブック (WIP)!
この本のインストール ガイドを参照してください。
インストール中に問題が発生した場合は、「ヘルプの表示」と「FAQ」を確認してください。
高速かつ柔軟なコンパイル パイプライン
Solidity コンパイラーのバージョンの自動検出とインストール
インクリメンタルコンパイルとキャッシュ: 変更されたファイルのみが再コンパイルされます。
並列コンパイル
非標準のディレクトリ構造のサポート (Hardhat リポジトリなど)
テストは Solidity (DappTools など) で作成されます。
入力の縮小と反例の出力による高速ファジングテスト
tokio のような Rust の非同期インフラストラクチャを活用した高速リモート RPC フォーク モード
柔軟なデバッグログ
DappTools スタイル、 DsTest
の出力されたログを使用
ヘルメット スタイル、一般的なconsole.sol
コントラクトを使用
ポータブル (5 ~ 10MB) で、Nix やその他のパッケージ マネージャーを必要とせずに簡単にインストールできます。
Foundry GitHub アクションを使用した高速 CI 。
Forge は、コンパイル (ethers-solc を利用) とテストの両方で非常に高速です。
以下のベンチマークを参照してください。その他のベンチマークは、v0.2.0 の発表投稿および Convex Shutdown Simulation リポジトリにあります。
テストベンチマーク
プロジェクト | フォージ | Dappツール | 高速化 |
---|---|---|---|
トランスミッション11/ソルメイト | 2.8秒 | 6分34秒 | 140倍 |
リフレサーラボ/geb | 0.4秒 | 23秒 | 57.5倍 |
ラリキャピタル/保管庫 | 0.28秒 | 6.5秒 | 23倍 |
注: 上記のベンチマークでは、コンパイルは常にスキップされました。
コンパイルのベンチマーク
要点: Forge のコンパイルは、関係するキャッシュの量に応じて、一貫して 1.7 ~ 11.3 倍高速になります。
Cast は、コマンド ラインからイーサリアム アプリケーションと対話するためのスイス アーミー ナイフです。
さらに多くのドキュメントはキャスト パッケージにあります。
foundry.toml
の使用Foundry は非常に構成しやすいように設計されています。プロジェクトのルートまたはその他の親ディレクトリにあるfoundry.toml
というファイルを使用して、Foundryを構成できます。利用可能なすべてのオプションについては、config パッケージを参照してください。
構成はプロファイルによって任意に名前空間を指定できます。デフォルトのプロファイルには、 default
という名前が付けられます (「デフォルトのプロファイル」を参照)。
FOUNDRY_PROFILE
環境変数を使用して別のプロファイルを選択できます。 FOUNDRY_SRC
など、 FOUNDRY_
またはDAPP_
という接頭辞が付いた環境変数を使用して、構成の一部をオーバーライドすることもできます。
forge init
基本的な拡張可能なfoundry.toml
ファイルを作成します。
現在の構成を確認するには、 forge config
実行します。基本オプション ( forge init
で設定されたもの) のみを表示するには、 forge config --basic
実行します。これを使用して、 forge config --basic > foundry.toml
で新しいfoundry.toml
ファイルを作成できます。
デフォルトでは、 forge config
には現在選択されているファウンドリ プロファイルとその値が表示されます。また、 forge build
と同じ引数も受け入れます。
Foundry ツールを使用する前にsource .dapprc
を実行すると、 .dapprc
環境変数を再利用できます。
追加のセットアップおよび構成ガイドは、Foundry Book にあります。
VSCodeのセットアップ
シェルのオートコンプリート
貢献ガイドラインをご覧ください。
まず、あなたの質問に対する答えが本や関連する箱の中にあるかどうかを確認してください。
答えが見つからない場合:
サポート テレグラムに参加してサポートを受けるか、
質問に関するディスカッションを開くか、
バグの問題をオープンする
貢献したい場合、または貢献者のディスカッションに参加したい場合は、メインのテレグラムを使用して、Foundry の開発についてチャットすることができます。
Foundry は、テスト フレームワーク DappTools をクリーンルームで書き直したものです。これはどれも、DappHub チームの長年にわたる取り組みがなければ不可能でした。
Matthias Seitz: 私たちのコンパイル パイプラインのバックボーンである ethers-solc を作成しました。また、ethers、特にabigen
マクロへの無数の貢献も行いました。
Rohit Nanurkar: Rust Solidity バージョン マネージャー svm-rs を作成しました。これは、複数の Solidity バージョンを自動検出して管理するために使用します。
Brock Elmore: VM のチートコードを拡張し、スマート コントラクト呼び出しをデバッグするための重要な機能である構造化呼び出しトレースを実装しました。
ethers-rs および Foundry リポジトリとチャットルームへの他のすべての寄稿者。