{
  "contractName": "IUniswapExchange",
  "abi": [
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "provider",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "eth_amount",
          "type": "uint256"
        },
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "token_amount",
          "type": "uint256"
        }
      ],
      "name": "AddLiquidity",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "_owner",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "_spender",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "_value",
          "type": "uint256"
        }
      ],
      "name": "Approval",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "buyer",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "tokens_sold",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "eth_bought",
          "type": "uint256"
        }
      ],
      "name": "EthPurchase",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "provider",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "eth_amount",
          "type": "uint256"
        },
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "token_amount",
          "type": "uint256"
        }
      ],
      "name": "RemoveLiquidity",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "buyer",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "eth_sold",
          "type": "uint256"
        },
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "tokens_bought",
          "type": "uint256"
        }
      ],
      "name": "TokenPurchase",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "_from",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "_to",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "_value",
          "type": "uint256"
        }
      ],
      "name": "Transfer",
      "type": "event"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_owner",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_spender",
          "type": "address"
        }
      ],
      "name": "allowance",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_owner",
          "type": "address"
        }
      ],
      "name": "balanceOf",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "decimals",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "factoryAddress",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "eth_sold",
          "type": "uint256"
        }
      ],
      "name": "getEthToTokenInputPrice",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "tokens_bought",
          "type": "uint256"
        }
      ],
      "name": "getEthToTokenOutputPrice",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "tokens_sold",
          "type": "uint256"
        }
      ],
      "name": "getTokenToEthInputPrice",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "eth_bought",
          "type": "uint256"
        }
      ],
      "name": "getTokenToEthOutputPrice",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "name",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "symbol",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "tokenAddress",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "totalSupply",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "token_addr",
          "type": "address"
        }
      ],
      "name": "setup",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "min_liquidity",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "max_tokens",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "deadline",
          "type": "uint256"
        }
      ],
      "name": "addLiquidity",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "min_eth",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "min_tokens",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "deadline",
          "type": "uint256"
        }
      ],
      "name": "removeLiquidity",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "min_tokens",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "deadline",
          "type": "uint256"
        }
      ],
      "name": "ethToTokenSwapInput",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "min_tokens",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "deadline",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "recipient",
          "type": "address"
        }
      ],
      "name": "ethToTokenTransferInput",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "tokens_bought",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "deadline",
          "type": "uint256"
        }
      ],
      "name": "ethToTokenSwapOutput",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "tokens_bought",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "deadline",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "recipient",
          "type": "address"
        }
      ],
      "name": "ethToTokenTransferOutput",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "tokens_sold",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "min_eth",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "deadline",
          "type": "uint256"
        }
      ],
      "name": "tokenToEthSwapInput",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "tokens_sold",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "min_eth",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "deadline",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "recipient",
          "type": "address"
        }
      ],
      "name": "tokenToEthTransferInput",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "eth_bought",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "max_tokens",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "deadline",
          "type": "uint256"
        }
      ],
      "name": "tokenToEthSwapOutput",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "eth_bought",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "max_tokens",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "deadline",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "recipient",
          "type": "address"
        }
      ],
      "name": "tokenToEthTransferOutput",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "tokens_sold",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "min_tokens_bought",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "min_eth_bought",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "deadline",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "token_addr",
          "type": "address"
        }
      ],
      "name": "tokenToTokenSwapInput",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "tokens_sold",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "min_tokens_bought",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "min_eth_bought",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "deadline",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "recipient",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "token_addr",
          "type": "address"
        }
      ],
      "name": "tokenToTokenTransferInput",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "tokens_bought",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "max_tokens_sold",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "max_eth_sold",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "deadline",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "token_addr",
          "type": "address"
        }
      ],
      "name": "tokenToTokenSwapOutput",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "tokens_bought",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "max_tokens_sold",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "max_eth_sold",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "deadline",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "recipient",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "token_addr",
          "type": "address"
        }
      ],
      "name": "tokenToTokenTransferOutput",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "tokens_sold",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "min_tokens_bought",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "min_eth_bought",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "deadline",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "exchange_addr",
          "type": "address"
        }
      ],
      "name": "tokenToExchangeSwapInput",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "tokens_sold",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "min_tokens_bought",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "min_eth_bought",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "deadline",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "recipient",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "exchange_addr",
          "type": "address"
        }
      ],
      "name": "tokenToExchangeTransferInput",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "tokens_bought",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "max_tokens_sold",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "max_eth_sold",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "deadline",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "exchange_addr",
          "type": "address"
        }
      ],
      "name": "tokenToExchangeSwapOutput",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "tokens_bought",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "max_tokens_sold",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "max_eth_sold",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "deadline",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "recipient",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "exchange_addr",
          "type": "address"
        }
      ],
      "name": "tokenToExchangeTransferOutput",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_value",
          "type": "uint256"
        }
      ],
      "name": "transfer",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_from",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_value",
          "type": "uint256"
        }
      ],
      "name": "transferFrom",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_spender",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_value",
          "type": "uint256"
        }
      ],
      "name": "approve",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "metadata": "{\"compiler\":{\"version\":\"0.6.10+commit.00c0fcaf\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"provider\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"eth_amount\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"token_amount\",\"type\":\"uint256\"}],\"name\":\"AddLiquidity\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"buyer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokens_sold\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"eth_bought\",\"type\":\"uint256\"}],\"name\":\"EthPurchase\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"provider\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"eth_amount\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"token_amount\",\"type\":\"uint256\"}],\"name\":\"RemoveLiquidity\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"buyer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"eth_sold\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokens_bought\",\"type\":\"uint256\"}],\"name\":\"TokenPurchase\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"min_liquidity\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"max_tokens\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"addLiquidity\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"min_tokens\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"ethToTokenSwapInput\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokens_bought\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"ethToTokenSwapOutput\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"min_tokens\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"name\":\"ethToTokenTransferInput\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokens_bought\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"name\":\"ethToTokenTransferOutput\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"factoryAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"eth_sold\",\"type\":\"uint256\"}],\"name\":\"getEthToTokenInputPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokens_bought\",\"type\":\"uint256\"}],\"name\":\"getEthToTokenOutputPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokens_sold\",\"type\":\"uint256\"}],\"name\":\"getTokenToEthInputPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"eth_bought\",\"type\":\"uint256\"}],\"name\":\"getTokenToEthOutputPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"min_eth\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"min_tokens\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"removeLiquidity\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token_addr\",\"type\":\"address\"}],\"name\":\"setup\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"tokenAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokens_sold\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"min_eth\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"tokenToEthSwapInput\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"eth_bought\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"max_tokens\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"}],\"name\":\"tokenToEthSwapOutput\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokens_sold\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"min_eth\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"name\":\"tokenToEthTransferInput\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"eth_bought\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"max_tokens\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"}],\"name\":\"tokenToEthTransferOutput\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokens_sold\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"min_tokens_bought\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"min_eth_bought\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"exchange_addr\",\"type\":\"address\"}],\"name\":\"tokenToExchangeSwapInput\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokens_bought\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"max_tokens_sold\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"max_eth_sold\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"exchange_addr\",\"type\":\"address\"}],\"name\":\"tokenToExchangeSwapOutput\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokens_sold\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"min_tokens_bought\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"min_eth_bought\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"exchange_addr\",\"type\":\"address\"}],\"name\":\"tokenToExchangeTransferInput\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokens_bought\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"max_tokens_sold\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"max_eth_sold\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"exchange_addr\",\"type\":\"address\"}],\"name\":\"tokenToExchangeTransferOutput\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokens_sold\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"min_tokens_bought\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"min_eth_bought\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"token_addr\",\"type\":\"address\"}],\"name\":\"tokenToTokenSwapInput\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokens_bought\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"max_tokens_sold\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"max_eth_sold\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"token_addr\",\"type\":\"address\"}],\"name\":\"tokenToTokenSwapOutput\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokens_sold\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"min_tokens_bought\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"min_eth_bought\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token_addr\",\"type\":\"address\"}],\"name\":\"tokenToTokenTransferInput\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokens_bought\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"max_tokens_sold\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"max_eth_sold\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token_addr\",\"type\":\"address\"}],\"name\":\"tokenToTokenTransferOutput\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"project:/contracts/interfaces/IUniswapExchange.sol\":\"IUniswapExchange\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":2000000},\"remappings\":[]},\"sources\":{\"project:/contracts/interfaces/IUniswapExchange.sol\":{\"keccak256\":\"0x89aeabee409906824eb62d5d02e5f0106d46f075784df2b12ab08603ed99302d\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://8da12297140529a1e191d1fb123cd70699b50ffa1f9ff50c0bf52ad21c87c960\",\"dweb:/ipfs/QmS7BzSGu75N9ePSGpS7Xnc54kHKk9qR1g7TP59y4HQazY\"]}},\"version\":1}",
  "bytecode": "0x",
  "deployedBytecode": "0x",
  "immutableReferences": {},
  "sourceMap": "",
  "deployedSourceMap": "",
  "source": "// SPDX-License-Identifier: GPL-3.0\npragma solidity ^0.6.0;\n\n\n// Source: https://github.com/Uniswap/contracts-vyper/blob/master/contracts/uniswap_exchange.vy\n// The fallback function is payable and calls `ethToTokenInput`\ninterface IUniswapExchange\n{\n  // Events\n  event AddLiquidity(address indexed provider, uint indexed eth_amount, uint indexed token_amount);\n  event Approval(address indexed _owner, address indexed _spender, uint _value);\n  event EthPurchase(address indexed buyer, uint indexed tokens_sold, uint eth_bought);\n  event RemoveLiquidity(address indexed provider, uint indexed eth_amount, uint indexed token_amount);\n  event TokenPurchase(address indexed buyer, uint indexed eth_sold, uint indexed tokens_bought);\n  event Transfer(address indexed _from, address indexed _to, uint _value);\n\n  // Read-only\n  function allowance(address _owner, address _spender) external view returns(uint);\n  function balanceOf(address _owner) external view returns(uint);\n  function decimals() external view returns(uint);\n  function factoryAddress() external view returns(address);\n  function getEthToTokenInputPrice(uint eth_sold) external view returns(uint);\n  function getEthToTokenOutputPrice(uint tokens_bought) external view returns(uint);\n  function getTokenToEthInputPrice(uint tokens_sold) external view returns(uint);\n  function getTokenToEthOutputPrice(uint eth_bought) external view returns(uint);\n  function name() external view returns (bytes32);\n  function symbol() external view returns (bytes32);\n  function tokenAddress() external view returns(address);\n  function totalSupply() external view returns(uint);\n\n  // Transactions\n  function setup(\n    address token_addr\n  ) external;\n  function addLiquidity(\n    uint min_liquidity, uint max_tokens, uint deadline\n  ) external payable returns (uint);\n  function removeLiquidity(\n    uint amount, uint min_eth, uint min_tokens, uint deadline\n  ) external returns (uint, uint);\n  function ethToTokenSwapInput(\n    uint min_tokens, uint deadline\n  ) external payable returns (uint);\n  function ethToTokenTransferInput(\n    uint min_tokens, uint deadline, address recipient\n  ) external payable returns(uint);\n  function ethToTokenSwapOutput(\n    uint tokens_bought, uint deadline\n  ) external payable returns(uint);\n  function ethToTokenTransferOutput(\n    uint tokens_bought, uint deadline, address recipient\n  ) external payable returns(uint);\n  function tokenToEthSwapInput(\n    uint tokens_sold, uint min_eth, uint deadline\n  ) external returns(uint);\n  function tokenToEthTransferInput(\n    uint tokens_sold, uint min_eth, uint deadline, address recipient\n  ) external returns(uint);\n  function tokenToEthSwapOutput(\n    uint eth_bought, uint max_tokens, uint deadline\n  ) external returns(uint);\n  function tokenToEthTransferOutput(\n    uint eth_bought, uint max_tokens, uint deadline, address recipient\n  ) external returns(uint);\n  function tokenToTokenSwapInput(\n    uint tokens_sold, uint min_tokens_bought, uint min_eth_bought, uint deadline, address token_addr\n  ) external returns(uint);\n  function tokenToTokenTransferInput(\n    uint tokens_sold, uint min_tokens_bought, uint min_eth_bought, uint deadline, address recipient, address token_addr\n  ) external returns(uint);\n  function tokenToTokenSwapOutput(\n    uint tokens_bought, uint max_tokens_sold, uint max_eth_sold, uint deadline, address token_addr\n  ) external returns(uint);\n  function tokenToTokenTransferOutput(\n    uint tokens_bought, uint max_tokens_sold, uint max_eth_sold, uint deadline, address recipient, address token_addr\n  ) external returns(uint);\n  function tokenToExchangeSwapInput(\n    uint tokens_sold, uint min_tokens_bought, uint min_eth_bought, uint deadline, address exchange_addr\n  ) external returns(uint);\n  function tokenToExchangeTransferInput(\n    uint tokens_sold, uint min_tokens_bought, uint min_eth_bought, uint deadline, address recipient, address exchange_addr\n  ) external returns(uint);\n  function tokenToExchangeSwapOutput(\n    uint tokens_bought, uint max_tokens_sold, uint max_eth_sold, uint deadline, address exchange_addr\n  ) external returns(uint);\n  function tokenToExchangeTransferOutput(\n    uint tokens_bought, uint max_tokens_sold, uint max_eth_sold, uint deadline, address recipient, address exchange_addr\n  ) external returns(uint);\n  function transfer(\n    address _to, uint _value\n  ) external returns(bool);\n  function transferFrom(\n    address _from, address _to, uint _value\n  ) external returns(bool);\n  function approve(\n    address _spender, uint _value\n  ) external returns(bool);\n}\n",
  "sourcePath": "/home/circleci/repo/contracts/interfaces/IUniswapExchange.sol",
  "ast": {
    "absolutePath": "project:/contracts/interfaces/IUniswapExchange.sol",
    "exportedSymbols": {
      "IUniswapExchange": [
        2192
      ]
    },
    "id": 2193,
    "license": "GPL-3.0",
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 1793,
        "literals": [
          "solidity",
          "^",
          "0.6",
          ".0"
        ],
        "nodeType": "PragmaDirective",
        "src": "36:23:9"
      },
      {
        "abstract": false,
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "interface",
        "documentation": null,
        "fullyImplemented": false,
        "id": 2192,
        "linearizedBaseContracts": [
          2192
        ],
        "name": "IUniswapExchange",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "anonymous": false,
            "documentation": null,
            "id": 1801,
            "name": "AddLiquidity",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 1800,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1795,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "provider",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1801,
                  "src": "284:24:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1794,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "284:7:9",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1797,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "eth_amount",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1801,
                  "src": "310:23:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1796,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "310:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1799,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "token_amount",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1801,
                  "src": "335:25:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1798,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "335:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "283:78:9"
            },
            "src": "265:97:9"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 1809,
            "name": "Approval",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 1808,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1803,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "_owner",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1809,
                  "src": "380:22:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1802,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "380:7:9",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1805,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "_spender",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1809,
                  "src": "404:24:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1804,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "404:7:9",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1807,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "_value",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1809,
                  "src": "430:11:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1806,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "430:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "379:63:9"
            },
            "src": "365:78:9"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 1817,
            "name": "EthPurchase",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 1816,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1811,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "buyer",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1817,
                  "src": "464:21:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1810,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "464:7:9",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1813,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "tokens_sold",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1817,
                  "src": "487:24:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1812,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "487:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1815,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "eth_bought",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1817,
                  "src": "513:15:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1814,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "513:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "463:66:9"
            },
            "src": "446:84:9"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 1825,
            "name": "RemoveLiquidity",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 1824,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1819,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "provider",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1825,
                  "src": "555:24:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1818,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "555:7:9",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1821,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "eth_amount",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1825,
                  "src": "581:23:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1820,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "581:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1823,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "token_amount",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1825,
                  "src": "606:25:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1822,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "606:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "554:78:9"
            },
            "src": "533:100:9"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 1833,
            "name": "TokenPurchase",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 1832,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1827,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "buyer",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1833,
                  "src": "656:21:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1826,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "656:7:9",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1829,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "eth_sold",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1833,
                  "src": "679:21:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1828,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "679:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1831,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "tokens_bought",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1833,
                  "src": "702:26:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1830,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "702:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "655:74:9"
            },
            "src": "636:94:9"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 1841,
            "name": "Transfer",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 1840,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1835,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "_from",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1841,
                  "src": "748:21:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1834,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "748:7:9",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1837,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "_to",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1841,
                  "src": "771:19:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1836,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "771:7:9",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1839,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "_value",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1841,
                  "src": "792:11:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1838,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "792:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "747:57:9"
            },
            "src": "733:72:9"
          },
          {
            "body": null,
            "documentation": null,
            "functionSelector": "dd62ed3e",
            "id": 1850,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "allowance",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 1846,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1843,
                  "mutability": "mutable",
                  "name": "_owner",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1850,
                  "src": "843:14:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1842,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "843:7:9",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1845,
                  "mutability": "mutable",
                  "name": "_spender",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1850,
                  "src": "859:16:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1844,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "859:7:9",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "842:34:9"
            },
            "returnParameters": {
              "id": 1849,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1848,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1850,
                  "src": "899:4:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1847,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "899:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "898:6:9"
            },
            "scope": 2192,
            "src": "824:81:9",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "functionSelector": "70a08231",
            "id": 1857,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "balanceOf",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 1853,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1852,
                  "mutability": "mutable",
                  "name": "_owner",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1857,
                  "src": "927:14:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1851,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "927:7:9",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "926:16:9"
            },
            "returnParameters": {
              "id": 1856,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1855,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1857,
                  "src": "965:4:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1854,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "965:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "964:6:9"
            },
            "scope": 2192,
            "src": "908:63:9",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "functionSelector": "313ce567",
            "id": 1862,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "decimals",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 1858,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "991:2:9"
            },
            "returnParameters": {
              "id": 1861,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1860,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1862,
                  "src": "1016:4:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1859,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1016:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1015:6:9"
            },
            "scope": 2192,
            "src": "974:48:9",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "functionSelector": "966dae0e",
            "id": 1867,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "factoryAddress",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 1863,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1048:2:9"
            },
            "returnParameters": {
              "id": 1866,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1865,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1867,
                  "src": "1073:7:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1864,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1073:7:9",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1072:9:9"
            },
            "scope": 2192,
            "src": "1025:57:9",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "functionSelector": "cd7724c3",
            "id": 1874,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getEthToTokenInputPrice",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 1870,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1869,
                  "mutability": "mutable",
                  "name": "eth_sold",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1874,
                  "src": "1118:13:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1868,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1118:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1117:15:9"
            },
            "returnParameters": {
              "id": 1873,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1872,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1874,
                  "src": "1155:4:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1871,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1155:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1154:6:9"
            },
            "scope": 2192,
            "src": "1085:76:9",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "functionSelector": "59e94862",
            "id": 1881,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getEthToTokenOutputPrice",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 1877,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1876,
                  "mutability": "mutable",
                  "name": "tokens_bought",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1881,
                  "src": "1198:18:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1875,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1198:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1197:20:9"
            },
            "returnParameters": {
              "id": 1880,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1879,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1881,
                  "src": "1240:4:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1878,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1240:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1239:6:9"
            },
            "scope": 2192,
            "src": "1164:82:9",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "functionSelector": "95b68fe7",
            "id": 1888,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getTokenToEthInputPrice",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 1884,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1883,
                  "mutability": "mutable",
                  "name": "tokens_sold",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1888,
                  "src": "1282:16:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1882,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1282:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1281:18:9"
            },
            "returnParameters": {
              "id": 1887,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1886,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1888,
                  "src": "1322:4:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1885,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1322:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1321:6:9"
            },
            "scope": 2192,
            "src": "1249:79:9",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "functionSelector": "2640f62c",
            "id": 1895,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getTokenToEthOutputPrice",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 1891,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1890,
                  "mutability": "mutable",
                  "name": "eth_bought",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1895,
                  "src": "1365:15:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1889,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1365:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1364:17:9"
            },
            "returnParameters": {
              "id": 1894,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1893,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1895,
                  "src": "1404:4:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1892,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1404:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1403:6:9"
            },
            "scope": 2192,
            "src": "1331:79:9",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "functionSelector": "06fdde03",
            "id": 1900,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "name",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 1896,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1426:2:9"
            },
            "returnParameters": {
              "id": 1899,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1898,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1900,
                  "src": "1452:7:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1897,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1452:7:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1451:9:9"
            },
            "scope": 2192,
            "src": "1413:48:9",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "functionSelector": "95d89b41",
            "id": 1905,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "symbol",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 1901,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1479:2:9"
            },
            "returnParameters": {
              "id": 1904,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1903,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1905,
                  "src": "1505:7:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1902,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1505:7:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1504:9:9"
            },
            "scope": 2192,
            "src": "1464:50:9",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "functionSelector": "9d76ea58",
            "id": 1910,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "tokenAddress",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 1906,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1538:2:9"
            },
            "returnParameters": {
              "id": 1909,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1908,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1910,
                  "src": "1563:7:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1907,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1563:7:9",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1562:9:9"
            },
            "scope": 2192,
            "src": "1517:55:9",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "functionSelector": "18160ddd",
            "id": 1915,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "totalSupply",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 1911,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1595:2:9"
            },
            "returnParameters": {
              "id": 1914,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1913,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1915,
                  "src": "1620:4:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1912,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1620:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1619:6:9"
            },
            "scope": 2192,
            "src": "1575:51:9",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "functionSelector": "66d38203",
            "id": 1920,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "setup",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 1918,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1917,
                  "mutability": "mutable",
                  "name": "token_addr",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1920,
                  "src": "1668:18:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1916,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1668:7:9",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1662:28:9"
            },
            "returnParameters": {
              "id": 1919,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1699:0:9"
            },
            "scope": 2192,
            "src": "1648:52:9",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "functionSelector": "422f1043",
            "id": 1931,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "addLiquidity",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 1927,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1922,
                  "mutability": "mutable",
                  "name": "min_liquidity",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1931,
                  "src": "1730:18:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1921,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1730:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1924,
                  "mutability": "mutable",
                  "name": "max_tokens",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1931,
                  "src": "1750:15:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1923,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1750:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1926,
                  "mutability": "mutable",
                  "name": "deadline",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1931,
                  "src": "1767:13:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1925,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1767:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1724:60:9"
            },
            "returnParameters": {
              "id": 1930,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1929,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1931,
                  "src": "1811:4:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1928,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1811:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1810:6:9"
            },
            "scope": 2192,
            "src": "1703:114:9",
            "stateMutability": "payable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "functionSelector": "f88bf15a",
            "id": 1946,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "removeLiquidity",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 1940,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1933,
                  "mutability": "mutable",
                  "name": "amount",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1946,
                  "src": "1850:11:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1932,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1850:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1935,
                  "mutability": "mutable",
                  "name": "min_eth",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1946,
                  "src": "1863:12:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1934,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1863:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1937,
                  "mutability": "mutable",
                  "name": "min_tokens",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1946,
                  "src": "1877:15:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1936,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1877:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1939,
                  "mutability": "mutable",
                  "name": "deadline",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1946,
                  "src": "1894:13:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1938,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1894:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1844:67:9"
            },
            "returnParameters": {
              "id": 1945,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1942,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1946,
                  "src": "1930:4:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1941,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1930:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1944,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1946,
                  "src": "1936:4:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1943,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1936:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1929:12:9"
            },
            "scope": 2192,
            "src": "1820:122:9",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "functionSelector": "f39b5b9b",
            "id": 1955,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "ethToTokenSwapInput",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 1951,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1948,
                  "mutability": "mutable",
                  "name": "min_tokens",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1955,
                  "src": "1979:15:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1947,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1979:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1950,
                  "mutability": "mutable",
                  "name": "deadline",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1955,
                  "src": "1996:13:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1949,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1996:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1973:40:9"
            },
            "returnParameters": {
              "id": 1954,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1953,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1955,
                  "src": "2040:4:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1952,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "2040:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2039:6:9"
            },
            "scope": 2192,
            "src": "1945:101:9",
            "stateMutability": "payable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "functionSelector": "ad65d76d",
            "id": 1966,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "ethToTokenTransferInput",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 1962,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1957,
                  "mutability": "mutable",
                  "name": "min_tokens",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1966,
                  "src": "2087:15:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1956,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "2087:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1959,
                  "mutability": "mutable",
                  "name": "deadline",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1966,
                  "src": "2104:13:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1958,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "2104:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1961,
                  "mutability": "mutable",
                  "name": "recipient",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1966,
                  "src": "2119:17:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1960,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2119:7:9",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2081:59:9"
            },
            "returnParameters": {
              "id": 1965,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1964,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1966,
                  "src": "2166:4:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1963,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "2166:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2165:6:9"
            },
            "scope": 2192,
            "src": "2049:123:9",
            "stateMutability": "payable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "functionSelector": "6b1d4db7",
            "id": 1975,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "ethToTokenSwapOutput",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 1971,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1968,
                  "mutability": "mutable",
                  "name": "tokens_bought",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1975,
                  "src": "2210:18:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1967,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "2210:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1970,
                  "mutability": "mutable",
                  "name": "deadline",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1975,
                  "src": "2230:13:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1969,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "2230:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2204:43:9"
            },
            "returnParameters": {
              "id": 1974,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1973,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1975,
                  "src": "2273:4:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1972,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "2273:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2272:6:9"
            },
            "scope": 2192,
            "src": "2175:104:9",
            "stateMutability": "payable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "functionSelector": "0b573638",
            "id": 1986,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "ethToTokenTransferOutput",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 1982,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1977,
                  "mutability": "mutable",
                  "name": "tokens_bought",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1986,
                  "src": "2321:18:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1976,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "2321:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1979,
                  "mutability": "mutable",
                  "name": "deadline",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1986,
                  "src": "2341:13:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1978,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "2341:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1981,
                  "mutability": "mutable",
                  "name": "recipient",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1986,
                  "src": "2356:17:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1980,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2356:7:9",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2315:62:9"
            },
            "returnParameters": {
              "id": 1985,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1984,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1986,
                  "src": "2403:4:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1983,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "2403:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2402:6:9"
            },
            "scope": 2192,
            "src": "2282:127:9",
            "stateMutability": "payable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "functionSelector": "95e3c50b",
            "id": 1997,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "tokenToEthSwapInput",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 1993,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1988,
                  "mutability": "mutable",
                  "name": "tokens_sold",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1997,
                  "src": "2446:16:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1987,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "2446:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1990,
                  "mutability": "mutable",
                  "name": "min_eth",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1997,
                  "src": "2464:12:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1989,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "2464:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1992,
                  "mutability": "mutable",
                  "name": "deadline",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1997,
                  "src": "2478:13:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1991,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "2478:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2440:55:9"
            },
            "returnParameters": {
              "id": 1996,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1995,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1997,
                  "src": "2513:4:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1994,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "2513:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2512:6:9"
            },
            "scope": 2192,
            "src": "2412:107:9",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "functionSelector": "7237e031",
            "id": 2010,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "tokenToEthTransferInput",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 2006,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1999,
                  "mutability": "mutable",
                  "name": "tokens_sold",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 2010,
                  "src": "2560:16:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1998,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "2560:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2001,
                  "mutability": "mutable",
                  "name": "min_eth",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 2010,
                  "src": "2578:12:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2000,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "2578:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2003,
                  "mutability": "mutable",
                  "name": "deadline",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 2010,
                  "src": "2592:13:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2002,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "2592:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2005,
                  "mutability": "mutable",
                  "name": "recipient",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 2010,
                  "src": "2607:17:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2004,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2607:7:9",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2554:74:9"
            },
            "returnParameters": {
              "id": 2009,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2008,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 2010,
                  "src": "2646:4:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2007,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "2646:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2645:6:9"
            },
            "scope": 2192,
            "src": "2522:130:9",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "functionSelector": "013efd8b",
            "id": 2021,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "tokenToEthSwapOutput",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 2017,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2012,
                  "mutability": "mutable",
                  "name": "eth_bought",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 2021,
                  "src": "2690:15:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2011,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "2690:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2014,
                  "mutability": "mutable",
                  "name": "max_tokens",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 2021,
                  "src": "2707:15:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2013,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "2707:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2016,
                  "mutability": "mutable",
                  "name": "deadline",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 2021,
                  "src": "2724:13:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2015,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "2724:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2684:57:9"
            },
            "returnParameters": {
              "id": 2020,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2019,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 2021,
                  "src": "2759:4:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2018,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "2759:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2758:6:9"
            },
            "scope": 2192,
            "src": "2655:110:9",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "functionSelector": "d4e4841d",
            "id": 2034,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "tokenToEthTransferOutput",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 2030,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2023,
                  "mutability": "mutable",
                  "name": "eth_bought",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 2034,
                  "src": "2807:15:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2022,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "2807:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2025,
                  "mutability": "mutable",
                  "name": "max_tokens",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 2034,
                  "src": "2824:15:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2024,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "2824:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2027,
                  "mutability": "mutable",
                  "name": "deadline",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 2034,
                  "src": "2841:13:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2026,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "2841:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2029,
                  "mutability": "mutable",
                  "name": "recipient",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 2034,
                  "src": "2856:17:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2028,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2856:7:9",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2801:76:9"
            },
            "returnParameters": {
              "id": 2033,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2032,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 2034,
                  "src": "2895:4:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2031,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "2895:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2894:6:9"
            },
            "scope": 2192,
            "src": "2768:133:9",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "functionSelector": "ddf7e1a7",
            "id": 2049,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "tokenToTokenSwapInput",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 2045,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2036,
                  "mutability": "mutable",
                  "name": "tokens_sold",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 2049,
                  "src": "2940:16:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2035,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "2940:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2038,
                  "mutability": "mutable",
                  "name": "min_tokens_bought",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 2049,
                  "src": "2958:22:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2037,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "2958:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2040,
                  "mutability": "mutable",
                  "name": "min_eth_bought",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 2049,
                  "src": "2982:19:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2039,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "2982:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2042,
                  "mutability": "mutable",
                  "name": "deadline",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 2049,
                  "src": "3003:13:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2041,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3003:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2044,
                  "mutability": "mutable",
                  "name": "token_addr",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 2049,
                  "src": "3018:18:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2043,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3018:7:9",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2934:106:9"
            },
            "returnParameters": {
              "id": 2048,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2047,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 2049,
                  "src": "3058:4:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2046,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3058:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3057:6:9"
            },
            "scope": 2192,
            "src": "2904:160:9",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "functionSelector": "f552d91b",
            "id": 2066,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "tokenToTokenTransferInput",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 2062,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2051,
                  "mutability": "mutable",
                  "name": "tokens_sold",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 2066,
                  "src": "3107:16:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2050,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3107:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2053,
                  "mutability": "mutable",
                  "name": "min_tokens_bought",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 2066,
                  "src": "3125:22:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2052,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3125:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2055,
                  "mutability": "mutable",
                  "name": "min_eth_bought",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 2066,
                  "src": "3149:19:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2054,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3149:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2057,
                  "mutability": "mutable",
                  "name": "deadline",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 2066,
                  "src": "3170:13:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2056,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3170:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2059,
                  "mutability": "mutable",
                  "name": "recipient",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 2066,
                  "src": "3185:17:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2058,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3185:7:9",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2061,
                  "mutability": "mutable",
                  "name": "token_addr",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 2066,
                  "src": "3204:18:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2060,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3204:7:9",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3101:125:9"
            },
            "returnParameters": {
              "id": 2065,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2064,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 2066,
                  "src": "3244:4:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2063,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3244:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3243:6:9"
            },
            "scope": 2192,
            "src": "3067:183:9",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "functionSelector": "b040d545",
            "id": 2081,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "tokenToTokenSwapOutput",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 2077,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2068,
                  "mutability": "mutable",
                  "name": "tokens_bought",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 2081,
                  "src": "3290:18:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2067,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3290:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2070,
                  "mutability": "mutable",
                  "name": "max_tokens_sold",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 2081,
                  "src": "3310:20:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2069,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3310:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2072,
                  "mutability": "mutable",
                  "name": "max_eth_sold",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 2081,
                  "src": "3332:17:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2071,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3332:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2074,
                  "mutability": "mutable",
                  "name": "deadline",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 2081,
                  "src": "3351:13:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2073,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3351:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2076,
                  "mutability": "mutable",
                  "name": "token_addr",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 2081,
                  "src": "3366:18:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2075,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3366:7:9",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3284:104:9"
            },
            "returnParameters": {
              "id": 2080,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2079,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 2081,
                  "src": "3406:4:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2078,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3406:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3405:6:9"
            },
            "scope": 2192,
            "src": "3253:159:9",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "functionSelector": "f3c0efe9",
            "id": 2098,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "tokenToTokenTransferOutput",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 2094,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2083,
                  "mutability": "mutable",
                  "name": "tokens_bought",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 2098,
                  "src": "3456:18:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2082,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3456:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2085,
                  "mutability": "mutable",
                  "name": "max_tokens_sold",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 2098,
                  "src": "3476:20:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2084,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3476:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2087,
                  "mutability": "mutable",
                  "name": "max_eth_sold",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 2098,
                  "src": "3498:17:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2086,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3498:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2089,
                  "mutability": "mutable",
                  "name": "deadline",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 2098,
                  "src": "3517:13:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2088,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3517:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2091,
                  "mutability": "mutable",
                  "name": "recipient",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 2098,
                  "src": "3532:17:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2090,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3532:7:9",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2093,
                  "mutability": "mutable",
                  "name": "token_addr",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 2098,
                  "src": "3551:18:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2092,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3551:7:9",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3450:123:9"
            },
            "returnParameters": {
              "id": 2097,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2096,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 2098,
                  "src": "3591:4:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2095,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3591:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3590:6:9"
            },
            "scope": 2192,
            "src": "3415:182:9",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "functionSelector": "b1cb43bf",
            "id": 2113,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "tokenToExchangeSwapInput",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 2109,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2100,
                  "mutability": "mutable",
                  "name": "tokens_sold",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 2113,
                  "src": "3639:16:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2099,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3639:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2102,
                  "mutability": "mutable",
                  "name": "min_tokens_bought",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 2113,
                  "src": "3657:22:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2101,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3657:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2104,
                  "mutability": "mutable",
                  "name": "min_eth_bought",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 2113,
                  "src": "3681:19:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2103,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3681:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2106,
                  "mutability": "mutable",
                  "name": "deadline",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 2113,
                  "src": "3702:13:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2105,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3702:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2108,
                  "mutability": "mutable",
                  "name": "exchange_addr",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 2113,
                  "src": "3717:21:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2107,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3717:7:9",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3633:109:9"
            },
            "returnParameters": {
              "id": 2112,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2111,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 2113,
                  "src": "3760:4:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2110,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3760:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3759:6:9"
            },
            "scope": 2192,
            "src": "3600:166:9",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "functionSelector": "ec384a3e",
            "id": 2130,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "tokenToExchangeTransferInput",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 2126,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2115,
                  "mutability": "mutable",
                  "name": "tokens_sold",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 2130,
                  "src": "3812:16:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2114,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3812:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2117,
                  "mutability": "mutable",
                  "name": "min_tokens_bought",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 2130,
                  "src": "3830:22:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2116,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3830:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2119,
                  "mutability": "mutable",
                  "name": "min_eth_bought",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 2130,
                  "src": "3854:19:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2118,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3854:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2121,
                  "mutability": "mutable",
                  "name": "deadline",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 2130,
                  "src": "3875:13:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2120,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3875:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2123,
                  "mutability": "mutable",
                  "name": "recipient",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 2130,
                  "src": "3890:17:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2122,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3890:7:9",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2125,
                  "mutability": "mutable",
                  "name": "exchange_addr",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 2130,
                  "src": "3909:21:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2124,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3909:7:9",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3806:128:9"
            },
            "returnParameters": {
              "id": 2129,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2128,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 2130,
                  "src": "3952:4:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2127,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "3952:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3951:6:9"
            },
            "scope": 2192,
            "src": "3769:189:9",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "functionSelector": "ea650c7d",
            "id": 2145,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "tokenToExchangeSwapOutput",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 2141,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2132,
                  "mutability": "mutable",
                  "name": "tokens_bought",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 2145,
                  "src": "4001:18:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2131,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "4001:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2134,
                  "mutability": "mutable",
                  "name": "max_tokens_sold",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 2145,
                  "src": "4021:20:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2133,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "4021:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2136,
                  "mutability": "mutable",
                  "name": "max_eth_sold",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 2145,
                  "src": "4043:17:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2135,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "4043:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2138,
                  "mutability": "mutable",
                  "name": "deadline",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 2145,
                  "src": "4062:13:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2137,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "4062:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2140,
                  "mutability": "mutable",
                  "name": "exchange_addr",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 2145,
                  "src": "4077:21:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2139,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "4077:7:9",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3995:107:9"
            },
            "returnParameters": {
              "id": 2144,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2143,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 2145,
                  "src": "4120:4:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2142,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "4120:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4119:6:9"
            },
            "scope": 2192,
            "src": "3961:165:9",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "functionSelector": "981a1327",
            "id": 2162,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "tokenToExchangeTransferOutput",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 2158,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2147,
                  "mutability": "mutable",
                  "name": "tokens_bought",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 2162,
                  "src": "4173:18:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2146,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "4173:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2149,
                  "mutability": "mutable",
                  "name": "max_tokens_sold",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 2162,
                  "src": "4193:20:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2148,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "4193:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2151,
                  "mutability": "mutable",
                  "name": "max_eth_sold",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 2162,
                  "src": "4215:17:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2150,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "4215:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2153,
                  "mutability": "mutable",
                  "name": "deadline",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 2162,
                  "src": "4234:13:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2152,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "4234:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2155,
                  "mutability": "mutable",
                  "name": "recipient",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 2162,
                  "src": "4249:17:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2154,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "4249:7:9",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2157,
                  "mutability": "mutable",
                  "name": "exchange_addr",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 2162,
                  "src": "4268:21:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2156,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "4268:7:9",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4167:126:9"
            },
            "returnParameters": {
              "id": 2161,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2160,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 2162,
                  "src": "4311:4:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2159,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "4311:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4310:6:9"
            },
            "scope": 2192,
            "src": "4129:188:9",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "functionSelector": "a9059cbb",
            "id": 2171,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "transfer",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 2167,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2164,
                  "mutability": "mutable",
                  "name": "_to",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 2171,
                  "src": "4343:11:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2163,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "4343:7:9",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2166,
                  "mutability": "mutable",
                  "name": "_value",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 2171,
                  "src": "4356:11:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2165,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "4356:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4337:34:9"
            },
            "returnParameters": {
              "id": 2170,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2169,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 2171,
                  "src": "4389:4:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 2168,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "4389:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4388:6:9"
            },
            "scope": 2192,
            "src": "4320:75:9",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "functionSelector": "23b872dd",
            "id": 2182,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "transferFrom",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 2178,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2173,
                  "mutability": "mutable",
                  "name": "_from",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 2182,
                  "src": "4425:13:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2172,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "4425:7:9",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2175,
                  "mutability": "mutable",
                  "name": "_to",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 2182,
                  "src": "4440:11:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2174,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "4440:7:9",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2177,
                  "mutability": "mutable",
                  "name": "_value",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 2182,
                  "src": "4453:11:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2176,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "4453:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4419:49:9"
            },
            "returnParameters": {
              "id": 2181,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2180,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 2182,
                  "src": "4486:4:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 2179,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "4486:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4485:6:9"
            },
            "scope": 2192,
            "src": "4398:94:9",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "functionSelector": "095ea7b3",
            "id": 2191,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "approve",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 2187,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2184,
                  "mutability": "mutable",
                  "name": "_spender",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 2191,
                  "src": "4517:16:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2183,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "4517:7:9",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2186,
                  "mutability": "mutable",
                  "name": "_value",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 2191,
                  "src": "4535:11:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2185,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "4535:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4511:39:9"
            },
            "returnParameters": {
              "id": 2190,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2189,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 2191,
                  "src": "4568:4:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 2188,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "4568:4:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4567:6:9"
            },
            "scope": 2192,
            "src": "4495:79:9",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          }
        ],
        "scope": 2193,
        "src": "222:4354:9"
      }
    ],
    "src": "36:4541:9"
  },
  "legacyAST": {
    "attributes": {
      "absolutePath": "project:/contracts/interfaces/IUniswapExchange.sol",
      "exportedSymbols": {
        "IUniswapExchange": [
          2192
        ]
      },
      "license": "GPL-3.0"
    },
    "children": [
      {
        "attributes": {
          "literals": [
            "solidity",
            "^",
            "0.6",
            ".0"
          ]
        },
        "id": 1793,
        "name": "PragmaDirective",
        "src": "36:23:9"
      },
      {
        "attributes": {
          "abstract": false,
          "baseContracts": [
            null
          ],
          "contractDependencies": [
            null
          ],
          "contractKind": "interface",
          "documentation": null,
          "fullyImplemented": false,
          "linearizedBaseContracts": [
            2192
          ],
          "name": "IUniswapExchange",
          "scope": 2193
        },
        "children": [
          {
            "attributes": {
              "anonymous": false,
              "documentation": null,
              "name": "AddLiquidity"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "mutability": "mutable",
                      "name": "provider",
                      "overrides": null,
                      "scope": 1801,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "stateMutability": "nonpayable",
                          "type": "address"
                        },
                        "id": 1794,
                        "name": "ElementaryTypeName",
                        "src": "284:7:9"
                      }
                    ],
                    "id": 1795,
                    "name": "VariableDeclaration",
                    "src": "284:24:9"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "mutability": "mutable",
                      "name": "eth_amount",
                      "overrides": null,
                      "scope": 1801,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 1796,
                        "name": "ElementaryTypeName",
                        "src": "310:4:9"
                      }
                    ],
                    "id": 1797,
                    "name": "VariableDeclaration",
                    "src": "310:23:9"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "mutability": "mutable",
                      "name": "token_amount",
                      "overrides": null,
                      "scope": 1801,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 1798,
                        "name": "ElementaryTypeName",
                        "src": "335:4:9"
                      }
                    ],
                    "id": 1799,
                    "name": "VariableDeclaration",
                    "src": "335:25:9"
                  }
                ],
                "id": 1800,
                "name": "ParameterList",
                "src": "283:78:9"
              }
            ],
            "id": 1801,
            "name": "EventDefinition",
            "src": "265:97:9"
          },
          {
            "attributes": {
              "anonymous": false,
              "documentation": null,
              "name": "Approval"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "mutability": "mutable",
                      "name": "_owner",
                      "overrides": null,
                      "scope": 1809,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "stateMutability": "nonpayable",
                          "type": "address"
                        },
                        "id": 1802,
                        "name": "ElementaryTypeName",
                        "src": "380:7:9"
                      }
                    ],
                    "id": 1803,
                    "name": "VariableDeclaration",
                    "src": "380:22:9"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "mutability": "mutable",
                      "name": "_spender",
                      "overrides": null,
                      "scope": 1809,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "stateMutability": "nonpayable",
                          "type": "address"
                        },
                        "id": 1804,
                        "name": "ElementaryTypeName",
                        "src": "404:7:9"
                      }
                    ],
                    "id": 1805,
                    "name": "VariableDeclaration",
                    "src": "404:24:9"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "mutability": "mutable",
                      "name": "_value",
                      "overrides": null,
                      "scope": 1809,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 1806,
                        "name": "ElementaryTypeName",
                        "src": "430:4:9"
                      }
                    ],
                    "id": 1807,
                    "name": "VariableDeclaration",
                    "src": "430:11:9"
                  }
                ],
                "id": 1808,
                "name": "ParameterList",
                "src": "379:63:9"
              }
            ],
            "id": 1809,
            "name": "EventDefinition",
            "src": "365:78:9"
          },
          {
            "attributes": {
              "anonymous": false,
              "documentation": null,
              "name": "EthPurchase"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "mutability": "mutable",
                      "name": "buyer",
                      "overrides": null,
                      "scope": 1817,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "stateMutability": "nonpayable",
                          "type": "address"
                        },
                        "id": 1810,
                        "name": "ElementaryTypeName",
                        "src": "464:7:9"
                      }
                    ],
                    "id": 1811,
                    "name": "VariableDeclaration",
                    "src": "464:21:9"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "mutability": "mutable",
                      "name": "tokens_sold",
                      "overrides": null,
                      "scope": 1817,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 1812,
                        "name": "ElementaryTypeName",
                        "src": "487:4:9"
                      }
                    ],
                    "id": 1813,
                    "name": "VariableDeclaration",
                    "src": "487:24:9"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "mutability": "mutable",
                      "name": "eth_bought",
                      "overrides": null,
                      "scope": 1817,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 1814,
                        "name": "ElementaryTypeName",
                        "src": "513:4:9"
                      }
                    ],
                    "id": 1815,
                    "name": "VariableDeclaration",
                    "src": "513:15:9"
                  }
                ],
                "id": 1816,
                "name": "ParameterList",
                "src": "463:66:9"
              }
            ],
            "id": 1817,
            "name": "EventDefinition",
            "src": "446:84:9"
          },
          {
            "attributes": {
              "anonymous": false,
              "documentation": null,
              "name": "RemoveLiquidity"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "mutability": "mutable",
                      "name": "provider",
                      "overrides": null,
                      "scope": 1825,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "stateMutability": "nonpayable",
                          "type": "address"
                        },
                        "id": 1818,
                        "name": "ElementaryTypeName",
                        "src": "555:7:9"
                      }
                    ],
                    "id": 1819,
                    "name": "VariableDeclaration",
                    "src": "555:24:9"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "mutability": "mutable",
                      "name": "eth_amount",
                      "overrides": null,
                      "scope": 1825,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 1820,
                        "name": "ElementaryTypeName",
                        "src": "581:4:9"
                      }
                    ],
                    "id": 1821,
                    "name": "VariableDeclaration",
                    "src": "581:23:9"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "mutability": "mutable",
                      "name": "token_amount",
                      "overrides": null,
                      "scope": 1825,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 1822,
                        "name": "ElementaryTypeName",
                        "src": "606:4:9"
                      }
                    ],
                    "id": 1823,
                    "name": "VariableDeclaration",
                    "src": "606:25:9"
                  }
                ],
                "id": 1824,
                "name": "ParameterList",
                "src": "554:78:9"
              }
            ],
            "id": 1825,
            "name": "EventDefinition",
            "src": "533:100:9"
          },
          {
            "attributes": {
              "anonymous": false,
              "documentation": null,
              "name": "TokenPurchase"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "mutability": "mutable",
                      "name": "buyer",
                      "overrides": null,
                      "scope": 1833,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "stateMutability": "nonpayable",
                          "type": "address"
                        },
                        "id": 1826,
                        "name": "ElementaryTypeName",
                        "src": "656:7:9"
                      }
                    ],
                    "id": 1827,
                    "name": "VariableDeclaration",
                    "src": "656:21:9"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "mutability": "mutable",
                      "name": "eth_sold",
                      "overrides": null,
                      "scope": 1833,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 1828,
                        "name": "ElementaryTypeName",
                        "src": "679:4:9"
                      }
                    ],
                    "id": 1829,
                    "name": "VariableDeclaration",
                    "src": "679:21:9"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "mutability": "mutable",
                      "name": "tokens_bought",
                      "overrides": null,
                      "scope": 1833,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 1830,
                        "name": "ElementaryTypeName",
                        "src": "702:4:9"
                      }
                    ],
                    "id": 1831,
                    "name": "VariableDeclaration",
                    "src": "702:26:9"
                  }
                ],
                "id": 1832,
                "name": "ParameterList",
                "src": "655:74:9"
              }
            ],
            "id": 1833,
            "name": "EventDefinition",
            "src": "636:94:9"
          },
          {
            "attributes": {
              "anonymous": false,
              "documentation": null,
              "name": "Transfer"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "mutability": "mutable",
                      "name": "_from",
                      "overrides": null,
                      "scope": 1841,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "stateMutability": "nonpayable",
                          "type": "address"
                        },
                        "id": 1834,
                        "name": "ElementaryTypeName",
                        "src": "748:7:9"
                      }
                    ],
                    "id": 1835,
                    "name": "VariableDeclaration",
                    "src": "748:21:9"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "mutability": "mutable",
                      "name": "_to",
                      "overrides": null,
                      "scope": 1841,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "stateMutability": "nonpayable",
                          "type": "address"
                        },
                        "id": 1836,
                        "name": "ElementaryTypeName",
                        "src": "771:7:9"
                      }
                    ],
                    "id": 1837,
                    "name": "VariableDeclaration",
                    "src": "771:19:9"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "mutability": "mutable",
                      "name": "_value",
                      "overrides": null,
                      "scope": 1841,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 1838,
                        "name": "ElementaryTypeName",
                        "src": "792:4:9"
                      }
                    ],
                    "id": 1839,
                    "name": "VariableDeclaration",
                    "src": "792:11:9"
                  }
                ],
                "id": 1840,
                "name": "ParameterList",
                "src": "747:57:9"
              }
            ],
            "id": 1841,
            "name": "EventDefinition",
            "src": "733:72:9"
          },
          {
            "attributes": {
              "body": null,
              "documentation": null,
              "functionSelector": "dd62ed3e",
              "implemented": false,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "allowance",
              "overrides": null,
              "scope": 2192,
              "stateMutability": "view",
              "virtual": false,
              "visibility": "external"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "_owner",
                      "overrides": null,
                      "scope": 1850,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "stateMutability": "nonpayable",
                          "type": "address"
                        },
                        "id": 1842,
                        "name": "ElementaryTypeName",
                        "src": "843:7:9"
                      }
                    ],
                    "id": 1843,
                    "name": "VariableDeclaration",
                    "src": "843:14:9"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "_spender",
                      "overrides": null,
                      "scope": 1850,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "stateMutability": "nonpayable",
                          "type": "address"
                        },
                        "id": 1844,
                        "name": "ElementaryTypeName",
                        "src": "859:7:9"
                      }
                    ],
                    "id": 1845,
                    "name": "VariableDeclaration",
                    "src": "859:16:9"
                  }
                ],
                "id": 1846,
                "name": "ParameterList",
                "src": "842:34:9"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "overrides": null,
                      "scope": 1850,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 1847,
                        "name": "ElementaryTypeName",
                        "src": "899:4:9"
                      }
                    ],
                    "id": 1848,
                    "name": "VariableDeclaration",
                    "src": "899:4:9"
                  }
                ],
                "id": 1849,
                "name": "ParameterList",
                "src": "898:6:9"
              }
            ],
            "id": 1850,
            "name": "FunctionDefinition",
            "src": "824:81:9"
          },
          {
            "attributes": {
              "body": null,
              "documentation": null,
              "functionSelector": "70a08231",
              "implemented": false,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "balanceOf",
              "overrides": null,
              "scope": 2192,
              "stateMutability": "view",
              "virtual": false,
              "visibility": "external"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "_owner",
                      "overrides": null,
                      "scope": 1857,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "stateMutability": "nonpayable",
                          "type": "address"
                        },
                        "id": 1851,
                        "name": "ElementaryTypeName",
                        "src": "927:7:9"
                      }
                    ],
                    "id": 1852,
                    "name": "VariableDeclaration",
                    "src": "927:14:9"
                  }
                ],
                "id": 1853,
                "name": "ParameterList",
                "src": "926:16:9"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "overrides": null,
                      "scope": 1857,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 1854,
                        "name": "ElementaryTypeName",
                        "src": "965:4:9"
                      }
                    ],
                    "id": 1855,
                    "name": "VariableDeclaration",
                    "src": "965:4:9"
                  }
                ],
                "id": 1856,
                "name": "ParameterList",
                "src": "964:6:9"
              }
            ],
            "id": 1857,
            "name": "FunctionDefinition",
            "src": "908:63:9"
          },
          {
            "attributes": {
              "body": null,
              "documentation": null,
              "functionSelector": "313ce567",
              "implemented": false,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "decimals",
              "overrides": null,
              "scope": 2192,
              "stateMutability": "view",
              "virtual": false,
              "visibility": "external"
            },
            "children": [
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 1858,
                "name": "ParameterList",
                "src": "991:2:9"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "overrides": null,
                      "scope": 1862,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 1859,
                        "name": "ElementaryTypeName",
                        "src": "1016:4:9"
                      }
                    ],
                    "id": 1860,
                    "name": "VariableDeclaration",
                    "src": "1016:4:9"
                  }
                ],
                "id": 1861,
                "name": "ParameterList",
                "src": "1015:6:9"
              }
            ],
            "id": 1862,
            "name": "FunctionDefinition",
            "src": "974:48:9"
          },
          {
            "attributes": {
              "body": null,
              "documentation": null,
              "functionSelector": "966dae0e",
              "implemented": false,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "factoryAddress",
              "overrides": null,
              "scope": 2192,
              "stateMutability": "view",
              "virtual": false,
              "visibility": "external"
            },
            "children": [
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 1863,
                "name": "ParameterList",
                "src": "1048:2:9"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "overrides": null,
                      "scope": 1867,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "stateMutability": "nonpayable",
                          "type": "address"
                        },
                        "id": 1864,
                        "name": "ElementaryTypeName",
                        "src": "1073:7:9"
                      }
                    ],
                    "id": 1865,
                    "name": "VariableDeclaration",
                    "src": "1073:7:9"
                  }
                ],
                "id": 1866,
                "name": "ParameterList",
                "src": "1072:9:9"
              }
            ],
            "id": 1867,
            "name": "FunctionDefinition",
            "src": "1025:57:9"
          },
          {
            "attributes": {
              "body": null,
              "documentation": null,
              "functionSelector": "cd7724c3",
              "implemented": false,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "getEthToTokenInputPrice",
              "overrides": null,
              "scope": 2192,
              "stateMutability": "view",
              "virtual": false,
              "visibility": "external"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "eth_sold",
                      "overrides": null,
                      "scope": 1874,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 1868,
                        "name": "ElementaryTypeName",
                        "src": "1118:4:9"
                      }
                    ],
                    "id": 1869,
                    "name": "VariableDeclaration",
                    "src": "1118:13:9"
                  }
                ],
                "id": 1870,
                "name": "ParameterList",
                "src": "1117:15:9"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "overrides": null,
                      "scope": 1874,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 1871,
                        "name": "ElementaryTypeName",
                        "src": "1155:4:9"
                      }
                    ],
                    "id": 1872,
                    "name": "VariableDeclaration",
                    "src": "1155:4:9"
                  }
                ],
                "id": 1873,
                "name": "ParameterList",
                "src": "1154:6:9"
              }
            ],
            "id": 1874,
            "name": "FunctionDefinition",
            "src": "1085:76:9"
          },
          {
            "attributes": {
              "body": null,
              "documentation": null,
              "functionSelector": "59e94862",
              "implemented": false,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "getEthToTokenOutputPrice",
              "overrides": null,
              "scope": 2192,
              "stateMutability": "view",
              "virtual": false,
              "visibility": "external"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "tokens_bought",
                      "overrides": null,
                      "scope": 1881,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 1875,
                        "name": "ElementaryTypeName",
                        "src": "1198:4:9"
                      }
                    ],
                    "id": 1876,
                    "name": "VariableDeclaration",
                    "src": "1198:18:9"
                  }
                ],
                "id": 1877,
                "name": "ParameterList",
                "src": "1197:20:9"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "overrides": null,
                      "scope": 1881,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 1878,
                        "name": "ElementaryTypeName",
                        "src": "1240:4:9"
                      }
                    ],
                    "id": 1879,
                    "name": "VariableDeclaration",
                    "src": "1240:4:9"
                  }
                ],
                "id": 1880,
                "name": "ParameterList",
                "src": "1239:6:9"
              }
            ],
            "id": 1881,
            "name": "FunctionDefinition",
            "src": "1164:82:9"
          },
          {
            "attributes": {
              "body": null,
              "documentation": null,
              "functionSelector": "95b68fe7",
              "implemented": false,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "getTokenToEthInputPrice",
              "overrides": null,
              "scope": 2192,
              "stateMutability": "view",
              "virtual": false,
              "visibility": "external"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "tokens_sold",
                      "overrides": null,
                      "scope": 1888,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 1882,
                        "name": "ElementaryTypeName",
                        "src": "1282:4:9"
                      }
                    ],
                    "id": 1883,
                    "name": "VariableDeclaration",
                    "src": "1282:16:9"
                  }
                ],
                "id": 1884,
                "name": "ParameterList",
                "src": "1281:18:9"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "overrides": null,
                      "scope": 1888,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 1885,
                        "name": "ElementaryTypeName",
                        "src": "1322:4:9"
                      }
                    ],
                    "id": 1886,
                    "name": "VariableDeclaration",
                    "src": "1322:4:9"
                  }
                ],
                "id": 1887,
                "name": "ParameterList",
                "src": "1321:6:9"
              }
            ],
            "id": 1888,
            "name": "FunctionDefinition",
            "src": "1249:79:9"
          },
          {
            "attributes": {
              "body": null,
              "documentation": null,
              "functionSelector": "2640f62c",
              "implemented": false,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "getTokenToEthOutputPrice",
              "overrides": null,
              "scope": 2192,
              "stateMutability": "view",
              "virtual": false,
              "visibility": "external"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "eth_bought",
                      "overrides": null,
                      "scope": 1895,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 1889,
                        "name": "ElementaryTypeName",
                        "src": "1365:4:9"
                      }
                    ],
                    "id": 1890,
                    "name": "VariableDeclaration",
                    "src": "1365:15:9"
                  }
                ],
                "id": 1891,
                "name": "ParameterList",
                "src": "1364:17:9"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "overrides": null,
                      "scope": 1895,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 1892,
                        "name": "ElementaryTypeName",
                        "src": "1404:4:9"
                      }
                    ],
                    "id": 1893,
                    "name": "VariableDeclaration",
                    "src": "1404:4:9"
                  }
                ],
                "id": 1894,
                "name": "ParameterList",
                "src": "1403:6:9"
              }
            ],
            "id": 1895,
            "name": "FunctionDefinition",
            "src": "1331:79:9"
          },
          {
            "attributes": {
              "body": null,
              "documentation": null,
              "functionSelector": "06fdde03",
              "implemented": false,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "name",
              "overrides": null,
              "scope": 2192,
              "stateMutability": "view",
              "virtual": false,
              "visibility": "external"
            },
            "children": [
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 1896,
                "name": "ParameterList",
                "src": "1426:2:9"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "overrides": null,
                      "scope": 1900,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 1897,
                        "name": "ElementaryTypeName",
                        "src": "1452:7:9"
                      }
                    ],
                    "id": 1898,
                    "name": "VariableDeclaration",
                    "src": "1452:7:9"
                  }
                ],
                "id": 1899,
                "name": "ParameterList",
                "src": "1451:9:9"
              }
            ],
            "id": 1900,
            "name": "FunctionDefinition",
            "src": "1413:48:9"
          },
          {
            "attributes": {
              "body": null,
              "documentation": null,
              "functionSelector": "95d89b41",
              "implemented": false,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "symbol",
              "overrides": null,
              "scope": 2192,
              "stateMutability": "view",
              "virtual": false,
              "visibility": "external"
            },
            "children": [
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 1901,
                "name": "ParameterList",
                "src": "1479:2:9"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "overrides": null,
                      "scope": 1905,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 1902,
                        "name": "ElementaryTypeName",
                        "src": "1505:7:9"
                      }
                    ],
                    "id": 1903,
                    "name": "VariableDeclaration",
                    "src": "1505:7:9"
                  }
                ],
                "id": 1904,
                "name": "ParameterList",
                "src": "1504:9:9"
              }
            ],
            "id": 1905,
            "name": "FunctionDefinition",
            "src": "1464:50:9"
          },
          {
            "attributes": {
              "body": null,
              "documentation": null,
              "functionSelector": "9d76ea58",
              "implemented": false,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "tokenAddress",
              "overrides": null,
              "scope": 2192,
              "stateMutability": "view",
              "virtual": false,
              "visibility": "external"
            },
            "children": [
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 1906,
                "name": "ParameterList",
                "src": "1538:2:9"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "overrides": null,
                      "scope": 1910,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "stateMutability": "nonpayable",
                          "type": "address"
                        },
                        "id": 1907,
                        "name": "ElementaryTypeName",
                        "src": "1563:7:9"
                      }
                    ],
                    "id": 1908,
                    "name": "VariableDeclaration",
                    "src": "1563:7:9"
                  }
                ],
                "id": 1909,
                "name": "ParameterList",
                "src": "1562:9:9"
              }
            ],
            "id": 1910,
            "name": "FunctionDefinition",
            "src": "1517:55:9"
          },
          {
            "attributes": {
              "body": null,
              "documentation": null,
              "functionSelector": "18160ddd",
              "implemented": false,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "totalSupply",
              "overrides": null,
              "scope": 2192,
              "stateMutability": "view",
              "virtual": false,
              "visibility": "external"
            },
            "children": [
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 1911,
                "name": "ParameterList",
                "src": "1595:2:9"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "overrides": null,
                      "scope": 1915,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 1912,
                        "name": "ElementaryTypeName",
                        "src": "1620:4:9"
                      }
                    ],
                    "id": 1913,
                    "name": "VariableDeclaration",
                    "src": "1620:4:9"
                  }
                ],
                "id": 1914,
                "name": "ParameterList",
                "src": "1619:6:9"
              }
            ],
            "id": 1915,
            "name": "FunctionDefinition",
            "src": "1575:51:9"
          },
          {
            "attributes": {
              "body": null,
              "documentation": null,
              "functionSelector": "66d38203",
              "implemented": false,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "setup",
              "overrides": null,
              "scope": 2192,
              "stateMutability": "nonpayable",
              "virtual": false,
              "visibility": "external"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "token_addr",
                      "overrides": null,
                      "scope": 1920,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "stateMutability": "nonpayable",
                          "type": "address"
                        },
                        "id": 1916,
                        "name": "ElementaryTypeName",
                        "src": "1668:7:9"
                      }
                    ],
                    "id": 1917,
                    "name": "VariableDeclaration",
                    "src": "1668:18:9"
                  }
                ],
                "id": 1918,
                "name": "ParameterList",
                "src": "1662:28:9"
              },
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 1919,
                "name": "ParameterList",
                "src": "1699:0:9"
              }
            ],
            "id": 1920,
            "name": "FunctionDefinition",
            "src": "1648:52:9"
          },
          {
            "attributes": {
              "body": null,
              "documentation": null,
              "functionSelector": "422f1043",
              "implemented": false,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "addLiquidity",
              "overrides": null,
              "scope": 2192,
              "stateMutability": "payable",
              "virtual": false,
              "visibility": "external"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "min_liquidity",
                      "overrides": null,
                      "scope": 1931,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 1921,
                        "name": "ElementaryTypeName",
                        "src": "1730:4:9"
                      }
                    ],
                    "id": 1922,
                    "name": "VariableDeclaration",
                    "src": "1730:18:9"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "max_tokens",
                      "overrides": null,
                      "scope": 1931,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 1923,
                        "name": "ElementaryTypeName",
                        "src": "1750:4:9"
                      }
                    ],
                    "id": 1924,
                    "name": "VariableDeclaration",
                    "src": "1750:15:9"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "deadline",
                      "overrides": null,
                      "scope": 1931,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 1925,
                        "name": "ElementaryTypeName",
                        "src": "1767:4:9"
                      }
                    ],
                    "id": 1926,
                    "name": "VariableDeclaration",
                    "src": "1767:13:9"
                  }
                ],
                "id": 1927,
                "name": "ParameterList",
                "src": "1724:60:9"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "overrides": null,
                      "scope": 1931,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 1928,
                        "name": "ElementaryTypeName",
                        "src": "1811:4:9"
                      }
                    ],
                    "id": 1929,
                    "name": "VariableDeclaration",
                    "src": "1811:4:9"
                  }
                ],
                "id": 1930,
                "name": "ParameterList",
                "src": "1810:6:9"
              }
            ],
            "id": 1931,
            "name": "FunctionDefinition",
            "src": "1703:114:9"
          },
          {
            "attributes": {
              "body": null,
              "documentation": null,
              "functionSelector": "f88bf15a",
              "implemented": false,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "removeLiquidity",
              "overrides": null,
              "scope": 2192,
              "stateMutability": "nonpayable",
              "virtual": false,
              "visibility": "external"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "amount",
                      "overrides": null,
                      "scope": 1946,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 1932,
                        "name": "ElementaryTypeName",
                        "src": "1850:4:9"
                      }
                    ],
                    "id": 1933,
                    "name": "VariableDeclaration",
                    "src": "1850:11:9"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "min_eth",
                      "overrides": null,
                      "scope": 1946,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 1934,
                        "name": "ElementaryTypeName",
                        "src": "1863:4:9"
                      }
                    ],
                    "id": 1935,
                    "name": "VariableDeclaration",
                    "src": "1863:12:9"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "min_tokens",
                      "overrides": null,
                      "scope": 1946,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 1936,
                        "name": "ElementaryTypeName",
                        "src": "1877:4:9"
                      }
                    ],
                    "id": 1937,
                    "name": "VariableDeclaration",
                    "src": "1877:15:9"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "deadline",
                      "overrides": null,
                      "scope": 1946,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 1938,
                        "name": "ElementaryTypeName",
                        "src": "1894:4:9"
                      }
                    ],
                    "id": 1939,
                    "name": "VariableDeclaration",
                    "src": "1894:13:9"
                  }
                ],
                "id": 1940,
                "name": "ParameterList",
                "src": "1844:67:9"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "overrides": null,
                      "scope": 1946,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 1941,
                        "name": "ElementaryTypeName",
                        "src": "1930:4:9"
                      }
                    ],
                    "id": 1942,
                    "name": "VariableDeclaration",
                    "src": "1930:4:9"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "overrides": null,
                      "scope": 1946,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 1943,
                        "name": "ElementaryTypeName",
                        "src": "1936:4:9"
                      }
                    ],
                    "id": 1944,
                    "name": "VariableDeclaration",
                    "src": "1936:4:9"
                  }
                ],
                "id": 1945,
                "name": "ParameterList",
                "src": "1929:12:9"
              }
            ],
            "id": 1946,
            "name": "FunctionDefinition",
            "src": "1820:122:9"
          },
          {
            "attributes": {
              "body": null,
              "documentation": null,
              "functionSelector": "f39b5b9b",
              "implemented": false,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "ethToTokenSwapInput",
              "overrides": null,
              "scope": 2192,
              "stateMutability": "payable",
              "virtual": false,
              "visibility": "external"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "min_tokens",
                      "overrides": null,
                      "scope": 1955,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 1947,
                        "name": "ElementaryTypeName",
                        "src": "1979:4:9"
                      }
                    ],
                    "id": 1948,
                    "name": "VariableDeclaration",
                    "src": "1979:15:9"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "deadline",
                      "overrides": null,
                      "scope": 1955,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 1949,
                        "name": "ElementaryTypeName",
                        "src": "1996:4:9"
                      }
                    ],
                    "id": 1950,
                    "name": "VariableDeclaration",
                    "src": "1996:13:9"
                  }
                ],
                "id": 1951,
                "name": "ParameterList",
                "src": "1973:40:9"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "overrides": null,
                      "scope": 1955,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 1952,
                        "name": "ElementaryTypeName",
                        "src": "2040:4:9"
                      }
                    ],
                    "id": 1953,
                    "name": "VariableDeclaration",
                    "src": "2040:4:9"
                  }
                ],
                "id": 1954,
                "name": "ParameterList",
                "src": "2039:6:9"
              }
            ],
            "id": 1955,
            "name": "FunctionDefinition",
            "src": "1945:101:9"
          },
          {
            "attributes": {
              "body": null,
              "documentation": null,
              "functionSelector": "ad65d76d",
              "implemented": false,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "ethToTokenTransferInput",
              "overrides": null,
              "scope": 2192,
              "stateMutability": "payable",
              "virtual": false,
              "visibility": "external"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "min_tokens",
                      "overrides": null,
                      "scope": 1966,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 1956,
                        "name": "ElementaryTypeName",
                        "src": "2087:4:9"
                      }
                    ],
                    "id": 1957,
                    "name": "VariableDeclaration",
                    "src": "2087:15:9"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "deadline",
                      "overrides": null,
                      "scope": 1966,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 1958,
                        "name": "ElementaryTypeName",
                        "src": "2104:4:9"
                      }
                    ],
                    "id": 1959,
                    "name": "VariableDeclaration",
                    "src": "2104:13:9"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "recipient",
                      "overrides": null,
                      "scope": 1966,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "stateMutability": "nonpayable",
                          "type": "address"
                        },
                        "id": 1960,
                        "name": "ElementaryTypeName",
                        "src": "2119:7:9"
                      }
                    ],
                    "id": 1961,
                    "name": "VariableDeclaration",
                    "src": "2119:17:9"
                  }
                ],
                "id": 1962,
                "name": "ParameterList",
                "src": "2081:59:9"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "overrides": null,
                      "scope": 1966,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 1963,
                        "name": "ElementaryTypeName",
                        "src": "2166:4:9"
                      }
                    ],
                    "id": 1964,
                    "name": "VariableDeclaration",
                    "src": "2166:4:9"
                  }
                ],
                "id": 1965,
                "name": "ParameterList",
                "src": "2165:6:9"
              }
            ],
            "id": 1966,
            "name": "FunctionDefinition",
            "src": "2049:123:9"
          },
          {
            "attributes": {
              "body": null,
              "documentation": null,
              "functionSelector": "6b1d4db7",
              "implemented": false,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "ethToTokenSwapOutput",
              "overrides": null,
              "scope": 2192,
              "stateMutability": "payable",
              "virtual": false,
              "visibility": "external"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "tokens_bought",
                      "overrides": null,
                      "scope": 1975,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 1967,
                        "name": "ElementaryTypeName",
                        "src": "2210:4:9"
                      }
                    ],
                    "id": 1968,
                    "name": "VariableDeclaration",
                    "src": "2210:18:9"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "deadline",
                      "overrides": null,
                      "scope": 1975,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 1969,
                        "name": "ElementaryTypeName",
                        "src": "2230:4:9"
                      }
                    ],
                    "id": 1970,
                    "name": "VariableDeclaration",
                    "src": "2230:13:9"
                  }
                ],
                "id": 1971,
                "name": "ParameterList",
                "src": "2204:43:9"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "overrides": null,
                      "scope": 1975,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 1972,
                        "name": "ElementaryTypeName",
                        "src": "2273:4:9"
                      }
                    ],
                    "id": 1973,
                    "name": "VariableDeclaration",
                    "src": "2273:4:9"
                  }
                ],
                "id": 1974,
                "name": "ParameterList",
                "src": "2272:6:9"
              }
            ],
            "id": 1975,
            "name": "FunctionDefinition",
            "src": "2175:104:9"
          },
          {
            "attributes": {
              "body": null,
              "documentation": null,
              "functionSelector": "0b573638",
              "implemented": false,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "ethToTokenTransferOutput",
              "overrides": null,
              "scope": 2192,
              "stateMutability": "payable",
              "virtual": false,
              "visibility": "external"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "tokens_bought",
                      "overrides": null,
                      "scope": 1986,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 1976,
                        "name": "ElementaryTypeName",
                        "src": "2321:4:9"
                      }
                    ],
                    "id": 1977,
                    "name": "VariableDeclaration",
                    "src": "2321:18:9"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "deadline",
                      "overrides": null,
                      "scope": 1986,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 1978,
                        "name": "ElementaryTypeName",
                        "src": "2341:4:9"
                      }
                    ],
                    "id": 1979,
                    "name": "VariableDeclaration",
                    "src": "2341:13:9"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "recipient",
                      "overrides": null,
                      "scope": 1986,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "stateMutability": "nonpayable",
                          "type": "address"
                        },
                        "id": 1980,
                        "name": "ElementaryTypeName",
                        "src": "2356:7:9"
                      }
                    ],
                    "id": 1981,
                    "name": "VariableDeclaration",
                    "src": "2356:17:9"
                  }
                ],
                "id": 1982,
                "name": "ParameterList",
                "src": "2315:62:9"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "overrides": null,
                      "scope": 1986,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 1983,
                        "name": "ElementaryTypeName",
                        "src": "2403:4:9"
                      }
                    ],
                    "id": 1984,
                    "name": "VariableDeclaration",
                    "src": "2403:4:9"
                  }
                ],
                "id": 1985,
                "name": "ParameterList",
                "src": "2402:6:9"
              }
            ],
            "id": 1986,
            "name": "FunctionDefinition",
            "src": "2282:127:9"
          },
          {
            "attributes": {
              "body": null,
              "documentation": null,
              "functionSelector": "95e3c50b",
              "implemented": false,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "tokenToEthSwapInput",
              "overrides": null,
              "scope": 2192,
              "stateMutability": "nonpayable",
              "virtual": false,
              "visibility": "external"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "tokens_sold",
                      "overrides": null,
                      "scope": 1997,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 1987,
                        "name": "ElementaryTypeName",
                        "src": "2446:4:9"
                      }
                    ],
                    "id": 1988,
                    "name": "VariableDeclaration",
                    "src": "2446:16:9"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "min_eth",
                      "overrides": null,
                      "scope": 1997,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 1989,
                        "name": "ElementaryTypeName",
                        "src": "2464:4:9"
                      }
                    ],
                    "id": 1990,
                    "name": "VariableDeclaration",
                    "src": "2464:12:9"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "deadline",
                      "overrides": null,
                      "scope": 1997,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 1991,
                        "name": "ElementaryTypeName",
                        "src": "2478:4:9"
                      }
                    ],
                    "id": 1992,
                    "name": "VariableDeclaration",
                    "src": "2478:13:9"
                  }
                ],
                "id": 1993,
                "name": "ParameterList",
                "src": "2440:55:9"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "overrides": null,
                      "scope": 1997,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 1994,
                        "name": "ElementaryTypeName",
                        "src": "2513:4:9"
                      }
                    ],
                    "id": 1995,
                    "name": "VariableDeclaration",
                    "src": "2513:4:9"
                  }
                ],
                "id": 1996,
                "name": "ParameterList",
                "src": "2512:6:9"
              }
            ],
            "id": 1997,
            "name": "FunctionDefinition",
            "src": "2412:107:9"
          },
          {
            "attributes": {
              "body": null,
              "documentation": null,
              "functionSelector": "7237e031",
              "implemented": false,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "tokenToEthTransferInput",
              "overrides": null,
              "scope": 2192,
              "stateMutability": "nonpayable",
              "virtual": false,
              "visibility": "external"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "tokens_sold",
                      "overrides": null,
                      "scope": 2010,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 1998,
                        "name": "ElementaryTypeName",
                        "src": "2560:4:9"
                      }
                    ],
                    "id": 1999,
                    "name": "VariableDeclaration",
                    "src": "2560:16:9"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "min_eth",
                      "overrides": null,
                      "scope": 2010,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 2000,
                        "name": "ElementaryTypeName",
                        "src": "2578:4:9"
                      }
                    ],
                    "id": 2001,
                    "name": "VariableDeclaration",
                    "src": "2578:12:9"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "deadline",
                      "overrides": null,
                      "scope": 2010,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 2002,
                        "name": "ElementaryTypeName",
                        "src": "2592:4:9"
                      }
                    ],
                    "id": 2003,
                    "name": "VariableDeclaration",
                    "src": "2592:13:9"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "recipient",
                      "overrides": null,
                      "scope": 2010,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "stateMutability": "nonpayable",
                          "type": "address"
                        },
                        "id": 2004,
                        "name": "ElementaryTypeName",
                        "src": "2607:7:9"
                      }
                    ],
                    "id": 2005,
                    "name": "VariableDeclaration",
                    "src": "2607:17:9"
                  }
                ],
                "id": 2006,
                "name": "ParameterList",
                "src": "2554:74:9"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "overrides": null,
                      "scope": 2010,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 2007,
                        "name": "ElementaryTypeName",
                        "src": "2646:4:9"
                      }
                    ],
                    "id": 2008,
                    "name": "VariableDeclaration",
                    "src": "2646:4:9"
                  }
                ],
                "id": 2009,
                "name": "ParameterList",
                "src": "2645:6:9"
              }
            ],
            "id": 2010,
            "name": "FunctionDefinition",
            "src": "2522:130:9"
          },
          {
            "attributes": {
              "body": null,
              "documentation": null,
              "functionSelector": "013efd8b",
              "implemented": false,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "tokenToEthSwapOutput",
              "overrides": null,
              "scope": 2192,
              "stateMutability": "nonpayable",
              "virtual": false,
              "visibility": "external"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "eth_bought",
                      "overrides": null,
                      "scope": 2021,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 2011,
                        "name": "ElementaryTypeName",
                        "src": "2690:4:9"
                      }
                    ],
                    "id": 2012,
                    "name": "VariableDeclaration",
                    "src": "2690:15:9"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "max_tokens",
                      "overrides": null,
                      "scope": 2021,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 2013,
                        "name": "ElementaryTypeName",
                        "src": "2707:4:9"
                      }
                    ],
                    "id": 2014,
                    "name": "VariableDeclaration",
                    "src": "2707:15:9"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "deadline",
                      "overrides": null,
                      "scope": 2021,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 2015,
                        "name": "ElementaryTypeName",
                        "src": "2724:4:9"
                      }
                    ],
                    "id": 2016,
                    "name": "VariableDeclaration",
                    "src": "2724:13:9"
                  }
                ],
                "id": 2017,
                "name": "ParameterList",
                "src": "2684:57:9"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "overrides": null,
                      "scope": 2021,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 2018,
                        "name": "ElementaryTypeName",
                        "src": "2759:4:9"
                      }
                    ],
                    "id": 2019,
                    "name": "VariableDeclaration",
                    "src": "2759:4:9"
                  }
                ],
                "id": 2020,
                "name": "ParameterList",
                "src": "2758:6:9"
              }
            ],
            "id": 2021,
            "name": "FunctionDefinition",
            "src": "2655:110:9"
          },
          {
            "attributes": {
              "body": null,
              "documentation": null,
              "functionSelector": "d4e4841d",
              "implemented": false,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "tokenToEthTransferOutput",
              "overrides": null,
              "scope": 2192,
              "stateMutability": "nonpayable",
              "virtual": false,
              "visibility": "external"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "eth_bought",
                      "overrides": null,
                      "scope": 2034,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 2022,
                        "name": "ElementaryTypeName",
                        "src": "2807:4:9"
                      }
                    ],
                    "id": 2023,
                    "name": "VariableDeclaration",
                    "src": "2807:15:9"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "max_tokens",
                      "overrides": null,
                      "scope": 2034,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 2024,
                        "name": "ElementaryTypeName",
                        "src": "2824:4:9"
                      }
                    ],
                    "id": 2025,
                    "name": "VariableDeclaration",
                    "src": "2824:15:9"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "deadline",
                      "overrides": null,
                      "scope": 2034,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 2026,
                        "name": "ElementaryTypeName",
                        "src": "2841:4:9"
                      }
                    ],
                    "id": 2027,
                    "name": "VariableDeclaration",
                    "src": "2841:13:9"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "recipient",
                      "overrides": null,
                      "scope": 2034,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "stateMutability": "nonpayable",
                          "type": "address"
                        },
                        "id": 2028,
                        "name": "ElementaryTypeName",
                        "src": "2856:7:9"
                      }
                    ],
                    "id": 2029,
                    "name": "VariableDeclaration",
                    "src": "2856:17:9"
                  }
                ],
                "id": 2030,
                "name": "ParameterList",
                "src": "2801:76:9"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "overrides": null,
                      "scope": 2034,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 2031,
                        "name": "ElementaryTypeName",
                        "src": "2895:4:9"
                      }
                    ],
                    "id": 2032,
                    "name": "VariableDeclaration",
                    "src": "2895:4:9"
                  }
                ],
                "id": 2033,
                "name": "ParameterList",
                "src": "2894:6:9"
              }
            ],
            "id": 2034,
            "name": "FunctionDefinition",
            "src": "2768:133:9"
          },
          {
            "attributes": {
              "body": null,
              "documentation": null,
              "functionSelector": "ddf7e1a7",
              "implemented": false,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "tokenToTokenSwapInput",
              "overrides": null,
              "scope": 2192,
              "stateMutability": "nonpayable",
              "virtual": false,
              "visibility": "external"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "tokens_sold",
                      "overrides": null,
                      "scope": 2049,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 2035,
                        "name": "ElementaryTypeName",
                        "src": "2940:4:9"
                      }
                    ],
                    "id": 2036,
                    "name": "VariableDeclaration",
                    "src": "2940:16:9"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "min_tokens_bought",
                      "overrides": null,
                      "scope": 2049,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 2037,
                        "name": "ElementaryTypeName",
                        "src": "2958:4:9"
                      }
                    ],
                    "id": 2038,
                    "name": "VariableDeclaration",
                    "src": "2958:22:9"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "min_eth_bought",
                      "overrides": null,
                      "scope": 2049,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 2039,
                        "name": "ElementaryTypeName",
                        "src": "2982:4:9"
                      }
                    ],
                    "id": 2040,
                    "name": "VariableDeclaration",
                    "src": "2982:19:9"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "deadline",
                      "overrides": null,
                      "scope": 2049,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 2041,
                        "name": "ElementaryTypeName",
                        "src": "3003:4:9"
                      }
                    ],
                    "id": 2042,
                    "name": "VariableDeclaration",
                    "src": "3003:13:9"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "token_addr",
                      "overrides": null,
                      "scope": 2049,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "stateMutability": "nonpayable",
                          "type": "address"
                        },
                        "id": 2043,
                        "name": "ElementaryTypeName",
                        "src": "3018:7:9"
                      }
                    ],
                    "id": 2044,
                    "name": "VariableDeclaration",
                    "src": "3018:18:9"
                  }
                ],
                "id": 2045,
                "name": "ParameterList",
                "src": "2934:106:9"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "overrides": null,
                      "scope": 2049,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 2046,
                        "name": "ElementaryTypeName",
                        "src": "3058:4:9"
                      }
                    ],
                    "id": 2047,
                    "name": "VariableDeclaration",
                    "src": "3058:4:9"
                  }
                ],
                "id": 2048,
                "name": "ParameterList",
                "src": "3057:6:9"
              }
            ],
            "id": 2049,
            "name": "FunctionDefinition",
            "src": "2904:160:9"
          },
          {
            "attributes": {
              "body": null,
              "documentation": null,
              "functionSelector": "f552d91b",
              "implemented": false,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "tokenToTokenTransferInput",
              "overrides": null,
              "scope": 2192,
              "stateMutability": "nonpayable",
              "virtual": false,
              "visibility": "external"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "tokens_sold",
                      "overrides": null,
                      "scope": 2066,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 2050,
                        "name": "ElementaryTypeName",
                        "src": "3107:4:9"
                      }
                    ],
                    "id": 2051,
                    "name": "VariableDeclaration",
                    "src": "3107:16:9"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "min_tokens_bought",
                      "overrides": null,
                      "scope": 2066,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 2052,
                        "name": "ElementaryTypeName",
                        "src": "3125:4:9"
                      }
                    ],
                    "id": 2053,
                    "name": "VariableDeclaration",
                    "src": "3125:22:9"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "min_eth_bought",
                      "overrides": null,
                      "scope": 2066,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 2054,
                        "name": "ElementaryTypeName",
                        "src": "3149:4:9"
                      }
                    ],
                    "id": 2055,
                    "name": "VariableDeclaration",
                    "src": "3149:19:9"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "deadline",
                      "overrides": null,
                      "scope": 2066,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 2056,
                        "name": "ElementaryTypeName",
                        "src": "3170:4:9"
                      }
                    ],
                    "id": 2057,
                    "name": "VariableDeclaration",
                    "src": "3170:13:9"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "recipient",
                      "overrides": null,
                      "scope": 2066,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "stateMutability": "nonpayable",
                          "type": "address"
                        },
                        "id": 2058,
                        "name": "ElementaryTypeName",
                        "src": "3185:7:9"
                      }
                    ],
                    "id": 2059,
                    "name": "VariableDeclaration",
                    "src": "3185:17:9"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "token_addr",
                      "overrides": null,
                      "scope": 2066,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "stateMutability": "nonpayable",
                          "type": "address"
                        },
                        "id": 2060,
                        "name": "ElementaryTypeName",
                        "src": "3204:7:9"
                      }
                    ],
                    "id": 2061,
                    "name": "VariableDeclaration",
                    "src": "3204:18:9"
                  }
                ],
                "id": 2062,
                "name": "ParameterList",
                "src": "3101:125:9"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "overrides": null,
                      "scope": 2066,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 2063,
                        "name": "ElementaryTypeName",
                        "src": "3244:4:9"
                      }
                    ],
                    "id": 2064,
                    "name": "VariableDeclaration",
                    "src": "3244:4:9"
                  }
                ],
                "id": 2065,
                "name": "ParameterList",
                "src": "3243:6:9"
              }
            ],
            "id": 2066,
            "name": "FunctionDefinition",
            "src": "3067:183:9"
          },
          {
            "attributes": {
              "body": null,
              "documentation": null,
              "functionSelector": "b040d545",
              "implemented": false,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "tokenToTokenSwapOutput",
              "overrides": null,
              "scope": 2192,
              "stateMutability": "nonpayable",
              "virtual": false,
              "visibility": "external"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "tokens_bought",
                      "overrides": null,
                      "scope": 2081,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 2067,
                        "name": "ElementaryTypeName",
                        "src": "3290:4:9"
                      }
                    ],
                    "id": 2068,
                    "name": "VariableDeclaration",
                    "src": "3290:18:9"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "max_tokens_sold",
                      "overrides": null,
                      "scope": 2081,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 2069,
                        "name": "ElementaryTypeName",
                        "src": "3310:4:9"
                      }
                    ],
                    "id": 2070,
                    "name": "VariableDeclaration",
                    "src": "3310:20:9"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "max_eth_sold",
                      "overrides": null,
                      "scope": 2081,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 2071,
                        "name": "ElementaryTypeName",
                        "src": "3332:4:9"
                      }
                    ],
                    "id": 2072,
                    "name": "VariableDeclaration",
                    "src": "3332:17:9"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "deadline",
                      "overrides": null,
                      "scope": 2081,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 2073,
                        "name": "ElementaryTypeName",
                        "src": "3351:4:9"
                      }
                    ],
                    "id": 2074,
                    "name": "VariableDeclaration",
                    "src": "3351:13:9"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "token_addr",
                      "overrides": null,
                      "scope": 2081,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "stateMutability": "nonpayable",
                          "type": "address"
                        },
                        "id": 2075,
                        "name": "ElementaryTypeName",
                        "src": "3366:7:9"
                      }
                    ],
                    "id": 2076,
                    "name": "VariableDeclaration",
                    "src": "3366:18:9"
                  }
                ],
                "id": 2077,
                "name": "ParameterList",
                "src": "3284:104:9"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "overrides": null,
                      "scope": 2081,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 2078,
                        "name": "ElementaryTypeName",
                        "src": "3406:4:9"
                      }
                    ],
                    "id": 2079,
                    "name": "VariableDeclaration",
                    "src": "3406:4:9"
                  }
                ],
                "id": 2080,
                "name": "ParameterList",
                "src": "3405:6:9"
              }
            ],
            "id": 2081,
            "name": "FunctionDefinition",
            "src": "3253:159:9"
          },
          {
            "attributes": {
              "body": null,
              "documentation": null,
              "functionSelector": "f3c0efe9",
              "implemented": false,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "tokenToTokenTransferOutput",
              "overrides": null,
              "scope": 2192,
              "stateMutability": "nonpayable",
              "virtual": false,
              "visibility": "external"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "tokens_bought",
                      "overrides": null,
                      "scope": 2098,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 2082,
                        "name": "ElementaryTypeName",
                        "src": "3456:4:9"
                      }
                    ],
                    "id": 2083,
                    "name": "VariableDeclaration",
                    "src": "3456:18:9"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "max_tokens_sold",
                      "overrides": null,
                      "scope": 2098,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 2084,
                        "name": "ElementaryTypeName",
                        "src": "3476:4:9"
                      }
                    ],
                    "id": 2085,
                    "name": "VariableDeclaration",
                    "src": "3476:20:9"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "max_eth_sold",
                      "overrides": null,
                      "scope": 2098,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 2086,
                        "name": "ElementaryTypeName",
                        "src": "3498:4:9"
                      }
                    ],
                    "id": 2087,
                    "name": "VariableDeclaration",
                    "src": "3498:17:9"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "deadline",
                      "overrides": null,
                      "scope": 2098,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 2088,
                        "name": "ElementaryTypeName",
                        "src": "3517:4:9"
                      }
                    ],
                    "id": 2089,
                    "name": "VariableDeclaration",
                    "src": "3517:13:9"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "recipient",
                      "overrides": null,
                      "scope": 2098,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "stateMutability": "nonpayable",
                          "type": "address"
                        },
                        "id": 2090,
                        "name": "ElementaryTypeName",
                        "src": "3532:7:9"
                      }
                    ],
                    "id": 2091,
                    "name": "VariableDeclaration",
                    "src": "3532:17:9"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "token_addr",
                      "overrides": null,
                      "scope": 2098,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "stateMutability": "nonpayable",
                          "type": "address"
                        },
                        "id": 2092,
                        "name": "ElementaryTypeName",
                        "src": "3551:7:9"
                      }
                    ],
                    "id": 2093,
                    "name": "VariableDeclaration",
                    "src": "3551:18:9"
                  }
                ],
                "id": 2094,
                "name": "ParameterList",
                "src": "3450:123:9"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "overrides": null,
                      "scope": 2098,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 2095,
                        "name": "ElementaryTypeName",
                        "src": "3591:4:9"
                      }
                    ],
                    "id": 2096,
                    "name": "VariableDeclaration",
                    "src": "3591:4:9"
                  }
                ],
                "id": 2097,
                "name": "ParameterList",
                "src": "3590:6:9"
              }
            ],
            "id": 2098,
            "name": "FunctionDefinition",
            "src": "3415:182:9"
          },
          {
            "attributes": {
              "body": null,
              "documentation": null,
              "functionSelector": "b1cb43bf",
              "implemented": false,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "tokenToExchangeSwapInput",
              "overrides": null,
              "scope": 2192,
              "stateMutability": "nonpayable",
              "virtual": false,
              "visibility": "external"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "tokens_sold",
                      "overrides": null,
                      "scope": 2113,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 2099,
                        "name": "ElementaryTypeName",
                        "src": "3639:4:9"
                      }
                    ],
                    "id": 2100,
                    "name": "VariableDeclaration",
                    "src": "3639:16:9"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "min_tokens_bought",
                      "overrides": null,
                      "scope": 2113,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 2101,
                        "name": "ElementaryTypeName",
                        "src": "3657:4:9"
                      }
                    ],
                    "id": 2102,
                    "name": "VariableDeclaration",
                    "src": "3657:22:9"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "min_eth_bought",
                      "overrides": null,
                      "scope": 2113,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 2103,
                        "name": "ElementaryTypeName",
                        "src": "3681:4:9"
                      }
                    ],
                    "id": 2104,
                    "name": "VariableDeclaration",
                    "src": "3681:19:9"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "deadline",
                      "overrides": null,
                      "scope": 2113,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 2105,
                        "name": "ElementaryTypeName",
                        "src": "3702:4:9"
                      }
                    ],
                    "id": 2106,
                    "name": "VariableDeclaration",
                    "src": "3702:13:9"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "exchange_addr",
                      "overrides": null,
                      "scope": 2113,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "stateMutability": "nonpayable",
                          "type": "address"
                        },
                        "id": 2107,
                        "name": "ElementaryTypeName",
                        "src": "3717:7:9"
                      }
                    ],
                    "id": 2108,
                    "name": "VariableDeclaration",
                    "src": "3717:21:9"
                  }
                ],
                "id": 2109,
                "name": "ParameterList",
                "src": "3633:109:9"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "overrides": null,
                      "scope": 2113,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 2110,
                        "name": "ElementaryTypeName",
                        "src": "3760:4:9"
                      }
                    ],
                    "id": 2111,
                    "name": "VariableDeclaration",
                    "src": "3760:4:9"
                  }
                ],
                "id": 2112,
                "name": "ParameterList",
                "src": "3759:6:9"
              }
            ],
            "id": 2113,
            "name": "FunctionDefinition",
            "src": "3600:166:9"
          },
          {
            "attributes": {
              "body": null,
              "documentation": null,
              "functionSelector": "ec384a3e",
              "implemented": false,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "tokenToExchangeTransferInput",
              "overrides": null,
              "scope": 2192,
              "stateMutability": "nonpayable",
              "virtual": false,
              "visibility": "external"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "tokens_sold",
                      "overrides": null,
                      "scope": 2130,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 2114,
                        "name": "ElementaryTypeName",
                        "src": "3812:4:9"
                      }
                    ],
                    "id": 2115,
                    "name": "VariableDeclaration",
                    "src": "3812:16:9"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "min_tokens_bought",
                      "overrides": null,
                      "scope": 2130,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 2116,
                        "name": "ElementaryTypeName",
                        "src": "3830:4:9"
                      }
                    ],
                    "id": 2117,
                    "name": "VariableDeclaration",
                    "src": "3830:22:9"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "min_eth_bought",
                      "overrides": null,
                      "scope": 2130,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 2118,
                        "name": "ElementaryTypeName",
                        "src": "3854:4:9"
                      }
                    ],
                    "id": 2119,
                    "name": "VariableDeclaration",
                    "src": "3854:19:9"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "deadline",
                      "overrides": null,
                      "scope": 2130,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 2120,
                        "name": "ElementaryTypeName",
                        "src": "3875:4:9"
                      }
                    ],
                    "id": 2121,
                    "name": "VariableDeclaration",
                    "src": "3875:13:9"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "recipient",
                      "overrides": null,
                      "scope": 2130,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "stateMutability": "nonpayable",
                          "type": "address"
                        },
                        "id": 2122,
                        "name": "ElementaryTypeName",
                        "src": "3890:7:9"
                      }
                    ],
                    "id": 2123,
                    "name": "VariableDeclaration",
                    "src": "3890:17:9"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "exchange_addr",
                      "overrides": null,
                      "scope": 2130,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "stateMutability": "nonpayable",
                          "type": "address"
                        },
                        "id": 2124,
                        "name": "ElementaryTypeName",
                        "src": "3909:7:9"
                      }
                    ],
                    "id": 2125,
                    "name": "VariableDeclaration",
                    "src": "3909:21:9"
                  }
                ],
                "id": 2126,
                "name": "ParameterList",
                "src": "3806:128:9"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "overrides": null,
                      "scope": 2130,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 2127,
                        "name": "ElementaryTypeName",
                        "src": "3952:4:9"
                      }
                    ],
                    "id": 2128,
                    "name": "VariableDeclaration",
                    "src": "3952:4:9"
                  }
                ],
                "id": 2129,
                "name": "ParameterList",
                "src": "3951:6:9"
              }
            ],
            "id": 2130,
            "name": "FunctionDefinition",
            "src": "3769:189:9"
          },
          {
            "attributes": {
              "body": null,
              "documentation": null,
              "functionSelector": "ea650c7d",
              "implemented": false,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "tokenToExchangeSwapOutput",
              "overrides": null,
              "scope": 2192,
              "stateMutability": "nonpayable",
              "virtual": false,
              "visibility": "external"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "tokens_bought",
                      "overrides": null,
                      "scope": 2145,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 2131,
                        "name": "ElementaryTypeName",
                        "src": "4001:4:9"
                      }
                    ],
                    "id": 2132,
                    "name": "VariableDeclaration",
                    "src": "4001:18:9"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "max_tokens_sold",
                      "overrides": null,
                      "scope": 2145,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 2133,
                        "name": "ElementaryTypeName",
                        "src": "4021:4:9"
                      }
                    ],
                    "id": 2134,
                    "name": "VariableDeclaration",
                    "src": "4021:20:9"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "max_eth_sold",
                      "overrides": null,
                      "scope": 2145,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 2135,
                        "name": "ElementaryTypeName",
                        "src": "4043:4:9"
                      }
                    ],
                    "id": 2136,
                    "name": "VariableDeclaration",
                    "src": "4043:17:9"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "deadline",
                      "overrides": null,
                      "scope": 2145,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 2137,
                        "name": "ElementaryTypeName",
                        "src": "4062:4:9"
                      }
                    ],
                    "id": 2138,
                    "name": "VariableDeclaration",
                    "src": "4062:13:9"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "exchange_addr",
                      "overrides": null,
                      "scope": 2145,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "stateMutability": "nonpayable",
                          "type": "address"
                        },
                        "id": 2139,
                        "name": "ElementaryTypeName",
                        "src": "4077:7:9"
                      }
                    ],
                    "id": 2140,
                    "name": "VariableDeclaration",
                    "src": "4077:21:9"
                  }
                ],
                "id": 2141,
                "name": "ParameterList",
                "src": "3995:107:9"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "overrides": null,
                      "scope": 2145,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 2142,
                        "name": "ElementaryTypeName",
                        "src": "4120:4:9"
                      }
                    ],
                    "id": 2143,
                    "name": "VariableDeclaration",
                    "src": "4120:4:9"
                  }
                ],
                "id": 2144,
                "name": "ParameterList",
                "src": "4119:6:9"
              }
            ],
            "id": 2145,
            "name": "FunctionDefinition",
            "src": "3961:165:9"
          },
          {
            "attributes": {
              "body": null,
              "documentation": null,
              "functionSelector": "981a1327",
              "implemented": false,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "tokenToExchangeTransferOutput",
              "overrides": null,
              "scope": 2192,
              "stateMutability": "nonpayable",
              "virtual": false,
              "visibility": "external"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "tokens_bought",
                      "overrides": null,
                      "scope": 2162,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 2146,
                        "name": "ElementaryTypeName",
                        "src": "4173:4:9"
                      }
                    ],
                    "id": 2147,
                    "name": "VariableDeclaration",
                    "src": "4173:18:9"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "max_tokens_sold",
                      "overrides": null,
                      "scope": 2162,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 2148,
                        "name": "ElementaryTypeName",
                        "src": "4193:4:9"
                      }
                    ],
                    "id": 2149,
                    "name": "VariableDeclaration",
                    "src": "4193:20:9"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "max_eth_sold",
                      "overrides": null,
                      "scope": 2162,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 2150,
                        "name": "ElementaryTypeName",
                        "src": "4215:4:9"
                      }
                    ],
                    "id": 2151,
                    "name": "VariableDeclaration",
                    "src": "4215:17:9"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "deadline",
                      "overrides": null,
                      "scope": 2162,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 2152,
                        "name": "ElementaryTypeName",
                        "src": "4234:4:9"
                      }
                    ],
                    "id": 2153,
                    "name": "VariableDeclaration",
                    "src": "4234:13:9"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "recipient",
                      "overrides": null,
                      "scope": 2162,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "stateMutability": "nonpayable",
                          "type": "address"
                        },
                        "id": 2154,
                        "name": "ElementaryTypeName",
                        "src": "4249:7:9"
                      }
                    ],
                    "id": 2155,
                    "name": "VariableDeclaration",
                    "src": "4249:17:9"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "exchange_addr",
                      "overrides": null,
                      "scope": 2162,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "stateMutability": "nonpayable",
                          "type": "address"
                        },
                        "id": 2156,
                        "name": "ElementaryTypeName",
                        "src": "4268:7:9"
                      }
                    ],
                    "id": 2157,
                    "name": "VariableDeclaration",
                    "src": "4268:21:9"
                  }
                ],
                "id": 2158,
                "name": "ParameterList",
                "src": "4167:126:9"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "overrides": null,
                      "scope": 2162,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 2159,
                        "name": "ElementaryTypeName",
                        "src": "4311:4:9"
                      }
                    ],
                    "id": 2160,
                    "name": "VariableDeclaration",
                    "src": "4311:4:9"
                  }
                ],
                "id": 2161,
                "name": "ParameterList",
                "src": "4310:6:9"
              }
            ],
            "id": 2162,
            "name": "FunctionDefinition",
            "src": "4129:188:9"
          },
          {
            "attributes": {
              "body": null,
              "documentation": null,
              "functionSelector": "a9059cbb",
              "implemented": false,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "transfer",
              "overrides": null,
              "scope": 2192,
              "stateMutability": "nonpayable",
              "virtual": false,
              "visibility": "external"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "_to",
                      "overrides": null,
                      "scope": 2171,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "stateMutability": "nonpayable",
                          "type": "address"
                        },
                        "id": 2163,
                        "name": "ElementaryTypeName",
                        "src": "4343:7:9"
                      }
                    ],
                    "id": 2164,
                    "name": "VariableDeclaration",
                    "src": "4343:11:9"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "_value",
                      "overrides": null,
                      "scope": 2171,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 2165,
                        "name": "ElementaryTypeName",
                        "src": "4356:4:9"
                      }
                    ],
                    "id": 2166,
                    "name": "VariableDeclaration",
                    "src": "4356:11:9"
                  }
                ],
                "id": 2167,
                "name": "ParameterList",
                "src": "4337:34:9"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "overrides": null,
                      "scope": 2171,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bool",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 2168,
                        "name": "ElementaryTypeName",
                        "src": "4389:4:9"
                      }
                    ],
                    "id": 2169,
                    "name": "VariableDeclaration",
                    "src": "4389:4:9"
                  }
                ],
                "id": 2170,
                "name": "ParameterList",
                "src": "4388:6:9"
              }
            ],
            "id": 2171,
            "name": "FunctionDefinition",
            "src": "4320:75:9"
          },
          {
            "attributes": {
              "body": null,
              "documentation": null,
              "functionSelector": "23b872dd",
              "implemented": false,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "transferFrom",
              "overrides": null,
              "scope": 2192,
              "stateMutability": "nonpayable",
              "virtual": false,
              "visibility": "external"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "_from",
                      "overrides": null,
                      "scope": 2182,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "stateMutability": "nonpayable",
                          "type": "address"
                        },
                        "id": 2172,
                        "name": "ElementaryTypeName",
                        "src": "4425:7:9"
                      }
                    ],
                    "id": 2173,
                    "name": "VariableDeclaration",
                    "src": "4425:13:9"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "_to",
                      "overrides": null,
                      "scope": 2182,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "stateMutability": "nonpayable",
                          "type": "address"
                        },
                        "id": 2174,
                        "name": "ElementaryTypeName",
                        "src": "4440:7:9"
                      }
                    ],
                    "id": 2175,
                    "name": "VariableDeclaration",
                    "src": "4440:11:9"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "_value",
                      "overrides": null,
                      "scope": 2182,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 2176,
                        "name": "ElementaryTypeName",
                        "src": "4453:4:9"
                      }
                    ],
                    "id": 2177,
                    "name": "VariableDeclaration",
                    "src": "4453:11:9"
                  }
                ],
                "id": 2178,
                "name": "ParameterList",
                "src": "4419:49:9"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "overrides": null,
                      "scope": 2182,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bool",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 2179,
                        "name": "ElementaryTypeName",
                        "src": "4486:4:9"
                      }
                    ],
                    "id": 2180,
                    "name": "VariableDeclaration",
                    "src": "4486:4:9"
                  }
                ],
                "id": 2181,
                "name": "ParameterList",
                "src": "4485:6:9"
              }
            ],
            "id": 2182,
            "name": "FunctionDefinition",
            "src": "4398:94:9"
          },
          {
            "attributes": {
              "body": null,
              "documentation": null,
              "functionSelector": "095ea7b3",
              "implemented": false,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "approve",
              "overrides": null,
              "scope": 2192,
              "stateMutability": "nonpayable",
              "virtual": false,
              "visibility": "external"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "_spender",
                      "overrides": null,
                      "scope": 2191,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "stateMutability": "nonpayable",
                          "type": "address"
                        },
                        "id": 2183,
                        "name": "ElementaryTypeName",
                        "src": "4517:7:9"
                      }
                    ],
                    "id": 2184,
                    "name": "VariableDeclaration",
                    "src": "4517:16:9"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "_value",
                      "overrides": null,
                      "scope": 2191,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 2185,
                        "name": "ElementaryTypeName",
                        "src": "4535:4:9"
                      }
                    ],
                    "id": 2186,
                    "name": "VariableDeclaration",
                    "src": "4535:11:9"
                  }
                ],
                "id": 2187,
                "name": "ParameterList",
                "src": "4511:39:9"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "overrides": null,
                      "scope": 2191,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bool",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 2188,
                        "name": "ElementaryTypeName",
                        "src": "4568:4:9"
                      }
                    ],
                    "id": 2189,
                    "name": "VariableDeclaration",
                    "src": "4568:4:9"
                  }
                ],
                "id": 2190,
                "name": "ParameterList",
                "src": "4567:6:9"
              }
            ],
            "id": 2191,
            "name": "FunctionDefinition",
            "src": "4495:79:9"
          }
        ],
        "id": 2192,
        "name": "ContractDefinition",
        "src": "222:4354:9"
      }
    ],
    "id": 2193,
    "name": "SourceUnit",
    "src": "36:4541:9"
  },
  "compiler": {
    "name": "solc",
    "version": "0.6.10+commit.00c0fcaf.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "3.4.1",
  "updatedAt": "2021-07-08T17:04:13.756Z",
  "devdoc": {
    "methods": {}
  },
  "userdoc": {
    "methods": {}
  }
}