Documentation Index
Fetch the complete documentation index at: https://docs.raydium.io/llms.txt
Use this file to discover all available pages before exploring further.
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 →
El enrutador no realiza cálculos
El programa de enrutamiento no implementa lógica de precios. Es un orquestador puro: acepta una ruta, pasa cuentas a programas secundarios y encadena flujos de tokens. Cada salto fija el precio según la curva de su propio programa de pool:- Saltos AMM v4: utilizan la fórmula de producto constante (
x · y = k) con precios híbridos de OpenBook. Verproducts/amm-v4/math. - Saltos CPMM: utilizan la fórmula de producto constante con niveles de comisión configurables. Ver
products/cpmm/math. - Saltos CLMM: utilizan matemáticas de ticks de liquidez concentrada. Ver
algorithms/clmm-math. - Saltos estables: utilizan la curva de intercambio estable para activos similares. Ver
products/stable/math.
- Llamar a la instrucción de intercambio de cada pool mediante CPI.
- Recopilar el monto de salida.
- Pasarlo como monto de entrada al siguiente salto.
- Verificar la salida final contra el límite de slippage del llamador.
Composición del slippage
En una ruta con múltiples saltos, el slippage en cada salto se compone. Un pequeño slippage en el salto 1 se convierte en un slippage más grande en el salto 2 porque el volumen hacia el salto 2 ya se ha reducido. Ejemplo:minimum_amount_out, el enrutador verifica tu salida final contra este límite global. Cada salto también verifica su propio intercambio contra su estructura de comisión local, pero el enrutador no vuelve a cotizar en medio de la ruta; debes precalcular la ruta e incluir suficiente tolerancia de slippage.
Saltos CLMM y limit_prices
Para cada salto hacia un pool CLMM, el enrutador verifica que elsqrt_price_x64 actual del pool esté dentro de un límite especificado. Los límites se pasan como un VecDeque<u128> llamado limit_prices:
- Un
sqrt_price_x64por cada salto CLMM en la ruta. sqrt_price_x64es la representación de precio basada en ticks utilizada por CLMM. Veralgorithms/clmm-mathpara la definición.- El enrutador impone:
Variantes de instrucción y limit_prices
-
SwapBaseInWithUserAccount,SwapBaseOutWithUserAccount(Legado, etiquetas 0 y 1): el VecDeque delimit_priceses requerido. Se rechaza un deque vacío con un error si algún salto es un pool CLMM. Debes proporcionar un precio por cada salto CLMM, en orden. -
SwapBaseIn,SwapBaseOut(Actual, etiquetas 8 y 9): el VecDeque delimit_priceses opcional. Un deque vacío se ignora silenciosamente; no se realiza ninguna verificación de precio. El código nuevo debe usar estos.
Construir limit_prices
Para una ruta con M saltos CLMM, el deque debe contener exactamente M entradas. Ordénalas por salto:Cuándo verificar limit_prices
Elsqrt_price_x64 es una instantánea del precio actual del pool. Cambia continuamente a medida que se ejecutan los intercambios. Deberías:
- Obtener el estado actual del pool de la cadena.
- Calcular límites aceptables (por ejemplo, ±0.5% del precio actual).
- Codificar esos límites en
limit_prices. - Incluir los límites en tu instrucción del enrutador.
Manejo de comisiones
Cada pool cobra su propia comisión según su configuración:- AMM v4: 0.25% (fijo) dividido entre LP, protocolo y fondo.
- CPMM: configurable por
AmmConfig(predeterminado 0.25%, la división varía según el nivel). - CLMM: configurable por pool, deducido del monto de entrada.
- Estable: como AMM v4, 0.25% dividido.
products/amm-v4/feesproducts/cpmm/feesproducts/clmm/fees(si está disponible)products/stable/fees(si está disponible)
Ejemplo de contabilidad de múltiples saltos
Supongamos que enrutas USDC → SOL → STEP a través de dos pools de producto constante, cada uno con una comisión de 0.25%:Consideraciones de precisión
Como todos los programas en Solana, el enrutador utiliza aritmética de enteros:- Todos los montos son
u64(lamports o unidades más pequeñas de token). - Los cálculos de curva utilizan intermedios
u128donde es necesario para evitar desbordamiento. - Las convenciones de redondeo dependen del programa secundario. El enrutador no redondea de nuevo.
Próximos pasos
products/amm-v4/math— matemáticas de producto constante.products/cpmm/math— CPMM de producto constante con Token-2022.algorithms/clmm-math— precios de liquidez concentrada.products/stable/math— curva de intercambio estable.products/routing/code-demos— ejemplos de cotización antes de enrutamiento.


