Skip to main content
Quote Simulation 会在 /v1/advanced/routes 和 /v1/quote 的路由生成阶段,针对当前链上状态试运行符合条件的同链 EVM 路由候选。LI.FI 在生成可执行 EVM 交易数据时,还可能运行另一套步骤交易模拟。

问题所在

一个报价看起来是有效的,但用户广播交易时仍可能回滚。从生成报价到执行之间,链上状态会发生变化:余额改变、资金池储备发生变动、某个代币的行为出乎报价的预料。用户为失败的交易支付了 gas,而你的产品则要承担相应的客服成本和信任损失。

LI.FI 如何解决

对于符合条件的 /v1/advanced/routes 和 /v1/quote 请求,LI.FI 会构建候选交易并针对当前链上状态模拟。未通过强制检查的候选会被过滤。当通过 /v1/quote 或 /v1/advanced/stepTransaction 生成可执行交易数据时,步骤模拟管线可以另外模拟该已构建交易,并在回滚时拒绝返回。 路由模拟在 LI.FI 一侧于路由生成阶段运行。它不要求用户先持有输入代币或先完成授权,因此不会给你的流程增加额外步骤,也不会改变用户的签名方式。
模拟可以减少交易回滚,但不能保证一定执行成功。它过滤的是在报价时会回滚的路由,但如果链上状态在报价和用户广播交易之间发生变化,它无法阻止执行失败。

集成商能看到什么

无需配置,也无需处理任何新内容。Quote Simulation 提升的是 LI.FI 返回路由的质量,而不是暴露一个供你设置的参数。可观察到的效果是:会在链上失败的路由不会出现在返回结果中。
Quote Simulation 不是一个集成商可控制的开关。LI.FI 按集成商启用路由模拟,/v1/advanced/routes 没有单次请求退出字段。skipSimulation 属于交易生成接口,仅控制步骤模拟;它不会关闭路由模拟。

路由模拟的适用范围

  • 仅限 EVM 链。 非 EVM 链不会被模拟。
  • 仅限同链交换。 跨链路由不在路由模拟范围内。
  • 更高价值的交易。 路由模拟适用于超过部署级交易金额阈值的交易。该阈值在整个部署中统一配置,而非按集成商配置。
  • 报价请求中需要提供用户地址,这在执行场景中是常规做法。
步骤模拟没有同链限制或交易金额阈值。它可以模拟受支持的 EVM 步骤交易,包括跨链路由中的步骤,具体取决于其自身配置及链/工具支持范围。

路由模拟 vs. 步骤模拟

模拟可以在两个阶段运行:
  • 路由模拟。 POST /v1/advanced/routes 和 GET /v1/quote 可以在生成路由时构建并模拟符合条件的同链 EVM 候选交易,然后省略未通过强制检查的候选。该功能受部署配置、集成商资格、交易金额阈值、源地址以及链/工具支持范围控制。
  • 步骤模拟。 GET /v1/quote 会选择一条单步骤路由,并为该步骤构建可执行数据,POST /v1/advanced/stepTransaction 则为所选步骤构建。EVM 交易生成管线可以在此时模拟该单个已构建交易,并将结果用于回滚处理和 gas 估算。
符合条件的 /v1/quote 请求可以同时运行路由模拟和步骤模拟。它返回的是带有交易数据的单步骤路由,而不是多步骤路由的第一个步骤。每个模拟阶段都有独立的资格判断;不能保证这两个接口的每次请求都会被模拟。

请求与响应参数

skipSimulation(boolean,查询参数,默认 false)——在该次交易生成调用中跳过步骤模拟。可用于 GET /v1/quote 和 POST /v1/advanced/stepTransaction。在 /v1/quote 中,skipSimulation=true 不会关闭路由模拟。POST /v1/advanced/routes 没有对应参数;其独立的路由模拟关卡不受该字段控制。 成功的步骤模拟可以将实测 gas 值写入报价/步骤响应的 estimate.gasCosts 数组中 type: "SEND" 的条目。若模拟被跳过、不支持、关闭,或没有返回 gas used,LI.FI 会改用工具提供的 gas 估算,并仍然应用 gas 缓冲。 下表中的字段均指 estimate.gasCosts 中的 SEND 条目:

Gas limit 行为

当步骤模拟成功并返回 gas used 时,LI.FI 会根据实测值生成 SEND gas cost,并应用 gas 缓冲策略。其他情况下(包括 skipSimulation=true)会回退到基础工具提供的 gas limit,并仍然应用 LI.FI 的 gas 缓冲。提交交易时应使用 transactionRequest.gasLimit。查看 estimate.gasCosts 时,应使用 type: "SEND" 的条目;除非 API 为你的集成明确暴露相关元数据,否则不要假设它一定来自模拟。

延迟说明

模拟只是影响总响应时间的因素之一——完整构成参见 API 延迟与优化。skipSimulation 只能跳过交易生成请求中符合条件的步骤模拟;它不会绕过路由模拟,也不保证固定的延迟改善。

可用性

Quote Simulation 中的路由模拟是一项企业级功能,按集成商启用。步骤模拟则独立控制。

联系 LI.FI 团队以启用

告诉我们你所在的链和典型交易规模。我们会确认覆盖范围,并为你的集成商密钥启用模拟功能。