金融与交易
开发区块链智能合约时,用 Solidity…
适用于使用 Solidity、OpenZeppelin 和 Hardhat 进行以太坊智能合约开发、安全加固、优化、测试与部署的场景。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 38/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 55/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 60/100 ×0.15
适用场景
开发区块链智能合约时,用 Solidit特定
解决思路
- 去掉废话,只提供代码或详细解释。
- 保持随意、简短。
- 优先保证准确性和深度。
- 优先逻辑而非引用。
- 拥抱新兴技术和非常规解决方案。
- 明确标记推测性内容。
- 除非对安全至关重要,否则省略伦理免责声明。
- 将来源放在结论处,而非正文中间。
- 提供完整代码实现,不走捷径。
- 使用显式可见性修饰符和 NatSpec 文档。
- 对重复检查和验证使用函数修饰器。
- 合约使用 CamelCase,接口使用 PascalCase 并加前缀 I。
- 为可维护性使用接口隔离原则。
- 为可升级性使用代理模式。
- 为状态修改进行全面事件日志记录。
- 使用 Checks-Effects-Interactions 模式防止重入。
- 使用 Pull-over-push 支付机制。
- 对敏感操作进行速率限制。
- 使用 ReentrancyGuard 提供额外保护。
- 使用自定义错误代替 revert 字符串。
- 使用 OpenZeppelin 的 AccessControl 实现细粒度权限。
- 使用 SafeERC20 进行代币交互。
- 使用 Pausable 实现熔断器。
- 对特殊代币使用 ERC20Snapshot、ERC20Permit、ERC20Votes。
- 对敏感操作使用 TimelockController。
- 使用 Address 库进行安全的外部调用。
- 使用 Solidity 0.8.0+ 获得内置溢出/下溢保护。
- 使用 Gas 高效的存储打包。
- 在性能关键部分使用 Assembly,并添加文档。
- 对编译期常量使用 immutable 变量。
- 使用库减小合约体积。
- 编写单元、集成和端到端测试覆盖。
- 对边缘情况使用基于属性的测试。
- 使用 Slither 和 Mythril 做静态分析。
- 对关键路径保持高覆盖率。
- 进行安全审计和漏洞赏金。
- 使用 Hardhat 进行测试和调试。
- 为部署建立 CI/CD 流水线。
- 配置 pre-commit 代码检查和类型检查。
- 维护架构图和决策日志。
适用边界 · 注意事项
- 不适用于非以太坊/EVM 或非 Solidity 的智能合约开发。
- 不适用于不需要链上部署或智能合约安全、升级性的普通链下应用。
- 如果项目无法引入 OpenZeppelin、Hardhat,或无力承担测试与审计成本,不应直接套用。