Documentation Index
Fetch the complete documentation index at: https://docs.raydium.io/llms.txt
Use this file to discover all available pages before exploring further.
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 →
Arama-tablosu eğrisi
Stabil AMM, x·y=k formülünün yerine (x, y, fiyat) çiftlerinden oluşan seyrek bir arama tablosu kullanır. Programda bir swap fiyatlandırılırken:- Havuzun geçerli oranı rezervlerden hesaplanır.
- İkili arama yapılarak bu oranı kapsayan iki tablo girdisi bulunur.
- Doğrusal enterpolasyon uygulanarak ara bir fiyat elde edilir.
- Ücretler uygulanarak teklif döndürülür.
Tablo düzeni ve ikili arama
ModelDataInfo yönetici tarafından indekslenen 50.000’e kadar DataElement girdisini tutabilir. Sadece valid_data_count’a kadar olan girişler aktiftir. Her giriş:
- Oranı hesaplayın:
target_ratio = (x_real * multiplier) / y_real. (element.x * multiplier) / element.yiletarget_ratio’yu kapsayan girdileri bulmak için ikili arama yapın.- Bir
[min_idx, max_idx]aralığı bulunduğunda, enterpolasyon uygulayın.
state.rs::ModelDataInfo::get_mininum_range_by_xy_real’de ~150 satır uzunluğundadır. Ana değişmez: aramanın çalışması için girdiler sıralanmalıdır (x artan, y azalan, fiyat artan).
Doğrusal enterpolasyon
İki tablo noktası oranı kapatınca, enterpolasyon ara bir fiyat ve rezerv çiftini hesaplar:Ölçekleme: çarpan
Havuz rezervleri ve fiyatları farklı ölçeklerde saklanır.ModelDataInfo üzerindeki multiplier alanı bunu açıklar. Yaygın bir desen:
- Coin 6 ondalık basamağa, PC 18 ondalık basamağa sahiptir.
- Çarpan = 10^6 (veya benzer).
- Tablo girdileri u64 sınırlarına sığmak için indirgenmiş bir ölçekte saklanır.
Swap fiyatlandırması: SwapBaseIn ve SwapBaseOut
SwapBaseIn (kesin giriş)
Giriş miktarıamount_in verildiğinde:
(coin_vault, pc_vault)adresinden geçerli oranı alın.- Tablo girdilerini kapatın ve tablo-alanı oranını elde etmek için enterpolasyon yapın.
- Girişi tablo alanına dönüştürün:
dx_table = amount_in * multiplier / ratio. - Yeni X koordinatında tabloyu sorgulayarak yeni Y’yi bulun.
dy_table = y_old - y_new.- Geri dönüştürün:
dy_real = dy_table * ratio / multiplier. - İşlem ücretini uygulayın:
dy_output = dy_real - (dy_real * trade_fee_numerator / trade_fee_denominator). dy_output’u döndürün.
SwapBaseOut (kesin çıkış)
Simetrik: istenenamount_out verildiğinde, gerekli amount_in’i çözün.
Her iki yol da dolu OpenBook siparişlerini ilk olarak (dahili MonitorStep benzeri mantık aracılığıyla) kapatır, böylece geçerli rezervler önceki bloktan doldurmaları yansıtır.
Ücret uygulaması
AMM v4 ile özdeştir: tam türetme içinproducts/amm-v4/math bölümüne bakın.
pnl_portion, need_take_pnl_* adresine gider ve yönetici tarafından WithdrawPnl üzerinden çekilir. lp_portion kasada kalır, k’yı şişirir ve LP token sahibini faydalandırır.
MonitorStep ve OpenBook
AMM v4’te olduğu gibi,MonitorStep bir crank komutudur:
- Bekleyen OpenBook siparişi doldurmaları kapatır (vaultlardan havuza token taşır).
AmmInfo.target_orders’i yeni bir limit-sipariş yuvası ızgarasıyla günceller.- Yeni ızgarayı OpenBook’a gönderir.
MonitorStep’in işlem maliyeti: ~150k–180k CU (AMM v4 ile benzer).
Özet: bu neden işe yarar
Arama tablosu + enterpolasyon tasarımı verimli ve esnekdir:- Verimlilik: İkili arama O(log 50.000) ≈ 16 yinelemedir, her biri ~300–500 CU. Enterpolasyon birkaç çarpma/bölme işlemidir. Toplam fiyatlandırma maliyeti ~5k–15k CU’dur, bir formülü her swap için yeniden hesaplamaktan çok daha ucuzdur.
- Esneklik: Yönetici herhangi bir parçalı doğrusal eğriyi kodlayabilir. Stablecoin çiftleri 1:1 etrafında yüksek yoğunluk alır; teminatlı çiftler özel eğriler alır.
- OpenBook uyumluluğu: AMM v4’teki aynı
MonitorStep/TargetOrdersmantığı geçerlidir. Tablo aracılığıyla fiyat keşfi, sipariş ızgarası oluşturulmasını besler.
raydium-stable/program/src/state.rs, yöntemler get_data_by_x, get_data_by_y, get_dy_by_dx_base_in, vb. bölümüne bakın.
Sonra nereye gidilir
- Hesaplar —
ModelDataInfoveDataElementalan referansı. - Komutlar — tabloyu doldurmak için
InitModelData,UpdateModelData. - Ücretler — ücret uygulaması ve
WithdrawPnl. products/amm-v4/math— OpenBook ücret-kapsayıcı sipariş fiyatlandırma mantığı için.
raydium-stable/program/src/state.rs(enterpolasyon ve ikili arama uygulamaları)raydium-stable/program/src/math.rs(hesaplayıcı yardımcıları)


