用途:该技能用于调试 Compact 合约并管理 Midnight 工具链版本,覆盖静态与动态两类错误、编译器消息解读、--skip-zk 开发循环、6 个组件的版本管理以及常见调试模式。官方测试文档标注为“coming soon”,内容来自实际开发经验。
主要能力:区分静态错误(编译期,如语法、类型不匹配、未声明披露、未定义引用、泛型未特化、递归结构/电路、for 中 return、密封账本写入)与动态错误(运行期,如类型不匹配、溢出、下溢、嵌套账本状态未初始化、Merkle 树已满)。讲解如何阅读编译器消息,尤其是未声明披露追踪,需自下而上阅读以还原 witness 数据从来源到披露点的路径;布尔比较结果也算披露,需用 disclose() 包裹。
使用方式:开发迭代时用 compact compile --skip-zk contracts/contract.compact contracts/managed/contract 跳过证明密钥生成,产出 contract/index.js 与 compiler/contract-info.json 以测试逻辑,最终构建再启用。版本管理需同步 CLI、编译器、运行时、账本、JS 库、证明服务器 6 个组件,用 compact --version、compact compile --version、npm list 检查,参照官方兼容矩阵,在 package.json 中锁定精确版本(不用 ^ 或 ~),用 npm ci 可复现安装;更新任一组件后需同步更新相关组件、重新编译合约、用新镜像重启证明服务器并运行测试。
适用场景与限制:适用于 Compact 合约开发调试与版本排障。资料未提供收费、价格或平台信息;官方测试文档暂未提供。