Skip to main content
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 con su propio ID de programa. No es un modo del programa AMM v4, ni se negocia «a través» de AMM v4 — se implementa, actualiza e invoca por separado. Solo se parece a AMM v4 en las convenciones de comisiones y disposición de cuentas.
Actualización del 2026-06-22 — eliminación del código muerto de OpenBook (mercado). Stable AMM dejó de publicar órdenes en OpenBook hace mucho tiempo; la ruta de creación de mercado del libro de órdenes ha estado inactiva durante años. Esta actualización elimina las cuentas y el código relacionados con el mercado restantes — no cambia el comportamiento del comercio en vivo.Dos consecuencias para los integradores:
  1. Disposiciones de cuenta más pequeñas. SwapBaseIn / SwapBaseOut (18 → 9), Deposit (14 → 12), y Withdraw (21/22 → 12) eliminan las cuentas muertas de Serum/mercado. Las disposiciones antiguas aún se analizan para compatibilidad hacia atrás. WithdrawPnl (16 → 10) es un cambio importante con ruptura total sin ruta de compatibilidad (solo administrador).
  2. La mayoría de las instrucciones se eliminan. Solo SwapBaseIn, SwapBaseOut, Deposit, Withdraw, y WithdrawPnl permanecen invocables. Todas las demás instrucciones ya no pueden ser llamadas.
Registro de cambios: reference/changelog.

Inventario de instrucciones

Invocables

Eliminadas (ya no invocables)

Estas fueron eliminadas en la actualización del 2026-06-22 y ya no pueden ser invocadas. Consulta Instrucciones eliminadas.

Deposit

Añadir liquidez, recibir tokens LP. Argumentos
Cuentas — disposición nueva, 12 cuentas (escribible W, firmante S) Compatibilidad: amm_open_orders (antiguo #3) y serum_market (antiguo #9) se eliminan. Cuando se pasan 14 cuentas, la instrucción se analiza con la disposición antigua de 14 cuentas; las cuentas de Serum se ignoran. Matemáticas — pro-rata estándar usando la tabla de búsqueda para calcular la proporción. El SDK calcula el par coin/pc para la cantidad de LP deseada y verifica contra los límites máximos.

Withdraw

Quemar LP, recibir ambos lados pro-rata. Argumentos
Cuentas — disposición nueva, 12 cuentas (escribible W, firmante S) Compatibilidad: nueve cuentas de Serum (amm_open_orders, serum_program, serum_market, serum_coin_vault, serum_pc_vault, serum_vault_signer, serum_event_q, serum_bids, serum_asks) se eliminan. Las disposiciones antiguas de 21 o 22 cuentas aún se aceptan. Sin embargo, tenga en cuenta que la lógica de comisión de referencia para la cuenta opcional 22ª referrer_pc_wallet ha sido eliminada — aún puede pasarse pero ya no tiene efecto. Precondiciones
  • user_source_lp contiene al menos amount.
Postcondiciones
  • Se queman amount tokens LP.
  • El usuario recibe cantidades de coin y pc según la pro-rata actual, ajustadas por comisiones acumuladas.

SwapBaseIn

Swap de entrada exacta usando la tabla de búsqueda para precios. Argumentos
Cuentas — disposición nueva, 9 cuentas (escribible W, firmante S) Compatibilidad: 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. Si el número de cuentas pasadas no es 9, la instrucción se analiza con la disposición antigua de 18 cuentas; las cuentas de Serum aún deben ocupar sus posiciones, pero su contenido ya no se valida ni se utiliza. Precondiciones
  • amm.status permite swap.
  • user_source_token contiene ≥ amount_in.
Postcondiciones
  • El usuario pierde amount_in, gana amount_out ≥ minimum_amount_out.
  • Las comisiones del pool incrementan los contadores need_take_pnl_*.
Matemáticas — Interpolación de tabla de búsqueda como se describe en products/stable/math.

SwapBaseOut

Swap de salida exacta (inverso de SwapBaseIn). Misma disposición de 9 cuentas, dirección matemática diferente. Argumentos

WithdrawPnl

Solo administrador. Recopilar comisiones de protocolo acumuladas de need_take_pnl_* en cuentas de PnL designadas.
Cambio importante con ruptura total — sin ruta de compatibilidad. Esta instrucción no tiene análisis para la disposición antigua. Enviar la disposición antigua falla con errores de validación como InvalidTokenCoin debido a desalineación de cuentas (el antiguo #3 era open_orders). Las herramientas de administración que llaman a WithdrawPnl deben actualizarse a la nueva disposición de 10 cuentas.
Argumentos — ninguno (impulsado por estado). Cuentas — disposición nueva, 10 cuentas fijas, solo administrador (escribible W, firmante S) Cambio de lógica: cuando los fondos disponibles del pool son insuficientes para retirar el PnL acumulado, el pool ya no se pone en CancelAllOrdersState / Disabled; la instrucción devuelve TakePnlError directamente. El referrer_pc_wallet opcional también ha sido eliminado. Precondiciones
  • amm_admin debe estar autorizado.
Postcondiciones
  • need_take_pnl_coin y need_take_pnl_pc se transfieren a las cuentas del administrador.
  • Los contadores se ponen a cero.

Instrucciones eliminadas

Las siguientes instrucciones fueron eliminadas en la actualización del 2026-06-22 y ya no pueden ser llamadas. Se documentan aquí solo para que los integradores las reconozcan en transacciones históricas y SDKs.
  • Initialize — anteriormente inicializaba un nuevo pool de Stable AMM. Eliminada.
  • PreInitialize — asistente de preasignación heredado. Eliminada.
  • InitModelData — anteriormente creaba e inicializaba la tabla de búsqueda ModelDataInfo. Eliminada.
  • UpdateModelData — anteriormente rellenaba hasta 5 elementos de tabla de búsqueda por llamada. Eliminada.
  • MonitorStep — el crank de OpenBook que liquidaba rellenos y republicaba la cuadrícula de órdenes. Ya estaba inactivo hace mucho tiempo después de que el pool dejara de publicar en OpenBook; ahora eliminada.
  • SetParams — cambios de parámetros de administrador (estado, comisiones, propietario, clave de datos del modelo, etc.). Eliminada.
  • WithdrawSrm — recopilaba reembolsos de descuento de comisión SRM de pools de la era temprana de Serum. Eliminada.
  • SimulateInfo — asistente de cotización de solo lectura. Eliminada; usa los asistentes de curva estable fuera de cadena del SDK para cotizaciones (consulta Demostraciones de código).

Próximos pasos

Fuentes:
  • raydium-stable/program/src/instruction.rs (enum y pack/unpack)
  • raydium-stable/program/src/processor.rs (lógica de ejecución)