本页内容由 AI 自动翻译,所有内容以英文版本为准。查看英文版 →
本条目涵盖即将推出的 LaunchLab 程序更新。在部署前已针对本地发布分支进行验证。在生产环境中启用新路径前,请确认已部署的程序和已发布的 IDL。
GlobalConfig 创建、池初始化、四个交换指令、所有费用领取和 CPMM 迁移——都接受任一代币程序,交换指令会考虑报价代币的转账费用。
集成商速览
- 报价代币可以是 Token-2022。
CreateConfig接受 Token-2022quote_token_mint,InitializeV2/InitializeWithToken2022在报价程序槽中接受任一代币程序。账户顺序不变——你在该槽中传入的值会改变。 - 已弃用的
Initialize仍仅限旧版。 其报价程序账户仍然被类型化为 SPL Token,因此报价代币为 Token-2022 的配置只能通过InitializeV2或InitializeWithToken2022启动。 - 滑点边界移至支付方实际支付和接收的金额。
minimum_amount_out和maximum_amount_in现在与报价代币转账费用净额进行比较,而不是与金库移动的金额进行比较。在费用承担的报价代币上,现有报价逻辑会低估成本并高估收益。 PoolState.token_program_flag第1位变得有意义。 当报价代币仅为旧版时,它始终为0。将整个字节与0进行比较的客户端现在会在报价代币为 Token-2022 时将旧版基础代币读取为 Token-2022。这是此版本中最可能的无声破坏。MigrateToCpswap重命名其两个代币程序账户。base_token_program/quote_token_program变为token_program/token_program_2022。两者始终都是必需的,程序根据代币选择正确的。- 代币/程序对现在已验证。 两个交换代币都获得了
mint::token_program约束,ClaimPlatformFee的报价代币也是如此,因此不匹配的对会还原而不是被忽略。 - 新错误
6023CalculateOverflow。 代码6000–6022保持不变。6023由上一版本空出,现在被重新使用。 - 费用金库跟随报价代币。 创建者和平台费用金库,以及分享费用接收者的代币账户,位于拥有报价代币的任何程序上。
哪些账户改变了类型
这些都不改变其账户列表中的位置。只有允许的值改变。Initialize(已弃用的 V1 路径)故意不在此表中。其报价程序账户保持类型化为 SPL Token。
其中几个也收紧了代币约束,因此不匹配的代币/程序对现在会还原,而之前是被接受或未检查的:
- 四个交换指令将
base_token_mint和quote_token_mint都约束到在匹配槽中传入的程序。之前都没有该约束,因此错误的基础程序被无声接受。 ClaimPlatformFee在quote_mint上添加相同约束。ClaimPlatformFeeFromVault将其约束从代币账户形式更正为代币账户上的代币形式。
报价端转账费用会计
这是改变数字而不是账户列表的部分。在没有TransferFeeConfig 的报价代币上,下面的每个公式都会折叠为之前的行为,因此旧版池和无费用 Token-2022 池在位级别上保持不变。
两个值得明确说明的后果:
- 从等效无费用池计算的边界不再可接受。使用无费用成本作为
maximum_amount_in的BuyExactOut现在以ExceededSlippage还原,SellExactIn使用无费用收益作为minimum_amount_out也是如此。这是预期行为——旧的比较让支付方在已同意的边界之上被扣除转账费用。 - 池只记录到达金库的内容。在 5% 报价代币上进行
amount_in的BuyExactIn后,real_quote前进amount_in × 0.95,而不是amount_in。
get_transfer_inverse_fee 也删除了其对 100% 费用代币的特殊情况:现在当无法计算反向费用时返回新的 CalculateOverflow 错误,而不是回退到 maximum_fee。因此 10000 基点的报价代币会导致精确输出路径失败,而不是在费用上限处无声交易。
token_program_flag 第1位
PoolState.token_program_flag 是一个位字段,一直都是:
1,因为报价代币现在可以是 Token-2022 代币。四个值是:
使用
(token_program_flag >> bit) & 1 读取每个代币的程序。任何将字节视为基础代币布尔值的客户端——flag === 0 ? Token : Token-2022——会将值 2 解析为 Token-2022 基础代币,并将针对错误的程序构建基础端代币账户和转账。没有账户大小或字段偏移改变,因此索引器不需要存储迁移,只需要解码修复。
CPMM 迁移账户重命名
MigrateToCpswap 之前为每个代币取一个代币程序,调用者决定哪个是哪个。现在它无条件地取两个程序并从代币本身派生映射:
两个位置保持不变,因此这是值改变,而不是布局改变——但值几乎是反向的,构建者继续传入其旧对将在任一代币是 Token-2022 代币时在需要旧版程序的地方传入 Token-2022。
旧版程序仍然无条件地始终需要,无论任一代币如何,因为 CPMM LP 代币和锁定流动性费用密钥 NFT 始终位于其上。来自 2026-08-17 版本 的
remaining_accounts 布局保持不变。
报价代币仅由管理员自由裁量接纳
与 CPMM 和 CLMM 不同,LaunchLab 对报价代币运行无扩展允许列表。CreateConfig 按原样接受代币账户,因此唯一的门是管理员将哪些代币绑定到 GlobalConfig。程序的 NoSupportExtension 检查仅适用于 LaunchLab 自己创建的 Token-2022 基础代币,其中仅允许 MetadataPointer 和 TransferFeeConfig。
将 Token-2022 报价代币绑定视为高信任操作,理由与 reference/token-2022-support 中的 CPMM/CLMM 静态白名单相同。TransferHook 或 PermanentDelegate 报价代币将在配置创建时被接纳,然后将在以其报价的每个池上运行或能够扫除。
amm_creator_fee_on 时间戳门
InitializeV2 删除了时间戳门,该门在升级时间戳之前拒绝任何 amm_creator_fee_on 而不是 BothToken。等效门仍然存在于 InitializeWithToken2022 中。实际上,两条路径在 mainnet-beta 上今天都接受任一值,因为该时间戳(1755522000,2025-08-18 13:00 UTC)早已过去——这是清理,而不是当前调用者的行为改变。
错误和 IDL 影响
代码6000–6022 保持不变,包括 6022 InvalidPlatformAllowConfig。
上一版本停用了旧的
6023 并将其留空;此版本重新使用该数字。不要使用来自任一早期版本的 IDL 解码 6023。
在传入 Token-2022 报价程序、解码 token_program_flag 第1位或构建重命名的 MigrateToCpswap 账户列表前刷新 LaunchLab IDL。
SDK 影响
SDK 的启动板模块的报价端在程序所在的相同位置被硬编码为TOKEN_PROGRAM_ID。伴随此版本的分支改为解析报价代币的所有者,将其线程化通过代币账户创建、分享费用接收者的 ATA 和指令的报价程序槽,并向四个 Curve 方法添加可选的 transferFeeConfigB,以便报价反映上述公式。Curve 结果获得 transferFeeB 字段;amountB 保持其含义——支付方花费或卖方接收的内容——因此无费用报价代币产生与之前相同的数字。
这些 SDK 更改未发布。本文档集中代码演示页面上的规范引脚保持不变;在依赖新参数前检查已发布的版本。
参考实现
新演示通过 Yellowstone gRPC 订阅 LaunchLab 程序,并为每个GlobalConfig 和 PoolState 更新记录每个代币是 Token 还是 Token-2022 代币:
raydium-sdk-V2-demo/src/grpc/launchpadPoolInfo.ts
这是此版本使必要的两件事的紧凑参考。池直接从 token_program_flag 分类,解码两个位而无需任何代币获取——这是上述第1位破坏的修复。配置无法以这种方式分类,因为 GlobalConfig 仅存储其报价代币的地址而没有程序标志,因此演示读取代币账户的所有者一次并按代币缓存。并排看到两条路径是检查你自己的解码器的最快方式。
参见 products/launchlab/code-demos 了解演练。
更新的页面
products/launchlab/accounts— 报价代币程序、token_program_flag位布局和金库所有权。products/launchlab/instructions— 报价程序账户、交换滑点语义和重命名的迁移账户。products/launchlab/global-config—quote_mint可能是 Token-2022 代币,什么会和不会限制它。products/launchlab/code-demos— gRPC 配置/池观察者。reference/token-2022-support— LaunchLab 行和报价代币部分。reference/error-codes—6023CalculateOverflow。

