- 获取可靠的订单流
- 尽量缩短用户托管解锁时间以降低库存需求
- 在流动性来源方面拥有灵活性
LI.FI Intents 如何提供帮助
- 直接访问 LI.FI 庞大的订单流
- 可自由使用任何流动性来源 进行解算(例如 DEX、CEX 或你自己的库存)
- 用户托管解锁时间快(通常少于 2 分钟)
- 较低的资金需求,得益于快速的还款周期
解算意图
LI.FI Intents 是一个完全无需许可的系统。由于该系统是组件化的,且各组件与其他组件之间没有固有的信任关系,因此用户可以按需混合搭配它们。因此,重要的是你在收到订单后要对其进行完整验证。总体流程如下:- 发起人签署与 LI.FI intent 兼容的锁,并将其发送到 LI.FI 订单服务器。
- LI.FI 订单服务器对订单进行初步验证,并获取该订单的分配者共同签名。然后将其广播给求解器。
-
求解器将订单的输出提交到输出结算合约,从而启动预言机系统。
输出结算 以
output.settler表示。 -
证明通过验证层被送达输入链。
预言机系统 在订单结构中以
localOracle和output.oracle表示。 - 求解器将订单提交到输入结算合约,验证交付并解锁相关的输入代币。
订单类型
LI.FI 使用三种订单结构,从最简略到最详尽排列:BatchClaim:一个已签名的意图,允许领取输入资产。StandardOrder:一个链上定义,包含足以传达意图的信息。- 订单服务器响应:一个经过补全的订单,包含可能对求解器有帮助的额外信息。
BatchClaim 交互。所有链上交互都使用 StandardOrder 来统一接口。然而,StandardOrder 并不包含足以填充意图的信息。因此,它会在链下用 InputSolver、signatures 等信息进行补全。
收集订单
LI.FI Intents 提供两种接收订单的方式:- 推荐:通过 WebSocket 连接到订单服务器。
- 备选:通过存款接口监控链上存款。
StandardOrder 以及其他填充细节,以便在所有 VM 上提交:
uint256[2][] inputs === [uint256 tokenId, uint256 amount][],MandateOutput 为:
填充意图
要填充意图,必须执行所有MandateOutput。每个 MandateOutput 都是一个自包含的执行描述。
output.settler连同其相关 context 定义了执行,应在其接口上进行调用。目前只实现了一个 OutputSettler:OutputSettlerSimple.sol,它有两个用于填充的接口:
验证填充
填充意图后,必须将填充证明发送到输入链。用于该订单的预言机系统通过localOracle 和 output.oracle 指定。二者应相匹配。然而,验证已填充的输出高度依赖于具体的预言机。有关更多信息,请参阅预言机系统架构。
结算订单
最后,意图必须在其到期之前完成结算。这是通过在指定的 InputSettler 上调用finalise[withSignature] 来实现的。调用者必须是填充时设定的指定求解器。

