Remove liquidity
const pool = await sdk.Pool.getPool(poolAddress)
const position = await sdk.Position.getPositionInfo(positionId)
const slippage = 0.01
const curSqrtPrice = new BN(pool.current_sqrt_price)
const tick_lower = position.tick_lower_index
const tick_upper = position.tick_upper_index
const lowerSqrtPrice = TickMath.tickIndexToSqrtPriceX64(tick_lower)
const upperSqrtPrice = TickMath.tickIndexToSqrtPriceX64(tick_upper)
const liquidity = '1000000'
const coinAmounts = ClmmPoolUtil.getCoinAmountFromLiquidity(new BN(liquidity), curSqrtPrice, lowerSqrtPrice, upperSqrtPrice, true)
const min_amount_a = d(coinAmounts.coinA.toString()).mul(1 - slippage).toFixed(0)
const min_amount_b = d(coinAmounts.coinB.toString()).mul(1 - slippage).toFixed(0)
// Define parameters for removing liquidity
const params: RemoveLiquidityParams = {
pid: position.id,
min_amount_a,
min_amount_b,
delta_liquidity: liquidity
}
const payload = sdk.Position.removeLiquidityPaylod(params)
const respone = await executeTransaction([payload], sdk, key, false)Last updated