本頁內容由 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錯誤,或你指向了錯誤的叢集(例如用主網池 ID 對著 devnet RPC)。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的大小。

