provide liquidity
This section contains SDK example for providing liquidity in DEX
Provide liquidity for a pool
Jetton/Jetton pool deposit
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 txsParams = await Promise.all([
// deposit 5 STON to the STON/GEMSTON pool and get at least 1 nano LP token
router.buildProvideLiquidityJettonTxParams({
userWalletAddress: USER_WALLET_ADDRESS,
sendTokenAddress: JETTON_0_ADDRESS,
sendAmount: new TonWeb.utils.BN("500000000"),
otherTokenAddress: JETTON_1_ADDRESS,
minLpOut: new TonWeb.utils.BN("1"),
queryId: 12345,
}),
// deposit 2 GEMSTON to the STON/GEMSTON pool and get at least 1 nano LP token
router.buildProvideLiquidityJettonTxParams({
userWalletAddress: USER_WALLET_ADDRESS,
sendTokenAddress: JETTON_1_ADDRESS,
sendAmount: new TonWeb.utils.BN("200000000"),
otherTokenAddress: JETTON_0_ADDRESS,
minLpOut: new TonWeb.utils.BN("1"),
queryId: 123456,
}),
]);
// 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
txsParams.map((txParams) => console.log({
to: txParams.to,
amount: txParams.gasAmount,
payload: txParams.payload,
}));
TON/Jetton pool deposit
import TonWeb from "tonweb";
import { DEX, pTON } from "@ston-fi/sdk";
const USER_WALLET_ADDRESS = ""; // ! replace with your address
const JETTON_0_ADDRESS = "EQA2kCVNwVsil2EM2mB0SkXytxCqQjS4mttjDpnXmwG9T6bO"; // STON
const pTON_ADDRESS = pTON.v1.address;
const router = new DEX.v1.Router({
tonApiClient: new TonWeb.HttpProvider(),
});
const txsParams = await Promise.all([
// deposit 1 TON to the STON/TON pool and get at least 1 nano LP token
router.buildProvideLiquidityTonTxParams({
userWalletAddress: USER_WALLET_ADDRESS,
proxyTonAddress: pTON_ADDRESS,
sendAmount: new TonWeb.utils.BN("100000000"),
otherTokenAddress: JETTON_0_ADDRESS,
minLpOut: new TonWeb.utils.BN("1"),
queryId: 12345,
}),
// deposit 5 STON to the STON/TON pool and get at least 1 nano LP token
router.buildProvideLiquidityJettonTxParams({
userWalletAddress: USER_WALLET_ADDRESS,
sendTokenAddress: JETTON_0_ADDRESS,
sendAmount: new TonWeb.utils.BN("500000000"),
otherTokenAddress: pTON_ADDRESS,
minLpOut: new TonWeb.utils.BN("1"),
queryId: 123456,
}),
]);
// 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
txsParams.map((txParams) => console.log({
to: txParams.to,
amount: txParams.gasAmount,
payload: txParams.payload,
}));
Last updated