Halaman ini diterjemahkan secara otomatis oleh AI. Versi bahasa Inggris adalah acuan resmi.Lihat versi bahasa Inggris →
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/SwapBaseOutmasih mengharapkan 17 (+1 opsional) akun; tata letakDepositdanWithdrawtidak berubah. Anda tidak perlu mengirimkan update klien untuk menjaga alur yang sudah ada tetap hidup. - Migrasi ke entrypoint swap V2.
SwapBaseInV2/SwapBaseOutV2tidak membawa akun market dan tidak adaamm_open_orders(8 akun total), jadi transaksi lebih kecil dan lebih murah. Router/agregator harus merutekan melalui V2. WithdrawPnladalah perubahan yang sangat memecah (admin saja). Berkurang dari 17 (+1 opsional) → 10 akun dengan tanpa parsing kompatibilitas; tata letak lama tidak selaras (lama #5 adalahamm_open_orders) dan gagal validasi. Tooling admin harus diperbarui.SetParamsadalah perubahan yang sangat memecah (admin saja). Akun menyusut menjadi[amm, admin], dan enumparamdinomori ulang (Fees9 → 2,SetOpenTime11 → 3);AmmOwner,LastOrderDistance,UpdateOpenOrderdan parameter grid dihapus.- Beberapa instruksi tidak lagi dapat dipanggil.
Initialize,PreInitialize,MonitorStep,MigrateToOpenBook,WithdrawSrm,SimulateInfo, danAdminCancelOrderssekarang kembali. GunakanInitialize2untuk membuat pool. - Tata letak akun on-chain stabil byte, dan kode kesalahan tidak berubah.
AmmInfo/StateDatamempertahankan tata letak mereka (bidang OpenBook lama dipertahankan tetapi sudah usang/beku); penomoranAmmErrordipertahankan, dengan hanyaNotAllowedbaru 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:
| Param | Nilai lama | Nilai baru |
|---|---|---|
Status | 0 | 0 |
State | 1 | 1 |
Fees | 9 | 2 |
SetOpenTime | 11 | 3 |
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)
| Instruksi | tag | Pengganti |
|---|---|---|
Initialize | 0 | Initialize2 |
MonitorStep | 2 | tidak ada (order-book crank, pensiun) |
MigrateToOpenBook | 5 | tidak ada |
WithdrawSrm | 8 | tidak ada (diskon biaya SRM, pensiun) |
PreInitialize | 10 | Initialize2 |
SimulateInfo | 12 | quoting off-chain / SDK |
AdminCancelOrders | 13 | tidak 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, danswap_acc_coin_feedipertahankan untuk kompatibilitas tata letak tetapi tidak lagi diperbarui. Konsumen yang mengandalkan penghitung volumeswap_*harus beralih ke trade logs. - Inisialisasi
AmmInfo.coin_lot_size,pc_lot_size, danmin_sizesekarang diinisialisasi ke0. - Dependensi dan CPI yang dihapus. Crate
serum_dexdihapus dariCargo.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 dariinvokers.rs. Struct data yang dihapus:LastOrderDistance,SimulateParams,RunCrankData,GetPoolData,GetSwapBaseInData,GetSwapBaseOutData.

