SuperAPI AI 工具集

arkiv-write-safety

通用与其它

查看项目

更新于 10-16 08:34

技能介绍

Arkiv 写入安全技能面向使用 @arkiv-network/sdk 向 Arkiv 网络提交写入的场景,重点处理批量导入、executeBatch、账户写入队列,以及交易 nonce 与实体 nonce 的区分。核心做法是:由一个已授权的账户写入者提交有界批次,并保留每一个已知交易哈希;因为 JavaScript 异常并不代表链上拒绝了该写入。

用途与主要能力:在任何钱包调用前校验稳定的行 ID、载荷与重复 ID,冻结输入顺序与字段,以便回执键和读回结果能与准备好的行匹配。导入大批数据(如 5,000 行)时,应使用多个 executeBatch({ creates }) 交易并保存每批进度;批次大小需依据编码大小、gas 估算、提供方限制和已批准的支出预算来选择。若需权限与关系排序、续期计算或签名者保管,可分别参考 arkiv-entity-lifecycle、arkiv-entity-expiration、arkiv-security-trust。

使用方式要点:提交前检查配置网络、连接账户、当前权限、截止时间与 GLM 余额,比对本签名估算与费用上限(含余量)。使用小写 MIME 类型如 application/json;SDK 会按编码名称排序属性,原始 ABI 调用方需自行排序。空 batch 会抛 Error("No operations to perform"),空 patch 抛 EmptyPatchError,应跳过空操作。序列化账户的所有写入,避免 Promise.all 造成交易 nonce 冲突;跨标签页、服务器、钱包应用或进程需用账户级协调器或独占托管。TxParams 作为写入方法的第二参数:传统费用用 { gas, nonce, gasPrice },EIP-1559 用 { gas, nonce, maxFeePerGas, maxPriorityFeePerGas },二者互斥。显式 gas 会跳过自动估算,可能把权限/过期错误变成付费回滚,普通写入应留空。SDK 0.8.1 的 executeBatch 返回创建的键,但不含过期截止时间,需解码 EntityCreated 日志的 entityKey/expiresAt 或按快照读实体。

限制:该技能明确不认证真实提供方限制、已资助交易、分布式托管或断电持久性;未知结果时应停止自动重提交,先对账,绝不自动重签或分配替换 nonce。重新启动需使用原始计划哈希与文件,跳过已验证批次,不要按当前结果数组长度推断批次号。