getRoutes 和 getQuote 函数发出请求的过程。
如何请求路由
首先,这是一个简单的示例,演示如何请求路由,将 Arbitrum 上的 10 USDC 桥接并交换为 Optimism 上的最大数量的 DAI。getQuote 请求报价可能会更好。
路由请求参数
getRoutes 函数需要一个 RoutesRequest 对象,它指定所需的 任意到任意 转账,并包含计算最有效路由所需的所有信息。
参数
以下是RoutesRequest 接口的参数及其描述:
路由选项
RouteOptions 接口允许进一步自定义路由请求。以下是 RouteOptions 接口的参数及其描述:
Allow/Deny/Prefer
AllowDenyPrefer 接口用于指定桥接或交易所的偏好。使用 allow 选项,您可以允许工具,并且仅使用这些工具来查找最佳路由。在 deny 中指定的工具将被列入黑名单。
您可以在 列表:链、桥接、DEX 聚合器、解算器 中找到所有可用的键,或从 API 获取可用选项。参见 链和工具。
以下是 AllowDenyPrefer 接口的参数:
Timing
Timing 接口允许您指定路由执行时序的偏好。这有助于根据时序策略优化请求的性能。
Timing 接口的参数:
时序策略
这有助于根据特定条件优化请求的时序。您可以实现 自定义时序策略,通过控制路由执行的时序来改善用户体验并优化应用程序的性能。
请求报价
当您请求报价时,我们的智能路由 API 会提供最佳可用选项。报价包含发起交换或桥接转账所需的所有必要信息和交易数据。 您可以通过指定fromAmount(要发送的金额)或 toAmount(要接收的期望金额)来请求报价。当用户知道他们想花多少时使用 fromAmount,当他们知道他们想接收多少时使用 toAmount。
这是一个简单的示例,演示如何请求报价,将 Arbitrum 上的 10 USDC 桥接并交换为 Optimism 上的最大数量的 DAI。
报价请求参数
getQuote 函数需要一个 QuoteRequest 对象。您必须提供 fromAmount 或 toAmount 其中之一,但不能同时提供两者。以下是 QuoteRequest 接口的参数。
其他报价参数
除了上述参数外,路由选项 部分中列出的所有参数在使用getQuote 时也可用,allowSwitchChain 除外,它专门用于控制路由请求中的链切换。
此外,用于指定允许、拒绝或优先某些桥接、交易所和协议选项的参数名称略有不同:
allowBridges(string[], 可选)denyBridges(string[], 可选)preferBridges(string[], 可选)allowExchanges(string[], 可选)denyExchanges(string[], 可选)preferExchanges(string[], 可选)allowProtocols(string[], 可选)denyProtocols(string[], 可选)
swapStepTimingStrategies 参数为交换步骤指定 时序策略:
swapStepTimingStrategies(string[], 可选) 指定交换步骤的时序策略。此参数允许您定义请求应等待结果的时长并管理预期结果。格式为:
请求合约调用报价
除了请求一般报价外,LI.FI SDK 还提供了请求目标合约调用报价的功能。 在 Composer 文档 中阅读更多内容。有关特定于 SDK 的 Composer 集成,请参阅 SDK Composer 集成指南。 这是一个简单的示例,演示如何请求报价,使用来自 Optimism 的 ETH,在 Base 链上桥接并购买 OpenSea 市场上价值 0.0000085 ETH 的 NFT。此示例的调用数据是使用 OpenSea Seaport SDK 获取的。合约调用报价请求参数
getContractCallsQuote 函数需要一个 ContractCallsQuoteRequest 对象,它包含请求目标合约调用报价所需的所有信息。
合约调用报价请求可以视为报价请求的扩展,除了下面提到的参数外,其他报价参数 部分中列出的所有参数(例如 integrator、fee、slippage 等)在使用 getContractCallsQuote 时也可用。
合约调用对象数组。
Route 和 Quote 之间的区别
尽管 Route 和 Quote 术语都属于为您提供进行交换或桥接转账的最佳选项这一领域,但您需要注意一些区别。
LI.FI 中的 Route 表示一个详细的转账计划,可能包含 多个步骤。每个步骤对应一笔单独的交易,例如交换代币或在链之间桥接资金。这些步骤必须按特定顺序执行,因为每个步骤都取决于上一个步骤的输出。Route 为涉及多个操作的复杂转账提供了详细的路径。
相比之下,Quote 是一个 单步 交易。它包含一次性执行转账所需的所有必要信息,无需任何额外步骤。Quote 用于较简单的交易,其中单个操作(例如代币交换或跨链转账)就足够了。因此,虽然 Route 可能涉及多个步骤来完成转账,但 Quote 始终只表示一个步骤。
