Skip to main content
结算是指托管用户资金(输入结算)并记录求解器交付(输出结算)的过程。本页涵盖这两个方面。

输入结算

支持两种单链输入结算器: 多链输入结算器正在开发中。 The Compact 通过资源锁支持先填充流程。Escrow 结算器使用传统流程,即必须在填充之前开启托管。

StandardOrder

单链输入结算器使用以下订单结构:

MandateOutput

完结(Finalization)

要在填充订单后领取输入资金,请调用以下之一:
  1. finalise 由求解器调用。调用者指定将资产发送到何处以及是否进行外部调用。
  2. finaliseWithSignature 由任何持有求解器签发的、包含目标地址和调用细节的 AllowOpen 签名的人调用。

Compact 注册

Compact 意图使用 The Compact 的 EIP-712 域分隔符签名为 BatchClaim
或者,意图也可以由发起人在链上注册,或由某人代其支付索赔并注册。

Escrow 注册

Escrow 意图可以通过多种方式注册:
  1. 直接开启(Direct open),由所有者通过 ERC-7683 function open(bytes) 完成。发出 event Open(bytes32 indexed orderId, bytes order)
  2. ERC-3009,以 orderId 作为 nonce。每个输入都需要一个签名。
  3. Permit2,使用 EIP-712 签名的 PermitBatchWitnessTransferFrom

集成示例


输出结算

目前存在一种输出结算器:OutputSettlerSimple.sol。它支持四种订单类型:简单限价订单、荷兰式拍卖、独占限价订单和独占荷兰式拍卖。

配置拍卖类型

拍卖类型由 MandateOutput 中的 context 字段决定:
对于包含多个输出的荷兰式拍卖,只有第一个输出会作为拍卖发挥作用。其余输出解析为其最差价格,因为求解器只在第一个输出上竞争(赢得它即赢得整个订单)。 有关拍卖机制的更多详情,请参阅拍卖

后续步骤

系统概述

完整架构与合约地址

预言机系统

验证与证明系统

创建并提交订单

面向集成商的订单构造

填充订单

求解器如何交付输出