Open position and add liquidity
const pool = await sdk.Pool.getPool(poolAddress)
const fix_amount_a = true
const coin_amount = '1000000'
//Price slippage point.
const slippage = 0.1
const curSqrtPrice = new BN(pool.current_sqrt_price)
const tick_lower = TickMath.getPrevInitializableTickIndex(pool.current_tick_index, Number(pool.tick_spacing))
const tick_upper = TickMath.getNextInitializableTickIndex(pool.current_tick_index, Number(pool.tick_spacing))
const liquidityInput = ClmmPoolUtil.estLiquidityAndcoinAmountFromOneAmounts(
tick_lower,
tick_upper,
new BN(coin_amount),
fix_amount_a,
true,
slippage,
curSqrtPrice
)
const amount_a = fix_amount_a ? coin_amount : liquidityInput.tokenMaxA.toString()
const amount_b = fix_amount_a ? liquidityInput.tokenMaxB.toString() : coin_amount
// Define parameters for opening position and adding liquidity
const params: OpenPositionWithLiquidityParams = {
pool_id: pool.pool_address,
tick_lower,
tick_upper,
fix_amount_a,
offer_amount_a: amount_a,
offer_amount_b: amount_b
}
const payload = sdk.Position.addLiquidityPaylod(params)
const respone = await executeTransaction([payload], sdk, key, true)Last updated