安裝|使用者手冊 |開發者文檔 |板條箱文檔
Foundry 是一個使用 Rust 編寫的用於以太坊應用程式開發的速度極快、可移植且模組化的工具包。
鑄造廠包括:
Forge :以太坊測試框架(如 Truffle、Hardhat 和 DappTools)。
演員:用於與 EVM 智能合約互動、發送交易和獲取鏈資料的瑞士軍刀。
Anvil :本地以太坊節點,類似 Ganache、Harhat 網路。
Chisel :快速、實用且冗長的可靠性 REPL。
需要 Foundry 入門協助嗎?閱讀?鑄造書籍(WIP)!
請參閱書中的安裝指南。
如果您在安裝時遇到任何問題,請查看取得協助和常見問題。
快速靈活的編譯管道
自動 Solidity 編譯器版本偵測與安裝
增量編譯和快取:僅重新編譯更改的文件
平行編譯
非標準目錄結構支援(例如 Hardhat 儲存庫)
測試是用 Solidity 編寫的(就像在 DappTools 中一樣)
透過縮小輸入和列印反例進行快速模糊測試
快速遠端 RPC 分叉模式,利用 Rust 的非同步基礎設施(如 tokio)
靈活的調試日誌記錄
DappTools 風格,使用DsTest
發出的日誌
Hardhat 風格,使用流行的console.sol
合約
便攜(5-10MB)且易於安裝,無需 Nix 或任何其他套件管理器
使用 Foundry GitHub 操作實現快速 CI 。
Forge 在編譯(利用 ethers-solc)和測試方面都非常快。
請參閱下面的基準。更多基準可以在 v0.2.0 公告貼文和凸關閉模擬儲存庫中找到。
測試基準
專案 | 鍛造 | Dapp工具 | 加速比 |
---|---|---|---|
傳輸11/solmate | 2.8秒 | 6分34秒 | 140倍 |
反射板實驗室/geb | 0.4秒 | 23秒 | 57.5倍 |
Rari-資本/金庫 | 0.28秒 | 6.5秒 | 23x |
注意:在上面的基準測試中,編譯總是被跳過
編譯基準
重點:Forge 編譯始終快 1.7-11.3 倍,具體取決於所涉及的快取量。
Cast 是一把瑞士軍刀,用於透過命令列與以太坊應用程式進行互動。
更多文件可以在演員包中找到。
foundry.toml
Foundry 被設計得非常可配置。您可以使用專案根目錄或任何其他父目錄中名為foundry.toml
的檔案來設定 Foundry。有關所有可用選項,請參閱配置套件。
配置可以透過設定檔任意命名。預設設定檔名為default
(請參閱「預設設定檔」)。
您可以使用FOUNDRY_PROFILE
環境變數選擇另一個設定檔。您也可以使用FOUNDRY_
或DAPP_
前綴的環境變數(例如FOUNDRY_SRC
覆寫部分配置。
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
Shell 自動補全
請參閱我們的貢獻指南。
首先,看看你的問題的答案是否可以在書中或相關的盒子中找到。
如果答案不存在:
加入支援 Telegram 以獲得幫助,或者
針對您的問題展開討論,或者
開啟一個包含錯誤的問題
如果您想貢獻,或關注貢獻者討論,您可以使用我們的主電報與我們討論 Foundry 的發展!
Foundry 是測試框架 DappTools 的全新重寫。如果沒有 DappHub 團隊多年來的努力,這一切都是不可能的。
Matthias Seitz:創建了 ethers-solc,它是我們編譯管道的支柱,以及對 ethers 的無數貢獻,特別是abigen
宏。
Rohit Narurkar:建立了 Rust Solidity 版本管理器 svm-rs,我們用它來自動偵測和管理多個 Solidity 版本。
Brock Elmore:用於擴展虛擬機器的作弊程式碼並實現結構化呼叫跟踪,這是調試智能合約調用的關鍵功能。
ethers-rs & Foundry 儲存庫和聊天室的所有其他貢獻者。