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 →
2026-07 güncellemesi itibarıyla, AMM v4’ün OpenBook / Serum bağımlılığı kaldırılmıştır — hiçbir instruction artık OpenBook durumunu okumaz veya yazmaz. Aşağıdaki market hesapları yalnızca eski v1 instruction düzenlerinde konumsal yer tutucu olarak (kabul edilir ancak yoksayılır) ve AmmInfo üzerinde referans alanları olarak tutulur. V2 swap giriş noktalarını kullanın; bunlar bu hesapları tamamen atlar. Bu sayfa, eski işlemleri okumak için hesapları “havuz tarafından sahip olunan” ve “OpenBook (eski)” bölümlerine ayırır.

Envanter

Bir AMM v4 havuzu, oluşturulduğunda AmmInfo üzerinde bir bağlı market kaydeder. Tam resim: Not: “serum” ön eki, geriye dönük uyumluluk için AMM v4’ün IDL ve alan adlarında tutulur. Bu hesaplar OpenBook kaldırılmasından sonra artık işlevsel değildir.

AmmInfo

Havuzun kök durum hesabı. Büyüktür (≈ 752 bayt) çünkü hem havuz hem de OpenBook referanslarını satır içinde taşır.
Struct düzeni değişmemiştir (bayt uyumlu) bu nedenle mevcut deserializer’lar çalışmaya devam eder, ancak OpenBook kaldırılmasından sonra yukarıda DEPRECATED olarak işaretlenen alanlar artık yazılmazswap_* hacim sayaçları son değerlerinde dondurulur. Hacim analitikleri için bu alanlar yerine işlem günlüklerini kullanın. Yalnızca need_take_pnl_* ve pool_open_time aktif olarak korunur.
Entegratör tarafından görülen alanlar:
  • coin_vault, pc_vault — havuzun SPL Token vault’ları. coin, Serum/OpenBook kuralına göre token_0’dır (taban), pc ise token_1’dir (alıntı).
  • coin_decimals, pc_decimals — mint’lerle eşleşir.
  • open_orders, target_orders, market — eski referans alanları. AmmInfo üzerinde hala mevcuttur ve v1 instruction düzenlerinde konumsal olarak hala geçirilir, ancak program artık bunları okumaz veya doğrulamaz. V2 swap giriş noktaları bunları atlar.
  • fees.swap_fee_numerator / swap_fee_denominator — birleştirilmiş işlem ücreti. Varsayılan 25 / 10_000 = %0.25.
  • status — işlemleri kapı açan bitmask. AdminSetStatus aracılığıyla admin tarafından ayarlanabilir.
  • state_data.need_take_pnl_* — brüt tahakkuk eden ücretler ile taranmış olanlar arasındaki delta. TakePnl bunları sıfırlar.

OpenBook bağlantısı

Kaldırılmıştır. OpenBook / Serum bağımlılığı programdan silinmiştir (2026-07 güncellemesi). Bu bölümde açıklanan hesaplar artık doğrulanmaz veya kullanılmaz. AmmInfo üzerinde referans alanları ve eski v1 instruction düzenlerinde konumsal yer tutucuları olarak kalırlar. V2 swap giriş noktalarını (SwapBaseInV2 / SwapBaseOutV2) kullanın; bunlar bu hesapları tamamen atlar.
Eski v1 SwapBaseIn / SwapBaseOut, Deposit veya Withdraw instruction’ını çağırdığınızda, hesap sayısı eski düzenle eşleşmelidir (market hesapları tarihsel konumlarını işgal eder), ancak içerikleri artık kontrol edilmez — bunlara karşı CPI verilmez. Yeni kod, bu hesapları hiç almayan V2 swap varyantlarını kullanmalıdır.
AMM’nin amm_open_orders’ı, bu market’te havuzun limit-order durumunu tutan OpenBook tarafından sahip olunan bir hesaptır: aktif emirler, kapatılan bakiyeler, referrer’lar vb. amm_target_orders AMM tarafındandır: AMM’nin amaçlanan grid’ini (her order slot’u için fiyat/boyut) tutar, böylece program şu anda ne kadar yayınlandığını ucuza karşılaştırabilir ve farkı yerleştirebilir / iptal edebilir.

Authority PDA’ları

Tüm AMM v4 programı için tam olarak bir amm_authority PDA vardır. Tohumu önemsizdir (["amm authority"]) ve bump’ı her AmmInfo üzerinde depolanır. Bu authority, tüm AMM v4 havuzları için tüm token hareketlerini imzalar.
OpenBook işlemlerini imzalamak için havuz başına türetilen ayrı bir havuz kapsamlı authority vardır (amm_authority yukarıda aslında bu programın tasarımında her ikisini de kapsar; farklı sürümler farklı türetme kullandı, bu nedenle kodda belirli havuzun AmmInfo.nonce’ını kontrol edin).

Vault’lar

Havuzun SPL Token vault’ları, owner’ı amm_authority olan standart token hesaplarıdır. ATA değil — adresleri Initialize sırasında ["amm_associated_seed", coin_mint_or_pc_mint, market, amm_id] tohumlarıyla türetilen belirli PDA’lardır. Adresler AmmInfo üzerinde depolanır; türetme tek seferlik bir merak konusudur. Token-2022 desteklenmez. Program, tüm vault hareketleri için SPL Token’ın program ID’sini hardcode eder. Bir AMM v4 havuzunu Token-2022 mint’ine bağlamaya çalışmak Initialize sırasında başarısız olur.

LP mint

amm_authority’nin authority’si olan klasik bir SPL Token mint’i. Toplam arz, havuzun LP sahipliğini izler; LP’yi yakma, her iki vault’tan orantılı olarak token’ları döndürür. AMM v4 CPMM’den önce geldiğinden, havuz durumunda lp_supply aynası yoktur — mint’in zincir üzerindeki arzını doğrudan okuyun.

Durum bitmask’ı

AmmInfo.status işlemleri kapı açar. Bitler (konum program sürümleri arasında farklılık gösterebilir — kaynaktan onaylayın): Raydium multisig’i bunları SetParams aracılığıyla ayarlar (param = Status ile). (AdminCancelOrders kaldırılmıştır.)

Gözlem / oracle

AMM v4’ün adanmış gözlem hesabı yoktur. Zincir üzerinde TWAP’a ihtiyaç duyan diğer protokoller, OpenBook’un kitap geçişlerini dolaylı olarak tüketir veya zincir dışından okur. Raydium TWAP’ına program desteği ile ihtiyacınız varsa, CPMM veya CLMM kullanın.

Bir havuzun hesaplarını sıfırdan türetme

AMM v4, belirleyici per-pair PDA’lar için tasarlanmadığından (bu Solana kuralından önce gelir), kanonik amm_id bir tohumlanmış keypair’dir:
Aynı tohumlanmış anahtar deseni amm_open_orders, amm_target_orders, amm_withdraw_queue, pool_temp_lp, pool_coin_token_account, pool_pc_token_account ve lp_mint için geçerlidir. SDK ve API bunları önceden hesaplar; raydium-sdk-v2’nin Liquidity.getAssociatedPoolKeys bölümüne bakın. Uygulamada, entegratörler havuzun tam hesap setini GET https://api-v3.raydium.io/pools/info/ids?ids=<POOL_ID> veya SDK’dan okurlar. El ile türetme nadiren gereklidir.

Yaşam döngüsü hızlı referansı

Havuzlar ve hesapları süresiz olarak kalır. Likidite tamamen çekilse bile, AmmInfo kalır.

Nerede ne okuyacağınız

Kaynaklar: