Diese Seite wurde mit KI automatisch übersetzt. Maßgeblich ist stets die englische Version.Englische Version ansehen →
Ab dem Programm-Upgrade 2026-07 wurde die OpenBook-/Serum-Abhängigkeit von AMM v4 entfernt. Die Legacy-v1-Instruktionen
SwapBaseIn / SwapBaseOut, Deposit und Withdraw behalten ihre alten Account-Layouts für Rückwärtskompatibilität: Die Market-Konten werden weiterhin in ihren alten Positionen akzeptiert, aber sie werden nicht mehr validiert oder verwendet (kein CPI wird ausgegeben). Neue Integrationen sollten die V2-Swap-Einstiegspunkte verwenden, die die Market-Konten vollständig weglassen. Mehrere Instruktionen wurden entfernt und kehren jetzt zurück – siehe den Changelog-Eintrag. Die Account-Listen unten verwenden die Feldnamen aus dem Raydium SDK; die zugrunde liegende IDL verwendet manchmal serum_*-Präfixe.Instruktions-Übersicht
Das SDK stellt Builder nur für die benutzerorientierten Instruktionen bereit. Wartungs-Instruktionen werden typischerweise vom Raydium-Keeper aufgerufen.
Entfernt / nicht mehr aufrufbar (sie kehren jetzt mit
unimplemented! zurück, und ihre Client-Builder wurden gelöscht): Initialize (Tag 0, verwende Initialize2), MonitorStep (2), MigrateToOpenBook (5), WithdrawSrm (8), PreInitialize (10, verwende Initialize2), SimulateInfo (12), AdminCancelOrders (13).
Initialize2
Starten Sie einen neuen AMM v4 Pool, der an einen bestehenden OpenBook-Market gebunden ist.
Argumente
W, Unterzeichner S)
Nachbedingungen
lp_supply = sqrt(init_coin_amount × init_pc_amount) − INIT_BURN, wobeiINIT_BURN≈ 100 LP-Einheiten aus dem Verkehr gezogen werden.- Es werden keine OpenBook-Aufträge gepostet (das Order-Book-Gitter wurde entfernt).
market_program/marketwerden weiterhin übergeben, aber nur als Referenzfelder gespeichert;coin_lot_size/pc_lot_size/min_sizewerden auf0initialisiert.
InvalidInput (nicht übereinstimmende Dezimalstellen, nicht sortiert), NotAllowed.
Deposit
Liquidität hinzufügen.
Argumente
Mathematik — Standard pro-rata. Mit den effektiven Reserven des Pools (Vaults + On-Book) berechnet das SDK das Coin/PC-Paar, das die angegebene LP-Menge ergibt, und prüft es gegen
max_*. Kehrt mit ExceededSlippage zurück, wenn eine Seite die Obergrenze überschreitet.
Withdraw
LP verbrennen, beide Seiten erhalten.
Argumente
Deposit mit umgekehrter Richtung; lp_mint ist schreibbar zum Verbrennen, die Benutzer-ATAs sind Empfänger. Das Account-Layout ist unverändert (Market-Konten werden weiterhin positionell übergeben, ignoriert). Es gibt keinen Settle-from-OpenBook-Schritt mehr – die Pro-Rata-Mathematik verwendet die Vault-Salden direkt.
SwapBaseIn
Exakte-Input-Swap. Immer ein AMM-Pfad-Swap (wird nicht durch OpenBook-Matching weitergeleitet).
Verwenden Sie die V2-Varianten für neuen Code. Da die OpenBook-Abhängigkeit von AMM v4 entfernt wurde, erwarten die V1-Einstiegspunkte (
SwapBaseIn, SwapBaseOut) weiterhin die vollständige 17-Account-Liste (oder 18 mit dem optionalen Target-Orders-Konto), aber die OpenBook/Market-Konten werden jetzt positionell akzeptiert und ignoriert – sie werden nicht validiert und kein CPI wird ausgegeben. Das Übergeben einer falschen Account-Anzahl kehrt weiterhin mit WrongAccountsNumber zurück, aber der Market-Account-Inhalt wird nicht mehr überprüft. Neue Integrationen sollten SwapBaseInV2 / SwapBaseOutV2 verwenden, die eine viel kleinere Account-Liste benötigen und den kanonischen Ausführungspfad heute darstellen. Die V1-Formen werden hier der Vollständigkeit halber und zum Lesen bestehender On-Chain-Transaktionen dokumentiert.
Mathematik — siehe
products/amm-v4/math.
Vorbedingungen
amm.statuserlaubt Swap (Bit 0 der Status-Bitmaske nicht gesetzt).amm.state_data.pool_open_time <= now.amount_in > 0.user_source_token_accounthält mindestensamount_in.
- Benutzer verliert
amount_indes Quell-Tokens, gewinntamount_out ≥ minimum_amount_outdes Ziel-Tokens. need_take_pnl_*erhöht um den Protokoll-Fee-Anteil.- Hinweis: Die
state_data.swap_*_in_amount/swap_*_out_amountAnalytics-Zähler werden nicht mehr aktualisiert – ihre Werte sind eingefroren. Verwenden Sie Trade-Logs für Volume-Analytics.
ExceededSlippage, InvalidInput, InvalidStatus, NotAllowed (Coin/PC-Mint identisch).
SwapBaseOut
Exakte-Output, Umkehrung von SwapBaseIn. Gleiche Konten.
Argumente
SwapBaseInV2 / SwapBaseOutV2
Varianten-Swap-Einstiegspunkte (Tags 16 / 17), die die OpenBook-Konten vollständig überspringen. Die Mathematik ist identisch mit dem V1-Pfad, aber die Account-Liste schrumpft auf nur die AMM-Seite und den Benutzer – 8 Konten, und amm_open_orders wird nicht übergeben:
Pool-Reserven sind jetzt die Vault-Salden (minus ausstehende PnL), daher ist die Quote-Mathematik unkompliziert und identisch mit dem v1-Pfad. Verwenden Sie V2, um Compute zu sparen und das Übergeben der (jetzt ignorierten) Market-Konten zu vermeiden. Der Raydium-Router verwendet immer die V2-Form beim Routing durch AMM v4.
Die Argumente sind die gleichen wie die V1-Formen (
amount_in / minimum_amount_out für SwapBaseInV2; max_amount_in / amount_out für SwapBaseOutV2).
MonitorStep und andere entfernte Instruktionen
Historisch betrieb MonitorStep die OpenBook-Interaktion des Pools: Es siedelte gefüllte Aufträge an (bewegte Erlöse aus den Market-Vaults in die Pool-Vaults über OpenBook CPI), stornierte veraltete Aufträge und postete neue Aufträge, um die Lücke zwischen target_orders und amm_open_orders zu schließen. Mit der entfernten OpenBook-Abhängigkeit gibt es nichts mehr zu betreiben und die Instruktion ist weg. Jeder Keeper oder jede Integration, die sie noch aufruft, muss den Aufruf entfernen.
WithdrawPnl / TakePnl
Admin-Einzug aufgelaufener Protokoll-Gebühren.
Argumente
WithdrawPnlnimmt keine Argumente; es liestneed_take_pnl_*und bewegt diese genauen Beträge.
Effekt
- Überträgt
need_take_pnl_coinvonpool_coin_token_accountzupnl_coin_token_account. - Gleiches für PC.
- Setzt
need_take_pnl_coinundneed_take_pnl_pcauf Null. - Logik-Änderung: Wenn der Vault-Saldo nicht ausreicht, um aufgelaufene PnL zu decken, gibt die Instruktion direkt
TakePnlErrorzurück (sie manipuliert nicht mehr den Order-Book-Status).
SetParams
Admin-Parameter-Änderungen, aufgerufen vom Raydium-Multisig. Argumente sind ein param: u8-Tag + Payload.
Zustandsänderungs-Matrix
Die OpenBook-Spalte ist weg – keine Instruktion berührt mehr ein Order-Book.Nächste Schritte
products/amm-v4/code-demos— TypeScript-Beispiele für Swap- und LP-Flows.products/amm-v4/fees—WithdrawPnl-Details und die Fee-Aufteilung.reference/error-codes— Vorwärts-Referenztabelle (AMM v4-Fehler sind auf dieser Seite aufgelistet).
- Raydium AMM-Programm —
raydium-io/raydium-amm - Raydium SDK v2
Liquidity-Modul - OpenBook-Programm – Account-Validierungen auf der Market-Seite

