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 →
IDL nedir
Solana üzerindeki Anchor programları, talimatlarını, hesap düzenlerini, hata enum’unu ve yapı şemalarını tanımlayan bir IDL (Interface Definition Language) dosyası yayımlar. IDL, istemci kodu oluşturmanın temel referansıdır — TS SDK, Rust CPI crate’i ve üçüncü taraf istemcilerinin tümü bu dosyadan oluşturulur (veya ona karşı yazılır). Raydium, CPMM, CLMM ve LaunchLab için IDL’ler yayımlar. AMM v4, Stable AMM ve Farm (v3 / v5 / v6) Anchor öncesi çağdan kalma veya Anchor dağıtımı olmayan programlardır — hesap yapılarını SDK’de el ile yönetilir.Nerede bulunur
IDL’ler ayrılmış bir depo içinde yer alır:| Program | IDL dosyası |
|---|---|
| CPMM | raydium_cpmm/raydium_cp_swap.json |
| CLMM | raydium_clmm/raydium_clmm.json |
| LaunchLab | raydium_launchpad/raydium_launchpad.json |
| AMM v4 | resmi IDL yok — el ile yazılmış düzenler için raydium-sdk-V2/src/raydium/liquidity/layout.ts dosyasına bakın |
| Stable AMM | resmi IDL yok — SDK’deki düzenler |
| Farm | resmi IDL yok — SDK’deki düzenler |
TypeScript istemcisini yeniden oluşturma
Anchor’un kod oluşturucusu IDL’den yazılı bir istemci üretir:raydium.cpmm.swap(...) yardımcısını kullanır. Yalnızca SDK’nin altındaki bir katmana ihtiyacınız olduğunda yeniden oluşturun.
Rust istemcisini yeniden oluşturma (CPI crate’i)
Raydium, IDL’leri olan programlar için Anchor crate’leri yayımlar:cpi özelliği cpi::accounts::<Ix> hesap struct’larını ve cpi::<ix>() çağırıcılarını ortaya çıkarır — kullanıma hazır CPI sarmalayıcıları. Kullanım desenleri için sdk-api/rust-cpi dosyasına bakın.
Taze bağlamalar oluşturmayı tercih ederseniz:
Python istemcisini yeniden oluşturma
Resmi Raydium Python SDK’sı yoktur. Üçüncü taraf oluşturucular şunları içerir:anchorpy—@coral-xyz/anchor’un Python portu. IDL’lerden yazılı yöntem oluşturucuları oluşturur.solders— düşük düzey Solana ilkelleri (işlemler, anahtar çiftleri, publike’ler) Rust bağlamalarında;anchorpyaltında kullanılır.
sdk-api/python-integration dosyasına bakın.
IDL değişim politikası
Raydium, IDL kararlılığı için şu kuralları izler:- Talimat ayrımcıları asla değişmez. Yeni talimatlar eklemek enum’u sonunda genişletir; mevcut ayrımcılar kararlı kalır.
- Hesap yapısı düzenleri yalnızca katkı esasıyla gelişir. Yeni alanlar sona eklenir ve on-chain şemada boyut artışından önce gelir. Mevcut alanlar konumlarını korur.
- Hata enum kodları yalnızca ek şeklinde genişletilir. Mevcut bir hata kodu her zaman aynı şeyi ifade eder.
- Kırıcı değişiklikler yeni programlarda sevk edilir. Bir yeniden tasarım gerektiğinde, ekip yeni bir program ID’sini dağıtır (örneğin, CPMM, AMM v4’ü yükseltmek yerine taze bir program olarak). Eski havuzlar eski programa devam eder; yeni havuzlar yeni olana gider.
IDL değiştiğinde yapılacaklar
- SDK’yi güncelleyin.
npm update @raydium-io/raydium-sdk-v2. - İstemci kodunuzu yeniden oluşturun Anchor kod oluşturucuyu doğrudan kullanıyorsanız.
- Hesap düzenini karşılaştırın. Yeni düzenin sondaki alanları kodunuzun görmediği tek şeydir; bunlara ihtiyacınız olup olmadığını onaylayın.
- Eski talimat ayrımcılarının geçersiz olduğunu varsaymayın. 1. kurala göre, hala çalışırlar.
- Ana ağa geçmeden önce devnet’te entegrasyon testlerini yeniden çalıştırın.
IDL sorun giderme
”Invalid discriminator” hataları
Genellikle IDL’nin N sürümüne karşı oluşturulan bir istemcinin, yalnızca bir dağıtım öncesi programda var olan bir talimatı çağırmaya çalışması anlamına gelir. IDL’yi canlı programdan yeniden çekin:Hesap çözülememe hataları
program.account.<Name>.fetch(pubkey) “Invalid account discriminator” ile başarısız olursa, hesap önceki program sürümü tarafından oluşturulmuş ve Anchor 8 baytlık ayrımcısını reddediyor. Çözüm, SDK’deki ham düzen ayrıştırıcısını (PoolInfoLayout.decode(accountData)) kullanmaktır; bu, Anchor ayrımcılarını uygulamaz.
Oluşturulan istemcide eksik talimatlar
Anchor’un TS kod oluşturması yalnızca, IDL girişinin geçerli bir tanımlayıcı olarak ayrıştırılan birname’e sahip talimatlar için yöntemler oluşturur. Raydium’un talimatlarının hepsi bunu karşılar, ancak bir uyuşmazlık görürseniz, IDL dosyasının mevcut SDK sürümünden olup olmadığını kontrol edin.
İlgili sayfalar
sdk-api/rust-cpi— Rust CPI crate’lerini kullanma.sdk-api/python-integration—anchorpyile Python.sdk-api/typescript-sdk— daha üst düzey TS istemcisi.


