"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.QUOTER_ADDRESSES = exports.UNISWAP_V3_QUOTER_ABI = exports.UNISWAP_V3_ROUTER_ABI = exports.UNISWAP_V2_ROUTER_ABI = exports.ROUTER_ADDRESSES = void 0;
exports.ROUTER_ADDRESSES = {
    uniswap_v2: {
        ethereum: '0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D'
    },
    uniswap_v3: {
        ethereum: '0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45',
        base: '0x2626664c2603336E57B271c5C0b26F421741e481',
        arbitrum: '0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45',
        optimism: '0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45',
        polygon: '0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45'
    },
    pancakeswap: {
        bsc: '0x10ED43C718714eb63d5aA57B78B54704E256024E'
    }
};
exports.UNISWAP_V2_ROUTER_ABI = [
    {
        "inputs": [
            { "internalType": "uint256", "name": "amountIn", "type": "uint256" },
            { "internalType": "uint256", "name": "amountOutMin", "type": "uint256" },
            { "internalType": "address[]", "name": "path", "type": "address[]" },
            { "internalType": "address", "name": "to", "type": "address" },
            { "internalType": "uint256", "name": "deadline", "type": "uint256" }
        ],
        "name": "swapExactTokensForTokens",
        "outputs": [{ "internalType": "uint256[]", "name": "amounts", "type": "uint256[]" }],
        "stateMutability": "nonpayable",
        "type": "function"
    },
    {
        "inputs": [
            { "internalType": "uint256", "name": "amountIn", "type": "uint256" },
            { "internalType": "address[]", "name": "path", "type": "address[]" }
        ],
        "name": "getAmountsOut",
        "outputs": [{ "internalType": "uint256[]", "name": "amounts", "type": "uint256[]" }],
        "stateMutability": "view",
        "type": "function"
    }
];
exports.UNISWAP_V3_ROUTER_ABI = [
    {
        "inputs": [
            {
                "components": [
                    { "internalType": "address", "name": "tokenIn", "type": "address" },
                    { "internalType": "address", "name": "tokenOut", "type": "address" },
                    { "internalType": "uint24", "name": "fee", "type": "uint24" },
                    { "internalType": "address", "name": "recipient", "type": "address" },
                    { "internalType": "uint256", "name": "amountIn", "type": "uint256" },
                    { "internalType": "uint256", "name": "amountOutMinimum", "type": "uint256" },
                    { "internalType": "uint160", "name": "sqrtPriceLimitX96", "type": "uint160" }
                ],
                "internalType": "struct IV3SwapRouter.ExactInputSingleParams",
                "name": "params",
                "type": "tuple"
            }
        ],
        "name": "exactInputSingle",
        "outputs": [{ "internalType": "uint256", "name": "amountOut", "type": "uint256" }],
        "stateMutability": "payable",
        "type": "function"
    }
];
exports.UNISWAP_V3_QUOTER_ABI = [
    {
        "inputs": [
            {
                "components": [
                    { "internalType": "address", "name": "tokenIn", "type": "address" },
                    { "internalType": "address", "name": "tokenOut", "type": "address" },
                    { "internalType": "uint256", "name": "amountIn", "type": "uint256" },
                    { "internalType": "uint24", "name": "fee", "type": "uint24" },
                    { "internalType": "uint160", "name": "sqrtPriceLimitX96", "type": "uint160" }
                ],
                "internalType": "struct IQuoterV2.QuoteExactInputSingleParams",
                "name": "params",
                "type": "tuple"
            }
        ],
        "name": "quoteExactInputSingle",
        "outputs": [
            { "internalType": "uint256", "name": "amountOut", "type": "uint256" },
            { "internalType": "uint160", "name": "sqrtPriceX96After", "type": "uint160" },
            { "internalType": "uint32", "name": "initializedTicksCrossed", "type": "uint32" },
            { "internalType": "uint256", "name": "gasEstimate", "type": "uint256" }
        ],
        "stateMutability": "nonpayable",
        "type": "function"
    }
];
exports.QUOTER_ADDRESSES = {
    ethereum: '0x61fFE014bA17989E743c5F6cB21bF9697530B21e',
    base: '0x3d4e44Eb1374240CE5F1B871ab261CD16335B76a',
    arbitrum: '0x61fFE014bA17989E743c5F6cB21bF9697530B21e',
    optimism: '0x61fFE014bA17989E743c5F6cB21bF9697530B21e',
    polygon: '0x61fFE014bA17989E743c5F6cB21bF9697530B21e'
};
