Remove Liquidity

Integrating remove liquidity to website

Integrating the PiperX remove liquidity functionality to your website makes it easy for you to manage the liquidity from PiperX pools.

Steps to Integration

There are three steps in removing liquidity: 1) prepare input, 2) approve tokens, 3) conduct remove liquidity. You need to install PiperX sdk and import it to proceed.

import { v2RemoveLiquidity, v2RouterTokenApproval } from '@piperx/sdk/src/v2core'
import { WIP_ADDRESS } from '@piperx/sdk/src/constant'
import { v2ComputeAddress } from '@piperx/sdk/src/routing'

Prepare Input

You need the following inputs before you can remove a liquidity

token1_address: address, // if it is $IP native token, use WIP_ADDRESS
token2_address: address, // if it is $IP native token, use WIP_ADDRESS
liquidity: bigint, // amount of lp token you want to remove to the pool
amount1Min: bigint, // minimal amount of token 1 you want to receive
amount2Min: bigint, // minmial amount of token 2 you want to receive 
current_address: string, // your account address
expire_time: bigint// expiration timestamp for a swap

Note that, if you are swapping $IP token, you should pass in the PiperX wrapped $IP token address, because the $IP token is not a ERC-20 token. For example, if you are swapping from staked $IP token to $IP token, please use wrapped $IP address WIP_ADDRESS

Approve tokens

You need to approve the router contract to both your tokens to create this pool

await v2RouterTokenApproval(lp_token_address, amount1)

Remove the liquidity

let lp_token = v2ComputeAddress(token1, token2)
await v2RemoveLiquidity(
    token1: string,
    token2: string,
    amount1: bigint,
    amount2: bigint,
    amount1Min: bigint,
    amount2Min: bigint,
    current_address: string,
    expire_time: bigint
)

Last updated