Halaman ini diterjemahkan secara otomatis oleh AI. Versi bahasa Inggris adalah acuan resmi.Lihat versi bahasa Inggris →
Entri ini mencakup pembaruan program AMM v4 yang akan datang. Entri ini telah diverifikasi terhadap cabang rilis lokal sebelum deployment. Konfirmasi program yang di-deploy sebelum mengandalkan instruksi baru.
solana-program =2.1.0 sejak upgrade 2.1, dan kunci itu menghalangi. Helper sistem-program berpindah ke crate solana-system-interface mereka sendiri di Solana 3.0, spl-token mencapai 9.0, dan spl-associated-token-account mencapai 8.0. Rilis ini mengambil ketiganya.
Yang kedua adalah uang yang protokol miliki. SIMD-0437 mengurangi minimum rent-exempt sebesar 90% dalam lima langkah, dan langkah 1 mendarat di mainnet pada 3 September 2026. Setiap akun yang dibuat AMM v4 sebelumnya — ratusan vault pool, LP mint, akun AmmInfo dan TargetOrders — sekarang over-funded, dan lamport dalam akun yang dimiliki program hanya dapat dipindahkan oleh program itu. Oleh karena itu instruksi baru.
TL;DR untuk integrator
- Tidak ada yang dipanggil trader atau LP yang berubah.
Initialize2,Deposit,Withdraw,SwapBaseIn,SwapBaseOut,SwapBaseInV2,SwapBaseOutV2,WithdrawPnldanSetParamsmempertahankan daftar akun, layout argumen dan matematika mereka. Tidak ada layout akun yang berubah. Tidak ada kode kesalahan yang ada yang bergerak. - Satu instruksi ditambahkan:
WithdrawExcessLamports, tag18. Hanya admin, tanpa argumen, daftar akun variadic. Ini mengembalikan lamport di atas minimum rent-exempt dari akun yang dikendalikan AMM v4 dan tidak menyentuh apa pun. Lihatproducts/amm-v4/instructions. - Satu kode kesalahan ditambahkan:
60LamportsCalculateError.AmmErrorbukan bernomor Anchor — dimulai dari0— jadi ini adalahcustom program error: 0x3c. Kode0–59tidak berubah. CreateConfigAccount(tag 14) berhenti membaca rent sysvar dan sekarang didokumentasikan sebagai instruksi 4-akun. Tidak ada yang rusak dalam rilis ini, ini termasuk: akun adalah yang terakhir dalam daftar dan handler membaca secara posisional tanpa pemeriksaan panjang, jadi tooling admin yang masih meneruskannya terus bekerja.- Penyegaran IDL diperlukan jika Anda membuat klien dari satu. Satu instruksi baru, satu varian kesalahan baru, satu daftar akun yang berubah.
WithdrawExcessLamports
Instruksi mengambil dompet collect-lamports sebagai satu-satunya penandatangan dan tujuan, PDA otoritas AMM v4, program SPL Token, dan kemudian sejumlah akun sumber. Ini mengirim pada pemilik setiap akun sumber:
Cabang wSOL adalah yang menarik. Saldo lamport akun wrapped-SOL adalah saldo token-nya, jadi program token menolak
WithdrawExcessLamports padanya sepenuhnya. Perjalanan bolak-balik melalui SyncNative dan UnwrapLamports berukuran delta mengekstrak hanya kelebihan yang disumbangkan dan meninggalkan saldo yang dibungkus persis di mana ia dimulai — yang dikonfirmasi setelahnya, dengan LamportsCalculateError jika aritmatika tidak setuju. Vault pool sisi SOL oleh karena itu mempertahankan likuiditas penuhnya melalui sweep, dan tidak ada LP yang melihat perubahan harga di seluruh satu.
Penandatangan adalah kunci khusus per cluster, hardcoded di bawah modul config_feature yang sama dengan alamat pemilik AMM dan create-pool-fee yang ada. Tidak seperti CPMM dan LaunchLab, AMM v4 menerima hanya dompet itu — tidak ada fallback admin. Alamat ada di reference/program-addresses.
CreateConfigAccount berhenti membaca rent sysvar
Solana 3.0 adalah apa yang membuat Rent::get() cara alami untuk membaca parameter rent, jadi rilis mengganti semua empat panggilan Rent::from_account_info(...) dalam program. Dalam tiga dari mereka — helper yang membuat akun token pool, LP mint dan akun PDA selama Initialize2 — akun sysvar masih dilewatkan dan masih diteruskan ke CPI token-program, jadi tidak ada yang berubah tentang daftar akun itu. Dalam CreateConfigAccount sysvar tidak memiliki tujuan lain dan adalah akun terakhir dalam daftar, jadi keluar dari daftar yang didokumentasikan:
Mengirim daftar lima-akun lama masih bekerja. Akun yang dihapus adalah yang terakhir, dan
process_create_config membaca empat akunnya secara posisional melalui next_account_info tanpa apa pun yang memeriksa jumlah total, jadi akun rent di akhir tidak pernah dilihat. Tooling admin harus diperbarui untuk kejelasan, bukan urgensi. Tidak ada konstruktor yang menghadap pengguna yang membuat instruksi ini sama sekali.
Initialize2 adalah kasus untuk tidak membaca berlebihan: ia juga berhenti memanggil Rent::from_account_info, tetapi akun rent-nya tetap di posisi 3 dan masih benar-benar digunakan — program meneruskannya ke CPI spl_token::initialize_account dan initialize_mint yang membuat vault pool dan LP mint. Menghapusnya dari daftar akun itu akan merusak pembuatan pool.
Perubahan dependensi
Potongan sistem-program yang digunakan program —
system_instruction::create_account, transfer, allocate, assign, dan ID program itu sendiri — sekarang berasal dari solana-system-interface daripada solana_program::system_program dan solana_program::system_instruction. ID program adalah byte-identical, jadi ini adalah perpindahan waktu kompilasi tanpa konsekuensi on-chain, termasuk untuk pemeriksaan InvalidSysProgramAddress yang membandingkannya.
Dua modul mati juga dihapus: srm_token dan msrm_token, deklarasi mint Serum/MSRM yang tertinggal dari penghapusan OpenBook. Tidak ada yang mereferensikannya.
Apa yang tidak berubah
- Setiap layout akun.
AmmInfo,StateData,TargetOrders,AmmConfig— ukuran yang sama, offset field yang sama. Tidak ada perubahan indexer atau decoder. - Kode kesalahan
0–59.LamportsCalculateErrorditambahkan di60, jadi tidak ada yang bergeser. - PDA otoritas AMM. Masih satu PDA untuk seluruh program, seed
["amm authority"], nonce254. - Biaya, akuntansi PnL, dan kurva. Tidak disentuh.
WithdrawExcessLamportsmemindahkan lamport yang tidak pernah menjadi bagian dari cadangan pool apa pun. - Token-2022. Masih tidak didukung. Instruksi baru berbicara hanya ke program SPL Token legacy.
- ID Program. Tidak berubah — lihat
reference/program-addresses.
Halaman yang diperbarui
products/amm-v4/instructions—WithdrawExcessLamportsditambahkan dengan daftar akun dan tabel dispatch per-pemilik; bagianCreateConfigAccount/UpdateConfigAccountbaru mencakup penghapusan rent-sysvar; baris tabel inventaris dan matriks perubahan status ditambahkan.products/amm-v4/overview— banner rilis.reference/error-codes— bagian “AMM v4:AmmErrorbukan bernomor Anchor” baru mendokumentasikan kode60dan penomoran berbasis0.reference/program-addresses— bagian “Dompet koleksi excess-lamports” baru.solana-fundamentals/rent-and-reclaimable-rent— bagian “Apa yang program Raydium sweep di sisi mereka sendiri” baru; catatan wrapped-SOL dikoreksi untuk mengatakan kedua program token mengeksposUnwrapLamports.solana-fundamentals/toolchain— Agave 3.1.10,release.anza.xyz, Rust 1.91.0.

