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 →

Información de versión

  • SDK: @raydium-io/raydium-sdk-v2@0.2.42-alpha
  • Red: mainnet-beta
  • ID del programa del enrutador: routeUGWgWzqBWFcrCfv8tritsqukccJPu3q5GPP3xS
  • Verificado: abril de 2026

Ejemplo 1: Enrutamiento basado en SDK

Fuente: src/trade/routeSwap.ts El SDK de Raydium abstrae la construcción de rutas. Utiliza las funciones de comercio del SDK para componer una ruta multi-salto y ejecutarla a través del enrutador automáticamente.

Configuración

Construir un intercambio multi-salto

El enrutamiento en @raydium-io/raydium-sdk-v2 se expone en raydium.tradeV2. La forma de extremo a extremo —obtención de datos del pool, cálculo de rutas, clasificación por resultado y construcción de la transacción de intercambio— se muestra a continuación; esto coincide con el ejemplo canónico en raydium-sdk-V2-demo/src/trade/routeSwap.ts.

Comportamiento esperado

El SDK maneja:
  • Descubrimiento de rutas a través de AMM v4, CPMM, CLMM y Stable AMM.
  • Derivación de cuentas (estados de pools, bóvedas, cuentas de observación, pre-creación de ATA).
  • Empaque de instrucciones para el programa del enrutador (Router) cuando la ruta es multi-salto, o un intercambio directo de pool cuando un único pool ya proporciona el mejor precio.
  • Aplicación de deslizamiento a través del parámetro slippage en getAllRouteComputeAmountOut.
raydium.tradeV2.swap puede devolver más de una transaction —la primera comúnmente inicializa ATAs intermedias y la segunda realiza el intercambio en sí. Siempre pasa sequentially: true a execute() para que confirmen en orden.

Ejemplo 2: Construcción manual de instrucciones (pseudocódigo similar a Rust)

Si necesitas un control más fino o estás construyendo un programa que haga CPI en el enrutador, construye instrucciones manualmente. El ejemplo a continuación utiliza tag 8 (SwapBaseIn) —la variante Current recomendada— y enruta a través de ATAs propiedad del usuario de extremo a extremo.

Escenario: USDC → SOL (CPMM) → mSOL (CPMM)

Paso 1: Derivar las ATAs del usuario

Paso 2: Recopilar cuentas para cada salto

El salto 1 es USDC/SOL en CPMM. El salto 2 es SOL/mSOL en CPMM.

Paso 3: Construir la instrucción

Paso 4: Enviar transacción


Ejemplo 3: Manejo de errores

Errores comunes y cómo recuperarse:

ExceededSlippage

El resultado fue menor que minimum_amount_out. Reintentar con tolerancia de deslizamiento más alta o volver a cotizar la ruta.

SqrtPriceX64 (CLMM)

El precio de un salto CLMM se desvió fuera de los límites limit_prices. Actualiza los límites y reintentar.

InvalidOwner

Una ATA intermedia o de salida no es propiedad del usuario. El enrutador valida la propiedad en cada slot; asegúrate de que cada ATA que pases fue derivada de la cartera del usuario (no de ninguna otra autoridad).

Consejos y mejores prácticas

Pre-crear ATAs intermedias

Antes de enrutar a través de un nuevo token intermedio por primera vez, crea la ATA del usuario para que la ruta no falle en la validación:
Para wSOL específicamente, prefiere CreateSyncNative (tag 5) —crea la ATA, transfiere el SOL y sincroniza en una instrucción.

Cotizar antes de ejecutar

Siempre consulta los pools y calcula el resultado esperado antes de construir la instrucción:

Utilizar las variantes de instrucción más nuevas (8-9)

Los tags 8 y 9 (SwapBaseIn y SwapBaseOut) son más indulgentes con limit_prices. Prefiere los sobre las variantes heredadas si no necesitas validación de precio CLMM.

A dónde ir a continuación

Fuentes: