进阶 getfoundry.sh 2026-10-10 09:32:10 · 6 阅读
第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 上提出更改建议