{
  "contractName": "IValueswapV2Pair",
  "abi": [
    {
      "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": "sender",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "amount0",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "amount1",
          "type": "uint256"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "to",
          "type": "address"
        }
      ],
      "name": "Burn",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "sender",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "amount0",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "amount1",
          "type": "uint256"
        }
      ],
      "name": "Mint",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "sender",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "amount0In",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "amount1In",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "amount0Out",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "amount1Out",
          "type": "uint256"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "to",
          "type": "address"
        }
      ],
      "name": "Swap",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint112",
          "name": "reserve0",
          "type": "uint112"
        },
        {
          "indexed": false,
          "internalType": "uint112",
          "name": "reserve1",
          "type": "uint112"
        }
      ],
      "name": "Sync",
      "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"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "name",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "payable": false,
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "symbol",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "payable": false,
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "decimals",
      "outputs": [
        {
          "internalType": "uint8",
          "name": "",
          "type": "uint8"
        }
      ],
      "payable": false,
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "totalSupply",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "address",
          "name": "owner",
          "type": "address"
        }
      ],
      "name": "balanceOf",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "spender",
          "type": "address"
        }
      ],
      "name": "allowance",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "address",
          "name": "spender",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "approve",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "transfer",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "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"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "DOMAIN_SEPARATOR",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "PERMIT_TYPEHASH",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "internalType": "address",
          "name": "owner",
          "type": "address"
        }
      ],
      "name": "nonces",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "spender",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "deadline",
          "type": "uint256"
        },
        {
          "internalType": "uint8",
          "name": "v",
          "type": "uint8"
        },
        {
          "internalType": "bytes32",
          "name": "r",
          "type": "bytes32"
        },
        {
          "internalType": "bytes32",
          "name": "s",
          "type": "bytes32"
        }
      ],
      "name": "permit",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "MINIMUM_LIQUIDITY",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "factory",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "token0",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "token1",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "getReserves",
      "outputs": [
        {
          "internalType": "uint112",
          "name": "reserve0",
          "type": "uint112"
        },
        {
          "internalType": "uint112",
          "name": "reserve1",
          "type": "uint112"
        },
        {
          "internalType": "uint32",
          "name": "blockTimestampLast",
          "type": "uint32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "price0CumulativeLast",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "price1CumulativeLast",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "kLast",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        }
      ],
      "name": "mint",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "liquidity",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        }
      ],
      "name": "burn",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "amount0",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "amount1",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "uint256",
          "name": "amount0Out",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "amount1Out",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        }
      ],
      "name": "swap",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        }
      ],
      "name": "skim",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [],
      "name": "sync",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "initialize",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "metadata": "{\"compiler\":{\"version\":\"0.5.16+commit.9c3226ce\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"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\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"Burn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"}],\"name\":\"Mint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount0In\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount1In\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount0Out\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount1Out\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"Swap\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint112\",\"name\":\"reserve0\",\"type\":\"uint112\"},{\"indexed\":false,\"internalType\":\"uint112\",\"name\":\"reserve1\",\"type\":\"uint112\"}],\"name\":\"Sync\",\"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\"},{\"constant\":true,\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"MINIMUM_LIQUIDITY\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"PERMIT_TYPEHASH\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"burn\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"factory\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getReserves\",\"outputs\":[{\"internalType\":\"uint112\",\"name\":\"reserve0\",\"type\":\"uint112\"},{\"internalType\":\"uint112\",\"name\":\"reserve1\",\"type\":\"uint112\"},{\"internalType\":\"uint32\",\"name\":\"blockTimestampLast\",\"type\":\"uint32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"kLast\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"mint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"liquidity\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"price0CumulativeLast\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"price1CumulativeLast\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"}],\"name\":\"skim\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount0Out\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount1Out\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"swap\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"sync\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"token0\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"token1\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"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\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/second/Documents/work/valueswap-v2-core/contracts/interfaces/IValueswapV2Pair.sol\":\"IValueswapV2Pair\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[]},\"sources\":{\"/Users/second/Documents/work/valueswap-v2-core/contracts/interfaces/IValueswapV2Pair.sol\":{\"keccak256\":\"0x4899f60670cbc336cd8f5fefb631d6ce27ae4226ad4aac5d0963cd23db2fc36a\",\"urls\":[\"bzz-raw://7aa68c3572d1a4713c4af9ba99dd1907a9dc5a104273dab86e1d02797f6b1dd6\",\"dweb:/ipfs/QmXq89Vb6D4XeA2PDqNy13VkNeevTJePCrLF7KUHkver4q\"]}},\"version\":1}",
  "bytecode": "0x",
  "deployedBytecode": "0x",
  "sourceMap": "",
  "deployedSourceMap": "",
  "source": "pragma solidity >=0.5.0;\n\ninterface IValueswapV2Pair {\n    event Approval(address indexed owner, address indexed spender, uint value);\n    event Transfer(address indexed from, address indexed to, uint value);\n\n    function name() external pure returns (string memory);\n    function symbol() external pure returns (string memory);\n    function decimals() external pure returns (uint8);\n    function totalSupply() external view returns (uint);\n    function balanceOf(address owner) external view returns (uint);\n    function allowance(address owner, address spender) external view returns (uint);\n\n    function approve(address spender, uint value) external returns (bool);\n    function transfer(address to, uint value) external returns (bool);\n    function transferFrom(address from, address to, uint value) external returns (bool);\n\n    function DOMAIN_SEPARATOR() external view returns (bytes32);\n    function PERMIT_TYPEHASH() external pure returns (bytes32);\n    function nonces(address owner) external view returns (uint);\n\n    function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external;\n\n    event Mint(address indexed sender, uint amount0, uint amount1);\n    event Burn(address indexed sender, uint amount0, uint amount1, address indexed to);\n    event Swap(\n        address indexed sender,\n        uint amount0In,\n        uint amount1In,\n        uint amount0Out,\n        uint amount1Out,\n        address indexed to\n    );\n    event Sync(uint112 reserve0, uint112 reserve1);\n\n    function MINIMUM_LIQUIDITY() external pure returns (uint);\n    function factory() external view returns (address);\n    function token0() external view returns (address);\n    function token1() external view returns (address);\n    function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);\n    function price0CumulativeLast() external view returns (uint);\n    function price1CumulativeLast() external view returns (uint);\n    function kLast() external view returns (uint);\n\n    function mint(address to) external returns (uint liquidity);\n    function burn(address to) external returns (uint amount0, uint amount1);\n    function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external;\n    function skim(address to) external;\n    function sync() external;\n\n    function initialize(address, address) external;\n}\n",
  "sourcePath": "/Users/second/Documents/work/valueswap-v2-core/contracts/interfaces/IValueswapV2Pair.sol",
  "ast": {
    "absolutePath": "/Users/second/Documents/work/valueswap-v2-core/contracts/interfaces/IValueswapV2Pair.sol",
    "exportedSymbols": {
      "IValueswapV2Pair": [
        2174
      ]
    },
    "id": 2175,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 1934,
        "literals": [
          "solidity",
          ">=",
          "0.5",
          ".0"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:24:8"
      },
      {
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "interface",
        "documentation": null,
        "fullyImplemented": false,
        "id": 2174,
        "linearizedBaseContracts": [
          2174
        ],
        "name": "IValueswapV2Pair",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "anonymous": false,
            "documentation": null,
            "id": 1942,
            "name": "Approval",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 1941,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1936,
                  "indexed": true,
                  "name": "owner",
                  "nodeType": "VariableDeclaration",
                  "scope": 1942,
                  "src": "74:21:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1935,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "74:7:8",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1938,
                  "indexed": true,
                  "name": "spender",
                  "nodeType": "VariableDeclaration",
                  "scope": 1942,
                  "src": "97:23:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1937,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "97:7:8",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1940,
                  "indexed": false,
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "scope": 1942,
                  "src": "122:10:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1939,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "122:4:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "73:60:8"
            },
            "src": "59:75:8"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 1950,
            "name": "Transfer",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 1949,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1944,
                  "indexed": true,
                  "name": "from",
                  "nodeType": "VariableDeclaration",
                  "scope": 1950,
                  "src": "154:20:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1943,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "154:7:8",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1946,
                  "indexed": true,
                  "name": "to",
                  "nodeType": "VariableDeclaration",
                  "scope": 1950,
                  "src": "176:18:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1945,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "176:7:8",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1948,
                  "indexed": false,
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "scope": 1950,
                  "src": "196:10:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1947,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "196:4:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "153:54:8"
            },
            "src": "139:69:8"
          },
          {
            "body": null,
            "documentation": null,
            "id": 1955,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "name",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1951,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "227:2:8"
            },
            "returnParameters": {
              "id": 1954,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1953,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1955,
                  "src": "253:13:8",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 1952,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "253:6:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "252:15:8"
            },
            "scope": 2174,
            "src": "214:54:8",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "id": 1960,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "symbol",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1956,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "288:2:8"
            },
            "returnParameters": {
              "id": 1959,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1958,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1960,
                  "src": "314:13:8",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 1957,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "314:6:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "313:15:8"
            },
            "scope": 2174,
            "src": "273:56:8",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "id": 1965,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "decimals",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1961,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "351:2:8"
            },
            "returnParameters": {
              "id": 1964,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1963,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1965,
                  "src": "377:5:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 1962,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "377:5:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "376:7:8"
            },
            "scope": 2174,
            "src": "334:50:8",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "id": 1970,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "totalSupply",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1966,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "409:2:8"
            },
            "returnParameters": {
              "id": 1969,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1968,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1970,
                  "src": "435:4:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1967,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "435:4:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "434:6:8"
            },
            "scope": 2174,
            "src": "389:52:8",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "id": 1977,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "balanceOf",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1973,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1972,
                  "name": "owner",
                  "nodeType": "VariableDeclaration",
                  "scope": 1977,
                  "src": "465:13:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1971,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "465:7:8",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "464:15:8"
            },
            "returnParameters": {
              "id": 1976,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1975,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1977,
                  "src": "503:4:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1974,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "503:4:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "502:6:8"
            },
            "scope": 2174,
            "src": "446:63:8",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "id": 1986,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "allowance",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1982,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1979,
                  "name": "owner",
                  "nodeType": "VariableDeclaration",
                  "scope": 1986,
                  "src": "533:13:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1978,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "533:7:8",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1981,
                  "name": "spender",
                  "nodeType": "VariableDeclaration",
                  "scope": 1986,
                  "src": "548:15:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1980,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "548:7:8",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "532:32:8"
            },
            "returnParameters": {
              "id": 1985,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1984,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1986,
                  "src": "588:4:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1983,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "588:4:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "587:6:8"
            },
            "scope": 2174,
            "src": "514:80:8",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "id": 1995,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "approve",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1991,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1988,
                  "name": "spender",
                  "nodeType": "VariableDeclaration",
                  "scope": 1995,
                  "src": "617:15:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1987,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "617:7:8",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1990,
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "scope": 1995,
                  "src": "634:10:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1989,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "634:4:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "616:29:8"
            },
            "returnParameters": {
              "id": 1994,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1993,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1995,
                  "src": "664:4:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 1992,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "664:4:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "663:6:8"
            },
            "scope": 2174,
            "src": "600:70:8",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "id": 2004,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "transfer",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2000,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1997,
                  "name": "to",
                  "nodeType": "VariableDeclaration",
                  "scope": 2004,
                  "src": "693:10:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1996,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "693:7:8",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1999,
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "scope": 2004,
                  "src": "705:10:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1998,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "705:4:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "692:24:8"
            },
            "returnParameters": {
              "id": 2003,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2002,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 2004,
                  "src": "735:4:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 2001,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "735:4:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "734:6:8"
            },
            "scope": 2174,
            "src": "675:66:8",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "id": 2015,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "transferFrom",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2011,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2006,
                  "name": "from",
                  "nodeType": "VariableDeclaration",
                  "scope": 2015,
                  "src": "768:12:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2005,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "768:7:8",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2008,
                  "name": "to",
                  "nodeType": "VariableDeclaration",
                  "scope": 2015,
                  "src": "782:10:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2007,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "782:7:8",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2010,
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "scope": 2015,
                  "src": "794:10:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2009,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "794:4:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "767:38:8"
            },
            "returnParameters": {
              "id": 2014,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2013,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 2015,
                  "src": "824:4:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 2012,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "824:4:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "823:6:8"
            },
            "scope": 2174,
            "src": "746:84:8",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "id": 2020,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "DOMAIN_SEPARATOR",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2016,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "861:2:8"
            },
            "returnParameters": {
              "id": 2019,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2018,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 2020,
                  "src": "887:7:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2017,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "887:7:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "886:9:8"
            },
            "scope": 2174,
            "src": "836:60:8",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "id": 2025,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "PERMIT_TYPEHASH",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2021,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "925:2:8"
            },
            "returnParameters": {
              "id": 2024,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2023,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 2025,
                  "src": "951:7:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2022,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "951:7:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "950:9:8"
            },
            "scope": 2174,
            "src": "901:59:8",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "id": 2032,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "nonces",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2028,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2027,
                  "name": "owner",
                  "nodeType": "VariableDeclaration",
                  "scope": 2032,
                  "src": "981:13:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2026,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "981:7:8",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "980:15:8"
            },
            "returnParameters": {
              "id": 2031,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2030,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 2032,
                  "src": "1019:4:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2029,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1019:4:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1018:6:8"
            },
            "scope": 2174,
            "src": "965:60:8",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "id": 2049,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "permit",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2047,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2034,
                  "name": "owner",
                  "nodeType": "VariableDeclaration",
                  "scope": 2049,
                  "src": "1047:13:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2033,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1047:7:8",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2036,
                  "name": "spender",
                  "nodeType": "VariableDeclaration",
                  "scope": 2049,
                  "src": "1062:15:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2035,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1062:7:8",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2038,
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "scope": 2049,
                  "src": "1079:10:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2037,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1079:4:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2040,
                  "name": "deadline",
                  "nodeType": "VariableDeclaration",
                  "scope": 2049,
                  "src": "1091:13:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2039,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1091:4:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2042,
                  "name": "v",
                  "nodeType": "VariableDeclaration",
                  "scope": 2049,
                  "src": "1106:7:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 2041,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "1106:5:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2044,
                  "name": "r",
                  "nodeType": "VariableDeclaration",
                  "scope": 2049,
                  "src": "1115:9:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2043,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1115:7:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2046,
                  "name": "s",
                  "nodeType": "VariableDeclaration",
                  "scope": 2049,
                  "src": "1126:9:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2045,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1126:7:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1046:90:8"
            },
            "returnParameters": {
              "id": 2048,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1145:0:8"
            },
            "scope": 2174,
            "src": "1031:115:8",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 2057,
            "name": "Mint",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 2056,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2051,
                  "indexed": true,
                  "name": "sender",
                  "nodeType": "VariableDeclaration",
                  "scope": 2057,
                  "src": "1163:22:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2050,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1163:7:8",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2053,
                  "indexed": false,
                  "name": "amount0",
                  "nodeType": "VariableDeclaration",
                  "scope": 2057,
                  "src": "1187:12:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2052,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1187:4:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2055,
                  "indexed": false,
                  "name": "amount1",
                  "nodeType": "VariableDeclaration",
                  "scope": 2057,
                  "src": "1201:12:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2054,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1201:4:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1162:52:8"
            },
            "src": "1152:63:8"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 2067,
            "name": "Burn",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 2066,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2059,
                  "indexed": true,
                  "name": "sender",
                  "nodeType": "VariableDeclaration",
                  "scope": 2067,
                  "src": "1231:22:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2058,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1231:7:8",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2061,
                  "indexed": false,
                  "name": "amount0",
                  "nodeType": "VariableDeclaration",
                  "scope": 2067,
                  "src": "1255:12:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2060,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1255:4:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2063,
                  "indexed": false,
                  "name": "amount1",
                  "nodeType": "VariableDeclaration",
                  "scope": 2067,
                  "src": "1269:12:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2062,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1269:4:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2065,
                  "indexed": true,
                  "name": "to",
                  "nodeType": "VariableDeclaration",
                  "scope": 2067,
                  "src": "1283:18:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2064,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1283:7:8",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1230:72:8"
            },
            "src": "1220:83:8"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 2081,
            "name": "Swap",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 2080,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2069,
                  "indexed": true,
                  "name": "sender",
                  "nodeType": "VariableDeclaration",
                  "scope": 2081,
                  "src": "1328:22:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2068,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1328:7:8",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2071,
                  "indexed": false,
                  "name": "amount0In",
                  "nodeType": "VariableDeclaration",
                  "scope": 2081,
                  "src": "1360:14:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2070,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1360:4:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2073,
                  "indexed": false,
                  "name": "amount1In",
                  "nodeType": "VariableDeclaration",
                  "scope": 2081,
                  "src": "1384:14:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2072,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1384:4:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2075,
                  "indexed": false,
                  "name": "amount0Out",
                  "nodeType": "VariableDeclaration",
                  "scope": 2081,
                  "src": "1408:15:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2074,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1408:4:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2077,
                  "indexed": false,
                  "name": "amount1Out",
                  "nodeType": "VariableDeclaration",
                  "scope": 2081,
                  "src": "1433:15:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2076,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1433:4:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2079,
                  "indexed": true,
                  "name": "to",
                  "nodeType": "VariableDeclaration",
                  "scope": 2081,
                  "src": "1458:18:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2078,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1458:7:8",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1318:164:8"
            },
            "src": "1308:175:8"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 2087,
            "name": "Sync",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 2086,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2083,
                  "indexed": false,
                  "name": "reserve0",
                  "nodeType": "VariableDeclaration",
                  "scope": 2087,
                  "src": "1499:16:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint112",
                    "typeString": "uint112"
                  },
                  "typeName": {
                    "id": 2082,
                    "name": "uint112",
                    "nodeType": "ElementaryTypeName",
                    "src": "1499:7:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint112",
                      "typeString": "uint112"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2085,
                  "indexed": false,
                  "name": "reserve1",
                  "nodeType": "VariableDeclaration",
                  "scope": 2087,
                  "src": "1517:16:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint112",
                    "typeString": "uint112"
                  },
                  "typeName": {
                    "id": 2084,
                    "name": "uint112",
                    "nodeType": "ElementaryTypeName",
                    "src": "1517:7:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint112",
                      "typeString": "uint112"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1498:36:8"
            },
            "src": "1488:47:8"
          },
          {
            "body": null,
            "documentation": null,
            "id": 2092,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "MINIMUM_LIQUIDITY",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2088,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1567:2:8"
            },
            "returnParameters": {
              "id": 2091,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2090,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 2092,
                  "src": "1593:4:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2089,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1593:4:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1592:6:8"
            },
            "scope": 2174,
            "src": "1541:58:8",
            "stateMutability": "pure",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "id": 2097,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "factory",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2093,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1620:2:8"
            },
            "returnParameters": {
              "id": 2096,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2095,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 2097,
                  "src": "1646:7:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2094,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1646:7:8",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1645:9:8"
            },
            "scope": 2174,
            "src": "1604:51:8",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "id": 2102,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "token0",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2098,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1675:2:8"
            },
            "returnParameters": {
              "id": 2101,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2100,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 2102,
                  "src": "1701:7:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2099,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1701:7:8",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1700:9:8"
            },
            "scope": 2174,
            "src": "1660:50:8",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "id": 2107,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "token1",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2103,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1730:2:8"
            },
            "returnParameters": {
              "id": 2106,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2105,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 2107,
                  "src": "1756:7:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2104,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1756:7:8",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1755:9:8"
            },
            "scope": 2174,
            "src": "1715:50:8",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "id": 2116,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getReserves",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2108,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1790:2:8"
            },
            "returnParameters": {
              "id": 2115,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2110,
                  "name": "reserve0",
                  "nodeType": "VariableDeclaration",
                  "scope": 2116,
                  "src": "1816:16:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint112",
                    "typeString": "uint112"
                  },
                  "typeName": {
                    "id": 2109,
                    "name": "uint112",
                    "nodeType": "ElementaryTypeName",
                    "src": "1816:7:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint112",
                      "typeString": "uint112"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2112,
                  "name": "reserve1",
                  "nodeType": "VariableDeclaration",
                  "scope": 2116,
                  "src": "1834:16:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint112",
                    "typeString": "uint112"
                  },
                  "typeName": {
                    "id": 2111,
                    "name": "uint112",
                    "nodeType": "ElementaryTypeName",
                    "src": "1834:7:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint112",
                      "typeString": "uint112"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2114,
                  "name": "blockTimestampLast",
                  "nodeType": "VariableDeclaration",
                  "scope": 2116,
                  "src": "1852:25:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 2113,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1852:6:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1815:63:8"
            },
            "scope": 2174,
            "src": "1770:109:8",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "id": 2121,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "price0CumulativeLast",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2117,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1913:2:8"
            },
            "returnParameters": {
              "id": 2120,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2119,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 2121,
                  "src": "1939:4:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2118,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1939:4:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1938:6:8"
            },
            "scope": 2174,
            "src": "1884:61:8",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "id": 2126,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "price1CumulativeLast",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2122,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1979:2:8"
            },
            "returnParameters": {
              "id": 2125,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2124,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 2126,
                  "src": "2005:4:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2123,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "2005:4:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2004:6:8"
            },
            "scope": 2174,
            "src": "1950:61:8",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "id": 2131,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "kLast",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2127,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2030:2:8"
            },
            "returnParameters": {
              "id": 2130,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2129,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 2131,
                  "src": "2056:4:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2128,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "2056:4:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2055:6:8"
            },
            "scope": 2174,
            "src": "2016:46:8",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "id": 2138,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "mint",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2134,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2133,
                  "name": "to",
                  "nodeType": "VariableDeclaration",
                  "scope": 2138,
                  "src": "2082:10:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2132,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2082:7:8",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2081:12:8"
            },
            "returnParameters": {
              "id": 2137,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2136,
                  "name": "liquidity",
                  "nodeType": "VariableDeclaration",
                  "scope": 2138,
                  "src": "2112:14:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2135,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "2112:4:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2111:16:8"
            },
            "scope": 2174,
            "src": "2068:60:8",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "id": 2147,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "burn",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2141,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2140,
                  "name": "to",
                  "nodeType": "VariableDeclaration",
                  "scope": 2147,
                  "src": "2147:10:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2139,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2147:7:8",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2146:12:8"
            },
            "returnParameters": {
              "id": 2146,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2143,
                  "name": "amount0",
                  "nodeType": "VariableDeclaration",
                  "scope": 2147,
                  "src": "2177:12:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2142,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "2177:4:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2145,
                  "name": "amount1",
                  "nodeType": "VariableDeclaration",
                  "scope": 2147,
                  "src": "2191:12:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2144,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "2191:4:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2176:28:8"
            },
            "scope": 2174,
            "src": "2133:72:8",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "id": 2158,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "swap",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2156,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2149,
                  "name": "amount0Out",
                  "nodeType": "VariableDeclaration",
                  "scope": 2158,
                  "src": "2224:15:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2148,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "2224:4:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2151,
                  "name": "amount1Out",
                  "nodeType": "VariableDeclaration",
                  "scope": 2158,
                  "src": "2241:15:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2150,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "2241:4:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2153,
                  "name": "to",
                  "nodeType": "VariableDeclaration",
                  "scope": 2158,
                  "src": "2258:10:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2152,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2258:7:8",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2155,
                  "name": "data",
                  "nodeType": "VariableDeclaration",
                  "scope": 2158,
                  "src": "2270:19:8",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_calldata_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 2154,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "2270:5:8",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2223:67:8"
            },
            "returnParameters": {
              "id": 2157,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2299:0:8"
            },
            "scope": 2174,
            "src": "2210:90:8",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "id": 2163,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "skim",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2161,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2160,
                  "name": "to",
                  "nodeType": "VariableDeclaration",
                  "scope": 2163,
                  "src": "2319:10:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2159,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2319:7:8",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2318:12:8"
            },
            "returnParameters": {
              "id": 2162,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2339:0:8"
            },
            "scope": 2174,
            "src": "2305:35:8",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "id": 2166,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "sync",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2164,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2358:2:8"
            },
            "returnParameters": {
              "id": 2165,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2369:0:8"
            },
            "scope": 2174,
            "src": "2345:25:8",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "id": 2173,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "initialize",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 2171,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2168,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 2173,
                  "src": "2396:7:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2167,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2396:7:8",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2170,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 2173,
                  "src": "2405:7:8",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2169,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2405:7:8",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2395:18:8"
            },
            "returnParameters": {
              "id": 2172,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2422:0:8"
            },
            "scope": 2174,
            "src": "2376:47:8",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          }
        ],
        "scope": 2175,
        "src": "26:2399:8"
      }
    ],
    "src": "0:2426:8"
  },
  "legacyAST": {
    "attributes": {
      "absolutePath": "/Users/second/Documents/work/valueswap-v2-core/contracts/interfaces/IValueswapV2Pair.sol",
      "exportedSymbols": {
        "IValueswapV2Pair": [
          2174
        ]
      }
    },
    "children": [
      {
        "attributes": {
          "literals": [
            "solidity",
            ">=",
            "0.5",
            ".0"
          ]
        },
        "id": 1934,
        "name": "PragmaDirective",
        "src": "0:24:8"
      },
      {
        "attributes": {
          "baseContracts": [
            null
          ],
          "contractDependencies": [
            null
          ],
          "contractKind": "interface",
          "documentation": null,
          "fullyImplemented": false,
          "linearizedBaseContracts": [
            2174
          ],
          "name": "IValueswapV2Pair",
          "scope": 2175
        },
        "children": [
          {
            "attributes": {
              "anonymous": false,
              "documentation": null,
              "name": "Approval"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "owner",
                      "scope": 1942,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "stateMutability": "nonpayable",
                          "type": "address"
                        },
                        "id": 1935,
                        "name": "ElementaryTypeName",
                        "src": "74:7:8"
                      }
                    ],
                    "id": 1936,
                    "name": "VariableDeclaration",
                    "src": "74:21:8"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "spender",
                      "scope": 1942,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "stateMutability": "nonpayable",
                          "type": "address"
                        },
                        "id": 1937,
                        "name": "ElementaryTypeName",
                        "src": "97:7:8"
                      }
                    ],
                    "id": 1938,
                    "name": "VariableDeclaration",
                    "src": "97:23:8"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "value",
                      "scope": 1942,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 1939,
                        "name": "ElementaryTypeName",
                        "src": "122:4:8"
                      }
                    ],
                    "id": 1940,
                    "name": "VariableDeclaration",
                    "src": "122:10:8"
                  }
                ],
                "id": 1941,
                "name": "ParameterList",
                "src": "73:60:8"
              }
            ],
            "id": 1942,
            "name": "EventDefinition",
            "src": "59:75:8"
          },
          {
            "attributes": {
              "anonymous": false,
              "documentation": null,
              "name": "Transfer"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "from",
                      "scope": 1950,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "stateMutability": "nonpayable",
                          "type": "address"
                        },
                        "id": 1943,
                        "name": "ElementaryTypeName",
                        "src": "154:7:8"
                      }
                    ],
                    "id": 1944,
                    "name": "VariableDeclaration",
                    "src": "154:20:8"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "to",
                      "scope": 1950,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "stateMutability": "nonpayable",
                          "type": "address"
                        },
                        "id": 1945,
                        "name": "ElementaryTypeName",
                        "src": "176:7:8"
                      }
                    ],
                    "id": 1946,
                    "name": "VariableDeclaration",
                    "src": "176:18:8"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "value",
                      "scope": 1950,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 1947,
                        "name": "ElementaryTypeName",
                        "src": "196:4:8"
                      }
                    ],
                    "id": 1948,
                    "name": "VariableDeclaration",
                    "src": "196:10:8"
                  }
                ],
                "id": 1949,
                "name": "ParameterList",
                "src": "153:54:8"
              }
            ],
            "id": 1950,
            "name": "EventDefinition",
            "src": "139:69:8"
          },
          {
            "attributes": {
              "body": null,
              "documentation": null,
              "implemented": false,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "name",
              "scope": 2174,
              "stateMutability": "pure",
              "superFunction": null,
              "visibility": "external"
            },
            "children": [
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 1951,
                "name": "ParameterList",
                "src": "227:2:8"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 1955,
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "type": "string",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "string",
                          "type": "string"
                        },
                        "id": 1952,
                        "name": "ElementaryTypeName",
                        "src": "253:6:8"
                      }
                    ],
                    "id": 1953,
                    "name": "VariableDeclaration",
                    "src": "253:13:8"
                  }
                ],
                "id": 1954,
                "name": "ParameterList",
                "src": "252:15:8"
              }
            ],
            "id": 1955,
            "name": "FunctionDefinition",
            "src": "214:54:8"
          },
          {
            "attributes": {
              "body": null,
              "documentation": null,
              "implemented": false,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "symbol",
              "scope": 2174,
              "stateMutability": "pure",
              "superFunction": null,
              "visibility": "external"
            },
            "children": [
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 1956,
                "name": "ParameterList",
                "src": "288:2:8"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 1960,
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "type": "string",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "string",
                          "type": "string"
                        },
                        "id": 1957,
                        "name": "ElementaryTypeName",
                        "src": "314:6:8"
                      }
                    ],
                    "id": 1958,
                    "name": "VariableDeclaration",
                    "src": "314:13:8"
                  }
                ],
                "id": 1959,
                "name": "ParameterList",
                "src": "313:15:8"
              }
            ],
            "id": 1960,
            "name": "FunctionDefinition",
            "src": "273:56:8"
          },
          {
            "attributes": {
              "body": null,
              "documentation": null,
              "implemented": false,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "decimals",
              "scope": 2174,
              "stateMutability": "pure",
              "superFunction": null,
              "visibility": "external"
            },
            "children": [
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 1961,
                "name": "ParameterList",
                "src": "351:2:8"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 1965,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint8",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint8",
                          "type": "uint8"
                        },
                        "id": 1962,
                        "name": "ElementaryTypeName",
                        "src": "377:5:8"
                      }
                    ],
                    "id": 1963,
                    "name": "VariableDeclaration",
                    "src": "377:5:8"
                  }
                ],
                "id": 1964,
                "name": "ParameterList",
                "src": "376:7:8"
              }
            ],
            "id": 1965,
            "name": "FunctionDefinition",
            "src": "334:50:8"
          },
          {
            "attributes": {
              "body": null,
              "documentation": null,
              "implemented": false,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "totalSupply",
              "scope": 2174,
              "stateMutability": "view",
              "superFunction": null,
              "visibility": "external"
            },
            "children": [
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 1966,
                "name": "ParameterList",
                "src": "409:2:8"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 1970,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 1967,
                        "name": "ElementaryTypeName",
                        "src": "435:4:8"
                      }
                    ],
                    "id": 1968,
                    "name": "VariableDeclaration",
                    "src": "435:4:8"
                  }
                ],
                "id": 1969,
                "name": "ParameterList",
                "src": "434:6:8"
              }
            ],
            "id": 1970,
            "name": "FunctionDefinition",
            "src": "389:52:8"
          },
          {
            "attributes": {
              "body": null,
              "documentation": null,
              "implemented": false,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "balanceOf",
              "scope": 2174,
              "stateMutability": "view",
              "superFunction": null,
              "visibility": "external"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "owner",
                      "scope": 1977,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "stateMutability": "nonpayable",
                          "type": "address"
                        },
                        "id": 1971,
                        "name": "ElementaryTypeName",
                        "src": "465:7:8"
                      }
                    ],
                    "id": 1972,
                    "name": "VariableDeclaration",
                    "src": "465:13:8"
                  }
                ],
                "id": 1973,
                "name": "ParameterList",
                "src": "464:15:8"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 1977,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 1974,
                        "name": "ElementaryTypeName",
                        "src": "503:4:8"
                      }
                    ],
                    "id": 1975,
                    "name": "VariableDeclaration",
                    "src": "503:4:8"
                  }
                ],
                "id": 1976,
                "name": "ParameterList",
                "src": "502:6:8"
              }
            ],
            "id": 1977,
            "name": "FunctionDefinition",
            "src": "446:63:8"
          },
          {
            "attributes": {
              "body": null,
              "documentation": null,
              "implemented": false,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "allowance",
              "scope": 2174,
              "stateMutability": "view",
              "superFunction": null,
              "visibility": "external"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "owner",
                      "scope": 1986,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "stateMutability": "nonpayable",
                          "type": "address"
                        },
                        "id": 1978,
                        "name": "ElementaryTypeName",
                        "src": "533:7:8"
                      }
                    ],
                    "id": 1979,
                    "name": "VariableDeclaration",
                    "src": "533:13:8"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "spender",
                      "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": "548:7:8"
                      }
                    ],
                    "id": 1981,
                    "name": "VariableDeclaration",
                    "src": "548:15:8"
                  }
                ],
                "id": 1982,
                "name": "ParameterList",
                "src": "532:32:8"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 1986,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 1983,
                        "name": "ElementaryTypeName",
                        "src": "588:4:8"
                      }
                    ],
                    "id": 1984,
                    "name": "VariableDeclaration",
                    "src": "588:4:8"
                  }
                ],
                "id": 1985,
                "name": "ParameterList",
                "src": "587:6:8"
              }
            ],
            "id": 1986,
            "name": "FunctionDefinition",
            "src": "514:80:8"
          },
          {
            "attributes": {
              "body": null,
              "documentation": null,
              "implemented": false,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "approve",
              "scope": 2174,
              "stateMutability": "nonpayable",
              "superFunction": null,
              "visibility": "external"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "spender",
                      "scope": 1995,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "stateMutability": "nonpayable",
                          "type": "address"
                        },
                        "id": 1987,
                        "name": "ElementaryTypeName",
                        "src": "617:7:8"
                      }
                    ],
                    "id": 1988,
                    "name": "VariableDeclaration",
                    "src": "617:15:8"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "value",
                      "scope": 1995,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 1989,
                        "name": "ElementaryTypeName",
                        "src": "634:4:8"
                      }
                    ],
                    "id": 1990,
                    "name": "VariableDeclaration",
                    "src": "634:10:8"
                  }
                ],
                "id": 1991,
                "name": "ParameterList",
                "src": "616:29:8"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 1995,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bool",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 1992,
                        "name": "ElementaryTypeName",
                        "src": "664:4:8"
                      }
                    ],
                    "id": 1993,
                    "name": "VariableDeclaration",
                    "src": "664:4:8"
                  }
                ],
                "id": 1994,
                "name": "ParameterList",
                "src": "663:6:8"
              }
            ],
            "id": 1995,
            "name": "FunctionDefinition",
            "src": "600:70:8"
          },
          {
            "attributes": {
              "body": null,
              "documentation": null,
              "implemented": false,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "transfer",
              "scope": 2174,
              "stateMutability": "nonpayable",
              "superFunction": null,
              "visibility": "external"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "to",
                      "scope": 2004,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "stateMutability": "nonpayable",
                          "type": "address"
                        },
                        "id": 1996,
                        "name": "ElementaryTypeName",
                        "src": "693:7:8"
                      }
                    ],
                    "id": 1997,
                    "name": "VariableDeclaration",
                    "src": "693:10:8"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "value",
                      "scope": 2004,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 1998,
                        "name": "ElementaryTypeName",
                        "src": "705:4:8"
                      }
                    ],
                    "id": 1999,
                    "name": "VariableDeclaration",
                    "src": "705:10:8"
                  }
                ],
                "id": 2000,
                "name": "ParameterList",
                "src": "692:24:8"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 2004,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bool",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 2001,
                        "name": "ElementaryTypeName",
                        "src": "735:4:8"
                      }
                    ],
                    "id": 2002,
                    "name": "VariableDeclaration",
                    "src": "735:4:8"
                  }
                ],
                "id": 2003,
                "name": "ParameterList",
                "src": "734:6:8"
              }
            ],
            "id": 2004,
            "name": "FunctionDefinition",
            "src": "675:66:8"
          },
          {
            "attributes": {
              "body": null,
              "documentation": null,
              "implemented": false,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "transferFrom",
              "scope": 2174,
              "stateMutability": "nonpayable",
              "superFunction": null,
              "visibility": "external"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "from",
                      "scope": 2015,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "stateMutability": "nonpayable",
                          "type": "address"
                        },
                        "id": 2005,
                        "name": "ElementaryTypeName",
                        "src": "768:7:8"
                      }
                    ],
                    "id": 2006,
                    "name": "VariableDeclaration",
                    "src": "768:12:8"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "to",
                      "scope": 2015,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "stateMutability": "nonpayable",
                          "type": "address"
                        },
                        "id": 2007,
                        "name": "ElementaryTypeName",
                        "src": "782:7:8"
                      }
                    ],
                    "id": 2008,
                    "name": "VariableDeclaration",
                    "src": "782:10:8"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "value",
                      "scope": 2015,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 2009,
                        "name": "ElementaryTypeName",
                        "src": "794:4:8"
                      }
                    ],
                    "id": 2010,
                    "name": "VariableDeclaration",
                    "src": "794:10:8"
                  }
                ],
                "id": 2011,
                "name": "ParameterList",
                "src": "767:38:8"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 2015,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bool",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 2012,
                        "name": "ElementaryTypeName",
                        "src": "824:4:8"
                      }
                    ],
                    "id": 2013,
                    "name": "VariableDeclaration",
                    "src": "824:4:8"
                  }
                ],
                "id": 2014,
                "name": "ParameterList",
                "src": "823:6:8"
              }
            ],
            "id": 2015,
            "name": "FunctionDefinition",
            "src": "746:84:8"
          },
          {
            "attributes": {
              "body": null,
              "documentation": null,
              "implemented": false,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "DOMAIN_SEPARATOR",
              "scope": 2174,
              "stateMutability": "view",
              "superFunction": null,
              "visibility": "external"
            },
            "children": [
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 2016,
                "name": "ParameterList",
                "src": "861:2:8"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 2020,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 2017,
                        "name": "ElementaryTypeName",
                        "src": "887:7:8"
                      }
                    ],
                    "id": 2018,
                    "name": "VariableDeclaration",
                    "src": "887:7:8"
                  }
                ],
                "id": 2019,
                "name": "ParameterList",
                "src": "886:9:8"
              }
            ],
            "id": 2020,
            "name": "FunctionDefinition",
            "src": "836:60:8"
          },
          {
            "attributes": {
              "body": null,
              "documentation": null,
              "implemented": false,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "PERMIT_TYPEHASH",
              "scope": 2174,
              "stateMutability": "pure",
              "superFunction": null,
              "visibility": "external"
            },
            "children": [
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 2021,
                "name": "ParameterList",
                "src": "925:2:8"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 2025,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 2022,
                        "name": "ElementaryTypeName",
                        "src": "951:7:8"
                      }
                    ],
                    "id": 2023,
                    "name": "VariableDeclaration",
                    "src": "951:7:8"
                  }
                ],
                "id": 2024,
                "name": "ParameterList",
                "src": "950:9:8"
              }
            ],
            "id": 2025,
            "name": "FunctionDefinition",
            "src": "901:59:8"
          },
          {
            "attributes": {
              "body": null,
              "documentation": null,
              "implemented": false,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "nonces",
              "scope": 2174,
              "stateMutability": "view",
              "superFunction": null,
              "visibility": "external"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "owner",
                      "scope": 2032,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "stateMutability": "nonpayable",
                          "type": "address"
                        },
                        "id": 2026,
                        "name": "ElementaryTypeName",
                        "src": "981:7:8"
                      }
                    ],
                    "id": 2027,
                    "name": "VariableDeclaration",
                    "src": "981:13:8"
                  }
                ],
                "id": 2028,
                "name": "ParameterList",
                "src": "980:15:8"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 2032,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 2029,
                        "name": "ElementaryTypeName",
                        "src": "1019:4:8"
                      }
                    ],
                    "id": 2030,
                    "name": "VariableDeclaration",
                    "src": "1019:4:8"
                  }
                ],
                "id": 2031,
                "name": "ParameterList",
                "src": "1018:6:8"
              }
            ],
            "id": 2032,
            "name": "FunctionDefinition",
            "src": "965:60:8"
          },
          {
            "attributes": {
              "body": null,
              "documentation": null,
              "implemented": false,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "permit",
              "scope": 2174,
              "stateMutability": "nonpayable",
              "superFunction": null,
              "visibility": "external"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "owner",
                      "scope": 2049,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "stateMutability": "nonpayable",
                          "type": "address"
                        },
                        "id": 2033,
                        "name": "ElementaryTypeName",
                        "src": "1047:7:8"
                      }
                    ],
                    "id": 2034,
                    "name": "VariableDeclaration",
                    "src": "1047:13:8"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "spender",
                      "scope": 2049,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "stateMutability": "nonpayable",
                          "type": "address"
                        },
                        "id": 2035,
                        "name": "ElementaryTypeName",
                        "src": "1062:7:8"
                      }
                    ],
                    "id": 2036,
                    "name": "VariableDeclaration",
                    "src": "1062:15:8"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "value",
                      "scope": 2049,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 2037,
                        "name": "ElementaryTypeName",
                        "src": "1079:4:8"
                      }
                    ],
                    "id": 2038,
                    "name": "VariableDeclaration",
                    "src": "1079:10:8"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "deadline",
                      "scope": 2049,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 2039,
                        "name": "ElementaryTypeName",
                        "src": "1091:4:8"
                      }
                    ],
                    "id": 2040,
                    "name": "VariableDeclaration",
                    "src": "1091:13:8"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "v",
                      "scope": 2049,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint8",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint8",
                          "type": "uint8"
                        },
                        "id": 2041,
                        "name": "ElementaryTypeName",
                        "src": "1106:5:8"
                      }
                    ],
                    "id": 2042,
                    "name": "VariableDeclaration",
                    "src": "1106:7:8"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "r",
                      "scope": 2049,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 2043,
                        "name": "ElementaryTypeName",
                        "src": "1115:7:8"
                      }
                    ],
                    "id": 2044,
                    "name": "VariableDeclaration",
                    "src": "1115:9:8"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "s",
                      "scope": 2049,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 2045,
                        "name": "ElementaryTypeName",
                        "src": "1126:7:8"
                      }
                    ],
                    "id": 2046,
                    "name": "VariableDeclaration",
                    "src": "1126:9:8"
                  }
                ],
                "id": 2047,
                "name": "ParameterList",
                "src": "1046:90:8"
              },
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 2048,
                "name": "ParameterList",
                "src": "1145:0:8"
              }
            ],
            "id": 2049,
            "name": "FunctionDefinition",
            "src": "1031:115:8"
          },
          {
            "attributes": {
              "anonymous": false,
              "documentation": null,
              "name": "Mint"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "sender",
                      "scope": 2057,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "stateMutability": "nonpayable",
                          "type": "address"
                        },
                        "id": 2050,
                        "name": "ElementaryTypeName",
                        "src": "1163:7:8"
                      }
                    ],
                    "id": 2051,
                    "name": "VariableDeclaration",
                    "src": "1163:22:8"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "amount0",
                      "scope": 2057,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 2052,
                        "name": "ElementaryTypeName",
                        "src": "1187:4:8"
                      }
                    ],
                    "id": 2053,
                    "name": "VariableDeclaration",
                    "src": "1187:12:8"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "amount1",
                      "scope": 2057,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 2054,
                        "name": "ElementaryTypeName",
                        "src": "1201:4:8"
                      }
                    ],
                    "id": 2055,
                    "name": "VariableDeclaration",
                    "src": "1201:12:8"
                  }
                ],
                "id": 2056,
                "name": "ParameterList",
                "src": "1162:52:8"
              }
            ],
            "id": 2057,
            "name": "EventDefinition",
            "src": "1152:63:8"
          },
          {
            "attributes": {
              "anonymous": false,
              "documentation": null,
              "name": "Burn"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "sender",
                      "scope": 2067,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "stateMutability": "nonpayable",
                          "type": "address"
                        },
                        "id": 2058,
                        "name": "ElementaryTypeName",
                        "src": "1231:7:8"
                      }
                    ],
                    "id": 2059,
                    "name": "VariableDeclaration",
                    "src": "1231:22:8"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "amount0",
                      "scope": 2067,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 2060,
                        "name": "ElementaryTypeName",
                        "src": "1255:4:8"
                      }
                    ],
                    "id": 2061,
                    "name": "VariableDeclaration",
                    "src": "1255:12:8"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "amount1",
                      "scope": 2067,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 2062,
                        "name": "ElementaryTypeName",
                        "src": "1269:4:8"
                      }
                    ],
                    "id": 2063,
                    "name": "VariableDeclaration",
                    "src": "1269:12:8"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "to",
                      "scope": 2067,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "stateMutability": "nonpayable",
                          "type": "address"
                        },
                        "id": 2064,
                        "name": "ElementaryTypeName",
                        "src": "1283:7:8"
                      }
                    ],
                    "id": 2065,
                    "name": "VariableDeclaration",
                    "src": "1283:18:8"
                  }
                ],
                "id": 2066,
                "name": "ParameterList",
                "src": "1230:72:8"
              }
            ],
            "id": 2067,
            "name": "EventDefinition",
            "src": "1220:83:8"
          },
          {
            "attributes": {
              "anonymous": false,
              "documentation": null,
              "name": "Swap"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "sender",
                      "scope": 2081,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "stateMutability": "nonpayable",
                          "type": "address"
                        },
                        "id": 2068,
                        "name": "ElementaryTypeName",
                        "src": "1328:7:8"
                      }
                    ],
                    "id": 2069,
                    "name": "VariableDeclaration",
                    "src": "1328:22:8"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "amount0In",
                      "scope": 2081,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 2070,
                        "name": "ElementaryTypeName",
                        "src": "1360:4:8"
                      }
                    ],
                    "id": 2071,
                    "name": "VariableDeclaration",
                    "src": "1360:14:8"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "amount1In",
                      "scope": 2081,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 2072,
                        "name": "ElementaryTypeName",
                        "src": "1384:4:8"
                      }
                    ],
                    "id": 2073,
                    "name": "VariableDeclaration",
                    "src": "1384:14:8"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "amount0Out",
                      "scope": 2081,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 2074,
                        "name": "ElementaryTypeName",
                        "src": "1408:4:8"
                      }
                    ],
                    "id": 2075,
                    "name": "VariableDeclaration",
                    "src": "1408:15:8"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "amount1Out",
                      "scope": 2081,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 2076,
                        "name": "ElementaryTypeName",
                        "src": "1433:4:8"
                      }
                    ],
                    "id": 2077,
                    "name": "VariableDeclaration",
                    "src": "1433:15:8"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "name": "to",
                      "scope": 2081,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "stateMutability": "nonpayable",
                          "type": "address"
                        },
                        "id": 2078,
                        "name": "ElementaryTypeName",
                        "src": "1458:7:8"
                      }
                    ],
                    "id": 2079,
                    "name": "VariableDeclaration",
                    "src": "1458:18:8"
                  }
                ],
                "id": 2080,
                "name": "ParameterList",
                "src": "1318:164:8"
              }
            ],
            "id": 2081,
            "name": "EventDefinition",
            "src": "1308:175:8"
          },
          {
            "attributes": {
              "anonymous": false,
              "documentation": null,
              "name": "Sync"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "reserve0",
                      "scope": 2087,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint112",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint112",
                          "type": "uint112"
                        },
                        "id": 2082,
                        "name": "ElementaryTypeName",
                        "src": "1499:7:8"
                      }
                    ],
                    "id": 2083,
                    "name": "VariableDeclaration",
                    "src": "1499:16:8"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "name": "reserve1",
                      "scope": 2087,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint112",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint112",
                          "type": "uint112"
                        },
                        "id": 2084,
                        "name": "ElementaryTypeName",
                        "src": "1517:7:8"
                      }
                    ],
                    "id": 2085,
                    "name": "VariableDeclaration",
                    "src": "1517:16:8"
                  }
                ],
                "id": 2086,
                "name": "ParameterList",
                "src": "1498:36:8"
              }
            ],
            "id": 2087,
            "name": "EventDefinition",
            "src": "1488:47:8"
          },
          {
            "attributes": {
              "body": null,
              "documentation": null,
              "implemented": false,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "MINIMUM_LIQUIDITY",
              "scope": 2174,
              "stateMutability": "pure",
              "superFunction": null,
              "visibility": "external"
            },
            "children": [
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 2088,
                "name": "ParameterList",
                "src": "1567:2:8"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 2092,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 2089,
                        "name": "ElementaryTypeName",
                        "src": "1593:4:8"
                      }
                    ],
                    "id": 2090,
                    "name": "VariableDeclaration",
                    "src": "1593:4:8"
                  }
                ],
                "id": 2091,
                "name": "ParameterList",
                "src": "1592:6:8"
              }
            ],
            "id": 2092,
            "name": "FunctionDefinition",
            "src": "1541:58:8"
          },
          {
            "attributes": {
              "body": null,
              "documentation": null,
              "implemented": false,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "factory",
              "scope": 2174,
              "stateMutability": "view",
              "superFunction": null,
              "visibility": "external"
            },
            "children": [
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 2093,
                "name": "ParameterList",
                "src": "1620:2:8"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 2097,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "stateMutability": "nonpayable",
                          "type": "address"
                        },
                        "id": 2094,
                        "name": "ElementaryTypeName",
                        "src": "1646:7:8"
                      }
                    ],
                    "id": 2095,
                    "name": "VariableDeclaration",
                    "src": "1646:7:8"
                  }
                ],
                "id": 2096,
                "name": "ParameterList",
                "src": "1645:9:8"
              }
            ],
            "id": 2097,
            "name": "FunctionDefinition",
            "src": "1604:51:8"
          },
          {
            "attributes": {
              "body": null,
              "documentation": null,
              "implemented": false,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "token0",
              "scope": 2174,
              "stateMutability": "view",
              "superFunction": null,
              "visibility": "external"
            },
            "children": [
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 2098,
                "name": "ParameterList",
                "src": "1675:2:8"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 2102,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "stateMutability": "nonpayable",
                          "type": "address"
                        },
                        "id": 2099,
                        "name": "ElementaryTypeName",
                        "src": "1701:7:8"
                      }
                    ],
                    "id": 2100,
                    "name": "VariableDeclaration",
                    "src": "1701:7:8"
                  }
                ],
                "id": 2101,
                "name": "ParameterList",
                "src": "1700:9:8"
              }
            ],
            "id": 2102,
            "name": "FunctionDefinition",
            "src": "1660:50:8"
          },
          {
            "attributes": {
              "body": null,
              "documentation": null,
              "implemented": false,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "token1",
              "scope": 2174,
              "stateMutability": "view",
              "superFunction": null,
              "visibility": "external"
            },
            "children": [
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 2103,
                "name": "ParameterList",
                "src": "1730:2:8"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 2107,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "stateMutability": "nonpayable",
                          "type": "address"
                        },
                        "id": 2104,
                        "name": "ElementaryTypeName",
                        "src": "1756:7:8"
                      }
                    ],
                    "id": 2105,
                    "name": "VariableDeclaration",
                    "src": "1756:7:8"
                  }
                ],
                "id": 2106,
                "name": "ParameterList",
                "src": "1755:9:8"
              }
            ],
            "id": 2107,
            "name": "FunctionDefinition",
            "src": "1715:50:8"
          },
          {
            "attributes": {
              "body": null,
              "documentation": null,
              "implemented": false,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "getReserves",
              "scope": 2174,
              "stateMutability": "view",
              "superFunction": null,
              "visibility": "external"
            },
            "children": [
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 2108,
                "name": "ParameterList",
                "src": "1790:2:8"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "reserve0",
                      "scope": 2116,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint112",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint112",
                          "type": "uint112"
                        },
                        "id": 2109,
                        "name": "ElementaryTypeName",
                        "src": "1816:7:8"
                      }
                    ],
                    "id": 2110,
                    "name": "VariableDeclaration",
                    "src": "1816:16:8"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "reserve1",
                      "scope": 2116,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint112",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint112",
                          "type": "uint112"
                        },
                        "id": 2111,
                        "name": "ElementaryTypeName",
                        "src": "1834:7:8"
                      }
                    ],
                    "id": 2112,
                    "name": "VariableDeclaration",
                    "src": "1834:16:8"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "blockTimestampLast",
                      "scope": 2116,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint32",
                          "type": "uint32"
                        },
                        "id": 2113,
                        "name": "ElementaryTypeName",
                        "src": "1852:6:8"
                      }
                    ],
                    "id": 2114,
                    "name": "VariableDeclaration",
                    "src": "1852:25:8"
                  }
                ],
                "id": 2115,
                "name": "ParameterList",
                "src": "1815:63:8"
              }
            ],
            "id": 2116,
            "name": "FunctionDefinition",
            "src": "1770:109:8"
          },
          {
            "attributes": {
              "body": null,
              "documentation": null,
              "implemented": false,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "price0CumulativeLast",
              "scope": 2174,
              "stateMutability": "view",
              "superFunction": null,
              "visibility": "external"
            },
            "children": [
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 2117,
                "name": "ParameterList",
                "src": "1913:2:8"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 2121,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 2118,
                        "name": "ElementaryTypeName",
                        "src": "1939:4:8"
                      }
                    ],
                    "id": 2119,
                    "name": "VariableDeclaration",
                    "src": "1939:4:8"
                  }
                ],
                "id": 2120,
                "name": "ParameterList",
                "src": "1938:6:8"
              }
            ],
            "id": 2121,
            "name": "FunctionDefinition",
            "src": "1884:61:8"
          },
          {
            "attributes": {
              "body": null,
              "documentation": null,
              "implemented": false,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "price1CumulativeLast",
              "scope": 2174,
              "stateMutability": "view",
              "superFunction": null,
              "visibility": "external"
            },
            "children": [
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 2122,
                "name": "ParameterList",
                "src": "1979:2:8"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 2126,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 2123,
                        "name": "ElementaryTypeName",
                        "src": "2005:4:8"
                      }
                    ],
                    "id": 2124,
                    "name": "VariableDeclaration",
                    "src": "2005:4:8"
                  }
                ],
                "id": 2125,
                "name": "ParameterList",
                "src": "2004:6:8"
              }
            ],
            "id": 2126,
            "name": "FunctionDefinition",
            "src": "1950:61:8"
          },
          {
            "attributes": {
              "body": null,
              "documentation": null,
              "implemented": false,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "kLast",
              "scope": 2174,
              "stateMutability": "view",
              "superFunction": null,
              "visibility": "external"
            },
            "children": [
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 2127,
                "name": "ParameterList",
                "src": "2030:2:8"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 2131,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 2128,
                        "name": "ElementaryTypeName",
                        "src": "2056:4:8"
                      }
                    ],
                    "id": 2129,
                    "name": "VariableDeclaration",
                    "src": "2056:4:8"
                  }
                ],
                "id": 2130,
                "name": "ParameterList",
                "src": "2055:6:8"
              }
            ],
            "id": 2131,
            "name": "FunctionDefinition",
            "src": "2016:46:8"
          },
          {
            "attributes": {
              "body": null,
              "documentation": null,
              "implemented": false,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "mint",
              "scope": 2174,
              "stateMutability": "nonpayable",
              "superFunction": null,
              "visibility": "external"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "to",
                      "scope": 2138,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "stateMutability": "nonpayable",
                          "type": "address"
                        },
                        "id": 2132,
                        "name": "ElementaryTypeName",
                        "src": "2082:7:8"
                      }
                    ],
                    "id": 2133,
                    "name": "VariableDeclaration",
                    "src": "2082:10:8"
                  }
                ],
                "id": 2134,
                "name": "ParameterList",
                "src": "2081:12:8"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "liquidity",
                      "scope": 2138,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 2135,
                        "name": "ElementaryTypeName",
                        "src": "2112:4:8"
                      }
                    ],
                    "id": 2136,
                    "name": "VariableDeclaration",
                    "src": "2112:14:8"
                  }
                ],
                "id": 2137,
                "name": "ParameterList",
                "src": "2111:16:8"
              }
            ],
            "id": 2138,
            "name": "FunctionDefinition",
            "src": "2068:60:8"
          },
          {
            "attributes": {
              "body": null,
              "documentation": null,
              "implemented": false,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "burn",
              "scope": 2174,
              "stateMutability": "nonpayable",
              "superFunction": null,
              "visibility": "external"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "to",
                      "scope": 2147,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "stateMutability": "nonpayable",
                          "type": "address"
                        },
                        "id": 2139,
                        "name": "ElementaryTypeName",
                        "src": "2147:7:8"
                      }
                    ],
                    "id": 2140,
                    "name": "VariableDeclaration",
                    "src": "2147:10:8"
                  }
                ],
                "id": 2141,
                "name": "ParameterList",
                "src": "2146:12:8"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "amount0",
                      "scope": 2147,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 2142,
                        "name": "ElementaryTypeName",
                        "src": "2177:4:8"
                      }
                    ],
                    "id": 2143,
                    "name": "VariableDeclaration",
                    "src": "2177:12:8"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "amount1",
                      "scope": 2147,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 2144,
                        "name": "ElementaryTypeName",
                        "src": "2191:4:8"
                      }
                    ],
                    "id": 2145,
                    "name": "VariableDeclaration",
                    "src": "2191:12:8"
                  }
                ],
                "id": 2146,
                "name": "ParameterList",
                "src": "2176:28:8"
              }
            ],
            "id": 2147,
            "name": "FunctionDefinition",
            "src": "2133:72:8"
          },
          {
            "attributes": {
              "body": null,
              "documentation": null,
              "implemented": false,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "swap",
              "scope": 2174,
              "stateMutability": "nonpayable",
              "superFunction": null,
              "visibility": "external"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "amount0Out",
                      "scope": 2158,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 2148,
                        "name": "ElementaryTypeName",
                        "src": "2224:4:8"
                      }
                    ],
                    "id": 2149,
                    "name": "VariableDeclaration",
                    "src": "2224:15:8"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "amount1Out",
                      "scope": 2158,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 2150,
                        "name": "ElementaryTypeName",
                        "src": "2241:4:8"
                      }
                    ],
                    "id": 2151,
                    "name": "VariableDeclaration",
                    "src": "2241:15:8"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "to",
                      "scope": 2158,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "stateMutability": "nonpayable",
                          "type": "address"
                        },
                        "id": 2152,
                        "name": "ElementaryTypeName",
                        "src": "2258:7:8"
                      }
                    ],
                    "id": 2153,
                    "name": "VariableDeclaration",
                    "src": "2258:10:8"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "data",
                      "scope": 2158,
                      "stateVariable": false,
                      "storageLocation": "calldata",
                      "type": "bytes",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes",
                          "type": "bytes"
                        },
                        "id": 2154,
                        "name": "ElementaryTypeName",
                        "src": "2270:5:8"
                      }
                    ],
                    "id": 2155,
                    "name": "VariableDeclaration",
                    "src": "2270:19:8"
                  }
                ],
                "id": 2156,
                "name": "ParameterList",
                "src": "2223:67:8"
              },
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 2157,
                "name": "ParameterList",
                "src": "2299:0:8"
              }
            ],
            "id": 2158,
            "name": "FunctionDefinition",
            "src": "2210:90:8"
          },
          {
            "attributes": {
              "body": null,
              "documentation": null,
              "implemented": false,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "skim",
              "scope": 2174,
              "stateMutability": "nonpayable",
              "superFunction": null,
              "visibility": "external"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "to",
                      "scope": 2163,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "stateMutability": "nonpayable",
                          "type": "address"
                        },
                        "id": 2159,
                        "name": "ElementaryTypeName",
                        "src": "2319:7:8"
                      }
                    ],
                    "id": 2160,
                    "name": "VariableDeclaration",
                    "src": "2319:10:8"
                  }
                ],
                "id": 2161,
                "name": "ParameterList",
                "src": "2318:12:8"
              },
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 2162,
                "name": "ParameterList",
                "src": "2339:0:8"
              }
            ],
            "id": 2163,
            "name": "FunctionDefinition",
            "src": "2305:35:8"
          },
          {
            "attributes": {
              "body": null,
              "documentation": null,
              "implemented": false,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "sync",
              "scope": 2174,
              "stateMutability": "nonpayable",
              "superFunction": null,
              "visibility": "external"
            },
            "children": [
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 2164,
                "name": "ParameterList",
                "src": "2358:2:8"
              },
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 2165,
                "name": "ParameterList",
                "src": "2369:0:8"
              }
            ],
            "id": 2166,
            "name": "FunctionDefinition",
            "src": "2345:25:8"
          },
          {
            "attributes": {
              "body": null,
              "documentation": null,
              "implemented": false,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "initialize",
              "scope": 2174,
              "stateMutability": "nonpayable",
              "superFunction": null,
              "visibility": "external"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 2173,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "stateMutability": "nonpayable",
                          "type": "address"
                        },
                        "id": 2167,
                        "name": "ElementaryTypeName",
                        "src": "2396:7:8"
                      }
                    ],
                    "id": 2168,
                    "name": "VariableDeclaration",
                    "src": "2396:7:8"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "name": "",
                      "scope": 2173,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "stateMutability": "nonpayable",
                          "type": "address"
                        },
                        "id": 2169,
                        "name": "ElementaryTypeName",
                        "src": "2405:7:8"
                      }
                    ],
                    "id": 2170,
                    "name": "VariableDeclaration",
                    "src": "2405:7:8"
                  }
                ],
                "id": 2171,
                "name": "ParameterList",
                "src": "2395:18:8"
              },
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 2172,
                "name": "ParameterList",
                "src": "2422:0:8"
              }
            ],
            "id": 2173,
            "name": "FunctionDefinition",
            "src": "2376:47:8"
          }
        ],
        "id": 2174,
        "name": "ContractDefinition",
        "src": "26:2399:8"
      }
    ],
    "id": 2175,
    "name": "SourceUnit",
    "src": "0:2426:8"
  },
  "compiler": {
    "name": "solc",
    "version": "0.5.16+commit.9c3226ce.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "3.3.3",
  "updatedAt": "2021-01-30T15:36:09.990Z",
  "devdoc": {
    "methods": {}
  },
  "userdoc": {
    "methods": {}
  }
}