Ana içeriğe atla

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 →

Komut özeti

EtiketAyırt EdiciTamVaryant
0SwapBaseInWithUserAccountGirişEski
1SwapBaseOutWithUserAccountÇıkışEski
5CreateSyncNativeYardımcı
6CloseTokenAccountYardımcı
8SwapBaseInGirişGüncel
9SwapBaseOutÇıkışGüncel
Açıklamalar:
  • Tam: hangi tutarın çağıran tarafından sabitlendiğini gösterir (Giriş = tam giriş amount_in; Çıkış = tam çıkış amount_out).
  • Varyant: Eski komutlar, rotada CLMM hopunun olmadığı durumlarda bile boş olmayan bir limit_prices deque’si gerektirir. Güncel komutlar (8 / 9) boş limit_prices’ı “kontrol yok” olarak işler; bu yeni kod için önerilen yoldur.
Tüm swap varyantları, ara tokenleri kullanıcı kontrollü ATA’lar üzerinden yönlendirir — kullanıcı giriş ATA’sına, her ara ATA’ya ve çıkış ATA’sına sahiptir. Yeni entegrasyonlar için, belirli bir nedeniniz olmadığı sürece tag 8 (SwapBaseIn) veya tag 9 (SwapBaseOut) kullanın.

Güncel swap komutları (önerilen)

Bunlar yeni kodun kullanması gereken giriş noktalarıdır. Argüman yapısı Eski varyantlarla aynıdır ancak limit_prices boş olabilir.

SwapBaseIn (tag 8)

Tam giriş çok-hop takas. Çağıran amount_in’i sabitler; router hop-by-hop yürütür ve son tutarın minimum_amount_out’a eşit veya üstünde olduğunu doğrular. Argümanlar
amount_in:            u64
minimum_amount_out:   u64
limit_prices:         VecDeque<u128>  // isteğe bağlı; boş deque "hop başı CLMM kontrolü yok" anlamına gelir
Hesaplar
[
  <user_input_ata> W S,         // signer; bakiye >= amount_in
  <user_intermediate_ata_1> W,  // ara hop başı bir tane
  ... <user_intermediate_ata_N> W,
  <user_output_ata> W,
  <token_program>,

  <pool_program_hop_1>,         // hop 1'in hangi AMM ailesinde olduğunu belirtir
  <pool_state_hop_1> W,
  ... <hop 1 programı tarafından gerekli diğer hesaplar>,

  <pool_program_hop_2>,
  <pool_state_hop_2> W,
  ... <hop 2 hesapları>,

  ... [her hop için tekrarla]
]
Hop başı tam hesap listesi, temel AMM programına (AMM v4 / CPMM / CLMM / Stable) bağlıdır. Router her birine sırayla CPI yapar ve program ID’nin desteklenen dört programdan biriyle eşleştiğini doğrular. Ön koşullar
  • Çağıran user_input_ata ile imzalar.
  • user_input_ata.amount >= amount_in.
  • Her ara kullanıcı ATA’sı vardır ve çağıran tarafından sahiplenilir.
  • Herhangi bir hop CLMM ise ve fiyat sınırlaması istiyorsanız, her CLMM hop başı bir limit_prices girişi sağlayın.
Son koşullar
  • user_input_ata bakiyesi amount_in kadar azalır.
  • user_output_ata bakiyesi ≥ minimum_amount_out kadar artar.
  • Her ara ATA, net olarak sıfır değişiklik ile kalır (rota bir önceki hop’tan ürettiği her şeyi tüketir).
Yaygın hatalar
  • ExceededSlippage — son çıkış < minimum_amount_out.
  • InvalidInput — boş rota, hatalı biçimlendirilmiş hesaplar veya desteklenmeyen pool_program.
  • SqrtPriceX64 — bir CLMM hop’unun fiyatı sağlanan limit_prices sınırı dışında hareket etti (sadece limit_prices boş olmadığında).

SwapBaseOut (tag 9)

Tam çıkış çok-hop takas. Çağıran amount_out’u sabitler; router gerçek girdinin maximum_amount_in’i aşmadığını doğrular. Argümanlar
maximum_amount_in:   u64
amount_out:          u64
limit_prices:        VecDeque<u128>  // isteğe bağlı; boş deque "hop başı CLMM kontrolü yok" anlamına gelir
Hesaplar — tag 8 ile aynı yapı. Ön koşullar
  • Çağıran user_input_ata ile imzalar; bakiye >= maximum_amount_in (en kötü durum).
  • Her ara ve çıkış ATA’sı vardır.
Son koşullar
  • user_input_ata gerekli gerçek tutar kadar azalır (≤ maximum_amount_in).
  • user_output_ata tam olarak amount_out kadar artar.
Yaygın hatalar
  • ExceededSlippage — gerekli giriş maximum_amount_in’i aşar.
  • InvalidInput, SqrtPriceX64 — tag 8 için olduğu gibi.

Eski swap komutları

Bu eski varyantlar canlı programda hala çağrılabilir ve tamlık için burada belgelenmiştir. Yeni kod için tag 8 / tag 9 tercih edin; aşağıdaki her iki Eski varyant da CLMM hopunun olmadığı durumlarda bile boş olmayan bir limit_prices deque’si gerektirir; bu da onları kullanımı zor hale getirir.

SwapBaseInWithUserAccount (tag 0)

Tam giriş çok-hop takas, tag 8 ile birebir aynı şekilde ancak daha katı limit_prices gereksinimi ile. Argümanlar
amount_in:           u64
minimum_amount_out:  u64
limit_prices:        VecDeque<u128>  // gerekli, boş olmayan
HesaplarSwapBaseIn (tag 8) ile aynı şekil. Tüm ara yuvalar çağıran tarafından sahiplenilen ATA’lar olmalıdır. Ön koşullar
  • Çağıran user_input_ata ile imzalar.
  • user_input_ata.amount >= amount_in.
  • Tüm ara kullanıcı ATA’ları vardır ve çağıran tarafından sahiplenilir.
  • limit_prices boş değildir (her CLMM hop başı bir giriş; CLMM hopunun olmadığı durumlarda yer tutucu değerlerle doldur).
Son koşullar
  • user_input_ata bakiyesi amount_in kadar azalır.
  • user_output_ata bakiyesi ≥ minimum_amount_out kadar artar.
Yaygın hatalar
  • ExceededSlippage.
  • InvalidInput — boş limit_prices bu Eski varyantında reddedilir.
  • SqrtPriceX64.

SwapBaseOutWithUserAccount (tag 1)

Tam çıkış takas, SwapBaseOut (tag 9) için Eski karşılığı. Argümanlar
maximum_amount_in:   u64
amount_out:          u64
limit_prices:        VecDeque<u128>  // gerekli, boş olmayan
Hesaplar — tag 0 / tag 9 ile aynı şekil. Ön koşullar
  • Çağıran user_input_ata ile imzalar.
  • user_input_ata.amount >= maximum_amount_in.
  • Tüm ara kullanıcı ATA’ları vardır ve çağıran tarafından sahiplenilir.
  • limit_prices boş değildir.
Son koşullar
  • user_input_ata gerekli gerçek tutar kadar azalır (≤ maximum_amount_in).
  • user_output_ata tam olarak amount_out kadar artar.
Yaygın hatalar
  • ExceededSlippage.
  • InvalidInput.
  • SqrtPriceX64.

Yardımcı komutlar

CreateSyncNative (tag 5)

Bir adımda wSOL ATA’sını oluştur (eksikse) ve senkronize et. Bir takas ile birlikte SOL sarmalanırken uygun. Argümanlar
amount: u64    // Sarmalanacak SOL (lamports)
Hesaplar
[
  <user_wsol_ata> W,            // wSOL için ATA; eksikse oluşturulur
  <user_native_account> W S,    // signer; SOL buradan borçlandırılır
  <wsol_mint>,
  <system_program>,
  <token_program>,
  <associated_token_program>,
]
Etki
  • user_wsol_ata henüz mevcut değilse oluşturur.
  • amount lamports’u imzalayanın yerel SOL bakiyesinden ATA’ya aktarır.
  • ATA üzerinde SyncNative çağırır böylece token bakiyesi yeni lamports’u yansıtır.
Yaygın hatalar
  • InvalidOwneruser_wsol_ata’nın sahibi signer değil.

CloseTokenAccount (tag 6)

Bir token hesabını kapat ve kirasını hedef cüzdana geri döndür. CreateSyncNative ile eşleşir: bir wSOL-leg takastan sonra, wSOL ATA’sını destekleyen kirayi geri almak için CloseTokenAccount çağırın. Argümanlar — yok. Hesaplar
[
  <token_account_to_close> W,
  <destination_for_rent> W,
  <owner> S,
  <token_program>,
]
Etki
  • token_account_to_close kapatır.
  • Kira-muaf lamport bakiyesini (~mainnet’teki vanilya SPL Token hesabı için 0.00203928 SOL) destination_for_rent’e aktarır.
  • Token hesabının sıfır token bakiyesi olması gerekir.
Yaygın hatalar
  • InvalidOwner — çağıran ATA sahibi değil.
  • Token hesabı bakiyesi sıfır değil.

Sonraki adımlar