Skip to main content
本頁內容由 AI 自動翻譯,所有內容以英文版本為準。查看英文版 →
這個指令碼的功能。 從 RPC 載入 CPMM 池,以 0.5% 滑點報價交換,建立交易,使用你的金鑰對簽署,並提交。整個過程只需約 30 行程式碼。

設定

確保你已閱讀 快速開始必要條件,並已安裝 RPC_URLKEYPAIR 和相依套件。

指令碼

另存為 swap.mjs

執行

選擇任何你有流動性的 CPMM 池。以規範的 SOL/USDC CPMM 池為例:
預期輸出:

剛才發生了什麼

  1. Raydium.load 初始化 SDK — 擷取全域設定,設定你的錢包環境。
  2. getPoolInfoFromRpc 直接從 RPC 提取即時池狀態(而不是從 API 快取)。高價值交換時,你總是希望得到最新狀態。
  3. CurveCalculator.swap 計算常數乘積輸出,扣除池的手續費。這是程式在鏈上執行的相同數學運算,因此你可以比較離線和鏈上報價。
  4. raydium.cpmm.swap 使用 V0 格式(啟用位址查詢表)建立交易,並新增明確的計算預算設定。計算預算提示有助於在繁忙時段讓交易著陸。
  5. 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 餘額並重試。

下一步