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
W, firmante S)
Condiciones posteriores
lp_supply = sqrt(init_coin_amount × init_pc_amount) − INIT_BURN, dondeINIT_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/marketaún se pasan pero solo se almacenan como campos de referencia;coin_lot_size/pc_lot_size/min_sizese inicializan a0.
InvalidInput (decimales no coincidentes, no ordenados), NotAllowed.
Deposit
Agregar liquidez.
Argumentos
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
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.
Matemáticas — consulta
products/amm-v4/math.
Precondiciones
amm.statuspermite 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_accountcontiene al menosamount_in.
- El usuario pierde
amount_indel token de origen, ganaamount_out ≥ minimum_amount_outdel 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_amountya no se actualizan — sus valores están congelados. Usa registros de transacciones para análisis de volumen.
ExceededSlippage, 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
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
WithdrawPnlno toma argumentos; leeneed_take_pnl_*y mueve esas cantidades exactas.
Efecto
- Transfiere
need_take_pnl_coindepool_coin_token_accountapnl_coin_token_account. - Lo mismo para pc.
- Pone a cero
need_take_pnl_coinyneed_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
TakePnlErrordirectamente (ya no manipula el estado del libro de órdenes).
SetParams
Cambios de parámetros administrativos, llamados por la multifirma de Raydium. Los argumentos son una etiqueta param: u8 + carga útil.
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
products/amm-v4/code-demos— Ejemplos de TypeScript para flujos de intercambio y LP.products/amm-v4/fees— Detalles deWithdrawPnly la división de tarifas.reference/error-codes— Tabla de referencia directa (los errores de AMM v4 se enumeran en esa página).
- Programa Raydium AMM —
raydium-io/raydium-amm - Módulo
Liquiditydel SDK de Raydium v2 - Programa OpenBook — validaciones de cuentas en el lado del mercado

