进阶 getfoundry.sh 2026-10-10 09:32:10 · 7 阅读

第1章 Foundry 指南:从部署到测试的实操手册

指南

针对常用工作流和高级 Foundry 模式的实操指南。

部署

  • 部署合约:在验证和确定性地址的基础上,从本地部署到测试网,再部署到主网。
  • 浏览器钱包签名:通过注入式浏览器钱包发送 Cast 和 Forge 交易。
  • 确定性部署(CREATE2):利用 CREATE2 在多个网络中部署到可预测的地址。
  • 多链部署:在多个网络中部署相同的合约,并支持逐链配置。
  • 合约升级:实现代理模式并验证存储布局的兼容性。

测试

  • 代码覆盖率:生成准确的摘要、LCOV 文件以及按测试划分的覆盖率归属。
  • 分叉测试:针对实时链状态进行测试,模拟账户,并处理与时间相关的逻辑。
  • Fuzz 语料工作流:保存、重放、检查、最小化以及对比 Fuzz 和不变量语料库。
  • 变异测试:生成变异体并解读幸存者,以评估测试套件的实力。
  • 不变量测试:利用处理器模式(handler patterns)和幽灵变量编写有效的不变量测试。
  • 符号测试:将符号反例转化为可复现的测试和持久的 CI 产物。
  • 分支树技术:将测试套件组织为决策树,并使用 Bulloak 搭建脚手架。

网络与支付

  • Tempo:配置 Tempo 项目、交易、代币、策略、密钥链以及调试功能。
  • MPP 支持的 RPC 端点:通过 MPP 使用具有 HTTP 402 支付门禁的 Foundry RPC 端点。

调试与优化

  • 调试交易:利用跟踪分析重放并调试失败的主网交易。
  • Gas 优化:剖析 Gas 使用情况,并利用快照和 IR 流水线进行优化。
  • 栈深度超限:理解并解决栈深度超限(stack too deep)错误,提供实用方案。

环境

  • Docker 与容器:在 Docker 中运行 Foundry,用于可复现的构建和 CI 环境。

迁移

  • Foundry v1.0:Foundry v1.0 的破坏性变更及升级指导。

本内容是否有帮助? 在 GitHub 上提出更改建议

评论 (0)