This SDK facilitates interactions with the contracts in Universal Router
Install latest version of universal-router-sdk. Then import the corresponding Trade class and Data object for each protocol you'd like to interact with.
warning: swapERC20CallParameters()
to be deprecated in favor of swapCallParameters()
import { TradeType } from '@x-swap-protocol/sdk-core'
import { Trade as V2TradeSDK } from '@x-swap-protocol/v2-sdk'
import { Trade as V3TradeSDK } from '@x-swap-protocol/v3-sdk'
import { MixedRouteTrade, MixedRouteSDK, Trade as RouterTrade } from '@x-swap-protocol/router-sdk'
const options = { slippageTolerance, recipient }
const routerTrade = new RouterTrade({ v2Routes, v3Routes, mixedRoutes, tradeType: TradeType.EXACT_INPUT })
// Use the raw calldata and value returned to call into Universal Swap Router contracts
const { calldata, value } = SwapRouter.swapCallParameters(routerTrade, options)
Make sure you are running node v18
Install dependencies and run typescript unit tests
yarn install
yarn test:hardhat
Run forge integration tests
forge install
yarn test:forge