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 →
Stable AMM, AMM v4 ile çoğu talimat setini paylaşır. Benzersiz talimatlar InitModelData ve UpdateModelData olup, bunlar arama tablosunu oluşturur ve günceller. Diğer tüm işlemler (swap, deposit, withdraw, crank) AMM v4 ile aynı yapıyı izler.

Talimat envanteri

TalimatKategoriNotlar
InitializeYaşam döngüsüHavuz oluştur (önceden tahsis edilmiş model-data hesabı gereklidir).
PreInitializeYaşam döngüsüEski ön-tahsis yardımcısı.
InitModelDataModel kurulumuArama tablosunu oluştur ve başlat.
UpdateModelDataModel kurulumuÇağrı başına 5 tablo öğesine kadar doldur.
DepositLikiditeLikidite ekle, LP al.
WithdrawLikiditeLP yak, her iki tarafını al.
SwapBaseInSwapSabit giriş swapı.
SwapBaseOutSwapSabit çıkış swapı.
MonitorStepCrankOpenBook’u kapat, siparişleri güncelle.
SetParamsYöneticiHavuz parametrelerini değiştir.
WithdrawPnlYöneticiTahakkuk eden protokol ücretlerini al.
WithdrawSrmEskiSRM indirim geri ödemelerini al (eski).
SimulateInfoTanılamaSalt okunur fiyat teklifi yardımcısı.

Initialize

Mevcut bir OpenBook piyasasına ve önceden oluşturulmuş bir ModelDataInfo hesabına bağlı yeni bir Stable AMM havuzunu başlat. Bağımsız Değişkenler
nonce: u8
open_time: u64
Hesaplar (yazılabilir W, imzacı S)
#İsimWSNotlar
1token_programSPL Token.
2system_program
3rent
4ammWHavuzun AmmInfo hesabı.
5amm_authorityPrograma geniş PDA.
6amm_open_ordersWOpenBook OpenOrders.
7lp_mintWGözlemlenebilir LP token basımı.
8coin_mint
9pc_mint
10pool_coin_token_accountWHavuzun coin kasası.
11pool_pc_token_accountWHavuzun pc kasası.
12amm_target_ordersWOpenBook siparişleri için ızgara.
13model_data_accountArama tablosu hesabı.
14serum_programOpenBook programı.
15serum_marketOpenBook piyasası.
16user_dest_lp_tokenWYaratıcının LP ATA’sı (başlangıç LP’sini alır).
17user_walletWSYaratıcı; kira öder, başlangıç mevduatını finanse eder.
(opt)srm_tokenWÜcret indirimlerine yönelik SRM token hesabı (eski).
Ön Koşullar
  • model_data_account önceki bir InitModelData tarafından zaten oluşturulmuş ve başlatılmış olmalıdır.
  • lp_mint boş olmalıdır (sıfır tedarik).
  • Kasalar mevcut olmalı ve amm_authority tarafından sahiplenilmelidir.
Son Koşullar
  • AmmInfo tüm başvurularla başlatılır.
  • TargetOrders sıfırlanır ve ilk MonitorStep için hazır.
  • Başlangıç LP tokenleri basılır ve user_dest_lp_token adresine gönderilir.
  • OpenBook siparişleri henüz gönderilmemiştir; ilk MonitorStep bunları gönderir.

InitModelData

ModelDataInfo hesabını oluştur ve başlat. Initialize öncesinde bir kez çağrılmalıdır. Bağımsız Değişkenler
multiplier: u64       // ölçek faktörü (örneğin, 10^6)
Hesaplar (yazılabilir W, imzacı S)
#İsimWSNotlar
1model_data_accountW50k öğeli tablo hesabı.
2amm_adminSHavuz yöneticisi (yetkilendirmeyi kanıtlamak için imzalamalıdır).
Ön Koşullar
  • model_data_account yeterince büyük olmalıdır (~1.2 MB için 50k × 24 bayt).
  • model_data_account Stable programı tarafından sahiplenilmelidir.
Son Koşullar
  • status = Initialized.
  • multiplier ayarlanır.
  • valid_data_count = 0 (henüz hiçbir öğe doldurulmamıştır; eklemek için UpdateModelData çağırın).
  • elements dizisi sıfırlanır.

UpdateModelData

Tek bir çağrıda 5 tablo öğesine kadar doldur. InitModelData sonrasında ancak swaplar tabloyu kullanmaya başlamadan önce çağrılmalıdır. Bağımsız Değişkenler
array_data: [UpdateModelData; 5]

pub struct UpdateModelData {
  pub index: u64,
  pub data: DataElement,
}
Hesaplar (yazılabilir W, imzacı S)
#İsimWSNotlar
1amm_adminSİmzacı (havuz yöneticisi olmalıdır).
2model_data_accountWTablo hesabı.
Ön Koşullar
  • amm_admin AmmInfo.amm_admin ile eşleşmelidir.
  • array_data içindeki her indeks geçerli olmalıdır (50,000’in içinde).
  • Girdiler sıralanmalıdır (hız için on-chain doğrulanmaz): x artan, y azalan, fiyat artan.
Son Koşullar
  • Öğeler her giriş için model_data_account.elements[index] adresine yazılır.
  • valid_data_count yazılan maksimum indeks + 1 olarak güncellenir.
Yönetim notu: Sıralama düzeni veya fiyat tutarlılığının on-chain zorlanması yoktur. Kötü niyetli veya dikkatsiz bir yönetici tabloyu bozabilir ve yanlış alıntılara neden olabilir. Pratikte, Raydium multisig bu adresi kontrol eder.

Deposit

Likidite ekle, LP tokenleri al. Bağımsız Değişkenler
max_coin_amount: u64
max_pc_amount: u64
base_side: u64          // 0 = base on coin, 1 = base on pc
Hesaplar — AMM v4 gibi, ~13 hesap. model_data_account adresini salt okunur şekilde içermelidir. Matematik — arama tablosunu kullanarak oranı hesaplamak için standart oran. SDK, istenen LP miktarı için coin/pc çiftini hesaplar ve maksimum sınırlarına karşı kontrol eder.

Withdraw

LP yak, her iki tarafı oran olarak al. Bağımsız Değişkenler
amount: u64            // Yakılacak LP tokenleri
Hesaplarmodel_data_account adresini salt okunur şekilde içeren AMM v4 gibi. Ön Koşullar
  • user_lp_token_account en azından amount tutmalıdır.
Son Koşullar
  • amount LP tokenleri yakılır.
  • Kullanıcı tahakkuk eden ücretler için ayarlanmış geçerli orana göre coin ve pc tutarlarını alır.

SwapBaseIn

Arama tablosunu fiyatlandırma için kullanan sabit giriş swapı. Bağımsız Değişkenler
amount_in: u64
minimum_amount_out: u64
Hesaplar (~17 toplam)
#İsimWSNotlar
1token_program
2ammW
3amm_authority
4amm_open_ordersW
5amm_target_ordersW
6pool_coin_token_accountW
7pool_pc_token_accountW
8model_data_accountSalt okunur arama tablosu.
9serum_program
10serum_marketW
11serum_bidsW
12serum_asksW
13serum_event_queueW
14serum_coin_vaultW
15serum_pc_vaultW
16serum_vault_signer
17user_source_tokenWKullanıcının giriş token hesabı.
18user_dest_tokenWKullanıcının çıkış token hesabı.
19user_ownerSKullanıcı (işlem imzacısı).
Ön Koşullar
  • amm.status swapa izin vermelidir.
  • user_source_tokenamount_in tutmalıdır.
Son Koşullar
  • Kullanıcı amount_in kaybeder, amount_out ≥ minimum_amount_out kazanır.
  • Havuz ücretleri need_take_pnl_* sayaçlarını artırır.
  • Doldurulursa OpenBook siparişleri kapanabilir.
Matematikproducts/stable/math açıklanan arama tablosu enterpolasyonu.

SwapBaseOut

Sabit çıkış swapı (SwapBaseIn tersi). Aynı hesaplar, farklı matematik yönü. Bağımsız Değişkenler
max_amount_in: u64
amount_out: u64

MonitorStep

İzinsiz crank: OpenBook doldurmaları kapat, limit sipariş ızgarasını güncelle. Bağımsız Değişkenler
plan_order_limit: u16
place_order_limit: u16
cancel_order_limit: u16
Hesaplar (~18 toplam) — salt okunur model_data_account adresini içeren AMM v4 MonitorStep ile aynı. Ön Koşullar
  • OpenBook hesabı başvuruları havuzun bağlı piyasasıyla eşleşmelidir.
Son Koşullar
  • Beklemede olan OpenBook doldurmaları havuz kasalarına kapatılır.
  • Arama tablosu eğrisine dayanarak yeni limit siparişleri OpenBook’a gönderilir.
  • TargetOrders güncellenir.

SetParams

Yalnızca yönetici. Havuz parametrelerini değiştir (durum, durum, ücretler, sahip, model-data anahtarı, vb.). Bağımsız Değişkenler
param: u8              // hangi parametrenin değiştirileceği (Status, State, Fees, vb.)
value: Option<u64>    // yeni değer (param sayıysa)
new_pubkey: Option<Pubkey>  // yeni adres (param hesap anahtarıysa)
fees: Option<Fees>    // yeni ücretler (param Fees ise)
Hesaplar — param’a göre değişir. Her zaman amm_admin adresini imzacı olarak gerektirir. Yaygın parametreler:
  • param = 0 (Status) — operasyon bitmask’ini değiştir.
  • param = 9 (Fees) — trade_fee, pnl bölünmesi vb. değiştir.
  • param = 11 (ModelDataKey) — arama tablosunu yeniden bağla (nadir, yönetici işlemi gerektirir).

WithdrawPnl

Yalnızca yönetici. Tahakkuk eden protokol ücretlerini need_take_pnl_* adresinden belirlenen PnL hesaplarına al. Bağımsız Değişkenler — hiçbiri (durum odaklı). Hesaplar (~14 toplam)
#İsimWSNotlar
1token_program
2ammW
3amm_authority
4amm_open_ordersW
5pool_coin_token_accountW
6pool_pc_token_accountW
7coin_pnl_destWYöneticinin coin hesabı (ücreti alır).
8pc_pnl_destWYöneticinin pc hesabı (ücreti alır).
9pnl_adminSİmzacı (havuz sahipliğiyle eşleşmelidir).
10+OpenBook hesapları (~4)Önce beklemede olan doldurmaları kapat.
Ön Koşullar
  • pnl_admin yetkilendirilmiş olmalıdır.
Son Koşullar
  • need_take_pnl_coin ve need_take_pnl_pc yöneticinin hesaplarına aktarılır.
  • Sayaçlar sıfırlanır.

WithdrawSrm

Eski (yeni havuzlarda kullanmayın). Eski Serum dönemi havuzlarından SRM ücret indirimi token geri ödemelerini alır. Bağımsız Değişkenler
amount: u64

SimulateInfo

İstemciler ve SDK için salt okunur fiyat teklifi yardımcısı. Bağımsız Değişkenler
param: u8              // PoolInfo, SwapBaseInInfo, SwapBaseOutInfo, RunCrankInfo
swap_base_in_value: Option<SwapInstructionBaseIn>
swap_base_out_value: Option<SwapInstructionBaseOut>
Kullanım — swapı yürütmeden fiyat teklifi almak için simulateTransaction aracılığıyla çağrılır.

Sonraki adımlar

  • Hesaplar — hesap alanı düzenleri ve boyutları için.
  • Matematik — arama tablosu enterpolasyon mantığı için.
  • Kod örnekleri — SDK’dan bunların nasıl çağrılacağını görmek için.
Kaynaklar:
  • raydium-stable/program/src/instruction.rs (enum ve pack/unpack)
  • raydium-stable/program/src/processor.rs (yürütme mantığı)