SuperAPI AI 工具集

solidity-checklist

编程与开发

查看项目

更新于 10-15 10:41

技能介绍

用途

Solidity Checklist 是一个在链上操作前强制执行的系统化预检技能。它要求在每次执行链上操作(如 cast send、forge script --broadcast)之前自动调用,通过 6 层验证清单来避免因跳过系统化验证而导致的失败。该技能的核心目标是替代“部署→失败→粘贴错误→询问 AI→重试→再失败”的被动循环,转而采用主动验证流程:检查权限→检查依赖→检查参数→检查安全→本地测试→执行→记录知识。

主要能力

该技能定义了 6 层预检流程,每层都包含具体检查项、命令、通过条件和决策规则。

第 1 层:权限检查。验证调用者是否具备所需访问权限,包括合约所有者、基于角色的访问、白名单状态、代币授权额度以及暂停状态。提供对应的 cast call 命令和通过条件,并给出决策规则:全部通过则进入第 2 层;缺少权限则先修复权限再重新检查;不确定需要哪些权限时阅读合约源码查找 onlyOwner、onlyRole、require。

第 2 层:依赖检查。理解操作的影响范围,包括直接依赖、上游合约、下游影响、初始化状态和关联地址。提供依赖关系图模板,并给出决策规则:依赖清晰则进入第 3 层;依赖未知则阅读源码或询问,不要盲目继续;需要重新部署时追踪完整依赖图以识别所有需要更新地址的合约。

第 3 层:参数验证。在发送前验证每个输入,涵盖地址格式、代币精度、金额精度、函数选择器、枚举值、数组长度、截止时间/时间戳等常见陷阱。提供验证命令,如检查代币精度、验证地址是否为合约、解码 calldata、估算 gas。决策规则:参数全部验证通过则进入第 4 层;发现精度不匹配则用正确精度重新计算;地址是 EOA 但预期为合约则验证部署。

第 4 层:安全快速检查。扫描常见安全风险,包括重入、抢跑、访问控制、价值处理、授权额度、私钥暴露。其中私钥规则为强制要求:绝不在命令中放置字面私钥,推荐使用 Foundry Keystore 或从 gitignored 的 .env 加载 PRIVATE_KEY,并让开发者选择方案。决策规则:无红旗则进入第 5 层;发现重入风险则添加 ReentrancyGuard 或修复 CEI 模式;发现抢跑风险则添加滑点/截止时间参数;私钥暴露则停止、轮换密钥,然后使用 keystore 或 gitignored 的 .env。

第 5 层:本地测试。绝不发送未经本地或分叉验证的交易。提供单元测试、分叉测试、干跑脚本、gas 估算、模拟等方法及对应命令和使用场景。给出测试决策树,区分新/修改合约与调用已部署合约的不同处理路径。决策规则:测试通过/估算成功则进入第 6 层;测试失败则修复问题,不要部署有问题的代码;估算回滚则可能是第 1 层或第 3 层问题,需返回检查。

第 6 层:执行与记录。执行操作、验证成功并记录知识。提供使用 Foundry Keystore 或从 gitignored .env 加载私钥的执行命令。执行后必须验证交易状态、状态变化、事件发出、余额变化。知识记录包括成功命令及参数、新错误及解决方案、合约地址及角色、权限/角色要求、常用操作 gas 成本等,并记录到个人命令手册、调试笔记、项目架构文档、合约依赖图、gas 参考表。

使用方式

该技能为自动调用(AUTO-INVOKE),必须在任何链上操作之前调用。使用时按照 6 层流程依次执行,每层通过后进入下一层。技能还提供按操作类型划分的快速参考表,涵盖 approve、transfer、addLiquidity、removeLiquidity、stake、unstake、deploy、upgrade 等操作的关键层和最常见失败原因。最后提供预检总结卡,建议在每次链上操作前默念检查。

适用场景

适用于所有涉及链上操作(如 cast send、forge script --broadcast)的 Solidity 开发场景,包括代币授权、转账、添加/移除流动性、质押/解除质押、合约部署、合约升级等。特别适合需要系统化验证流程以避免失败和浪费 gas 的开发者。

限制

该技能要求使用 Foundry 工具链(cast、forge)。部分检查项(如白名单状态)标注为“如适用”。技能本身不提供自动化执行,需要开发者手动执行各层检查。关于收费、价格、平台支持等具体信息暂未提供。