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 →
Router matematik yapmaz
Yönlendirme programı herhangi bir fiyatlandırma mantığı uygulamaz. Saf bir orkestratördür: bir rota kabul eder, hesapları alt programlara iletir ve token akışlarını zincirler. Her hop, kendi pool programının eğrisinden fiyatlandırır:- AMM v4 hop’ları: sabit-çarpım formülünü (
x · y = k) OpenBook hibrit fiyatlandırması ile kullanır. Bkz.products/amm-v4/math. - CPMM hop’ları: yapılandırılabilir ücret seviyeleri ile sabit-çarpım formülünü kullanır. Bkz.
products/cpmm/math. - CLMM hop’ları: yoğunlaştırılmış-likidite tick matematiğini kullanır. Bkz.
algorithms/clmm-math. - Stable hop’ları: benzer varlıklar için stable-swap eğrisini kullanır. Bkz.
products/stable/math.
- Her pool’un swap talimatını CPI aracılığıyla çağırmak.
- Çıkış miktarını toplamak.
- Bunu bir sonraki hop’a giriş miktarı olarak iletmek.
- Son çıkışı çağıran tarafın slippage limitine karşı kontrol etmek.
Slippage bileşik olarak artar
Çok-hop rotasında, her hop’taki slippage bileşik olarak artar. Hop 1’deki küçük slippage, hop 2’ye giren hacim zaten azaldığı için hop 2’de daha büyük bir slippage haline gelir. Örnek:minimum_amount_out sağladığınızda, router son çıkışınızı bu global limite karşı kontrol eder. Her hop ayrıca kendi swap’ını yerel ücret yapısına karşı kontrol eder, ancak router rota ortasında yeniden fiyat teklifi vermez—rotayı önceden hesaplamalı ve yeterli slippage toleransı dahil etmelisiniz.
CLMM hop’ları ve limit_prices
CLMM pool’una her hop için, router pool’un mevcutsqrt_price_x64 değerinin belirtilen bir sınır içinde olup olmadığını kontrol eder. Sınırlar limit_prices adlı bir VecDeque<u128> olarak iletilir:
- Rotadaki her CLMM hop başına bir
sqrt_price_x64. sqrt_price_x64, CLMM tarafından kullanılan tick tabanlı fiyat gösterimidir. Tanım için bkz.algorithms/clmm-math.- Router şunları uygular:
Talimat varyantları ve limit_prices
-
SwapBaseInWithUserAccount,SwapBaseOutWithUserAccount(Eski, etiketler 0 ve 1):limit_pricesVecDeque gereklidir. Herhangi bir hop CLMM pool’u ise boş deque bir hata ile reddedilir. Her CLMM hop için sırayla bir fiyat sağlamalısınız. -
SwapBaseIn,SwapBaseOut(Mevcut, etiketler 8 ve 9):limit_pricesVecDeque isteğe bağlıdır. Boş deque sessizce yoksayılır; fiyat kontrolü yapılmaz. Yeni kod bunları kullanmalıdır.
limit_prices oluşturma
M CLMM hop’u olan bir rota için, deque tam olarak M giriş içermelidir. Bunları hop’a göre sıralayın:limit_prices ne zaman kontrol edilir
sqrt_price_x64, pool’un mevcut fiyatının bir anlık görüntüsüdür. Swap’lar yürütüldükçe sürekli değişir. Şunları yapmalısınız:
- Pool’un mevcut durumunu zincir üzerinden getirin.
- Kabul edilebilir sınırları hesaplayın (örn., mevcut fiyatın ±%0.5).
- Bu sınırları
limit_pricesiçine kodlayın. - Sınırları router talimatınıza dahil edin.
Ücret işleme
Her pool kendi yapılandırmasına göre kendi ücretini alır:- AMM v4: %0.25 (sabit) LP, protokol ve fon arasında bölünür.
- CPMM:
AmmConfigbaşına yapılandırılabilir (varsayılan %0.25, bölünme seviyeye göre değişir). - CLMM: pool başına yapılandırılabilir, giriş miktarından alınır.
- Stable: %0.02 (sabit), %88 LP / %12 protokol olarak bölünür.
products/amm-v4/feesproducts/cpmm/feesproducts/clmm/fees(varsa)products/stable/fees(varsa)
Çok-hop muhasebe örneği
USDC → SOL → STEP’i iki sabit-çarpım pool’u arasında yönlendirdiğinizi ve her birinin %0.25 ücret aldığını varsayalım:Hassasiyet hususları
Tüm Solana programları gibi, router tamsayı aritmetiği kullanır:- Tüm miktarlar
u64(lamport veya token en küçük birimleri). - Eğri hesaplamaları taşmayı önlemek için gerektiğinde
u128ara değerlerini kullanır. - Yuvarlama kuralları alt programa bağlıdır. Router yeniden yuvarlamaz.
Sonraki adımlar
products/amm-v4/math— sabit-çarpım matematiği.products/cpmm/math— Token-2022 ile CPMM sabit-çarpım.algorithms/clmm-math— yoğunlaştırılmış likidite fiyatlandırması.products/stable/math— stable-swap eğrisi.products/routing/code-demos— yönlendirmeden önce fiyat teklifi örnekleri.

