Saltar al contenido principal
Esta página fue traducida automáticamente por IA. La versión en inglés es la fuente autorizada.Ver versión en inglés →
Stable AMM es un programa independiente (su propio ID de programa — no se negocia a través del programa AMM v4). Dejó de publicar órdenes en OpenBook hace mucho tiempo; la ruta de creación de mercado en OpenBook ha estado inactiva durante años. Esta actualización es la limpieza: elimina las cuentas y el código relacionados con el mercado que ahora están muertos de los layouts de instrucciones. No cambia ningún comportamiento de trading en vivo — no había órdenes de OpenBook restantes para dejar de colocar.

TL;DR para integradores

  • Swap / Deposit / Withdraw siguen funcionando sin cambios. Las transacciones construidas con los layouts de cuentas antiguos aún se ejecutan — las cuentas de Serum/market eliminadas simplemente se ignoran. No tienes que enviar una actualización de cliente para mantener los flujos existentes activos.
  • Pero deberías migrar a los nuevos layouts más pequeños pronto. Los nuevos layouts eliminan las cuentas de mercado muertas, reduciendo el tamaño de la transacción: SwapBaseIn / SwapBaseOut van de 18 → 9 cuentas, Deposit 14 → 12, Withdraw 21 (+1 opcional) → 12. La ruta de compatibilidad se eliminará en una versión futura.
  • WithdrawPnl es un cambio de ruptura dura (solo admin). Va de 16 (+1 opcional) → 10 cuentas sin análisis de compatibilidad. Enviar el layout antiguo falla con errores de validación como InvalidTokenCoin debido a desalineación de cuentas (el antiguo #3 era open_orders). Cualquier herramienta de admin que llame a WithdrawPnl debe actualizarse.
  • Tarifa de referencia eliminada en Withdraw y WithdrawPnl. La cuenta opcional referrer_pc_wallet aún puede pasarse para compatibilidad hacia atrás en el layout antiguo de Withdraw, pero ya no tiene efecto.
  • Contabilidad de activos del pool simplificada. Los activos totales del pool ahora son saldos de bóveda − PnL pendiente; el término de orden abierta de OpenBook — ya cero en la práctica — se elimina de la fórmula. Los indexadores y código de cotización que aún agregaban un término de OpenOrders deben eliminarlo.
  • La mayoría de las instrucciones ahora se eliminan. Solo SwapBaseIn, SwapBaseOut, Deposit, Withdraw, y WithdrawPnl permanecen invocables. Initialize, PreInitialize, InitModelData, UpdateModelData, MonitorStep, SetParams, WithdrawSrm, y SimulateInfo ya no son invocables.

Por qué esto importa (para traders, LPs e integradores)

  • Los traders no ven cambios en el comportamiento del swap o la forma de precios — la curva de tabla de búsqueda no cambia. Los swaps con layout nuevo son más baratos de ejecutar porque la transacción lleva nueve cuentas menos.
  • Los LPs mantienen la misma economía de depósito/retiro. La liquidez ha estado completamente en las bóvedas del pool durante mucho tiempo, por lo que el valor del pool está completamente en el pool; esta actualización solo elimina la tubería de mercado obsoleta.
  • Los integradores obtienen transacciones más pequeñas y simples y un modelo de cotización con un término menos (ya vestigial). Las integraciones existentes no se rompen (excepto el WithdrawPnl de admin), pero el shim de compatibilidad es temporal — migra cuando sea conveniente, antes de que se elimine.

Cambios a nivel de instrucción

SwapBaseIn / SwapBaseOut — 18 → 9 cuentas (layout antiguo aún compatible)

Las nueve cuentas de OpenBook (amm_open_orders, serum_program, serum_market, serum_bids, serum_asks, serum_event_queue, serum_coin_vault, serum_pc_vault, serum_vault_signer) se eliminan. Compatibilidad: si la instrucción recibe un número de cuentas distinto de 9, se analiza con el layout antiguo de 18 cuentas; las cuentas de Serum aún deben ocupar sus posiciones pero su contenido ya no se valida ni se utiliza.

Deposit — 14 → 12 cuentas (layout antiguo aún compatible)

amm_open_orders (antiguo #3) y serum_market (antiguo #9) se eliminan. Cuando se pasan 14 cuentas, el layout antiguo se analiza para compatibilidad.

Withdraw — 21 (+1 opcional) → 12 cuentas (layout antiguo aún compatible)

Las nueve cuentas de Serum se eliminan. Los layouts antiguos de 21 o 22 cuentas aún se aceptan, pero la lógica de tarifa de referencia para la 22ª cuenta opcional referrer_pc_wallet se ha eliminado — la cuenta aún puede pasarse pero ya no tiene efecto.

WithdrawPnl — 16 (+1 opcional) → 10 cuentas (⚠️ sin ruta de compatibilidad, ruptura dura)

Layout fijo de 10 cuentas, solo para admin. No hay análisis de compatibilidad para el layout antiguo; enviarlo falla con errores como InvalidTokenCoin debido a desalineación de cuentas. Cambio de lógica: cuando los fondos disponibles del pool son insuficientes para retirar el PnL acumulado, el pool ya no se coloca en CancelAllOrdersState / Disabled; la instrucción devuelve TakePnlError directamente. La cuenta opcional referrer_pc_wallet también se ha eliminado.

Cambio en el cálculo de activos del pool

La fórmula históricamente agregaba los fondos que el pool mantenía como órdenes abiertas en su cuenta OpenOrders de OpenBook. Ese término ha sido cero en la práctica desde que el pool dejó de publicar órdenes; esta actualización lo elimina completamente de la fórmula, dejando el cálculo solo de bóveda:
Fórmula
Antiguasaldos de bóveda + fondos de orden abierta (native_coin_total / native_pc_total) − PnL pendiente (need_take_pnl)
Nuevasaldos de bóveda − PnL pendiente (need_take_pnl)

Páginas actualizadas

  • products/stable/overview — modelo puro AMM, dependencia de OpenBook eliminada, tablas de comparación y conteo de cuentas actualizadas.
  • products/stable/index — “Qué es” y tabla de hechos clave ya no reclaman una dependencia de OpenBook.
  • products/stable/accounts — cuentas de OpenBook eliminadas del inventario; campos de Serum/open-orders de AmmInfo marcados como heredados/no utilizados; nota de activos del pool agregada.
  • products/stable/instructions — nuevas tablas de cuentas para Swap / Deposit / Withdraw / WithdrawPnl con llamadas de compatibilidad; todas las otras instrucciones (Initialize, PreInitialize, InitModelData, UpdateModelData, MonitorStep, SetParams, WithdrawSrm, SimulateInfo) marcadas como eliminadas / ya no invocables.
  • products/stable/math — actualización de fórmula de activos del pool; sección MonitorStep / OpenBook replanteada como hace mucho tiempo retirada.
  • products/stable/fees — sección “PnL from OpenBook” retirada; flujo de recopilación ya no liquida rellenos de OpenBook.
  • products/stable/code-demos — orientación de conteo de cuentas actualizada; SDK aún abstrae la selección de layout.
Verificado contra:
  • fuente del programa raydium-stable (post-actualización instruction.rs / processor.rs).
  • Implementación del programa Stable AMM en cadena en Solana mainnet-beta.