Ana içeriğe atla
Bu sayfa yapay zekâ tarafından otomatik olarak çevrilmiştir. İngilizce sürüm esas alınır.İngilizce sürümü görüntüle →
Stable AMM, kendi program kimliğine sahip bağımsız bir programdır. AMM v4 programının bir modu değildir ve AMM v4 “aracılığıyla” işlem görmez — ayrı olarak dağıtılır, yükseltilir ve çağrılır. Yalnızca işlem ücreti ve hesap düzeni kurallarında AMM v4’e benzer.
2026-06-22 yükseltmesi — ölü OpenBook (market) kodunun kaldırılması. Stable AMM çok zaman önce OpenBook’a emir göndermeyi durdurdu; sipariş defteri pazar yapıcılığı yolu yıllardır hareketsiz kalmıştır. Bu yükseltme, kalan pazar ile ilgili hesapları ve kodu siler — canlı işlem davranışını değiştirmez.Entegratörler için iki sonuç:
  1. Daha küçük hesap düzenleri. SwapBaseIn / SwapBaseOut (18 → 9), Deposit (14 → 12) ve Withdraw (21/22 → 12) ölü Serum/market hesaplarını kaldırır. Eski düzenler geriye dönük uyumluluk için hala ayrıştırılır. WithdrawPnl (16 → 10) uyumluluk yolu olmayan sabit bir kırılma değişikliğidir (yalnızca yönetici).
  2. Çoğu talimat kaldırılmıştır. Yalnızca SwapBaseIn, SwapBaseOut, Deposit, Withdraw ve WithdrawPnl çağrılabilir kalır. Diğer tüm talimatlar artık çağrılamaz.
Değişiklik günlüğü: reference/changelog.

Talimat envanteri

Çağrılabilir

TalimatKategoriNotlar
DepositLikiditeLikidite ekle, LP al. Yeni 12 hesaplı düzen; eski 14 hesaplı düzen hala uyumlu.
WithdrawLikiditeLP yak, her iki tarafı al. Yeni 12 hesaplı düzen; eski 21/22 hesaplı düzen hala uyumlu.
SwapBaseInSwapTam giriş swapi. Yeni 9 hesaplı düzen; eski 18 hesaplı düzen hala uyumlu.
SwapBaseOutSwapTam çıkış swapi. Yeni 9 hesaplı düzen; eski 18 hesaplı düzen hala uyumlu.
WithdrawPnlYöneticiBirikmiş protokol ücretlerini topla. Yeni 10 hesaplı düzen (sabit kırılma — eski düzen uyumluluğu yok).

Kaldırılan (artık çağrılamayan)

Bunlar 2026-06-22 yükseltmesinde kaldırılmış ve artık çağrılamaz. Bkz. Kaldırılan talimatlar.
TalimatEski kategoriEski amaç
InitializeYaşam döngüsüHavuz oluştur.
PreInitializeYaşam döngüsüEski ön ayırma yardımcısı.
InitModelDataModel kurulumuArama tablosunu oluştur ve başlat.
UpdateModelDataModel kurulumuÇağrı başına 5 tablo öğesine kadar doldur.
MonitorStepCrankOpenBook doldurmaları kapat, emirleri yeniden gönder.
SetParamsYöneticiHavuz parametrelerini değiştir.
WithdrawSrmEskiSRM ücret indirimi geri ödemelerini topla.
SimulateInfoTanılamaSalt okunur fiyat teklifi yardımcısı.

Deposit

Likidite ekle, LP tokenleri al. Argümanlar
max_coin_amount: u64
max_pc_amount: u64
base_side: u64          // 0 = base on coin, 1 = base on pc
Hesaplar — yeni düzen, 12 hesap (yazılabilir W, imzalayan S)
#AdWSNotlar
0token_programSPL Token.
1ammWHavuzun AmmInfo’su.
2amm_authorityProgram genelinde PDA.
3amm_target_ordersW
4amm_lp_mintWLP mint’i.
5amm_coin_vaultWHavuz coin kasası.
6amm_pc_vaultWHavuz pc kasası.
7model_data_accountSalt okunur arama tablosu.
8user_source_coinWKullanıcının coin girdisi.
9user_source_pcWKullanıcının pc girdisi.
10user_dest_lpWKullanıcının LP ATA’sı.
11user_source_ownerSİşlem imzalayan.
Uyumluluk: amm_open_orders (eski #3) ve serum_market (eski #9) kaldırılmıştır. 14 hesap geçirildiğinde, talimat eski 14 hesaplı düzenle ayrıştırılır; Serum hesapları yoksayılır. Matematik — oranı hesaplamak için arama tablosunu kullanan standart pro-rata. SDK, istenen LP miktarı için coin/pc çiftini hesaplar ve maksimum sınırlara karşı kontrol eder.

Withdraw

LP yak, her iki tarafı pro-rata al. Argümanlar
amount: u64            // Yakılacak LP tokenleri
Hesaplar — yeni düzen, 12 hesap (yazılabilir W, imzalayan S)
#AdWSNotlar
0token_programSPL Token.
1ammWHavuzun AmmInfo’su.
2amm_authorityProgram genelinde PDA.
3amm_target_ordersW
4amm_lp_mintWLP mint’i.
5amm_coin_vaultWHavuz coin kasası.
6amm_pc_vaultWHavuz pc kasası.
7model_data_accountSalt okunur arama tablosu.
8user_source_lpWKullanıcının LP kaynağı.
9user_dest_coinWKullanıcının coin çıktısı.
10user_dest_pcWKullanıcının pc çıktısı.
11user_lp_ownerSİşlem imzalayan.
Uyumluluk: dokuz Serum hesabı (amm_open_orders, serum_program, serum_market, serum_coin_vault, serum_pc_vault, serum_vault_signer, serum_event_q, serum_bids, serum_asks) kaldırılmıştır. Eski 21- veya 22 hesaplı düzenler hala kabul edilir. Ancak, 22. isteğe bağlı referrer_pc_wallet hesabı için referral ücret mantığı kaldırılmıştır — hala geçirilebilir ancak artık etkili olmaz. Ön koşullar
  • user_source_lp en az amount tutar.
Son koşullar
  • amount LP tokenleri yakılır.
  • Kullanıcı, birikmiş ücretler için ayarlanmış mevcut pro-rata’ya göre coin ve pc miktarlarını alır.

SwapBaseIn

Fiyatlandırma için arama tablosunu kullanan tam giriş swapi. Argümanlar
amount_in: u64
minimum_amount_out: u64
Hesaplar — yeni düzen, 9 hesap (yazılabilir W, imzalayan S)
#AdWSNotlar
0spl_token programSPL Token.
1ammWHavuzun AmmInfo’su.
2amm_authorityProgram genelinde PDA.
3amm_coin_vaultWHavuz coin kasası.
4amm_pc_vaultWHavuz pc kasası.
5model_data_accountSalt okunur arama tablosu.
6user_source_tokenWKullanıcının giriş token hesabı.
7user_destination_tokenWKullanıcının çıkış token hesabı.
8user_source_ownerSKullanıcı (işlem imzalayan).
Uyumluluk: dokuz OpenBook hesabı (amm_open_orders, serum_program, serum_market, serum_bids, serum_asks, serum_event_queue, serum_coin_vault, serum_pc_vault, serum_vault_signer) kaldırılmıştır. Geçirilen hesap sayısı 9 değilse, talimat eski 18 hesaplı düzenle ayrıştırılır; Serum hesapları hala konumlarını işgal etmelidir, ancak içerikleri artık doğrulanmaz veya kullanılmaz. Ön koşullar
  • amm.status swapi izin verir.
  • user_source_tokenamount_in tutar.
Son koşullar
  • Kullanıcı amount_in kaybeder, amount_out ≥ minimum_amount_out kazanır.
  • Havuz ücretleri need_take_pnl_* sayaçlarını artırır.
Matematikproducts/stable/math içinde açıklanan arama tablosu interpolasyonu.

SwapBaseOut

Tam çıkış swapi (SwapBaseIn’in tersi). Aynı 9 hesaplı düzen, farklı matematik yönü. Argümanlar
max_amount_in: u64
amount_out: u64

WithdrawPnl

Yalnızca yönetici. need_take_pnl_*’den birikmiş protokol ücretlerini belirlenen PnL hesaplarına topla.
Sabit kırılma değişikliği — uyumluluk yolu yok. Bu talimatın eski düzen için hiçbir ayrıştırması yoktur. Eski düzeni göndermek, hesap yanlış hizalanması nedeniyle InvalidTokenCoin gibi doğrulama hataları ile başarısız olur (eski #3 open_orders idi). WithdrawPnl’yi çağıran yönetici araçları yeni 10 hesaplı düzene güncellenmelidir.
Argümanlar — hiçbiri (durum odaklı). Hesaplar — yeni düzen, sabit 10 hesap, yalnızca yönetici (yazılabilir W, imzalayan S)
#AdWSNotlar
0spl_token programSPL Token.
1ammWHavuzun AmmInfo’su.
2amm_authorityProgram genelinde PDA.
3amm_coin_vaultWHavuz coin kasası.
4amm_pc_vaultWHavuz pc kasası.
5amm_target_ordersW
6model_dataArama tablosu.
7user_coinWYöneticinin coin hesabı (ücret alır).
8user_pcWYöneticinin pc hesabı (ücret alır).
9amm_adminSHavuz yöneticisi (imzalayan).
Mantık değişikliği: havuzun mevcut fonları birikmiş PnL’yi çekmek için yetersiz olduğunda, havuz artık CancelAllOrdersState / Disabled durumuna konulmaz; talimat doğrudan TakePnlError döndürür. İsteğe bağlı referrer_pc_wallet da kaldırılmıştır. Ön koşullar
  • amm_admin yetkili olmalıdır.
Son koşullar
  • need_take_pnl_coin ve need_take_pnl_pc yöneticinin hesaplarına aktarılır.
  • Sayaçlar sıfırlanır.

Kaldırılan talimatlar

Aşağıdaki talimatlar 2026-06-22 yükseltmesinde kaldırılmış ve artık çağrılamaz. Entegratörler bunları geçmiş işlemlerde ve SDK’larda tanısınlar diye burada belgelenmiştir.
  • Initialize — eski zamanlarda yeni bir Stable AMM havuzunu önyükledi. Kaldırıldı.
  • PreInitialize — eski ön ayırma yardımcısı. Kaldırıldı.
  • InitModelData — eski zamanlarda ModelDataInfo arama tablosunu oluşturdu ve başlattı. Kaldırıldı.
  • UpdateModelData — eski zamanlarda çağrı başına 5 arama tablosu öğesine kadar doldurdu. Kaldırıldı.
  • MonitorStep — doldurmaları kapatan ve emir ızgarasını yeniden gönderen OpenBook cranki. Havuz OpenBook’a göndermeyi durdurduktan sonra zaten uzun süredir hareketsiz; şimdi kaldırıldı.
  • SetParams — yönetici parametre değişiklikleri (durum, ücretler, sahip, model-veri anahtarı, vb.). Kaldırıldı.
  • WithdrawSrm — erken Serum döneminden havuzlar için SRM ücret indirimi geri ödemelerini topladı. Kaldırıldı.
  • SimulateInfo — salt okunur fiyat teklifi yardımcısı. Kaldırıldı; fiyat teklifi için SDK’nın çevrimdışı kararlı eğri yardımcılarını kullanın (bkz. Kod örnekleri).

Sonraki adımlar

  • Hesaplar — hesap alanı düzenleri ve boyutları için.
  • Matematik — arama tablosu interpolasyon mantığı için.
  • Kod örnekleri — SDK’dan bunları nasıl çağıracağınızı görmek için.
Kaynaklar:
  • raydium-stable/program/src/instruction.rs (enum ve pack/unpack)
  • raydium-stable/program/src/processor.rs (yürütme mantığı)