> ## Documentation Index
> Fetch the complete documentation index at: https://docs.li.fi/llms.txt
> Use this file to discover all available pages before exploring further.

# 报价订单

> LI.FI Intents 使得高效报价和库存管理成为可能——广播流动性和定价，按照您的条件竞争，并立即响应市场变化。

订单服务器向意图发起者提供报价。这些报价基于解算器提供的可用库存。解算器可以定期将其库存作为路由推送到订单服务器，而不是响应每个报价请求。

```ts theme={"system"}
// POST /quotes/submit

interface Body {
  quotes: Quote[]
}

interface Quote {
    expiry: number;
    fromChainId: string;
    fromAsset: string;
    fromDecimals: number;
    toChainId: string;
    toAsset: string;
    toDecimals: number;
    ranges: QuoteRange[];
    maxToAmount?: bigint;
    exclusiveFor: string;
}

interface QuoteRange {
    minAmount: string;
    maxAmount: string;
    quote: string;
}
```

提供报价时，有一些重要的考虑因素需要记住：

* **expiry** 是用户端的报价过期时间，而不是解算器端的过期时间。如果用户请求一个30秒的意图，只有在30秒后过期的报价才会被返回。
* **fromDecimals** 和 **toDecimals** 不进行验证，仅用于将报价转换为实际汇率之间的资产。
* **maxToAmount** 只需要在解算器不想一次报价其全部库存时提供。在单个报价中，这是发行的最大分配。如果未提供，将使用 max(quoteRange.maxAmount) 代替。
* **ranges** 是解算器可以填充资产的描述列表。报价应包括燃气费用。
  以下代码块提供了一个从 Optimism 到 Arbitrum 的 USDC 的示例报价。

```json theme={"system"}
{
  "quotes": [{
    "expiry": 1757673110,
    "fromChainId": "10",
    "toChainId": "42161",
    "fromAsset": "0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85",
    "toAsset": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831",
    "fromDecimals": "6",
    "toDecimals": "6",
    "ranges": [
      {
        "minAmount": "10",
        "maxAmount": "100",
        "quote": "0.95",
      },
      {
        "minAmount": "100",
        "maxAmount": "10000",
        "quote": "0.995",
      },
      {
        "minAmount": "10000",
        "maxAmount": "50000",
        "quote": "0.99",
      }
    ]
  }]
}
```

<Note>
  **您可以通过发送新报价来覆盖旧报价**

  为了避免解算器发送短暂的报价，订单服务器在收到新报价时会覆盖现有报价。这允许您拥有长期有效的报价，并且只在市场变化时更新它们。如果您发送的报价的过期时间在过去，它仍然会覆盖旧报价并立即过期。
</Note>

通过这种方式广播报价，解算器可以：

* 高效地沟通其跨多个链和代币对的可用流动性。
* 设定自己的定价和费用结构。
* 定义他们愿意处理的交易大小的限制。
* 随着市场条件的变化更新他们的报价。

订单服务器使用广播的报价来匹配用户请求，而无需实时查询解算器，从而实现更快的响应和更少的开销。

将报价提交至 [`/quotes/submit`](https://order.li.fi/docs#tag/solver-api/post/quotes/submit)。

## 链 & 资产支持

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

## 信任组件

LI.FI 意图是基于四个组件的模块化系统：输出结算者、输出预言机、输入预言机和输入结算者。这些组件的交互方式可能有所不同。因此，对订单服务器来说，了解解算器支持哪些组件是很重要的。

```ts theme={"system"}
// POST /quotes/trustComponents

interface Body {
  trustedComponents: Component[]
}

interface Component {
    address: string;
    chainId: string;
    forInput: bool;
    forOutput: bool;
    role: "settler" | "oracle"
}
```

某些地址可能既可作为输入组件也可作为输出组件，因此必须明确提供兼容性。一些常见的观察结果：

* 一些预言机根据起源链有不同的获取证明方式。如果预言机的 `forInput` 为真，这意味着解算器知道如何交付证明。如果预言机的 `forOutput` 为真，这意味着解算器知道如何生成证明。对于没有 `inputOracle` 的预言机（例如，Polymer），使用它们的 `outputOracle` 作为描述符。
* 输入结算者和输出结算者不是同一种合约类型。在大多数情况下，要么只设置 `forInput`，要么只设置 `forOutput`。

将来可能会添加更多角色。

## 认证

虽然订阅订单服务器的 WebSocket 事件不需要认证，但使用订单服务器的 API 服务则需要认证。解算器认证将解算器的 api 请求与它们的链上执行联系起来，允许订单服务器分配信誉评分。

API 密钥可以在 LI.FI 解算器 UI 上找到。使用 API 密钥，解算器可以：

* **推送报价**：使用 `/quotes/submit` 端点将库存报价提交给订单服务器
* **注册账户**：将填充的意图与您的解算器关联，允许订单服务器跟踪您的表现。这是为您的解算器分配独家订单的关键。

API 密钥应在 `x-api-key` 头中提供。

要了解更多关于 LI.FI 解算器 UI 的信息，请访问 [订单服务器信誉部分](/lifi-intents/for-solvers/reputation)。
