概述
ClearingPriceLib 是一个纯 Solidity 库,处理标准模式池(具有真实 LP 流动性的 Uniswap v4 AMM)的批量结算数学。它使用 AMM 的当前现货价格作为统一出清价格,确定哪些意图成交,计算内部匹配量,并计算路由到 AMM 的剩余量。
两条结算路径
| 标准模式 | 发行模式 (Geocurve) | |
|---|---|---|
| 库 | ClearingPriceLib | ConstantProductCurveLib |
| 出清价格 | 来自 slot0.sqrtPriceX96 的 AMM 现货价格 | 曲线现货价格 (Ve + E) / (Vt - S) |
| 剩余路由到 | Uniswap v4 AMM 交换 | Hook 储备(曲线分发/吸收) |
| 要求 | 池中有真实 LP 流动性 | 无 LP — Hook 是做市商 |
核心函数
computeClearingPrice()
算法
关键属性
纯函数
无状态读写。整个计算从输入确定性完成。
存款计价
所有输出量以精确存款单位计。不预测 AMM 输出。
输入侧费用
费用从总输入中扣除后再撮合。净输入驱动所有路由决策。
结算者竞争
恶意结算者可以遗漏意图操纵出清价格。缓解措施是竞争——任何结算者都可以提交更完整的批次。
源代码
ClearingPriceLib.sol
在 GitHub 上查看完整源代码(约 143 行)。