Documentation Index
Fetch the complete documentation index at: https://docs.raydium.io/llms.txt
Use this file to discover all available pages before exploring further.
Halaman ini diterjemahkan secara otomatis oleh AI. Versi bahasa Inggris adalah acuan resmi.Lihat versi bahasa Inggris →
ProgramFailedToComplete; biaya prioritas yang terlalu rendah menyebabkan tx tetap tidak dikonfirmasi hingga kadaluarsa.
Dua pengaturan
setComputeUnitLimit(units)— membatasi komputasi; transaksi membayar paling banyakunitsCU.setComputeUnitPrice(microLamports)— penawaran biaya prioritas, dalam micro-lamports per CU. Total biaya prioritas =units × microLamports × 1e-6lamports.
250_000 × 50_000 / 1e6 = 12.500 lamports ≈ 0,0000125 SOL ≈ $0,003 pada SOL $200. Biaya prioritas pada skala ini adalah noise untuk sebagian besar swap pengguna tetapi signifikan untuk bot yang melakukan 1000 txs/hari.
Benchmark CU per instruksi
Benchmark dari log eksekusi mainnet, rata-rata di berbagai run terbaru. Angka-angka bersifat perkiraan (±15%); ukur ulang untuk alur spesifik Anda.| Instruksi | SPL Token | Token-2022 (sederhana) | Token-2022 (biaya transfer) |
|---|---|---|---|
| CPMM initialize_pool | 180.000 | 200.000 | — |
| CPMM swap_base_input | 140.000 | 180.000 | 200.000 |
| CPMM swap_base_output | 150.000 | 185.000 | 205.000 |
| CPMM deposit | 130.000 | 160.000 | 180.000 |
| CPMM withdraw | 120.000 | 150.000 | 170.000 |
| CLMM create_pool | 70.000 | 85.000 | — |
| CLMM open_position_v2 | 120.000 | 140.000 | 160.000 |
| CLMM increase_liquidity_v2 | 150.000 | 175.000 | 195.000 |
| CLMM decrease_liquidity_v2 | 140.000 | 165.000 | 185.000 |
| CLMM swap_v2 (0 tick crossings) | 170.000 | 205.000 | 225.000 |
| CLMM swap_v2 (1 tick crossing) | 220.000 | 255.000 | 275.000 |
| CLMM swap_v2 (3 tick crossings) | 320.000 | 355.000 | 375.000 |
| CLMM collect_fee | 80.000 | 95.000 | 105.000 |
| AMM v4 swap_base_in | 140.000 | — | — |
| AMM v4 deposit | 120.000 | — | — |
| AMM v4 withdraw | 110.000 | — | — |
| Farm v6 create_farm | 70.000 | 85.000 | — |
| Farm v6 deposit (1 slot reward) | 130.000 | 155.000 | 175.000 |
| Farm v6 deposit (3 slot reward) | 220.000 | 255.000 | 275.000 |
| Farm v6 withdraw | cocok dengan deposit | ||
| Farm v6 harvest | cocok dengan deposit | ||
| Farm v3/v5 deposit | 100.000 | — | — |
| LaunchLab initialize | 100.000 | — | — |
| LaunchLab buy_exact_in | 140.000 | — | — |
| LaunchLab graduate | 250.000 | — | — |
Transaksi yang dikomposisi
Jumlahkan anggaran individual dan tambahkan:- +1.500 CU per frame CPI — overhead tetap runtime untuk setiap cross-program call.
- +20.000 CU per ATA creation —
create_associated_token_accounttidak gratis. - +5.000 CU untuk
setComputeUnitLimit/setComputeUnitPricemasing-masing.
units × microLamports, jadi ~25% over-budget berharga 25% ekstra dalam biaya prioritas).
Estimasi biaya prioritas
Pasar fee lokal Solana berarti biaya prioritas adalah per-writable-account. Tx yang menulis ke akun hot (pool state populer) membayar lebih dari tx yang menulis ke akun cold. Level fee global bukan metrik yang tepat untuk swap Raydium; Anda ingin biaya pada pool spesifik yang Anda sentuh.Strategi 1: Estimator penyedia RPC
Setiap penyedia RPC utama mempublikasikan estimator biaya prioritas yang menanyakan biaya terbaru pada akun spesifik:Min / Low / Medium / High / VeryHigh / UnsafeMax. Petakan ke persentil:
| Level | Persentil | Kasus penggunaan |
|---|---|---|
| Min | 25th | Traffic bot latar belakang, tidak mendesak |
| Low | 50th | Swap pengguna normal |
| Medium | 60th | Default untuk UI dompet |
| High | 75th | Arbitrase time-sensitive |
| VeryHigh | 95th | Likuidasi, exit last-chance |
getPriorityFeeEstimate), Triton (getRecentPrioritizationFees dengan daftar akun), QuickNode (serupa).
Strategi 2: Query RPC langsung
Gunakan RPC standargetRecentPrioritizationFees:
Strategi 3: Penyesuaian diri historis
Untuk bot yang menjalankan alur konstan, lacak laju landed vs. expired Anda sendiri:Menangani kegagalan CU-exhaustion
Gejala: tx gagal denganexceeded maximum number of instructions allowed (200000) atau ProgramFailedToComplete.
Diagnosis:
- Naikkan batas CU. Jika tx Anda menggunakan 195k dari anggaran 200k, naikkan ke 300k.
- Pisahkan transaksi. Jika Anda mencapai batas 1,4M per-tx, pecah menjadi dua tx. Farm
harvest then stakeadalah satu klasik untuk dipecah ketika rewards banyak. - Trim akun. Setiap akun writable tambahan menambah ~2.000 CU. Memangkas akun yang tidak digunakan membantu pada kasus marginal.
- Gunakan lookup tables. Lookup LUT adalah ~50 CU per resolved address, menghemat 5.000 CU dari referensi akun penuh per entry.
Menangani transaksi yang macet
Gejala: tx dikirim, tidak pernah confirm, akhirnya kadaluarsa denganBlockhashNotFound.
Diagnosis:
getSignatureStatuses([sig])mengembalikannull→ leader tidak pernah melihatnya.- Mengembalikan
{ confirmationStatus: null }→ leader melihatnya tetapi tidak memasukkan.
- Naikkan biaya prioritas. Kirim ulang dengan 2× biaya saat ini.
- Bangun ulang dengan blockhash segar. Waktu hidup blockhash adalah ~60 detik; di luar itu tx tidak valid terlepas dari biaya.
- Broadcast multi-RPC. Beberapa RPC memiliki konektivitas leader yang lebih baik daripada yang lain. Kirim ke 3–5 secara paralel.
- Beralih ke bundle Jito. Lihat
integration-guides/routing-and-mev. Bundle melewati antrian paket publik.
Dalam kemacetan
Ketika jaringan kemacetan (dashboard Jupiter / Jito bundle menunjukkan backlog, latensi RPC melonjak, tingkat kadaluarsa tx naik), sesuaikan:| Parameter | Kondisi normal | Kondisi kemacetan |
|---|---|---|
| Batas CU | +25% di atas estimasi | +25% di atas estimasi (tidak berubah) |
| Persentil biaya prioritas | 50th | 75th–95th |
| Jumlah retry | 3 | 5–7 |
| Backoff retry | 500ms | 1000ms |
| Gunakan bundle Jito | Opsional | Sangat direkomendasikan |
| Refresh blockhash pada retry | Ya | Ya, wajib |
- Persentil 75th biaya prioritas > 500k micro-lamports: kemacetan.
- Jito persentil 50th tip > 0,001 SOL: kemacetan.
- RPC response p99 > 2s: masalah RPC-spesifik atau kemacetan.
Anggaran fee untuk bot
Bot trading yang menjalankan ~1000 txs/hari memerlukan anggaran biaya prioritas. Kalkulasi kasar:Jebakan
1. Lupa batas CU
Default adalah 200k CU × (instruksi dalam tx). Single-instruction swap default ke 200k; itu cukup untuk CPMM pada SPL Token tetapi bukan CLMM dengan tick crossings atau apa pun Token-2022. Selalu tetapkan secara eksplisit.2. Biaya prioritas pada akun yang salah
Jika Anda memperkirakan biaya prioritas terhadap token mint tetapi akun hot adalah pool state, estimasi Anda terlalu rendah. Pool state adalah akun writable yang tepat untuk ditargetkan untuk Raydium.3. Biaya skala dengan batas CU
total_priority_fee = units × microLamports. Menaikkan units dari 200k ke 1M pada 50k micro-lamports/CU mengalikan biaya prioritas 5×. Jangan over-budget CU hanya untuk berjaga-jaga; ukur.
4. Versi tx default
Transaksi legacy memiliki batas akun yang lebih rendah; transaksi V0 dengan address lookup tables membuka rute yang lebih besar. SDK menggunakan V0 secara default dalamtxVersion: TxVersion.V0. Jangan turun ke legacy kecuali Anda memerlukan kompatibilitas dompet.
5. skipPreflight menyembunyikan kesalahan CU
skipPreflight: true mengirim tx tanpa simulasi lokal. Anda menghemat ~100ms tetapi kehilangan feedback awal tentang CU exhaustion. Gunakan hanya pada percobaan ulang, bukan pada upaya pertama.
Penunjuk
integration-guides/routing-and-mev— strategi bundle Jito.integration-guides/aggregator— perakitan transaksi.integration-guides/cpi-integration— stacking CU di seluruh CPI yang dikomposisi.- Dokumen program compute budget Solana
- Solana
getRecentPrioritizationFeesRPC - Helius priority fee API
- Benchmark: mainnet execution logs (Raydium SDK integration tests, April 2026).


