本页内容由 AI 自动翻译,所有内容以英文版本为准。查看英文版 →
@raydium-io/raydium-sdk-v2@0.2.64-alpha,已于 2026-09-09 验证 —— 下面每一个构建器名称、参数名称和参数类型都对照该版本的源码以及 raydium-sdk-V2-demo/src/amm 做过核对。程序 ID:675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8(见 reference/program-addresses)。
大多数首次集成都会踩的两个坑:computeAmountOut 的 slippage 是普通的数字(0.005 = 0.5%),不是 Percent;并且 liquidity.swap 要求 inputMint 为 base58 字符串。
版本说明。 所有示例针对
@raydium-io/raydium-sdk-v2@0.2.64-alpha,在 Solana mainnet-beta 上验证,时间为 2026-04。程序 ID:675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8(参见 reference/program-addresses)。本文不涉及新池创建。 Raydium UI 不再提供 AMM v4 池创建功能——新交易对默认使用 CPMM。AMM v4 程序本身仍然接受链上的
Initialize2;只是这不再是推荐的方式。下面的示例涵盖每个集成者仍需的实时池操作:交换、存入、提取。设置
按 ID 获取池
poolKeys 是指令构建器使用的结构体。它按程序期望的顺序包含每一个 AMM v4 账户,外加当前程序仍按位置接受但不再读取的旧版市场字段。
交换(基础输入)
交换(基础输出)
添加流动性
fixedSide: "a" 告诉 SDK 你提供了精确的 amountInA,而 amountInB 应该最多为 maxAnotherAmount。按比例的数学直接基于金库余额减去累积的 PnL 运行 —— 不再有需要先结算的挂单簿部分。
移除流动性
计算单位 / 优先费用调整
自从移除 OpenBook 之后,AMM v4 交换不再验证任何市场状态,因此 V1 的SwapBaseIn 明显比过去便宜 —— 而 SwapBaseInV2(8 个账户,没有市场占位符)还要更便宜。请测量你自己的路径,而不要按历史数字做预算,并且始终传递明确的计算单位限制:
computeBudgetConfig,SDK 可能仍会使用自己的默认值;检查返回的 transaction 以确认。参见 integration-guides/priority-fee-tuning。
直接 Rust CPI
如果你必须从自己的 Anchor 程序 CPI 到 AMM v4,你需要逐字模拟SwapBaseIn 的账户列表。最小示例:
Instruction。
上面的 CPI 示例使用旧版 v1
SwapBaseIn 布局(标签 9,17 个账户)来读取/重现现有交易。自 2026-07 升级以来,市场账户被接受但被忽略。对于新代码,优先使用 SwapBaseInV2 / SwapBaseOutV2(标签 16 / 17),它们完全删除了市场账户(和 amm_open_orders)——仅传递 8 个账户:token_program、amm、amm_authority、两个池保险库、两个用户代币账户和 user_owner。常见陷阱
- v1 交换上的账户数量错误。 旧版
SwapBaseIn/SwapBaseOut仍然需要完整的 17 个账户(或 18 个账户)列表——不匹配的数量会以WrongAccountsNumber回滚。市场账户的内容不再被验证,但你仍然必须占用它们的槽位。优先使用 V2 入口点以避免这种情况。 - 读取原始保险库余额。 储备现在仅限于保险库;减去应计 PnL(
need_take_pnl_*)。SDK 报价或api-v3.raydium.io/pools/info/ids会为你处理这个问题。 - 调用已删除的指令。
MonitorStep、MigrateToOpenBook、WithdrawSrm、SimulateInfo、AdminCancelOrders和旧版Initialize/PreInitialize现在会回滚。使用Initialize2进行池创建;没有 crank 可调用。 - Token-2022 mint。 不支持。AMM v4 池不能针对 Token-2022 mint 创建;任何 Token-2022 交易对应该在 CPMM 或 CLMM 上。
后续步骤
products/amm-v4/instructions— 这些示例背后的指令级接口。user-flows/migrate-amm-v4-to-cpmm— 如果你是考虑迁移的 LP。integration-guides/priority-fee-tuning— 重型 AMM v4 交换的优先费用调整。

