毕业是代币离开联合曲线、成为一个普通 PancakeSwap v2 市场的时刻。在 Baofa 上,它是一笔无需许可、原子完成的交易。
毕业做了什么#
曲线完成后任何人都可以调用核心合约的 migrate(coin):
- 读取代币预先计算好的 PancakeSwap v2 交易对地址(代币 / WBNB),若交易对尚不存在则通过 PancakeSwap 工厂创建。
- 从募集的 BNB 中扣除 0.5 BNB 毕业费用,记入提取权限地址的待领取余额。
- 把余下的 16.501 BNB 包装为 WBNB,连同预留的 206,900,000 枚代币一起转入交易对。
- 铸造交易对的流动性凭证,全部发送到黑洞地址
0x000000000000000000000000000000000000dEaD。 - 铸造后校验交易对储备,标记代币已毕业,打开代币的转账闸门,发出
GraduatedToPancakeV2与CompleteMigration事件。
任何一步失败整笔交易回退,曲线保持完成且完好;没有任何损失,可以重新调用。
上线曲线下的数字#
| 项目 | 数值 |
|---|---|
| 曲线募集的 BNB | 17.001 BNB |
| 毕业费用 | 0.5 BNB |
| 注入交易对的 BNB | 16.501 BNB |
| 注入交易对的代币 | 206,900,000 枚(供应量的 20.69%),若买空曲线的那笔买入按开盘价取走了一部分,则相应减少,其 BNB 一并进入交易对 |
| 池子开盘价相对曲线最终价 | 约低 2.95%(2.94 个点来自费用,0.01 来自曲线形状) |
| 流动性凭证 | 100% 归黑洞地址 |
为什么交易对不能被抢跑#
PancakeSwap v2 的交易对地址在交易对存在之前就可以算出。在许多发行平台上,攻击者提前创建交易对、以虚假价格注入或铸造第一份流动性,毕业时便继承了这个状态。Baofa 在代币合约本身关闭了这条路:毕业之前,BaofaCoin 拒绝任何转往其规范交易对地址的转账。没有人能在毕业之前把代币放进交易对,所以第一份流动性永远是协议以曲线价格注入的那一份。
毕业还会在铸造后检查交易对的储备与份额分配,所以收到过零散 WBNB 的交易对(sync 或 skim 把戏)也改变不了流动性的归属:全部属于黑洞地址。
谁来调用、何时调用#
曲线发出 Complete 后任何人都可以调用 migrate。应用在代币页向所有访问者提供这个按钮,协议的索引器也内置了守护程序,在无人调用时于完成后不久自动提交。以 BNB 计价的毕业不携带任何价值,调用者只付燃气费。
毕业之后#
- 交易在 PancakeSwap v2 上继续,手续费为池子的 0.25%;应用自动路由到交易对。
- 曲线不再接受该代币的交易,代币的转账闸门永久打开。
- 曲线阶段累计的创作者收益仍可领取,毕业不会没收任何东西。
- 代币合约没有任何变化,持有者无需做任何事。