Skip to main content
Halaman ini diterjemahkan secara otomatis oleh AI. Versi bahasa Inggris adalah acuan resmi.Lihat versi bahasa Inggris →
Sejak pembaruan program 2026-07, ketergantungan OpenBook / Serum AMM v4 telah dihapus. Instruksi v1 warisan SwapBaseIn / SwapBaseOut, Deposit, dan Withdraw mempertahankan tata letak akun lama untuk kompatibilitas mundur: akun pasar masih diterima di posisi lama mereka, tetapi mereka tidak lagi divalidasi atau digunakan (tidak ada CPI yang dikeluarkan). Integrasi baru harus menggunakan titik masuk swap V2, yang menghilangkan akun pasar sepenuhnya. Beberapa instruksi telah dihapus dan sekarang kembali — lihat entri changelog. Daftar akun di bawah menggunakan nama bidang dari Raydium SDK; IDL yang mendasar kadang-kadang menggunakan awalan serum_*.

Inventaris instruksi

SDK mengekspos builder hanya untuk instruksi yang menghadap pengguna. Instruksi pemeliharaan biasanya dipanggil oleh keeper Raydium. Dihapus / tidak lagi dapat dipanggil (mereka sekarang kembali dengan unimplemented!, dan builder klien mereka dihapus): Initialize (tag 0, gunakan Initialize2), MonitorStep (2), MigrateToOpenBook (5), WithdrawSrm (8), PreInitialize (10, gunakan Initialize2), SimulateInfo (12), AdminCancelOrders (13).

Initialize2

Bootstrap pool AMM v4 baru yang terikat ke pasar OpenBook yang ada. Argumen
Akun (dapat ditulis W, penandatangan S) Kondisi pasca
  • lp_supply = sqrt(init_coin_amount × init_pc_amount) − INIT_BURN, di mana INIT_BURN ≈ 100 unit LP disimpan di luar peredaran.
  • Tidak ada pesanan OpenBook yang diposting (kisi order-book telah dihapus). market_program / market masih dilewatkan tetapi hanya disimpan sebagai bidang referensi; coin_lot_size / pc_lot_size / min_size diinisialisasi ke 0.
Kesalahan umumInvalidInput (desimal tidak cocok, tidak diurutkan), NotAllowed.

Deposit

Tambah likuiditas. Argumen
Akun (ringkas) Matematika — pro-rata standar. Menggunakan cadangan efektif pool (vault + on-book), SDK menghitung pasangan coin/pc yang menghasilkan jumlah LP yang diberikan dan memeriksanya terhadap max_*. Kembali dengan ExceededSlippage jika salah satu sisi melebihi batas.

Withdraw

Bakar LP, terima kedua sisi. Argumen
Akun — seperti Deposit dengan arah terbalik; lp_mint dapat ditulis untuk pembakaran, ATA pengguna adalah penerima. Tata letak akun tidak berubah (akun pasar masih dilewatkan secara posisional, diabaikan). Tidak ada lagi langkah settle-from-OpenBook — matematika pro-rata menggunakan saldo vault secara langsung.

SwapBaseIn

Swap input-tepat. Selalu swap jalur AMM (tidak merutekan melalui pencocokan OpenBook).
Gunakan varian V2 untuk kode baru. Karena ketergantungan OpenBook AMM v4 telah dihapus, titik masuk V1 (SwapBaseIn, SwapBaseOut) masih mengharapkan daftar akun lengkap 17 (atau 18 dengan akun target-orders opsional), tetapi akun OpenBook/pasar sekarang diterima secara posisional dan diabaikan — mereka tidak divalidasi dan tidak ada CPI yang dikeluarkan. Melewatkan jumlah akun yang salah masih kembali dengan WrongAccountsNumber, tetapi isi akun pasar tidak lagi diperiksa. 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
Akun (ringkas) Matematika — lihat products/amm-v4/math. Kondisi awal
  • amm.status memungkinkan swap (bit 0 dari bitmask status tidak diatur).
  • 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, mendapatkan amount_out ≥ minimum_amount_out dari token tujuan.
  • need_take_pnl_* ditambah dengan bagian biaya protokol.
  • Catatan: penghitung analitik state_data.swap_*_in_amount / swap_*_out_amount tidak lagi diperbarui — nilainya dibekukan. Gunakan log perdagangan untuk analitik volume.
Kesalahan umumExceededSlippage, InvalidInput, InvalidStatus, NotAllowed (mint coin/pc identik).

SwapBaseOut

Output-tepat, kebalikan dari SwapBaseIn. Akun yang sama. Argumen

SwapBaseInV2 / SwapBaseOutV2

Varian titik masuk swap (tag 16 / 17) yang melewatkan akun OpenBook sepenuhnya. Matematika identik dengan jalur V1, tetapi daftar akun menyusut menjadi hanya sisi AMM dan pengguna — 8 akun, dan amm_open_orders tidak dilewatkan: Cadangan pool sekarang adalah saldo vault (minus PnL tertunda), jadi matematika kutipan langsung dan identik dengan jalur v1. Gunakan V2 untuk menghemat komputasi dan menghindari melewatkan akun pasar (sekarang diabaikan). 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 dan instruksi dihapus lainnya

Dihapus — tidak lagi dapat dipanggil. Sejak pembaruan 2026-07, MonitorStep (tag 2) telah dihapus dari program dan sekarang kembali (unimplemented!) jika dipanggil. Builder kliennya juga dihapus. Hal yang sama berlaku untuk MigrateToOpenBook (5), WithdrawSrm (8), SimulateInfo (12), AdminCancelOrders (13), dan titik masuk pembuatan pool warisan Initialize (0) / PreInitialize (10) — gunakan Initialize2 sebagai gantinya.
Secara historis, MonitorStep menggerakkan interaksi OpenBook pool: ia menyelesaikan pesanan yang diisi (memindahkan hasil dari vault pasar ke vault pool melalui CPI OpenBook), membatalkan pesanan basi, dan memposting pesanan baru untuk menutup celah antara target_orders dan amm_open_orders. Dengan ketergantungan OpenBook dihapus, tidak ada yang perlu dikgerakkan dan instruksi hilang. Setiap keeper atau integrasi yang masih memanggilnya harus menghapus panggilan.

WithdrawPnl / TakePnl

Penyapuan admin biaya protokol yang terkumpul. Argumen
  • WithdrawPnl tidak mengambil argumen; ia membaca need_take_pnl_* dan memindahkan jumlah yang tepat.
Perubahan breaking (admin saja). Daftar akun turun dari 17 (+1 opsional) menjadi 10amm_open_orders dan keenam akun pasar dihapus — tanpa penguraian kompatibilitas. Tata letak lama tidak selaras (lama #5 adalah amm_open_orders, sekarang pool_coin_token_account) dan gagal dengan kesalahan seperti InvalidCoinVault. Alat admin harus diperbarui.
Akun (tata letak 10-akun baru) 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.
  • Perubahan logika: jika saldo vault tidak cukup untuk menutupi PnL yang terkumpul, instruksi mengembalikan TakePnlError secara langsung (tidak lagi memanipulasi status order-book).
Tidak ada perubahan pada cadangan karena PnL yang terkumpul sudah dikecualikan dari invarian.

SetParams

Perubahan parameter admin, dipanggil oleh multisig Raydium. Argumen adalah tag param: u8 + payload.
Perubahan breaking (admin saja). Daftar akun dikurangi menjadi hanya [amm (W), admin (S)] (otoritas, open-orders, target-orders, vault, dan semua akun pasar dihapus). Enum param dinomori ulang dan dipangkas: Status = 0, State = 1, Fees = 2 (sebelumnya 9), SetOpenTime = 3 (sebelumnya 11). Semua parameter kisi order-book dan AmmOwner, LastOrderDistance, UpdateOpenOrder dihapus, dan struct SetParamsInstruction menghilangkan new_pubkey dan last_order_distance. Alat admin harus diperbarui.

Matriks perubahan status

Kolom OpenBook hilang — tidak ada instruksi yang menyentuh order book lagi.

Ke mana selanjutnya

Sumber: