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 →
AMM v4, uzun zaman önce OpenBook’a (eski adıyla Serum) likidite paylaşmayı durdurmuştur; hibrit order-book pazar yapıcılığı yolu yıllardır hareketsiz kalmıştır. Bu yükseltme temizliktir: Serum bağımlılığını, tüm order-book CPI’larını ve ölü pazar yapıcılık talimatlarını programdan kaldırır, AMM v4’ü saf bir sabit-çarpım (x·y=k) AMM olarak bırakır. Canlı ticaret davranışını değiştirmez — yerleştirilecek OpenBook siparişi kalmamıştır.

Entegratörler için TL;DR

  • Swap / Deposit / Withdraw değişiklik olmadan çalışmaya devam eder. Eski hesap düzenleriyle oluşturulan işlemler yürütülür — kaldırılan Serum/pazar hesapları basitçe yoksayılır (doğrulama yok, CPI yok). SwapBaseIn / SwapBaseOut hala 17 (+1 isteğe bağlı) hesap bekler; Deposit ve Withdraw düzenleri değişmez. Mevcut akışları canlı tutmak için istemci güncellemesi göndermeniz gerekmez.
  • V2 swap giriş noktalarına geçin. SwapBaseInV2 / SwapBaseOutV2 pazar hesapları ve amm_open_orders taşımaz (toplam 8 hesap), bu nedenle işlemler daha küçük ve daha ucuzdur. Yönlendiriciler/toplayıcılar V2 üzerinden yönlendirmelidir.
  • WithdrawPnl kırıcı bir değişikliktir (yalnızca yönetici). 17 (+1 isteğe bağlı) → 10 hesaba gider ve uyumluluk ayrıştırması yoktur; eski düzen hizalanmaz (eski #5 amm_open_orders idi) ve doğrulama başarısız olur. Yönetici araçları güncellenmelidir.
  • SetParams kırıcı bir değişikliktir (yalnızca yönetici). Hesaplar [amm, admin] olarak küçülür ve param numaralandırması yeniden numaralandırılır (Fees 9 → 2, SetOpenTime 11 → 3); AmmOwner, LastOrderDistance, UpdateOpenOrder ve ızgara parametreleri kaldırılır.
  • Birkaç talimat artık çağrılamaz. Initialize, PreInitialize, MonitorStep, MigrateToOpenBook, WithdrawSrm, SimulateInfo ve AdminCancelOrders artık geri döner. Havuzlar oluşturmak için Initialize2 kullanın.
  • Zincir üstü hesap düzenleri bayt olarak kararlı ve hata kodları değişmez. AmmInfo / StateData düzenlerini korur (eski OpenBook alanları korunur ancak kullanımdan kaldırılmış/dondurulmuş); AmmError numaralandırması korunur, yalnızca yeni NotAllowed eklenir.

Bunun neden önemli olduğu (tüccarlar, LP’ler ve entegratörler için)

  • Tüccarlar swap davranışında veya fiyatlandırmada değişiklik görmez — sabit-çarpım eğrisi değişmez. V2 düzeni swapları, ~8 daha az hesap taşıdığı için iniş açısından daha ucuzdur.
  • LP’ler aynı yatırma/çekme ekonomisini korur. Likidite uzun süredir tamamen havuz kasalarında oturmuştur, bu nedenle havuz değeri tamamen havuzda; bu yükseltme yalnızca eski pazar tesisatını siler.
  • Entegratörler daha küçük, daha basit işlemler ve doğrudan kasalardan okuyan bir alıntı modeli alır. Mevcut entegrasyonlar kırılmaz (yönetici WithdrawPnl / SetParams hariç), ancak v1-swap uyumluluk parçası geçicidir — uygun gördüğünüzde V2’ye geçin.

Talimat düzeyinde değişiklikler

Hala çağrılabilir, düzen değişmez (geriye dönük uyumlu)

Initialize2, Deposit, Withdraw, SwapBaseIn, SwapBaseOut, CreateConfigAccount ve UpdateConfigAccount mevcut hesap listelerini korur. SwapBaseIn / SwapBaseOut, Deposit ve Withdraw üzerinde OpenBook/pazar hesapları hala konumsal olarak kabul edilir ancak artık doğrulanmaz veya kullanılmaz — CPI verilmez ve havuz rezervleri yalnızca kasa olarak hesaplanır. Hesap sayısı hala eşleşmelidir, bu nedenle mevcut işlemler değişmeden yürütülür.

SwapBaseInV2 / SwapBaseOutV2 — önerilen yol

Pazar hesaplarını ve amm_open_orders’ı tamamen atlayın (8 hesap; etiketler 16 / 17). Alıntı matematiği v1 ile aynıdır. Yeni entegrasyonlar ve yönlendiriciler V2 kullanmalıdır.

WithdrawPnl — 17 (+1 isteğe bağlı) → 10 hesap (⚠️ kırıcı, uyumluluk yolu yok)

amm_open_orders ve altı pazar hesabının tümü kaldırılır. Yeni sabit 10 hesaplı, yalnızca yönetici düzeni hiçbir uyumluluk ayrıştırması içermez; eski düzen hizalanmaz ve InvalidCoinVault gibi hatalarla başarısız olur.

SetParams[amm, admin] olarak azaltılmış (⚠️ kırıcı) + yeniden numaralandırılan parametreler

Yetki, açık siparişler, hedef siparişler, kasa ve tüm pazar hesapları kaldırılır. param numaralandırması yeniden numaralandırılır ve kırpılır:
ParametreEski değerYeni değer
Status00
State11
Fees92
SetOpenTime113
Tüm order-book-ızgara parametreleri (OrderNum, Depth, AmountWave, MinPriceMultiplier, MaxPriceMultiplier, MinSize, VolMaxCutRatio, InitOrderDepth, SetSwitchTime, ClearOpenTime, Seperate) artı AmmOwner, LastOrderDistance ve UpdateOpenOrder kaldırılır. SetParamsInstruction yapısı new_pubkey ve last_order_distance’ı bırakır.

Artık çağrılamaz (çalışma zamanında geri döner; oluşturucular kaldırılır)

TalimatetiketDeğiştirme
Initialize0Initialize2
MonitorStep2hiçbiri (order-book krank, emekli)
MigrateToOpenBook5hiçbiri
WithdrawSrm8hiçbiri (SRM ücret indirimi, emekli)
PreInitialize10Initialize2
SimulateInfo12zincir dışı / SDK alıntısı
AdminCancelOrders13hiçbiri

Rezerv / durum değişiklikleri

  • Havuz varlığı formülü. Toplam havuz varlıkları artık kasa bakiyeleri − beklemede olan PnL (need_take_pnl); OpenBook açık sipariş terimi — pratikte zaten sıfır — bırakılır. Alıntı kodu doğrudan kasa bakiyelerinden okuyabilir.
  • Kullanımdan kaldırılan durum alanları. 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 ve swap_acc_coin_fee düzen uyumluluğu için korunur ancak artık güncellenmez. swap_* hacim sayaçlarına güvenen tüketiciler ticaret günlüklerine geçmelidir.
  • AmmInfo başlatma. coin_lot_size, pc_lot_size ve min_size artık 0 olarak başlatılır.
  • Kaldırılan bağımlılık ve CPI’lar. serum_dex sandığı Cargo.toml’den bırakılır; tüm Serum DEX CPI’ları (invoke_dex_new_order_v3, invoke_dex_cancel_order_v2, invoke_dex_settle_funds, invoke_dex_init_open_orders, …) invokers.rs’den kaldırılır. Kaldırılan veri yapıları: LastOrderDistance, SimulateParams, RunCrankData, GetPoolData, GetSwapBaseInData, GetSwapBaseOutData.