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 →
A partir de la actualización del programa 2026-07, la dependencia de OpenBook / Serum de AMM v4 ha sido eliminada. Las instrucciones heredadas v1 SwapBaseIn / SwapBaseOut, Deposit y Withdraw mantienen sus diseños de cuenta antiguos para compatibilidad hacia atrás: las cuentas de mercado aún se aceptan en sus posiciones antiguas, pero ya no se validan ni se usan (no se emite CPI). Las nuevas integraciones deben usar los puntos de entrada de intercambio V2, que omiten completamente las cuentas de mercado. Varias instrucciones han sido eliminadas y ahora revierten — consulta la entrada del registro de cambios. Las listas de cuentas a continuación utilizan los nombres de campo del SDK de Raydium; el IDL subyacente a veces usa prefijos serum_*.

Inventario de instrucciones

El SDK expone constructores solo para las instrucciones orientadas al usuario. Las instrucciones de mantenimiento generalmente son invocadas por el mantenedor de Raydium. Eliminadas / ya no invocables (ahora revierten con unimplemented!, y sus constructores de cliente fueron eliminados): Initialize (etiqueta 0, usa Initialize2), MonitorStep (2), MigrateToOpenBook (5), WithdrawSrm (8), PreInitialize (10, usa Initialize2), SimulateInfo (12), AdminCancelOrders (13).

Initialize2

Arrancar un nuevo pool de AMM v4 vinculado a un mercado OpenBook existente. Argumentos
Cuentas (escribible W, firmante S) Condiciones posteriores
  • lp_supply = sqrt(init_coin_amount × init_pc_amount) − INIT_BURN, donde INIT_BURN ≈ 100 unidades de LP se mantienen fuera de circulación.
  • No se publican órdenes de OpenBook (la cuadrícula del libro de órdenes ha sido eliminada). market_program / market aún se pasan pero solo se almacenan como campos de referencia; coin_lot_size / pc_lot_size / min_size se inicializan a 0.
Errores comunesInvalidInput (decimales no coincidentes, no ordenados), NotAllowed.

Deposit

Agregar liquidez. Argumentos
Cuentas (abreviadas) Matemáticas — prorrateo estándar. Usando las reservas efectivas del pool (bóvedas + en libro), el SDK calcula el par coin/pc que produce la cantidad de LP dada y lo verifica contra max_*. Revierte con ExceededSlippage si alguno de los lados excede el límite.

Withdraw

Quemar LP, recibir ambos lados. Argumentos
Cuentas — como Deposit con la dirección invertida; lp_mint es escribible para quemar, los ATA del usuario son receptores. El diseño de la cuenta no ha cambiado (cuentas de mercado aún pasadas posicionalmente, ignoradas). Ya no hay un paso de liquidación desde OpenBook — las matemáticas prorrateadas usan directamente los saldos de la bóveda.

SwapBaseIn

Intercambio de entrada exacta. Siempre un intercambio de ruta AMM (no se enruta a través de la coincidencia de OpenBook).
Usa las variantes V2 para código nuevo. Dado que la dependencia de OpenBook de AMM v4 ha sido eliminada, los puntos de entrada V1 (SwapBaseIn, SwapBaseOut) aún esperan la lista completa de 17 cuentas (o 18 con la cuenta de órdenes objetivo opcional), pero las cuentas de OpenBook/mercado ahora se aceptan posicionalmente e ignoran — no se validan y no se emite CPI. Pasar un número de cuenta incorrecto aún revierte con WrongAccountsNumber, pero el contenido de la cuenta de mercado ya no se verifica. Las nuevas integraciones deben usar SwapBaseInV2 / SwapBaseOutV2, que toman una lista de cuentas mucho más pequeña y representan la ruta de ejecución canónica hoy. Las formas V1 se documentan aquí para completitud y para leer transacciones existentes en cadena.
Argumentos
Cuentas (abreviadas) Matemáticas — consulta products/amm-v4/math. Precondiciones
  • amm.status permite intercambio (bit 0 de la máscara de bits de estado no establecido).
  • amm.state_data.pool_open_time <= now.
  • amount_in > 0.
  • user_source_token_account contiene al menos amount_in.
Condiciones posteriores
  • El usuario pierde amount_in del token de origen, gana amount_out ≥ minimum_amount_out del token de destino.
  • need_take_pnl_* incrementado por la parte de la tarifa del protocolo.
  • Nota: los contadores de análisis state_data.swap_*_in_amount / swap_*_out_amount ya no se actualizan — sus valores están congelados. Usa registros de transacciones para análisis de volumen.
Errores comunesExceededSlippage, InvalidInput, InvalidStatus, NotAllowed (mint de coin/pc idéntico).

SwapBaseOut

Salida exacta, inversa de SwapBaseIn. Mismas cuentas. Argumentos

SwapBaseInV2 / SwapBaseOutV2

Variantes de puntos de entrada de intercambio (etiquetas 16 / 17) que omiten completamente las cuentas de OpenBook. Las matemáticas son idénticas a la ruta V1, pero la lista de cuentas se reduce a solo el lado AMM y el usuario — 8 cuentas, y amm_open_orders no se pasa: Las reservas del pool ahora son los saldos de la bóveda (menos PnL pendiente), por lo que las matemáticas de cotización son directas e idénticas a la ruta v1. Usa V2 para ahorrar cómputo y evitar pasar las cuentas de mercado (ahora ignoradas). El enrutador de Raydium siempre usa la forma V2 al enrutar a través de AMM v4. Los argumentos son los mismos que las formas V1 (amount_in / minimum_amount_out para SwapBaseInV2; max_amount_in / amount_out para SwapBaseOutV2).

MonitorStep y otras instrucciones eliminadas

Eliminadas — ya no invocables. A partir de la actualización 2026-07, MonitorStep (etiqueta 2) ha sido eliminada del programa y ahora revierte (unimplemented!) si se invoca. Su constructor de cliente también fue eliminado. Lo mismo se aplica a MigrateToOpenBook (5), WithdrawSrm (8), SimulateInfo (12), AdminCancelOrders (13), y los puntos de entrada heredados de creación de pool Initialize (0) / PreInitialize (10) — usa Initialize2 en su lugar.
Históricamente, MonitorStep accionaba la interacción de OpenBook del pool: liquidaba órdenes completadas (moviendo ganancias de las bóvedas de mercado a las bóvedas del pool a través de CPI de OpenBook), cancelaba órdenes obsoletas y publicaba nuevas órdenes para cerrar la brecha entre target_orders y amm_open_orders. Con la dependencia de OpenBook eliminada, no hay nada que accionar y la instrucción se ha ido. Cualquier mantenedor o integración que aún la llame debe eliminar la llamada.

WithdrawPnl / TakePnl

Barrido administrativo de tarifas de protocolo acumuladas. Argumentos
  • WithdrawPnl no toma argumentos; lee need_take_pnl_* y mueve esas cantidades exactas.
Cambio de ruptura (solo admin). La lista de cuentas se redujo de 17 (+1 opcional) a 10amm_open_orders y las seis cuentas de mercado fueron eliminadas — sin análisis de compatibilidad. El diseño antiguo se desalinea (el antiguo #5 era amm_open_orders, ahora pool_coin_token_account) y falla con errores como InvalidCoinVault. Las herramientas administrativas deben actualizarse.
Cuentas (nuevo diseño de 10 cuentas) Efecto
  • Transfiere need_take_pnl_coin de pool_coin_token_account a pnl_coin_token_account.
  • Lo mismo para pc.
  • Pone a cero need_take_pnl_coin y need_take_pnl_pc.
  • Cambio de lógica: si el saldo de la bóveda es insuficiente para cubrir el PnL acumulado, la instrucción devuelve TakePnlError directamente (ya no manipula el estado del libro de órdenes).
Sin cambio en las reservas ya que el PnL acumulado ya fue excluido del invariante.

SetParams

Cambios de parámetros administrativos, llamados por la multifirma de Raydium. Los argumentos son una etiqueta param: u8 + carga útil.
Cambio de ruptura (solo admin). La lista de cuentas se redujo a solo [amm (W), admin (S)] (la autoridad, órdenes abiertas, órdenes objetivo, bóveda y todas las cuentas de mercado fueron eliminadas). La enumeración param fue renumerada y recortada: Status = 0, State = 1, Fees = 2 (era 9), SetOpenTime = 3 (era 11). Todos los parámetros de cuadrícula del libro de órdenes y AmmOwner, LastOrderDistance, UpdateOpenOrder fueron eliminados, y la estructura SetParamsInstruction eliminó new_pubkey y last_order_distance. Las herramientas administrativas deben actualizarse.

Matriz de cambio de estado

La columna OpenBook se ha ido — ninguna instrucción toca un libro de órdenes más.

Dónde ir a continuación

Fuentes: