{"name":"chain-action-kit","description":"把「连接钱包 → 弹签名 → 等回执」三次等待收成一个按钮的可复用组件层,并回答「什么时候才算真的成了」——已上链不等于已成定局,本包用时间窗判终局、用块哈希锚点抓重组回退。零依赖、依赖注入、可在 Node 里用假钱包跑全链路断言。包含单一事实源的分层阶段语义表(终态/结局/定局/播报/重试/可续订六个轴)、合成状态机、按钮外观表、日志式 aria-live 播报(阶段变化必播、终态打断式)、提示句柄商店、本地+链上错误表合并、终局闸门与重组回退,以及「刷新之后怎么办」的续订判定(超时只降级为未知、绝不判失败)、刷新横幅组件、重查节流,「存档到底有没有真的写进去」的写入自证(setItem 之后的读回比对,拒绝让配额满/隐私模式伪装成「没发生过」),v1.6 的两个标签页同时写:短临界区锁 + 并集合并律 + 写后审计(丢一条就当场报,绝不报成功),以及 v1.7 的「未知收尾」:一次重查的观测(查到回执/查不到/被顶掉/没哈希/节点失败)各自走到哪个状态,查不到永不降级为失败、查询失败不消耗重查次数,定性后写 resolvedAt 挡住旧标签页把结论抹回未知。适用于任何需要用户点一下就能发出链上交易的界面。v1.8 把镜头前移到「点之前」:preflight 只读预检——把预演回滚、费用上限与典型值、余额缺口、无限额度授权、过期的费用数据、手填的 gas 在签名前算清并翻成一句人话,结论 60 秒作废,分 block/warn/info 三档,警告不勾选不许签。v1.9 补上「失败之后那一句」:revert-decode 把链上回滚的原始字节翻成人话——Error(string) 的原因、Panic(uint256) 的十个 Solidity panic 码、ERC-6093 的 ERC20/721/1155 标准错误(带「余额差多少 / 授权差多少」的具体数值),以及节点只给一句文本的情况;错误选择器全部由 keccak256 从签名现算而非硬编码常量表,不认识的错误保留原始字节、绝不猜原因、默认不可重试,并产出 error-table 条目(fingerprint = selector)让链上 /protocols/tx-error-code 能逐条补翻译。v1.10 把词表的另一头接上:remote-table 按**路径**发现链上条目(不再写死 pinId),处理 contentSummary 截断、末页 list:null、游标原地打转、total 已满四种真实响应形状;error-table.match 增加选择器通路,让 fingerprint=0xe450d38c 这类链上条目能命中「消息里根本没有选择器」的合约回滚。v1.11 补上「被顶掉」这一格:replacement 把 stalled-advance 一直要求、却从来没人负责推导的 `replacement.kind`(repriced/cancelled/replaced)从两条原始交易里算出来——value 收 bigint/number/\"0x0\" 三种来源、地址大小写归一、`input` 与 `data` 都认,并且**缺字段绝不默认相等**(`undefined === undefined` 会把「被取消」说成「你自己加价重发了」,`null`=确认没有 / `undefined`=不知道 严格分开);cancel 判定比 viem 更严(自转 0 还带 calldata 不算取消);planReplacement 按 minBump 与市价/baseFee 三条兜底算「要加多少」,同 nonce、缺 nonce 直接拒绝(换 nonce 是另起一笔);第三种 reason 的文案禁止出现「失败」——它没执行,不是失败。同一版把欠了三天的 toGate 真挂上 56 个阶段(112 个闸门 × 9 条断言),顺手补上四件套里缺的按钮文字 label。","version":"1.11.0","skill-file":"metafile://6eaa73a4f417466d6a29d61ff7d4aa17419577787983158f82de274874260522i0.zip"}