本頁內容由 AI 自動翻譯,所有內容以英文版本為準。查看英文版 →
這個指令碼的功能。 從 RPC 載入 CPMM 池,以 0.5% 滑點報價交換,建立交易,使用你的金鑰對簽署,並提交。整個過程只需約 30 行程式碼。
設定
確保你已閱讀 快速開始必要條件,並已安裝RPC_URL、KEYPAIR 和相依套件。
指令碼
另存為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,或你指向了錯誤的叢集(mainnet 池 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的大小。

