架构

每条路径的合约集及其角色、流动性如何持有,以及如何验证部署。

两套合约

两条发射路径相互独立。Fixed-Price Launch 合约部署自己的核心合约、Hook、毕业合约、代币、解锁合约和分发合约。它们与 RTP Curve Launch 采用相同的设计模式,但不共用其任何已部署实例,因此任一路径都无法影响另一路径。

RTP Curve Launch

一套精简的合约。一个核心合约负责曲线记账和手续费账本;毕业时,通过不可变的毕业合约和手续费 Hook,将每个代币交给其自己的 Uniswap v4 池。

合约角色
RtpCore发射、联合曲线交易、开盘买入税、拉取式手续费账本与领取、发射档位、毕业交接、每次发射的回购储备,以及带时间锁的角色变更。
RtpToken极简 ERC-20,每次发射铸造一次。没有所有者,不能再铸造,没有转账税,没有黑名单。持有人可以销毁自己的代币。
RtpGraduator以精确的曲线价格开启代币的 v4 池,并永久持有其唯一的全区间头寸。没有所有者,没有设置函数。
RtpFeeHookUniswap v4 Hook,在池内兑换时收取池手续费(整个部署固定的单一值,1%),并记入核心账本。只有毕业合约可以初始化池或添加流动性。
RtpV4Router, RtpV4Quoter用于带 Hook 池的路由与报价合约:精确输入和精确输出、最小输出界限和截止时间;报价等于结算金额。
RtpBuybackEngine从一次发射的回购储备中执行回购销毁,任何人都可以调用,以时间加权平均价格为基准定价,并有频率限制。没有所有者,没有设置函数。随下一个测试网实例部署。
RtpCoreLens只读预览:预测的代币地址、储备、开盘税、买入和卖出报价。不持有任何资金。随下一个测试网实例部署。
Uniswap v4 PoolManager在主网上必须接入该链规范的 PoolManager;除非选择了有文档记录的备用方案,否则部署流水线会拒绝私有副本。

RTP Fixed-Price Launch

一个核心合约持有每次发射的账本;结算时创建该代币自己的 Uniswap v4 池,并由专门的合约处理平台条款、推荐、代币投入和创建者收益。

合约角色
FundCore每次发射的注册表和账本:创建、批次根、投入、退款、领取、结算(任何人都可以结算)、手续费账本以及运营方的权限。单例合约。
CreateLib, SettleLib创建检查和结算,由 FundCore 通过 delegatecall 调用在构建 FundCore 时固定的库来完成。它们使 FundCore 保持在大小限制以内,且不改变任何权限。
FundGraduator在一次 unlock 调用中初始化池并添加全区间流动性。不收取毕业费,也没有流动性移除路径。
FundHookUniswap v4 Hook:1% 的池手续费及其分配;开盘前的闭市延迟;递减的开盘买入税。
FundToken每次发射一个,在结算时一次铸造。供应量固定,只能通过持有人销毁而减少:没有所有者,不能增发,没有税,没有黑名单,不能暂停,没有代理合约。
FundVesting按秒线性释放创建者的 ETH、团队批次代币,以及(若创建者选择)参与者代币。解锁计划不可撤销。
FundDistributor发射代币的 Merkle 空投以及每次发射的空投储备;接收方自行领取,或由任何人将代币推送到列表中的账户。
FundPlatforms平台注册表,以及每个平台在编译期上限内设定的费用条款。
FundReferral每次发射的推荐人列表、每位推荐人可提取的金额,以及与钱包绑定的社交身份。
FundZap以其他代币投入:通过 PoolManager 将其兑换为 ETH,并代调用者投入。
FundVault, ERC4626Adapter结算后,可选择将创建者尚未提取的 ETH 存入已启用的、以 WETH 为底层资产的 ERC-4626 vault;每个场所一个适配器。
FundRouter, FundQuoter固定价格池的交易和报价,以 ETH 计。

由毕业合约持有的流动性

在两条路径上,池都由不可变的毕业合约注入流动性,该合约持有一个全区间头寸,且没有提取路径。没有 LP 代币。流动性真实存在且可交易,但任何人都无法移除;在两条路径上,都只有毕业合约可以添加流动性。

确定性、可验证的部署

每个链特定的值都存放在配置中,而非代码中。地址在广播前预测,广播后核对。在 Curve Launch 上,除手续费 Hook 外,每个合约都通过 CREATE3 部署;手续费 Hook 通过 CREATE2 部署,其 salt 经过挖掘,使地址带有 Uniswap v4 Hook 权限标志;该地址取决于链上的 PoolManager,因此因链而异。Fixed-Price Launch 合约由专用的部署 Safe 通过 CREATE3 部署,因此在每条受支持的链上地址相同。

相同的地址并不能证明代码相同。每次部署都会在一个不含源代码的公开部署仓库中公布一份清单,列出地址、代码哈希、配置哈希以及部署后应读取的状态,供独立验证。每个地址都列在 rtp.sh 上的官方部署注册表中,该注册表尚待发布。