Skip to main content
Halaman ini diterjemahkan secara otomatis oleh AI. Versi bahasa Inggris adalah acuan resmi.Lihat versi bahasa Inggris →
Apa yang dilakukan skrip ini. Memuat pool CPMM dari RPC, mengutip swap dengan slippage 0,5%, membangun transaksi, menandatangani dengan keypair Anda, dan mengirimkannya. Semuanya dalam ~30 baris.

Setup

Pastikan Anda telah membaca prasyarat Quick start dan memiliki RPC_URL, KEYPAIR, serta dependensi yang terinstal.

Skrip

Simpan sebagai swap.mjs:
swap.mjs

Jalankan

Pilih pool CPMM apa pun yang memiliki likuiditas. Contoh dengan pool CPMM SOL/USDC kanonik:
Output yang diharapkan:

Apa yang baru saja terjadi

  1. Raydium.load menginisialisasi SDK — mengambil konfigurasi global, menyiapkan konteks dompet Anda.
  2. getPoolInfoFromRpc menarik status pool langsung dari RPC (bukan dari cache API). Untuk swap bernilai tinggi, Anda selalu menginginkan status terbaru.
  3. CurveCalculator.swap menghitung output constant-product setelah biaya pool. Ini adalah matematika yang sama yang dijalankan program on-chain, sehingga Anda dapat membandingkan kutipan off-chain dan on-chain.
  4. raydium.cpmm.swap membangun transaksi dengan format V0 (address lookup tables diaktifkan) dan menambahkan konfigurasi compute-budget eksplisit. Tip compute-budget membantu transaksi mendarat di jendela sibuk.
  5. execute({ sendAndConfirm: true }) menandatangani, mengirim, dan menunggu konfirmasi.

Kesalahan umum

  • Pool not foundPOOL_ID salah, atau Anda menunjuk ke cluster yang salah (ID pool mainnet terhadap RPC devnet, dll.).
  • Insufficient funds for transaction — Dompet Anda tidak memiliki cukup SOL untuk input swap + biaya + sewa ATA.
  • Slippage tolerance exceeded — Harga pool bergerak antara kutipan dan eksekusi. Jalankan ulang; atau naikkan parameter slippage; atau gunakan computeAmountOut SDK yang selalu mengambil ulang reserve.
  • Token account not initialized — ATA token output tidak ada dan instruksi pembuatan implisit mendarat tetapi gagal karena alasan tertentu; periksa saldo SOL dompet Anda dan coba lagi.

Selanjutnya