Langsung ke konten utama

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 →
Sumber kebenaran. Tabel di bawah ini dihasilkan ulang dari error.rs masing-masing program di repositori publik Raydium. Saat sebuah program diperbarui dan varian baru ditambahkan, jalankan ulang ekstraksi (tautan di bagian bawah setiap tabel) dan tambahkan ke tabel — jangan mengubah urutan baris yang sudah ada. Kode error Anchor ditetapkan berdasarkan urutan sumber, bukan nama, sehingga mengubah urutan akan merusak penanganan error di sisi integrator.

Cara kerja kode error Anchor

Anchor menetapkan setiap varian enum ErrorCode sebuah program dengan kode numerik yang dimulai dari 6000. Transaksi yang gagal akan menampilkan:
  • Kode error numerik (contoh: 0x1771 = 6001) di log transaksi.
  • Nama error (contoh: InvalidOwner) dari IDL.
  • String #[msg(...)] yang di-emit Anchor di log_messages.
Integrator sebaiknya mencocokkan berdasarkan kode numerik, bukan string pesan (string dapat diubah redaksinya tanpa menaikkan versi).
// Example: detect the CPMM slippage error and surface a clean UX message.
const CPMM_EXCEEDED_SLIPPAGE = 6005;

try {
  await sdk.cpmm.swap({ ... });
} catch (err: any) {
  const code = err?.error?.errorCode?.number ?? err?.code;
  if (code === CPMM_EXCEEDED_SLIPPAGE) {
    showToast("Price moved past your slippage tolerance. Increase slippage or retry.");
    return;
  }
  throw err;
}

Error CPMM (Standard AMM)

Program ID: lihat reference/program-addresses. Sumber: raydium-cp-swap/programs/cp-swap/src/error.rs.
KodeVarianString #[msg]Penyebab umumUX yang direkomendasikan
6000NotApprovedNot approvedPemanggil bukan authority yang dikonfigurasi untuk instruksi admin.”Hanya admin pool yang dapat melakukan tindakan ini.”
6001InvalidOwnerInput account owner is not the program addressAkun yang diteruskan dimiliki oleh program yang salah (sering kali token program yang salah atau PDA dari program yang salah).”Internal: ketidakcocokan pemilik akun — muat ulang dan coba lagi.”
6002EmptySupplyInput token account emptySaldo LP atau akun token bernilai nol pada langkah yang membutuhkan jumlah positif.”Tidak ada yang perlu ditarik.”
6003InvalidInputInvalidInputArgumen buruk secara umum (jumlah di luar rentang, flag salah).”Input tidak valid — periksa jumlah dan coba lagi.”
6004IncorrectLpMintAddress of the provided lp token mint is incorrectAkun LP mint yang diteruskan tidak cocok dengan pool_state.lp_mint.”Internal: LP mint salah — muat ulang data pool.”
6005ExceededSlippageExceeds desired slippage limitHarga eksekusi lebih buruk dari minAmountOut / maxAmountIn yang ditetapkan pengguna.”Harga melampaui toleransi slippage Anda. Naikkan slippage atau coba lagi.”
6006ZeroTradingTokensGiven pool token amount results in zero trading tokensPerhitungan deposit/penarikan membulatkan satu sisi ke nol (posisi terlalu kecil).”Jumlah di bawah minimum untuk pool ini.”
6007NotSupportMintNot support token_2022 mint extension (grammar in source)Pool menemukan ekstensi Token-2022 yang tidak dapat ditangani dengan aman (contoh: TransferHook, DefaultAccountState=Frozen).”Token ini memiliki ekstensi yang tidak didukung Raydium di CPMM.”
6008InvalidVaultinvaild vault (typo in source)Akun vault yang diteruskan tidak cocok dengan yang tercatat di pool_state.”Internal: vault salah — muat ulang dan coba lagi.”
6009InitLpAmountTooLessInit lp amount is too less(Because 100 amount lp will be locked) (grammar in source)Saat inisialisasi pool, suplai LP yang dihitung berada di bawah jumlah kunci permanen.”Likuiditas awal terlalu kecil. Tambah jumlah deposit.”
6010TransferFeeCalculateNotMatchTransferFee calculate not matchJumlah pasca-transfer yang diamati untuk mint biaya Token-2022 tidak sesuai dengan ekspektasi yang dihitung sebelumnya.”Biaya transfer token berubah di tengah transaksi. Coba lagi.”
6011MathOverflowMath overflowPerhitungan swap/deposit/biaya intermediate mengalami overflow.”Jumlah terlalu besar untuk pool ini.”
6012InsufficientVaultInsufficient vaultSaldo vault pool terlalu rendah untuk memenuhi output yang diminta.”Likuiditas pool tidak cukup untuk ukuran ini.”
6013InvalidFeeModelInvalid fee modelAdmin menetapkan kombinasi parameter AmmConfig yang ditolak on-chain.N/A — jalur khusus admin.
6014NoFeeCollectFee is zerocollect_protocol_fee / collect_fund_fee dipanggil saat biaya yang dapat dikumpulkan bernilai nol.N/A — jalur admin; tooling sebaiknya mengabaikan error ini.
Sumber regenerasi: github.com/raydium-io/raydium-cp-swap — error.rs.

Error CLMM

Program ID: lihat reference/program-addresses. Sumber: raydium-clmm/programs/amm/src/error.rs.
KodeVarianString #[msg]Penyebab umumUX yang direkomendasikan
6000NotApprovedNot approvedPemanggil bukan admin yang dikonfigurasi untuk instruksi ini.”Hanya admin pool yang dapat melakukan tindakan ini.”
6001InvalidUpdateConfigFlaginvalid update amm config flagAdmin meneruskan nilai param yang tidak dikenal ke update_amm_config.N/A — jalur khusus admin.
6002AccountLackAccount lackAkun remaining yang diperlukan tidak ada dalam tx (biasanya tick-array atau ekstensi oracle).”Internal: akun hilang — muat ulang data pool.”
6003ClosePositionErrRemove liquidity, collect fees owed and reward then you can close position accountMencoba menutup posisi yang masih memiliki likuiditas, biaya belum diklaim, atau reward belum diklaim.”Tarik semua likuiditas dan klaim biaya/reward sebelum menutup posisi.”
6004InvalidTickIndexTick out of rangetick_lower atau tick_upper berada di luar [-443636, 443636].”Rentang harga di luar batas untuk pool ini.”
6005TickInvalidOrderThe lower tick must be below the upper ticktick_lower >= tick_upper.”Harga bawah harus lebih rendah dari harga atas.”
6006TickLowerOverflowThe tick must be greater, or equal to the minimum tick(-443636)Underflow tick bawah.”Harga bawah terlalu rendah.”
6007TickUpperOverflowThe tick must be lesser than, or equal to the maximum tick(443636)Overflow tick atas.”Harga atas terlalu tinggi.”
6008TickAndSpacingNotMatchtick % tick_spacing must be zeroTick yang diajukan bukan kelipatan tick_spacing pool.”Sesuaikan harga ke increment valid terdekat.”
6009InvalidTickArrayInvalid tick array accountPDA yang salah diteruskan untuk slot tick-array.”Internal: tick array salah — muat ulang data pool.”
6010InvalidTickArrayBoundaryInvalid tick array boundaryKesalahan off-by-one pada pengindeksan tick-array.”Internal: error batas tick-array.”
6011SqrtPriceLimitOverflowSquare root price limit overflowsqrt_price_limit yang diberikan pemanggil berada di luar rentang valid.”Batas harga di luar rentang.”
6012SqrtPriceX64sqrt_price_x64 out of rangeSqrt harga pool saat ini keluar dari rentang di tengah swap.”Coba ulang swap.”
6013LiquiditySubValueErrLiquidity sub delta L must be smaller than beforePelanggaran invarian internal pada decrease-liquidity.”Internal: error akuntansi likuiditas.”
6014LiquidityAddValueErrLiquidity add delta L must be greater, or equal to beforePelanggaran invarian internal pada increase-liquidity.”Internal: error akuntansi likuiditas.”
6015ForbidBothZeroForSupplyLiquidityBoth token amount must not be zero while supply liquidityPanggilan increase-liquidity dengan amount_0_max dan amount_1_max keduanya nol.”Sediakan setidaknya satu token.”
6016LiquidityInsufficientLiquidity insufficientPosisi tidak memiliki cukup likuiditas untuk memenuhi penarikan.”Jumlah penarikan melebihi likuiditas posisi.”
6017PriceSlippageCheckPrice slippage checkHarga eksekusi gagal melewati penjaga slippage pemanggil.”Harga melampaui toleransi slippage Anda. Naikkan slippage atau coba lagi.”
6018TooLittleOutputReceivedToo little output receivedSwapBaseInput: jumlah output di bawah other_amount_threshold.”Slippage terlampaui — output minimum tidak terpenuhi.”
6019TooMuchInputPaidToo much input paidSwapBaseOutput: jumlah input di atas other_amount_threshold.”Slippage terlampaui — input maksimum dilampaui.”
6020ZeroAmountSpecifiedSwap special amount can not be zeroamount bernilai nol pada instruksi swap.”Masukkan jumlah yang lebih besar dari nol.”
6021InvalidInputPoolVaultInput pool vault is invalidAkun input-vault swap tidak cocok dengan vault yang tercatat di pool.”Internal: input vault salah — muat ulang data pool.”
6022TooSmallInputOrOutputAmountSwap input or output amount is too smallPerhitungan swap dibulatkan ke nol, biasanya karena jumlah dust yang sangat kecil.”Jumlah terlalu kecil untuk di-swap di pool ini.”
6023NotEnoughTickArrayAccountNot enough tick array accountAkun remaining tick-array yang disediakan untuk rentang swap tidak cukup.”Internal: tick-array tidak cukup — muat ulang data pool.”
6024InvalidFirstTickArrayAccountInvalid first tick array accountAkun tick-array pertama yang diteruskan tidak mencakup tick saat ini.”Internal: tick array pertama salah — muat ulang data pool.”
6025InvalidRewardIndexInvalid reward indexreward_index di luar [0, 2].N/A — jalur admin.
6026FullRewardInfoThe init reward token reach to the maxPool sudah memiliki maksimum (3) reward mint yang dikonfigurasi.N/A — jalur admin.
6027RewardTokenAlreadyInUseThe init reward token already in useReward mint menduplikasi yang sudah ada.N/A — jalur admin.
6028ExceptRewardMintThe reward tokens must contain one of pool vault mint except the last rewardSebelum slot 2, reward mint harus sama dengan salah satu vault mint pool.N/A — jalur admin.
6029InvalidRewardInitParamInvalid reward init paramWaktu mulai/selesai emisi atau laju per-detik tidak valid.N/A — jalur admin.
6030InvalidRewardInputAccountNumberInvalid collect reward input account numberJumlah akun remaining yang diteruskan ke CollectReward salah.”Internal: jumlah akun salah — muat ulang dan coba lagi.”
6031InvalidRewardPeriodInvalid reward periodPeriode emisi reward tidak valid (end <= start, durasi nol).N/A — jalur admin.
6032NotApproveUpdateRewardEmissionsModification of emissions is allowed within 72 hours from the end of the previous cycleAdmin mencoba mengubah emisi di luar jendela 72 jam di sekitar batas siklus.N/A — jalur admin.
6033UnInitializedRewardInfouninitialized reward infoSlot reward belum diinisialisasi tetapi sudah direferensikan.N/A — jalur admin.
6034NotSupportMintNot support token_2022 mint extensionCLMM menemukan ekstensi Token-2022 yang tidak dapat ditangani.”Token ini memiliki ekstensi yang tidak didukung Raydium CLMM.”
6035MissingTickArrayBitmapExtensionAccountMissing tickarray bitmap extension accountSwap melewati rentang tick yang tidak tercakup bitmap dasar; akun bitmap ekstensi diperlukan.”Internal: ekstensi tick-array hilang — muat ulang data pool.”
6036InsufficientLiquidityForDirectionInsufficient liquidity for this directionTidak ada cukup likuiditas di arah swap yang diminta.”Likuiditas tidak cukup untuk ukuran swap ini.”
6037MaxTokenOverflowMax token overflowJumlah input/output melebihi u64.”Jumlah terlalu besar untuk pool ini.”
6038CalculateOverflowCalculate overflowOverflow pada aritmetika biaya/likuiditas.”Jumlah terlalu besar untuk pool ini.”
6039TransferFeeCalculateNotMatchTransferFee calculate not matchJumlah yang diamati dari transfer fee Token-2022 tidak sesuai ekspektasi.”Biaya transfer token berubah di tengah transaksi. Coba lagi.”
6040OrderAlreadyFilledOrder already fully filled, cannot modifyIncreaseLimitOrder / DecreaseLimitOrder dipanggil pada order yang bagian belum terisinya sudah nol.”Limit order ini sudah terisi — lakukan settle untuk menerima output.”
6041InvalidOrderPhaseInvalid order phaseMengubah order yang fase kohort FIFO-nya tidak lagi cocok dengan fase kohort tick saat ini.”Tindakan ini tidak dapat dilakukan pada status order saat ini.”
6042InvalidLimitOrderAmountInvalid limit order amountInput order di bawah minimum pool (atau nol) saat dibuka/ditambah/dikurangi.”Ukuran order di bawah minimum pool.”
6043OrderPhaseSaturatedTick order phase saturatedPenghitung order_phase kohort pada tick sudah jenuh; order baru tidak dapat dibuka di tick tersebut sampai kohort yang ada di-settle dan di-roll over.”Terlalu banyak order aktif di harga ini; coba tick terdekat atau tunggu order selesai.”
6044InvalidDynamicFeeConfigParamsInvalid dynamic fee config paramsCreateDynamicFeeConfig / UpdateDynamicFeeConfig ditolak; atau CreateCustomizablePool mengaktifkan dynamic fee tanpa konfigurasi yang valid.N/A pada jalur admin; “Konfigurasi dynamic fee tidak valid” pada jalur pengguna.
6045InvalidFeeOnInvalid fee on which token (must be 0, 1, or 2)CreateCustomizablePool meneruskan nilai collect_fee_on di luar {0, 1, 2}.”Internal: mode biaya tidak valid.”
6046ZeroSqrtPricesqrt_price_x64 must be greater than 0CreateCustomizablePool (atau jalur lain yang menerima sqrt harga awal yang dapat dikustomisasi) dipanggil dengan sqrt_price_x64 == 0.”Harga awal harus lebih besar dari nol.”
6047ZeroLiquidityliquidity must be greater than 0Jalur penyediaan likuiditas dipanggil dengan liquidity == 0 tanpa jumlah kompensasi.”Jumlah likuiditas harus lebih besar dari nol.”
6048MissingBaseFlagbase_flag is required when liquidity is zeroJalur open-position-by-amount menghitung liquidity == 0 dan pemanggil tidak menyertakan base_flag untuk menentukan sisi mana yang menjadi base.”Sediakan likuiditas yang bukan nol atau tentukan token mana yang menjadi base.”
6049MissingMintAccountMint account is required but not providedJalur yang mendukung Token-2022 dipanggil tanpa akun mint input/output yang diperlukan untuk memvalidasi ekstensi dan biaya transfer.”Internal: akun mint hilang — muat ulang data pool.”
6050MissingTokenProgram2022Token-2022 program is required but not providedSama seperti di atas, tetapi untuk akun program SPL-Token-2022.”Internal: program Token-2022 hilang — muat ulang dan coba lagi.”
Catatan tentang penomoran ulang. Enum ErrorCode CLMM telah dinomori ulang dalam rilis ini: lima varian lama (LOK, ZeroMintAmount, InvalidLiquidity, TransactionTooOld, InvalidRewardDesiredAmount) dan beberapa typo (Liquitity, enought, emissiones) telah dihapus/diperbaiki, dan sebelas varian baru ditambahkan. Karena Anchor menomori error berdasarkan urutan sumber, setiap kode pada atau setelah 6000 telah bergeser relatif terhadap build pra-rilis. Klien yang melakukan hard-code kode numerik terhadap versi sebelumnya perlu melakukan pemetaan ulang.
Sumber regenerasi: github.com/raydium-io/raydium-clmm — error.rs.

Error AMM v4, Farm v3 / v5 / v6, LaunchLab

Program-program ini didokumentasikan di bab masing-masing (lihat products/amm-v4/instructions, products/farm-staking/instructions, products/launchlab/instructions). Karena program-program tersebut menggunakan campuran Anchor dan surface error Solana biasa, tabel error mereka berada di dekat referensi instruksi, bukan di sini. Kode-kode di bawah ini dicadangkan oleh bab-bab tersebut:
ProgramRentang kode (hanya Anchor)Referensi
AMM v4Kode u32 custom, bukan gaya Anchorproducts/amm-v4/instructions
Farm v3 / v5Kode u32 customproducts/farm-staking/instructions
Farm v66000+ (Anchor)products/farm-staking/instructions
LaunchLab6000+ (Anchor)products/launchlab/instructions

Memetakan error SDK ke error program

TypeScript SDK resmi membungkus error on-chain ke dalam SendTransactionError dan, untuk program Anchor, AnchorError:
import { AnchorError } from "@coral-xyz/anchor";

try {
  await sdk.cpmm.swap({ ... });
} catch (err) {
  if (err instanceof AnchorError) {
    console.log(err.error.errorCode.number, err.error.errorCode.code, err.error.errorMessage);
    // 6005 ExceededSlippage "Exceeds desired slippage limit"
  } else {
    // Raw SendTransactionError — inspect err.logs for the "custom program error: 0x..." line.
  }
}
Jika Anda tidak menggunakan klien Anchor, parse log transaksi berikut:
Program <ProgramID> invoke [1]
Program log: AnchorError caused by account: pool_state. Error Code: ExceededSlippage. Error Number: 6005. Error Message: Exceeds desired slippage limit.
Pola Error Number: (\d+) stabil di berbagai versi Anchor dan aman untuk dicocokkan.

Meregenerasi tabel ini

Saat sebuah program diperbarui dan menambahkan error baru, ekstrak ulang dari sumber:
# Clone and grep the error enum in order.
git clone --depth=1 https://github.com/raydium-io/raydium-cp-swap
awk '/#\[msg\(/{ gsub(/^[ \t]*#\[msg\("|"\)\][ \t]*/,""); m=$0; getline; gsub(/,/,""); gsub(/^[ \t]+/,""); print "6000+++\t" $0 "\t" m }' \
  raydium-cp-swap/programs/cp-swap/src/error.rs
# Replace 6000+++ with monotonically-increasing 6000,6001,... Append new rows to the table above.
Selalu perbarui reference/changelog saat varian baru ditambahkan, agar integrator yang memperbarui SDK tahu bahwa mereka perlu me-refresh penanganan error mereka. Sumber: