Skip to main content
本页内容由 AI 自动翻译,所有内容以英文版本为准。查看英文版 →
这个脚本的作用。 为你指定的两个代币创建一个全新的 CPMM 池,选择 0.25% 费率等级,按照初始金额隐含的价格注入初始流动性,并输出新池的 ID 和交易签名。

准备工作

确保你已阅读 快速开始前置条件,并已配置 RPC_URLKEYPAIR 和安装依赖。 你还需要 用两种代币的初始金额为钱包充值,加上足够的 SOL 来支付一次性的池创建费和账户租金(主网上总共约 0.19 SOL — 参见 reference/fee-comparison 了解租金/费用明细,或 ray/protocol-fees 仅查看费用)。 在 devnet 上运行。 仅将 cluster 改为 "devnet" 是不够的。这个脚本固定了两个不遵循 cluster 的命名导入:programId: CREATE_CPMM_POOL_PROGRAMpoolFeeAccount: CREATE_CPMM_POOL_FEE_ACC,两者都是主网常量。从 SDK 导入 DEVNET_PROGRAM_ID 并改用 DEVNET_PROGRAM_ID.CREATE_CPMM_POOL_PROGRAMDEVNET_PROGRAM_ID.CREATE_CPMM_POOL_FEE_ACC — 这与 CLMM 脚本 使用的模式相同。

脚本

保存为 create-cpmm.mjs
create-cpmm.mjs

运行

示例:创建一个 SOL/USDC 池,初始流动性为 1 SOL 和 160 USDC:
预期输出:

刚才发生了什么

  1. getCpmmConfigsapi-v3.raydium.io 拉取实时费率等级列表,并选择索引 0(0.25% 等级 — 参见 reference/fee-comparison 了解完整列表)。
  2. getTokenInfo 解析每个代币的元数据,包括它由哪个代币程序管理。CPMM 同时接受 SPL Token 和 Token-2022 代币;SDK 会自动路由。
  3. createPool 构建一个交易,该交易:
    • 将代币排序为规范顺序,
    • 推导池 PDA、金库、LP 代币和权限账户,
    • CREATE_CPMM_POOL_FEE_ACC 支付一次性的 create_pool_fee
    • 如果缺失则为调用者创建 ATA,
    • AMOUNT_AAMOUNT_B 注入金库。
  4. 初始价格 由初始金额比例决定:price = AMOUNT_B / AMOUNT_A(调整小数位后)。仔细选择这个值 — 机器人会在池开放后的几秒内套利任何错误定价。
  5. startTime: new BN(0) 立即开放交易。要在向公众开放前暂存流动性,设置一个未来的 Unix 时间戳。

常见错误

  • pool already exists — 此代币对在此费率等级已存在一个池。创建前先查询。
  • insufficient funds — 你的钱包没有足够的 MINT_AMINT_B 或 SOL(用于创建池费用 + 租金)。
  • Token-2022 extension not supported — 你的某个代币使用了 CPMM 不支持的扩展。参见 reference/token-2022-support

部署后

你可以立即对新池进行交换 — 从 CLI 交换 脚本直接接受你的新 POOL_ID。聚合器(Jupiter 等)会在几分钟内索引新池。

下一步