Skip to main content
Halaman ini diterjemahkan secara otomatis oleh AI. Versi bahasa Inggris adalah acuan resmi.Lihat versi bahasa Inggris →
Sejak pembaruan 2026-07, ketergantungan OpenBook / Serum pada AMM v4 telah dihapus — tidak ada instruksi yang membaca atau menulis status OpenBook lagi. Akun pasar di bawah ini dipertahankan hanya sebagai placeholder posisional pada tata letak instruksi v1 warisan (diterima tetapi diabaikan) dan sebagai bidang referensi pada AmmInfo. Gunakan titik masuk swap V2, yang menghilangkannya sepenuhnya. Halaman ini masih mengelompokkan akun ke dalam bagian “pool-owned” dan “OpenBook (legacy)” untuk membaca transaksi yang lebih lama.

Inventaris

Pool AMM v4 mencatat satu pasar terikat pada AmmInfo saat pembuatan. Gambaran lengkapnya: Catatan: “serum” dipertahankan sebagai awalan dalam IDL dan nama bidang AMM v4 untuk kompatibilitas mundur. Akun-akun ini tidak lagi berfungsi setelah penghapusan OpenBook.

AmmInfo

Akun status root pool. Besar (≈ 752 byte) karena membawa referensi pool dan OpenBook secara inline.
Tata letak struct tidak berubah (kompatibel byte) sehingga deserializer yang ada terus bekerja, tetapi setelah penghapusan OpenBook, bidang yang ditandai DEPRECATED di atas tidak lagi ditulis — penghitung volume swap_* dibekukan pada nilai terakhirnya. Untuk analitik volume, gunakan log perdagangan daripada bidang-bidang ini. Hanya need_take_pnl_* dan pool_open_time yang secara aktif dipertahankan.
Bidang yang menghadap integrator:
  • coin_vault, pc_vault — vault SPL Token pool. coin adalah token_0 menurut konvensi Serum/OpenBook (base), pc adalah token_1 (quote).
  • coin_decimals, pc_decimals — sesuai dengan mint.
  • open_orders, target_orders, market — bidang referensi warisan. Masih ada di AmmInfo dan masih dilewatkan secara posisional pada tata letak instruksi v1, tetapi program tidak lagi membaca atau memvalidasinya. Titik masuk swap V2 menghilangkannya.
  • fees.swap_fee_numerator / swap_fee_denominator — biaya perdagangan gabungan. Default 25 / 10_000 = 0.25%.
  • status — satu status u64 terenumerasi yang membatasi operasi, bukan bitmask. Dapat diatur admin melalui SetParams dengan param = 0 (Status). Lihat Status di bawah.
  • lp_amount — total LP internal pool. Nilainya tidak sama dengan lp_mint.supply: nilainya lebih tinggi tepat satu token LP utuh (10^coin_decimals unit dasar), karena jumlah itu dihitung saat init tetapi tidak pernah di-mint. Semua matematika pro-rata memakai lp_amount, jadi gunakan itu juga.
  • amm_owner — ditulis saat pembuatan dari kunci admin yang di-hardcode pada program, bukan dari kreator.
  • state_data.need_take_pnl_* — delta antara biaya yang terkumpul kotor dan apa yang telah disapu. TakePnl mengosongkan ini.

Pengkabelan OpenBook

Dihapus. Ketergantungan OpenBook / Serum telah dihapus dari program (pembaruan 2026-07). Akun yang dijelaskan di bagian ini tidak lagi divalidasi atau digunakan. Mereka tetap sebagai bidang referensi pada AmmInfo dan sebagai placeholder posisional pada tata letak instruksi v1 warisan. Gunakan titik masuk swap V2 (SwapBaseInV2 / SwapBaseOutV2) yang melewatkan akun-akun ini sepenuhnya.
Ketika Anda memanggil instruksi v1 SwapBaseIn / SwapBaseOut, Deposit, atau Withdraw warisan, jumlah akun harus tetap cocok dengan tata letak lama (akun pasar menempati posisi historisnya), tetapi isinya tidak lagi diperiksa — tidak ada CPI yang dikeluarkan terhadapnya. Kode baru harus menggunakan varian swap V2, yang tidak mengambil akun-akun ini sama sekali.
amm_open_orders AMM adalah akun milik OpenBook yang menyimpan status limit-order pool di pasar ini: pesanan aktif, saldo yang diselesaikan, referrer, dll. amm_target_orders adalah sisi AMM: ia menyimpan grid yang dimaksudkan AMM (harga/ukuran untuk setiap slot pesanan) sehingga program dapat dengan murah membandingkan dengan apa yang saat ini diposting dan menempatkan / membatalkan perbedaannya.

PDA Authority

Ada tepat satu PDA amm_authority untuk seluruh program AMM v4. Seed-nya trivial (["amm authority"]) dan bump-nya disimpan di setiap AmmInfo. Authority ini menandatangani semua pergerakan token untuk semua pool AMM v4.
Tidak ada authority kedua yang berskala pool: satu PDA ini mencakup semua yang ditandatangani program. Bump-nya adalah 254 di mainnet dan dicerminkan pada setiap AmmInfo sebagai nonce; WithdrawExcessLamports menurunkannya kembali dengan nonce itu di-hardcode.

Vault

Vault SPL Token pool adalah akun token standar yang owner-nya adalah amm_authority. Bukan ATA — alamatnya adalah PDA yang diturunkan pada Initialize2 dari [AMM_V4_PROGRAM_ID, market, "coin_vault_associated_seed"] dan [AMM_V4_PROGRAM_ID, market, "pc_vault_associated_seed"]. Mint bukan seed, dan amm_id juga bukan. Alamat disimpan di AmmInfo; derivasi adalah keingintahuan satu kali. Token-2022 tidak didukung. Program hardcode ID program SPL Token untuk semua pergerakan vault. Mencoba mengikat pool AMM v4 ke mint Token-2022 gagal pada Initialize2 dengan InvalidSplTokenProgram.

LP mint

Mint SPL Token klasik yang authority-nya adalah amm_authority. Total supply melacak kepemilikan LP dari pool; membakar LP mengembalikan token dari kedua vault secara pro-rata. Mirror dalam status memang ada: AmmInfo.lp_amount. Nilainya tidak sama dengan supply mint — nilainya lebih tinggi tepat satu token LP utuh (10^coin_decimals unit dasar), karena jumlah itu dihitung saat init tetapi tidak pernah di-mint. Setiap perhitungan pro-rata dalam program membagi dengan lp_amount, jadi gunakan bidang itu daripada supply on-chain mint.

Status

AmmInfo.status adalah satu status u64 terenumerasi, bukan bitmask. Uji dengan kesetaraan — klien yang menguji status & 1 salah mengklasifikasikan setiap pool aktif, karena status perdagangan normal adalah 6, yang bit 0-nya disetel. Initialize2 menulis 7 ketika open_time berada di masa depan dan 6 jika tidak; pool pada 7 beralih sendiri ke 6 pada swap pertama pada atau setelah state_data.pool_open_time. Nilai di luar 0..=7 membuat AmmStatus::from_u64 panic. Multisig Raydium menetapkan status melalui SetParams dengan param = 0 (Status); hanya nilai 1–7 yang diterima. (AdminCancelOrders telah dihapus.)

Observasi / oracle

AMM v4 tidak memiliki akun observasi khusus, dan sejak penghapusan OpenBook juga tidak ada status order-book untuk menurunkannya. Jika Anda membutuhkan TWAP Raydium dengan dukungan program, gunakan CPMM atau CLMM — keduanya memelihara ring buffer ObservationState. Jika tidak, indeks log swap secara off-chain. Akun pool AMM v4 adalah PDA biasa yang dikunci pada pasar terikat — bukan keypair berseeded, dan bukan PDA per-pasangan. Daftar berikut lengkap: tidak ada akun ObservationState di antaranya. Setiap akun memakai bentuk tiga-seed yang sama [AMM_V4_PROGRAM_ID, market, <label>] di bawah AMM_V4_PROGRAM_ID:
Pasar terikat adalah satu-satunya seed variabel, itulah sebabnya satu pasar dipetakan ke tepat satu pool AMM v4. SDK dan API pra-menghitung ini untuk Anda; lihat Liquidity.getAssociatedPoolKeys dari raydium-sdk-v2. Dalam praktiknya, integrator membaca set akun lengkap pool dari GET https://api-v3.raydium.io/pools/info/ids?ids=<POOL_ID> atau dari SDK. Derivasi manual jarang diperlukan.

Referensi cepat siklus hidup

Pool dan akun mereka bertahan selamanya. Bahkan jika likuiditas sepenuhnya ditarik, AmmInfo tetap ada.

Apa yang dibaca di mana

Sumber: