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

設定

確保你已閱讀 快速開始先決條件,並已安裝 RPC_URLKEYPAIR 和相關依賴。

腳本

另存為 swap.mjs
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 foundPOOL_ID 錯誤,或你指向了錯誤的叢集(例如用主網池 ID 對著 devnet RPC)。
  • Insufficient funds for transaction — 你的錢包沒有足夠的 SOL 來支付交換輸入 + 費用 + ATA 租金。
  • Slippage tolerance exceeded — 池的價格在報價和執行之間變動。重新執行;或提高 slippage 參數;或使用 SDK 的 computeAmountOut,它總是會重新取得準備金。
  • Token account not initialized — 輸出代幣的 ATA 不存在,隱含建立指令已上鏈但因某些原因失敗;檢查你的錢包 SOL 餘額並重試。

下一步