Skip to main content
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 →
2026-07 program güncellemesi itibarıyla, AMM v4’ün OpenBook / Serum bağımlılığı kaldırılmıştır. Eski v1 SwapBaseIn / SwapBaseOut, Deposit ve Withdraw talimatları eski hesap düzenlerini korur geriye dönük uyumluluk için: market hesapları hala eski konumlarında kabul edilir, ancak artık doğrulanmaz veya kullanılmaz (CPI yayınlanmaz). Yeni entegrasyonlar, market hesaplarını tamamen atlayan V2 swap giriş noktalarını kullanmalıdır. Birkaç talimat kaldırılmış ve şimdi geri döner — changelog girişine bakın. Aşağıdaki hesap listeleri Raydium SDK’daki alan adlarını kullanır; temel IDL bazen serum_* önekleri kullanır.

Talimat envanteri

SDK, yalnızca kullanıcı tarafından erişilen talimatlar için oluşturucuları ortaya çıkarır. Bakım talimatları tipik olarak Raydium keeper tarafından çağrılır. Kaldırıldı / artık çağrılamaz (şimdi unimplemented! ile geri döner ve istemci oluşturucuları silindi): Initialize (etiket 0, Initialize2 kullanın), MonitorStep (2), MigrateToOpenBook (5), WithdrawSrm (8), PreInitialize (10, Initialize2 kullanın), SimulateInfo (12), AdminCancelOrders (13).

Initialize2

Mevcut bir OpenBook market’ine bağlı yeni bir AMM v4 pool’u başlat. Argümanlar
Hesaplar (yazılabilir W, imzalayan S) Son koşullar
  • lp_supply = sqrt(init_coin_amount × init_pc_amount) − INIT_BURN, burada INIT_BURN ≈ 100 LP birimi dolaşımdan çıkarılır.
  • OpenBook siparişleri yayınlanmaz (sipariş defteri ızgarası kaldırılmıştır). market_program / market hala geçirilir ancak yalnızca referans alanları olarak depolanır; coin_lot_size / pc_lot_size / min_size 0 olarak başlatılır.
Yaygın hatalarInvalidInput (uyumsuz ondalıklar, sıralanmamış), NotAllowed.

Deposit

Likidite ekle. Argümanlar
Hesaplar (özet) Matematik — standart orantılı. Pool’un etkili rezervlerini (vault’lar + defterde) kullanarak, SDK verilen LP miktarını veren coin/pc çiftini hesaplar ve max_* ile karşılaştırır. Her iki taraf da sınırı aşarsa ExceededSlippage ile geri döner.

Withdraw

LP yak, her iki tarafı al. Argümanlar
HesaplarDeposit gibi yön tersine çevrilmiş; lp_mint yakma için yazılabilir, kullanıcı ATA’ları alıcıdır. Hesap düzeni değişmedi (market hesapları hala konumsal olarak geçirilir, yoksayılır). Artık OpenBook’tan yerleştirme adımı yoktur — orantılı matematik vault bakiyelerini doğrudan kullanır.

SwapBaseIn

Tam giriş swapi. Her zaman bir AMM yolu swapi’dir (OpenBook eşleştirmesi aracılığıyla yönlendirilmez).
Yeni kod için V2 varyantlarını kullanın. AMM v4’ün OpenBook bağımlılığı kaldırıldığından, V1 giriş noktaları (SwapBaseIn, SwapBaseOut) hala tam 17 hesap listesini (veya isteğe bağlı target-orders hesabı ile 18) bekler, ancak OpenBook/market hesapları şimdi konumsal olarak kabul edilir ve yoksayılır — doğrulanmaz ve CPI yayınlanmaz. Yanlış hesap sayısı geçirmek hala WrongAccountsNumber ile geri döner, ancak market hesabı içeriği artık kontrol edilmez. Yeni entegrasyonlar SwapBaseInV2 / SwapBaseOutV2 kullanmalıdır; bunlar çok daha küçük bir hesap listesi alır ve bugün kanonik yürütme yolunu temsil eder. V1 formları burada bütünlük için ve mevcut zincir üstü işlemleri okumak için belgelenmiştir.
Argümanlar
Hesaplar (özet) Matematikproducts/amm-v4/math bölümüne bakın. Ön koşullar
  • amm.status swapi’ye izin verir (durum bitmaski’nin bit 0 ayarlanmamış).
  • amm.state_data.pool_open_time <= now.
  • amount_in > 0.
  • user_source_token_account en az amount_in tutar.
Son koşullar
  • Kullanıcı kaynak token’ın amount_in’ini kaybeder, hedef token’ın amount_out ≥ minimum_amount_out’unu kazanır.
  • need_take_pnl_* protokol ücreti payı tarafından artırılır.
  • Not: state_data.swap_*_in_amount / swap_*_out_amount analitik sayaçları artık güncellenmez — değerleri dondurulur. Hacim analitikleri için işlem günlüklerini kullanın.
Yaygın hatalarExceededSlippage, InvalidInput, InvalidStatus, NotAllowed (coin/pc mint özdeş).

SwapBaseOut

Tam çıkış, SwapBaseIn’in tersi. Aynı hesaplar. Argümanlar

SwapBaseInV2 / SwapBaseOutV2

Varyant swap giriş noktaları (etiketler 16 / 17) OpenBook hesaplarını tamamen atlar. Matematik V1 yolu ile özdeştir, ancak hesap listesi sadece AMM tarafı ve kullanıcıya küçülür — 8 hesap ve amm_open_orders geçirilmez: Pool rezervleri şimdi vault bakiyeleridir (bekleyen PnL eksi), bu nedenle fiyat teklifi matematik basittir ve v1 yolu ile özdeştir. Hesaplama tasarrufu yapmak ve (şimdi yoksayılan) market hesaplarını geçmekten kaçınmak için V2 kullanın. Raydium yönlendiricisi AMM v4 aracılığıyla yönlendirirken her zaman V2 formunu kullanır. Argümanlar V1 formları ile aynıdır (SwapBaseInV2 için amount_in / minimum_amount_out; SwapBaseOutV2 için max_amount_in / amount_out).

MonitorStep ve diğer kaldırılan talimatlar

Kaldırıldı — artık çağrılamaz. 2026-07 güncellemesi itibarıyla, MonitorStep (etiket 2) programdan kaldırılmış ve çağrılırsa şimdi geri döner (unimplemented!). İstemci oluşturucusu da silindi. Aynı durum MigrateToOpenBook (5), WithdrawSrm (8), SimulateInfo (12), AdminCancelOrders (13) ve eski Initialize (0) / PreInitialize (10) pool oluşturma giriş noktaları için de geçerlidir — bunun yerine Initialize2 kullanın.
Tarihsel olarak, MonitorStep pool’un OpenBook etkileşimini çalıştırdı: doldurulmuş siparişleri yerleştirdi (OpenBook CPI aracılığıyla market vault’larından pool vault’larına gelirleri taşıdı), eski siparişleri iptal etti ve target_orders ile amm_open_orders arasındaki boşluğu kapatmak için yeni siparişler yayınladı. OpenBook bağımlılığı kaldırıldığında, çalıştırılacak bir şey yoktur ve talimat gitti. Hala çağıran herhangi bir keeper veya entegrasyon çağrıyı kaldırmalıdır.

WithdrawPnl / TakePnl

Birikmiş protokol ücretlerinin yönetici tarafından temizlenmesi. Argümanlar
  • WithdrawPnl argüman almaz; need_take_pnl_* okur ve tam bu miktarları taşır.
Kırıcı değişiklik (yalnızca yönetici). Hesap listesi 17’den (+1 isteğe bağlı) 10’a düştü — amm_open_orders ve altı market hesabı kaldırıldı — uyumluluk ayrıştırması olmadan. Eski düzen yanlış hizalanır (eski #5 amm_open_orders idi, şimdi pool_coin_token_account) ve InvalidCoinVault gibi hatalarla başarısız olur. Yönetici araçları güncellenmeli.
Hesaplar (yeni 10 hesap düzeni) Etki
  • need_take_pnl_coin’i pool_coin_token_account’tan pnl_coin_token_account’a aktarır.
  • PC için aynı.
  • need_take_pnl_coin ve need_take_pnl_pc’yi sıfırlar.
  • Mantık değişikliği: vault bakiyesi birikmiş PnL’yi karşılamaya yetmezse, talimat doğrudan TakePnlError döndürür (artık sipariş defteri durumunu manipüle etmez).
Birikmiş PnL zaten değişmezden hariç tutulduğundan rezervlerde değişiklik yoktur.

SetParams

Raydium multisig tarafından çağrılan yönetici param değişiklikleri. Argümanlar bir param: u8 etiketi + yüküdür.
Kırıcı değişiklik (yalnızca yönetici). Hesap listesi sadece [amm (W), admin (S)]’ye indirildi (otorite, açık siparişler, hedef siparişler, vault ve tüm market hesapları kaldırıldı). param enum’u yeniden numaralandırıldı ve kırpıldı: Status = 0, State = 1, Fees = 2 (eski 9), SetOpenTime = 3 (eski 11). Tüm sipariş defteri ızgarası parametreleri ve AmmOwner, LastOrderDistance, UpdateOpenOrder kaldırıldı ve SetParamsInstruction yapısı new_pubkey ve last_order_distance’ı bıraktı. Yönetici araçları güncellenmeli.

Durum değişikliği matrisi

OpenBook sütunu gitti — hiçbir talimat artık bir sipariş defterine dokunmaz.

Sonraki adımlar

Kaynaklar: