This section contains SDK example for refunding undeposited liquidity in DEX
Refund tokens that were sent to LP account but weren't added to a liquidity pool yet
import TonWeb from "tonweb";
import { DEX } from "@ston-fi/sdk";
const USER_WALLET_ADDRESS = ""; // ! replace with your address
const JETTON_0_ADDRESS = "EQA2kCVNwVsil2EM2mB0SkXytxCqQjS4mttjDpnXmwG9T6bO"; // STON
const JETTON_1_ADDRESS = "EQBX6K9aXVl3nXINCyPPL86C4ONVmQ8vK360u6dykFKXpHCa"; // GEMSTON
const router = new DEX.v1.Router({
tonApiClient: new TonWeb.HttpProvider(),
});
const pool = await router.getPool({
token0: JETTON_0_ADDRESS,
token1: JETTON_1_ADDRESS,
});
if (!pool) {
throw Error(`Pool for ${JETTON_0_ADDRESS}/${JETTON_1_ADDRESS} not found`);
}
const lpAccount = await pool.getLpAccount({ ownerAddress: USER_WALLET_ADDRESS });
if (!lpAccount) {
throw Error(
`LpAccount for ${USER_WALLET_ADDRESS} at ${JETTON_0_ADDRESS}/${JETTON_1_ADDRESS} pool not found`
);
}
const txParams = await lpAccount.buildRefundTxParams({
queryId: 12345,
});
// To execute the transaction, you need to send a transaction to the blockchain.
// This code will be different based on the wallet you are using to send the tx from
// logging is used for demonstration purposes
console.log({
to: txParams.to,
amount: txParams.gasAmount,
payload: txParams.payload,
});