Aftermath(源码预览)
当前 ABI:版本化源码 c96cd0d。示例使用已激活的 PACKAGE_VERSION 对象;历史非版本化地址需要不同 ABI。详见版本管理及部署参考。
此路径创建一个 50/50 的 Aftermath 池,并包装为 DAO 费用池。其金库接收 DAO 费用,再按预售的手续费方案分配。它不同于面向特定合作伙伴的 blast_aftermath_dao_presale 模块;后者将费用直接付给合作伙伴财库,不创建 Blast 金库。
创建
跳转到“创建”创建预售前,先发布一个具有 9 位小数的全新 Aftermath LP 币种 Lp。每场预售需要独立的 LP 币种及 CreatePoolCapV2。上架前请核实凭证和币种类型,完成初始化时无法验证该凭证与 Lp 是否匹配。
在一笔可编程交易中:
aftermath::new<Meme, Quote>(treasury_cap, package_version, creation_policy, fee_policy, venue_config, dao_fee_bps)返回(initializer, ticket);ticket的类型为FinalizeTicket<Meme, Quote>,不具备任何能力。DAO 费率为u16,范围 1 至 10,000 基点。它记录PoolTier,tick 间距为 0,pool_fee_rate为 DAO 费率。- 应用常规预售设置函数,包括必需的手续费分配,以及可选的合作伙伴。
aftermath::finalize<Lp, Meme, Quote>(initializer, package_version, ticket, currency, create_pool_cap)返回(Presale, PresaleCap, PoolCreation<Lp, Meme, Quote>)。此调用消耗步骤 1 的ticket。预留对象将 LP 凭证绑定到该预售,并发出携带双方 ID 的PoolCreationReserved。blast_presale::share(presale, package_version, start_ms, clock)共享预售。aftermath::share(pool_creation, package_version)在同一笔交易中共享预留对象。- 将
PresaleCap转给创建者。
必须在同一笔交易中通过 aftermath::finalize 消耗步骤 1 的 ticket。直接调用核心 blast_presale::finalize 会留下无法丢弃的 FinalizeTicket,整笔创建交易失败,因此不会留下缺少预留对象的共享预售。ticket 的币种类型与唯一 TreasuryCap 绑定,不能拿其他交易平台的初始化器代替。
迁移
跳转到“迁移”任何人均可结算后迁移已达标预售:
aftermath::migrate<Lp, Meme, Quote>( sale, package_version, pool_creation, fee_policy, venue_config, pool_registry, dao_fee_version, clock)pool_registry 是 Aftermath 的可变共享 PoolRegistry;dao_fee_version 是 DAO 费用包的共享 Version。共享 PoolCreation 会被消耗并删除。使用其他预售的预留对象会以 EWrongPresale 中止。适配器自行排列两种代币的顺序。
迁移将全部预留流动性注入池,将池包装为向新金库支付费用的 DAO 费用池,并将全部 LP 代币发送到 0x0。金库持有 DAO 费用池的 OwnerCap,且没有借出或取出它的函数。DaoFeePoolCreated 记录金库、基础池、DAO 费用池、OwnerCap 和 LP 币种 ID。VaultCreated 中的 pool_id 为基础池,position_id 为 OwnerCap。
存入余额或 DAO 费率不匹配会使整笔交易中止。LP 凭证对应其他币种,或币种并非 9 位小数,都可能阻止迁移。预售原有的流动性部署期限及退款规则仍适用。
收取费用
跳转到“收取费用”Aftermath 将兑换、存入和取出产生的 DAO 费用作为代币对象发送给金库地址,任何人均可收取:
aftermath::collect_fees<Meme, Quote>(vault, package_version, fee_policy, meme_fees, quote_fees)查询该地址拥有的代币对象,用 PTB 的 Receiving<Coin<Meme>> 和 Receiving<Coin<Quote>> 输入向量构造 meme_fees 和 quote_fees。任一向量均可为空,只接收列出的代币,其他代币等待后续收取。属于其他地址的代币会在 sui::transfer 中止,其他交易平台的金库会以 EWrongVault 中止。
适用常规手续费分配:向接收方付款,持币奖励的 Quote 留供轮次使用,Meme 则支付给治理财库。若金库指定了合作伙伴,收取后照常执行合作伙伴付款。
源码:aftermath.move。完整签名和错误见生成的 llms/presale.txt。