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 notu. Bu sayfa
@raydium-io/raydium-sdk-v2@0.2.64-alpha sürümünü belgeler; bu, bu sitedeki tüm kod örneklerinin kullandığı sürümdür. SDK henüz 1.0’dan öncedir ve tür yüzeyi sürümler arasında değişmiştir — sürümünüzü sabitleyin.Sürüm 0.2.42-alpha’dan 2026-09-09 tarihinde program yükseltmeleriyle birlikte 0.2.64-alpha’ya yükseltilmiştir; bu SDK’nın mevcut sürümüdür. Kod-demo sayfalarının bağlantı verdiği raydium-sdk-V2-demo deposu 0.2.62-alpha sürümünü kurar; bir demoyu kelimesi kelimesine takip ediyorsanız her iki sürümü de sabitleyin. Bu sayfadaki demolar son olarak 0.2.42-alpha sürümüne karşı çalıştırılmıştır (2026-04); çağrı imzaları 2026-09-09 tarihinde 0.2.64-alpha kaynağına karşı yeniden kontrol edilmiştir, ancak herhangi bir uyuşmazlığı bir belgeleme hatası olarak değerlendirin ve bir sorun açın.Kurulum
.d.ts dosyalarını içerir. Minimum araç zinciri: Node 18+, TypeScript 5.0+, moduleResolution: "bundler" veya "node16".
Başlatma
Giriş noktasıRaydium.load fonksiyonudur:
Raydium.load asenkrondur, çünkü varsayılan olarak token listesini (raydium.token.load()) api-v3.raydium.io üzerinden yükler. Bu isteği atlamak için disableLoadToken: true geçirin. Kullanılabilirlik özellik kontrolü /v3/main/AvailabilityCheckAPI adresine yapılan ayrı bir çağrıdır ve açıkça disableFeatureCheck: false geçirmediğiniz sürece zaten atlanır. Ücret yapılandırmaları yükleme sırasında hiç getirilmez — ilk kullanımda raydium.api.getCpmmConfigs() / getClmmConfigs() üzerinden tembel biçimde gelirler.
Modül arayüzleri
Yüklendikten sonra,raydium nesnesi bir API istemcisinin yanı sıra on modül arayüzü ortaya çıkarır:
İşlem oluşturucuları
Her değiştirici fonksiyon hemen yürütmek yerine bir oluşturucu döndürür:execute— imzalayan ve gönderen bir kolaylık fonksiyonu.builder.executeile eşdeğerdir.builder— tüm talimatlar ve imzalayanlar biriktirilmişTxBuilderörneği.builder.build(),transactionalanı tek bir eskiTransactionolan birTxBuildDatadöndürür;builder.buildV0()ise tek birVersionedTransactioniçeren birTxV0BuildDatadöndürür. YalnızcabuildMultiTx/buildMultiTxV0bir dizi üretir.transaction— oluşturulmuşTransaction/VersionedTransaction.instructionTypes/signers— biriktirilmiş talimat etiketleri ve imzalayan kümesi.extInfo— ürüne özgü ekstralar. Örneğincpmm.createPool,extInfo.address.{poolId, lpMint, vaultA, vaultB}döndürür;launchpad.createLaunchpadiseextInfo.addressdöndürür (birLaunchpadPoolInfoartıpoolId).
Dönüş tipinde
innerTransactions diye bir alan yoktur — onu destructuring ile almak bir
TypeScript hatasıdır. Dönüş tipi MakeMultiTxData olan oluşturucular (örneğin
clmm.harvestAllRewards, farm.harvestAllRewards, tradeV2.swap,
launchpad.createLaunchpad) bunun yerine transactions sunar; bunların execute çağrısı
{ sequentially: boolean } gerektirir ve { txId } değil { txIds } ile sonuçlanır.txVersion eski ve V0 işlem biçimi arasında kontrol eder. V0 (adres arama tabloları) varsayılan tavsiyedir — daha büyük swapların tek bir işlemde sığmasını sağlar.
Neden asenkron oluşturucular?
Neredeyse her oluşturucu dahili olarak zincir üstü durumu getirir: havuz bilgisi (teklifler için), token programı sahipliği (Token-2022 vs SPL yönlendirmesi için), hesap kira muafiyeti (ATA oluşturma için), vb. SDK agresif bir şekilde önbelleğe alır ancak yeni bir havuz için ilk çağrı RPC gidiş-dönüşleri içerir. Yeniden getirmeyi önlemek için uzun ömürlü birraydium örneği tutun.
CLMM modülü eklemeleri (en son sürüm)
CLMM arayüzü yeni dinamik ücret, tek taraflı ücret ve limit sipariş özellikleri için yüzeyler kazandı:raydium.clmm.createCustomizablePool—collectFeeOnvedynamicFeeConfig(yapılandırma hesabınınPublicKeydeğeri) kabul edencreatePoolüst kümesi. Dinamik ücretleri etkinleştiren şeydynamicFeeConfigsağlamaktır; ayrı birenableDynamicFeebayrağı vedynamicFeeConfigIdyoktur. KlasikcreatePool, varsayılan ücretli havuzlar için çalışmaya devam eder.raydium.clmm.openLimitOrder— tek tick’lik bir limit emri açar.poolInfo,baseIn(yön),orderTick,amountve isteğe bağlı olaraktickArrayBitmap,noneIndex,ownerInfoalır. Tick’i nicelemek için dışa aktarılangetOrderTick({ baseIn, mintADecimal, mintBDecimal, tickSpacing, price })yardımcısını kullanın.raydium.clmm.increaseLimitOrder/decreaseLimitOrder— mevcut bir emrin doldurulmamış kısmını ayarlar. Her ikisi de{ poolInfo, limitOrder, amount }alır;decreaseLimitOrderisteğe bağlı birslippageekler. Azaltma, tamamen doldurulmuş bir emirdeInvalidOrderPhaseile geri döner.raydium.clmm.settleLimitOrder/settleAllLimitOrder— doldurulmuş çıktıyı sahibinin ATA’sına süpürür.settleLimitOrderyalnızca{ limitOrder }alır —poolInfoalmaz. Emrin sahibi veya programınlimit_order_adminkeeper’ı bunu çağırabilir.raydium.clmm.closeLimitOrder/closeAllLimitOrder— kirayı geri almak için tamamen kapatılmış emirleri kapatır.raydium.api.getClmmDynamicConfigs()— yeni/main/clmm-dynamic-configuç noktasına isabet eden REST yardımcısı. (Limit emri yapılandırma yardımcısı veya uç noktası yoktur: limit emirleri havuz başına bir yapılandırma hesabıyla değil, tick ile anahtarlanır.)
@raydium-io/raydium-sdk-v2/<anything> hiçbir yazımıyla çözümlenmez — her şeyi üst düzey barrel’dan içe aktarın. (Dahili olarak src/raydium/clmm/utils/ dizini src/raydium/clmm/libraries/ olarak yeniden adlandırıldı, ancak bu hiçbir zaman herkese açık bir giriş noktası değildi.)
Uçtan uca TypeScript kılavuzları products/clmm/code-demos içinde bulunur.
Yaygın tuzaklar
1. Küme uyuşmazlığı
SDK’nın başlangıç yapılandırması kümeye özgüdür.cluster: "mainnet" öğesini devnet Connection öğesiyle karıştırmak sessiz yanlış yönlendirmeye neden olur: SDK mainnet AmmConfig öğesine karşı teklif verir ancak devnet’e gönderir. Her zaman her ikisini de geçin.
2. ATA’ları önceden oluşturmayı unutmak
Bir mint ile ilk etkileşimde, kullanıcının İlişkili Token Hesabı mevcut olmayabilir. SDK, eksik bir ATA’yı algıladığında birAssociatedTokenAccount::create talimatını otomatik olarak önceden ekler; bu küçük bir kira miktarına mal olur. Cüzdanınızda SOL azsa bu sessizce başarısız olur. Yeniden denemeden önce kontrol edin ve fon sağlayın.
3. Eski poolInfo
poolInfo önbelleğe alınmış bir anlık görüntüdür. Havuz durumu onu getirdikten sonra değişmişse (büyük bir işlem fiyatı hareket ettirdiyse, örneğin), swap’ın minAmountOut eski duruma karşı hesaplanabilir ve zincir üstü çıktı miktarının altında kalabilir, geri döner. Yüksek değerli işlemler oluşturmadan hemen önce poolInfo öğesini yeniden getirin veya zincir üstü rezervleri yeniden sorgulayan SDK’nın computeAmountOut öğesini kullanın.
4. Öncelik ücretleri
SDK varsayılan olarak işlem birimi fiyatları eklemez. Yüksek hacimli pencereler sırasında (yeni havuz başlatmaları, meme-coin olayları) bu, işleminizin diğerleriyle rekabet ettiği ve iniş yapmayabileceği anlamına gelir. Açık bircomputeBudgetConfig sağlayın:
integration-guides/priority-fee-tuning öğesine bakın.
5. Slippage toleransı havuz türüyle eşleşmelidir
CPMM ve AMM v4 CPMM matematiğidir (normal işlemlerde düşük etki). CLMM parçalıdır (etki tick geçişlerinde atlar). CPMM örneğinden 0,5% slippage toleransını birkaç tick’i geçen bir CLMM swap’ına kopyalarsanız, işlem muhtemelen geri döner. SDK’nıncomputeAmountOut priceImpact döndürür; toleransınızı bunun üzerine boyutlandırın.
6. BN vs number
SDK’daki tüm miktar alanları bn.js BN örnekleridir — asla JavaScript number değil. Miktar değerlerini .toNumber() aracılığıyla dönüştürmek 2^53 konumunda sessizce kesilir; ~9 katrilyon üzerindeki herhangi bir değer için (9 ondalık mint’lerde nadir değildir), bu yanlış sonuç üretir. Son UI oluşturmaya kadar her şeyi BN içinde tutun.
Sürüm oluşturma ilkesi
@raydium-io/raydium-sdk-v2Raydium’un koruduğu tek SDK’dır. Tüm belgeler, demolar ve entegrasyon rehberleri bunu hedefler.- Eski bir v1 paketi (
@raydium-io/raydium-sdk) tarihsel nedenlerle npm’de bulunur. Bakım CPMM ve LaunchLab sevk edildikten sonra sona erdi (v1 hiçbir zaman her ikisini de desteklemedi) ve 2024’ten sonra v1 sürümü yayınlanmamıştır. v1’i yaşam sonu olarak değerlendirin: yeni kod için kullanmayın ve kalan v1 entegrasyonlarını v2’ye geçirin. - SDK v2 ön-1.0’dır. 0.x küçük sürümleri arasında kırıcı değişiklikler mümkündür; doğruladığınız sürümü sabitleyin ve yükseltirken GitHub sürüm notlarını kontrol edin.
Yükseltme
SDK küçük sürümleri arasında yükseltirken:- Her değiştirici çağrının dönüş türünü yeniden kontrol edin — şekil değişiklikleri (örn.
extInfo) sık sık iniş yapar. poolInfogetirme imzalarını yeniden oluşturun — bir alan yeniden adlandırılmış olabilir.- Slippage işlemenizi yeniden doğrulayın; SDK sürümler arasında otomatik sınırlı ve tercih edilen sınırlı davranışlar arasında kaymıştır.
raydium.tradeV2(yönlendirme) kullanıyorsanız, rota şeklini yeniden doğrulayın — yüzeyin en kararsız kısmıdır. Arayüzüntrade’dentradeV2’ye yeniden adlandırıldığını unutmayın; eski ad artık mevcut değildir.
Yardım almak
SDK ve API soruları için:- GitHub sorunları — hatalar ve özellik istekleri için github.com/raydium-io/raydium-sdk-V2/issues adresinde dosya açın. Raydium ekibi aktif olarak izler.
- Discord — senkron yardım için discord.gg/raydium adresindeki
#dev-supportkanalı. - Telegram — raydium.io adresinden bağlantılı geliştirici sohbeti (doğrulanmamış Telegram gruplarından kaçının).
security/disclosure öğesine bakın.
İşaretçiler
sdk-api/rest-api— SDK’nın HTTP tamamlayıcısı.sdk-api/trade-api— sunucu tarafından oluşturulan swap işlemleri.sdk-api/anchor-idl— program IDL’lerinden doğrudan istemcileri yeniden oluşturma.sdk-api/python-integration—solana-pyaracılığıyla Python eşdeğeri.integration-guides/priority-fee-tuning—computeBudgetConfigboyutlandırma.
- Raydium SDK v2 kaynağı
- Raydium SDK sürüm notları.

