目录 / cr-solidity-foundry
cr-solidity-foundry
Solidity-Foundry 的 Cursor 规则 1. **项目结构** - 使用 Foundry 标准目录结构:`src/`(合约代码)、`test/`(测试文件)、`script/`(部署脚本)、`lib/`(依赖库)。 - 合约文件扩展名为 `.sol`,测试文件以 `Test.t.sol` 结尾,脚本文件以 `Script.s.sol` 结尾。 2. **代码风格** - 遵循 Solidity 风格指南(如命名规范:合约/结构体用 `PascalCase`,函数/变量用 `camelCase`)。 - 使用 Foundry 推荐的 `forge fmt` 格式化代码,确保缩进为 4 空格,无尾随空格。 3. **测试规范** - 测试函数以 `test` 前缀命名(如 `testTransferFunds`),使用 `assert` 或 `expect` 断言。 - 利用 Foundry 的 `vm` 作弊码(如 `vm.prank`、`deal`)模拟复杂场景。 - 覆盖率目标 ≥ 90%,关键逻辑需包含边界条件测试。 4. **安全实践** - 显式声明可见性(避免默认 `public`),优先使用 `internal` 或 `private`。 - 对外部调用进行重入保护(如 Checks-Effects-Interactions 模式)。 - 使用 Foundry 的 `forge snapshot` 检测 Gas 消耗异常。 5. **依赖管理** - 通过 `forge install` 安装库(如 OpenZeppelin),禁止手动复制代码。 - 在 `foundry.toml` 中明确指定依赖版本,避免隐式更新。 6. **脚本与部署** - 部署脚本需包含参数验证和事件日志(如 `console.log`)。 - 使用 `broadcast` 模式记录交易,确保可复现性。 7. **文档要求** - 合约关键函数需添加 NatSpec 注释(`/// @notice`、`@param` 等)。 - 复杂逻辑需在 README 或代码注释中说明设计意图。 8. **CI/CD 集成** - 配置 GitHub Actions 运行 `forge test` 和 `forge coverage`。 - 提交前需通过 `forge fmt --check` 和静态分析(如 Slither)。 > 注:违反规则将触发 Cursor 的自动修复建议或警告。
这是模型对公开材料的总结,不是官方声明,请以原链内容为准。
存档时间线
| 版本 | 存档时间 | 内容哈希 | 内容 |
|---|---|---|---|
| v1 | 2026-11-15 00:49 | f75e0cf6 | 可取 |
版本索引永久保留;内容副本只保留最新 1 份,更早版本仅留索引与哈希(存档时间线的证据链不会因此断裂)。
提交举报 / 纠错
侵权举报经核验成立后,我们会即时下线该条目并删除已存的内容副本。