本页内容由 AI 自动翻译,所有内容以英文版本为准。查看英文版 →
这个脚本做什么。 从 RPC 加载 CPMM 池,以 0.5% 滑点报价交换,构建交易,用你的密钥对签名,然后提交。端到端约 30 行代码。
设置
确保你已阅读 快速开始前置条件,并已安装RPC_URL、KEYPAIR 和相关依赖。
脚本
保存为swap.mjs:
swap.mjs
运行
选择任何你有流动性的 CPMM 池。以规范的 SOL/USDC CPMM 池为例:刚才发生了什么
Raydium.load初始化了 SDK — 获取全局配置,设置你的钱包上下文。getPoolInfoFromRpc直接从 RPC 拉取实时池状态(不是从 API 缓存)。对于高价值交换,你总是需要最新的状态。CurveCalculator.swap计算了扣除池费用后的恒定乘积输出。这与程序在链上运行的数学相同,所以你可以比较链下和链上的报价。raydium.cpmm.swap用 V0 格式(启用地址查找表)构建了交易,并添加了显式的计算预算配置。计算预算小费有助于交易在繁忙时段落地。execute({ sendAndConfirm: true })签名、发送并等待确认。
常见错误
Pool not found—POOL_ID错误,或你指向了错误的集群(对 devnet RPC 使用 mainnet 池 ID,等等)。Insufficient funds for transaction— 你的钱包没有足够的 SOL 用于交换输入 + 费用 + ATA 租金。Slippage tolerance exceeded— 池的价格在报价和执行之间发生了变化。重新运行;或提高slippage参数;或使用 SDK 的computeAmountOut,它总是重新获取储备。Token account not initialized— 输出代币的 ATA 不存在,隐式创建指令落地但因某种原因失败;检查你的钱包 SOL 余额并重试。
下一步
sdk-api/typescript-sdk— 完整的 SDK 参考。products/cpmm/instructions— 交换指令在链上的样子。integration-guides/priority-fee-tuning— 为生产环境调整computeBudgetConfig的大小。

