输入结算
支持两种单链输入结算器:- InputSettlerEscrow。标准托管,将代币与其意图关联起来。
- InputSettlerCompact。通过 The Compact 资源锁实现的长期存款。
StandardOrder
单链输入结算器使用以下订单结构:MandateOutput
完结(Finalization)
要在填充订单后领取输入资金,请调用以下之一:finalise由求解器调用。调用者指定将资产发送到何处以及是否进行外部调用。finaliseWithSignature由任何持有求解器签发的、包含目标地址和调用细节的AllowOpen签名的人调用。
Compact 注册
Compact 意图使用 The Compact 的 EIP-712 域分隔符签名为BatchClaim:
Escrow 注册
Escrow 意图可以通过多种方式注册:- 直接开启(Direct open),由所有者通过 ERC-7683
function open(bytes)完成。发出event Open(bytes32 indexed orderId, bytes order)。 - ERC-3009,以 orderId 作为 nonce。每个输入都需要一个签名。
- Permit2,使用 EIP-712 签名的
PermitBatchWitnessTransferFrom。
集成示例
- 智能合约注册:
RegisterIntentLib.sol - UI 签名(Batch Compact):lintent.org 演示
- UI 存款与注册:lintent.org 演示
输出结算
目前存在一种输出结算器:OutputSettlerSimple.sol。它支持四种订单类型:简单限价订单、荷兰式拍卖、独占限价订单和独占荷兰式拍卖。
配置拍卖类型
拍卖类型由MandateOutput 中的 context 字段决定:
后续步骤
系统概述
完整架构与合约地址
预言机系统
验证与证明系统
创建并提交订单
面向集成商的订单构造
填充订单
求解器如何交付输出

