This section contains SDK example for performing swap in DEX
In this section, to illustrate all three possible types of a swap, we will do following exchange chain
swap 1 TON to TesREED (ton to jetton swap)
swap TesREED to TestBlue (jetton to jetton swap)
swap TestBlue back to TON (jetton to ton swap)
Swap TON to jetton
Referral Fees: You can specify a referral fee in your swap if needed. For bigger context, see the Omniston referral fees guide (although Omniston-oriented, the linked paragraph details how DEX V2 referral fees operate).
import { TonClient, toNano } from "@ton/ton";
import { DEX, pTON } from "@ston-fi/sdk";
const client = new TonClient({
endpoint: "https://testnet.toncenter.com/api/v2/jsonRPC",
});
const router = client.open(
DEX.v2_1.Router.CPI.create(
"kQALh-JBBIKK7gr0o4AVf9JZnEsFndqO0qTCyT-D-yBsWk0v" // CPI Router v2.1.0
)
);
const proxyTon = pTON.v2_1.create(
"kQACS30DNoUQ7NfApPvzh7eBmSZ9L4ygJ-lkNWtba8TQT-Px" // pTON v2.1.0
);
// swap 1 TON to TestRED but not less than 1 nano TestRED
const txParams = await router.getSwapTonToJettonTxParams({
userWalletAddress: "", // ! replace with your address
proxyTon: proxyTon,
offerAmount: toNano("1"),
askJettonAddress: "kQDLvsZol3juZyOAVG8tWsJntOxeEZWEaWCbbSjYakQpuYN5", // TestRED
minAskAmount: "1",
// Optional referral parameters:
referralAddress: "", // your referral TON address
referralValue: 10, // e.g. 10 => 0.1% fee
queryId: 12345,
});
To execute the transaction, you need to send a transaction with these parameters to the blockchain. This code will be different based on the wallet you are using to send the tx from, so please check our doc section about transaction sending guide with examples for different libraries.
Swap jetton to jetton
Referral Fees: You can specify a referral fee in your swap if needed. For bigger context, see the Omniston referral fees guide (although Omniston-oriented, the linked paragraph details how DEX V2 referral fees operate).
import { TonClient, toNano } from "@ton/ton";
import { DEX, pTON } from "@ston-fi/sdk";
const client = new TonClient({
endpoint: "https://testnet.toncenter.com/api/v2/jsonRPC",
});
const router = client.open(
DEX.v2_1.Router.CPI.create(
"kQALh-JBBIKK7gr0o4AVf9JZnEsFndqO0qTCyT-D-yBsWk0v" // CPI Router v2.1.0
)
);
// swap 1 TesREED to TestBlue but not less than 1 nano TestBlue
const txParams = await router.getSwapJettonToJettonTxParams({
userWalletAddress: "", // ! replace with your address
offerJettonAddress: "kQDLvsZol3juZyOAVG8tWsJntOxeEZWEaWCbbSjYakQpuYN5", // TesREED
offerAmount: toNano("1"),
askJettonAddress: "kQB_TOJSB7q3-Jm1O8s0jKFtqLElZDPjATs5uJGsujcjznq3", // TestBlue
minAskAmount: "1",
// Optional referral parameters:
referralAddress: "", // your referral TON address
referralValue: 25, // e.g. 25 => 0.25% fee
queryId: 12345,
});
To execute the transaction, you need to send a transaction with these parameters to the blockchain. This code will be different based on the wallet you are using to send the tx from, so please check our doc section about transaction sending guide with examples for different libraries.
Swap jetton to TON
Referral Fees: You can specify a referral fee in your swap if needed. For bigger context, see the Omniston referral fees guide (although Omniston-oriented, the linked paragraph details how DEX V2 referral fees operate).
import { TonClient, toNano } from "@ton/ton";
import { DEX, pTON } from "@ston-fi/sdk";
const client = new TonClient({
endpoint: "https://testnet.toncenter.com/api/v2/jsonRPC",
});
const router = client.open(
DEX.v2_1.Router.CPI.create(
"kQALh-JBBIKK7gr0o4AVf9JZnEsFndqO0qTCyT-D-yBsWk0v" // CPI Router v2.1.0
)
);
const proxyTon = pTON.v2_1.create(
"kQACS30DNoUQ7NfApPvzh7eBmSZ9L4ygJ-lkNWtba8TQT-Px" // pTON v2.1.0
);
// swap 1 TestRED to TON but not less than 1 nano TON
const txParams = await router.getSwapJettonToTonTxParams({
userWalletAddress: "", // ! replace with your address
offerJettonAddress: "kQDLvsZol3juZyOAVG8tWsJntOxeEZWEaWCbbSjYakQpuYN5", // TestRED
offerAmount: toNano("1"),
minAskAmount: "1",
proxyTon,
// Optional referral parameters:
referralAddress: "", // your referral TON address
referralValue: 50, // e.g. 50 => 0.5% fee
queryId: 12345,
});
To execute the transaction, you need to send a transaction with these parameters to the blockchain. This code will be different based on the wallet you are using to send the tx from, so please check our doc section about transaction sending guide with examples for different libraries.