Universal Router
Universal Router 是一个单一的智能合约,可以跨 V2 和 V3 池执行交易。它是 Kroko DEX 所有交易操作的统一入口。为什么需要 Universal Router?
如果没有它,通过 V2 和 V3 交易需要分别使用不同的合约和不同的交易。Universal Router:- 统一执行 — 一个合约处理 V2、V3 和混合协议交易
- 支持复杂路由 — 跨 V2 和 V3 池的多跳交易
- 降低 Gas — 在单笔交易中批量处理操作
- 集成 Permit2 — 通过 Permit2 拉取代币以简化授权
工作原理
Universal Router 通过其execute() 函数接收编码的命令和输入:
- commands:一个字节字符串,每个字节是一个命令代码(如 V2_SWAP_EXACT_IN、V3_SWAP_EXACT_IN、WRAP_ETH、UNWRAP_WETH 等)
- inputs:每个命令的 ABI 编码参数
- deadline:超过此 Unix 时间戳后交易将回滚
典型交易流程
滑点保护
编码的 calldata 包含链上滑点检查:| 交易类型 | 保护机制 | 描述 |
|---|---|---|
| Exact Input | minAmountOut | 如果输出低于最小值则回滚 |
| Exact Output | maxAmountIn | 如果输入超过最大值则回滚 |
原生 KAS 处理
当交易涉及原生 KAS(非 WKAS)时,Universal Router 自动:- 卖出 KAS:在交易前将作为
msg.value发送的 KAS 包装为 WKAS - 买入 KAS:在交易后将 WKAS 解包为 KAS 并发送给接收者
value 字段非零。