{
  "contractName": "IBRegistry",
  "abi": [
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "token1",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "token2",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "oldIndices",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "newIndices",
          "type": "bytes32"
        }
      ],
      "name": "IndicesUpdated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "pool",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "token1",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "token2",
          "type": "address"
        }
      ],
      "name": "PoolTokenPairAdded",
      "type": "event"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "pool",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "fromToken",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "destToken",
          "type": "address"
        }
      ],
      "name": "getPairInfo",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "weight1",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "weight2",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "swapFee",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "fromToken",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "destToken",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "offset",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "limit",
          "type": "uint256"
        }
      ],
      "name": "getPoolsWithLimit",
      "outputs": [
        {
          "internalType": "address[]",
          "name": "result",
          "type": "address[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "fromToken",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "destToken",
          "type": "address"
        }
      ],
      "name": "getBestPools",
      "outputs": [
        {
          "internalType": "address[]",
          "name": "pools",
          "type": "address[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "fromToken",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "destToken",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "limit",
          "type": "uint256"
        }
      ],
      "name": "getBestPoolsWithLimit",
      "outputs": [
        {
          "internalType": "address[]",
          "name": "pools",
          "type": "address[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "pool",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "token1",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "token2",
          "type": "address"
        }
      ],
      "name": "addPoolPair",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "listed",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address[]",
          "name": "pools",
          "type": "address[]"
        },
        {
          "internalType": "address",
          "name": "token1",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "token2",
          "type": "address"
        }
      ],
      "name": "addPools",
      "outputs": [
        {
          "internalType": "uint256[]",
          "name": "listed",
          "type": "uint256[]"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address[]",
          "name": "tokens",
          "type": "address[]"
        },
        {
          "internalType": "uint256",
          "name": "lengthLimit",
          "type": "uint256"
        }
      ],
      "name": "sortPools",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address[]",
          "name": "tokens",
          "type": "address[]"
        },
        {
          "internalType": "uint256",
          "name": "lengthLimit",
          "type": "uint256"
        }
      ],
      "name": "sortPoolsWithPurge",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "metadata": "{\"compiler\":{\"version\":\"0.6.8+commit.0bbfe453\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token1\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token2\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"oldIndices\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"newIndices\",\"type\":\"bytes32\"}],\"name\":\"IndicesUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pool\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token1\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"token2\",\"type\":\"address\"}],\"name\":\"PoolTokenPairAdded\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pool\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token1\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token2\",\"type\":\"address\"}],\"name\":\"addPoolPair\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"listed\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"pools\",\"type\":\"address[]\"},{\"internalType\":\"address\",\"name\":\"token1\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token2\",\"type\":\"address\"}],\"name\":\"addPools\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"listed\",\"type\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"fromToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"destToken\",\"type\":\"address\"}],\"name\":\"getBestPools\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"pools\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"fromToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"destToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"}],\"name\":\"getBestPoolsWithLimit\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"pools\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pool\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"fromToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"destToken\",\"type\":\"address\"}],\"name\":\"getPairInfo\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"weight1\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"weight2\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"swapFee\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"fromToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"destToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"offset\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"}],\"name\":\"getPoolsWithLimit\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"result\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"tokens\",\"type\":\"address[]\"},{\"internalType\":\"uint256\",\"name\":\"lengthLimit\",\"type\":\"uint256\"}],\"name\":\"sortPools\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"tokens\",\"type\":\"address[]\"},{\"internalType\":\"uint256\",\"name\":\"lengthLimit\",\"type\":\"uint256\"}],\"name\":\"sortPoolsWithPurge\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"project:/contracts/interfaces/balancer/IBRegistry.sol\":\"IBRegistry\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"project:/contracts/interfaces/balancer/IBRegistry.sol\":{\"keccak256\":\"0xfc2a468c9b0295e4ed634b972361c649be5d0df0a65b5e8209dae77f697c4782\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0fa8fd1c455f8603a4385698a9b868b78e01073c596307cb98fbbd3ea9affb53\",\"dweb:/ipfs/QmRzgiEeajT6w3R23wVTbBWurqXeXFwYxS2Pcw71PwTWvj\"]}},\"version\":1}",
  "bytecode": "0x",
  "deployedBytecode": "0x",
  "immutableReferences": {},
  "sourceMap": "",
  "deployedSourceMap": "",
  "source": "// SPDX-License-Identifier: MIT\npragma solidity 0.6.8;\n\ninterface IBRegistry {\n\n    event PoolTokenPairAdded(\n        address indexed pool,\n        address indexed token1,\n        address indexed token2\n    );\n\n    event IndicesUpdated(\n        address indexed token1,\n        address indexed token2,\n        bytes32 oldIndices,\n        bytes32 newIndices\n    );\n\n    function getPairInfo(address pool, address fromToken, address destToken)\n        external view returns(uint256 weight1, uint256 weight2, uint256 swapFee);\n\n    function getPoolsWithLimit(address fromToken, address destToken, uint256 offset, uint256 limit)\n        external view returns(address[] memory result);\n\n    function getBestPools(address fromToken, address destToken)\n        external view returns(address[] memory pools);\n\n    function getBestPoolsWithLimit(address fromToken, address destToken, uint256 limit)\n        external view returns(address[] memory pools);\n\n    // Add and update registry\n    function addPoolPair(address pool, address token1, address token2) external returns(uint256 listed);\n\n    function addPools(address[] calldata pools, address token1, address token2) external returns(uint256[] memory listed);\n\n    function sortPools(address[] calldata tokens, uint256 lengthLimit) external;\n\n    function sortPoolsWithPurge(address[] calldata tokens, uint256 lengthLimit) external;\n}\n",
  "sourcePath": "/home/thezviad_gmail_com/src/swappa/contracts/interfaces/balancer/IBRegistry.sol",
  "ast": {
    "absolutePath": "project:/contracts/interfaces/balancer/IBRegistry.sol",
    "exportedSymbols": {
      "IBRegistry": [
        1483
      ]
    },
    "id": 1484,
    "license": "MIT",
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 1373,
        "literals": [
          "solidity",
          "0.6",
          ".8"
        ],
        "nodeType": "PragmaDirective",
        "src": "32:22:11"
      },
      {
        "abstract": false,
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "interface",
        "documentation": null,
        "fullyImplemented": false,
        "id": 1483,
        "linearizedBaseContracts": [
          1483
        ],
        "name": "IBRegistry",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "anonymous": false,
            "documentation": null,
            "id": 1381,
            "name": "PoolTokenPairAdded",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 1380,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1375,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "pool",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1381,
                  "src": "118:20:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1374,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "118:7:11",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1377,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "token1",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1381,
                  "src": "148:22:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1376,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "148:7:11",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1379,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "token2",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1381,
                  "src": "180:22:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1378,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "180:7:11",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "108:100:11"
            },
            "src": "84:125:11"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 1391,
            "name": "IndicesUpdated",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 1390,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1383,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "token1",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1391,
                  "src": "245:22:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1382,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "245:7:11",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1385,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "token2",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1391,
                  "src": "277:22:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1384,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "277:7:11",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1387,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "oldIndices",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1391,
                  "src": "309:18:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1386,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "309:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1389,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "newIndices",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1391,
                  "src": "337:18:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 1388,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "337:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "235:126:11"
            },
            "src": "215:147:11"
          },
          {
            "body": null,
            "documentation": null,
            "functionSelector": "f5406970",
            "id": 1406,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getPairInfo",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 1398,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1393,
                  "mutability": "mutable",
                  "name": "pool",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1406,
                  "src": "389:12:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1392,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "389:7:11",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1395,
                  "mutability": "mutable",
                  "name": "fromToken",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1406,
                  "src": "403:17:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1394,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "403:7:11",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1397,
                  "mutability": "mutable",
                  "name": "destToken",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1406,
                  "src": "422:17:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1396,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "422:7:11",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "388:52:11"
            },
            "returnParameters": {
              "id": 1405,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1400,
                  "mutability": "mutable",
                  "name": "weight1",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1406,
                  "src": "471:15:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1399,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "471:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1402,
                  "mutability": "mutable",
                  "name": "weight2",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1406,
                  "src": "488:15:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1401,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "488:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1404,
                  "mutability": "mutable",
                  "name": "swapFee",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1406,
                  "src": "505:15:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1403,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "505:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "470:51:11"
            },
            "scope": 1483,
            "src": "368:154:11",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "functionSelector": "b108cd37",
            "id": 1420,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getPoolsWithLimit",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 1415,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1408,
                  "mutability": "mutable",
                  "name": "fromToken",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1420,
                  "src": "555:17:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1407,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "555:7:11",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1410,
                  "mutability": "mutable",
                  "name": "destToken",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1420,
                  "src": "574:17:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1409,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "574:7:11",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1412,
                  "mutability": "mutable",
                  "name": "offset",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1420,
                  "src": "593:14:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1411,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "593:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1414,
                  "mutability": "mutable",
                  "name": "limit",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1420,
                  "src": "609:13:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1413,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "609:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "554:69:11"
            },
            "returnParameters": {
              "id": 1419,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1418,
                  "mutability": "mutable",
                  "name": "result",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1420,
                  "src": "654:23:11",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 1416,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "654:7:11",
                      "stateMutability": "nonpayable",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 1417,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "654:9:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "653:25:11"
            },
            "scope": 1483,
            "src": "528:151:11",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "functionSelector": "e7156fa3",
            "id": 1430,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getBestPools",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 1425,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1422,
                  "mutability": "mutable",
                  "name": "fromToken",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1430,
                  "src": "707:17:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1421,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "707:7:11",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1424,
                  "mutability": "mutable",
                  "name": "destToken",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1430,
                  "src": "726:17:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1423,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "726:7:11",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "706:38:11"
            },
            "returnParameters": {
              "id": 1429,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1428,
                  "mutability": "mutable",
                  "name": "pools",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1430,
                  "src": "775:22:11",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 1426,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "775:7:11",
                      "stateMutability": "nonpayable",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 1427,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "775:9:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "774:24:11"
            },
            "scope": 1483,
            "src": "685:114:11",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "functionSelector": "bfdbfc43",
            "id": 1442,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getBestPoolsWithLimit",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 1437,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1432,
                  "mutability": "mutable",
                  "name": "fromToken",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1442,
                  "src": "836:17:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1431,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "836:7:11",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1434,
                  "mutability": "mutable",
                  "name": "destToken",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1442,
                  "src": "855:17:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1433,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "855:7:11",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1436,
                  "mutability": "mutable",
                  "name": "limit",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1442,
                  "src": "874:13:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1435,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "874:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "835:53:11"
            },
            "returnParameters": {
              "id": 1441,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1440,
                  "mutability": "mutable",
                  "name": "pools",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1442,
                  "src": "919:22:11",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 1438,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "919:7:11",
                      "stateMutability": "nonpayable",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 1439,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "919:9:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "918:24:11"
            },
            "scope": 1483,
            "src": "805:138:11",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "functionSelector": "500b6c71",
            "id": 1453,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "addPoolPair",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 1449,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1444,
                  "mutability": "mutable",
                  "name": "pool",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1453,
                  "src": "1001:12:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1443,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1001:7:11",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1446,
                  "mutability": "mutable",
                  "name": "token1",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1453,
                  "src": "1015:14:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1445,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1015:7:11",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1448,
                  "mutability": "mutable",
                  "name": "token2",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1453,
                  "src": "1031:14:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1447,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1031:7:11",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1000:46:11"
            },
            "returnParameters": {
              "id": 1452,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1451,
                  "mutability": "mutable",
                  "name": "listed",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1453,
                  "src": "1064:14:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1450,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1064:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1063:16:11"
            },
            "scope": 1483,
            "src": "980:100:11",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "functionSelector": "88376fbe",
            "id": 1466,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "addPools",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 1461,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1456,
                  "mutability": "mutable",
                  "name": "pools",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1466,
                  "src": "1104:24:11",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 1454,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "1104:7:11",
                      "stateMutability": "nonpayable",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 1455,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "1104:9:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1458,
                  "mutability": "mutable",
                  "name": "token1",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1466,
                  "src": "1130:14:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1457,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1130:7:11",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1460,
                  "mutability": "mutable",
                  "name": "token2",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1466,
                  "src": "1146:14:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 1459,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1146:7:11",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1103:58:11"
            },
            "returnParameters": {
              "id": 1465,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1464,
                  "mutability": "mutable",
                  "name": "listed",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1466,
                  "src": "1179:23:11",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 1462,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "1179:7:11",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 1463,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "1179:9:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1178:25:11"
            },
            "scope": 1483,
            "src": "1086:118:11",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "functionSelector": "7a846457",
            "id": 1474,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "sortPools",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 1472,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1469,
                  "mutability": "mutable",
                  "name": "tokens",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1474,
                  "src": "1229:25:11",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 1467,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "1229:7:11",
                      "stateMutability": "nonpayable",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 1468,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "1229:9:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1471,
                  "mutability": "mutable",
                  "name": "lengthLimit",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1474,
                  "src": "1256:19:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1470,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1256:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1228:48:11"
            },
            "returnParameters": {
              "id": 1473,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1285:0:11"
            },
            "scope": 1483,
            "src": "1210:76:11",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "functionSelector": "a2754996",
            "id": 1482,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "sortPoolsWithPurge",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 1480,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1477,
                  "mutability": "mutable",
                  "name": "tokens",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1482,
                  "src": "1320:25:11",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 1475,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "1320:7:11",
                      "stateMutability": "nonpayable",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 1476,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "1320:9:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1479,
                  "mutability": "mutable",
                  "name": "lengthLimit",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 1482,
                  "src": "1347:19:11",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 1478,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1347:7:11",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1319:48:11"
            },
            "returnParameters": {
              "id": 1481,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1376:0:11"
            },
            "scope": 1483,
            "src": "1292:85:11",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          }
        ],
        "scope": 1484,
        "src": "56:1323:11"
      }
    ],
    "src": "32:1348:11"
  },
  "legacyAST": {
    "attributes": {
      "absolutePath": "project:/contracts/interfaces/balancer/IBRegistry.sol",
      "exportedSymbols": {
        "IBRegistry": [
          1483
        ]
      },
      "license": "MIT"
    },
    "children": [
      {
        "attributes": {
          "literals": [
            "solidity",
            "0.6",
            ".8"
          ]
        },
        "id": 1373,
        "name": "PragmaDirective",
        "src": "32:22:11"
      },
      {
        "attributes": {
          "abstract": false,
          "baseContracts": [
            null
          ],
          "contractDependencies": [
            null
          ],
          "contractKind": "interface",
          "documentation": null,
          "fullyImplemented": false,
          "linearizedBaseContracts": [
            1483
          ],
          "name": "IBRegistry",
          "scope": 1484
        },
        "children": [
          {
            "attributes": {
              "anonymous": false,
              "documentation": null,
              "name": "PoolTokenPairAdded"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "mutability": "mutable",
                      "name": "pool",
                      "overrides": null,
                      "scope": 1381,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "stateMutability": "nonpayable",
                          "type": "address"
                        },
                        "id": 1374,
                        "name": "ElementaryTypeName",
                        "src": "118:7:11"
                      }
                    ],
                    "id": 1375,
                    "name": "VariableDeclaration",
                    "src": "118:20:11"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "mutability": "mutable",
                      "name": "token1",
                      "overrides": null,
                      "scope": 1381,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "stateMutability": "nonpayable",
                          "type": "address"
                        },
                        "id": 1376,
                        "name": "ElementaryTypeName",
                        "src": "148:7:11"
                      }
                    ],
                    "id": 1377,
                    "name": "VariableDeclaration",
                    "src": "148:22:11"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "mutability": "mutable",
                      "name": "token2",
                      "overrides": null,
                      "scope": 1381,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "stateMutability": "nonpayable",
                          "type": "address"
                        },
                        "id": 1378,
                        "name": "ElementaryTypeName",
                        "src": "180:7:11"
                      }
                    ],
                    "id": 1379,
                    "name": "VariableDeclaration",
                    "src": "180:22:11"
                  }
                ],
                "id": 1380,
                "name": "ParameterList",
                "src": "108:100:11"
              }
            ],
            "id": 1381,
            "name": "EventDefinition",
            "src": "84:125:11"
          },
          {
            "attributes": {
              "anonymous": false,
              "documentation": null,
              "name": "IndicesUpdated"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "mutability": "mutable",
                      "name": "token1",
                      "overrides": null,
                      "scope": 1391,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "stateMutability": "nonpayable",
                          "type": "address"
                        },
                        "id": 1382,
                        "name": "ElementaryTypeName",
                        "src": "245:7:11"
                      }
                    ],
                    "id": 1383,
                    "name": "VariableDeclaration",
                    "src": "245:22:11"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": true,
                      "mutability": "mutable",
                      "name": "token2",
                      "overrides": null,
                      "scope": 1391,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "stateMutability": "nonpayable",
                          "type": "address"
                        },
                        "id": 1384,
                        "name": "ElementaryTypeName",
                        "src": "277:7:11"
                      }
                    ],
                    "id": 1385,
                    "name": "VariableDeclaration",
                    "src": "277:22:11"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "mutability": "mutable",
                      "name": "oldIndices",
                      "overrides": null,
                      "scope": 1391,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 1386,
                        "name": "ElementaryTypeName",
                        "src": "309:7:11"
                      }
                    ],
                    "id": 1387,
                    "name": "VariableDeclaration",
                    "src": "309:18:11"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "indexed": false,
                      "mutability": "mutable",
                      "name": "newIndices",
                      "overrides": null,
                      "scope": 1391,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "bytes32",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "bytes32",
                          "type": "bytes32"
                        },
                        "id": 1388,
                        "name": "ElementaryTypeName",
                        "src": "337:7:11"
                      }
                    ],
                    "id": 1389,
                    "name": "VariableDeclaration",
                    "src": "337:18:11"
                  }
                ],
                "id": 1390,
                "name": "ParameterList",
                "src": "235:126:11"
              }
            ],
            "id": 1391,
            "name": "EventDefinition",
            "src": "215:147:11"
          },
          {
            "attributes": {
              "body": null,
              "documentation": null,
              "functionSelector": "f5406970",
              "implemented": false,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "getPairInfo",
              "overrides": null,
              "scope": 1483,
              "stateMutability": "view",
              "virtual": false,
              "visibility": "external"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "pool",
                      "overrides": null,
                      "scope": 1406,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "stateMutability": "nonpayable",
                          "type": "address"
                        },
                        "id": 1392,
                        "name": "ElementaryTypeName",
                        "src": "389:7:11"
                      }
                    ],
                    "id": 1393,
                    "name": "VariableDeclaration",
                    "src": "389:12:11"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "fromToken",
                      "overrides": null,
                      "scope": 1406,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "stateMutability": "nonpayable",
                          "type": "address"
                        },
                        "id": 1394,
                        "name": "ElementaryTypeName",
                        "src": "403:7:11"
                      }
                    ],
                    "id": 1395,
                    "name": "VariableDeclaration",
                    "src": "403:17:11"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "destToken",
                      "overrides": null,
                      "scope": 1406,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "stateMutability": "nonpayable",
                          "type": "address"
                        },
                        "id": 1396,
                        "name": "ElementaryTypeName",
                        "src": "422:7:11"
                      }
                    ],
                    "id": 1397,
                    "name": "VariableDeclaration",
                    "src": "422:17:11"
                  }
                ],
                "id": 1398,
                "name": "ParameterList",
                "src": "388:52:11"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "weight1",
                      "overrides": null,
                      "scope": 1406,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint256",
                          "type": "uint256"
                        },
                        "id": 1399,
                        "name": "ElementaryTypeName",
                        "src": "471:7:11"
                      }
                    ],
                    "id": 1400,
                    "name": "VariableDeclaration",
                    "src": "471:15:11"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "weight2",
                      "overrides": null,
                      "scope": 1406,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint256",
                          "type": "uint256"
                        },
                        "id": 1401,
                        "name": "ElementaryTypeName",
                        "src": "488:7:11"
                      }
                    ],
                    "id": 1402,
                    "name": "VariableDeclaration",
                    "src": "488:15:11"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "swapFee",
                      "overrides": null,
                      "scope": 1406,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint256",
                          "type": "uint256"
                        },
                        "id": 1403,
                        "name": "ElementaryTypeName",
                        "src": "505:7:11"
                      }
                    ],
                    "id": 1404,
                    "name": "VariableDeclaration",
                    "src": "505:15:11"
                  }
                ],
                "id": 1405,
                "name": "ParameterList",
                "src": "470:51:11"
              }
            ],
            "id": 1406,
            "name": "FunctionDefinition",
            "src": "368:154:11"
          },
          {
            "attributes": {
              "body": null,
              "documentation": null,
              "functionSelector": "b108cd37",
              "implemented": false,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "getPoolsWithLimit",
              "overrides": null,
              "scope": 1483,
              "stateMutability": "view",
              "virtual": false,
              "visibility": "external"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "fromToken",
                      "overrides": null,
                      "scope": 1420,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "stateMutability": "nonpayable",
                          "type": "address"
                        },
                        "id": 1407,
                        "name": "ElementaryTypeName",
                        "src": "555:7:11"
                      }
                    ],
                    "id": 1408,
                    "name": "VariableDeclaration",
                    "src": "555:17:11"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "destToken",
                      "overrides": null,
                      "scope": 1420,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "stateMutability": "nonpayable",
                          "type": "address"
                        },
                        "id": 1409,
                        "name": "ElementaryTypeName",
                        "src": "574:7:11"
                      }
                    ],
                    "id": 1410,
                    "name": "VariableDeclaration",
                    "src": "574:17:11"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "offset",
                      "overrides": null,
                      "scope": 1420,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint256",
                          "type": "uint256"
                        },
                        "id": 1411,
                        "name": "ElementaryTypeName",
                        "src": "593:7:11"
                      }
                    ],
                    "id": 1412,
                    "name": "VariableDeclaration",
                    "src": "593:14:11"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "limit",
                      "overrides": null,
                      "scope": 1420,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint256",
                          "type": "uint256"
                        },
                        "id": 1413,
                        "name": "ElementaryTypeName",
                        "src": "609:7:11"
                      }
                    ],
                    "id": 1414,
                    "name": "VariableDeclaration",
                    "src": "609:13:11"
                  }
                ],
                "id": 1415,
                "name": "ParameterList",
                "src": "554:69:11"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "result",
                      "overrides": null,
                      "scope": 1420,
                      "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": 1416,
                            "name": "ElementaryTypeName",
                            "src": "654:7:11"
                          }
                        ],
                        "id": 1417,
                        "name": "ArrayTypeName",
                        "src": "654:9:11"
                      }
                    ],
                    "id": 1418,
                    "name": "VariableDeclaration",
                    "src": "654:23:11"
                  }
                ],
                "id": 1419,
                "name": "ParameterList",
                "src": "653:25:11"
              }
            ],
            "id": 1420,
            "name": "FunctionDefinition",
            "src": "528:151:11"
          },
          {
            "attributes": {
              "body": null,
              "documentation": null,
              "functionSelector": "e7156fa3",
              "implemented": false,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "getBestPools",
              "overrides": null,
              "scope": 1483,
              "stateMutability": "view",
              "virtual": false,
              "visibility": "external"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "fromToken",
                      "overrides": null,
                      "scope": 1430,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "stateMutability": "nonpayable",
                          "type": "address"
                        },
                        "id": 1421,
                        "name": "ElementaryTypeName",
                        "src": "707:7:11"
                      }
                    ],
                    "id": 1422,
                    "name": "VariableDeclaration",
                    "src": "707:17:11"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "destToken",
                      "overrides": null,
                      "scope": 1430,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "stateMutability": "nonpayable",
                          "type": "address"
                        },
                        "id": 1423,
                        "name": "ElementaryTypeName",
                        "src": "726:7:11"
                      }
                    ],
                    "id": 1424,
                    "name": "VariableDeclaration",
                    "src": "726:17:11"
                  }
                ],
                "id": 1425,
                "name": "ParameterList",
                "src": "706:38:11"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "pools",
                      "overrides": null,
                      "scope": 1430,
                      "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": 1426,
                            "name": "ElementaryTypeName",
                            "src": "775:7:11"
                          }
                        ],
                        "id": 1427,
                        "name": "ArrayTypeName",
                        "src": "775:9:11"
                      }
                    ],
                    "id": 1428,
                    "name": "VariableDeclaration",
                    "src": "775:22:11"
                  }
                ],
                "id": 1429,
                "name": "ParameterList",
                "src": "774:24:11"
              }
            ],
            "id": 1430,
            "name": "FunctionDefinition",
            "src": "685:114:11"
          },
          {
            "attributes": {
              "body": null,
              "documentation": null,
              "functionSelector": "bfdbfc43",
              "implemented": false,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "getBestPoolsWithLimit",
              "overrides": null,
              "scope": 1483,
              "stateMutability": "view",
              "virtual": false,
              "visibility": "external"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "fromToken",
                      "overrides": null,
                      "scope": 1442,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "stateMutability": "nonpayable",
                          "type": "address"
                        },
                        "id": 1431,
                        "name": "ElementaryTypeName",
                        "src": "836:7:11"
                      }
                    ],
                    "id": 1432,
                    "name": "VariableDeclaration",
                    "src": "836:17:11"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "destToken",
                      "overrides": null,
                      "scope": 1442,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "stateMutability": "nonpayable",
                          "type": "address"
                        },
                        "id": 1433,
                        "name": "ElementaryTypeName",
                        "src": "855:7:11"
                      }
                    ],
                    "id": 1434,
                    "name": "VariableDeclaration",
                    "src": "855:17:11"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "limit",
                      "overrides": null,
                      "scope": 1442,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint256",
                          "type": "uint256"
                        },
                        "id": 1435,
                        "name": "ElementaryTypeName",
                        "src": "874:7:11"
                      }
                    ],
                    "id": 1436,
                    "name": "VariableDeclaration",
                    "src": "874:13:11"
                  }
                ],
                "id": 1437,
                "name": "ParameterList",
                "src": "835:53:11"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "pools",
                      "overrides": null,
                      "scope": 1442,
                      "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": 1438,
                            "name": "ElementaryTypeName",
                            "src": "919:7:11"
                          }
                        ],
                        "id": 1439,
                        "name": "ArrayTypeName",
                        "src": "919:9:11"
                      }
                    ],
                    "id": 1440,
                    "name": "VariableDeclaration",
                    "src": "919:22:11"
                  }
                ],
                "id": 1441,
                "name": "ParameterList",
                "src": "918:24:11"
              }
            ],
            "id": 1442,
            "name": "FunctionDefinition",
            "src": "805:138:11"
          },
          {
            "attributes": {
              "body": null,
              "documentation": null,
              "functionSelector": "500b6c71",
              "implemented": false,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "addPoolPair",
              "overrides": null,
              "scope": 1483,
              "stateMutability": "nonpayable",
              "virtual": false,
              "visibility": "external"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "pool",
                      "overrides": null,
                      "scope": 1453,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "stateMutability": "nonpayable",
                          "type": "address"
                        },
                        "id": 1443,
                        "name": "ElementaryTypeName",
                        "src": "1001:7:11"
                      }
                    ],
                    "id": 1444,
                    "name": "VariableDeclaration",
                    "src": "1001:12:11"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "token1",
                      "overrides": null,
                      "scope": 1453,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "stateMutability": "nonpayable",
                          "type": "address"
                        },
                        "id": 1445,
                        "name": "ElementaryTypeName",
                        "src": "1015:7:11"
                      }
                    ],
                    "id": 1446,
                    "name": "VariableDeclaration",
                    "src": "1015:14:11"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "token2",
                      "overrides": null,
                      "scope": 1453,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "stateMutability": "nonpayable",
                          "type": "address"
                        },
                        "id": 1447,
                        "name": "ElementaryTypeName",
                        "src": "1031:7:11"
                      }
                    ],
                    "id": 1448,
                    "name": "VariableDeclaration",
                    "src": "1031:14:11"
                  }
                ],
                "id": 1449,
                "name": "ParameterList",
                "src": "1000:46:11"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "listed",
                      "overrides": null,
                      "scope": 1453,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint256",
                          "type": "uint256"
                        },
                        "id": 1450,
                        "name": "ElementaryTypeName",
                        "src": "1064:7:11"
                      }
                    ],
                    "id": 1451,
                    "name": "VariableDeclaration",
                    "src": "1064:14:11"
                  }
                ],
                "id": 1452,
                "name": "ParameterList",
                "src": "1063:16:11"
              }
            ],
            "id": 1453,
            "name": "FunctionDefinition",
            "src": "980:100:11"
          },
          {
            "attributes": {
              "body": null,
              "documentation": null,
              "functionSelector": "88376fbe",
              "implemented": false,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "addPools",
              "overrides": null,
              "scope": 1483,
              "stateMutability": "nonpayable",
              "virtual": false,
              "visibility": "external"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "pools",
                      "overrides": null,
                      "scope": 1466,
                      "stateVariable": false,
                      "storageLocation": "calldata",
                      "type": "address[]",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "length": null,
                          "type": "address[]"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "address",
                              "stateMutability": "nonpayable",
                              "type": "address"
                            },
                            "id": 1454,
                            "name": "ElementaryTypeName",
                            "src": "1104:7:11"
                          }
                        ],
                        "id": 1455,
                        "name": "ArrayTypeName",
                        "src": "1104:9:11"
                      }
                    ],
                    "id": 1456,
                    "name": "VariableDeclaration",
                    "src": "1104:24:11"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "token1",
                      "overrides": null,
                      "scope": 1466,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "stateMutability": "nonpayable",
                          "type": "address"
                        },
                        "id": 1457,
                        "name": "ElementaryTypeName",
                        "src": "1130:7:11"
                      }
                    ],
                    "id": 1458,
                    "name": "VariableDeclaration",
                    "src": "1130:14:11"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "token2",
                      "overrides": null,
                      "scope": 1466,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "address",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "address",
                          "stateMutability": "nonpayable",
                          "type": "address"
                        },
                        "id": 1459,
                        "name": "ElementaryTypeName",
                        "src": "1146:7:11"
                      }
                    ],
                    "id": 1460,
                    "name": "VariableDeclaration",
                    "src": "1146:14:11"
                  }
                ],
                "id": 1461,
                "name": "ParameterList",
                "src": "1103:58:11"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "listed",
                      "overrides": null,
                      "scope": 1466,
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "type": "uint256[]",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "length": null,
                          "type": "uint256[]"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "uint256",
                              "type": "uint256"
                            },
                            "id": 1462,
                            "name": "ElementaryTypeName",
                            "src": "1179:7:11"
                          }
                        ],
                        "id": 1463,
                        "name": "ArrayTypeName",
                        "src": "1179:9:11"
                      }
                    ],
                    "id": 1464,
                    "name": "VariableDeclaration",
                    "src": "1179:23:11"
                  }
                ],
                "id": 1465,
                "name": "ParameterList",
                "src": "1178:25:11"
              }
            ],
            "id": 1466,
            "name": "FunctionDefinition",
            "src": "1086:118:11"
          },
          {
            "attributes": {
              "body": null,
              "documentation": null,
              "functionSelector": "7a846457",
              "implemented": false,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "sortPools",
              "overrides": null,
              "scope": 1483,
              "stateMutability": "nonpayable",
              "virtual": false,
              "visibility": "external"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "tokens",
                      "overrides": null,
                      "scope": 1474,
                      "stateVariable": false,
                      "storageLocation": "calldata",
                      "type": "address[]",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "length": null,
                          "type": "address[]"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "address",
                              "stateMutability": "nonpayable",
                              "type": "address"
                            },
                            "id": 1467,
                            "name": "ElementaryTypeName",
                            "src": "1229:7:11"
                          }
                        ],
                        "id": 1468,
                        "name": "ArrayTypeName",
                        "src": "1229:9:11"
                      }
                    ],
                    "id": 1469,
                    "name": "VariableDeclaration",
                    "src": "1229:25:11"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "lengthLimit",
                      "overrides": null,
                      "scope": 1474,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint256",
                          "type": "uint256"
                        },
                        "id": 1470,
                        "name": "ElementaryTypeName",
                        "src": "1256:7:11"
                      }
                    ],
                    "id": 1471,
                    "name": "VariableDeclaration",
                    "src": "1256:19:11"
                  }
                ],
                "id": 1472,
                "name": "ParameterList",
                "src": "1228:48:11"
              },
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 1473,
                "name": "ParameterList",
                "src": "1285:0:11"
              }
            ],
            "id": 1474,
            "name": "FunctionDefinition",
            "src": "1210:76:11"
          },
          {
            "attributes": {
              "body": null,
              "documentation": null,
              "functionSelector": "a2754996",
              "implemented": false,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "sortPoolsWithPurge",
              "overrides": null,
              "scope": 1483,
              "stateMutability": "nonpayable",
              "virtual": false,
              "visibility": "external"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "tokens",
                      "overrides": null,
                      "scope": 1482,
                      "stateVariable": false,
                      "storageLocation": "calldata",
                      "type": "address[]",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "length": null,
                          "type": "address[]"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "address",
                              "stateMutability": "nonpayable",
                              "type": "address"
                            },
                            "id": 1475,
                            "name": "ElementaryTypeName",
                            "src": "1320:7:11"
                          }
                        ],
                        "id": 1476,
                        "name": "ArrayTypeName",
                        "src": "1320:9:11"
                      }
                    ],
                    "id": 1477,
                    "name": "VariableDeclaration",
                    "src": "1320:25:11"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "lengthLimit",
                      "overrides": null,
                      "scope": 1482,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint256",
                          "type": "uint256"
                        },
                        "id": 1478,
                        "name": "ElementaryTypeName",
                        "src": "1347:7:11"
                      }
                    ],
                    "id": 1479,
                    "name": "VariableDeclaration",
                    "src": "1347:19:11"
                  }
                ],
                "id": 1480,
                "name": "ParameterList",
                "src": "1319:48:11"
              },
              {
                "attributes": {
                  "parameters": [
                    null
                  ]
                },
                "children": [],
                "id": 1481,
                "name": "ParameterList",
                "src": "1376:0:11"
              }
            ],
            "id": 1482,
            "name": "FunctionDefinition",
            "src": "1292:85:11"
          }
        ],
        "id": 1483,
        "name": "ContractDefinition",
        "src": "56:1323:11"
      }
    ],
    "id": 1484,
    "name": "SourceUnit",
    "src": "32:1348:11"
  },
  "compiler": {
    "name": "solc",
    "version": "0.6.8+commit.0bbfe453.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "3.4.16",
  "updatedAt": "2025-02-07T17:50:42.768Z",
  "devdoc": {
    "methods": {}
  },
  "userdoc": {
    "methods": {}
  }
}