CoW Swap 签了订单却没成交?按 Order UID 核对状态与 fills
链小知 · 进阶 · 核验 · 依官方文档整理
用已有订单的完整 UID 查询状态,再逐笔核对成交、接收地址与链上结算;不把签名成功、订单开放或部分成交当作全额到账。
开始前准备
- 已有订单 UID、所在网络和签单钱包地址;没有 UID 时可从同一网络的钱包订单列表查找。
- 只读查看订单记录;本教程不发起新订单、签名或取消交易。
1. 保存完整 UID 与网络
从原订单记录复制完整 orderUid。Explorer 列表里的短 Order ID 只是缩写,不能拿前八位替代完整标识进行唯一核对。
进入官方文档链接的 CoW Explorer,选原订单网络后按 UID 查询。找不到时再按 From 地址检索提交时间附近的订单,避免将不同网络的同地址记录混在一起。
检查结果:保存完整 UID、网络、From 和提交时间;无法定位时保留未知。
2. 对照原签名订单的约束
把卖出与买入代币地址、数量、接收地址、到期时间和是否允许部分成交抄入记录。按代币精度解释数量,不能只用简称识别资产。
订单签名表达的是交易条件,提交到链下订单簿后才等待 solver;它本身不是链上成功回执。这里只读原订单,不要求再次签名来证明有效。
检查结果:当前查询的约束与原记录一致,To 地址符合预期。
3. 先按状态选择排查分支
Open 表示仍可被考虑,Pre-signing 涉及预签名阶段,Partially Filled 只完成一部分。Filled 才表示订单已结算;Expired 或 Cancelled 要再看是否曾有部分成交。
如果 Open 尚未过期,检查限价、剩余量和原记录条件,而不是直接判断丢币。限价触及市场价也不保证立即成交,因为执行还需覆盖结算条件。
检查结果:记录状态原文、有效期、已成交比例与剩余量,不只写“成功/失败”。
4. 部分成交时打开 View fills
对允许部分成交的订单,进入 View fills,逐笔记录成交数量与对应批次。总单可能由多次批量结算完成,不能用第一笔交易代表全单。
计算累计卖出、累计买入与剩余量,保留界面费率和执行价格的原口径。查看费用是否已包含在卖出额内,避免再减一次导致误算。
检查结果:累计结果可以与 Filled 百分比及剩余量对上。
5. 把结算交易对应到这张订单
从成交记录打开目标网络的结算交易,核对成功状态与资产转移至 To 地址。一次批次可能包含很多人的订单,不能把整个批次资产流都算到自己头上。
若 Explorer 显示已成交而钱包首页看不到,先核对接收地址、代币地址和逐笔转移。接口失败或索引滞后则记录错误与查询时间,不把读取失败解释成零成交。
检查结果:成功结论同时具备订单 fills、成功结算交易和正确接收方。
6. 整理未成交与已成交的边界
最后写明“仍开放”“已部分成交且余量到期”或“已全部结算”等准确结论,并保留每笔结算标识。
取消订单与撤销代币授权是不同动作。官方限价文档区分链下与链上取消;本次只读核对,不以点击取消或重复签名处理未知状态。
检查结果:记录可让另一位读者按 UID 重现同一结论。
怎样确认完成
- 完整订单身份和约束已核对。
- 每笔 fills 对应到结算与接收地址。
- 余量、过期和已成交部分分别说明。
常见错误与边界
- 把签单成功当成买入代币到账。
- 使用短 UID、错误网络或错误接收地址查询。
- 把部分成交后到期写成整单从未执行。
- 重复扣除已计入卖出额的费用。