1.1.4 • Published 1 year ago

@kyexlab/zeta-smart-router v1.1.4

Weekly downloads
-
License
ISC
Repository
github
Last release
1 year ago

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.json file containing all explored routes, best routes for each chain, and the overall best route is concluded in route_best_results.json considering both Ethereum, ZetaChain and Binance Smart Chain.

Installation

  1. Install dependencies: npm install

  2. 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