跳转到内容

曲线迁移与 LP 金库

依据:sui/migrators/sources。生成的迁移器参考包含完整适配器签名与场所要求。

任何人可通过原始适配器迁移 MigrationReady;只有该适配器记录的见证能授权 launch::migrate。迁移可紧接同一 PTB 的最后一笔买入执行。它支付项目分配,在发行账本计入 Blast 一次性分配,处置未售曲线代币与 pending_burn,进入 Migrated,并把池余额交给适配器。待交付开盘轮余额不受影响。

仅可销毁供应经 Coin Registry 销毁,固定供应则转至零地址。适配器必须在同一交易创建场所池、注资并共享 LpVault;任一步失败全部回滚。没有取消或迁移超时路径。

适配器 所需对象与托管方式
cetus::migrate<Meme, Quote, CoinA, CoinB> 两个版本、共享 Meme currency、VenueConfig、Cetus 配置/池注册表、LP Burn 管理器和时钟;核对 Cetus 代币顺序及准确交易对。使用预留创建能力新建池,不接管已有池。通过 Cetus LP Burn 销毁全价格区间迁移头寸,将 CetusLPBurnProof 保存在金库。
bluefin::migrate<Meme, Quote> 两个版本、Meme/Quote currencies、Bluefin 配置、精确当前 SUI 建池费和时钟。创建 Pool<Meme, Quote>,金库持有最宽区间头寸。Bluefin 将发送者记为负责池奖励发放管理的 pool manager。

初始价格由池分配余额决定,不必等于最后曲线价格。场所取整可留下迁移剩余代币,作为协议剩余余额保存在金库中,仅 TreasuryAdmin 可领取;它独立于发行账本中的 Blast 迁移分配。当前调用不允许提取金库头寸,迁移器仍可升级,参见托管风险。

Cetus 自身 pool-manager 权限仍可提前创建预留池,配置也可移除已注册 tick 间距。当前适配器不会接管该池或选择其他档位,发行会停留 MigrationReady。这些情况需要迁移器升级,没有现成恢复入口。

任何人可调用场所 collect_fees,传入金库、迁移器版本、LpFeePolicy、可变 Meme currency、匹配池/配置和时钟;Cetus 还需 burn manager 及正确代币顺序。错误池中止;零费用收取允许。

每种资产的 Blast 份额为 ceil(gross * policy_bps / 10_000),优先使用单币策略,否则使用默认值。FeeAdmin 可即时将任一比例设至 10,000 BPS;TreasuryAdmin 控制收款地址。它独立于发行平台交易费策略;源码默认零不是实时运营费率。

剩余金额按创建者、自动补充流动性、奖励、销毁、接收方顺序进行精确最大余数分配,同余数优先较早条目。创建者/自动补充流动性/奖励累积,接收方直接收款;销毁代币立即处置,销毁用途支付代币累积等待回购。

无伙伴时 Blast 份额立即支付;有伙伴时累积至 unpaid_protocol_*。任何人可使用记录伙伴、当前策略和时钟调用 vault::claim_protocol_lp_fees_with_partner。伙伴获得 floor(held * current_partner_share / 10_000),剩余支付给当前策略地址。伙伴身份继承自发行。

创建者领取与修改方案

跳转到“创建者领取与修改方案”

vault::claim_creator_fees 接受金库、迁移器版本、发行对象和有效 CurveFeeCap<Meme>,返回两个费用币对象。它不收取池内待取费用,必要时先 collect。该领取独立于 launch::claim_creator_fees。

要改变未来分配,用 Move 构建新 FeeSplit,调用场所 settle_and_update_fee_split,传入有效凭证、发行对象、收费所需对象及新方案。它先按旧方案收取再提交替换,金库已有余额保留原用途。重新分配发行的有效凭证也会改变该金库控制权。

自动补充流动性与回购

跳转到“自动补充流动性与回购”

收费时两种资产都有余额才尝试重新注入,超额留待后续。Cetus 已销毁的迁移头寸不能加仓,因此使用独立全价格区间头寸;Bluefin 向持有的迁移头寸加仓。存入量按当前池价决定,单笔交易内操纵价格可提取自动补充流动性的一部分价值。

仅 BuybackAdmin 可调用场所 buyback_and_burn,把累计 burn_quote 在本池换成发行代币,检查 min_meme_out,处置买到的代币,保留未使用支付代币。销毁分配不代表定时或无需权限回购。

RewardsAdmin 经 blast_holder_rewards::publish_round 发布:连续轮次编号,首轮后连续的 checkpoint 区间,32 字节根与清单摘要,1–65,536 个叶子及非零 Meme/Quote 预算。预算从金库转入共享 Round。合约不核实链下计算,也不检查叶子金额总和等于预算。

任何人可调用 blast_holder_rewards::claim,传入轮次、版本、索引、受益人、两种金额与兄弟节点证明。合约检查索引、未领取状态、非零受益人和金额、有效证明,标记已领取,仅支付给受益人。预算不足整笔中止。轮次不过期,没有取消或清扫资金路径。

使用 Blake2b-256,整数为 u64 小端序:

leaf = H(0x00 || ASCII("blast-holder-rewards-v1") || vault_id[32]
|| round || index || beneficiary[32] || meme_amount || quote_amount)
node = H(0x01 || left[32] || right[32])

使用金库 ID,不是奖励轮次对象 ID。叶子按索引顺序排列;奇数最后节点与自身配对。每层按索引奇偶选择左右,再将索引减半。证明每层恰好一个 32 字节兄弟节点;单叶子使用空证明。这是曲线发行奖励规则,与独立的预售奖励实现不同。