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 →
Bunu ne yapar? Seçtiğiniz işlem ücreti katmanında yeni bir CLMM havuzu oluşturur, sonra ilk yoğunlaştırılmış pozisyonu açar. İki işlem, bir betik. Kod, raydium-sdk-V2-demo/src/clmm klasöründeki resmi demolardan alınmış ve tek bir Node çalıştırılabilir dosyaya uyarlanmıştır.

Kurulum

Hızlı başlangıç ön koşullarını okuduğunuzdan emin olun ve RPC_URL, KEYPAIR ve bağımlılıkların yüklü olduğundan emin olun. CLMM havuzu oluşturma işleminin bir kerelik ücreti ve ilk pozisyon için tick array kirası vardır. Ayrıca her iki seed mint’in de cüzdanınızda olması gerekir — seçilen aralık içinde fiyat oturduğunda bir pozisyon açmak her iki tarafta da likidite gerektirir.

Adım 1 — config.ts

config.ts olarak kaydedin. Bu, demo repo’sunun src/config.ts.template ile aynı yapıdadır — disableFeatureCheck zorunlu olarak true değerine ayarlanmıştır (SDK başlangıçta özellik tespitinde engellenmemesi için herhangi bir önemsiz entegrasyon için önerilir):

Adım 2 — createPool.ts

config.ts ile birlikte kaydedin. Kaynak: src/clmm/createPool.ts.

Adım 3 — createPosition.ts

Kaynak: src/clmm/createPosition.ts.

Adım 4 — utils.ts

Kaynak: src/clmm/utils.ts.

Çalıştırın

Az önce ne oldu

İşlem 1 — raydium.clmm.createPool başlatıldı:
  • (mint1, mint2, ammConfig) için kanonik PDA’da havuz durumu,
  • token_0_vault ve token_1_vault (mint byte sırasına göre sıralanmış),
  • observation halka arabelleği,
  • satır içi tick-array bitmap,
ve ilk sqrt_price_x64’ü initialPrice’inizden ayarladı. İşlem 2 — raydium.clmm.openPositionFromBase yoğunlaştırılmış bir pozisyon açtı:
  • cüzdanınıza bir pozisyon NFT’si bastı (NFT pozisyondur; onu aktarmak pozisyonu aktarır),
  • alt ve üst sınırlarda tick dizileri tahsis etti (bu aralıklardaki ilk pozisyon için bir kerelik kira; tick dizileri program tarafından asla kapatılmaz, bu nedenle aynı dizilerdeki sonraki pozisyonlar fazladan kira ödemez),
  • inputAmount mint1 ve mint2’nin eşleşen çift miktarını yatırdı (PoolUtils.getLiquidityAmountOutFromAmountIn tarafından hesaplandı),
  • pozisyonu aralık genişliğiyle orantılı likidite ile krediye aldı.
Aralık ne kadar dar olursa, TVL başına sermaye verimliliği o kadar yüksek — ve fiyat aralığın dışına çıktığında kalıcı olmayan kayıp o kadar acı verici. Yukarıda kullanılan aralık ([0.000001, 100000]) etkili olarak tam aralık; mevcut spot’a yakın ücretleri yoğunlaştırmak için sıkılaştırın.

İşlem ücreti katmanı seçme

clmmConfigs[0] en düşük işlem ücreti katmanıdır. Tam set GET https://api-v3.raydium.io/main/clmm-config adresinde yayınlanır: Tam karar matrisini user-flows/choosing-a-pool-type adresinde görün.

Sık karşılaşılan hatalar

  • Pool already exists for this config — Bu (mint1, mint2, ammConfig) üçlüsü için zaten bir CLMM havuzu mevcut. Mevcut havuz ID’sini arayın ve Adım 2’yi atlayın.
  • Insufficient funds for amount B — Cüzdanınızda istenen mintA miktarı var ama eşleşen mintB yok. Fiyat aralık içinde oturduğunda bir pozisyon açmak her iki tarafta da likidite gerektirir.
  • Tick out of rangelowerPrice veya upperPrice’ınız temsil edilebilir fiyat aralığının dışında. Mevcut fiyata göre daha makul bir aralık kullanın.
  • Eski fiyat — API’den bir fiyat teklifi 5–60 saniye eski olabilir. executePosition slippage’de başarısız olursa, imzalamadan hemen önce canlı fiyatı yeniden getirmek için createPosition.ts’de getRpcClmmPoolInfo bloğunun açıklamasını kaldırın.

Uyarılar

  • Pozisyon NFT’si tek tutamağınız. NFT’yi kaybederseniz veya aktarırsanız, pozisyona erişimi kaybedersiniz. Bunu bir anahtar gibi ele alın.
  • Aralık dışı pozisyonlar ücret kazanmaz. Fiyat [lowerPrice, upperPrice] aralığının dışına çıkarsa, pozisyonunuz tamamen bir varlıkta park edilir ve yeniden dengelenene kadar hiçbir şey kazanmaz.
  • Tick array kirası tek yönlüdür. Daha önce başlatılmayan bir tick dizisine temas eden ilk pozisyon kirasını öder; program, tick dizilerini kapatmanın bir yolunu ortaya koymaz, bu nedenle bu kira kalıcı. Aynı dizideki sonraki pozisyonlar ücretsizdir.

Sonra

Kaynaklar: