底层机制
偿付与队列
LP 无法足额支付盈利时,未付利润进入先进先出队列,由后续亏损按顺序偿付。
记账#
Exchange 将其持有的每一枚 USDT 分配至具名科目:用户余额、锁定保证金、排队赔付、累计费用与 LP。LP 数值可以为负。协议在设计上允许总体暂时资不抵债,同时严格按顺序支付赢家。
支付赢家#
盈利仓位平仓时:
- 队列为空: 以 LP 可用现金支付,不足部分排至队尾。
- 队列非空: 整笔利润排至队尾。
任何情况下,保证金均立即退回交易余额。
补充#
队列非空期间,亏损与爆仓所得专款用于支付排队赢家,2% LP 侧费用豁免。公开函数 harvest 从队首依次支付,现金不足时对队首条目部分支付。只要同时存在队列与可付现金,keeper 即会调用;任何账户亦可调用。
示例#
LP 有 30 USDT 可用现金,队列为空。Alice 盈利平仓,净利润 86.38 USDT;随后 Bob 亏损平仓 60 USDT。
| 事件 | 规则 | 结果 |
|---|---|---|
| Alice 平仓:利润 86.38,保证金 100 | 队列为空:以可用现金支付,余额排队 | 支付 30.00,排队 56.38;100 保证金立即退回 |
| Bob 亏损 60 | 队列非空:专款留给队列,不收 LP 侧费用 | 60.00 专款用于队列 |
调用 harvest | 先付队首 | Alice 获得 56.38,队列清空 |
| 剩余 | 未用完的专款留在 LP | LP 现金增加 3.62 |
立即支付 = min(86.38, 30) = 30.00
排队 = 86.38 − 30.00 = 56.38
harvest = min(60, 56.38) = 56.38 → Alice 全额收讫
计入 LP = 60 − 56.38 = 3.62
Bob 费用 = 0 (队列非空)
← 公式过长时可横向滑动
排队赢家在任何后来的赢家之前、也在任何 LP 盈余分给质押者之前得到全额支付。
整理#
公开函数可移除空条目、合并灰尘条目,避免阻塞支付。
分红让路#
只要仍有赢家排队,LP 盈余不分配给质押者;手续费分红不受影响。
排队余额作保证金#
交易者可以用自己的排队余额开仓,最多扫描 50 个队列条目。该仓位盈利时,新的债权排至队尾;亏损时,相应的排队金额被注销;被清算时,相应金额没收且不收费。