Zum Hauptinhalt springen

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.

Diese Seite wurde mit KI automatisch übersetzt. Maßgeblich ist stets die englische Version.Englische Version ansehen →
AMM v4 Instruktionen erwarten einheitlich sowohl eine Pool-Seite (AMM v4 Programm-Konten) als auch eine Market-Seite (OpenBook-Konten für den gebundenen Market). Das Weglassen oder Nicht-Abgleichen beider Konto-Sets führt zu einem Revert. Die unten aufgeführten Kontenlisten verwenden die Feldnamen aus dem Raydium SDK zur Verdeutlichung; die zugrunde liegende IDL verwendet teilweise serum_* Präfixe.

Instruktions-Übersicht

GruppeInstruktionHinweise
Pool-LebenszyklusInitialize2Aktuelle Pool-Erstellungs-Instruktion (weiterhin funktionsfähig; UI standardisiert auf CPMM für neue Pools).
LiquiditätDepositLiquidität hinzufügen, LP erhalten.
LiquiditätWithdrawLP verbrennen, beide Seiten im Verhältnis empfangen.
SwapSwapBaseInExakte-Input-Swap (vollständiger Pfad: Vaults + OpenBook).
SwapSwapBaseOutExakte-Output-Swap (vollständiger Pfad).
SwapSwapBaseInV2Exakte-Input-Swap, der OpenBook umgeht — nur Vaults, weniger Konten.
SwapSwapBaseOutV2Exakte-Output-Swap, die OpenBook umgeht.
WartungSetParamsAdmin: Pool-Parameter ändern.
WartungWithdrawPnlAufgelaufene Protokoll-PnL in die PnL-Owner-Konten leeren.
WartungCreateConfigAccountAdmin: Programm-Level AmmConfig PDA initialisieren.
WartungUpdateConfigAccountAdmin: Programm-Level Config-Parameter ändern.
Das SDK stellt Builder nur für benutzerfreundliche Instruktionen bereit. Wartungs-Instruktionen werden normalerweise vom Raydium Keeper aufgerufen.

Initialize2

Starten Sie einen neuen AMM v4 Pool, der an einen bestehenden OpenBook Market gebunden ist. Argumente
nonce:        u8
open_time:    u64
init_pc_amount:   u64
init_coin_amount: u64
Konten (beschreibbar W, Unterzeichner S)
#NameWSHinweise
1token_programSPL Token.
2system_program
3rent
4ammWAmmInfo Konto (Seed-Key).
5amm_authorityProgramm PDA.
6amm_open_ordersWOpenBook OpenOrders (Seed).
7lp_mintW
8coin_mint
9pc_mint
10pool_coin_token_accountW
11pool_pc_token_accountW
12pool_withdraw_queueW
13pool_target_orders_accountW
14pool_lp_token_accountWCreator’s LP ATA.
15pool_temp_lp_token_accountWScratch-Konto.
16market_programOpenBook-Programm.
17marketOpenBook Market.
18user_walletWSCreator. Bezahlt Miete und finanziert initiale Einzahlung.
19user_token_coinW
20user_token_pcW
Nachbedingungen
  • lp_supply = sqrt(init_coin_amount × init_pc_amount) − INIT_BURN, wobei INIT_BURN ≈ 100 LP-Einheiten aus dem Verkehr genommen werden.
  • OpenBook-Orders wurden noch nicht gepostet; der erste MonitorStep postet das initiale Gitter.
Häufige FehlerInvalidInput (nicht übereinstimmende Dezimalstellen, unsortiert), NotApproved, OpenBook-seitige InvalidMarketState.

Deposit

Liquidität hinzufügen. Argumente
max_coin_amount: u64
max_pc_amount:   u64
base_side:       u64    // 0 = Basis auf Coin, 1 = Basis auf PC
// (einige SDK-Varianten akzeptieren auch other_amount_min)
Konten (gekürzt)
#NameWS
1token_program
2ammW
3amm_authority
4amm_open_orders
5amm_target_ordersW
6lp_mintW
7pool_coin_token_accountW
8pool_pc_token_accountW
9market
10user_coin_token_accountW
11user_pc_token_accountW
12user_lp_token_accountW
13user_ownerS
Mathematik — Standard-Verhältnismäßigkeit. Mit den effektiven Reserven des Pools (Vaults + On-Book) berechnet das SDK die Coin/PC-Paarung, die die gegebene LP-Menge ergibt, und prüft sie gegen max_*. Reverts mit ExceededSlippage, wenn entweder Seite die Obergrenze überschreitet.

Withdraw

LP verbrennen, beide Seiten empfangen. Argumente
amount: u64    // Zu verbrennende LP
Konten — wie Deposit mit umgekehrter Richtung; lp_mint ist für den Burn beschreibbar, die Benutzer-ATAs sind Empfänger. Ein MonitorStep-ähnlicher Settle-From-OpenBook-Schritt findet intern statt, bevor die Verhältnismäßigkeits-Mathematik erfolgt, sodass die Rückgabe frische Reserven verwendet.

SwapBaseIn

Exakte-Input-Swap. Immer ein AMM-Pfad Swap (wird nicht durch OpenBook Matching geleitet).
Verwenden Sie die V2-Varianten für neuen Code. Da AMM v4 Liquidität nicht mehr mit OpenBook teilt, sind die V1-Einstiegspunkte (SwapBaseIn, SwapBaseOut) — die immer noch den vollständigen Satz OpenBook-Konten zur Validierung erfordern — funktional redundant. Neue Integrationen sollten SwapBaseInV2 / SwapBaseOutV2 verwenden, die eine viel kleinere Kontenliste benötigen und den kanonischen Ausführungspfad heute darstellen. Die V1-Formen werden hier aus Vollständigkeit und zum Lesen bestehender On-Chain-Transaktionen dokumentiert.
Argumente
amount_in:            u64
minimum_amount_out:   u64
Konten (gekürzt)
#NameWS
1token_program
2ammW
3amm_authority
4amm_open_ordersW
5amm_target_ordersW
6pool_coin_token_accountW
7pool_pc_token_accountW
8market_program
9marketW
10market_bidsW
11market_asksW
12market_event_queueW
13market_coin_vaultW
14market_pc_vaultW
15market_vault_signer
16user_source_token_accountW
17user_dest_token_accountW
18user_ownerS
Mathematik — siehe products/amm-v4/math. Vorbedingungen
  • amm.status erlaubt Swap (Bit 0 der Status-Bitmaske nicht gesetzt).
  • amm.state_data.pool_open_time <= now.
  • amount_in > 0.
  • user_source_token_account hält mindestens amount_in.
Nachbedingungen
  • Benutzer verliert amount_in des Quellen-Token, gewinnt amount_out ≥ minimum_amount_out des Ziel-Token.
  • state_data.swap_*_in_amount und swap_*_out_amount inkrementiert (für Analytik).
  • need_take_pnl_* inkrementiert um den Protokoll-Gebühren-Anteil.
Häufige FehlerExceededSlippage, InvalidInput, InvalidStatus, InvalidMarket.

SwapBaseOut

Exakte-Output, Inverse von SwapBaseIn. Gleiche Konten. Argumente
max_amount_in: u64
amount_out:    u64

SwapBaseInV2 / SwapBaseOutV2

Varianten-Swap-Einstiegspunkte, die die OpenBook-Konten vollständig überspringen. Die Mathematik ist identisch mit dem V1-Pfad, aber die Kontenliste schrumpft auf nur die AMM-Seite:
#NameWS
1token_program
2ammW
3amm_authority
4amm_open_orders
5pool_coin_token_accountW
6pool_pc_token_accountW
7user_source_token_accountW
8user_dest_token_accountW
9user_ownerS
Die effektiven Reserven des Pools berücksichtigen immer noch Token, die auf OpenBook gepostet sind, daher ist die Quote-Mathematik unverändert. Verwenden Sie V2, um Compute zu sparen und das Übergeben der Market-Konten zu vermeiden, wenn Sie keinen OpenBook-Crank in derselben Transaktion benötigen. Der Raydium Router verwendet immer die V2-Form beim Routing durch AMM v4. Argumente sind dieselben wie die V1-Formen (amount_in / minimum_amount_out für SwapBaseInV2; max_amount_in / amount_out für SwapBaseOutV2).

MonitorStep (Legacy / inaktiv)

Wird nicht mehr gecrankt. AMM v4 teilt Liquidität nicht mehr mit OpenBook, daher hat MonitorStep nichts zu tun — der Pool hat keine Orders auf OpenBook gepostet, die settled, storniert oder ersetzt werden müssen. Die Instruktion bleibt im On-Chain-Programm aus Gründen der Abwärtskompatibilität erhalten, aber der Raydium Keeper ruft sie nicht mehr auf. Das manuelle Aufrufen ist effektiv ein No-Op (außer zum Aktualisieren von auf Null gesetztem State) und sollte von Integratoren nicht benötigt werden.
Ursprünglich hat diese Instruktion die OpenBook-Interaktion des Pools gecrankt. Argumente
plan_order_limit:   u16
place_order_limit:  u16
cancel_order_limit: u16
Konten — alles oben für einen Swap, plus administrative OpenBook-Konten. Ursprüngliche Auswirkung (nicht mehr relevant in der Praxis):
  • Settled gefüllte Orders (deren Erträge wurden von market_coin_vault/market_pc_vault durch OpenBook CPI in die Pool-Vaults verschoben).
  • Stornierte veraltete Orders, deren Preise oder Größen nicht mehr mit target_orders übereinstimmten.
  • Gepostete neue Orders, um die Lücke zwischen target_orders und amm_open_orders zu schließen.
Berechtigung erforderlich. Jedes Konto konnte es aufrufen; historisch tat der Raydium Keeper dies regelmäßig.

WithdrawPnl / TakePnl

Admin-Sweep aufgelaufener Protokoll-Gebühren. Argumente
  • WithdrawPnl nimmt keine Argumente; es liest need_take_pnl_* und bewegt genau diese Beträge.
Konten (gekürzt)
#NameWS
1token_program
2ammW
3amm_authority
4amm_config
5amm_open_ordersW
6pool_coin_token_accountW
7pool_pc_token_accountW
8pnl_coin_token_accountWEmpfänger, gespeichert auf AmmConfig.
9pnl_pc_token_accountW
10pnl_ownerSAdmin Multisig.
11market_program
12marketW
13market_event_queueW
14market_coin_vaultW
15market_pc_vaultW
16market_vault_signer
Auswirkung
  • Überweist need_take_pnl_coin von pool_coin_token_account zu pnl_coin_token_account.
  • Gleiches für PC.
  • Setzt need_take_pnl_coin und need_take_pnl_pc auf Null.
Keine Änderung an Reserven, da aufgelaufene PnL bereits von der Invariante ausgeschlossen war.

SetParams

Admin-Parameter-Änderungen: Status-Bitmaske, Gitter-Tiefe, Mengen-Wellen, Gebühren (selten), etc. Wird vom Raydium Multisig aufgerufen. Argumente sind ein param: u8 Tag + Payload, analog zu CPMM’s UpdateAmmConfig.

State-Change-Matrix

Instruktionlp_mint SupplyVaultsPnL-ZählerOpenBook
Initialize2initiale Supply an Creator geprägt+ init_coin_amount, + init_pc_amount0OpenOrders erstellt
Deposit++ beideFills settlen
Withdraw− beideFills settlen
SwapBaseIn+ in, − out+ pnl Anteilmöglicherweise Gitter neu gepostet
SwapBaseOut+ in, − out+ pnl Anteilmöglicherweise Gitter neu gepostet
MonitorStepFills settlenstornieren / posten
WithdrawPnl− (pnl geleert)0
SetParams

Wie es weitergehen

Quellen: