Skip to main content
订单服务器向意图发起方提供报价。这些报价基于解算器提供的可用库存。解算器无需响应每个报价请求,而是可以将其库存作为路由定期推送到订单服务器。
在提供报价时,有一些重要的注意事项需要牢记:
  • expiry 是用户侧的报价过期时间,而非解算器侧的过期时间。如果用户请求一个 30 秒的意图,则只返回在 30 秒后过期的报价。
  • fromDecimalstoDecimals 不会被验证,仅用于将报价作为真实汇率在资产之间进行换算。
  • maxToAmount 仅在解算器不想一次性报出其全部库存时才需要提供。在单个报价内,这是所发放的最大分配额。如果未提供,则将改用 max(quoteRange.maxAmount)。
  • ranges 是解算器如何填充资产的描述列表。报价应包含 gas 成本。 下面的代码块提供了一个从 Optimism 到 Arbitrum 的 USDC 报价示例。
您可以通过发送新报价来覆盖旧报价为了避免解算器发送短期报价,订单服务器会在收到新报价时覆盖现有报价。这允许您拥有长期报价,并仅在市场演变时更新它们。如果您发送的报价的过期时间在过去,它仍会覆盖旧报价并立即过期。
通过以这种方式广播报价,解算器可以:
  • 高效地传达其在多个链和代币对上的可用流动性。
  • 设置自己的定价和费用结构。
  • 定义他们愿意处理的交易规模限制。
  • 随着市场条件的变化更新其报价。
订单服务器使用广播的报价来匹配用户请求,而无需实时查询解算器,从而实现更快的响应和更少的开销。 将报价提交到 /quotes/submit

链与资产支持

订单服务器使用报价来确定支持的链和资产。这允许解算器只需为新的链和资产生成报价,即可添加对它们的支持。

Trust Components

LI.FI Intent 是一个基于四个组件的模块化系统:output settler、output oracle、input oracle 和 input settler。这些组件的交互方式可能有所不同。因此,订单服务器有必要知道解算器支持哪些组件。
某些地址可能既可用作输入组件也可用作输出组件,因此必须明确提供其兼容性所在。一些常见的观察结果:
  • 某些 oracle 根据源链的不同有不同的证明获取方式。如果某个 oracle 的 forInput 为 true,则表示解算器知道如何交付证明。如果某个 oracle 的 forOutput 为 true,则表示解算器知道如何生成证明。对于没有 inputOracle 的 oracle(例如 Polymer),使用其 outputOracle 作为描述符。
  • input settler 和 output settler 不是同一种合约类型。在大多数情况下,只会设置 forInput 或只会设置 forOutput
未来可能会添加更多角色。

认证

Solver API 端点需要通过 api-key 请求头传递的 API 密钥。认证将您的 API 请求与您的链上执行关联起来,从而使订单服务器能够分配声誉分数。 有关注册和密钥管理的详细信息,请参阅认证