用途:将 JSON ABI 文件转换为 TypeScript 常量导出,保证 SDK 中 ABI 的类型安全与一致性。适用于新增合约 ABI、合约变更后更新 ABI、批量转换多个 ABI 文件,以及核对 TS 文件与 JSON 源文件一致。
主要能力:读取 src/evm/abi/ 下的 JSON ABI,在 src/evm/releases/ 生成 TypeScript 文件;使用 camelCase 命名导出并加 as const 实现完整类型推断;保留原有 JSON 结构;自动运行 Biome 格式化。输入路径为 src/evm/abi/{protocol}/{version}/{ContractName}.json,输出路径为 src/evm/releases/{protocol}/{version}/abi/{ContractName}.ts,命名规则为 PascalCase 文件名转 camelCase 加 Abi 后缀,例如 SablierLockup.json 对应 sablierLockupAbi。
使用方式:脚本路径为 .claude/skills/abi-codegen/scripts/codegen.ts。单文件转换:bun .claude/skills/abi-codegen/scripts/codegen.ts src/evm/abi/lockup/v3.0/SablierLockup.json。多文件通配:bun .claude/skills/abi-codegen/scripts/codegen.ts "src/evm/abi/lockup/v3.0/.json"。目录全部:bun .claude/skills/abi-codegen/scripts/codegen.ts "src/evm/abi/**/.json"。转换后可用 just tsc-check 校验类型、just test 跑测试。
限制与注意事项:通配符必须加引号;需在项目根目录执行;JSON 无效会报解析错误;写权限不足会报目录或文件权限问题;Biome 错误为非致命。脚本处理文件不存在、JSON 解析、写权限和格式化错误,典型转换单文件小于 100ms,10 个文件批量约 500ms,Biome 格式化约 1-2 秒。相关资料未提供收费、价格与平台信息。