DOCS

机制

CHORUS 是一个批量清算(batch clearing)交易所。规则写在代码里,前端只做预览。

01 · 清算算法

每轮 epoch 结束,取唯一清算价 P:让「愿意以 ≥ P 买」与「愿意以 ≤ P 卖」 能撮合的最大成交量。所有成交都印在这个价上 —— 无论你的限价是多少, 成交价都一样。这就是「同一拍」。

// 买单按价从高到低,卖单从低到高
// 找到最大 P,使 愿买量(limit>=P) 与 愿卖量(limit<=P) 能撮合
export function indicativeClear(bids: Order[], asks: Order[]) {
  const prices = [...new Set([...bids, ...asks].map(o => o.limit))]
    .sort((a, b) => a - b);
  let best = null;
  for (const p of prices) {
    const buy  = bids.filter(o => o.limit >= p).reduce((s, o) => s + o.qty, 0);
    const sell = asks.filter(o => o.limit <= p).reduce((s, o) => s + o.qty, 0);
    const filled = Math.min(buy, sell);
    if (!best || filled > best.filled) best = { price: p, filled };
  }
  return best; // 即「现在收盘会印在这个价」
}

注意:这个计算在前端仅用于预览「试算清算价」。真正上链时,清算必须在 结算交易里执行,前端结果不作数。

02 · 为何 gas 买不到更好的价

在 AMM 或订单簿里,成交顺序决定价格,付更多 gas 抢在前面就能拿到更早、 更好的价。CHORUS 里,一个 epoch 内所有订单同一价成交, 先来后到只影响能否成交,不影响成交价 —— 抢跑没有意义。

AMM 时间线
P₀P₁P₂P₃AMM:t₀ → t₃ 一笔笔成交,价格每次漂 · gas 决定先后
CHORUS 同一打印
PRINT · 一个价CHORUS:同一 epoch 内所有单 → 同一条打印线

03 · 当前规则(v1 演示)

04 · 风险

  • · 未审计:合约尚未经过安全审计,可能存在未知漏洞。
  • · 无许可代币:任何人都能开市场、发币,代币本身可能没有价值。
  • · 不构成投资建议:本演示与文档不构成任何投资、财务或法律建议。
  • · 合规:任意开盘 + 发币容易被当作未注册证券或诈骗发射台;真做需要律师,不是前端问题。
回 Board发币上架