increaseLiquidity
Increase specific liquidity from specific pool.
Signature
increaseLiquidity(options: IncreaseLiquidityOptions): Promise<Transaction>
Params
interface IncreaseLiquidityOptions {
// pool object ID
pool: string;
// liquidity NFT ID
nft: string;
// Operator address
address: string;
// Amount of coin A
amountA: string | number;
// Amount of coin B
amountB: string | number;
// Acceptable wasted amount percentage. Range: [0, 100)
slippage: string | number;
// Expires timeout(ms), defaults 180_000
deadline?: number;
// Custom transaction handler
txb?: Transaction;
}
Examples
const turbosSdk = new TurbosSdk(Network.testnet, {
url: 'https://fullnode.testnet.sui.io',
});
//const signer = turbosSdk.account.getKeypairFromMnemonics("your mnemonic");
const signer = services.turbosBaseService.signer;
const poolId = '0x328572f9d3c99bdb0a2da46fa61ef7917e1d35e67ec9472d412aa82b4a5222b2';
const positionId =
'0x0d367b3a64002124e8021293983be069bfcf81c6f1b905a0ebff693809f526a3';
const position = await turbosSdk.nft.getPositionFields(positionId);
const pool = await turbosSdk.pool.getPool(poolId);
const coinADecimals = 9;
const amountA = 1 * 10 ** coinADecimals;
const amounts = turbosSdk.pool.estimateAmountsFromOneAmount({
sqrtPrice: pool.sqrt_price,
tickLower: turbosSdk.math.bitsToNumber(position.tick_lower_index.fields.bits),
tickUpper: turbosSdk.math.bitsToNumber(position.tick_upper_index.fields.bits),
amount: amountA.toString(),
isAmountA: true,
});
const txb = await turbosSdk.pool.increaseLiquidity({
pool: poolId,
nft: positionId,
amountA: amounts[0],
amountB: amounts[1],
address: signer.toSuiAddress(),
slippage: 10, //10% slippage
});
const result = await turbosSdk.provider.signAndExecuteTransaction({
transaction: txb,
signer,
});
console.log(result);
Last updated