Langsung ke konten utama
Halaman ini diterjemahkan secara otomatis oleh AI. Versi bahasa Inggris adalah acuan resmi.Lihat versi bahasa Inggris →
AMM v4 berhenti berbagi likuiditas ke OpenBook (dulunya Serum) sejak lama; jalur market-making hybrid order-book telah tidak aktif selama bertahun-tahun. Upgrade ini adalah pembersihan: menghapus dependensi Serum, semua CPI order-book, dan instruksi market-making yang sudah mati dari program, meninggalkan AMM v4 sebagai AMM constant-product (x·y=k) murni. Ini tidak mengubah perilaku trading langsung apa pun — tidak ada pesanan OpenBook yang tersisa untuk dihentikan.

TL;DR untuk integrator

  • Swap / Deposit / Withdraw tetap bekerja tanpa perubahan. Transaksi yang dibangun dengan tata letak akun lama masih dieksekusi — akun Serum/market yang dihapus cukup diabaikan (tanpa validasi, tanpa CPI). SwapBaseIn / SwapBaseOut masih mengharapkan 17 (+1 opsional) akun; tata letak Deposit dan Withdraw tidak berubah. Anda tidak perlu mengirimkan update klien untuk menjaga alur yang sudah ada tetap hidup.
  • Migrasi ke entrypoint swap V2. SwapBaseInV2 / SwapBaseOutV2 tidak membawa akun market dan tidak ada amm_open_orders (8 akun total), jadi transaksi lebih kecil dan lebih murah. Router/agregator harus merutekan melalui V2.
  • WithdrawPnl adalah perubahan yang sangat memecah (admin saja). Berkurang dari 17 (+1 opsional) → 10 akun dengan tanpa parsing kompatibilitas; tata letak lama tidak selaras (lama #5 adalah amm_open_orders) dan gagal validasi. Tooling admin harus diperbarui.
  • SetParams adalah perubahan yang sangat memecah (admin saja). Akun menyusut menjadi [amm, admin], dan enum param dinomori ulang (Fees 9 → 2, SetOpenTime 11 → 3); AmmOwner, LastOrderDistance, UpdateOpenOrder dan parameter grid dihapus.
  • Beberapa instruksi tidak lagi dapat dipanggil. Initialize, PreInitialize, MonitorStep, MigrateToOpenBook, WithdrawSrm, SimulateInfo, dan AdminCancelOrders sekarang kembali. Gunakan Initialize2 untuk membuat pool.
  • Tata letak akun on-chain stabil byte, dan kode kesalahan tidak berubah. AmmInfo / StateData mempertahankan tata letak mereka (bidang OpenBook lama dipertahankan tetapi sudah usang/beku); penomoran AmmError dipertahankan, dengan hanya NotAllowed baru yang ditambahkan.

Mengapa ini penting (untuk trader, LP, dan integrator)

  • Trader tidak melihat perubahan dalam perilaku swap atau harga — kurva constant-product tidak berubah. Swap tata letak V2 lebih murah untuk mendarat karena membawa ~8 akun lebih sedikit.
  • LP mempertahankan ekonomi deposit/withdraw yang sama. Likuiditas telah lama duduk sepenuhnya di vault pool, jadi nilai pool sepenuhnya on-pool; upgrade ini hanya menghapus pipa pasar yang sudah usang.
  • Integrator mendapatkan transaksi yang lebih kecil dan sederhana serta model quoting yang membaca langsung dari vault. Integrasi yang sudah ada tidak rusak (kecuali admin WithdrawPnl / SetParams), tetapi shim kompatibilitas v1-swap bersifat sementara — migrasi ke V2 sesuai kenyamanan Anda.

Perubahan tingkat instruksi

Masih dapat dipanggil, tata letak tidak berubah (kompatibel ke belakang)

Initialize2, Deposit, Withdraw, SwapBaseIn, SwapBaseOut, CreateConfigAccount, dan UpdateConfigAccount mempertahankan daftar akun yang sudah ada. Pada SwapBaseIn / SwapBaseOut, Deposit, dan Withdraw, akun OpenBook/market masih diterima secara posisional tetapi tidak lagi divalidasi atau digunakan — tidak ada CPI yang dikeluarkan dan cadangan pool dihitung hanya vault. Jumlah akun masih harus cocok, jadi transaksi yang sudah ada terus dieksekusi tanpa perubahan.

SwapBaseInV2 / SwapBaseOutV2 — jalur yang direkomendasikan

Hilangkan akun market dan amm_open_orders sepenuhnya (8 akun; tag 16 / 17). Matematika quote identik dengan v1. Integrasi baru dan router harus menggunakan V2.

WithdrawPnl — 17 (+1 opsional) → 10 akun (⚠️ sangat memecah, tidak ada jalur kompatibilitas)

amm_open_orders dan keenam akun market dihapus. Tata letak 10-akun tetap baru, admin-only, memiliki tanpa parsing kompatibilitas; tata letak lama tidak selaras dan gagal dengan kesalahan seperti InvalidCoinVault.

SetParams — berkurang menjadi [amm, admin] (⚠️ sangat memecah) + parameter dinomori ulang

Otoritas, open-orders, target-orders, vault, dan semua akun market dihapus. Enum param dinomori ulang dan dipangkas:
ParamNilai lamaNilai baru
Status00
State11
Fees92
SetOpenTime113
Semua parameter grid order-book (OrderNum, Depth, AmountWave, MinPriceMultiplier, MaxPriceMultiplier, MinSize, VolMaxCutRatio, InitOrderDepth, SetSwitchTime, ClearOpenTime, Seperate) ditambah AmmOwner, LastOrderDistance, dan UpdateOpenOrder dihapus. Struct SetParamsInstruction menghapus new_pubkey dan last_order_distance.

Tidak lagi dapat dipanggil (kembali saat runtime; builder dihapus)

InstruksitagPengganti
Initialize0Initialize2
MonitorStep2tidak ada (order-book crank, pensiun)
MigrateToOpenBook5tidak ada
WithdrawSrm8tidak ada (diskon biaya SRM, pensiun)
PreInitialize10Initialize2
SimulateInfo12quoting off-chain / SDK
AdminCancelOrders13tidak ada

Perubahan cadangan / state

  • Formula aset pool. Total aset pool sekarang saldo vault − PnL tertunda (need_take_pnl); istilah open-order OpenBook — sudah nol dalam praktik — dihapus. Kode quoting dapat membaca langsung dari saldo vault.
  • Bidang state yang sudah usang. StateData.total_pnl_pc, total_pnl_coin, orderbook_to_init_time, swap_coin_in_amount, swap_pc_out_amount, swap_acc_pc_fee, swap_pc_in_amount, swap_coin_out_amount, dan swap_acc_coin_fee dipertahankan untuk kompatibilitas tata letak tetapi tidak lagi diperbarui. Konsumen yang mengandalkan penghitung volume swap_* harus beralih ke trade logs.
  • Inisialisasi AmmInfo. coin_lot_size, pc_lot_size, dan min_size sekarang diinisialisasi ke 0.
  • Dependensi dan CPI yang dihapus. Crate serum_dex dihapus dari Cargo.toml; semua Serum DEX CPI (invoke_dex_new_order_v3, invoke_dex_cancel_order_v2, invoke_dex_settle_funds, invoke_dex_init_open_orders, …) dihapus dari invokers.rs. Struct data yang dihapus: LastOrderDistance, SimulateParams, RunCrankData, GetPoolData, GetSwapBaseInData, GetSwapBaseOutData.