LI.FI 路线怎么核对:拆开 Step、最低收到与费用
链小知 · 进阶 · 核验 · 依官方文档整理
从已有 quote/routes 记录重建路线和费用表,找出链、资产、精度或费用重复计算的问题。
开始前准备
- 准备应用导出的脱敏 /v1/quote 或 /v1/advanced/routes 请求与响应,注明保存时间;没有记录时可用官方结构练习,不能得到当前报价结论。
- 本篇适用当前 REST OpenAPI 1.0.0 与方法正文,不替代 SDK v3/v4 的客户端接口。核对文件不需 key 或钱包;生成新报价、批准和执行有独立权限与费用。
1. 先辨认报价记录是哪种对象
在原请求写下 HTTP 方法、路径、来源和保存时间。GET /v1/quote 返回一个 Step;POST /v1/advanced/routes 返回 routes[],逐条记 Route.id 和 steps[].id。不要直接在 Route 上读取 estimate;费用在各 Step.estimate。
quote 的单步仍可能含 includedSteps,不等于只做一次简单转账;advanced 路线可能需要在目标链另发兑换交易。无 routes 或错误响应时留原错误,不把它补成已选中路线。
检查结果:表格每行绑定同一原记录、Route/Step 标识和真实对象层级。
2. 逐步核对链、合约与整数数量
对每个 Step.action 抄录 fromChainId/toChainId、fromToken/toToken 的 chainId/address/decimals、fromAmount、fromAddress/toAddress。routes 的请求字段为 fromTokenAddress/toTokenAddress,与 quote 的 fromToken/toToken 不混用;同符号 USDC 也要逐链核合约。
fromAmount 含精度,例如已知 decimals=6 的 1000000 是 1 个币。用整数字符串或大整数保留原值,输出人类数量时按该侧精度;不把发送侧精度套到接收侧,未知精度则暂不换算。
检查结果:每一步的身份和两侧单位可复核,地址/网络缺失不以符号猜补。
3. 分清预计、最低收到和待生成交易
将 Step.estimate.toAmount 与 toAmountMin 分列,并检查 action.slippage:0.005 表示 0.5%,不是 0.005%。路线顶层也有 toAmount/toAmountMin,但不能据此假装每一步已经执行。预计数量、USD 估值和到账数量各自保留。
advanced 路线需要为完整 Step 生成 transactionRequest;当前具体方法是 POST /v1/advanced/stepTransaction。介绍页旧 /steps/transaction、索引摘要 GET 不能作为调用规范。只核对已有交易数据是否属于相应 Step,不运行生成或签名。
检查结果:报价底线与估值、交易准备状态分别列出,未将 calldata 视为成交。
4. 按顶层 estimate 建费用表
读取每个实际执行 Step 的 estimate.gasCosts/feeCosts,数组缺失或为空保留该状态。lifi Step 的 includedSteps 是拆解:顶层 feeCosts 已包含子项,gasCosts 还可能含 LI.FI 合约开销,不能把顶层与子项相加。
feeCosts.included=true 已净入 toAmount,只展示明细,不再额外扣一次;false 是 fromAmount 之外的支付。分别记币、chainId、amount/decimals、amountUSD,币种不同不直接加原始 amount。费用名字是自由文本,不用名称猜枚举。
检查结果:费用只有一次计入;币数量与 USD 估值、包含与另付分别显示。
5. 核对 Gas、批准与目的链冷启动
gasCosts.price 是 Gas 币最小单位每 Gas,EVM 中不是 gwei;amount 是估计费用的最小单位金额,estimate 是 Gas 用量,limit 含缓冲。feeCosts.token.chainId 指计价币所在链,不足以判断费用对应哪条链执行。目标执行还可能已经计入输出而没有单列。
自发交易需来源原生 Gas;批准 Gas 当前正文没有独立 APPROVE 项,缺项不等于零。fromAmountForGas/LI.Fuel 是额外收到的目的链原生币,会减少目标代币输出,别当重复执行费。gasless 资格和批准需要按实际账户/路线另核对。
检查结果:读者能说明原生 Gas、批准未知成本、LI.Fuel 与费用币的关系。
6. 形成可核对结论并列出缺口
当前 FAQ 写服务费 0.25%、可有商业折扣,底层桥/DEX和集成方还可收费;对账优先保存当次费用条目,不能把 0.25% 当总成本,也不能把几条空数组写成免费。
若 RouteOptions.allowSwitchChain 与介绍页 allowChainSwitch 名称不一致,记录当前使用的方法与字段,别替换后重新提交。完成一张原记录、步骤、身份、最低收到、费用及待确认权限表;执行结果留给状态和链上记录核对。
检查结果:输出有限的报价/费用核对结果,所有缺项及版本冲突明确。
怎样确认完成
- 提供按 Step 分列的链/资产/数量与一次计入的费用表。
- 本教程仅文档核验;未请求报价、生成交易、批准或执行,没有实时可成交或到账验收。
常见错误与边界
- 跨链只有一个 Step 不代表没有桥、兑换或费用子步骤。
- toAmountMin 是所报资产与路线的底线,不承诺桥接中间币或退款等于目标币。
- 接口方法、字段名和旧 SDK 链接有差异,不能凭索引摘要执行。