跳到正文
← 使用教程

Jupiter 兑换失败怎么查?先分清 Swap V2、旧 Metis 与链上错误

链小知 · 进阶 · 核验 · 依官方文档整理

以失败记录为输入,按报价构建、签署、提交和链上执行定位问题,避免把不同版本的错误码混用。

开始前准备

  • 准备失败时间、两端 mint、输入数量和错误文字。
  • 开发者另准备请求路径、router、requestId、errorCode/code;分享时移除 API key 和签名载荷。
  • 链上复查需要交易 signature;没有 signature 时不要虚构链上交易。

1. 先判定是哪条产品路径

从应用错误信息或集成请求地址辨认网页流程、Swap V2 的 Meta-Aggregator/Router,还是旧 Metis API。当前 V2 入口为 /swap/v2;旧页中的 6001 等码不能直接套用到所有 V2 结果。

检查结果:记录版本、接口与路由;无法取得版本时保留为待核实。

2. 没有可签交易时先检查 order 响应

V2 的报价不一定附带可用交易:未指定 taker 可只有报价;transaction 为空字符串时应读 router 与 errorCode。相同数值在不同 router 可有不同含义,因此保存二者并查官方表,不靠错误文字模糊匹配。

检查结果:未把有 outAmount 当作已成功构建交易。

3. 核对输入资产与支付费用

检查两端 mint、输入数量最小单位及所用账户。依失败所属版本读取余额或费用不足提示;旧 Metis 的 6024 也涉及交易费用或账户 rent。若依赖 gasless,核对当前路径与条件,而非假定所有订单都能免 SOL。

检查结果:错误定位到输入余额、SOL/账户条件或其他具体类别。

4. 有提交记录时追踪执行结果

对 V2 /execute 查看 status、code 与 signature。官方说明 signature 可以出现在某些失败中,因此收到 signature 后仍要查询该链执行状态。区分未落链、已回滚与已确认,不仅凭接口 HTTP 成功判断成交。

检查结果:status/code 与对应链上结果一致;没有结果时写待确认。

5. 检查有效期、路由和自定义参数

聚合路由按 lastValidBlockHeight 过期,JupiterZ 报价另有 expireAt。过期订单重新取得报价;不要重复使用旧签名载荷。若使用手动参数或改交易,检查是否限制路由、是否缺签署或账户;提高优先费不能修好不兼容交易格式。

检查结果:已核对过期条件与更改参数,未知路由错误没有归为网络拥堵。

6. 成功后按钱包结果字段核算

V2 集成分别读取 totalInputAmount、totalOutputAmount 与 route 的结果字段,核对 feeMint;钱包实际资产变化与路由内部量可能因收费不同。网页用户则以浏览器中的正确 mint 资产变化为准,避免把预计输出截图当回执。

检查结果:记录实际钱包输入输出与费用币种;失败订单没有标作成交。

怎样确认完成

  • 能把失败定位到报价、构建、提交或链上执行中的一环。
  • 留下足够排查记录且没有暴露凭据、私钥或完整签名载荷。

常见错误与边界

  • 把所有错误归因于滑点。
  • 只保存错误码,不保存 router 与版本。
  • signature 存在就声称兑换成功。

本教程根据官方资料整理,尚未完成逐步操作验收。界面、支持范围及费用变化时,先核对官方说明。 纯文本版 · 提交纠错依据