{
  "contractName": "IBPool",
  "abi": [
    {
      "inputs": [],
      "name": "getNumTokens",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getCurrentTokens",
      "outputs": [
        {
          "internalType": "address[]",
          "name": "tokens",
          "type": "address[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "tokenIn",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "tokenAmountIn",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "tokenOut",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "minAmountOut",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "maxPrice",
          "type": "uint256"
        }
      ],
      "name": "swapExactAmountIn",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "tokenAmountOut",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "spotPriceAfter",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "tokenIn",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "maxAmountIn",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "tokenOut",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "tokenAmountOut",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "maxPrice",
          "type": "uint256"
        }
      ],
      "name": "swapExactAmountOut",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "tokenAmountIn",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "spotPriceAfter",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "tokenBalanceIn",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "tokenWeightIn",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "tokenBalanceOut",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "tokenWeightOut",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "tokenAmountOut",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "swapFee",
          "type": "uint256"
        }
      ],
      "name": "calcInGivenOut",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "tokenAmountIn",
          "type": "uint256"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "tokenBalanceIn",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "tokenWeightIn",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "tokenBalanceOut",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "tokenWeightOut",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "tokenAmountIn",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "swapFee",
          "type": "uint256"
        }
      ],
      "name": "calcOutGivenIn",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "tokenAmountOut",
          "type": "uint256"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "token",
          "type": "address"
        }
      ],
      "name": "getNormalizedWeight",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "token",
          "type": "address"
        }
      ],
      "name": "getDenormalizedWeight",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getTotalDenormalizedWeight",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "isFinalized",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "token",
          "type": "address"
        }
      ],
      "name": "getBalance",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getSwapFee",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "metadata": "{\"compiler\":{\"version\":\"0.6.8+commit.0bbfe453\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenBalanceIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenWeightIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenBalanceOut\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenWeightOut\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenAmountOut\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"swapFee\",\"type\":\"uint256\"}],\"name\":\"calcInGivenOut\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenAmountIn\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenBalanceIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenWeightIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenBalanceOut\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenWeightOut\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"tokenAmountIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"swapFee\",\"type\":\"uint256\"}],\"name\":\"calcOutGivenIn\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenAmountOut\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"getBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCurrentTokens\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"tokens\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"getDenormalizedWeight\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"getNormalizedWeight\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getNumTokens\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getSwapFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTotalDenormalizedWeight\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isFinalized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenIn\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenAmountIn\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"tokenOut\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"minAmountOut\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPrice\",\"type\":\"uint256\"}],\"name\":\"swapExactAmountIn\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenAmountOut\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"spotPriceAfter\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"tokenIn\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"maxAmountIn\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"tokenOut\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenAmountOut\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxPrice\",\"type\":\"uint256\"}],\"name\":\"swapExactAmountOut\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenAmountIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"spotPriceAfter\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"project:/contracts/interfaces/balancer/IBPool.sol\":\"IBPool\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"project:/contracts/interfaces/balancer/IBPool.sol\":{\"keccak256\":\"0x44aabc527a41d03edb6168085847ffcee7ef767403ad3967f3240f3a2ebc8406\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b9352a211a4925a54a9436cde96f92b6413e3c42b42e74cb4acf728a52059516\",\"dweb:/ipfs/QmdLz1gPMciRXhgoePHngg3J6iWELKbZ1XcZHsG4M5N4Ef\"]}},\"version\":1}",
  "bytecode": "0x",
  "deployedBytecode": "0x",
  "immutableReferences": {},
  "sourceMap": "",
  "deployedSourceMap": "",
  "source": "// SPDX-License-Identifier: MIT\npragma solidity 0.6.8;\n\ninterface IBPool {\n    function getNumTokens() external view returns (uint);\n    function getCurrentTokens() external view returns (address[] memory tokens);\n    function swapExactAmountIn(\n        address tokenIn,\n        uint tokenAmountIn,\n        address tokenOut,\n        uint minAmountOut,\n        uint maxPrice) external returns (uint tokenAmountOut, uint spotPriceAfter);\n    function swapExactAmountOut(\n        address tokenIn,\n        uint maxAmountIn,\n        address tokenOut,\n        uint tokenAmountOut,\n        uint maxPrice) external returns (uint tokenAmountIn, uint spotPriceAfter);\n    function calcInGivenOut(\n        uint tokenBalanceIn,\n        uint tokenWeightIn,\n        uint tokenBalanceOut,\n        uint tokenWeightOut,\n        uint tokenAmountOut,\n        uint swapFee) external pure returns (uint tokenAmountIn);\n    function calcOutGivenIn(\n        uint tokenBalanceIn,\n        uint tokenWeightIn,\n        uint tokenBalanceOut,\n        uint tokenWeightOut,\n        uint tokenAmountIn,\n        uint swapFee) external pure returns (uint tokenAmountOut);\n    function getNormalizedWeight(address token) external view returns (uint);\n    function getDenormalizedWeight(address token) external view returns (uint);\n    function getTotalDenormalizedWeight() external view returns (uint);\n    function isFinalized() external view returns (bool);\n    function getBalance(address token) external view returns (uint);\n    function getSwapFee() external view returns (uint);\n}\n",
  "sourcePath": "/home/thezviad_gmail_com/src/swappa/contracts/interfaces/balancer/IBPool.sol",
  "ast": {
    "absolutePath": "project:/contracts/interfaces/balancer/IBPool.sol",
    "exportedSymbols": {
      "IBPool": [
        1371
      ]
    },
    "id": 1372,
    "license": "MIT",
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 1255,
        "literals": [
          "solidity",
          "0.6",
          ".8"
        ],
        "nodeType": "PragmaDirective",
        "src": "32:22:10"
      },
      {
        "abstract": false,
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "interface",
        "documentation": null,
        "fullyImplemented": false,
        "id": 1371,
        "linearizedBaseContracts": [
          1371
        ],
        "name": "IBPool",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "body": null,
            "documentation": null,
            "functionSelector": "cd2ed8fb",
            "id": 1260,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getNumTokens",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 1256,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "100:2:10"
            },
            "returnParameters": {
              "id": 1259,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1258,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1260,
                  "src": "126:4:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1257,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "126:4:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "125:6:10"
            },
            "scope": 1371,
            "src": "79:53:10",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "functionSelector": "cc77828d",
            "id": 1266,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getCurrentTokens",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 1261,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "162:2:10"
            },
            "returnParameters": {
              "id": 1265,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1264,
                  "mutability": "mutable",
                  "name": "tokens",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1266,
                  "src": "188:23:10",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 1262,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "188:7:10",
                      "stateMutability": "nonpayable",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 1263,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "188:9:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "187:25:10"
            },
            "scope": 1371,
            "src": "137:76:10",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "functionSelector": "8201aa3f",
            "id": 1283,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "swapExactAmountIn",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 1277,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1268,
                  "mutability": "mutable",
                  "name": "tokenIn",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1283,
                  "src": "254:15:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1267,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "254:7:10",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1270,
                  "mutability": "mutable",
                  "name": "tokenAmountIn",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1283,
                  "src": "279:18:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1269,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "279:4:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1272,
                  "mutability": "mutable",
                  "name": "tokenOut",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1283,
                  "src": "307:16:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1271,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "307:7:10",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1274,
                  "mutability": "mutable",
                  "name": "minAmountOut",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1283,
                  "src": "333:17:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1273,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "333:4:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1276,
                  "mutability": "mutable",
                  "name": "maxPrice",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1283,
                  "src": "360:13:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1275,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "360:4:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "244:130:10"
            },
            "returnParameters": {
              "id": 1282,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1279,
                  "mutability": "mutable",
                  "name": "tokenAmountOut",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1283,
                  "src": "393:19:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1278,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "393:4:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1281,
                  "mutability": "mutable",
                  "name": "spotPriceAfter",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1283,
                  "src": "414:19:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1280,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "414:4:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "392:42:10"
            },
            "scope": 1371,
            "src": "218:217:10",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "functionSelector": "7c5e9ea4",
            "id": 1300,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "swapExactAmountOut",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 1294,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1285,
                  "mutability": "mutable",
                  "name": "tokenIn",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1300,
                  "src": "477:15:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1284,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "477:7:10",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1287,
                  "mutability": "mutable",
                  "name": "maxAmountIn",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1300,
                  "src": "502:16:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1286,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "502:4:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1289,
                  "mutability": "mutable",
                  "name": "tokenOut",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1300,
                  "src": "528:16:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1288,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "528:7:10",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1291,
                  "mutability": "mutable",
                  "name": "tokenAmountOut",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1300,
                  "src": "554:19:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1290,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "554:4:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1293,
                  "mutability": "mutable",
                  "name": "maxPrice",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1300,
                  "src": "583:13:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1292,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "583:4:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "467:130:10"
            },
            "returnParameters": {
              "id": 1299,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1296,
                  "mutability": "mutable",
                  "name": "tokenAmountIn",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1300,
                  "src": "616:18:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1295,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "616:4:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1298,
                  "mutability": "mutable",
                  "name": "spotPriceAfter",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1300,
                  "src": "636:19:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1297,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "636:4:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "615:41:10"
            },
            "scope": 1371,
            "src": "440:217:10",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "functionSelector": "f8d6aed4",
            "id": 1317,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "calcInGivenOut",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 1313,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1302,
                  "mutability": "mutable",
                  "name": "tokenBalanceIn",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1317,
                  "src": "695:19:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1301,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "695:4:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1304,
                  "mutability": "mutable",
                  "name": "tokenWeightIn",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1317,
                  "src": "724:18:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1303,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "724:4:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1306,
                  "mutability": "mutable",
                  "name": "tokenBalanceOut",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1317,
                  "src": "752:20:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1305,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "752:4:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1308,
                  "mutability": "mutable",
                  "name": "tokenWeightOut",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1317,
                  "src": "782:19:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1307,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "782:4:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1310,
                  "mutability": "mutable",
                  "name": "tokenAmountOut",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1317,
                  "src": "811:19:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1309,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "811:4:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1312,
                  "mutability": "mutable",
                  "name": "swapFee",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1317,
                  "src": "840:12:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1311,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "840:4:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "685:168:10"
            },
            "returnParameters": {
              "id": 1316,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1315,
                  "mutability": "mutable",
                  "name": "tokenAmountIn",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1317,
                  "src": "877:18:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1314,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "877:4:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "876:20:10"
            },
            "scope": 1371,
            "src": "662:235:10",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "functionSelector": "ba9530a6",
            "id": 1334,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "calcOutGivenIn",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 1330,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1319,
                  "mutability": "mutable",
                  "name": "tokenBalanceIn",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1334,
                  "src": "935:19:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1318,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "935:4:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1321,
                  "mutability": "mutable",
                  "name": "tokenWeightIn",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1334,
                  "src": "964:18:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1320,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "964:4:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1323,
                  "mutability": "mutable",
                  "name": "tokenBalanceOut",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1334,
                  "src": "992:20:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1322,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "992:4:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1325,
                  "mutability": "mutable",
                  "name": "tokenWeightOut",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1334,
                  "src": "1022:19:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1324,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1022:4:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1327,
                  "mutability": "mutable",
                  "name": "tokenAmountIn",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1334,
                  "src": "1051:18:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1326,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1051:4:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1329,
                  "mutability": "mutable",
                  "name": "swapFee",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1334,
                  "src": "1079:12:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1328,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1079:4:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "925:167:10"
            },
            "returnParameters": {
              "id": 1333,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1332,
                  "mutability": "mutable",
                  "name": "tokenAmountOut",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1334,
                  "src": "1116:19:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1331,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1116:4:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1115:21:10"
            },
            "scope": 1371,
            "src": "902:235:10",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "functionSelector": "f1b8a9b7",
            "id": 1341,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getNormalizedWeight",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 1337,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1336,
                  "mutability": "mutable",
                  "name": "token",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1341,
                  "src": "1171:13:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1335,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1171:7:10",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1170:15:10"
            },
            "returnParameters": {
              "id": 1340,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1339,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1341,
                  "src": "1209:4:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1338,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1209:4:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1208:6:10"
            },
            "scope": 1371,
            "src": "1142:73:10",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "functionSelector": "948d8ce6",
            "id": 1348,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getDenormalizedWeight",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 1344,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1343,
                  "mutability": "mutable",
                  "name": "token",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1348,
                  "src": "1251:13:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1342,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1251:7:10",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1250:15:10"
            },
            "returnParameters": {
              "id": 1347,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1346,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1348,
                  "src": "1289:4:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1345,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1289:4:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1288:6:10"
            },
            "scope": 1371,
            "src": "1220:75:10",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "functionSelector": "936c3477",
            "id": 1353,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getTotalDenormalizedWeight",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 1349,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1335:2:10"
            },
            "returnParameters": {
              "id": 1352,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1351,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1353,
                  "src": "1361:4:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1350,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1361:4:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1360:6:10"
            },
            "scope": 1371,
            "src": "1300:67:10",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "functionSelector": "8d4e4083",
            "id": 1358,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "isFinalized",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 1354,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1392:2:10"
            },
            "returnParameters": {
              "id": 1357,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1356,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1358,
                  "src": "1418:4:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 1355,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "1418:4:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1417:6:10"
            },
            "scope": 1371,
            "src": "1372:52:10",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "functionSelector": "f8b2cb4f",
            "id": 1365,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getBalance",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 1361,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1360,
                  "mutability": "mutable",
                  "name": "token",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1365,
                  "src": "1449:13:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1359,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1449:7:10",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1448:15:10"
            },
            "returnParameters": {
              "id": 1364,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1363,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1365,
                  "src": "1487:4:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1362,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1487:4:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1486:6:10"
            },
            "scope": 1371,
            "src": "1429:64:10",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "functionSelector": "d4cadf68",
            "id": 1370,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getSwapFee",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 1366,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1517:2:10"
            },
            "returnParameters": {
              "id": 1369,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1368,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1370,
                  "src": "1543:4:10",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1367,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "1543:4:10",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1542:6:10"
            },
            "scope": 1371,
            "src": "1498:51:10",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          }
        ],
        "scope": 1372,
        "src": "56:1495:10"
      }
    ],
    "src": "32:1520:10"
  },
  "legacyAST": {
    "attributes": {
      "absolutePath": "project:/contracts/interfaces/balancer/IBPool.sol",
      "exportedSymbols": {
        "IBPool": [
          1371
        ]
      },
      "license": "MIT"
    },
    "children": [
      {
        "attributes": {
          "literals": [
            "solidity",
            "0.6",
            ".8"
          ]
        },
        "id": 1255,
        "name": "PragmaDirective",
        "src": "32:22:10"
      },
      {
        "attributes": {
          "abstract": false,
          "baseContracts": [
            null
          ],
          "contractDependencies": [
            null
          ],
          "contractKind": "interface",
          "documentation": null,
          "fullyImplemented": false,
          "linearizedBaseContracts": [
            1371
          ],
          "name": "IBPool",
          "scope": 1372
        },
        "children": [
          {
            "attributes": {
              "body": null,
              "documentation": null,
              "functionSelector": "cd2ed8fb",
              "implemented": false,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "getNumTokens",
              "overrides": null,
              "scope": 1371,
              "stateMutability": "view",
              "virtual": false,
              "visibility": "external"
            },
            "children": [
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 1256,
                "name": "ParameterList",
                "src": "100:2:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "overrides": null,
                      "scope": 1260,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 1257,
                        "name": "ElementaryTypeName",
                        "src": "126:4:10"
                      }
                    ],
                    "id": 1258,
                    "name": "VariableDeclaration",
                    "src": "126:4:10"
                  }
                ],
                "id": 1259,
                "name": "ParameterList",
                "src": "125:6:10"
              }
            ],
            "id": 1260,
            "name": "FunctionDefinition",
            "src": "79:53:10"
          },
          {
            "attributes": {
              "body": null,
              "documentation": null,
              "functionSelector": "cc77828d",
              "implemented": false,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "getCurrentTokens",
              "overrides": null,
              "scope": 1371,
              "stateMutability": "view",
              "virtual": false,
              "visibility": "external"
            },
            "children": [
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 1261,
                "name": "ParameterList",
                "src": "162:2:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "tokens",
                      "overrides": null,
                      "scope": 1266,
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "type": "address[]",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "length": null,
                          "type": "address[]"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "address",
                              "stateMutability": "nonpayable",
                              "type": "address"
                            },
                            "id": 1262,
                            "name": "ElementaryTypeName",
                            "src": "188:7:10"
                          }
                        ],
                        "id": 1263,
                        "name": "ArrayTypeName",
                        "src": "188:9:10"
                      }
                    ],
                    "id": 1264,
                    "name": "VariableDeclaration",
                    "src": "188:23:10"
                  }
                ],
                "id": 1265,
                "name": "ParameterList",
                "src": "187:25:10"
              }
            ],
            "id": 1266,
            "name": "FunctionDefinition",
            "src": "137:76:10"
          },
          {
            "attributes": {
              "body": null,
              "documentation": null,
              "functionSelector": "8201aa3f",
              "implemented": false,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "swapExactAmountIn",
              "overrides": null,
              "scope": 1371,
              "stateMutability": "nonpayable",
              "virtual": false,
              "visibility": "external"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "tokenIn",
                      "overrides": null,
                      "scope": 1283,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "stateMutability": "nonpayable",
                          "type": "address"
                        },
                        "id": 1267,
                        "name": "ElementaryTypeName",
                        "src": "254:7:10"
                      }
                    ],
                    "id": 1268,
                    "name": "VariableDeclaration",
                    "src": "254:15:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "tokenAmountIn",
                      "overrides": null,
                      "scope": 1283,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 1269,
                        "name": "ElementaryTypeName",
                        "src": "279:4:10"
                      }
                    ],
                    "id": 1270,
                    "name": "VariableDeclaration",
                    "src": "279:18:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "tokenOut",
                      "overrides": null,
                      "scope": 1283,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "stateMutability": "nonpayable",
                          "type": "address"
                        },
                        "id": 1271,
                        "name": "ElementaryTypeName",
                        "src": "307:7:10"
                      }
                    ],
                    "id": 1272,
                    "name": "VariableDeclaration",
                    "src": "307:16:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "minAmountOut",
                      "overrides": null,
                      "scope": 1283,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 1273,
                        "name": "ElementaryTypeName",
                        "src": "333:4:10"
                      }
                    ],
                    "id": 1274,
                    "name": "VariableDeclaration",
                    "src": "333:17:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "maxPrice",
                      "overrides": null,
                      "scope": 1283,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 1275,
                        "name": "ElementaryTypeName",
                        "src": "360:4:10"
                      }
                    ],
                    "id": 1276,
                    "name": "VariableDeclaration",
                    "src": "360:13:10"
                  }
                ],
                "id": 1277,
                "name": "ParameterList",
                "src": "244:130:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "tokenAmountOut",
                      "overrides": null,
                      "scope": 1283,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 1278,
                        "name": "ElementaryTypeName",
                        "src": "393:4:10"
                      }
                    ],
                    "id": 1279,
                    "name": "VariableDeclaration",
                    "src": "393:19:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "spotPriceAfter",
                      "overrides": null,
                      "scope": 1283,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 1280,
                        "name": "ElementaryTypeName",
                        "src": "414:4:10"
                      }
                    ],
                    "id": 1281,
                    "name": "VariableDeclaration",
                    "src": "414:19:10"
                  }
                ],
                "id": 1282,
                "name": "ParameterList",
                "src": "392:42:10"
              }
            ],
            "id": 1283,
            "name": "FunctionDefinition",
            "src": "218:217:10"
          },
          {
            "attributes": {
              "body": null,
              "documentation": null,
              "functionSelector": "7c5e9ea4",
              "implemented": false,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "swapExactAmountOut",
              "overrides": null,
              "scope": 1371,
              "stateMutability": "nonpayable",
              "virtual": false,
              "visibility": "external"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "tokenIn",
                      "overrides": null,
                      "scope": 1300,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "stateMutability": "nonpayable",
                          "type": "address"
                        },
                        "id": 1284,
                        "name": "ElementaryTypeName",
                        "src": "477:7:10"
                      }
                    ],
                    "id": 1285,
                    "name": "VariableDeclaration",
                    "src": "477:15:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "maxAmountIn",
                      "overrides": null,
                      "scope": 1300,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 1286,
                        "name": "ElementaryTypeName",
                        "src": "502:4:10"
                      }
                    ],
                    "id": 1287,
                    "name": "VariableDeclaration",
                    "src": "502:16:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "tokenOut",
                      "overrides": null,
                      "scope": 1300,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "stateMutability": "nonpayable",
                          "type": "address"
                        },
                        "id": 1288,
                        "name": "ElementaryTypeName",
                        "src": "528:7:10"
                      }
                    ],
                    "id": 1289,
                    "name": "VariableDeclaration",
                    "src": "528:16:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "tokenAmountOut",
                      "overrides": null,
                      "scope": 1300,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 1290,
                        "name": "ElementaryTypeName",
                        "src": "554:4:10"
                      }
                    ],
                    "id": 1291,
                    "name": "VariableDeclaration",
                    "src": "554:19:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "maxPrice",
                      "overrides": null,
                      "scope": 1300,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 1292,
                        "name": "ElementaryTypeName",
                        "src": "583:4:10"
                      }
                    ],
                    "id": 1293,
                    "name": "VariableDeclaration",
                    "src": "583:13:10"
                  }
                ],
                "id": 1294,
                "name": "ParameterList",
                "src": "467:130:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "tokenAmountIn",
                      "overrides": null,
                      "scope": 1300,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 1295,
                        "name": "ElementaryTypeName",
                        "src": "616:4:10"
                      }
                    ],
                    "id": 1296,
                    "name": "VariableDeclaration",
                    "src": "616:18:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "spotPriceAfter",
                      "overrides": null,
                      "scope": 1300,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 1297,
                        "name": "ElementaryTypeName",
                        "src": "636:4:10"
                      }
                    ],
                    "id": 1298,
                    "name": "VariableDeclaration",
                    "src": "636:19:10"
                  }
                ],
                "id": 1299,
                "name": "ParameterList",
                "src": "615:41:10"
              }
            ],
            "id": 1300,
            "name": "FunctionDefinition",
            "src": "440:217:10"
          },
          {
            "attributes": {
              "body": null,
              "documentation": null,
              "functionSelector": "f8d6aed4",
              "implemented": false,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "calcInGivenOut",
              "overrides": null,
              "scope": 1371,
              "stateMutability": "pure",
              "virtual": false,
              "visibility": "external"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "tokenBalanceIn",
                      "overrides": null,
                      "scope": 1317,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 1301,
                        "name": "ElementaryTypeName",
                        "src": "695:4:10"
                      }
                    ],
                    "id": 1302,
                    "name": "VariableDeclaration",
                    "src": "695:19:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "tokenWeightIn",
                      "overrides": null,
                      "scope": 1317,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 1303,
                        "name": "ElementaryTypeName",
                        "src": "724:4:10"
                      }
                    ],
                    "id": 1304,
                    "name": "VariableDeclaration",
                    "src": "724:18:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "tokenBalanceOut",
                      "overrides": null,
                      "scope": 1317,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 1305,
                        "name": "ElementaryTypeName",
                        "src": "752:4:10"
                      }
                    ],
                    "id": 1306,
                    "name": "VariableDeclaration",
                    "src": "752:20:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "tokenWeightOut",
                      "overrides": null,
                      "scope": 1317,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 1307,
                        "name": "ElementaryTypeName",
                        "src": "782:4:10"
                      }
                    ],
                    "id": 1308,
                    "name": "VariableDeclaration",
                    "src": "782:19:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "tokenAmountOut",
                      "overrides": null,
                      "scope": 1317,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 1309,
                        "name": "ElementaryTypeName",
                        "src": "811:4:10"
                      }
                    ],
                    "id": 1310,
                    "name": "VariableDeclaration",
                    "src": "811:19:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "swapFee",
                      "overrides": null,
                      "scope": 1317,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 1311,
                        "name": "ElementaryTypeName",
                        "src": "840:4:10"
                      }
                    ],
                    "id": 1312,
                    "name": "VariableDeclaration",
                    "src": "840:12:10"
                  }
                ],
                "id": 1313,
                "name": "ParameterList",
                "src": "685:168:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "tokenAmountIn",
                      "overrides": null,
                      "scope": 1317,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 1314,
                        "name": "ElementaryTypeName",
                        "src": "877:4:10"
                      }
                    ],
                    "id": 1315,
                    "name": "VariableDeclaration",
                    "src": "877:18:10"
                  }
                ],
                "id": 1316,
                "name": "ParameterList",
                "src": "876:20:10"
              }
            ],
            "id": 1317,
            "name": "FunctionDefinition",
            "src": "662:235:10"
          },
          {
            "attributes": {
              "body": null,
              "documentation": null,
              "functionSelector": "ba9530a6",
              "implemented": false,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "calcOutGivenIn",
              "overrides": null,
              "scope": 1371,
              "stateMutability": "pure",
              "virtual": false,
              "visibility": "external"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "tokenBalanceIn",
                      "overrides": null,
                      "scope": 1334,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 1318,
                        "name": "ElementaryTypeName",
                        "src": "935:4:10"
                      }
                    ],
                    "id": 1319,
                    "name": "VariableDeclaration",
                    "src": "935:19:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "tokenWeightIn",
                      "overrides": null,
                      "scope": 1334,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 1320,
                        "name": "ElementaryTypeName",
                        "src": "964:4:10"
                      }
                    ],
                    "id": 1321,
                    "name": "VariableDeclaration",
                    "src": "964:18:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "tokenBalanceOut",
                      "overrides": null,
                      "scope": 1334,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 1322,
                        "name": "ElementaryTypeName",
                        "src": "992:4:10"
                      }
                    ],
                    "id": 1323,
                    "name": "VariableDeclaration",
                    "src": "992:20:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "tokenWeightOut",
                      "overrides": null,
                      "scope": 1334,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 1324,
                        "name": "ElementaryTypeName",
                        "src": "1022:4:10"
                      }
                    ],
                    "id": 1325,
                    "name": "VariableDeclaration",
                    "src": "1022:19:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "tokenAmountIn",
                      "overrides": null,
                      "scope": 1334,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 1326,
                        "name": "ElementaryTypeName",
                        "src": "1051:4:10"
                      }
                    ],
                    "id": 1327,
                    "name": "VariableDeclaration",
                    "src": "1051:18:10"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "swapFee",
                      "overrides": null,
                      "scope": 1334,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 1328,
                        "name": "ElementaryTypeName",
                        "src": "1079:4:10"
                      }
                    ],
                    "id": 1329,
                    "name": "VariableDeclaration",
                    "src": "1079:12:10"
                  }
                ],
                "id": 1330,
                "name": "ParameterList",
                "src": "925:167:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "tokenAmountOut",
                      "overrides": null,
                      "scope": 1334,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 1331,
                        "name": "ElementaryTypeName",
                        "src": "1116:4:10"
                      }
                    ],
                    "id": 1332,
                    "name": "VariableDeclaration",
                    "src": "1116:19:10"
                  }
                ],
                "id": 1333,
                "name": "ParameterList",
                "src": "1115:21:10"
              }
            ],
            "id": 1334,
            "name": "FunctionDefinition",
            "src": "902:235:10"
          },
          {
            "attributes": {
              "body": null,
              "documentation": null,
              "functionSelector": "f1b8a9b7",
              "implemented": false,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "getNormalizedWeight",
              "overrides": null,
              "scope": 1371,
              "stateMutability": "view",
              "virtual": false,
              "visibility": "external"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "token",
                      "overrides": null,
                      "scope": 1341,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "stateMutability": "nonpayable",
                          "type": "address"
                        },
                        "id": 1335,
                        "name": "ElementaryTypeName",
                        "src": "1171:7:10"
                      }
                    ],
                    "id": 1336,
                    "name": "VariableDeclaration",
                    "src": "1171:13:10"
                  }
                ],
                "id": 1337,
                "name": "ParameterList",
                "src": "1170:15:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "overrides": null,
                      "scope": 1341,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 1338,
                        "name": "ElementaryTypeName",
                        "src": "1209:4:10"
                      }
                    ],
                    "id": 1339,
                    "name": "VariableDeclaration",
                    "src": "1209:4:10"
                  }
                ],
                "id": 1340,
                "name": "ParameterList",
                "src": "1208:6:10"
              }
            ],
            "id": 1341,
            "name": "FunctionDefinition",
            "src": "1142:73:10"
          },
          {
            "attributes": {
              "body": null,
              "documentation": null,
              "functionSelector": "948d8ce6",
              "implemented": false,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "getDenormalizedWeight",
              "overrides": null,
              "scope": 1371,
              "stateMutability": "view",
              "virtual": false,
              "visibility": "external"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "token",
                      "overrides": null,
                      "scope": 1348,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "stateMutability": "nonpayable",
                          "type": "address"
                        },
                        "id": 1342,
                        "name": "ElementaryTypeName",
                        "src": "1251:7:10"
                      }
                    ],
                    "id": 1343,
                    "name": "VariableDeclaration",
                    "src": "1251:13:10"
                  }
                ],
                "id": 1344,
                "name": "ParameterList",
                "src": "1250:15:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "overrides": null,
                      "scope": 1348,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 1345,
                        "name": "ElementaryTypeName",
                        "src": "1289:4:10"
                      }
                    ],
                    "id": 1346,
                    "name": "VariableDeclaration",
                    "src": "1289:4:10"
                  }
                ],
                "id": 1347,
                "name": "ParameterList",
                "src": "1288:6:10"
              }
            ],
            "id": 1348,
            "name": "FunctionDefinition",
            "src": "1220:75:10"
          },
          {
            "attributes": {
              "body": null,
              "documentation": null,
              "functionSelector": "936c3477",
              "implemented": false,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "getTotalDenormalizedWeight",
              "overrides": null,
              "scope": 1371,
              "stateMutability": "view",
              "virtual": false,
              "visibility": "external"
            },
            "children": [
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 1349,
                "name": "ParameterList",
                "src": "1335:2:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "overrides": null,
                      "scope": 1353,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 1350,
                        "name": "ElementaryTypeName",
                        "src": "1361:4:10"
                      }
                    ],
                    "id": 1351,
                    "name": "VariableDeclaration",
                    "src": "1361:4:10"
                  }
                ],
                "id": 1352,
                "name": "ParameterList",
                "src": "1360:6:10"
              }
            ],
            "id": 1353,
            "name": "FunctionDefinition",
            "src": "1300:67:10"
          },
          {
            "attributes": {
              "body": null,
              "documentation": null,
              "functionSelector": "8d4e4083",
              "implemented": false,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "isFinalized",
              "overrides": null,
              "scope": 1371,
              "stateMutability": "view",
              "virtual": false,
              "visibility": "external"
            },
            "children": [
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 1354,
                "name": "ParameterList",
                "src": "1392:2:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "overrides": null,
                      "scope": 1358,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bool",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bool",
                          "type": "bool"
                        },
                        "id": 1355,
                        "name": "ElementaryTypeName",
                        "src": "1418:4:10"
                      }
                    ],
                    "id": 1356,
                    "name": "VariableDeclaration",
                    "src": "1418:4:10"
                  }
                ],
                "id": 1357,
                "name": "ParameterList",
                "src": "1417:6:10"
              }
            ],
            "id": 1358,
            "name": "FunctionDefinition",
            "src": "1372:52:10"
          },
          {
            "attributes": {
              "body": null,
              "documentation": null,
              "functionSelector": "f8b2cb4f",
              "implemented": false,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "getBalance",
              "overrides": null,
              "scope": 1371,
              "stateMutability": "view",
              "virtual": false,
              "visibility": "external"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "token",
                      "overrides": null,
                      "scope": 1365,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "stateMutability": "nonpayable",
                          "type": "address"
                        },
                        "id": 1359,
                        "name": "ElementaryTypeName",
                        "src": "1449:7:10"
                      }
                    ],
                    "id": 1360,
                    "name": "VariableDeclaration",
                    "src": "1449:13:10"
                  }
                ],
                "id": 1361,
                "name": "ParameterList",
                "src": "1448:15:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "overrides": null,
                      "scope": 1365,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 1362,
                        "name": "ElementaryTypeName",
                        "src": "1487:4:10"
                      }
                    ],
                    "id": 1363,
                    "name": "VariableDeclaration",
                    "src": "1487:4:10"
                  }
                ],
                "id": 1364,
                "name": "ParameterList",
                "src": "1486:6:10"
              }
            ],
            "id": 1365,
            "name": "FunctionDefinition",
            "src": "1429:64:10"
          },
          {
            "attributes": {
              "body": null,
              "documentation": null,
              "functionSelector": "d4cadf68",
              "implemented": false,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "getSwapFee",
              "overrides": null,
              "scope": 1371,
              "stateMutability": "view",
              "virtual": false,
              "visibility": "external"
            },
            "children": [
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 1366,
                "name": "ParameterList",
                "src": "1517:2:10"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "",
                      "overrides": null,
                      "scope": 1370,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 1367,
                        "name": "ElementaryTypeName",
                        "src": "1543:4:10"
                      }
                    ],
                    "id": 1368,
                    "name": "VariableDeclaration",
                    "src": "1543:4:10"
                  }
                ],
                "id": 1369,
                "name": "ParameterList",
                "src": "1542:6:10"
              }
            ],
            "id": 1370,
            "name": "FunctionDefinition",
            "src": "1498:51:10"
          }
        ],
        "id": 1371,
        "name": "ContractDefinition",
        "src": "56:1495:10"
      }
    ],
    "id": 1372,
    "name": "SourceUnit",
    "src": "32:1520:10"
  },
  "compiler": {
    "name": "solc",
    "version": "0.6.8+commit.0bbfe453.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "3.4.16",
  "updatedAt": "2025-02-07T17:50:42.767Z",
  "devdoc": {
    "methods": {}
  },
  "userdoc": {
    "methods": {}
  }
}