@kyexlab/zeta-smart-router v1.1.2
Zeta Smart Router
This project implements a smart router for finding the best routes for cross-chain swaps, considering both Ethereum and ZetaChain.
Features
- Optimal Route Finding: Identifies the most efficient routes for swapping ETH to various tokens on Ethereum, taking into account gas fees and potential slippage.
- Cross-chain Swaps: Integrates with ZetaChain to enable seamless cross-chain swaps between Ethereum and other supported blockchains.
- USD Value Calculation: Calculates USD values of tokens using Pyth Network price feeds for accurate cost analysis.
- Comprehensive Output: Generates a detailed
route_results.jsonfile containing all explored routes, best routes for each chain, and the overall best route is concluded inroute_best_results.jsonconsidering both Ethereum, ZetaChain and Binance Smart Chain.
Installation
Install dependencies: npm install
Set up environment variables: Create a .env file in the project root directory.
Add the following environment variables with your actual RPC URLs:
ZETA_MAINNET_RPC="..."
ZETA_TESTNET_RPC="..."
PYTHNET_RPC_1="..."
PYTHNET_RPC_2="..."
ETH_MAINNET_RPC="..."
ETH_SEPOLIA_RPC="..."
BNB_MAINNET_RPC="..."
BNB_TESTNET_RPC="..."
POL_MAINNET_RPC="..."
POL_TESTNET_RPC="..."
BASE_MAINNET_RPC="..."
BASE_TESTNET_RPC="..."Usage
Run the script:
Output: The script will generate a route_results.json file containing the following information:
incomingRoutes: All explored routes on native network.
incomingBestRoute: The best route found on the native network.
zetaRoutes: All explored routes on ZetaChain.
bestZetaRoute: The best route found on ZetaChain.
combineBestRoute: The overall all-best route considering involved chains.
overallBestRoute: The overall best route that should be swapping as of current circumstances. Configuration
Input parameters: Modify the amount, tokenInSymbol, and tokenOutSymbol variables in main.js to customize the swap.
Token data: Update the token information in helper/ethToken-mainnet.js, helper/zetaToken-mainnet.js and helper/bnbToken-mainnet.js if needed.
Examples
const amount = "1000";
const tokenIn = "USDC.BNB";
const tokenOut = "PEPE.ETH";It is included SwapDetails parameteres to cater for kyex-omnichain contract.
License
This project is licensed under the ISC License.
Sources and related content
Uniswap SDK
Pythnetwork
Zetachain SDK