Simplify liquidity provision to DeFi pools with a single transaction.
const BERACHAIN_CHAIN = 80094; const OPTIMISM_CHAIN = 10; const ARBITRUM_CHAIN = 42161; const ETHEREUM_CHAIN = 1; const PLUME_CHAIN = 98866; const userAddress = "0xd8da6bf26964af9d7eed9e03e53415d37aa96045" as Address; /** * Zaps native BERA into the BEX WBERA/HONEY liquidity pool on Berachain. * @returns The route and transaction objects. */ export async function zapBeraToBexLp(): { const BERA: Address = "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE"; const BEX_WBERA_HONEY_LP: Address = "0x0277d40b08ac168518c524418f1b3c16adae0f0d"; const routeParams: RouteParams = { fromAddress: userAddress, receiver: userAddress, chainId: BERACHAIN_CHAIN, amountIn: ["1000000000000000000"], // 1 BERA tokenIn: [BERA], tokenOut: [BEX_WBERA_HONEY_LP], routingStrategy: 'router' }; const route = await client.getRouteData(routeParams); await sendEoa(route.tx, route.gas); return route; }
const BERACHAIN_CHAIN = 80094; const OPTIMISM_CHAIN = 10; const ARBITRUM_CHAIN = 42161; const ETHEREUM_CHAIN = 1; const PLUME_CHAIN = 98866; const userAddress = "0xd8da6bf26964af9d7eed9e03e53415d37aa96045" as Address; /** * Zaps ETH into a Velodrome wstETH/WETH liquidity pool on Optimism. * @returns The route and transaction objects. */ export async function zapEthToVelodromeLp(): { const ETH: Address = "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE"; const veloWstethWethLp: Address = "0xa3031D9FD5010496a2bAF8AFCE27Ef6f3849FB10"; const routeParams: RouteParams = { fromAddress: userAddress, receiver: userAddress, chainId: OPTIMISM_CHAIN, amountIn: ["1000000000000000000"], // 1 ETH tokenIn: [ETH], tokenOut: [veloWstethWethLp], routingStrategy: 'router' }; const route = await client.getRouteData(routeParams); await sendEoa(route.tx, route.gas); return route; }
const BERACHAIN_CHAIN = 80094; const OPTIMISM_CHAIN = 10; const ARBITRUM_CHAIN = 42161; const ETHEREUM_CHAIN = 1; const PLUME_CHAIN = 98866; const userAddress = "0xd8da6bf26964af9d7eed9e03e53415d37aa96045" as Address; /** * Zaps ETH to a SushiSwap ARB/WETH liquidity pool on Arbitrum. * @returns The route and transaction objects. */ export async function zapEthToSushiswapLp(): { const ETH: Address = "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE"; const SLP_ARB_WETH: Address = "0x905dfcd5649217c42684f23958568e533c711aa3"; const routeParams: RouteParams = { fromAddress: userAddress, receiver: userAddress, chainId: ARBITRUM_CHAIN, amountIn: ["1000000000000000000"], // 1 ETH tokenIn: [ETH], tokenOut: [SLP_ARB_WETH], routingStrategy: 'router' }; const route = await client.getRouteData(routeParams); await sendEoa(route.tx, route.gas); return route; }
const BERACHAIN_CHAIN = 80094; const OPTIMISM_CHAIN = 10; const ARBITRUM_CHAIN = 42161; const ETHEREUM_CHAIN = 1; const PLUME_CHAIN = 98866; const userAddress = "0xd8da6bf26964af9d7eed9e03e53415d37aa96045" as Address; /** * Zaps ETH to a Balancer WETH/BAL weighted pool on Ethereum Mainnet. * @returns The route and transaction objects. */ export async function zapEthToBalancerLp(): { const ETH: Address = "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE"; const BPT_WETH_BAL: Address = "0x5c6Ee304399DBdB9C8Ef030aB642B10820DB8F56"; const routeParams: RouteParams = { fromAddress: userAddress, receiver: userAddress, chainId: ETHEREUM_CHAIN, amountIn: ["1000000000000000000"], // 1 ETH tokenIn: [ETH], tokenOut: [BPT_WETH_BAL], routingStrategy: 'router' }; const route = await client.getRouteData(routeParams); await sendEoa(route.tx, route.gas); return route; }
import { EnsoClient, RouteParams, Address } from "@ensofinance/sdk"; import * as dotenv from "dotenv"; import { happyPathLog } from "../../tools"; import { sendEoa } from "../utils"; dotenv.config(); // Initialize EnsoClient with your API key const client = new EnsoClient({ apiKey: process.env.ENSO_API_KEY!, }); // Define common constants const BERACHAIN_CHAIN = 80094; const OPTIMISM_CHAIN = 10; const ARBITRUM_CHAIN = 42161; const ETHEREUM_CHAIN = 1; const PLUME_CHAIN = 98866; const userAddress = "0xd8da6bf26964af9d7eed9e03e53415d37aa96045" as Address; /** * Zaps ETH to a Camelot GRAIL/WETH liquidity pool on Arbitrum. * @returns The route and transaction objects. */ export async function zapEthToCamelotLp(): { const ETH: Address = "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE"; const spLP_GRAIL_WETH: Address = "0xbfca4230115de8341f3a3d5e8845ffb3337b2be3"; const routeParams: RouteParams = { fromAddress: userAddress, receiver: userAddress, chainId: ARBITRUM_CHAIN, amountIn: ["1000000000000000000"], // 1 ETH tokenIn: [ETH], tokenOut: [spLP_GRAIL_WETH], routingStrategy: 'router' }; const route = await client.getRouteData(routeParams); await sendEoa(route.tx, route.gas); return route; }
Was this page helpful?