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 →
Bunun yaptığı şey. RPC’den bir CPMM pool’u yükler, %0,5 slippage ile swap fiyatı alır, işlemi oluşturur, anahtar çiftinizle imzalar ve gönderir. Baştan sona ~30 satırda.

Kurulum

Hızlı başlangıç ön koşullarını okuduğunuzdan ve RPC_URL, KEYPAIR ile gerekli bağımlılıkların yüklü olduğundan emin olun.

Betik

swap.mjs olarak kaydedin:
swap.mjs

Çalıştırın

Likiditeye sahip olduğunuz herhangi bir CPMM pool’u seçin. Kanonik SOL/USDC CPMM pool’u ile örnek:
Beklenen çıktı:

Ne oldu

  1. Raydium.load SDK’yı başlattı — global yapılandırmayı getirdi, cüzdan bağlamını kurdu.
  2. getPoolInfoFromRpc canlı pool durumunu doğrudan RPC’den çekti (API önbelleğinden değil). Yüksek değerli swaplar için her zaman güncel duruma ihtiyacınız vardır.
  3. CurveCalculator.swap pool’un ücretini düşerek sabit-ürün çıktısını hesapladı. Bu, programın zincir üzerinde çalıştırdığı matematikle aynıdır, bu nedenle fiyatları zincir dışı ve zincir üzerinde karşılaştırabilirsiniz.
  4. raydium.cpmm.swap işlemi V0 formatında oluşturdu (adres arama tabloları etkinleştirildi) ve açık bir compute-budget yapılandırması ekledi. Compute-budget bahşişi, işlemin yoğun dönemlerde yer almasına yardımcı olur.
  5. execute({ sendAndConfirm: true }) imzaladı, gönderdi ve onayı bekledi.

Yaygın hatalar

  • Pool not found — Yanlış POOL_ID veya yanlış cluster’a işaret ediyorsunuz (mainnet pool ID’si devnet RPC’ye karşı, vb.).
  • Insufficient funds for transaction — Cüzdanınızda swap girdisi + ücretler + ATA kirasına yetecek kadar SOL yok.
  • Slippage tolerance exceeded — Pool’un fiyatı fiyat alımı ile yürütme arasında değişti. Yeniden çalıştırın; veya slippage parametresini artırın; veya SDK’nin computeAmountOut kullanın (her zaman rezervleri yeniden getirir).
  • Token account not initialized — Çıktı token’ının ATA mevcut değildi ve örtülü oluşturma talimatı iniş yaptı ancak bir nedenle başarısız oldu; cüzdanınızın SOL bakiyesini kontrol edin ve yeniden deneyin.

Sonraki adımlar