Across 源链确认但目标没到账?按 deposit 身份检查填单与后续操作
链小知 · 进阶 · 核验 · 依官方文档整理
针对既有 Across 转移,按源链与 depositId 或当前交易选择器读取状态,再核对目标填单、过期退款和嵌入式目标操作。
开始前准备
- 已有源链交易标识、源与目标网络、预期收款地址、输入与输出资产。
- 需要 API 时准备原集成方已有的查询能力与认证条件;本教程不申请付费 API、不提交 deposit 或退款。
1. 先确认源链交易已执行
打开源链交易回执,确认成功状态与实际 deposit 事件。只得到交易哈希、钱包已签名或页面提交成功,都不能替代链上回执。
记录 originChainId 与 depositId。若原操作使用 persistent deposit address,还要区分给地址入金的交易与随后 sweep 执行,避免查错阶段。
检查结果:已有源链成功回执和本次 deposit 的身份线索。
2. 使用一种当前查询选择器
当前 status API 文档支持 originChainId + depositId,或单独 depositTxnRef。PDA 路径的 depositTxnRef 指入金交易;sweepTxnRef 则定位精确 sweep,不能和其他选择器随意组合。
旧概览示例仍出现 depositTxHash,当前参考文档使用 depositTxnRef。遇到参数错误先按所用版本的参考页调整,不同时混传多套名称来碰运气。
检查结果:每次查询只采用文档定义的一组选择器,并记录实际参数名。
3. 分别解释状态和接口错误
pending 表示尚未填单;filled 表示目标 relayer 已填单;expired 表示期限过去但不等于已退款;refunded 才进入已退款状态。特殊入金路线还可能有额外前置状态。
400、404 或服务异常属于读取结果,不是资产状态。当前接口要求 Bearer 认证;认证或配额失败时记录错误并回到原服务商界面核对,不在公开材料粘贴密钥。
检查结果:状态原文与 API 错误分开保存,expired 未写成 refunded。
4. filled 时打开目标填单交易
读取 destinationChainId 与 fillTxnRef 或相应 fillTx 字段,打开目标网络的回执,核对成功状态、收款地址、输出 token 与实际数量。
未填单时当前响应可能带 originToken 和 destinationToken;填单后这两个字段可能为空,不能用 null 推断资产消失。应使用目标回执及完整 deposit 资料核对。
检查结果:目标填单证据能定位到正确网络、收款方和资产。
5. 嵌入式操作再查 actions 结果
如果转移包含目标链存款或其他后续调用,除了 filled 还要检查 actionsSucceeded、actionsTargetTxnRef、目标接收人和目标资产等字段。没有动作的普通桥接可能返回 null。
不要把 null 当成成功或失败,也不要把 relayer 已交付资产直接扩展成目标借贷存款已完成。沿后续交易检查其回执;有独立失败时保留这两个阶段。
检查结果:桥接填单与后续业务各有结论;缺少动作证据时明确未知。
6. 过期与索引延迟按证据处理
expired 路径核对 depositRefundTxnRef 等退款线索与实际接收网络;没有成功退款回执,就写为符合退款阶段但到账待确认。
官方参考页说明状态来自索引服务,更新有延迟;旧迁移页和新接口的时延描述并不完全一致。只记录观察时间与最新链上回执,不承诺某秒内必更新,也不重复跨链作为重试。
检查结果:最终报告串联源链、填单或退款,以及后续操作,分别标注证据。
怎样确认完成
- deposit 身份与查询参数明确。
- 填单或退款可以对应到具体目标回执。
- 后续操作的成功或未知单独说明。
常见错误与边界
- 源链确认后就宣布跨链结束。
- 混传旧 depositTxHash 和新 depositTxnRef 参数。
- 把过期当已退款,或把接口 404 当作资金丢失。
- filled 后忽略 actions 的独立结果。