Cette page est traduite automatiquement par IA. La version anglaise fait foi.Voir la version anglaise →
Une entrée du journal des modifications de la documentation. Pour l’index de toutes les mises à jour, consultez
reference/changelog. Pour la chronologie historique du protocole, consultez introduction/history-and-milestones.x·y=k). Elle ne change pas le comportement de trading en direct — il n’y avait plus d’ordres OpenBook à arrêter de placer.
TL;DR pour les intégrateurs
- Swap / Deposit / Withdraw continuent de fonctionner sans changements. Les transactions construites avec les anciennes dispositions de comptes s’exécutent toujours — les comptes Serum/market supprimés sont simplement ignorés (pas de validation, pas de CPI).
SwapBaseIn/SwapBaseOutattendent toujours 17 (+1 optionnel) comptes ; les dispositions deDepositetWithdrawsont inchangées. Vous n’avez pas besoin de déployer une mise à jour client pour maintenir les flux existants. - Migrez vers les points d’entrée de swap V2.
SwapBaseInV2/SwapBaseOutV2ne contiennent aucun compte de marché et aucunamm_open_orders(8 comptes au total), donc les transactions sont plus petites et moins chères. Les routeurs/agrégateurs doivent router via V2. WithdrawPnlest un changement majeur (admin uniquement). Il passe de 17 (+1 optionnel) → 10 comptes avec aucune analyse de compatibilité ; l’ancienne disposition ne s’aligne pas (l’ancien #5 étaitamm_open_orders) et échoue la validation. Les outils d’administration doivent être mis à jour.SetParamsest un changement majeur (admin uniquement). Les comptes se réduisent à[amm, admin], et l’énumérationparamest renumérotée (Fees9 → 2,SetOpenTime11 → 3) ;AmmOwner,LastOrderDistance,UpdateOpenOrderet les paramètres de grille sont supprimés.- Plusieurs instructions ne sont plus appelables.
Initialize,PreInitialize,MonitorStep,MigrateToOpenBook,WithdrawSrm,SimulateInfoetAdminCancelOrdersreviennent maintenant en arrière. UtilisezInitialize2pour créer des pools. - Les dispositions de comptes on-chain sont stables en octets, et les codes d’erreur sont inchangés.
AmmInfo/StateDataconservent leur disposition (les anciens champs OpenBook sont conservés mais dépréciés/gelés) ; la numérotationAmmErrorest préservée, avec seulement un nouveauNotAllowedajouté.
Pourquoi cela importe (pour les traders, les LP et les intégrateurs)
- Les traders ne voient aucun changement dans le comportement ou la tarification des swaps — la courbe à produit constant est inchangée. Les swaps avec disposition V2 sont moins chers à exécuter car ils contiennent environ 8 comptes de moins.
- Les LP conservent les mêmes économies de dépôt/retrait. La liquidité s’est longtemps trouvée entièrement dans les coffres du pool, donc la valeur du pool est entièrement on-pool ; cette mise à niveau supprime seulement la plomberie de marché obsolète.
- Les intégrateurs obtiennent des transactions plus petites et plus simples et un modèle de cotation qui lit directement depuis les coffres. Les intégrations existantes ne se cassent pas (sauf pour l’admin
WithdrawPnl/SetParams), mais le shim de compatibilité de swap v1 est temporaire — migrez vers V2 à votre convenance.
Changements au niveau des instructions
Toujours appelables, disposition inchangée (rétrocompatible)
Initialize2, Deposit, Withdraw, SwapBaseIn, SwapBaseOut, CreateConfigAccount et UpdateConfigAccount conservent leurs listes de comptes existantes. Sur SwapBaseIn / SwapBaseOut, Deposit et Withdraw, les comptes OpenBook/market sont toujours acceptés positionnellement mais ne sont plus validés ou utilisés — aucun CPI n’est émis et les réserves du pool sont calculées uniquement à partir des coffres. Le nombre de comptes doit toujours correspondre, donc les transactions existantes continuent de s’exécuter sans changement.
SwapBaseInV2 / SwapBaseOutV2 — chemin recommandé
Omettez entièrement les comptes de marché et amm_open_orders (8 comptes ; tags 16 / 17). Les mathématiques de cotation sont identiques à v1. Les nouvelles intégrations et routeurs doivent utiliser V2.
WithdrawPnl — 17 (+1 optionnel) → 10 comptes (⚠️ changement majeur, aucun chemin de compatibilité)
amm_open_orders et les six comptes de marché sont supprimés. La nouvelle disposition fixe de 10 comptes, réservée à l’admin, n’a aucune analyse de compatibilité ; l’ancienne disposition ne s’aligne pas et échoue avec des erreurs telles que InvalidCoinVault.
SetParams — réduit à [amm, admin] (⚠️ changement majeur) + paramètres renumérotés
L’autorité, les open-orders, les target-orders, le coffre et tous les comptes de marché sont supprimés. L’énumération param est renumérotée et réduite :
| Param | Ancienne valeur | Nouvelle valeur |
|---|---|---|
Status | 0 | 0 |
State | 1 | 1 |
Fees | 9 | 2 |
SetOpenTime | 11 | 3 |
OrderNum, Depth, AmountWave, MinPriceMultiplier, MaxPriceMultiplier, MinSize, VolMaxCutRatio, InitOrderDepth, SetSwitchTime, ClearOpenTime, Seperate) plus AmmOwner, LastOrderDistance et UpdateOpenOrder sont supprimés. La structure SetParamsInstruction supprime new_pubkey et last_order_distance.
Ne sont plus appelables (reviennent en arrière à l’exécution ; constructeurs supprimés)
| Instruction | tag | Remplacement |
|---|---|---|
Initialize | 0 | Initialize2 |
MonitorStep | 2 | aucun (crank du carnet d’ordres, retiré) |
MigrateToOpenBook | 5 | aucun |
WithdrawSrm | 8 | aucun (remise de frais SRM, retirée) |
PreInitialize | 10 | Initialize2 |
SimulateInfo | 12 | cotation off-chain / SDK |
AdminCancelOrders | 13 | aucun |
Changements de réserve / état
- Formule d’actifs du pool. Les actifs totaux du pool sont maintenant
soldes des coffres − PnL en attente (need_take_pnl); le terme des ordres ouverts OpenBook — déjà zéro en pratique — est supprimé. Le code de cotation peut lire directement depuis les soldes des coffres. - Champs d’état dépréciés.
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_amountetswap_acc_coin_feesont conservés pour la compatibilité de disposition mais ne sont plus mis à jour. Les consommateurs qui dépendent des compteurs de volumeswap_*doivent passer aux journaux de transactions. - Initialisation de
AmmInfo.coin_lot_size,pc_lot_sizeetmin_sizesont maintenant initialisés à0. - Dépendance supprimée et CPI. La crate
serum_dexest supprimée deCargo.toml; tous les CPI Serum DEX (invoke_dex_new_order_v3,invoke_dex_cancel_order_v2,invoke_dex_settle_funds,invoke_dex_init_open_orders, …) sont supprimés deinvokers.rs. Structures de données supprimées :LastOrderDistance,SimulateParams,RunCrankData,GetPoolData,GetSwapBaseInData,GetSwapBaseOutData.

