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.42-alpha
  • Cluster: Solana mainnet-beta
  • Program ID: bkz. reference/program-addresses
  • Son doğrulama: 2026-04
SDK sürümünü package.json dosyanızda sabitleyin. Bonding curve arayüzü küçük sürümler arasında değişmiştir.

Kurulum

Buradaki örnekler raydium-sdk-V2-demo/src/launchpad içindeki dosyaları yansıtır. Başlatma, demo repo’sunun config.ts.template dosyasını takip eder:

Başlatma oluşturun

Kaynak: src/launchpad/createMint.ts (ve API tabanlı Bonk varyantı için createBonkMintApi.ts)
Notlar:
  • initialK, quadratic curve için ölçek faktörüdür. Graduation sırasında belirli bir açılış CPMM fiyatını hedeflemek için ayarlayın. Türetme için products/launchlab/bonding-curve bölümüne bakın.
  • SDK, base mint’i, metadata PDA’sını ve her iki vault’u tek bir işlemde oluşturur. Metadata URI’si uzunsa 1232 baytı aşabilir; bu durumda SDK iki işleme böler.
  • Initialize sonrasında, başlatma openTime kadar işlem görmez. Front-runner’lara ilk alımı kapmak için daha az şans vermek için openTime’ı bir veya iki dakika ileri ayarlayın.

Başlatma durumunu getirin

getLaunchById, çözülen LaunchState ve hesaplanan “graduation’a doğru ilerleme” kesrini Decimal olarak döndürür.

Alım — tam quote giriş

Kaynak: src/launchpad/buy.ts
computeBuyBase, zincir üstü Newton çözücüsünü (quadratic curve) veya kapalı form CPMM-tersini (curve_type 1) yansıtır. “Alacağınız” UI alanını doldurmak için kullanın.

Alım — tam base çıkış

“Tam olarak X token alın” UI’ları için kullanışlıdır. Curve yeterince hareket etmişse ve quote gereksinimi şimdi maximumQuoteIn’i aşıyorsa ExceededSlippage ile reddeder.

Satış

Kaynak: src/launchpad/sell.ts
Curve’ün satış yolu alım yoluna simetriktir: base_sold’u baseIn kadar azaltmak, base_sold − baseIn ile base_sold arasında curve’ün altındaki entegre alanına eşit quote_out döndürür, satış ücreti eksi.

Eşik geçişi alımında otomatik graduation

SDK, post-alım durumunun eşiği geçeceğini algıladığında buy* işleminin içine bir Graduate talimatı zincirler:
Graduate izinsiz olduğundan, herkes (MEV bot’u da dahil) eşik geçildikten sonra ilk Graduate’i iniş için yarışabilir — tipik olarak dakikalar değil saniyeler sonra. İlk iniş yapan sadece CPMM pool hesaplarının kirasını öder; başka bir fayda almazlar.

Manuel Graduate

autoGraduate kapalıysa veya eşik geçişi işlemi başarısız olduysa, graduation’ı ayrı olarak başlatabilirsiniz:
Gönderim sırasında quote_reserve_real < quote_reserve_target ise NotAtThreshold ile geri döner. Yeniden deneme güvenlidir — başarıdan sonra ikinci Graduate denemesi NotActive ile geri döner.

Yaratıcı ücretlerini toplayın

Kaynak: src/launchpad/claimCreatorFee.ts (tek mint) ve collectAllCreatorFees.ts (toplu)
Birikmiş yaratıcı ücret sayacı quote tutarını yaratıcının quote mint’indeki ATA’sına aktarır. Graduation öncesi veya sonrası çağrılabilir; muazzam bir bakiye birikene kadar beklemek yerine periyodik olarak kullanın.

Başlatmayı yaşam döngüsü boyunca izleyin

Bir araya getirerek, bir izleme betiği şöyle görünebilir:

gRPC üzerinden config’leri ve pool’ları izleyin

Kaynak: src/grpc/launchpadPoolInfo.ts LaunchLab programını Yellowstone gRPC üzerinden abone olur ve her mint’in token programı ile her GlobalConfig ve PoolState güncellemesini kaydeder. Bir accounts aboneliğinde iki datasize filtresi iki hesap türünü ayırır, bu nedenle tek bir akış her ikisini de kapsar. Demo, Token-2022 quote-mint sürümü tarafından gerekli kılınan başlatmanın mint’lerini sınıflandırmak için en kısa doğru referanstır:
  • Pool’lar doğrudan PoolState.token_program_flag’den sınıflandırılır, hiç mint getirmeden base mint için bit0’ı ve quote mint için bit1’i çözer. Tüm baytı 0’a karşı test etmek — quote mint’leri eski olduğu sürece yeterli idi — quote mint Token-2022 olduğunda eski bir base mint’i Token-2022 olarak yanlış okur.
  • Config’ler bu şekilde sınıflandırılamaz: bir GlobalConfig quote mint’inin adresini ve program bayrağını depolamaz, bu nedenle demo mint hesabının sahibini bir kez okur ve mint başına önbelleğe alır.
Ayrıca ikisini birbirine karşı çapraz kontrol eder, bu da kendi indexer’ınızda tutmanız gereken yararlı bir iddidir. create ile update’in demo’nun kendi önbelleklerinden çıkarıldığını unutmayın, başlangıçta getProgramAccounts’tan tohumlanır; bu tohumlama devre dışı bırakılırsa, “create“‘i “bu akışta ilk görülen” olarak okuyun. gRPC erişimi genel RPC yüzeyinin bir parçası değildir — demo repo’sunun src/grpc/README.md dosyasına bakın.

Rust CPI

LaunchLab’ı kendi Anchor programınızdan çağırmak nadirdir (çoğu başlatma entegrasyonu yalnızca TS tarafıdır). Bunu yaparsanız, program cpi::accounts::Buy, cpi::accounts::Sell vb. ile bir Anchor crate raydium_launchlab gönderir — desen CPMM / CLMM CPI örneklerini yansıtır. Bu site doldurulduktan sonra genelleştirilmiş bir şablon için sdk-api/rust-cpi bölümüne bakın.

Tuzaklar

  • Ücret bölme aritmetiği kapalı bir tane. total_share tam olarak lp_share + creator_share + protocol_share değilse, Initialize InvalidFeeShares ile geri döner. totalShare’i toplama eşit olarak ayarlayın.
  • İzin verilmeyen bir quote mint kullanmak. launch_config.allowed_quote_mints sabit bir listedir; başka bir mint geçirmek geri döner. Önce raydium.launchpad.getConfig() ile kontrol edin.
  • Metadata boyutu. Uzun uri dizgileri Metaplex CPI’sini bütçenin üzerine iter. uri’yi ~200 karakterin altında tutun — çoğu CDN tarafından barındırılan JSON metadata kolayca sığar.
  • Graduation yarışı. Otomatik bot’lar quote_reserve_real’i izler ve eşik geçildikten sonra bir veya iki slot içinde Graduate’i ön çalıştırır. Bu zararsızdır — sadece onlara kira maliyeti — ancak UI’nızın status geçişlerini hızlı olaylar olarak ele alması gerektiği anlamına gelir.

Sonraki adımlar

Kaynaklar: