Depositar / retirar liquidez

Deposita tokens en un pool CPMM para recibir tokens LP, o quema tokens LP para retirar tu parte del pool.


Obteniendo información del pool

Tanto las operaciones de depósito como de retiro requieren información del pool.

import {
  ApiV3PoolInfoStandardItemCpmm,
  CpmmKeys,
  CREATE_CPMM_POOL_PROGRAM,
  DEVNET_PROGRAM_ID,
} from '@raydium-io/raydium-sdk-v2'
import { initSdk } from '../config'

const VALID_PROGRAM_ID = new Set([
  CREATE_CPMM_POOL_PROGRAM.toBase58(),
  DEVNET_PROGRAM_ID.CREATE_CPMM_POOL_PROGRAM.toBase58(),
])
const isValidCpmm = (id: string) => VALID_PROGRAM_ID.has(id)

let poolInfo: ApiV3PoolInfoStandardItemCpmm
let poolKeys: CpmmKeys | undefined

const raydium = await initSdk()
const poolId = 'YOUR_POOL_ID'

if (raydium.cluster === 'mainnet') {
  const data = await raydium.api.fetchPoolById({ ids: poolId })
  poolInfo = data[0] as ApiV3PoolInfoStandardItemCpmm
  if (!isValidCpmm(poolInfo.programId)) throw new Error('target pool is not CPMM pool')
} else {
  const data = await raydium.cpmm.getPoolInfoFromRpc(poolId)
  poolInfo = data.poolInfo
  poolKeys = data.poolKeys
}

Depositando liquidez

Usa raydium.cpmm.addLiquidity() para depositar tokens en un pool. Especificas la cantidad de un token, y el SDK calcula la cantidad requerida del otro token según la proporción actual del pool.

Calculando la cantidad emparejada (opcional)

Antes de depositar, puedes previsualizar la cantidad requerida del otro token para mostrarla en la UI:

Parámetros de depósito

Parámetro
Tipo
Descripción

poolInfo

object

Información del pool desde la API o RPC.

poolKeys

object

Claves del pool, requeridas para devnet. Opcionales en mainnet (el SDK las deriva).

inputAmount

BN

Cantidad a depositar para el token base o quote, en las unidades más pequeñas.

slippage

Percent

Tolerancia al deslizamiento. new Percent(1, 100) = 1%.

baseIn

boolean

true si inputAmount es para token A, false para token B.

txVersion

TxVersion

Versión de la transacción.


Retirando liquidez

Usa raydium.cpmm.withdrawLiquidity() para quemar tokens LP y recibir de vuelta tu parte proporcional de ambos tokens.

Parámetros de retiro

Parámetro
Tipo
Descripción

poolInfo

object

Información del pool desde la API o RPC.

poolKeys

object

Claves del pool, requeridas para devnet.

lpAmount

BN

Cantidad de tokens LP a quemar, en las unidades más pequeñas.

slippage

Percent

Tolerancia al deslizamiento para las cantidades mínimas de tokens recibidas.

txVersion

TxVersion

Versión de la transacción.

circle-info

De forma predeterminada, el SDK cierra automáticamente la cuenta wSOL y devuelve SOL nativo. Para mantener abierta la cuenta wSOL, pasa closeWsol: false.

Última actualización

¿Te fue útil?