レッスン10 — Foundry — Rust EVMツールチェイン
問い
Foundry = Rust 製の Solidity 開発ツールチェイン。forge(テスト + ビルド)/ cast(chain CLI)/ anvil(ローカルノード)/ chisel(Solidity REPL)の 4 binary、すべて Revm を内部で使う。Hardhat / Truffle が JS だったところを、Foundry は Rust ネイティブで 20-30 倍速い。
原理(最小モデル)
- 4 binary.
forge(テスト + コンパイル)/cast(curl + jq for EVM)/anvil(local node、--fork-urlで mainnet fork)/chisel(Solidity REPL)。 foundryupでインストール.curl -L https://foundry.paradigm.xyz | bash && foundryupの 1 行、ツールチェイン全体を更新。forge test= Solidity 版cargo test..t.solファイル +test*関数を自動発見、in-process REVM で sub-second フィードバック。- Cheatcodes = precompile.
vm.warp/vm.deal/vm.prankがアドレス0x71097...の precompile call、Hardhat のevm_snapshotJSON-RPC とは同一プロセス + IPC なしで根本差。 - Foundry を極めるコース(中級). 規律の transfer(Rust proptest! → forge fuzz / forge invariant、Capstone で
InsuranceFund2 言語証明)、本レッスンはその入口。
具体例 + ステップで組み立てる
Foundry — Rust EVMツールチェイン(導線)
Foundry は Reth / Revm / Alloy と同じ Rust EVM 系譜のツールチェインで、主に次の 4 つから成る。
| ツール | 役割 |
|---|---|
| forge | Solidity の build / test |
| cast | RPC / calldata / storage の検査 |
| anvil | ローカルノード(fork 含む) |
| chisel | Solidity REPL |
最小セットアップ:
curl -L https://foundry.paradigm.xyz | bash
foundryup
forge init counter && cd counter
forge test
ここで理解すべき要点は 1 つだけ: forge test は Revm の上で実行される。
つまり Foundry は、ノード開発と分断された別世界ではなく、同じ実行基盤の開発者向けインターフェースである。
この先の学習導線
- 詳細な Foundry 全体像:
/courses/mastering-foundry-ja/lessons/foundry-orientation-ja - Cheatcode の内部機構:
/courses/mastering-foundry-ja/lessons/foundry-anvil-cheatcodes-ja - 実務レベルのテスト規律: fuzz / invariant / cheatcode は Foundry 本編へ
テスト観点(このページで最低限)
Foundry テストの型は 3 つだけ覚える:
- unit(
forge test) - fuzz(入力空間の探索)
- invariant(呼び出し順序を跨ぐ保存則)
最小サイクル:
forge test
forge test -vvv
forge snapshot
本番前の最低基準:
- 失敗パスを
vm.expectRevertで確認 - 重要イベントを
vm.expectEmitで確認 - 算術を含む public 入力を fuzz
- 会計保存則を invariant で確認
ここから先(重複回避のため専用コースへ)
- テスト規律の全体像:
/courses/mastering-foundry-ja/lessons/foundry-orientation-ja - fuzz 実践:
/courses/mastering-foundry-ja/lessons/foundry-forge-fuzz-ja - invariant 実践:
/courses/mastering-foundry-ja/lessons/foundry-forge-invariant-ja - cheatcode / fork 実践:
/courses/mastering-foundry-ja/lessons/foundry-anvil-cheatcodes-ja
まとめ(3行)
- Foundry = Rust 製 Solidity ツールチェイン、4 binary(forge / cast / anvil / chisel)、内部で Revm 使用、JS 系(Hardhat / Truffle)より 20-30 倍速い。
forge test=cargo test等価、in-process REVM、cheatcode は precompile(vm.warp/vm.deal/vm.prank等)。- 中級 Foundry コースで規律の transfer を深掘り、次は Fundamentals まとめクイズ。