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 →
Sürüm bilgisi.
  • SDK: @raydium-io/raydium-sdk-v2@0.2.64-alpha
  • Cluster: Solana mainnet-beta
  • Stable AMM program ID: 5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h (bkz. reference/program-addresses)
  • Son doğrulama: 2026-09-09 SDK 0.2.64-alpha kaynağı ve raydium-sdk-V2-demo amm/trade örneklerine karşı
SDK’nın liquidity modülü Stable AMM havuzlarını yerel olarak işler. Stable havuzlar ApiV3PoolInfoStandardItem üzerinde version: 5 (veya pooltype: "StablePool") olarak görünür; AMM v4 (version: 4) sabit-ürün havuzları için olduğu gibi aynı addLiquidity / removeLiquidity / swap yardımcıları bunlar için de çalışır — SDK varyantı algılar ve doğru talimatları otomatik olarak yayınlar. Off-chain stable-curve matematiği src/raydium/liquidity/stable.ts içinde yer alır.

Kurulum

initLayout() Stable havuzlar için isteğe bağlı değildir. liquidity.computeAmountOut poolInfo.version üzerinde dallanır: version 4 için sabit-ürün formülünü kullanır, diğer her şey için this.stableLayout.stableModelData okur ve arama tablosunu enterpolasyon eder. Bu önbellek initLayout() çalışana kadar boştur, bu nedenle bunu olmadan v5 havuzunun fiyatlandırılması hata yerine çöp üretir. İdempotent ve ucuzdur — başlangıçta bir kez çağırın.İşlem oluşturucuları (swap, addLiquidity, removeLiquidity) buna ihtiyaç duymaz: pooltype.includes("StablePool") üzerinde gönderir ve AmmV5* talimatlarını yayınlar, ve ilettiğiniz miktar sınırları zaten hesaplanmıştır.
liquidity.computeAmountIn Stable havuzları desteklemez. computeAmountOut aksine, sürüm dalı yoktur — her zaman sabit-ürün tersini uygular, bu nedenle v5 havuzunda yanlış maxAmountIn döndürür. Stable havuza karşı tam çıktı swap’ı için getDxByDyBaseIn ile kendiniz ters çevirin (aşağıdaki Off-chain fiyat yardımcıları bölümüne bakın) ve sonucu swap’a fixedSide: "out" ile iletin.

Stable havuzunu tanımlama

ApiV3PoolInfoStandardItem üzerinde iki eşdeğer sinyal:
Hem AMM v4 (version: 4, sabit-ürün) hem de Stable AMM (version: 5) SDK’daki aynı LiquidityModule API’si aracılığıyla akar. Dahili olarak modül şu şekilde gönderir:
  • InstructionType.AmmV4AddLiquidity / AmmV4RemoveLiquidity v4 havuzları için
  • InstructionType.AmmV5AddLiquidity / AmmV5RemoveLiquidity v5 (Stable) havuzları için
Havuzun programId (havuz anahtarlarıyla döndürülen) SDK’ya hangi programa CPI yapacağını söyler; bunu hardcode etmeniz gerekmez.

Mint çiftine göre havuz bulma

Mint çiftinin hem v4 (sabit-ürün) havuzu hem de v5 (stable) havuzu varsa, yanıt her ikisini de içerir — akışınızın ihtiyaç duyduğu birini seçin veya her ikisini AMM Routing programına verin ve en iyi rotayı seçmesine izin verin.

Stable havuz aracılığıyla swap yapma

LiquidityModule.swap akışı v4 havuzları için aynı şekildedir — sadece v5 havuz nesnesini iletin. İki ayrıntı yanlış anlaşılması kolaydır: computeAmountOut havuzun canlı rezervlerini havuz bilgisine eklemesi gerekir (API öğesi tek başına bunları taşımaz) ve slippage düz bir sayıdır, Percent değildir:
SDK havuzun programId’sini havuz anahtarlarından okur ve Stable AMM programına gönderir. Özel programId argümanı gerekmez.

Likidite ekleme ve kaldırma

addLiquidity ve removeLiquidity v4 ve v5 havuzları arasında aynı şekilde çalışır:
Dahili olarak SDK pooltype.includes("StablePool") doğru olduğu için InstructionType.AmmV5AddLiquidity yayınlar. Karşılık gelen removeLiquidity akışı simetrik — lpAmount ve her bir tarafta kabul edeceğiniz minimum miktarları iletin.

Off-chain fiyat yardımcıları (stable.ts)

Sunucu tarafı fiyatlandırması veya geriye dönük test için SDK, temel stable-curve matematiğini ortaya çıkarır:
Bunlar saf işlevlerdir — RPC yok, imzalama yok. On-chain ModelDataInfo initLayout() tarafından bir kez alınır ve raydium.liquidity.stableLayout içinde önbelleğe alınır, .stableModelData olarak okunabilir. initStableModelLayout() idempotent’tir: yalnızca validDataCount === 0 iken yeniden alır, bu nedenle initLayout() tekrar çağırmak ücretsizdir. Mevcut rezervleri (x, y) iletin ve yardımcılar arama tablosunu ikili arama yaparak ve iki çevreleyen DataElement satırı arasında doğrusal enterpolasyon yaparak hesaplar. Temel algoritma için products/stable/math bölümüne bakın.

AMM Routing aracılığıyla yönlendirme (multi-hop / en iyi fiyat)

Bir mekanı kendiniz seçmek istemiyorsanız, AMM Routing programı her Raydium AMM’yi (v4 / CPMM / CLMM / Stable) dikkate alacak ve en iyi olan kombinasyon aracılığıyla yönlendirecektir: Router tek bir swap() yerine beş çağrılı bir boru hattıdır ve onu tam olarak yazılmıştır — onu üretimde kullanılabilir kılan önbellek tavsiyesi ile — products/routing/code-demos üzerinde. Şekil:
raydium.tradeV2.fetchRoutes yoktur ve tradeV2.swap inputMint / outputMint / slippage kabul etmez — zaten hesaplanmış swapInfo’yu getAllRouteComputeAmountOut adresinden alır. Tek bilinen havuz için, bu sayfa üzerinde daha önce gösterildiği gibi o havuz türünün kendi oluşturucusunu kullanın (raydium.liquidity.swap AMM v4 ve Stable için, raydium.cpmm.swap, raydium.clmm.swap).
Bu, üretim swapper’ları ve toplayıcıları için önerilen yoldur — Stable havuzunun var olup olmadığını veya bugün daha iyi mekan olup olmadığını manuel olarak karar vermeniz gerekmez.

Öneriler

  1. Son kullanıcı swap’ları için, tradeV2 yönlendirme akışını tercih edin. Stable dahil her Raydium havuz türünü işler.
  2. Havuz özel işlemleri için (bilinen Stable havuzda LP ekleme / kaldırma), LiquidityModule’ü doğrudan kullanın — v5 havuzlarını otomatik olarak algılar.
  3. Off-chain fiyatlandırması / analitik için, initLayout() sonrasında getStablePrice / getDyByDxBaseIn / getDxByDyBaseIn çağırın. Model verileri önbelleğe alındıktan sonra fiyatlandırma başına RPC trafiği yok.
  4. Ham SwapBaseIn talimatlarını elle kodlamayın. 2026-06-22 yükseltmesi ölü OpenBook hesaplarını kaldırdı, bu nedenle yeni swap düzeni 9 hesap alır (eski 18 hesap düzeni geriye dönük uyumluluk için hala ayrıştırılır). Deposit artık 12 hesaptır (eski 14 uyumlu), Withdraw 12 (eski 21/22 uyumlu) ve WithdrawPnl 10 uyumluluk yolu olmadan. SDK’nın önceden oluşturulmuş yardımcıları doğru düzeni ve sıralamayı seçer; kendi kodunuzu yazmak hata eğilimlidir. Tam hesap tabloları için products/stable/instructions bölümüne bakın.

Sonraki adımlar

  • Matematik — arama tablosu enterpolasyonunun nasıl çalıştığı.
  • Talimatlar — tam talimat referansı.
  • AMM Routing — AMM v4, CPMM, CLMM, Stable arasında multi-pool yönlendirmesi.
Kaynaklar: