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 →
2026-07 program güncellemesi itibarıyla, AMM v4’ün OpenBook / Serum bağımlılığı kaldırılmıştır. Eski v1
SwapBaseIn / SwapBaseOut, Deposit ve Withdraw talimatları eski hesap düzenlerini korur geriye dönük uyumluluk için: market hesapları eski konumlarında kabul edilir, ancak artık doğrulanmaz veya kullanılmaz (CPI yayınlanmaz). Yeni entegrasyonlar, market hesaplarını tamamen atlayan V2 swap giriş noktalarını kullanmalıdır. Birkaç talimat kaldırılmış ve şimdi geri döner — changelog girişine bakın. Aşağıdaki hesap listeleri Raydium SDK’daki alan adlarını kullanır; temel IDL bazen serum_* önekleri kullanır.2026-09 program güncellemesi bir yönetici talimatı WithdrawExcessLamports (tag 18) ekler ve CreateConfigAccount’tan rent sysvar’ı kaldırır. Bir tüccar veya LP’nin çağırdığı her şey değişmez. 2026-09-09 changelog girişine bakın.Talimat envanteri
SDK, yalnızca kullanıcı tarafından erişilebilen talimatlar için oluşturucuları ortaya çıkarır. Bakım talimatları tipik olarak Raydium keeper tarafından çağrılır.
Kaldırıldı / artık çağrılamaz (istemci oluşturucuları silindi):
Initialize (tag 0, Initialize2 kullanın), MonitorStep (2), MigrateToOpenBook (5), WithdrawSrm (8), PreInitialize (10, Initialize2 kullanın), SimulateInfo (12), AdminCancelOrders (13).
Bu etiketlerden birini taşıyan bir işlem başarısız olur; program talimatı asla yürütmez. Hepsi yedisini hata yolları olarak işlemek yerine gitmiş olarak değerlendirin.
Initialize2
Mevcut bir OpenBook market’e bağlı yeni bir AMM v4 pool’u başlat.
Argümanlar
W, imzalayan S)
Kabul edilen iki düzen. Yukarıdaki 19 hesaplı liste önerilen olandır. Geriye dönük uyumluluk
için program ayrıca 21 hesaplı eski bir düzeni de okur; bu düzen 7. konuma yoksayılan bir
amm_open_orders, 16. konuma ise yoksayılan bir market_program ekler — depo içindeki
initialize2 komut oluşturucusunun hâlâ ürettiği düzen budur. Başka herhangi bir uzunluk eski
düzene göre konumsal olarak ayrıştırılır ve başarısız olur.- Yaratıcıya mint’lenen LP =
sqrt(init_coin_amount × init_pc_amount) − 10^coin_mint.decimals. LP ondalıklarıcoin_mint.decimalsile eşittir, dolayısıyla çıkarılan miktar tam olarak bir bütün LP token’ıdır; hiçbir zaman mint’lenmez ve kalıcı olarak dolaşım dışıdır.sqrt(...)bunun altındaysa komutInitLpAmountTooLessile geri döner. AmmInfo.lp_amount, mint’lenen miktarı değil, tamsqrt(...)değerini saklar — bu nedenlelp_mint.supply,amm.lp_amount’tan kalıcı olarak bir bütün LP token’ı kadar daha düşüktür. Tüm orantısal matematikamm.lp_amountkullanır.- OpenBook emirleri yayınlanmaz (emir defteri ızgarası kaldırılmıştır).
AmmInfo.market, 15. yuvada geçirilen hesabı kaydeder; ancakAmmInfo.open_ordersveAmmInfo.market_programikisi dePubkey::default()olarak yazılır vecoin_lot_size/pc_lot_size/min_size0olarak başlatılır. 21 hesaplı eski düzende fazladan gelenamm_open_ordersvemarket_programhesapları okunur ve atılır.
InvalidCoinMint (coin ve pc mint aynı), InvalidConfigAccount (yanlış amm_config PDA’sı), InvalidFee (yanlış havuz oluşturma ücreti hedefi), InvalidProgramAddress (yanlış amm_authority veya yanlış nonce), RepeatCreateAmm (bu market için bir havuz zaten mevcut), InitLpAmountTooLess, InvalidSupply (init miktarlarından biri 0 ya da LP mint’inin zaten arzı var), AlreadyInUse.
Deposit
Likidite ekle.
Argümanlar
Matematik — standart orantılı. Pool’un etkili rezervlerini (vault’lar + kitapta) kullanarak, SDK verilen LP miktarını veren coin/pc çiftini hesaplar ve
max_* karşısında kontrol eder. Her iki taraf da sınırı aşarsa ExceededSlippage ile geri döner.
Withdraw
LP yak, her iki tarafı al.
Argümanlar
OpenBook’tan yerleşme adımı artık yoktur — orantılı matematik vault bakiyelerini doğrudan 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’ün OpenBook bağımlılığı kaldırıldığından, V1 giriş noktaları (
SwapBaseIn, SwapBaseOut) hala tam 17 hesap listesini (veya isteğe bağlı target-orders hesabı ile 18) bekler, ancak OpenBook/market hesapları şimdi konumsal olarak kabul edilir ve yoksayılır — doğrulanmaz ve CPI yayınlanmaz. Yanlış hesap sayısı geçirmek hala WrongAccountsNumber ile geri döner, ancak market hesabı içeriği artık kontrol edilmez. Yeni entegrasyonlar SwapBaseInV2 / SwapBaseOutV2 kullanmalıdır, bunlar çok daha küçük bir hesap listesi alır ve bugün kanonik yürütme yolunu temsil eder. V1 formları burada bütünlük için ve mevcut zincir üstü işlemleri okumak için belgelenmiştir.
Matematik —
products/amm-v4/math bölümüne bakın.
Ön koşullar
AmmStatus::from_u64(amm.status).swap_permission()doğrudur — yanistatusdeğeri1(Initialized),6(SwapOnly) veya7(WaitingTrade)‘tür.statusbir enum değeridir, bitmask değildir; bkz.products/amm-v4/accounts.amm.state_data.pool_open_time <= now.amount_in > 0.user_source_token_accounten azamount_intutar.
- Kullanıcı kaynak token’ın
amount_in’ini kaybeder, hedef token’ınamount_out ≥ minimum_amount_out’unu kazanır. - Swap ücreti vault’larda kalır ve
kdeğişmezini yükseltir.need_take_pnl_*sayaçlarına swap’lar tarafından dokunulmaz — protokol PnL’si, bir sonrakiDeposit,WithdrawveyaWithdrawPnlişlemindekdeltasından yeniden hesaplanır (Processor::calc_take_pnl). - Not:
state_data.swap_*_in_amount/swap_*_out_amountanalitik sayaçları artık güncellenmez — değerleri dondurulmuştur. Hacim analitikleri için işlem günlüklerini kullanın.
ExceededSlippage, InvalidInput, InvalidStatus, NotAllowed (coin/pc mint özdeş).
SwapBaseOut
Tam çıkış, SwapBaseIn’in tersi. Aynı hesaplar.
Argümanlar
SwapBaseInV2 / SwapBaseOutV2
Varyant swap giriş noktaları (etiketler 16 / 17) OpenBook hesaplarını tamamen atlar. Matematik V1 yolu ile özdeştir, ancak hesap listesi sadece AMM tarafı ve kullanıcıya küçülür — 8 hesap, ve amm_open_orders geçirilmez:
Pool rezervleri şimdi vault bakiyeleridir (bekleyen PnL eksi), bu nedenle fiyat teklifi matematik basittir ve v1 yolu ile özdeştir. Hesaplama tasarrufu yapmak ve (şimdi yoksayılan) market hesaplarını geçmekten kaçınmak için V2 kullanın. Raydium yönlendiricisi AMM v4 aracılığıyla yönlendirirken her zaman V2 formunu kullanır.
Argümanlar V1 formları ile aynıdır (
SwapBaseInV2 için amount_in / minimum_amount_out; SwapBaseOutV2 için max_amount_in / amount_out).
MonitorStep ve diğer kaldırılan talimatlar
Tarihsel olarak, MonitorStep pool’un OpenBook etkileşimini çalıştırdı: doldurulmuş siparişleri yerleştirdi (OpenBook CPI aracılığıyla market vault’larından pool vault’larına gelirleri taşıdı), eski siparişleri iptal etti ve target_orders ile amm_open_orders arasındaki boşluğu kapatmak için yeni siparişler yayınladı. OpenBook bağımlılığı kaldırıldığında, çalıştırılacak bir şey yoktur ve talimat gitmiştir. Hala çağıran herhangi bir keeper veya entegrasyon çağrıyı kaldırmalıdır.
WithdrawPnl / TakePnl
Birikmiş protokol ücretlerinin yönetici tarafından temizlenmesi.
Argümanlar
WithdrawPnlargüman almaz;need_take_pnl_*okur ve tam bu miktarları taşır.
Etki
need_take_pnl_coin’ipool_coin_token_account’tanpnl_coin_token_account’a aktarır.- PC için aynı.
need_take_pnl_coinveneed_take_pnl_pc’yi sıfırlar.- Mantık değişikliği: vault bakiyesi birikmiş PnL’yi karşılamaya yetmezse, talimat doğrudan
TakePnlErrordöndürür (artık sipariş defteri durumunu manipüle etmez).
SetParams
Raydium multisig tarafından çağrılan yönetici param değişiklikleri. Argümanlar bir param: u8 etiketi + yüküdür.
CreateConfigAccount / UpdateConfigAccount
Program düzeyindeki AmmConfig PDA’sının (tohum ["amm_config_account_seed"]) yönetici yönetimi. Hesap tam olarak üç anlamlı alan tutar — pnl_owner, cancel_owner ve create_pool_fee — ve buna ek olarak iki ayrılmış dolgu bölgesi; havuz oluşturma bayrağı yoktur. UpdateConfigAccount, param = 0 ile pnl_owner’ı, param = 1 ile cancel_owner’ı ve param = 2 ile create_pool_fee’yi ayarlar.
2026-09’da değişti ve geriye dönük uyumlu.
CreateConfigAccount artık rent sysvar’ı okumaz. Hesap listesi şimdi 4 hesap, 5’ten aşağı:Program, geçirilen sysvar hesabını deserialize etmek yerine
Rent::get() öğesinden rent parametrelerini okur — Solana 3.0 bağımlılığı bump’ının doğal kıldığı şey.Kaldırılan hesap listenin sonunda idi ve işleyici hesaplarını next_account_info aracılığıyla konumsal olarak uzunluk kontrolü olmadan okur. Eski 5 hesap listesini hala geçiren mevcut bir yönetici aracı bu nedenle çalışmaya devam eder: sondaki rent hesabı basitçe asla okunmaz. Acele etmeden uygun olduğunda güncelleyin. UpdateConfigAccount değişmez.Initialize2 rent sysvar’ı 3. konumda tutar ve hala kullanır: program Rent::from_account_info öğesini çağırmayı bıraktı, ancak pool’un vault’larını ve LP mint’ini oluşturan spl_token::initialize_account ve initialize_mint CPI’lerine iletilir. Hesap listesinden bırakmayın.
WithdrawExcessLamports
Program kontrollü hesaplardan rent-exempt minimumunun üzerinde oturan lamportların yönetici tarafından temizlenmesi. SIMD-0437 rent azaltması her adımdan sonra hesaplar oluşturulduğunda bıraktığı aşırı finansmanı kurtarmak için 2026-09 güncellemesinde eklendi.
Yalnızca fazlalığı taşır. Token bakiyeleri, hesap verileri, sahipleri ve pool durumu dokunulmaz ve talimat zaten minimumda olan bir hesapta no-op’tır — bu nedenle tekrar tekrar ve her rollout adımından sonra tekrar ateşlemek güvenlidir.
Argümanlar — hiçbiri. Yük tek tag baytı 18’dir.
Hesaplar
Her kaynak hesabı nasıl işlenir
Program kaynak hesabının
owner öğesine göre gönderir:
Yaygın hatalar —
InvalidSignAccount (yanlış imzalayan), InvalidSplTokenProgram (slot 3’te yanlış program), InvalidProgramAddress (yanlış amm_authority), LamportsCalculateError (özel kod 60; wSOL gidiş-dönüş sıfıra net olmadı) ve program sahibi yolundan InsufficientFunds bir hesap kendi rent minimumundan daha az tuttuğunda.
SDK oluşturucusu yok. @raydium-io/raydium-sdk-v2 bu talimat için bir oluşturucu göndermez ve raydium-sdk-V2-demo repo da göndermez — bu bir yönetici yoludur. Elle kodlayın, solana-fundamentals/rent-and-reclaimable-rent içindeki cüzdan tarafı süpürmenin yaptığı şekilde token programı talimatı için.
Durum değişikliği matrisi
OpenBook sütunu gitmiştir — hiçbir talimat artık bir sipariş defterine dokunmaz.Sonraki adım
products/amm-v4/code-demos— swap ve LP akışları için TypeScript örnekleri.products/amm-v4/fees—WithdrawPnldetayları ve ücret bölünmesi.reference/error-codes— ileri referans tablosu (AMM v4 hataları bu sayfada listelenir).
- Raydium AMM programı —
raydium-io/raydium-amm - Raydium SDK v2
Liquiditymodülü - OpenBook programı — market tarafında hesap doğrulamaları

