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 →
Qué hace esto. Carga un pool CPMM desde RPC, cotiza un intercambio con 0,5% de tolerancia de deslizamiento, construye la transacción, la firma con tu par de claves y la envía. De principio a fin en ~30 líneas.

Configuración

Asegúrate de haber leído los requisitos previos de inicio rápido y de tener RPC_URL, KEYPAIR y las dependencias instaladas.

El script

Guarda como swap.mjs:
swap.mjs

Ejecútalo

Elige cualquier pool CPMM para el que tengas liquidez. Ejemplo con el pool CPMM canónico SOL/USDC:
Salida esperada:

Qué acaba de suceder

  1. Raydium.load inicializó el SDK — obtuvo la configuración global y configuró el contexto de tu billetera.
  2. getPoolInfoFromRpc extrajo el estado del pool en vivo directamente desde RPC (no desde la caché de la API). Para intercambios de alto valor siempre quieres estado fresco.
  3. CurveCalculator.swap calculó la salida de producto constante neta de la tarifa del pool. Esta es la misma matemática que ejecuta el programa en cadena, por lo que puedes comparar cotizaciones fuera y en cadena.
  4. raydium.cpmm.swap construyó la transacción con formato V0 (tablas de búsqueda de direcciones habilitadas) y agregó una configuración explícita de presupuesto de cómputo. La propina de presupuesto de cómputo ayuda a que la transacción se incluya en ventanas ocupadas.
  5. execute({ sendAndConfirm: true }) firmó, envió y esperó confirmación.

Errores comunes

  • Pool not foundPOOL_ID incorrecto, o estás apuntando al clúster incorrecto (ID de pool mainnet contra un RPC devnet, etc.).
  • Insufficient funds for transaction — Tu billetera no tiene suficiente SOL para la entrada del intercambio + tarifas + renta de ATA.
  • Slippage tolerance exceeded — El precio del pool se movió entre la cotización y la ejecución. Vuelve a ejecutar; o aumenta el parámetro slippage; o usa computeAmountOut del SDK que siempre vuelve a obtener las reservas.
  • Token account not initialized — El ATA del token de salida no existía y la instrucción de creación implícita se incluyó pero falló por alguna razón; verifica el saldo de SOL de tu billetera e intenta de nuevo.

Siguiente