Executing Swaps
Overview
Type
Description
Prerequisites
const { ethers } = require('ethers');
// Contract addresses
const SWAP_ROUTER = '0x48f450475a8b501A7480C1Fd02935a7327F713Ad';
const QUOTER = '0xEed635Fa2343355d9bA726C379F2B5dEa70fE65C';
const WVC = '0xEd8c5530a0A086a12f57275728128a60DFf04230'; // Wrapped VC (native token)
const USDT = '0xC0264277fcCa5FCfabd41a8bC01c1FcAF8383E41'; // USDT on VinuChain
// ABIs
const routerABI = require('./abi/SwapRouter.json');
const quoterABI = require('./abi/VinuSwapQuoter.json');
const erc20ABI = require('./abi/ERC20.json');
// Connect to provider
const provider = new ethers.providers.JsonRpcProvider(RPC_URL);
const signer = new ethers.Wallet(PRIVATE_KEY, provider);
// Contract instances
const router = new ethers.Contract(SWAP_ROUTER, routerABI, signer);
const quoter = new ethers.Contract(QUOTER, quoterABI, provider);Single Swaps
Exact Input Single
Exact Output Single
Multi-Hop Swaps
Path Encoding
Exact Input Multi-Hop
Exact Output Multi-Hop
Swapping with Native Token (VC)
VC → Token
Token → VC
Using Permit for Gasless Approvals
Finding the Best Route
Error Handling
Next Steps
Last updated