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 →

Değişmez

Pool coin_reserve × pc_reserve = k ilişkisini korur; burada (2026-07 OpenBook kaldırılmasından sonra):
Dikkat edilmesi gereken iki nokta:
  1. Rezervler artık yalnızca vault’tur. Tarihsel açık-emir terimi (pool’un OpenBook limit emirleri olarak emanet ettiği tokenlar) kaldırılmıştır — kaldırılmadan çok önce pratikte sıfırdı. k’yi doğrudan zincir üstü vault bakiyelerinden hesaplayabilirsiniz.
  2. PnL birikimi (need_take_pnl_*) çıkarılır, böylece admin ücretleri topladığında eğri korunur. CPMM’nin protocol_fees_* hariç tutulması ile aynı ilke.
Program bunu calc_total_without_take_pnl_no_orderbook aracılığıyla hesaplar (eski emir defteri farkında olan varyant ortadan kaldırılmıştır). Her Swap* işlemi, LP’nin ücret payı rezervlere geri eklendikten sonra k' ≥ k olmasını zorunlu kılar.

Ücret kuralı

AMM v4, CPMM / CLMM’nin 1/1_000_000 kuralı yerine oran ücretleri (pay/payda çiftleri) kullanır. Zincir üstü Fees yapısı (program kaynağında Fees::initialize bölümüne bakın) varsayılan olarak:
Yorumlama (yayınlanan mainnet varsayılanları):
  • Toplam swap ücreti: swap_fee = amount_in × 25 / 10_000 = 0.25% brüt girdinin.
  • Protokol payı: pnl_numerator / pnl_denominator = 12 / 100 = 12% swap ücretinin, bu da 0.25% × 12% = 0.03% hacim anlamına gelir. Bu pay PnL sayaçlarına birikir ve WithdrawPnl tarafından toplanır.
  • LP payı: swap ücretinin kalan 88%’i, bu da 0.25% × 88% = 0.22% hacim anlamına gelir. Pool’da kalır ve k’yi şişirir.
  • Fon payı yok. AMM v4’ün CPMM/CLMM fon-ücret bölünmesi yoktur.
pnl_numerator / pnl_denominator’ın ticaret hacminin değil, ücretin bir kesri olduğuna dikkat edin — bu alan adlarının yaygın bir yanlış okuması. trade_fee_numerator / trade_fee_denominator (ayrıca 25 / 10_000) tarihsel olarak OpenBook entegrasyonu tarafından AMM’nin limit-emir ızgarası için ücret dahil fiyatlar hesaplanırken kullanılmıştır. OpenBook kodu kaldırıldığında, bu alan kalıntıdır; etkin swap ücreti swap_fee_*’dir. Bu varsayılanlardan sapmalar nadirdir ancak birkaç eski pool’da mevcuttur; her zaman AmmInfo.fees’ten ücretleri okuyun.

Doğrudan swap matematik (AMM yolu)

En basit durum: kullanıcı OpenBook ile etkileşime girmeden pool’un vault’larına karşı swap yapar. Pool’un iç rezervleri (kitap üstü tahsisatlar dahil) paydadır. SwapBaseIn (tam giriş):
Burada kullanılan rezervler vault bakiyeleridir (birikmiş PnL eksi). Tarihsel olarak formül ayrıca AMM’nin OpenBook emirlerine kilitlenmiş tokenları eklemiştir; bu terim kaldırılmıştır — etkili rezervler artık ham vault bakiyeleri eksi bekleyen PnL’ye eşittir. OpenBook tarafını yenileyen MonitorStep / örtülü kapatma yolu kaldırılmıştır. SwapBaseOut (tam çıkış):

Emir defteri etkileşimi (tarihsel)

Kaldırıldı. Bu bölümde açıklanan ızgara oluşturma, AMM v4’ün orijinal olarak eğriyi bir OpenBook pazarına nasıl yansıttığını yansıtır. OpenBook entegrasyonu — MonitorStep krankı ve build_orders ızgara mantığı dahil — programdan kaldırılmıştır (2026-07 yükseltmesi). Aşağıdaki matematik, zincir üstü target_orders / amm_open_orders hesaplarının bir zamanlar ne kadar boyutlandırıldığı için tamamen tarihsel bağlam olarak korunmuştur.
Kullanıcı swaplarından ayrı olarak, AMM v4 tarihsel olarak OpenBook pazarına bir ızgara limit emirleri yerleştirmiştir. Izgara AmmInfo parametrelerinden hesaplanmıştır:
  • depth — taraf başına fiyat seviyeleri sayısı.
  • amount_wave — seviye başına boyut temel birimi.
  • min_size, coin_lot_size, pc_lot_size — OpenBook pazarı kısıtlamaları.
  • state_data.swap_acc_coin_fee, swap_acc_pc_fee — son TakePnl’den bu yana kümülatif ücret sayaçları.
Program, mevcut eğri fiyatından sabit oran adımlarında yürüyerek seviye başına fiyatları türetir:
Tam fiyatlar ve boyutlar build_orders’da hesaplanan target_orders tarafından belirlenir ve her MonitorStep’te amm_open_orders ile karşılaştırılır. Herhangi bir sapma, iptal + yeni gönderiler ile sonuçlanır. OpenBook’ta yeni doldurulmuş emirler, OpenBook tarafını yenileyen bir sonraki işlemde pool vault’larına kapatılır. Entegratörler nadiren ızgarayı hesaplaması gerekir — Raydium bekçisi bunu korur — ancak şunu bilmek faydalıdır:
  • Önemli kitap üstü likiditeye sahip bir pool, bu likiditenin k’ye katkı sağladığını, boşta oturmadığını gösterir.
  • Eski bir OpenBook pazarı (olay sırası dolu, kranklar engellendi) ızgara güncellemelerini engeller; AMM daha sonra bir sonraki kranka kadar görünür emir defterinden sapan fiyatları alıntılayabilir.

Kapatma adımı (PnL)

0.03% protokol payı state_data.need_take_pnl_coin ve state_data.need_take_pnl_pc’ye birikir. TakePnl bu tutarları vault’lardan admin tarafından belirtilen hedefe taşır, ardından sayaçları sıfırlar. Kritik özellik: değişmezdeki rezervler her zaman eksi birikmiş PnL olarak hesaplanır, bu nedenle TakePnl eğriyi hareket ettirmez. Bu CPMM kuralı ile eşleşir.

Çalışılmış örnek

Pool durumu:
  • coin_reserve = 1_000_000_000_000 (1.000.000 coin tarafı; 6 ondalık)
  • pc_reserve = 2_000_000_000_000 (2.000.000 pc tarafı; 6 ondalık)
  • Ücretler: varsayılan swap = 25/10_000, pnl = 3/10_000.
Kullanıcı: SwapBaseIn tam-giriş 1_000_000_000 coin (1.000 coin).
LP payı (2_200_000) hiçbir yerde ayrılmaz — k’yi yükselten kalıntıdır.

Kesinlik kuralları

  • Rezerv çarpımları u128 kullanır; son bölmeler sıfıra doğru yuvarlanır.
  • swap_fee yukarı yuvarlanır (pool’un az ücret almaması için).
  • SwapBaseOut için amount_in yukarı yuvarlanır (kullanıcı az ödeme yapmaması için).
  • Aşırı rezerv oranlarına sahip pool’lar çok küçük girdilerde ZeroTradingTokens’a çarpabilir; CPMM ile aynı kural.

CPMM’ye karşı sınırlamalar

  • AMM v4’ün rezervleri artık yalnızca vault’tur, bu nedenle vault bakiyelerinden doğrudan alıntı yapabilirsiniz (eksi need_take_pnl_*) — open_orders.free / open_orders.locked tutarlarını ekleme önceki gereksinimi artık geçerli değildir. SDK / API alıntısı en basit seçenek olmaya devam eder.
  • AMM v4 yapılandırılmış zincir üstü TWAP’ı açığa çıkarmaz. AMM-v4 destekli bir fiyat isteyen harici tüketiciler bunu ticaret günlüklerinden kendileri hesaplamalıdır.
  • Token-2022 desteklenmez.

Sonraki adım

Kaynaklar: