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.
AMM v4 talimatları düzenli olarak hem pool tarafı (AMM v4 program hesapları) hem de market tarafı (bağlı market için OpenBook hesapları) bekler. Her iki hesap grubunu da atlamak veya eşleştirmemek işlemi tersine çevirir. Aşağıdaki hesap listeleri açıklık için Raydium SDK’dan alan adlarını kullanır; temel IDL bazen serum_* önekleri kullanır.
Talimat envanteri
| Grup | Talimat | Notlar |
|---|
| Pool yaşam döngüsü | Initialize2 | Şu anki pool oluşturma talimatı (hala işlevsel; UI yeni poollar için CPMM’ye varsayılan ayarlanır). |
| Likidite | Deposit | Likidite ekleyin, LP alın. |
| Likidite | Withdraw | LP yakın, her iki tarafını orantılı olarak alın. |
| Swap | SwapBaseIn | Tam giriş swapı (tam yol: vault’lar + OpenBook). |
| Swap | SwapBaseOut | Tam çıkış swapı (tam yol). |
| Swap | SwapBaseInV2 | OpenBook’u atlayan tam giriş swapı — sadece vault’lar, daha az hesap. |
| Swap | SwapBaseOutV2 | OpenBook’u atlayan tam çıkış swapı. |
| Bakım | SetParams | Admin: pool parametrelerini değiştirin. |
| Bakım | WithdrawPnl | Birikmiş protokol PnL’sini PnL-sahibi hesaplara taşıyın. |
| Bakım | CreateConfigAccount | Admin: program düzeyinde AmmConfig PDA’sını başlatın. |
| Bakım | UpdateConfigAccount | Admin: program düzeyinde yapılandırma parametrelerini değiştirin. |
SDK kullanıcıya dönük talimatlar için derleyicileri ortaya koyar. Bakım talimatları tipik olarak Raydium keeper tarafından çağrılır.
Initialize2
Mevcut bir OpenBook market’ine bağlı yeni bir AMM v4 pool’u başlatın.
Argümanlar
nonce: u8
open_time: u64
init_pc_amount: u64
init_coin_amount: u64
Hesaplar (yazılabilir W, imzalayanlar S)
| # | Ad | W | S | Notlar |
|---|
| 1 | token_program | | | SPL Token. |
| 2 | system_program | | | |
| 3 | rent | | | |
| 4 | amm | W | | AmmInfo hesabı (seeded anahtar). |
| 5 | amm_authority | | | Program PDA’sı. |
| 6 | amm_open_orders | W | | OpenBook OpenOrders (seeded). |
| 7 | lp_mint | W | | |
| 8 | coin_mint | | | |
| 9 | pc_mint | | | |
| 10 | pool_coin_token_account | W | | |
| 11 | pool_pc_token_account | W | | |
| 12 | pool_withdraw_queue | W | | |
| 13 | pool_target_orders_account | W | | |
| 14 | pool_lp_token_account | W | | Yaratıcının LP ATA’sı. |
| 15 | pool_temp_lp_token_account | W | | Geçici hesap. |
| 16 | market_program | | | OpenBook programı. |
| 17 | market | | | OpenBook market’i. |
| 18 | user_wallet | W | S | Yaratıcı. Kira öder ve ilk depozitoyu finanse eder. |
| 19 | user_token_coin | W | | |
| 20 | user_token_pc | W | | |
Son koşullar
lp_supply = sqrt(init_coin_amount × init_pc_amount) − INIT_BURN, burada INIT_BURN ≈ 100 LP birimi dolaşımdan çıkarılmış durumda tutulur.
- OpenBook emirleri henüz gönderilmemiştir; ilk
MonitorStep ilk ızgarayı gönderir.
Yaygın hatalar — InvalidInput (eşleşmeyen ondalıklar, sıralanmamış), NotApproved, OpenBook tarafı InvalidMarketState.
Deposit
Likidite ekleyin.
Argümanlar
max_coin_amount: u64
max_pc_amount: u64
base_side: u64 // 0 = coin üzerinde base, 1 = pc üzerinde base
// (bazı SDK varyantları other_amount_min'i de kabul eder)
Hesaplar (kısaltılmış)
| # | Ad | W | S |
|---|
| 1 | token_program | | |
| 2 | amm | W | |
| 3 | amm_authority | | |
| 4 | amm_open_orders | | |
| 5 | amm_target_orders | W | |
| 6 | lp_mint | W | |
| 7 | pool_coin_token_account | W | |
| 8 | pool_pc_token_account | W | |
| 9 | market | | |
| 10 | user_coin_token_account | W | |
| 11 | user_pc_token_account | W | |
| 12 | user_lp_token_account | W | |
| 13 | user_owner | | S |
Matematik — standart orantılı. Pool’un etkili rezervlerini (vault’lar + kitapta) kullanarak SDK, verilen LP miktarını verecek coin/pc çiftini hesaplar ve bunu max_* karşısında kontrol eder. Her iki taraf da sınırı aşarsa ExceededSlippage ile geri döner.
Withdraw
LP’yi yakın, her iki tarafını alın.
Argümanlar
amount: u64 // Yakılacak LP
Hesaplar — Deposit gibi yön ters çevrilmiş; lp_mint yakma için yazılabilir, kullanıcı ATA’ları alıcılardır. Pro-rata matematiğinden önce içeride bir MonitorStep benzeri OpenBook’tan taşıma adımı gerçekleşir, böylece itfa işlemi taze rezervleri kullanır.
SwapBaseIn
Tam giriş swapı. Her zaman bir AMM-yolu swapıdır (OpenBook eşleştirmesi aracılığıyla yönlendirilmez).
Yeni kod için V2 varyantlarını kullanın. AMM v4 artık likiditeyi OpenBook’la paylaşmadığından, tam OpenBook hesap setini doğrulama için hala gerektiren V1 giriş noktaları (SwapBaseIn, SwapBaseOut) işlevsel olarak gereksizdir. Yeni entegrasyonlar çok daha küçük hesap listeleri alan ve bugün kanonik yürütme yolunu temsil eden SwapBaseInV2 / SwapBaseOutV2 kullanmalıdır. V1 formları burada eksiksiz olmak ve mevcut zincir üstü işlemleri okumak için belgelenmiştir.
Argümanlar
amount_in: u64
minimum_amount_out: u64
Hesaplar (kısaltılmış)
| # | Ad | W | S |
|---|
| 1 | token_program | | |
| 2 | amm | W | |
| 3 | amm_authority | | |
| 4 | amm_open_orders | W | |
| 5 | amm_target_orders | W | |
| 6 | pool_coin_token_account | W | |
| 7 | pool_pc_token_account | W | |
| 8 | market_program | | |
| 9 | market | W | |
| 10 | market_bids | W | |
| 11 | market_asks | W | |
| 12 | market_event_queue | W | |
| 13 | market_coin_vault | W | |
| 14 | market_pc_vault | W | |
| 15 | market_vault_signer | | |
| 16 | user_source_token_account | W | |
| 17 | user_dest_token_account | W | |
| 18 | user_owner | | S |
Matematik — bkz. products/amm-v4/math.
Ön koşullar
amm.status swapına izin verir (durum bitmaskının bit 0 ayarlanmamış).
amm.state_data.pool_open_time <= now.
amount_in > 0.
user_source_token_account en az amount_in tutmaktadır.
Son koşullar
- Kullanıcı kaynak token’ın
amount_in’ini kaybeder, hedef token’ın amount_out ≥ minimum_amount_out’unu kazanır.
state_data.swap_*_in_amount ve swap_*_out_amount arttırılır (analitik için).
need_take_pnl_* protokol ücreti payı ile arttırılır.
Yaygın hatalar — ExceededSlippage, InvalidInput, InvalidStatus, InvalidMarket.
SwapBaseOut
Tam çıkış, SwapBaseIn’in tersi. Aynı hesaplar.
Argümanlar
max_amount_in: u64
amount_out: u64
SwapBaseInV2 / SwapBaseOutV2
OpenBook hesaplarını tamamen atlayan varyant swap giriş noktaları. Matematik V1 yoluyla özdeştir, ancak hesap listesi yalnızca AMM tarafına küçülür:
| # | Ad | W | S |
|---|
| 1 | token_program | | |
| 2 | amm | W | |
| 3 | amm_authority | | |
| 4 | amm_open_orders | | |
| 5 | pool_coin_token_account | W | |
| 6 | pool_pc_token_account | W | |
| 7 | user_source_token_account | W | |
| 8 | user_dest_token_account | W | |
| 9 | user_owner | | S |
Pool’un etkili rezervleri hala OpenBook’a gönderilen token’ları hesaba katmaktadır, bu yüzden teklifin matematği değişmemiştir. İşlem ve hesap listesini küçültmek için V2’yi kullanın ve aynı işlemde OpenBook cranking ihtiyaç duymadığınızda market hesaplarını iletmekten kaçının. Raydium yönlendiricisi AMM v4’ü yönlendirirken her zaman V2 formunu kullanır.
Argümanlar V1 formlarıyla aynıdır (SwapBaseInV2 için amount_in / minimum_amount_out; SwapBaseOutV2 için max_amount_in / amount_out).
MonitorStep (eski / atıl)
Artık cranked değildir. AMM v4 artık likiditeyi OpenBook’la paylaşmadığından, MonitorStep’in yapacak bir şeyi yoktur — pool’un gönderilecek, iptal edilecek veya değiştirilecek emirleri yoktur. Talimat geriye dönük uyumluluk için zincir üstü programda kalır ancak Raydium keeper artık bunu çağırmaz. Manuel olarak çağırmak etkili olarak bir işlem-uzun (zerolu durum yenileme dışında) ve entegratörler tarafından gerekli olmamalıdır.
Başlangıçta bu talimat pool’un OpenBook etkileşimini cranked etti.
Argümanlar
plan_order_limit: u16
place_order_limit: u16
cancel_order_limit: u16
Hesaplar — bir swap için yukarıdaki her şey plus idari OpenBook hesapları.
Orijinal etki (şu anda pratikte artık ilişkili değildir):
- Herhangi bir doldurulan emri taşıdı (bunların gelirleri OpenBook CPI aracılığıyla
market_coin_vault/market_pc_vault’tan pool’un vault’larına taşındı).
- Fiyatları veya boyutları artık
target_orders ile eşleşmeyen eski emirleri iptal etti.
target_orders ve amm_open_orders arasındaki boşluğu kapatmak için yeni emirler gönderdi.
İzinsiz. Herhangi bir hesap bunu çağırabilir; tarihsel olarak Raydium keeper bunu düzenli olarak yaptı.
WithdrawPnl / TakePnl
Birikmiş protokol ücretlerinin yönetici taraması.
Argümanlar
WithdrawPnl argüman almaz; need_take_pnl_* okur ve tam bu miktarları taşır.
Hesaplar (kısaltılmış)
| # | Ad | W | S | |
|---|
| 1 | token_program | | | |
| 2 | amm | W | | |
| 3 | amm_authority | | | |
| 4 | amm_config | | | |
| 5 | amm_open_orders | W | | |
| 6 | pool_coin_token_account | W | | |
| 7 | pool_pc_token_account | W | | |
| 8 | pnl_coin_token_account | W | | Alıcı, AmmConfig’de saklanmış. |
| 9 | pnl_pc_token_account | W | | |
| 10 | pnl_owner | | S | Admin multisig. |
| 11 | market_program | | | |
| 12 | market | W | | |
| 13 | market_event_queue | W | | |
| 14 | market_coin_vault | W | | |
| 15 | market_pc_vault | W | | |
| 16 | market_vault_signer | | | |
Etki
need_take_pnl_coin’i pool_coin_token_account’tan pnl_coin_token_account’a taşır.
- Pc için de aynı.
need_take_pnl_coin ve need_take_pnl_pc’yi sıfırlar.
Birikmiş PnL zaten değişmezden çıkarıldığından rezervlerde değişiklik yok.
SetParams
Yönetim parametresi değişiklikleri: durum bitmaskı, sıralama ızgarası derinliği, miktar dalgaları, ücretler (nadiren), vb. Raydium multisig tarafından çağrılır. Argümanlar bir param: u8 etiketi + payload’dır, CPMM’nin UpdateAmmConfig’ine benzerdir.
Durum değişimi matrisi
| Talimat | lp_mint arzı | Vault’lar | PnL sayaçları | OpenBook |
|---|
Initialize2 | yaratıcıya başlangıç arzı basılmış | + init_coin_amount, + init_pc_amount | 0 | OpenOrders oluşturulmuş |
Deposit | + | + her ikisi | — | taşıma doldurmaları |
Withdraw | − | − her ikisi | — | taşıma doldurmaları |
SwapBaseIn | — | + giriş, − çıkış | + pnl payı | belki ızgarayı yeniden gönder |
SwapBaseOut | — | + giriş, − çıkış | + pnl payı | belki ızgarayı yeniden gönder |
MonitorStep | — | taşıma doldurmaları | — | iptal / gönder |
WithdrawPnl | — | − (pnl taşındı) | 0 | — |
SetParams | — | — | — | — |
Bundan sonra nereye gidilir
Kaynaklar: