# LI.FI 路线怎么核对：拆开 Step、最低收到与费用

整理：链小知（AI 辅助）
资料核对日期：2026-10-12
引用地址：https://lianxiaozhi.com/tools/guides/lifi-route-step-fee-record-check
难度：进阶
核验方式：官方文档整理，未执行真实账户操作

从已有 quote/routes 记录重建路线和费用表，找出链、资产、精度或费用重复计算的问题。

## 使用工具
- [LI.FI](https://lianxiaozhi.com/tools/lifi) · [官方入口](https://li.fi/)

## 前置条件
- 准备应用导出的脱敏 /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 标识和真实对象层级。
依据：[LI.FI：Quote 与 Route 差异](https://docs.li.fi/introduction/user-flows-and-examples/difference-between-quote-and-route.md)
依据：[LI.FI：POST advanced/routes 的请求与路线](https://docs.li.fi/api-reference/advanced/get-a-set-of-routes-for-a-request-that-describes-a-transfer-of-tokens.md)
依据：[LI.FI：GET quote 参数与 Step](https://docs.li.fi/api-reference/get-a-quote-for-a-token-transfer.md)

## 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 个币。用整数字符串或大整数保留原值，输出人类数量时按该侧精度；不把发送侧精度套到接收侧，未知精度则暂不换算。

核对结果：每一步的身份和两侧单位可复核，地址/网络缺失不以符号猜补。
依据：[LI.FI：GET quote 参数与 Step](https://docs.li.fi/api-reference/get-a-quote-for-a-token-transfer.md)
依据：[LI.FI：POST advanced/routes 的请求与路线](https://docs.li.fi/api-reference/advanced/get-a-set-of-routes-for-a-request-that-describes-a-transfer-of-tokens.md)

## 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 视为成交。
依据：[LI.FI：GET quote 参数与 Step](https://docs.li.fi/api-reference/get-a-quote-for-a-token-transfer.md)
依据：[LI.FI：生成 Step 交易数据的当前方法](https://docs.li.fi/api-reference/advanced/populate-a-step-with-transaction-data.md)
依据：[LI.FI：POST advanced/routes 的请求与路线](https://docs.li.fi/api-reference/advanced/get-a-set-of-routes-for-a-request-that-describes-a-transfer-of-tokens.md)

## 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 估值、包含与另付分别显示。
依据：[LI.FI：Gas 与费用层级、included](https://docs.li.fi/guides/gas-and-fee-costs.md)
依据：[LI.FI：GET quote 参数与 Step](https://docs.li.fi/api-reference/get-a-quote-for-a-token-transfer.md)

## 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 与费用币的关系。
依据：[LI.FI：Gas 与费用层级、included](https://docs.li.fi/guides/gas-and-fee-costs.md)
依据：[LI.FI：GET quote 参数与 Step](https://docs.li.fi/api-reference/get-a-quote-for-a-token-transfer.md)

## 6. 形成可核对结论并列出缺口

当前 FAQ 写服务费 0.25%、可有商业折扣，底层桥/DEX和集成方还可收费；对账优先保存当次费用条目，不能把 0.25% 当总成本，也不能把几条空数组写成免费。

若 RouteOptions.allowSwitchChain 与介绍页 allowChainSwitch 名称不一致，记录当前使用的方法与字段，别替换后重新提交。完成一张原记录、步骤、身份、最低收到、费用及待确认权限表；执行结果留给状态和链上记录核对。

核对结果：输出有限的报价/费用核对结果，所有缺项及版本冲突明确。
依据：[LI.FI：服务费与底层费用](https://docs.li.fi/faqs/fees-monetization.md)
依据：[LI.FI：Gas 与费用层级、included](https://docs.li.fi/guides/gas-and-fee-costs.md)
依据：[LI.FI：Quote 与 Route 差异](https://docs.li.fi/introduction/user-flows-and-examples/difference-between-quote-and-route.md)
依据：[LI.FI：POST advanced/routes 的请求与路线](https://docs.li.fi/api-reference/advanced/get-a-set-of-routes-for-a-request-that-describes-a-transfer-of-tokens.md)

## 常见错误
- 跨链只有一个 Step 不代表没有桥、兑换或费用子步骤。
- toAmountMin 是所报资产与路线的底线，不承诺桥接中间币或退款等于目标币。
- 接口方法、字段名和旧 SDK 链接有差异，不能凭索引摘要执行。

## 完成检查
- 提供按 Step 分列的链/资产/数量与一次计入的费用表。
- 本教程仅文档核验；未请求报价、生成交易、批准或执行，没有实时可成交或到账验收。

## 相关知识
- [跨链显示已发送却未到账？来源交易、消息与目标执行分开查](https://lianxiaozhi.com/learn/bridge-transfer-status)
- [滑点和价格冲击有什么区别？为什么成交价会变化](https://lianxiaozhi.com/learn/slippage-and-price-impact)
- [原生 USDC 与桥接 USDC 有什么区别？先核对发行与兑付路径](https://lianxiaozhi.com/learn/native-usdc-and-bridged-usdc)
- [代币授权是什么？断开钱包与撤销授权有什么区别](https://lianxiaozhi.com/learn/token-approvals)

## 官方依据
- [LI.FI：Quote 与 Route 差异](https://docs.li.fi/introduction/user-flows-and-examples/difference-between-quote-and-route.md)
- [LI.FI：GET quote 参数与 Step](https://docs.li.fi/api-reference/get-a-quote-for-a-token-transfer.md)
- [LI.FI：POST advanced/routes 的请求与路线](https://docs.li.fi/api-reference/advanced/get-a-set-of-routes-for-a-request-that-describes-a-transfer-of-tokens.md)
- [LI.FI：生成 Step 交易数据的当前方法](https://docs.li.fi/api-reference/advanced/populate-a-step-with-transaction-data.md)
- [LI.FI：Gas 与费用层级、included](https://docs.li.fi/guides/gas-and-fee-costs.md)
- [LI.FI：服务费与底层费用](https://docs.li.fi/faqs/fees-monetization.md)
