本文介绍了 Foundry 相对于 Hardhat 的优势,包括 Solidity 原生测试、更快的迭代速度和内置模糊测试,使得 Foundry 成为顶级开发者的选择。Foundry 通过 Rust 编写,速度快,并且可以通过 cheatcodes 直接在测试中操作 EVM 状态。此外,Foundry 还具有精简的 CLI 工具和简单的依赖管理方式。
Solidity 原生测试、更快的迭代和内置模糊测试是顶级开发者从 Hardhat 切换到 Foundry 的原因。以下是 Foundry 成为更好选择的原因。
Foundry 是一个基于 Rust 的智能合约工具包(forge, cast, anvil, chisel),它以 Solidity 原生方式运行测试和脚本。通过用 Solidity 编写测试,开发者可以避免 JavaScript 的 async/await 样板代码,并保持使用单一语言,从而使测试更加简洁。
例如,在 Hardhat 中,你用 JavaScript/TypeScript 编写测试,而 Foundry 允许你这样编写:
这种原生 Solidity 方法还解锁了内置功能:Foundry 运行速度 很快,通常比其他方案在编译/测试时间上快 2-5 倍。实际上,Paradigm 的基准测试表明,Foundry 编译库的速度比 Hardhat 快约 5 倍。
Foundry 的 CLI 工具同样精简:forge (构建/测试框架),cast (多用途 EVM CLI),anvil (本地 EVM 节点) 和 chisel (Solidity REPL)。相比之下,Hardhat 是一个 Node.js 框架,拥有庞大的插件生态系统,但需要 JS 知识。正如一位观察员所指出的,Hardhat 对于 JS 开发者来说是“你所期望的”,而 Foundry “在 Unix 上运行得更好”,并且更受审计员或 Solidity 纯粹主义者的青睐。
虽然 Hardhat 的主页强调一种 灵活的、以 JavaScript 为中心的工作流程,但 Foundry 却强调速度和原生 Solidity 测试。Hardhat 脚本和测试存在于 JavaScript 中(具有大量的生态系统工具),而 Foundry 测试是通过 forge 命令执行的 Solidity 合约。在实践中,这意味着更快的迭代(没有 NodeJS 启动或转译)和更少的外部样板代码。
Foundry 的网站使用锻造主题来象征其 Rusty、高性能的传统。在底层,Foundry 的 作弊码(通过特殊的 vm 对象访问)允许你直接在测试中操纵 EVM 状态。例如,你可以立即推进 block.number 或模拟一个地址,而无需编写复杂的脚本。Foundry 还通过 forge install 和直接 GitHub 导入来简单地管理依赖项。
总的来说,高级开发者可以从 Foundry 的“solidity-in, solidity-out”测试、闪电般的性能以及强大的内置功能中获益,例如 模糊测试、不变性测试 和用于控制时间、帐户等的低级作弊码。
如果你喜欢这类内容,请在 Twitter 上关注 @threesigmaxyz,并浏览我们的博客,以获取更多关于区块链主题的见解。
明天我们将发布我们的第一个作弊码,第 2 部分:作弊码 vm.prank,模拟调用。打开你的通知
- 原文链接: x.com/threesigmaxyz/stat...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!