Skip to main content
Halaman ini diterjemahkan secara otomatis oleh AI. Versi bahasa Inggris adalah acuan resmi.Lihat versi bahasa Inggris →
Stable AMM adalah program tersendiri; struktur akun di sisi pool menyerupai AMM v4 (AmmInfo, vault, authority), dan secara tambahan memiliki akun ModelDataInfo yang menyimpan tabel pencarian. Halaman ini mencakup keduanya.

Inventaris

AMM murni. Stable AMM menyimpan semua likuiditas di vault miliknya sendiri dan tidak bergantung pada OpenBook. Awalnya memiliki jalur market-making OpenBook, tetapi jalur tersebut telah tidak aktif selama bertahun-tahun, dan upgrade 2026-06-22 menghapus kode sisa. Akun market serum_* dan amm_open_orders di bawah ini oleh karena itu legacy: mungkin masih muncul dalam transaksi tata letak lama untuk kompatibilitas mundur, tetapi program tidak memvalidasi atau membacanya, dan instruksi tata letak baru menghilangkannya sepenuhnya.
Inventaris aktif sekarang sepenuhnya di sisi pool:

AmmInfo

Akun status root. Tata letaknya hampir identik dengan AMM v4 — parameter pool, desimal, biaya, referensi vault/mint — dengan satu penambahan: bidang model_data_key yang menunjuk ke tabel pencarian.
Bidang utama yang dihadapi integrator:
  • model_data_key — alamat tabel pencarian. Harus diteruskan ke setiap instruksi.
  • fees — struktur identik dengan AMM v4. Default ke biaya perdagangan 0,25%, pembagian LP 0,22% / protokol 0,03%.
  • coin_vault, pc_vault — vault pool.
  • status — bitmask yang mengontrol swap/deposit/withdraw/crank.
  • out_put.need_take_pnl_* — disapu oleh WithdrawPnl.

ModelDataInfo

Tabel pencarian. Larik jarang besar dari titik harga/kuantitas.
Siklus hidup: Instruksi setup yang membangun tabel ini — InitModelData (membuat akun) dan UpdateModelData (mengisi elemen, menetapkan valid_data_count) — dihapus dalam upgrade 2026-06-22. Tabel di pool yang ada sekarang tetap. Pada waktu runtime, instruksi yang dapat dipanggil yang tersisa masih menggunakannya:
  • Swap / deposit / withdraw memanggil fungsi pencarian yang pencarian biner dan interpolasi dalam elements[0..valid_data_count].

DataElement

Entri atom dalam tabel. Harus diurutkan (x naik, y turun, harga naik) agar pencarian biner berfungsi.
Saat mengisi tabel, admin menentukan ini pra-skala. Program tidak memvalidasi urutan pengurutan on-chain (untuk kecepatan), jadi pengurutan yang salah menyebabkan kutipan yang tidak benar.

Authority dan vault

Sama seperti AMM v4:
  • amm_authority adalah PDA program-wide tunggal yang diturunkan dengan seed ["amm authority"]. Ini memiliki semua vault pool dan menandatangani pergerakan mereka.
  • Vault adalah akun SPL Token yang pemiliknya adalah amm_authority, bukan ATA.
Token-2022 tidak didukung.

Bitmask status

Identik dengan AMM v4. Mengontrol apakah swap/deposit/withdraw/crank diaktifkan.

Pelacakan biaya dan PnL

Struct out_put melacak:
  • need_take_pnl_coin, need_take_pnl_pc — biaya protokol terakumulasi tetapi belum disapu. WithdrawPnl memindahkan ini.
  • swap_coin_in_amount, swap_pc_in_amount, dll. — penghitung analitik.
Perhitungan aset pool (pasca-decoupling). Karena tidak ada dana yang disimpan sebagai pesanan terbuka OpenBook lagi, total aset pool sekarang dihitung sepenuhnya dari vault:
Indexer dan kode kutipan yang merekonstruksi nilai pool dari saldo OpenOrders harus menghilangkan istilah itu.

Ukuran akun

ModelDataInfo besar (~1,2 MB, karena 50.000 elemen × 24 byte per elemen). Inilah mengapa membuat pool Stable memerlukan alokasi akun dan rent eksplisit. SDK dan alat Raydium menangani ini secara transparan; integrator jarang perlu mengalokasikan secara manual. Seperti AMM v4, Stable AMM menggunakan kunci bersemai (bukan PDA murni). Identitas pool kanonik diturunkan melalui:
Demikian pula untuk vault, LP mint, target orders, dll. Dalam praktiknya, gunakan SDK atau API untuk mengambil alamat yang telah dihitung sebelumnya.

Apa yang dibaca di mana

Sumber: