Diese Seite wurde mit KI automatisch übersetzt. Maßgeblich ist stets die englische Version.Englische Version ansehen →
x·y=k). Es ändert nicht das aktuelle Trading-Verhalten — es gab keine OpenBook-Orders mehr zu stoppen.
TL;DR für Integratoren
-
Swap / Deposit / Withdraw funktionieren ohne Änderungen weiter. Transaktionen, die mit den alten Account-Layouts erstellt wurden, führen weiterhin aus — die entfernten Serum-/Market-Accounts werden einfach ignoriert (keine Validierung, kein CPI).
SwapBaseIn/SwapBaseOuterwarten weiterhin 17 (+1 optional) Accounts;Deposit- undWithdraw-Layouts sind unverändert. Sie müssen nicht ein Client-Update ausliefern, um bestehende Flows am Leben zu erhalten. -
Migrieren Sie zu den V2-Swap-Entrypoints.
SwapBaseInV2/SwapBaseOutV2enthalten keine Market-Accounts und keinamm_open_orders(8 Accounts insgesamt), sodass Transaktionen kleiner und günstiger sind. Router/Aggregatoren sollten über V2 routen. -
WithdrawPnlist eine hart-brechende Änderung (nur Admin). Sie geht von 17 (+1 optional) → 10 Accounts mit keiner Kompatibilitäts-Parsing; das alte Layout ist nicht ausgerichtet (altes #5 waramm_open_orders) und schlägt bei der Validierung fehl. Admin-Tools müssen aktualisiert werden. -
SetParamsist eine hart-brechende Änderung (nur Admin). Accounts schrumpfen auf[amm, admin], und dasparam-Enum wird neu nummeriert (Fees9 → 2,SetOpenTime11 → 3);AmmOwner,LastOrderDistance,UpdateOpenOrderund die Grid-Parameter werden entfernt. -
Mehrere Instruktionen sind nicht mehr aufrufbar.
Initialize,PreInitialize,MonitorStep,MigrateToOpenBook,WithdrawSrm,SimulateInfoundAdminCancelOrderswerden jetzt zurückgewiesen. Verwenden SieInitialize2zum Erstellen von Pools. -
On-Chain-Account-Layouts sind byte-stabil, und Fehlercodes sind unverändert.
AmmInfo/StateDatabehalten ihr Layout (alte OpenBook-Felder bleiben erhalten, aber veraltet/eingefroren); dieAmmError-Nummerierung wird beibehalten, mit nur einem neuenNotAllowedam Ende.
Warum das wichtig ist (für Trader, LPs und Integratoren)
- Trader sehen keine Änderung im Swap-Verhalten oder der Preisgestaltung — die Constant-Product-Kurve ist unverändert. V2-Layout-Swaps sind günstiger zu landen, da sie ~8 weniger Accounts enthalten.
- LPs behalten die gleiche Deposit-/Withdraw-Ökonomie. Liquidität sitzt schon lange vollständig in den Pool-Vaults, daher ist der Pool-Wert vollständig im Pool; dieses Upgrade löscht nur die veraltete Market-Infrastruktur.
-
Integratoren erhalten kleinere, einfachere Transaktionen und ein Quoting-Modell, das direkt aus den Vaults liest. Bestehende Integrationen brechen nicht (außer Admin
WithdrawPnl/SetParams), aber der v1-Swap-Kompatibilitäts-Shim ist temporär — migrieren Sie zu V2 in Ihrem eigenen Tempo.
Instruktions-Level-Änderungen
Noch aufrufbar, Layout unverändert (rückwärts kompatibel)
Initialize2, Deposit, Withdraw, SwapBaseIn, SwapBaseOut, CreateConfigAccount und UpdateConfigAccount behalten ihre bestehenden Account-Listen. Bei SwapBaseIn / SwapBaseOut, Deposit und Withdraw werden die OpenBook-/Market-Accounts weiterhin positionell akzeptiert, aber nicht mehr validiert oder verwendet — kein CPI wird ausgegeben und Pool-Reserven werden nur aus Vaults berechnet. Die Account-Anzahl muss weiterhin übereinstimmen, sodass bestehende Transaktionen unverändert ausgeführt werden.
SwapBaseInV2 / SwapBaseOutV2 — empfohlener Pfad
Lassen Sie die Market-Accounts und amm_open_orders vollständig weg (8 Accounts; Tags 16 / 17). Die Quote-Mathematik ist identisch mit v1. Neue Integrationen und Router sollten V2 verwenden.
WithdrawPnl — 17 (+1 optional) → 10 Accounts (⚠️ hart-brechend, kein Kompatibilitätspfad)
amm_open_orders und alle sechs Market-Accounts werden entfernt. Das neue feste 10-Account-, nur-Admin-Layout hat keine Kompatibilitäts-Parsing; das alte Layout ist nicht ausgerichtet und schlägt mit Fehlern wie InvalidCoinVault fehl.
SetParams — reduziert auf [amm, admin] (⚠️ hart-brechend) + neu nummerierte Parameter
Die Authority, Open-Orders, Target-Orders, Vault und alle Market-Accounts werden entfernt. Das param-Enum wird neu nummeriert und gekürzt:
| Parameter | Alter Wert | Neuer Wert |
|---|---|---|
Status | 0 | 0 |
State | 1 | 1 |
Fees | 9 | 2 |
SetOpenTime | 11 | 3 |
OrderNum, Depth, AmountWave, MinPriceMultiplier, MaxPriceMultiplier, MinSize, VolMaxCutRatio, InitOrderDepth, SetSwitchTime, ClearOpenTime, Seperate) sowie AmmOwner, LastOrderDistance und UpdateOpenOrder werden entfernt. Das SetParamsInstruction-Struct lässt new_pubkey und last_order_distance fallen.
Nicht mehr aufrufbar (Rückweisung zur Laufzeit; Builder entfernt)
| Instruktion | Tag | Ersatz |
|---|---|---|
Initialize | 0 | Initialize2 |
MonitorStep | 2 | keine (Orderbuch-Crank, eingestellt) |
MigrateToOpenBook | 5 | keine |
WithdrawSrm | 8 | keine (SRM-Gebührenrabatt, eingestellt) |
PreInitialize | 10 | Initialize2 |
SimulateInfo | 12 | Off-Chain / SDK-Quoting |
AdminCancelOrders | 13 | keine |
Reserve-/State-Änderungen
-
Pool-Asset-Formel. Gesamte Pool-Assets sind jetzt
Vault-Guthaben − ausstehende PnL (need_take_pnl); der OpenBook-Open-Order-Term — in der Praxis bereits null — wird gelöscht. Quoting-Code kann direkt aus den Vault-Guthaben lesen. -
Veraltete State-Felder.
StateData.total_pnl_pc,total_pnl_coin,orderbook_to_init_time,swap_coin_in_amount,swap_pc_out_amount,swap_acc_pc_fee,swap_pc_in_amount,swap_coin_out_amountundswap_acc_coin_feewerden aus Layout-Kompatibilitätsgründen beibehalten, aber nicht mehr aktualisiert. Consumer, die auf dieswap_*-Volumen-Counter angewiesen sind, sollten zu Trade-Logs wechseln. -
AmmInfo-Initialisierung.coin_lot_size,pc_lot_sizeundmin_sizewerden jetzt auf0initialisiert. -
Entfernte Abhängigkeit und CPIs. Die
serum_dex-Crate wird ausCargo.tomlentfernt; alle Serum-DEX-CPIs (invoke_dex_new_order_v3,invoke_dex_cancel_order_v2,invoke_dex_settle_funds,invoke_dex_init_open_orders, …) werden ausinvokers.rsentfernt. Entfernte Datenstrukturen:LastOrderDistance,SimulateParams,RunCrankData,GetPoolData,GetSwapBaseInData,GetSwapBaseOutData.

