为什么需要 Foundry 中文文档
Foundry 是当前最流行的 Solidity 工具链之一,但官方文档以英文为主。对中文社区开发者来说,整理一份 Foundry 中文文档导览,能显著降低学习门槛。本文不会替代官方文档,但会提供一条清晰的学习路径,让你从安装 Foundry 到部署主网合约都能顺利推进。无论你是从 B安APP 行情看世界的投资者,还是已经写过 Solidity 的工程师,都能从中获得价值。
第一部分:安装与初始化
第一部分聚焦安装:
- 通过 curl 安装 foundryup;
- 运行 foundryup 安装 forge、cast、anvil;
- 使用 forge init 创建新项目;
- 通过 forge install 引入 OpenZeppelin 等依赖;
- 配置 .env 与 foundry.toml 文件。
这些步骤构成你后续所有开发的基础环境。
第二部分:核心命令
第二部分整理核心命令:
- forge build:编译合约;
- forge test:运行测试;
- forge script:执行部署脚本;
- forge fmt:格式化代码;
- cast:与链交互的命令行工具;
- anvil:本地链模拟器。
Forge 测试支持 fuzz 与 invariant 模式,是 Foundry 中文文档应重点说明的部分。
第三部分:测试与覆盖率
第三部分讲测试:
- 单元测试覆盖正常路径;
- fuzz 测试覆盖边界情况;
- invariant 测试覆盖系统不变量;
- forge coverage 输出覆盖率报告;
- 与 BN交易所 上线合约的安全要求对照。
建议项目至少达到 95% 覆盖率,再考虑主网部署。
第四部分:脚本与部署
第四部分讲脚本:
- 使用 forge script 编写部署逻辑;
- 在脚本中读取 .env 配置;
- 区分 broadcast 与 dry-run 模式;
- 通过 --rpc-url 切换网络;
- 与硬件钱包结合签名,准备 必安交易所 上线申请;
第五部分:调试与排错
第五部分讲调试:
- forge test -vvvv 查看详细 trace;
- cast call 调试链上状态;
- anvil --fork 复现主网状态;
- forge debug 进入交互式调试器;
- 使用 Slither 与 Echidna 进行静态与 fuzz 分析。
第六部分:与生态工具整合
Foundry 不是孤岛,它与多个生态工具整合:
- Hardhat:可在同一项目中并存;
- viem 与 ethers.js:作为前端调用层;
- Solady 与 solmate:高性能合约库;
- Tenderly:可视化调试与监控;
- 与 B安合约 衍生品市场行情结合分析协议表现。
第七部分:常见坑
常见坑包括:
- forge.toml 配置错误导致测试无法运行;
- .env 中的私钥泄露;
- RPC 节点限速;
- fuzz 测试种子未固定导致结果不稳定;
- 部署脚本未在 BN官网 公示对应地址。
结语
这份 Foundry 中文文档导览,并不是替代官方资料,而是为中文社区提供一条清晰的学习路径。把它作为入门到熟练的脚手架,你能在更短的时间内构建可靠的 Web3 项目,并形成自己的工程实践。