[
    {
        "name": "TokenPurchase",
        "inputs": [
            { "type": "address", "name": "buyer", "indexed": true },
            { "type": "uint256", "name": "matic_sold", "indexed": true },
            { "type": "uint256", "name": "bnb_sold", "indexed": true },
            { "type": "uint256", "name": "avax_sold", "indexed": true },
            { "type": "uint256", "name": "tokens_bought", "indexed": true }
        ],
        "anonymous": false,
        "type": "event"
    },
    {
        "name": "MaticPurchase",
        "inputs": [
            { "type": "address", "name": "buyer", "indexed": true },
            { "type": "uint256", "name": "tokens_sold", "indexed": true },
            { "type": "uint256", "name": "matic_bought", "indexed": true }
        ],
        "anonymous": false,
        "type": "event"
    },
    {
        "name": "BnbPurchase",
        "inputs": [
            { "type": "address", "name": "buyer", "indexed": true },
            { "type": "uint256", "name": "tokens_sold", "indexed": true },
            { "type": "uint256", "name": "bnb_bought", "indexed": true }
        ],
        "anonymous": false,
        "type": "event"
    },
    {
        "name": "AvaxPurchase",
        "inputs": [
            { "type": "address", "name": "buyer", "indexed": true },
            { "type": "uint256", "name": "tokens_sold", "indexed": true },
            { "type": "uint256", "name": "avax_bought", "indexed": true }
        ],
        "anonymous": false,
        "type": "event"
    },
    {
        "name": "AddLiquidity",
        "inputs": [
            { "type": "address", "name": "provider", "indexed": true },
            { "type": "uint256", "name": "matic_amount", "indexed": true },
            { "type": "uint256", "name": "bnb_amount", "indexed": true },
            { "type": "uint256", "name": "avax_amount", "indexed": true },
            { "type": "uint256", "name": "token_amount", "indexed": true }
        ],
        "anonymous": false,
        "type": "event"
    },
    {
        "name": "RemoveLiquidity",
        "inputs": [
            { "type": "address", "name": "provider", "indexed": true },
            { "type": "uint256", "name": "matic_amount", "indexed": true },
            { "type": "uint256", "name": "bnb_amount", "indexed": true },
            { "type": "uint256", "name": "avax_amount", "indexed": true },
            { "type": "uint256", "name": "token_amount", "indexed": true }
        ],
        "anonymous": false,
        "type": "event"
    },
    {
        "name": "Transfer",
        "inputs": [
            { "type": "address", "name": "_from", "indexed": true },
            { "type": "address", "name": "_to", "indexed": true },
            { "type": "uint256", "name": "_value", "indexed": false }
        ],
        "anonymous": false,
        "type": "event"
    },
    {
        "name": "Approval",
        "inputs": [
            { "type": "address", "name": "_owner", "indexed": true },
            { "type": "address", "name": "_spender", "indexed": true },
            { "type": "uint256", "name": "_value", "indexed": false }
        ],
        "anonymous": false,
        "type": "event"
    },
    {
        "name": "setup",
        "outputs": [],
        "inputs": [{ "type": "address", "name": "token_addr" }],
        "constant": false,
        "payable": false,
        "type": "function",
        "gas": 175875
    },
    {
        "name": "addLiquidity",
        "outputs": [{ "type": "uint256", "name": "out" }],
        "inputs": [
            { "type": "uint256", "name": "min_liquidity" },
            { "type": "uint256", "name": "max_tokens" },
            { "type": "uint256", "name": "deadline" }
        ],
        "constant": false,
        "payable": true,
        "type": "function",
        "gas": 82616
    },
    {
        "name": "removeLiquidity",
        "outputs": [{ "type": "uint256", "name": "out" }, { "type": "uint256", "name": "out" }],
        "inputs": [
            { "type": "uint256", "name": "amount" },
            { "type": "uint256", "name": "min_matic" },
            { "type": "uint256", "name": "min_bnb" },
            { "type": "uint256", "name": "min_avax" },
            { "type": "uint256", "name": "min_tokens" },
            { "type": "uint256", "name": "deadline" }
        ],
        "constant": false,
        "payable": false,
        "type": "function",
        "gas": 116814
    },
    { "name": "__default__", "outputs": [], "inputs": [], "constant": false, "payable": true, "type": "function" },
    {
        "name": "maticToTokenSwapInput",
        "outputs": [{ "type": "uint256", "name": "out" }],
        "inputs": [{ "type": "uint256", "name": "min_tokens" }, { "type": "uint256", "name": "deadline" }],
        "constant": false,
        "payable": true,
        "type": "function",
        "gas": 12757
    },
    {
        "name": "bnbToTokenSwapInput",
        "outputs": [{ "type": "uint256", "name": "out" }],
        "inputs": [{ "type": "uint256", "name": "min_tokens" }, { "type": "uint256", "name": "deadline" }],
        "constant": false,
        "payable": true,
        "type": "function",
        "gas": 12757
    },
    {
        "name": "avaxToTokenSwapInput",
        "outputs": [{ "type": "uint256", "name": "out" }],
        "inputs": [{ "type": "uint256", "name": "min_tokens" }, { "type": "uint256", "name": "deadline" }],
        "constant": false,
        "payable": true,
        "type": "function",
        "gas": 12757
    },
    {
        "name": "maticToTokenTransferInput",
        "outputs": [{ "type": "uint256", "name": "out" }],
        "inputs": [
            { "type": "uint256", "name": "min_tokens" },
            { "type": "uint256", "name": "deadline" },
            { "type": "address", "name": "recipient" }
        ],
        "constant": false,
        "payable": true,
        "type": "function",
        "gas": 12965
    },
    {
        "name": "bnbToTokenTransferInput",
        "outputs": [{ "type": "uint256", "name": "out" }],
        "inputs": [
            { "type": "uint256", "name": "min_tokens" },
            { "type": "uint256", "name": "deadline" },
            { "type": "address", "name": "recipient" }
        ],
        "constant": false,
        "payable": true,
        "type": "function",
        "gas": 12965
    },
    {
        "name": "avaxToTokenTransferInput",
        "outputs": [{ "type": "uint256", "name": "out" }],
        "inputs": [
            { "type": "uint256", "name": "min_tokens" },
            { "type": "uint256", "name": "deadline" },
            { "type": "address", "name": "recipient" }
        ],
        "constant": false,
        "payable": true,
        "type": "function",
        "gas": 12965
    },
    {
        "name": "maticToTokenSwapOutput",
        "outputs": [{ "type": "uint256", "name": "out" }],
        "inputs": [{ "type": "uint256", "name": "tokens_bought" }, { "type": "uint256", "name": "deadline" }],
        "constant": false,
        "payable": true,
        "type": "function",
        "gas": 50463
    },
    {
        "name": "bnbToTokenSwapOutput",
        "outputs": [{ "type": "uint256", "name": "out" }],
        "inputs": [{ "type": "uint256", "name": "tokens_bought" }, { "type": "uint256", "name": "deadline" }],
        "constant": false,
        "payable": true,
        "type": "function",
        "gas": 50463
    },
    {
        "name": "avaxToTokenSwapOutput",
        "outputs": [{ "type": "uint256", "name": "out" }],
        "inputs": [{ "type": "uint256", "name": "tokens_bought" }, { "type": "uint256", "name": "deadline" }],
        "constant": false,
        "payable": true,
        "type": "function",
        "gas": 50463
    },
    {
        "name": "maticToTokenTransferOutput",
        "outputs": [{ "type": "uint256", "name": "out" }],
        "inputs": [
            { "type": "uint256", "name": "tokens_bought" },
            { "type": "uint256", "name": "deadline" },
            { "type": "address", "name": "recipient" }
        ],
        "constant": false,
        "payable": true,
        "type": "function",
        "gas": 50671
    },
    {
        "name": "bnbToTokenTransferOutput",
        "outputs": [{ "type": "uint256", "name": "out" }],
        "inputs": [
            { "type": "uint256", "name": "tokens_bought" },
            { "type": "uint256", "name": "deadline" },
            { "type": "address", "name": "recipient" }
        ],
        "constant": false,
        "payable": true,
        "type": "function",
        "gas": 50671
    },
    {
        "name": "avaxToTokenTransferOutput",
        "outputs": [{ "type": "uint256", "name": "out" }],
        "inputs": [
            { "type": "uint256", "name": "tokens_bought" },
            { "type": "uint256", "name": "deadline" },
            { "type": "address", "name": "recipient" }
        ],
        "constant": false,
        "payable": true,
        "type": "function",
        "gas": 50671
    },
    {
        "name": "tokenToMaticSwapInput",
        "outputs": [{ "type": "uint256", "name": "out" }],
        "inputs": [
            { "type": "uint256", "name": "tokens_sold" },
            { "type": "uint256", "name": "min_matic" },
            { "type": "uint256", "name": "deadline" }
        ],
        "constant": false,
        "payable": false,
        "type": "function",
        "gas": 47503
    },
    {
        "name": "tokenToBnbSwapInput",
        "outputs": [{ "type": "uint256", "name": "out" }],
        "inputs": [
            { "type": "uint256", "name": "tokens_sold" },
            { "type": "uint256", "name": "min_bnb" },
            { "type": "uint256", "name": "deadline" }
        ],
        "constant": false,
        "payable": false,
        "type": "function",
        "gas": 47503
    },
    {
        "name": "tokenToAvaxSwapInput",
        "outputs": [{ "type": "uint256", "name": "out" }],
        "inputs": [
            { "type": "uint256", "name": "tokens_sold" },
            { "type": "uint256", "name": "min_avax" },
            { "type": "uint256", "name": "deadline" }
        ],
        "constant": false,
        "payable": false,
        "type": "function",
        "gas": 47503
    },
    {
        "name": "tokenToMaticTransferInput",
        "outputs": [{ "type": "uint256", "name": "out" }],
        "inputs": [
            { "type": "uint256", "name": "tokens_sold" },
            { "type": "uint256", "name": "min_matic" },
            { "type": "uint256", "name": "deadline" },
            { "type": "address", "name": "recipient" }
        ],
        "constant": false,
        "payable": false,
        "type": "function",
        "gas": 47712
    },
    {
        "name": "tokenToBnbTransferInput",
        "outputs": [{ "type": "uint256", "name": "out" }],
        "inputs": [
            { "type": "uint256", "name": "tokens_sold" },
            { "type": "uint256", "name": "min_bnb" },
            { "type": "uint256", "name": "deadline" },
            { "type": "address", "name": "recipient" }
        ],
        "constant": false,
        "payable": false,
        "type": "function",
        "gas": 47712
    },
    {
        "name": "tokenToAvaxTransferInput",
        "outputs": [{ "type": "uint256", "name": "out" }],
        "inputs": [
            { "type": "uint256", "name": "tokens_sold" },
            { "type": "uint256", "name": "min_avax" },
            { "type": "uint256", "name": "deadline" },
            { "type": "address", "name": "recipient" }
        ],
        "constant": false,
        "payable": false,
        "type": "function",
        "gas": 47712
    },
    {
        "name": "tokenToMaticSwapOutput",
        "outputs": [{ "type": "uint256", "name": "out" }],
        "inputs": [
            { "type": "uint256", "name": "matic_bought" },
            { "type": "uint256", "name": "max_tokens" },
            { "type": "uint256", "name": "deadline" }
        ],
        "constant": false,
        "payable": false,
        "type": "function",
        "gas": 50175
    },
    {
        "name": "tokenToBnbSwapOutput",
        "outputs": [{ "type": "uint256", "name": "out" }],
        "inputs": [
            { "type": "uint256", "name": "bnb_bought" },
            { "type": "uint256", "name": "max_tokens" },
            { "type": "uint256", "name": "deadline" }
        ],
        "constant": false,
        "payable": false,
        "type": "function",
        "gas": 50175
    },
    {
        "name": "tokenToAvaxSwapOutput",
        "outputs": [{ "type": "uint256", "name": "out" }],
        "inputs": [
            { "type": "uint256", "name": "avax_bought" },
            { "type": "uint256", "name": "max_tokens" },
            { "type": "uint256", "name": "deadline" }
        ],
        "constant": false,
        "payable": false,
        "type": "function",
        "gas": 50175
    },
    {
        "name": "tokenToMaticTransferOutput",
        "outputs": [{ "type": "uint256", "name": "out" }],
        "inputs": [
            { "type": "uint256", "name": "matic_bought" },
            { "type": "uint256", "name": "max_tokens" },
            { "type": "uint256", "name": "deadline" },
            { "type": "address", "name": "recipient" }
        ],
        "constant": false,
        "payable": false,
        "type": "function",
        "gas": 50384
    },
    {
        "name": "tokenToBnbTransferOutput",
        "outputs": [{ "type": "uint256", "name": "out" }],
        "inputs": [
            { "type": "uint256", "name": "bnb_bought" },
            { "type": "uint256", "name": "max_tokens" },
            { "type": "uint256", "name": "deadline" },
            { "type": "address", "name": "recipient" }
        ],
        "constant": false,
        "payable": false,
        "type": "function",
        "gas": 50384
    },
    {
        "name": "tokenToAvaxTransferOutput",
        "outputs": [{ "type": "uint256", "name": "out" }],
        "inputs": [
            { "type": "uint256", "name": "avax_bought" },
            { "type": "uint256", "name": "max_tokens" },
            { "type": "uint256", "name": "deadline" },
            { "type": "address", "name": "recipient" }
        ],
        "constant": false,
        "payable": false,
        "type": "function",
        "gas": 50384
    },
    {
        "name": "tokenToTokenSwapInput",
        "outputs": [{ "type": "uint256", "name": "out" }],
        "inputs": [
            { "type": "uint256", "name": "tokens_sold" },
            { "type": "uint256", "name": "min_tokens_bought" },
            { "type": "uint256", "name": "min_matic_bought" },
            { "type": "uint256", "name": "min_bnb_bought" },
            { "type": "uint256", "name": "min_avax_bought" },
            { "type": "uint256", "name": "deadline" },
            { "type": "address", "name": "token_addr" }
        ],
        "constant": false,
        "payable": false,
        "type": "function",
        "gas": 51007
    },
    {
        "name": "tokenToTokenTransferInput",
        "outputs": [{ "type": "uint256", "name": "out" }],
        "inputs": [
            { "type": "uint256", "name": "tokens_sold" },
            { "type": "uint256", "name": "min_tokens_bought" },
            { "type": "uint256", "name": "min_matic_bought" },
            { "type": "uint256", "name": "min_bnb_bought" },
            { "type": "uint256", "name": "min_avax_bought" },
            { "type": "uint256", "name": "deadline" },
            { "type": "address", "name": "recipient" },
            { "type": "address", "name": "token_addr" }
        ],
        "constant": false,
        "payable": false,
        "type": "function",
        "gas": 51098
    },
    {
        "name": "tokenToTokenSwapOutput",
        "outputs": [{ "type": "uint256", "name": "out" }],
        "inputs": [
            { "type": "uint256", "name": "tokens_bought" },
            { "type": "uint256", "name": "max_tokens_sold" },
            { "type": "uint256", "name": "max_matic_sold" },
            { "type": "uint256", "name": "max_bnb_sold" },
            { "type": "uint256", "name": "max_avax_sold" },
            { "type": "uint256", "name": "deadline" },
            { "type": "address", "name": "token_addr" }
        ],
        "constant": false,
        "payable": false,
        "type": "function",
        "gas": 54928
    },
    {
        "name": "tokenToTokenTransferOutput",
        "outputs": [{ "type": "uint256", "name": "out" }],
        "inputs": [
            { "type": "uint256", "name": "tokens_bought" },
            { "type": "uint256", "name": "max_tokens_sold" },
            { "type": "uint256", "name": "max_matic_sold" },
            { "type": "uint256", "name": "max_bnb_sold" },
            { "type": "uint256", "name": "max_avax_sold" },
            { "type": "uint256", "name": "deadline" },
            { "type": "address", "name": "recipient" },
            { "type": "address", "name": "token_addr" }
        ],
        "constant": false,
        "payable": false,
        "type": "function",
        "gas": 55019
    },
    {
        "name": "tokenToExchangeSwapInput",
        "outputs": [{ "type": "uint256", "name": "out" }],
        "inputs": [
            { "type": "uint256", "name": "tokens_sold" },
            { "type": "uint256", "name": "min_tokens_bought" },
            { "type": "uint256", "name": "min_matic_bought" },
            { "type": "uint256", "name": "min_bnb_bought" },
            { "type": "uint256", "name": "min_avax_bought" },
            { "type": "uint256", "name": "deadline" },
            { "type": "address", "name": "exchange_addr" }
        ],
        "constant": false,
        "payable": false,
        "type": "function",
        "gas": 49342
    },
    {
        "name": "tokenToExchangeTransferInput",
        "outputs": [{ "type": "uint256", "name": "out" }],
        "inputs": [
            { "type": "uint256", "name": "tokens_sold" },
            { "type": "uint256", "name": "min_tokens_bought" },
            { "type": "uint256", "name": "min_matic_bought" },
            { "type": "uint256", "name": "min_bnb_bought" },
            { "type": "uint256", "name": "min_avax_bought" },
            { "type": "uint256", "name": "deadline" },
            { "type": "address", "name": "recipient" },
            { "type": "address", "name": "exchange_addr" }
        ],
        "constant": false,
        "payable": false,
        "type": "function",
        "gas": 49532
    },
    {
        "name": "tokenToExchangeSwapOutput",
        "outputs": [{ "type": "uint256", "name": "out" }],
        "inputs": [
            { "type": "uint256", "name": "tokens_bought" },
            { "type": "uint256", "name": "max_tokens_sold" },
            { "type": "uint256", "name": "max_matic_sold" },
            { "type": "uint256", "name": "max_bnb_sold" },
            { "type": "uint256", "name": "max_avax_sold" },
            { "type": "uint256", "name": "deadline" },
            { "type": "address", "name": "exchange_addr" }
        ],
        "constant": false,
        "payable": false,
        "type": "function",
        "gas": 53233
    },
    {
        "name": "tokenToExchangeTransferOutput",
        "outputs": [{ "type": "uint256", "name": "out" }],
        "inputs": [
            { "type": "uint256", "name": "tokens_bought" },
            { "type": "uint256", "name": "max_tokens_sold" },
            { "type": "uint256", "name": "max_matic_sold" },
            { "type": "uint256", "name": "max_bnb_sold" },
            { "type": "uint256", "name": "max_avax_sold" },
            { "type": "uint256", "name": "deadline" },
            { "type": "address", "name": "recipient" },
            { "type": "address", "name": "exchange_addr" }
        ],
        "constant": false,
        "payable": false,
        "type": "function",
        "gas": 53423
    },
    {
        "name": "getMaticToTokenInputPrice",
        "outputs": [{ "type": "uint256", "name": "out" }],
        "inputs": [{ "type": "uint256", "name": "matic_sold" }],
        "constant": true,
        "payable": false,
        "type": "function",
        "gas": 5542
    },
    {
        "name": "getBnbToTokenInputPrice",
        "outputs": [{ "type": "uint256", "name": "out" }],
        "inputs": [{ "type": "uint256", "name": "bnb_sold" }],
        "constant": true,
        "payable": false,
        "type": "function",
        "gas": 5542
    },
    {
        "name": "getAvaxToTokenInputPrice",
        "outputs": [{ "type": "uint256", "name": "out" }],
        "inputs": [{ "type": "uint256", "name": "avax_sold" }],
        "constant": true,
        "payable": false,
        "type": "function",
        "gas": 5542
    },
    {
        "name": "getMaticToTokenOutputPrice",
        "outputs": [{ "type": "uint256", "name": "out" }],
        "inputs": [{ "type": "uint256", "name": "tokens_bought" }],
        "constant": true,
        "payable": false,
        "type": "function",
        "gas": 6872
    },
    {
        "name": "getBnbToTokenOutputPrice",
        "outputs": [{ "type": "uint256", "name": "out" }],
        "inputs": [{ "type": "uint256", "name": "tokens_bought" }],
        "constant": true,
        "payable": false,
        "type": "function",
        "gas": 6872
    },
    {
        "name": "getAvaxToTokenOutputPrice",
        "outputs": [{ "type": "uint256", "name": "out" }],
        "inputs": [{ "type": "uint256", "name": "tokens_bought" }],
        "constant": true,
        "payable": false,
        "type": "function",
        "gas": 6872
    },
    {
        "name": "getTokenToMaticInputPrice",
        "outputs": [{ "type": "uint256", "name": "out" }],
        "inputs": [{ "type": "uint256", "name": "tokens_sold" }],
        "constant": true,
        "payable": false,
        "type": "function",
        "gas": 5637
    },
    {
        "name": "getTokenToBnbInputPrice",
        "outputs": [{ "type": "uint256", "name": "out" }],
        "inputs": [{ "type": "uint256", "name": "tokens_sold" }],
        "constant": true,
        "payable": false,
        "type": "function",
        "gas": 5637
    },
    {
        "name": "getTokenToAvaxInputPrice",
        "outputs": [{ "type": "uint256", "name": "out" }],
        "inputs": [{ "type": "uint256", "name": "tokens_sold" }],
        "constant": true,
        "payable": false,
        "type": "function",
        "gas": 5637
    },
    {
        "name": "getTokenToMaticOutputPrice",
        "outputs": [{ "type": "uint256", "name": "out" }],
        "inputs": [{ "type": "uint256", "name": "matic_bought" }],
        "constant": true,
        "payable": false,
        "type": "function",
        "gas": 6897
    },
    {
        "name": "getTokenToBnbOutputPrice",
        "outputs": [{ "type": "uint256", "name": "out" }],
        "inputs": [{ "type": "uint256", "name": "bnb_bought" }],
        "constant": true,
        "payable": false,
        "type": "function",
        "gas": 6897
    },
    {
        "name": "getTokenToAvaxOutputPrice",
        "outputs": [{ "type": "uint256", "name": "out" }],
        "inputs": [{ "type": "uint256", "name": "avax_bought" }],
        "constant": true,
        "payable": false,
        "type": "function",
        "gas": 6897
    },
    {
        "name": "tokenAddress",
        "outputs": [{ "type": "address", "name": "out" }],
        "inputs": [],
        "constant": true,
        "payable": false,
        "type": "function",
        "gas": 1413
    },
    {
        "name": "factoryAddress",
        "outputs": [{ "type": "address", "name": "out" }],
        "inputs": [],
        "constant": true,
        "payable": false,
        "type": "function",
        "gas": 1443
    },
    {
        "name": "balanceOf",
        "outputs": [{ "type": "uint256", "name": "out" }],
        "inputs": [{ "type": "address", "name": "_owner" }],
        "constant": true,
        "payable": false,
        "type": "function",
        "gas": 1645
    },
    {
        "name": "transfer",
        "outputs": [{ "type": "bool", "name": "out" }],
        "inputs": [{ "type": "address", "name": "_to" }, { "type": "uint256", "name": "_value" }],
        "constant": false,
        "payable": false,
        "type": "function",
        "gas": 75034
    },
    {
        "name": "transferFrom",
        "outputs": [{ "type": "bool", "name": "out" }],
        "inputs": [
            { "type": "address", "name": "_from" },
            { "type": "address", "name": "_to" },
            { "type": "uint256", "name": "_value" }
        ],
        "constant": false,
        "payable": false,
        "type": "function",
        "gas": 110907
    },
    {
        "name": "approve",
        "outputs": [{ "type": "bool", "name": "out" }],
        "inputs": [{ "type": "address", "name": "_spender" }, { "type": "uint256", "name": "_value" }],
        "constant": false,
        "payable": false,
        "type": "function",
        "gas": 38769
    },
    {
        "name": "allowance",
        "outputs": [{ "type": "uint256", "name": "out" }],
        "inputs": [{ "type": "address", "name": "_owner" }, { "type": "address", "name": "_spender" }],
        "constant": true,
        "payable": false,
        "type": "function",
        "gas": 1925
    },
    {
        "name": "name",
        "outputs": [{ "type": "bytes32", "name": "out" }],
        "inputs": [],
        "constant": true,
        "payable": false,
        "type": "function",
        "gas": 1623
    },
    {
        "name": "symbol",
        "outputs": [{ "type": "bytes32", "name": "out" }],
        "inputs": [],
        "constant": true,
        "payable": false,
        "type": "function",
        "gas": 1653
    },
    {
        "name": "decimals",
        "outputs": [{ "type": "uint256", "name": "out" }],
        "inputs": [],
        "constant": true,
        "payable": false,
        "type": "function",
        "gas": 1683
    },
    {
        "name": "totalSupply",
        "outputs": [{ "type": "uint256", "name": "out" }],
        "inputs": [],
        "constant": true,
        "payable": false,
        "type": "function",
        "gas": 1713
    }
]
