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 →
Instruksi AMM v4 secara seragam mengharapkan baik sisi pool (akun program AMM v4) maupun sisi market (akun OpenBook untuk market yang terikat). Menghilangkan atau tidak cocok dengan kedua set akan mengakibatkan pengembalian. Daftar akun di bawah menggunakan nama field dari SDK Raydium untuk kejelasan; IDL yang mendasar kadang menggunakan prefiks serum_*.

Inventaris instruksi

GrupInstruksiCatatan
Siklus hidup poolInitialize2Instruksi pembuatan pool saat ini (masih berfungsi; UI standar ke CPMM untuk pool baru).
LikuiditasDepositTambah likuiditas, terima LP.
LikuiditasWithdrawBakar LP, terima kedua sisi secara pro-rata.
SwapSwapBaseInSwap input-pasti (jalur penuh: vault + OpenBook).
SwapSwapBaseOutSwap output-pasti (jalur penuh).
SwapSwapBaseInV2Swap input-pasti yang melewati OpenBook — vault saja, lebih sedikit akun.
SwapSwapBaseOutV2Swap output-pasti yang melewati OpenBook.
PemeliharaanSetParamsAdmin: ubah parameter pool.
PemeliharaanWithdrawPnlBersihkan PnL protokol yang terkumpul ke akun pemilik PnL.
PemeliharaanCreateConfigAccountAdmin: inisialisasi PDA AmmConfig tingkat program.
PemeliharaanUpdateConfigAccountAdmin: ubah parameter konfigurasi tingkat program.
SDK mengekspos builder untuk instruksi yang menghadap pengguna saja. Instruksi pemeliharaan biasanya dijalankan oleh penjaga Raydium.

Initialize2

Bootstrap pool AMM v4 baru yang terikat ke market OpenBook yang ada. Argumen
nonce:        u8
open_time:    u64
init_pc_amount:   u64
init_coin_amount: u64
Akun (dapat ditulis W, penanda tangan S)
#NamaWSCatatan
1token_programSPL Token.
2system_program
3rent
4ammWAkun AmmInfo (kunci berdasarkan seed).
5amm_authorityPDA program.
6amm_open_ordersWOpenBook OpenOrders (berdasarkan seed).
7lp_mintW
8coin_mint
9pc_mint
10pool_coin_token_accountW
11pool_pc_token_accountW
12pool_withdraw_queueW
13pool_target_orders_accountW
14pool_lp_token_accountWATA LP pembuat.
15pool_temp_lp_token_accountWAkun awal.
16market_programProgram OpenBook.
17marketMarket OpenBook.
18user_walletWSPembuat. Membayar rent dan mendanai deposit awal.
19user_token_coinW
20user_token_pcW
Kondisi pasca
  • lp_supply = sqrt(init_coin_amount × init_pc_amount) − INIT_BURN, di mana INIT_BURN ≈ 100 unit LP disimpan dari peredaran.
  • Pesanan OpenBook belum diposting; MonitorStep pertama memposting grid awal.
Kesalahan umumInvalidInput (desimal tidak cocok, tidak terurut), NotApproved, sisi OpenBook InvalidMarketState.

Deposit

Tambah likuiditas. Argumen
max_coin_amount: u64
max_pc_amount:   u64
base_side:       u64    // 0 = basis pada coin, 1 = basis pada pc
// (beberapa varian SDK juga menerima other_amount_min)
Akun (singkat)
#NamaWS
1token_program
2ammW
3amm_authority
4amm_open_orders
5amm_target_ordersW
6lp_mintW
7pool_coin_token_accountW
8pool_pc_token_accountW
9market
10user_coin_token_accountW
11user_pc_token_accountW
12user_lp_token_accountW
13user_ownerS
Matemat — pro-rata standar. Menggunakan reserve efektif pool (vault + on-book), SDK menghitung pasangan coin/pc yang menghasilkan jumlah LP yang diberikan dan memeriksanya terhadap max_*. Mengembalikan dengan ExceededSlippage jika salah satu sisi melampaui batas.

Withdraw

Bakar LP, terima kedua sisi. Argumen
amount: u64    // LP untuk dibakar
Akun — seperti Deposit dengan arah terbalik; lp_mint dapat ditulis untuk pembakaran, ATA pengguna adalah penerima. Langkah mirip MonitorStep settlement-dari-OpenBook terjadi secara internal sebelum matemat pro-rata sehingga penebusan menggunakan reserve segar.

SwapBaseIn

Swap input-pasti. Selalu swap jalur AMM (tidak merutekan melalui pencocokan OpenBook).
Gunakan varian V2 untuk kode baru. Karena AMM v4 tidak lagi berbagi likuiditas ke OpenBook, entrypoint V1 (SwapBaseIn, SwapBaseOut) — yang masih memerlukan set lengkap akun OpenBook untuk validasi — secara fungsional berlebihan. Integrasi baru harus menggunakan SwapBaseInV2 / SwapBaseOutV2, yang mengambil daftar akun yang jauh lebih kecil dan mewakili jalur eksekusi kanonik hari ini. Bentuk V1 didokumentasikan di sini untuk kelengkapan dan untuk membaca transaksi on-chain yang ada.
Argumen
amount_in:            u64
minimum_amount_out:   u64
Akun (singkat)
#NamaWS
1token_program
2ammW
3amm_authority
4amm_open_ordersW
5amm_target_ordersW
6pool_coin_token_accountW
7pool_pc_token_accountW
8market_program
9marketW
10market_bidsW
11market_asksW
12market_event_queueW
13market_coin_vaultW
14market_pc_vaultW
15market_vault_signer
16user_source_token_accountW
17user_dest_token_accountW
18user_ownerS
Matemat — lihat products/amm-v4/math. Kondisi pra
  • amm.status mengizinkan swap (bit 0 dari bitmask status tidak ditetapkan).
  • amm.state_data.pool_open_time <= now.
  • amount_in > 0.
  • user_source_token_account memegang setidaknya amount_in.
Kondisi pasca
  • Pengguna kehilangan amount_in dari token sumber, memperoleh amount_out ≥ minimum_amount_out dari token tujuan.
  • state_data.swap_*_in_amount dan swap_*_out_amount ditambah (untuk analitik).
  • need_take_pnl_* ditambah dengan bagian biaya protokol.
Kesalahan umumExceededSlippage, InvalidInput, InvalidStatus, InvalidMarket.

SwapBaseOut

Output-pasti, kebalikan dari SwapBaseIn. Akun yang sama. Argumen
max_amount_in: u64
amount_out:    u64

SwapBaseInV2 / SwapBaseOutV2

Varian entrypoint swap yang melewati akun OpenBook sepenuhnya. Matemat identik dengan jalur V1, tetapi daftar akun menyusut ke sisi AMM saja:
#NamaWS
1token_program
2ammW
3amm_authority
4amm_open_orders
5pool_coin_token_accountW
6pool_pc_token_accountW
7user_source_token_accountW
8user_dest_token_accountW
9user_ownerS
Reserve efektif pool masih memperhitungkan token yang diposting di OpenBook, jadi matemat kuotasi tidak berubah. Gunakan V2 untuk menghemat komputasi dan menghindari melewatkan akun market ketika Anda tidak memerlukan crank OpenBook dalam transaksi yang sama. Router Raydium selalu menggunakan bentuk V2 saat merutekan melalui AMM v4. Argumen sama dengan bentuk V1 (amount_in / minimum_amount_out untuk SwapBaseInV2; max_amount_in / amount_out untuk SwapBaseOutV2).

MonitorStep (warisan / inert)

Tidak lagi dikerjakan. AMM v4 tidak lagi berbagi likuiditas ke OpenBook, jadi MonitorStep tidak ada yang harus dilakukan — pool tidak memiliki pesanan yang diposting untuk diselesaikan, dibatalkan, atau diganti. Instruksi tetap berada di program on-chain untuk kompatibilitas kebelakangan tetapi penjaga Raydium tidak lagi memanggilnya. Memanggilnya secara manual pada dasarnya adalah no-op (selain dari menyegarkan state yang dinolkan) dan seharusnya tidak diperlukan oleh integrator.
Awalnya instruksi ini melakukan crank pada interaksi OpenBook pool. Argumen
plan_order_limit:   u16
place_order_limit:  u16
cancel_order_limit: u16
Akun — semuanya di atas untuk swap, ditambah akun administratif OpenBook. Efek asli (tidak lagi relevan dalam praktik):
  • Menyelesaikan pesanan apa pun yang diisi (hasilnya dipindahkan dari market_coin_vault/market_pc_vault ke vault pool melalui OpenBook CPI).
  • Membatalkan pesanan basi yang harganya atau ukurannya tidak lagi cocok dengan target_orders.
  • Memposting pesanan baru untuk menutup celah antara target_orders dan amm_open_orders.
Tanpa izin. Akun apa pun dapat memanggilnya; secara historis penjaga Raydium melakukannya secara rutin.

WithdrawPnl / TakePnl

Pembersihan admin biaya protokol yang terkumpul. Argumen
  • WithdrawPnl tidak mengambil arg; membaca need_take_pnl_* dan memindahkan jumlah yang tepat.
Akun (singkat)
#NamaWS
1token_program
2ammW
3amm_authority
4amm_config
5amm_open_ordersW
6pool_coin_token_accountW
7pool_pc_token_accountW
8pnl_coin_token_accountWPenerima, disimpan di AmmConfig.
9pnl_pc_token_accountW
10pnl_ownerSMultisig admin.
11market_program
12marketW
13market_event_queueW
14market_coin_vaultW
15market_pc_vaultW
16market_vault_signer
Efek
  • Mentransfer need_take_pnl_coin dari pool_coin_token_account ke pnl_coin_token_account.
  • Sama untuk pc.
  • Mengosongkan need_take_pnl_coin dan need_take_pnl_pc.
Tidak ada perubahan pada reserve karena PnL yang terkumpul sudah dikecualikan dari invarian.

SetParams

Perubahan parameter admin: bitmask status, kedalaman grid pemesanan, gelombang jumlah, biaya (jarang), dll. Dipanggil oleh multisig Raydium. Argumen adalah tag param: u8 + payload, serupa dengan UpdateAmmConfig CPMM.

Matriks perubahan state

Instruksisupply lp_mintVaultPenghitung PnLOpenBook
Initialize2supply init dicetak ke pembuat+ init_coin_amount, + init_pc_amount0OpenOrders dibuat
Deposit++ keduaselesaikan pengisian
Withdraw− keduaselesaikan pengisian
SwapBaseIn+ in, − out+ bagian pnlmungkin re-post grid
SwapBaseOut+ in, − out+ bagian pnlmungkin re-post grid
MonitorStepselesaikan pengisianbatalkan / post
WithdrawPnl− (pnl dikumpulkan)0
SetParams

Ke mana selanjutnya

Sumber: