{
  "contractName": "RegistryHelperBalancer",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "contract IBRegistry",
          "name": "registry",
          "type": "address"
        },
        {
          "internalType": "address[]",
          "name": "fromTokens",
          "type": "address[]"
        },
        {
          "internalType": "address[]",
          "name": "toTokens",
          "type": "address[]"
        }
      ],
      "name": "findPools",
      "outputs": [
        {
          "components": [
            {
              "internalType": "contract IBPool",
              "name": "pool",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "swapFee",
              "type": "uint256"
            },
            {
              "components": [
                {
                  "internalType": "address",
                  "name": "token",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "balance",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "denormalizedWeight",
                  "type": "uint256"
                }
              ],
              "internalType": "struct RegistryHelperBalancer.TokenState[]",
              "name": "tokenStates",
              "type": "tuple[]"
            }
          ],
          "internalType": "struct RegistryHelperBalancer.PoolInfo[]",
          "name": "result",
          "type": "tuple[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract IBPool[]",
          "name": "pools",
          "type": "address[]"
        }
      ],
      "name": "refreshPools",
      "outputs": [
        {
          "components": [
            {
              "internalType": "contract IBPool",
              "name": "pool",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "swapFee",
              "type": "uint256"
            },
            {
              "components": [
                {
                  "internalType": "address",
                  "name": "token",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "balance",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "denormalizedWeight",
                  "type": "uint256"
                }
              ],
              "internalType": "struct RegistryHelperBalancer.TokenState[]",
              "name": "tokenStates",
              "type": "tuple[]"
            }
          ],
          "internalType": "struct RegistryHelperBalancer.PoolInfo[]",
          "name": "result",
          "type": "tuple[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract IBPool",
          "name": "pool",
          "type": "address"
        }
      ],
      "name": "getPoolInfo",
      "outputs": [
        {
          "components": [
            {
              "internalType": "contract IBPool",
              "name": "pool",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "swapFee",
              "type": "uint256"
            },
            {
              "components": [
                {
                  "internalType": "address",
                  "name": "token",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "balance",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "denormalizedWeight",
                  "type": "uint256"
                }
              ],
              "internalType": "struct RegistryHelperBalancer.TokenState[]",
              "name": "tokenStates",
              "type": "tuple[]"
            }
          ],
          "internalType": "struct RegistryHelperBalancer.PoolInfo",
          "name": "result",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "metadata": "{\"compiler\":{\"version\":\"0.6.8+commit.0bbfe453\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract IBRegistry\",\"name\":\"registry\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"fromTokens\",\"type\":\"address[]\"},{\"internalType\":\"address[]\",\"name\":\"toTokens\",\"type\":\"address[]\"}],\"name\":\"findPools\",\"outputs\":[{\"components\":[{\"internalType\":\"contract IBPool\",\"name\":\"pool\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"swapFee\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"denormalizedWeight\",\"type\":\"uint256\"}],\"internalType\":\"struct RegistryHelperBalancer.TokenState[]\",\"name\":\"tokenStates\",\"type\":\"tuple[]\"}],\"internalType\":\"struct RegistryHelperBalancer.PoolInfo[]\",\"name\":\"result\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IBPool\",\"name\":\"pool\",\"type\":\"address\"}],\"name\":\"getPoolInfo\",\"outputs\":[{\"components\":[{\"internalType\":\"contract IBPool\",\"name\":\"pool\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"swapFee\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"denormalizedWeight\",\"type\":\"uint256\"}],\"internalType\":\"struct RegistryHelperBalancer.TokenState[]\",\"name\":\"tokenStates\",\"type\":\"tuple[]\"}],\"internalType\":\"struct RegistryHelperBalancer.PoolInfo\",\"name\":\"result\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IBPool[]\",\"name\":\"pools\",\"type\":\"address[]\"}],\"name\":\"refreshPools\",\"outputs\":[{\"components\":[{\"internalType\":\"contract IBPool\",\"name\":\"pool\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"swapFee\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"denormalizedWeight\",\"type\":\"uint256\"}],\"internalType\":\"struct RegistryHelperBalancer.TokenState[]\",\"name\":\"tokenStates\",\"type\":\"tuple[]\"}],\"internalType\":\"struct RegistryHelperBalancer.PoolInfo[]\",\"name\":\"result\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"project:/contracts/swappa/RegistryHelperBalancer.sol\":\"RegistryHelperBalancer\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"project:/contracts/interfaces/balancer/IBPool.sol\":{\"keccak256\":\"0x44aabc527a41d03edb6168085847ffcee7ef767403ad3967f3240f3a2ebc8406\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b9352a211a4925a54a9436cde96f92b6413e3c42b42e74cb4acf728a52059516\",\"dweb:/ipfs/QmdLz1gPMciRXhgoePHngg3J6iWELKbZ1XcZHsG4M5N4Ef\"]},\"project:/contracts/interfaces/balancer/IBRegistry.sol\":{\"keccak256\":\"0xfc2a468c9b0295e4ed634b972361c649be5d0df0a65b5e8209dae77f697c4782\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0fa8fd1c455f8603a4385698a9b868b78e01073c596307cb98fbbd3ea9affb53\",\"dweb:/ipfs/QmRzgiEeajT6w3R23wVTbBWurqXeXFwYxS2Pcw71PwTWvj\"]},\"project:/contracts/swappa/RegistryHelperBalancer.sol\":{\"keccak256\":\"0xd52335a8d3176b33437dbe6406719fdbe4a58a93d9cb9e3946271ca495855f76\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4cdafc8662754331793192dcc1bdfe2ecbb0c9deb41a3d5e3465c627768d3902\",\"dweb:/ipfs/QmcKrtprU6ZgrNLRx26VV6bCkfMtzpRZw2ieptTX7fSEKh\"]}},\"version\":1}",
  "bytecode": "0x608060405234801561001057600080fd5b50610f77806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806306bfa938146100465780639756ef771461006f578063977982ba1461008f575b600080fd5b610059610054366004610a3b565b6100a2565b6040516100669190610ec2565b60405180910390f35b61008261007d366004610b5f565b6103e0565b6040516100669190610de7565b61008261009d366004610aff565b610837565b6100aa610973565b60608273ffffffffffffffffffffffffffffffffffffffff1663cc77828d6040518163ffffffff1660e01b815260040160006040518083038186803b1580156100f257600080fd5b505afa158015610106573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820160405261014c9190810190610a5e565b90506060815167ffffffffffffffff8111801561016857600080fd5b506040519080825280602002602001820160405280156101a257816020015b61018f6109aa565b8152602001906001900390816101875790505b50905060005b825181101561032a5760008382815181106101bf57fe5b6020026020010151905060405180606001604052808273ffffffffffffffffffffffffffffffffffffffff1681526020018773ffffffffffffffffffffffffffffffffffffffff1663f8b2cb4f846040518263ffffffff1660e01b81526004016102299190610d95565b60206040518083038186803b15801561024157600080fd5b505afa158015610255573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102799190610cf0565b81526020018773ffffffffffffffffffffffffffffffffffffffff1663948d8ce6846040518263ffffffff1660e01b81526004016102b79190610d95565b60206040518083038186803b1580156102cf57600080fd5b505afa1580156102e3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103079190610cf0565b81525083838151811061031657fe5b6020908102919091010152506001016101a8565b5060405180606001604052808573ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1663d4cadf686040518163ffffffff1660e01b815260040160206040518083038186803b15801561039857600080fd5b505afa1580156103ac573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103d09190610cf0565b8152602001919091529392505050565b6060838214610424576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161041b90610e65565b60405180910390fd5b60606005850267ffffffffffffffff8111801561044057600080fd5b5060405190808252806020026020018201604052801561046a578160200160208202803683370190505b5090506000805b868110156106e85760608973ffffffffffffffffffffffffffffffffffffffff1663bfdbfc438a8a858181106104a357fe5b90506020020160208101906104b89190610a3b565b8989868181106104c457fe5b90506020020160208101906104d99190610a3b565b60056040518463ffffffff1660e01b81526004016104f993929190610db6565b60006040518083038186803b15801561051157600080fd5b505afa158015610525573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820160405261056b9190810190610a5e565b905060005b81518110156106de57600082828151811061058757fe5b602002602001015190508073ffffffffffffffffffffffffffffffffffffffff16638d4e40836040518163ffffffff1660e01b815260040160206040518083038186803b1580156105d757600080fd5b505afa1580156105eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061060f9190610b3f565b61061957506106d6565b600160005b8681101561067e578273ffffffffffffffffffffffffffffffffffffffff1688828151811061064957fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff161415610676576000915061067e565b60010161061e565b5080156106d3578187878060010198508151811061069857fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505b50505b600101610570565b5050600101610471565b508067ffffffffffffffff8111801561070057600080fd5b5060405190808252806020026020018201604052801561073a57816020015b610727610973565b81526020019060019003908161071f5790505b50925060005b8181101561082b57600083828151811061075657fe5b602002602001015190503073ffffffffffffffffffffffffffffffffffffffff166306bfa938826040518263ffffffff1660e01b81526004016107999190610d95565b60006040518083038186803b1580156107b157600080fd5b505afa1580156107c5573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820160405261080b9190810190610bdf565b85838151811061081757fe5b602090810291909101015250600101610740565b50505095945050505050565b60608167ffffffffffffffff8111801561085057600080fd5b5060405190808252806020026020018201604052801561088a57816020015b610877610973565b81526020019060019003908161086f5790505b50905060005b8281101561096c57306306bfa9388585848181106108aa57fe5b90506020020160208101906108bf9190610a3b565b6040518263ffffffff1660e01b81526004016108db9190610d95565b60006040518083038186803b1580156108f357600080fd5b505afa158015610907573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820160405261094d9190810190610bdf565b82828151811061095957fe5b6020908102919091010152600101610890565b5092915050565b6040518060600160405280600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001606081525090565b6040518060600160405280600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600081525090565b80516109ec81610f1c565b92915050565b60008083601f840112610a03578182fd5b50813567ffffffffffffffff811115610a1a578182fd5b6020830191508360208083028501011115610a3457600080fd5b9250929050565b600060208284031215610a4c578081fd5b8135610a5781610f1c565b9392505050565b60006020808385031215610a70578182fd5b825167ffffffffffffffff811115610a86578283fd5b80840185601f820112610a97578384fd5b80519150610aac610aa783610efc565b610ed5565b8281528381019082850185850284018601891015610ac8578687fd5b8693505b84841015610af3578051610adf81610f1c565b835260019390930192918501918501610acc565b50979650505050505050565b60008060208385031215610b11578081fd5b823567ffffffffffffffff811115610b27578182fd5b610b33858286016109f2565b90969095509350505050565b600060208284031215610b50578081fd5b81518015158114610a57578182fd5b600080600080600060608688031215610b76578081fd5b8535610b8181610f1c565b9450602086013567ffffffffffffffff80821115610b9d578283fd5b610ba989838a016109f2565b90965094506040880135915080821115610bc1578283fd5b50610bce888289016109f2565b969995985093965092949392505050565b60006020808385031215610bf1578182fd5b825167ffffffffffffffff80821115610c08578384fd5b6060918501808703831315610c1b578485fd5b610c2483610ed5565b8151610c2f81610f1c565b8152818501518582015260408083015184811115610c4b578788fd5b83019350601f84018913610c5d578687fd5b83519250610c6d610aa784610efc565b83815286810190858801878602870189018c1015610c8957898afd5b8996505b85871015610cdc5787818d031215610ca357898afd5b610cac88610ed5565b610cb68d836109e1565b8152818a01518a8201528482015185820152835260019690960195918801918701610c8d565b509183019190915250979650505050505050565b600060208284031215610d01578081fd5b5051919050565b6000606080840173ffffffffffffffffffffffffffffffffffffffff8085511686526020808601518188015260408087015185828a015284815180875260808b01915084830196508892505b80831015610d87578651805187168352858101518684015284015184830152958401956001929092019190870190610d54565b509998505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b73ffffffffffffffffffffffffffffffffffffffff9384168152919092166020820152604081019190915260600190565b6000602080830181845280855180835260408601915060408482028701019250838701855b82811015610e58577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0888603018452610e46858351610d08565b94509285019290850190600101610e0c565b5092979650505050505050565b6020808252602f908201527f66726f6d546f6b656e7320616e6420746f546f6b656e73206d7573742062652060408201527f6f6620657175616c206c656e6774680000000000000000000000000000000000606082015260800190565b600060208252610a576020830184610d08565b60405181810167ffffffffffffffff81118282101715610ef457600080fd5b604052919050565b600067ffffffffffffffff821115610f12578081fd5b5060209081020190565b73ffffffffffffffffffffffffffffffffffffffff81168114610f3e57600080fd5b5056fea26469706673582212200248794b47dadfa3e484610fee4a360d4848cb180ee2c221f406517e24535b2e64736f6c63430006080033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100415760003560e01c806306bfa938146100465780639756ef771461006f578063977982ba1461008f575b600080fd5b610059610054366004610a3b565b6100a2565b6040516100669190610ec2565b60405180910390f35b61008261007d366004610b5f565b6103e0565b6040516100669190610de7565b61008261009d366004610aff565b610837565b6100aa610973565b60608273ffffffffffffffffffffffffffffffffffffffff1663cc77828d6040518163ffffffff1660e01b815260040160006040518083038186803b1580156100f257600080fd5b505afa158015610106573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820160405261014c9190810190610a5e565b90506060815167ffffffffffffffff8111801561016857600080fd5b506040519080825280602002602001820160405280156101a257816020015b61018f6109aa565b8152602001906001900390816101875790505b50905060005b825181101561032a5760008382815181106101bf57fe5b6020026020010151905060405180606001604052808273ffffffffffffffffffffffffffffffffffffffff1681526020018773ffffffffffffffffffffffffffffffffffffffff1663f8b2cb4f846040518263ffffffff1660e01b81526004016102299190610d95565b60206040518083038186803b15801561024157600080fd5b505afa158015610255573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102799190610cf0565b81526020018773ffffffffffffffffffffffffffffffffffffffff1663948d8ce6846040518263ffffffff1660e01b81526004016102b79190610d95565b60206040518083038186803b1580156102cf57600080fd5b505afa1580156102e3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103079190610cf0565b81525083838151811061031657fe5b6020908102919091010152506001016101a8565b5060405180606001604052808573ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1663d4cadf686040518163ffffffff1660e01b815260040160206040518083038186803b15801561039857600080fd5b505afa1580156103ac573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103d09190610cf0565b8152602001919091529392505050565b6060838214610424576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161041b90610e65565b60405180910390fd5b60606005850267ffffffffffffffff8111801561044057600080fd5b5060405190808252806020026020018201604052801561046a578160200160208202803683370190505b5090506000805b868110156106e85760608973ffffffffffffffffffffffffffffffffffffffff1663bfdbfc438a8a858181106104a357fe5b90506020020160208101906104b89190610a3b565b8989868181106104c457fe5b90506020020160208101906104d99190610a3b565b60056040518463ffffffff1660e01b81526004016104f993929190610db6565b60006040518083038186803b15801561051157600080fd5b505afa158015610525573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820160405261056b9190810190610a5e565b905060005b81518110156106de57600082828151811061058757fe5b602002602001015190508073ffffffffffffffffffffffffffffffffffffffff16638d4e40836040518163ffffffff1660e01b815260040160206040518083038186803b1580156105d757600080fd5b505afa1580156105eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061060f9190610b3f565b61061957506106d6565b600160005b8681101561067e578273ffffffffffffffffffffffffffffffffffffffff1688828151811061064957fe5b602002602001015173ffffffffffffffffffffffffffffffffffffffff161415610676576000915061067e565b60010161061e565b5080156106d3578187878060010198508151811061069857fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250505b50505b600101610570565b5050600101610471565b508067ffffffffffffffff8111801561070057600080fd5b5060405190808252806020026020018201604052801561073a57816020015b610727610973565b81526020019060019003908161071f5790505b50925060005b8181101561082b57600083828151811061075657fe5b602002602001015190503073ffffffffffffffffffffffffffffffffffffffff166306bfa938826040518263ffffffff1660e01b81526004016107999190610d95565b60006040518083038186803b1580156107b157600080fd5b505afa1580156107c5573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820160405261080b9190810190610bdf565b85838151811061081757fe5b602090810291909101015250600101610740565b50505095945050505050565b60608167ffffffffffffffff8111801561085057600080fd5b5060405190808252806020026020018201604052801561088a57816020015b610877610973565b81526020019060019003908161086f5790505b50905060005b8281101561096c57306306bfa9388585848181106108aa57fe5b90506020020160208101906108bf9190610a3b565b6040518263ffffffff1660e01b81526004016108db9190610d95565b60006040518083038186803b1580156108f357600080fd5b505afa158015610907573d6000803e3d6000fd5b505050506040513d6000823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820160405261094d9190810190610bdf565b82828151811061095957fe5b6020908102919091010152600101610890565b5092915050565b6040518060600160405280600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001606081525090565b6040518060600160405280600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600081525090565b80516109ec81610f1c565b92915050565b60008083601f840112610a03578182fd5b50813567ffffffffffffffff811115610a1a578182fd5b6020830191508360208083028501011115610a3457600080fd5b9250929050565b600060208284031215610a4c578081fd5b8135610a5781610f1c565b9392505050565b60006020808385031215610a70578182fd5b825167ffffffffffffffff811115610a86578283fd5b80840185601f820112610a97578384fd5b80519150610aac610aa783610efc565b610ed5565b8281528381019082850185850284018601891015610ac8578687fd5b8693505b84841015610af3578051610adf81610f1c565b835260019390930192918501918501610acc565b50979650505050505050565b60008060208385031215610b11578081fd5b823567ffffffffffffffff811115610b27578182fd5b610b33858286016109f2565b90969095509350505050565b600060208284031215610b50578081fd5b81518015158114610a57578182fd5b600080600080600060608688031215610b76578081fd5b8535610b8181610f1c565b9450602086013567ffffffffffffffff80821115610b9d578283fd5b610ba989838a016109f2565b90965094506040880135915080821115610bc1578283fd5b50610bce888289016109f2565b969995985093965092949392505050565b60006020808385031215610bf1578182fd5b825167ffffffffffffffff80821115610c08578384fd5b6060918501808703831315610c1b578485fd5b610c2483610ed5565b8151610c2f81610f1c565b8152818501518582015260408083015184811115610c4b578788fd5b83019350601f84018913610c5d578687fd5b83519250610c6d610aa784610efc565b83815286810190858801878602870189018c1015610c8957898afd5b8996505b85871015610cdc5787818d031215610ca357898afd5b610cac88610ed5565b610cb68d836109e1565b8152818a01518a8201528482015185820152835260019690960195918801918701610c8d565b509183019190915250979650505050505050565b600060208284031215610d01578081fd5b5051919050565b6000606080840173ffffffffffffffffffffffffffffffffffffffff8085511686526020808601518188015260408087015185828a015284815180875260808b01915084830196508892505b80831015610d87578651805187168352858101518684015284015184830152958401956001929092019190870190610d54565b509998505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff91909116815260200190565b73ffffffffffffffffffffffffffffffffffffffff9384168152919092166020820152604081019190915260600190565b6000602080830181845280855180835260408601915060408482028701019250838701855b82811015610e58577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0888603018452610e46858351610d08565b94509285019290850190600101610e0c565b5092979650505050505050565b6020808252602f908201527f66726f6d546f6b656e7320616e6420746f546f6b656e73206d7573742062652060408201527f6f6620657175616c206c656e6774680000000000000000000000000000000000606082015260800190565b600060208252610a576020830184610d08565b60405181810167ffffffffffffffff81118282101715610ef457600080fd5b604052919050565b600067ffffffffffffffff821115610f12578081fd5b5060209081020190565b73ffffffffffffffffffffffffffffffffffffffff81168114610f3e57600080fd5b5056fea26469706673582212200248794b47dadfa3e484610fee4a360d4848cb180ee2c221f406517e24535b2e64736f6c63430006080033",
  "immutableReferences": {},
  "sourceMap": "183:2724:59:-:0;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;183:2724:59;;;;;;;",
  "deployedSourceMap": "183:2724:59:-:0;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;183:2724:59;;;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;9;2:12;2219:686:59;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;437:1494;;;;;;;;;:::i;:::-;;;;;;;;1937:276;;;;;;;;;:::i;2219:686::-;2276:22;;:::i;:::-;2310:27;2340:4;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2340:23:59;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2340:23:59;;;;;;39:16:-1;36:1;17:17;2:54;101:4;2340:23:59;80:15:-1;;;97:9;76:31;65:43;;120:4;113:20;2340:23:59;;;;;;;;;2310:53;;2373:31;2424:10;:17;2407:35;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2407:35:59;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;2373:69:59;-1:-1:-1;2524:6:59;2519:268;2540:10;:17;2536:1;:21;2519:268;;;2578:13;2594:10;2605:1;2594:13;;;;;;;;;;;;;;2578:29;;2638:138;;;;;;;;2666:5;2638:138;;;;;;2689:4;:15;;;2705:5;2689:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2689:22:59;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2689:22:59;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;2689:22:59;;;;;;;;;2638:138;;;;2729:4;:26;;;2756:5;2729:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2729:33:59;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2729:33:59;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;2729:33:59;;;;;;;;;2638:138;;;2621:11;2633:1;2621:14;;;;;;;;;;;;;;;;;:155;-1:-1:-1;2559:3:59;;2519:268;;;;2806:92;;;;;;;;2828:4;2806:92;;;;;;2846:4;:15;;;:17;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2846:17:59;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2846:17:59;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;2846:17:59;;;;;;;;;2806:92;;;;;;;;2797:101;2219:686;-1:-1:-1;;;2219:686:59:o;437:1494::-;590:24;634:36;;;626:108;;;;;;;;;;;;;;;;;;;;;;745:26;807:1;787:21;;774:35;;;2:2:-1;;;;27:1;24;17:12;2:2;774:35:59;;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;125:4;109:14;101:6;88:42;144:17;;-1:-1;774:35:59;-1:-1:-1;745:64:59;-1:-1:-1;819:10:59;;844:898;861:21;;;844:898;;;970:22;1011:8;:30;;;1042:10;;1053:1;1042:13;;;;;;;;;;;;;;;;;;;;;;1057:8;;1066:1;1057:11;;;;;;;;;;;;;;;;;;;;;;1070:1;1011:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1011:61:59;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1011:61:59;;;;;;39:16:-1;36:1;17:17;2:54;101:4;1011:61:59;80:15:-1;;;97:9;76:31;65:43;;120:4;113:20;1011:61:59;;;;;;;;;970:102;-1:-1:-1;1091:6:59;1086:646;1107:5;:12;1103:1;:16;1086:646;;;1144:11;1165:5;1171:1;1165:8;;;;;;;;;;;;;;1144:30;;1197:4;:16;;;:18;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1197:18:59;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1197:18:59;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;1197:18:59;;;;;;;;;1192:74;;1239:8;;;1192:74;1299:4;1284:12;1321:251;1342:5;1338:1;:9;1321:251;;;1397:4;1380:21;;:10;1391:1;1380:13;;;;;;;;;;;;;;:21;;;1376:178;;;1495:5;1485:15;;1526:5;;1376:178;1349:3;;1321:251;;;;1593:7;1589:129;;;1695:4;1673:10;1684:7;;;;;;1673:19;;;;;;;;;;;;;:26;;;;;;;;;;;1589:129;1086:646;;;1121:3;;1086:646;;;-1:-1:-1;;884:3:59;;844:898;;;;1776:5;1761:21;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1761:21:59;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;1752:30:59;-1:-1:-1;1797:6:59;1792:133;1813:5;1809:1;:9;1792:133;;;1839:11;1853:10;1864:1;1853:13;;;;;;;;;;;;;;1839:27;;1892:4;:16;;;1909:4;1892:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1892:22:59;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1892:22:59;;;;;;39:16:-1;36:1;17:17;2:54;101:4;1892:22:59;80:15:-1;;;97:9;76:31;65:43;;120:4;113:20;1892:22:59;;;;;;;;;1880:6;1887:1;1880:9;;;;;;;;;;;;;;;;;:34;-1:-1:-1;1820:3:59;;1792:133;;;;437:1494;;;;;;;;;:::o;1937:276::-;2021:24;2081:5;2066:28;;;2:2:-1;;;;27:1;24;17:12;2:2;2066:28:59;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;2057:37:59;-1:-1:-1;2109:6:59;2104:103;2121:16;;;2104:103;;;2170:4;:16;2187:5;;2193:1;2187:8;;;;;;;;;;;;;;;;;;;;;;2170:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;2170:26:59;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2170:26:59;;;;;;39:16:-1;36:1;17:17;2:54;101:4;2170:26:59;80:15:-1;;;97:9;76:31;65:43;;120:4;113:20;2170:26:59;;;;;;;;;2158:6;2165:1;2158:9;;;;;;;;;;;;;;;;;:38;2139:3;;2104:103;;;;1937:276;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;142:134::-;220:13;;238:33;220:13;238:33;;;205:71;;;;;301:352;;;431:3;424:4;416:6;412:17;408:27;398:2;;-1:-1;;439:12;398:2;-1:-1;469:20;;509:18;498:30;;495:2;;;-1:-1;;531:12;495:2;575:4;567:6;563:17;551:29;;626:3;575:4;;610:6;606:17;567:6;592:32;;589:41;586:2;;;643:1;;633:12;586:2;391:262;;;;;;5059:241;;5163:2;5151:9;5142:7;5138:23;5134:32;5131:2;;;-1:-1;;5169:12;5131:2;85:6;72:20;97:33;124:5;97:33;;;5221:63;5125:175;-1:-1;;;5125:175;5307:392;;5447:2;;5435:9;5426:7;5422:23;5418:32;5415:2;;;-1:-1;;5453:12;5415:2;5504:17;5498:24;5542:18;5534:6;5531:30;5528:2;;;-1:-1;;5564:12;5528:2;5666:6;5655:9;5651:22;807:3;800:4;792:6;788:17;784:27;774:2;;-1:-1;;815:12;774:2;855:6;849:13;835:27;;877:80;892:64;949:6;892:64;;;877:80;;;985:21;;;1042:14;;;;1017:17;;;1131;;;1122:27;;;;1119:36;-1:-1;1116:2;;;-1:-1;;1158:12;1116:2;-1:-1;1184:10;;1178:217;1203:6;1200:1;1197:13;1178:217;;;226:6;220:13;238:33;265:5;238:33;;;1271:61;;1225:1;1218:9;;;;;1346:14;;;;1374;;1178:217;;;-1:-1;5584:99;5409:290;-1:-1;;;;;;;5409:290;5706:427;;;5860:2;5848:9;5839:7;5835:23;5831:32;5828:2;;;-1:-1;;5866:12;5828:2;5924:17;5911:31;5962:18;5954:6;5951:30;5948:2;;;-1:-1;;5984:12;5948:2;6022:95;6109:7;6100:6;6089:9;6085:22;6022:95;;;6012:105;;;;-1:-1;5822:311;-1:-1;;;;5822:311;6140:257;;6252:2;6240:9;6231:7;6227:23;6223:32;6220:2;;;-1:-1;;6258:12;6220:2;2756:6;2750:13;20693:5;19614:13;19607:21;20671:5;20668:32;20658:2;;-1:-1;;20704:12;6682:841;;;;;;6909:2;6897:9;6888:7;6884:23;6880:32;6877:2;;;-1:-1;;6915:12;6877:2;3247:6;3234:20;3259:52;3305:5;3259:52;;;6967:82;-1:-1;7114:2;7099:18;;7086:32;7138:18;7127:30;;;7124:2;;;-1:-1;;7160:12;7124:2;7198:80;7270:7;7261:6;7250:9;7246:22;7198:80;;;7188:90;;-1:-1;7188:90;-1:-1;7343:2;7328:18;;7315:32;;-1:-1;7356:30;;;7353:2;;;-1:-1;;7389:12;7353:2;;7427:80;7499:7;7490:6;7479:9;7475:22;7427:80;;;6871:652;;;;-1:-1;6871:652;;-1:-1;7417:90;;;6871:652;-1:-1;;;6871:652;7530:394;;7671:2;;7659:9;7650:7;7646:23;7642:32;7639:2;;;-1:-1;;7677:12;7639:2;7728:17;7722:24;7766:18;;7758:6;7755:30;7752:2;;;-1:-1;;7788:12;7752:2;3494:4;;7876:22;;3473:19;;;3469:30;-1:-1;3466:2;;;-1:-1;;3502:12;3466:2;3530:20;3494:4;3530:20;;;226:6;220:13;238:33;265:5;238:33;;;3607:101;;3837:22;;;4996:13;3787:16;;;3780:86;3955:2;3940:18;;;3934:25;3968:30;;;3965:2;;;-1:-1;;4001:12;3965:2;4131:22;;;-1:-1;2010:4;1998:17;;1994:27;-1:-1;1984:2;;-1:-1;;2025:12;1984:2;2065:6;2059:13;2045:27;;2087:108;2102:92;2187:6;2102:92;;2087:108;2223:21;;;2280:14;;;;2255:17;;;2369;;;2360:27;;;;2357:36;-1:-1;2354:2;;;-1:-1;;2396:12;2354:2;-1:-1;2422:10;;2416:245;2441:6;2438:1;2435:13;2416:245;;;3494:4;4351:9;4346:3;4342:19;4338:30;4335:2;;;-1:-1;;4371:12;4335:2;4399:20;3494:4;4399:20;;;4502:60;4558:3;4534:22;4502:60;;;4477:86;;4692:22;;;4996:13;4642:16;;;4635:86;4861:22;;;4996:13;4811:16;;;4804:86;2509:89;;2463:1;2456:9;;;;;2612:14;;;;2640;;2416:245;;;-1:-1;4028:16;;;4021:139;;;;-1:-1;4032:5;7633:291;-1:-1;;;;;;;7633:291;7931:263;;8046:2;8034:9;8025:7;8021:23;8017:32;8014:2;;;-1:-1;;8052:12;8014:2;-1:-1;4996:13;;8008:186;-1:-1;8008:186;12092:828;;12235:4;;12230:3;12226:14;19943:42;;12307:16;12301:23;19932:54;11230:3;11223:65;12490:4;;12483:5;12479:16;12473:23;12490:4;12554:3;12550:14;14662:37;12651:4;;12644:5;12640:16;12634:23;12235:4;12651;12681:3;12677:14;12670:38;12723:159;10512:5;18363:12;19017:6;19012:3;19005:19;19045:14;12230:3;19045:14;10524:111;;12490:4;10734:5;18005:14;10746:21;;-1:-1;10779:10;;10773:344;10798:6;10795:1;10792:13;10773:344;;;10859:13;;14156:23;;19932:54;;8822:37;;14319:16;;;14313:23;14390:14;;;14662:37;14487:16;;14481:23;14558:14;;;14662:37;18691:14;;;;10820:1;10813:9;;;;;8733:14;;;;10773:344;;;-1:-1;12904:11;12208:712;-1:-1;;;;;;;;;12208:712;14711:222;19943:42;19932:54;;;;8822:37;;14838:2;14823:18;;14809:124;14940:460;19943:42;19932:54;;;8822:37;;19932:54;;;;15295:2;15280:18;;8822:37;15386:2;15371:18;;11542:58;;;;15131:2;15116:18;;15102:298;15407:474;;15636:2;;15625:9;15621:18;15636:2;15657:17;15650:47;15711:160;9355:5;18363:12;19017:6;19012:3;19005:19;19045:14;15625:9;19045:14;9367:119;;19045:14;15636:2;9543:6;9539:17;15625:9;9530:27;;9518:39;;15636:2;9654:5;18005:14;-1:-1;9693:408;9718:6;9715:1;9712:13;9693:408;;;9770:20;15625:9;9774:4;9770:20;;9765:3;9758:33;8355:98;8449:3;9825:6;9819:13;8355:98;;;9839:124;-1:-1;10080:14;;;;18691;;;;9740:1;9733:9;9693:408;;;-1:-1;15703:168;;15607:274;-1:-1;;;;;;;15607:274;16147:416;16347:2;16361:47;;;11837:2;16332:18;;;19005:19;11873:34;19045:14;;;11853:55;11942:17;11928:12;;;11921:39;11979:12;;;16318:245;16570:374;;16749:2;16770:17;16763:47;16824:110;16749:2;16738:9;16734:18;16920:6;16824:110;;16951:256;17013:2;17007:9;17039:17;;;17114:18;17099:34;;17135:22;;;17096:62;17093:2;;;17171:1;;17161:12;17093:2;17013;17180:22;16991:216;;-1:-1;16991:216;17214:304;;17373:18;17365:6;17362:30;17359:2;;;-1:-1;;17395:12;17359:2;-1:-1;17440:4;17428:17;;;17493:15;;17296:222;20488:117;19943:42;20575:5;19932:54;20550:5;20547:35;20537:2;;20596:1;;20586:12;20537:2;20531:74;",
  "source": "// SPDX-License-Identifier: MIT\npragma solidity 0.6.8;\npragma experimental ABIEncoderV2;\n\nimport \"../interfaces/balancer/IBPool.sol\";\nimport \"../interfaces/balancer/IBRegistry.sol\";\n\ncontract RegistryHelperBalancer {\n\n    struct TokenState {\n        address token;\n        uint balance;\n        uint denormalizedWeight;\n    }\n\n    struct PoolInfo {\n        IBPool pool;\n        uint swapFee;\n        TokenState[] tokenStates;\n    }\n\n    function findPools(\n        IBRegistry registry,\n        address[] calldata fromTokens,\n        address[] calldata toTokens\n    ) external view returns (PoolInfo[] memory result) {\n        require(fromTokens.length == toTokens.length,\n            \"fromTokens and toTokens must be of equal length\");\n\n        IBPool[] memory foundPools = new IBPool[](fromTokens.length * 5);\n        uint found = 0;\n\n        for (uint i = 0; i < fromTokens.length; i++) {\n            // only take up the best 5 pools for a particular pair\n            address[] memory pools =\n                registry.getBestPoolsWithLimit(fromTokens[i], toTokens[i], 5);\n            for (uint j = 0; j < pools.length; j++) {\n                IBPool pool = IBPool(pools[j]);\n                if (!pool.isFinalized()) {\n                    continue;\n                }\n\n                bool addPool = true;\n                for (uint k = 0; k < found; k++) {\n                    if (foundPools[k] == pool) {\n                        // already seen this pool, skip\n                        addPool = false;\n                        break;\n                    }\n                }\n                if (addPool) {\n                    // add this newly found pool\n                    foundPools[found++] = pool;\n                }\n            }\n        }\n\n        result = new PoolInfo[](found);\n        for (uint i = 0; i < found; i++) {\n            IBPool pool = foundPools[i];\n            result[i] = this.getPoolInfo(pool);\n        }\n    }\n\n    function refreshPools(\n        IBPool[] calldata pools\n    ) external view returns (PoolInfo[] memory result) {\n        result = new PoolInfo[](pools.length);\n        for (uint i = 0; i < pools.length; i++) {\n            result[i] = this.getPoolInfo(pools[i]);\n        }\n    }\n\n    function getPoolInfo(IBPool pool) external view returns (PoolInfo memory result) {\n        address[] memory poolTokens = pool.getCurrentTokens();\n        TokenState[] memory tokenStates = new TokenState[](poolTokens.length);\n        // collect information about all of the tokens in the pool\n        for (uint j = 0; j < poolTokens.length; j++) {\n            address token = poolTokens[j];\n            tokenStates[j] = TokenState(\n                token,\n                pool.getBalance(token),\n                pool.getDenormalizedWeight(token)\n            );\n        }\n\n        result = PoolInfo(\n            pool,\n            pool.getSwapFee(),\n            tokenStates\n        );\n    }\n}\n",
  "sourcePath": "/home/thezviad_gmail_com/src/swappa/contracts/swappa/RegistryHelperBalancer.sol",
  "ast": {
    "absolutePath": "project:/contracts/swappa/RegistryHelperBalancer.sol",
    "exportedSymbols": {
      "RegistryHelperBalancer": [
        7867
      ]
    },
    "id": 7868,
    "license": "MIT",
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 7561,
        "literals": [
          "solidity",
          "0.6",
          ".8"
        ],
        "nodeType": "PragmaDirective",
        "src": "32:22:59"
      },
      {
        "id": 7562,
        "literals": [
          "experimental",
          "ABIEncoderV2"
        ],
        "nodeType": "PragmaDirective",
        "src": "55:33:59"
      },
      {
        "absolutePath": "project:/contracts/interfaces/balancer/IBPool.sol",
        "file": "../interfaces/balancer/IBPool.sol",
        "id": 7563,
        "nodeType": "ImportDirective",
        "scope": 7868,
        "sourceUnit": 1372,
        "src": "90:43:59",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "project:/contracts/interfaces/balancer/IBRegistry.sol",
        "file": "../interfaces/balancer/IBRegistry.sol",
        "id": 7564,
        "nodeType": "ImportDirective",
        "scope": 7868,
        "sourceUnit": 1484,
        "src": "134:47:59",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "abstract": false,
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 7867,
        "linearizedBaseContracts": [
          7867
        ],
        "name": "RegistryHelperBalancer",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "canonicalName": "RegistryHelperBalancer.TokenState",
            "id": 7571,
            "members": [
              {
                "constant": false,
                "id": 7566,
                "mutability": "mutable",
                "name": "token",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 7571,
                "src": "250:13:59",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 7565,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "250:7:59",
                  "stateMutability": "nonpayable",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 7568,
                "mutability": "mutable",
                "name": "balance",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 7571,
                "src": "273:12:59",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 7567,
                  "name": "uint",
                  "nodeType": "ElementaryTypeName",
                  "src": "273:4:59",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 7570,
                "mutability": "mutable",
                "name": "denormalizedWeight",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 7571,
                "src": "295:23:59",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 7569,
                  "name": "uint",
                  "nodeType": "ElementaryTypeName",
                  "src": "295:4:59",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "TokenState",
            "nodeType": "StructDefinition",
            "scope": 7867,
            "src": "222:103:59",
            "visibility": "public"
          },
          {
            "canonicalName": "RegistryHelperBalancer.PoolInfo",
            "id": 7579,
            "members": [
              {
                "constant": false,
                "id": 7573,
                "mutability": "mutable",
                "name": "pool",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 7579,
                "src": "357:11:59",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_contract$_IBPool_$1371",
                  "typeString": "contract IBPool"
                },
                "typeName": {
                  "contractScope": null,
                  "id": 7572,
                  "name": "IBPool",
                  "nodeType": "UserDefinedTypeName",
                  "referencedDeclaration": 1371,
                  "src": "357:6:59",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_IBPool_$1371",
                    "typeString": "contract IBPool"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 7575,
                "mutability": "mutable",
                "name": "swapFee",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 7579,
                "src": "378:12:59",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 7574,
                  "name": "uint",
                  "nodeType": "ElementaryTypeName",
                  "src": "378:4:59",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 7578,
                "mutability": "mutable",
                "name": "tokenStates",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 7579,
                "src": "400:24:59",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_array$_t_struct$_TokenState_$7571_storage_$dyn_storage_ptr",
                  "typeString": "struct RegistryHelperBalancer.TokenState[]"
                },
                "typeName": {
                  "baseType": {
                    "contractScope": null,
                    "id": 7576,
                    "name": "TokenState",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 7571,
                    "src": "400:10:59",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_TokenState_$7571_storage_ptr",
                      "typeString": "struct RegistryHelperBalancer.TokenState"
                    }
                  },
                  "id": 7577,
                  "length": null,
                  "nodeType": "ArrayTypeName",
                  "src": "400:12:59",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_struct$_TokenState_$7571_storage_$dyn_storage_ptr",
                    "typeString": "struct RegistryHelperBalancer.TokenState[]"
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "PoolInfo",
            "nodeType": "StructDefinition",
            "scope": 7867,
            "src": "331:100:59",
            "visibility": "public"
          },
          {
            "body": {
              "id": 7749,
              "nodeType": "Block",
              "src": "616:1315:59",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 7598,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 7594,
                            "name": "fromTokens",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7584,
                            "src": "634:10:59",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                              "typeString": "address[] calldata"
                            }
                          },
                          "id": 7595,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "634:17:59",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 7596,
                            "name": "toTokens",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7587,
                            "src": "655:8:59",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                              "typeString": "address[] calldata"
                            }
                          },
                          "id": 7597,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "655:15:59",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "634:36:59",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "66726f6d546f6b656e7320616e6420746f546f6b656e73206d757374206265206f6620657175616c206c656e677468",
                        "id": 7599,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "684:49:59",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_78fcd33ef9af9b3e62b4a92348ed4ae24cf4226f004d61b656ff4f6e017443dc",
                          "typeString": "literal_string \"fromTokens and toTokens must be of equal length\""
                        },
                        "value": "fromTokens and toTokens must be of equal length"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_78fcd33ef9af9b3e62b4a92348ed4ae24cf4226f004d61b656ff4f6e017443dc",
                          "typeString": "literal_string \"fromTokens and toTokens must be of equal length\""
                        }
                      ],
                      "id": 7593,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "626:7:59",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 7600,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "626:108:59",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7601,
                  "nodeType": "ExpressionStatement",
                  "src": "626:108:59"
                },
                {
                  "assignments": [
                    7605
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 7605,
                      "mutability": "mutable",
                      "name": "foundPools",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 7749,
                      "src": "745:26:59",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_contract$_IBPool_$1371_$dyn_memory_ptr",
                        "typeString": "contract IBPool[]"
                      },
                      "typeName": {
                        "baseType": {
                          "contractScope": null,
                          "id": 7603,
                          "name": "IBPool",
                          "nodeType": "UserDefinedTypeName",
                          "referencedDeclaration": 1371,
                          "src": "745:6:59",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_IBPool_$1371",
                            "typeString": "contract IBPool"
                          }
                        },
                        "id": 7604,
                        "length": null,
                        "nodeType": "ArrayTypeName",
                        "src": "745:8:59",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_contract$_IBPool_$1371_$dyn_storage_ptr",
                          "typeString": "contract IBPool[]"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 7614,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 7612,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 7609,
                            "name": "fromTokens",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7584,
                            "src": "787:10:59",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                              "typeString": "address[] calldata"
                            }
                          },
                          "id": 7610,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "787:17:59",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "*",
                        "rightExpression": {
                          "argumentTypes": null,
                          "hexValue": "35",
                          "id": 7611,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "807:1:59",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_5_by_1",
                            "typeString": "int_const 5"
                          },
                          "value": "5"
                        },
                        "src": "787:21:59",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 7608,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "NewExpression",
                      "src": "774:12:59",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_contract$_IBPool_$1371_$dyn_memory_ptr_$",
                        "typeString": "function (uint256) pure returns (contract IBPool[] memory)"
                      },
                      "typeName": {
                        "baseType": {
                          "contractScope": null,
                          "id": 7606,
                          "name": "IBPool",
                          "nodeType": "UserDefinedTypeName",
                          "referencedDeclaration": 1371,
                          "src": "778:6:59",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_IBPool_$1371",
                            "typeString": "contract IBPool"
                          }
                        },
                        "id": 7607,
                        "length": null,
                        "nodeType": "ArrayTypeName",
                        "src": "778:8:59",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_contract$_IBPool_$1371_$dyn_storage_ptr",
                          "typeString": "contract IBPool[]"
                        }
                      }
                    },
                    "id": 7613,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "774:35:59",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_contract$_IBPool_$1371_$dyn_memory_ptr",
                      "typeString": "contract IBPool[] memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "745:64:59"
                },
                {
                  "assignments": [
                    7616
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 7616,
                      "mutability": "mutable",
                      "name": "found",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 7749,
                      "src": "819:10:59",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 7615,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "819:4:59",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 7618,
                  "initialValue": {
                    "argumentTypes": null,
                    "hexValue": "30",
                    "id": 7617,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "number",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "832:1:59",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_rational_0_by_1",
                      "typeString": "int_const 0"
                    },
                    "value": "0"
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "819:14:59"
                },
                {
                  "body": {
                    "id": 7712,
                    "nodeType": "Block",
                    "src": "889:853:59",
                    "statements": [
                      {
                        "assignments": [
                          7634
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 7634,
                            "mutability": "mutable",
                            "name": "pools",
                            "nodeType": "VariableDeclaration",
                            "overrides": null,
                            "scope": 7712,
                            "src": "970:22:59",
                            "stateVariable": false,
                            "storageLocation": "memory",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                              "typeString": "address[]"
                            },
                            "typeName": {
                              "baseType": {
                                "id": 7632,
                                "name": "address",
                                "nodeType": "ElementaryTypeName",
                                "src": "970:7:59",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              "id": 7633,
                              "length": null,
                              "nodeType": "ArrayTypeName",
                              "src": "970:9:59",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                                "typeString": "address[]"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 7645,
                        "initialValue": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 7637,
                                "name": "fromTokens",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7584,
                                "src": "1042:10:59",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                  "typeString": "address[] calldata"
                                }
                              },
                              "id": 7639,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 7638,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7620,
                                "src": "1053:1:59",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "1042:13:59",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 7640,
                                "name": "toTokens",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7587,
                                "src": "1057:8:59",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                  "typeString": "address[] calldata"
                                }
                              },
                              "id": 7642,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 7641,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7620,
                                "src": "1066:1:59",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "1057:11:59",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "hexValue": "35",
                              "id": 7643,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "1070:1:59",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_5_by_1",
                                "typeString": "int_const 5"
                              },
                              "value": "5"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_rational_5_by_1",
                                "typeString": "int_const 5"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 7635,
                              "name": "registry",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7581,
                              "src": "1011:8:59",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_IBRegistry_$1483",
                                "typeString": "contract IBRegistry"
                              }
                            },
                            "id": 7636,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "getBestPoolsWithLimit",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1442,
                            "src": "1011:30:59",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_view$_t_address_$_t_address_$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$",
                              "typeString": "function (address,address,uint256) view external returns (address[] memory)"
                            }
                          },
                          "id": 7644,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1011:61:59",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                            "typeString": "address[] memory"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "970:102:59"
                      },
                      {
                        "body": {
                          "id": 7710,
                          "nodeType": "Block",
                          "src": "1126:606:59",
                          "statements": [
                            {
                              "assignments": [
                                7658
                              ],
                              "declarations": [
                                {
                                  "constant": false,
                                  "id": 7658,
                                  "mutability": "mutable",
                                  "name": "pool",
                                  "nodeType": "VariableDeclaration",
                                  "overrides": null,
                                  "scope": 7710,
                                  "src": "1144:11:59",
                                  "stateVariable": false,
                                  "storageLocation": "default",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_IBPool_$1371",
                                    "typeString": "contract IBPool"
                                  },
                                  "typeName": {
                                    "contractScope": null,
                                    "id": 7657,
                                    "name": "IBPool",
                                    "nodeType": "UserDefinedTypeName",
                                    "referencedDeclaration": 1371,
                                    "src": "1144:6:59",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_contract$_IBPool_$1371",
                                      "typeString": "contract IBPool"
                                    }
                                  },
                                  "value": null,
                                  "visibility": "internal"
                                }
                              ],
                              "id": 7664,
                              "initialValue": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "baseExpression": {
                                      "argumentTypes": null,
                                      "id": 7660,
                                      "name": "pools",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 7634,
                                      "src": "1165:5:59",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                                        "typeString": "address[] memory"
                                      }
                                    },
                                    "id": 7662,
                                    "indexExpression": {
                                      "argumentTypes": null,
                                      "id": 7661,
                                      "name": "j",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 7647,
                                      "src": "1171:1:59",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "IndexAccess",
                                    "src": "1165:8:59",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  ],
                                  "id": 7659,
                                  "name": "IBPool",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1371,
                                  "src": "1158:6:59",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_contract$_IBPool_$1371_$",
                                    "typeString": "type(contract IBPool)"
                                  }
                                },
                                "id": 7663,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "1158:16:59",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_IBPool_$1371",
                                  "typeString": "contract IBPool"
                                }
                              },
                              "nodeType": "VariableDeclarationStatement",
                              "src": "1144:30:59"
                            },
                            {
                              "condition": {
                                "argumentTypes": null,
                                "id": 7668,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "UnaryOperation",
                                "operator": "!",
                                "prefix": true,
                                "src": "1196:19:59",
                                "subExpression": {
                                  "argumentTypes": null,
                                  "arguments": [],
                                  "expression": {
                                    "argumentTypes": [],
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 7665,
                                      "name": "pool",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 7658,
                                      "src": "1197:4:59",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_contract$_IBPool_$1371",
                                        "typeString": "contract IBPool"
                                      }
                                    },
                                    "id": 7666,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "isFinalized",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 1358,
                                    "src": "1197:16:59",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_external_view$__$returns$_t_bool_$",
                                      "typeString": "function () view external returns (bool)"
                                    }
                                  },
                                  "id": 7667,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "1197:18:59",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bool",
                                    "typeString": "bool"
                                  }
                                },
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "falseBody": null,
                              "id": 7671,
                              "nodeType": "IfStatement",
                              "src": "1192:74:59",
                              "trueBody": {
                                "id": 7670,
                                "nodeType": "Block",
                                "src": "1217:49:59",
                                "statements": [
                                  {
                                    "id": 7669,
                                    "nodeType": "Continue",
                                    "src": "1239:8:59"
                                  }
                                ]
                              }
                            },
                            {
                              "assignments": [
                                7673
                              ],
                              "declarations": [
                                {
                                  "constant": false,
                                  "id": 7673,
                                  "mutability": "mutable",
                                  "name": "addPool",
                                  "nodeType": "VariableDeclaration",
                                  "overrides": null,
                                  "scope": 7710,
                                  "src": "1284:12:59",
                                  "stateVariable": false,
                                  "storageLocation": "default",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bool",
                                    "typeString": "bool"
                                  },
                                  "typeName": {
                                    "id": 7672,
                                    "name": "bool",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "1284:4:59",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bool",
                                      "typeString": "bool"
                                    }
                                  },
                                  "value": null,
                                  "visibility": "internal"
                                }
                              ],
                              "id": 7675,
                              "initialValue": {
                                "argumentTypes": null,
                                "hexValue": "74727565",
                                "id": 7674,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "bool",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "1299:4:59",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                },
                                "value": "true"
                              },
                              "nodeType": "VariableDeclarationStatement",
                              "src": "1284:19:59"
                            },
                            {
                              "body": {
                                "id": 7698,
                                "nodeType": "Block",
                                "src": "1354:218:59",
                                "statements": [
                                  {
                                    "condition": {
                                      "argumentTypes": null,
                                      "commonType": {
                                        "typeIdentifier": "t_contract$_IBPool_$1371",
                                        "typeString": "contract IBPool"
                                      },
                                      "id": 7690,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftExpression": {
                                        "argumentTypes": null,
                                        "baseExpression": {
                                          "argumentTypes": null,
                                          "id": 7686,
                                          "name": "foundPools",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 7605,
                                          "src": "1380:10:59",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_array$_t_contract$_IBPool_$1371_$dyn_memory_ptr",
                                            "typeString": "contract IBPool[] memory"
                                          }
                                        },
                                        "id": 7688,
                                        "indexExpression": {
                                          "argumentTypes": null,
                                          "id": 7687,
                                          "name": "k",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 7677,
                                          "src": "1391:1:59",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "IndexAccess",
                                        "src": "1380:13:59",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_contract$_IBPool_$1371",
                                          "typeString": "contract IBPool"
                                        }
                                      },
                                      "nodeType": "BinaryOperation",
                                      "operator": "==",
                                      "rightExpression": {
                                        "argumentTypes": null,
                                        "id": 7689,
                                        "name": "pool",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 7658,
                                        "src": "1397:4:59",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_contract$_IBPool_$1371",
                                          "typeString": "contract IBPool"
                                        }
                                      },
                                      "src": "1380:21:59",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bool",
                                        "typeString": "bool"
                                      }
                                    },
                                    "falseBody": null,
                                    "id": 7697,
                                    "nodeType": "IfStatement",
                                    "src": "1376:178:59",
                                    "trueBody": {
                                      "id": 7696,
                                      "nodeType": "Block",
                                      "src": "1403:151:59",
                                      "statements": [
                                        {
                                          "expression": {
                                            "argumentTypes": null,
                                            "id": 7693,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "leftHandSide": {
                                              "argumentTypes": null,
                                              "id": 7691,
                                              "name": "addPool",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 7673,
                                              "src": "1485:7:59",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_bool",
                                                "typeString": "bool"
                                              }
                                            },
                                            "nodeType": "Assignment",
                                            "operator": "=",
                                            "rightHandSide": {
                                              "argumentTypes": null,
                                              "hexValue": "66616c7365",
                                              "id": 7692,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "kind": "bool",
                                              "lValueRequested": false,
                                              "nodeType": "Literal",
                                              "src": "1495:5:59",
                                              "subdenomination": null,
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_bool",
                                                "typeString": "bool"
                                              },
                                              "value": "false"
                                            },
                                            "src": "1485:15:59",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_bool",
                                              "typeString": "bool"
                                            }
                                          },
                                          "id": 7694,
                                          "nodeType": "ExpressionStatement",
                                          "src": "1485:15:59"
                                        },
                                        {
                                          "id": 7695,
                                          "nodeType": "Break",
                                          "src": "1526:5:59"
                                        }
                                      ]
                                    }
                                  }
                                ]
                              },
                              "condition": {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 7682,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "id": 7680,
                                  "name": "k",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 7677,
                                  "src": "1338:1:59",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "<",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "id": 7681,
                                  "name": "found",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 7616,
                                  "src": "1342:5:59",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "1338:9:59",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "id": 7699,
                              "initializationExpression": {
                                "assignments": [
                                  7677
                                ],
                                "declarations": [
                                  {
                                    "constant": false,
                                    "id": 7677,
                                    "mutability": "mutable",
                                    "name": "k",
                                    "nodeType": "VariableDeclaration",
                                    "overrides": null,
                                    "scope": 7699,
                                    "src": "1326:6:59",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    },
                                    "typeName": {
                                      "id": 7676,
                                      "name": "uint",
                                      "nodeType": "ElementaryTypeName",
                                      "src": "1326:4:59",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "value": null,
                                    "visibility": "internal"
                                  }
                                ],
                                "id": 7679,
                                "initialValue": {
                                  "argumentTypes": null,
                                  "hexValue": "30",
                                  "id": 7678,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "1335:1:59",
                                  "subdenomination": null,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_0_by_1",
                                    "typeString": "int_const 0"
                                  },
                                  "value": "0"
                                },
                                "nodeType": "VariableDeclarationStatement",
                                "src": "1326:10:59"
                              },
                              "loopExpression": {
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 7684,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "UnaryOperation",
                                  "operator": "++",
                                  "prefix": false,
                                  "src": "1349:3:59",
                                  "subExpression": {
                                    "argumentTypes": null,
                                    "id": 7683,
                                    "name": "k",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 7677,
                                    "src": "1349:1:59",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "id": 7685,
                                "nodeType": "ExpressionStatement",
                                "src": "1349:3:59"
                              },
                              "nodeType": "ForStatement",
                              "src": "1321:251:59"
                            },
                            {
                              "condition": {
                                "argumentTypes": null,
                                "id": 7700,
                                "name": "addPool",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7673,
                                "src": "1593:7:59",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "falseBody": null,
                              "id": 7709,
                              "nodeType": "IfStatement",
                              "src": "1589:129:59",
                              "trueBody": {
                                "id": 7708,
                                "nodeType": "Block",
                                "src": "1602:116:59",
                                "statements": [
                                  {
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 7706,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftHandSide": {
                                        "argumentTypes": null,
                                        "baseExpression": {
                                          "argumentTypes": null,
                                          "id": 7701,
                                          "name": "foundPools",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 7605,
                                          "src": "1673:10:59",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_array$_t_contract$_IBPool_$1371_$dyn_memory_ptr",
                                            "typeString": "contract IBPool[] memory"
                                          }
                                        },
                                        "id": 7704,
                                        "indexExpression": {
                                          "argumentTypes": null,
                                          "id": 7703,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "nodeType": "UnaryOperation",
                                          "operator": "++",
                                          "prefix": false,
                                          "src": "1684:7:59",
                                          "subExpression": {
                                            "argumentTypes": null,
                                            "id": 7702,
                                            "name": "found",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 7616,
                                            "src": "1684:5:59",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          },
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": true,
                                        "nodeType": "IndexAccess",
                                        "src": "1673:19:59",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_contract$_IBPool_$1371",
                                          "typeString": "contract IBPool"
                                        }
                                      },
                                      "nodeType": "Assignment",
                                      "operator": "=",
                                      "rightHandSide": {
                                        "argumentTypes": null,
                                        "id": 7705,
                                        "name": "pool",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 7658,
                                        "src": "1695:4:59",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_contract$_IBPool_$1371",
                                          "typeString": "contract IBPool"
                                        }
                                      },
                                      "src": "1673:26:59",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_contract$_IBPool_$1371",
                                        "typeString": "contract IBPool"
                                      }
                                    },
                                    "id": 7707,
                                    "nodeType": "ExpressionStatement",
                                    "src": "1673:26:59"
                                  }
                                ]
                              }
                            }
                          ]
                        },
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 7653,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 7650,
                            "name": "j",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7647,
                            "src": "1103:1:59",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "<",
                          "rightExpression": {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 7651,
                              "name": "pools",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7634,
                              "src": "1107:5:59",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                                "typeString": "address[] memory"
                              }
                            },
                            "id": 7652,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "length",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "1107:12:59",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "1103:16:59",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 7711,
                        "initializationExpression": {
                          "assignments": [
                            7647
                          ],
                          "declarations": [
                            {
                              "constant": false,
                              "id": 7647,
                              "mutability": "mutable",
                              "name": "j",
                              "nodeType": "VariableDeclaration",
                              "overrides": null,
                              "scope": 7711,
                              "src": "1091:6:59",
                              "stateVariable": false,
                              "storageLocation": "default",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "typeName": {
                                "id": 7646,
                                "name": "uint",
                                "nodeType": "ElementaryTypeName",
                                "src": "1091:4:59",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "value": null,
                              "visibility": "internal"
                            }
                          ],
                          "id": 7649,
                          "initialValue": {
                            "argumentTypes": null,
                            "hexValue": "30",
                            "id": 7648,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "1100:1:59",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_0_by_1",
                              "typeString": "int_const 0"
                            },
                            "value": "0"
                          },
                          "nodeType": "VariableDeclarationStatement",
                          "src": "1091:10:59"
                        },
                        "loopExpression": {
                          "expression": {
                            "argumentTypes": null,
                            "id": 7655,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "UnaryOperation",
                            "operator": "++",
                            "prefix": false,
                            "src": "1121:3:59",
                            "subExpression": {
                              "argumentTypes": null,
                              "id": 7654,
                              "name": "j",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7647,
                              "src": "1121:1:59",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "id": 7656,
                          "nodeType": "ExpressionStatement",
                          "src": "1121:3:59"
                        },
                        "nodeType": "ForStatement",
                        "src": "1086:646:59"
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 7626,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 7623,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7620,
                      "src": "861:1:59",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 7624,
                        "name": "fromTokens",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7584,
                        "src": "865:10:59",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                          "typeString": "address[] calldata"
                        }
                      },
                      "id": 7625,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "865:17:59",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "861:21:59",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 7713,
                  "initializationExpression": {
                    "assignments": [
                      7620
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 7620,
                        "mutability": "mutable",
                        "name": "i",
                        "nodeType": "VariableDeclaration",
                        "overrides": null,
                        "scope": 7713,
                        "src": "849:6:59",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 7619,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "849:4:59",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "id": 7622,
                    "initialValue": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 7621,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "858:1:59",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "849:10:59"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 7628,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "884:3:59",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 7627,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7620,
                        "src": "884:1:59",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 7629,
                    "nodeType": "ExpressionStatement",
                    "src": "884:3:59"
                  },
                  "nodeType": "ForStatement",
                  "src": "844:898:59"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 7720,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 7714,
                      "name": "result",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7591,
                      "src": "1752:6:59",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_struct$_PoolInfo_$7579_memory_ptr_$dyn_memory_ptr",
                        "typeString": "struct RegistryHelperBalancer.PoolInfo memory[] memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 7718,
                          "name": "found",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7616,
                          "src": "1776:5:59",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 7717,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "NewExpression",
                        "src": "1761:14:59",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_PoolInfo_$7579_memory_ptr_$dyn_memory_ptr_$",
                          "typeString": "function (uint256) pure returns (struct RegistryHelperBalancer.PoolInfo memory[] memory)"
                        },
                        "typeName": {
                          "baseType": {
                            "contractScope": null,
                            "id": 7715,
                            "name": "PoolInfo",
                            "nodeType": "UserDefinedTypeName",
                            "referencedDeclaration": 7579,
                            "src": "1765:8:59",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_PoolInfo_$7579_storage_ptr",
                              "typeString": "struct RegistryHelperBalancer.PoolInfo"
                            }
                          },
                          "id": 7716,
                          "length": null,
                          "nodeType": "ArrayTypeName",
                          "src": "1765:10:59",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_struct$_PoolInfo_$7579_storage_$dyn_storage_ptr",
                            "typeString": "struct RegistryHelperBalancer.PoolInfo[]"
                          }
                        }
                      },
                      "id": 7719,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "1761:21:59",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_struct$_PoolInfo_$7579_memory_ptr_$dyn_memory_ptr",
                        "typeString": "struct RegistryHelperBalancer.PoolInfo memory[] memory"
                      }
                    },
                    "src": "1752:30:59",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_struct$_PoolInfo_$7579_memory_ptr_$dyn_memory_ptr",
                      "typeString": "struct RegistryHelperBalancer.PoolInfo memory[] memory"
                    }
                  },
                  "id": 7721,
                  "nodeType": "ExpressionStatement",
                  "src": "1752:30:59"
                },
                {
                  "body": {
                    "id": 7747,
                    "nodeType": "Block",
                    "src": "1825:100:59",
                    "statements": [
                      {
                        "assignments": [
                          7733
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 7733,
                            "mutability": "mutable",
                            "name": "pool",
                            "nodeType": "VariableDeclaration",
                            "overrides": null,
                            "scope": 7747,
                            "src": "1839:11:59",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_IBPool_$1371",
                              "typeString": "contract IBPool"
                            },
                            "typeName": {
                              "contractScope": null,
                              "id": 7732,
                              "name": "IBPool",
                              "nodeType": "UserDefinedTypeName",
                              "referencedDeclaration": 1371,
                              "src": "1839:6:59",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_IBPool_$1371",
                                "typeString": "contract IBPool"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 7737,
                        "initialValue": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 7734,
                            "name": "foundPools",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7605,
                            "src": "1853:10:59",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_contract$_IBPool_$1371_$dyn_memory_ptr",
                              "typeString": "contract IBPool[] memory"
                            }
                          },
                          "id": 7736,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 7735,
                            "name": "i",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7723,
                            "src": "1864:1:59",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "1853:13:59",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_IBPool_$1371",
                            "typeString": "contract IBPool"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "1839:27:59"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 7745,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 7738,
                              "name": "result",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7591,
                              "src": "1880:6:59",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_struct$_PoolInfo_$7579_memory_ptr_$dyn_memory_ptr",
                                "typeString": "struct RegistryHelperBalancer.PoolInfo memory[] memory"
                              }
                            },
                            "id": 7740,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 7739,
                              "name": "i",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7723,
                              "src": "1887:1:59",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "1880:9:59",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_PoolInfo_$7579_memory_ptr",
                              "typeString": "struct RegistryHelperBalancer.PoolInfo memory"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 7743,
                                "name": "pool",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7733,
                                "src": "1909:4:59",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_IBPool_$1371",
                                  "typeString": "contract IBPool"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_contract$_IBPool_$1371",
                                  "typeString": "contract IBPool"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "id": 7741,
                                "name": "this",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": -28,
                                "src": "1892:4:59",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_RegistryHelperBalancer_$7867",
                                  "typeString": "contract RegistryHelperBalancer"
                                }
                              },
                              "id": 7742,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "getPoolInfo",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 7866,
                              "src": "1892:16:59",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_external_view$_t_contract$_IBPool_$1371_$returns$_t_struct$_PoolInfo_$7579_memory_ptr_$",
                                "typeString": "function (contract IBPool) view external returns (struct RegistryHelperBalancer.PoolInfo memory)"
                              }
                            },
                            "id": 7744,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "1892:22:59",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_PoolInfo_$7579_memory_ptr",
                              "typeString": "struct RegistryHelperBalancer.PoolInfo memory"
                            }
                          },
                          "src": "1880:34:59",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_PoolInfo_$7579_memory_ptr",
                            "typeString": "struct RegistryHelperBalancer.PoolInfo memory"
                          }
                        },
                        "id": 7746,
                        "nodeType": "ExpressionStatement",
                        "src": "1880:34:59"
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 7728,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 7726,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7723,
                      "src": "1809:1:59",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 7727,
                      "name": "found",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7616,
                      "src": "1813:5:59",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "1809:9:59",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 7748,
                  "initializationExpression": {
                    "assignments": [
                      7723
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 7723,
                        "mutability": "mutable",
                        "name": "i",
                        "nodeType": "VariableDeclaration",
                        "overrides": null,
                        "scope": 7748,
                        "src": "1797:6:59",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 7722,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "1797:4:59",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "id": 7725,
                    "initialValue": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 7724,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "1806:1:59",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "1797:10:59"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 7730,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "1820:3:59",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 7729,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7723,
                        "src": "1820:1:59",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 7731,
                    "nodeType": "ExpressionStatement",
                    "src": "1820:3:59"
                  },
                  "nodeType": "ForStatement",
                  "src": "1792:133:59"
                }
              ]
            },
            "documentation": null,
            "functionSelector": "9756ef77",
            "id": 7750,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "findPools",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 7588,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7581,
                  "mutability": "mutable",
                  "name": "registry",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 7750,
                  "src": "465:19:59",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_IBRegistry_$1483",
                    "typeString": "contract IBRegistry"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 7580,
                    "name": "IBRegistry",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 1483,
                    "src": "465:10:59",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IBRegistry_$1483",
                      "typeString": "contract IBRegistry"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7584,
                  "mutability": "mutable",
                  "name": "fromTokens",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 7750,
                  "src": "494:29:59",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 7582,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "494:7:59",
                      "stateMutability": "nonpayable",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 7583,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "494:9:59",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7587,
                  "mutability": "mutable",
                  "name": "toTokens",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 7750,
                  "src": "533:27:59",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 7585,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "533:7:59",
                      "stateMutability": "nonpayable",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 7586,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "533:9:59",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "455:111:59"
            },
            "returnParameters": {
              "id": 7592,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7591,
                  "mutability": "mutable",
                  "name": "result",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 7750,
                  "src": "590:24:59",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_struct$_PoolInfo_$7579_memory_ptr_$dyn_memory_ptr",
                    "typeString": "struct RegistryHelperBalancer.PoolInfo[]"
                  },
                  "typeName": {
                    "baseType": {
                      "contractScope": null,
                      "id": 7589,
                      "name": "PoolInfo",
                      "nodeType": "UserDefinedTypeName",
                      "referencedDeclaration": 7579,
                      "src": "590:8:59",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_PoolInfo_$7579_storage_ptr",
                        "typeString": "struct RegistryHelperBalancer.PoolInfo"
                      }
                    },
                    "id": 7590,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "590:10:59",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_struct$_PoolInfo_$7579_storage_$dyn_storage_ptr",
                      "typeString": "struct RegistryHelperBalancer.PoolInfo[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "589:26:59"
            },
            "scope": 7867,
            "src": "437:1494:59",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": {
              "id": 7792,
              "nodeType": "Block",
              "src": "2047:166:59",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 7766,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 7759,
                      "name": "result",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7757,
                      "src": "2057:6:59",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_struct$_PoolInfo_$7579_memory_ptr_$dyn_memory_ptr",
                        "typeString": "struct RegistryHelperBalancer.PoolInfo memory[] memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 7763,
                            "name": "pools",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7753,
                            "src": "2081:5:59",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_contract$_IBPool_$1371_$dyn_calldata_ptr",
                              "typeString": "contract IBPool[] calldata"
                            }
                          },
                          "id": 7764,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "2081:12:59",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 7762,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "NewExpression",
                        "src": "2066:14:59",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_PoolInfo_$7579_memory_ptr_$dyn_memory_ptr_$",
                          "typeString": "function (uint256) pure returns (struct RegistryHelperBalancer.PoolInfo memory[] memory)"
                        },
                        "typeName": {
                          "baseType": {
                            "contractScope": null,
                            "id": 7760,
                            "name": "PoolInfo",
                            "nodeType": "UserDefinedTypeName",
                            "referencedDeclaration": 7579,
                            "src": "2070:8:59",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_PoolInfo_$7579_storage_ptr",
                              "typeString": "struct RegistryHelperBalancer.PoolInfo"
                            }
                          },
                          "id": 7761,
                          "length": null,
                          "nodeType": "ArrayTypeName",
                          "src": "2070:10:59",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_struct$_PoolInfo_$7579_storage_$dyn_storage_ptr",
                            "typeString": "struct RegistryHelperBalancer.PoolInfo[]"
                          }
                        }
                      },
                      "id": 7765,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "2066:28:59",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_struct$_PoolInfo_$7579_memory_ptr_$dyn_memory_ptr",
                        "typeString": "struct RegistryHelperBalancer.PoolInfo memory[] memory"
                      }
                    },
                    "src": "2057:37:59",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_struct$_PoolInfo_$7579_memory_ptr_$dyn_memory_ptr",
                      "typeString": "struct RegistryHelperBalancer.PoolInfo memory[] memory"
                    }
                  },
                  "id": 7767,
                  "nodeType": "ExpressionStatement",
                  "src": "2057:37:59"
                },
                {
                  "body": {
                    "id": 7790,
                    "nodeType": "Block",
                    "src": "2144:63:59",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 7788,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 7779,
                              "name": "result",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7757,
                              "src": "2158:6:59",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_struct$_PoolInfo_$7579_memory_ptr_$dyn_memory_ptr",
                                "typeString": "struct RegistryHelperBalancer.PoolInfo memory[] memory"
                              }
                            },
                            "id": 7781,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 7780,
                              "name": "i",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7769,
                              "src": "2165:1:59",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "2158:9:59",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_PoolInfo_$7579_memory_ptr",
                              "typeString": "struct RegistryHelperBalancer.PoolInfo memory"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "id": 7784,
                                  "name": "pools",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 7753,
                                  "src": "2187:5:59",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_contract$_IBPool_$1371_$dyn_calldata_ptr",
                                    "typeString": "contract IBPool[] calldata"
                                  }
                                },
                                "id": 7786,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "id": 7785,
                                  "name": "i",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 7769,
                                  "src": "2193:1:59",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "2187:8:59",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_IBPool_$1371",
                                  "typeString": "contract IBPool"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_contract$_IBPool_$1371",
                                  "typeString": "contract IBPool"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "id": 7782,
                                "name": "this",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": -28,
                                "src": "2170:4:59",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_RegistryHelperBalancer_$7867",
                                  "typeString": "contract RegistryHelperBalancer"
                                }
                              },
                              "id": 7783,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "getPoolInfo",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 7866,
                              "src": "2170:16:59",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_external_view$_t_contract$_IBPool_$1371_$returns$_t_struct$_PoolInfo_$7579_memory_ptr_$",
                                "typeString": "function (contract IBPool) view external returns (struct RegistryHelperBalancer.PoolInfo memory)"
                              }
                            },
                            "id": 7787,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "2170:26:59",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_PoolInfo_$7579_memory_ptr",
                              "typeString": "struct RegistryHelperBalancer.PoolInfo memory"
                            }
                          },
                          "src": "2158:38:59",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_PoolInfo_$7579_memory_ptr",
                            "typeString": "struct RegistryHelperBalancer.PoolInfo memory"
                          }
                        },
                        "id": 7789,
                        "nodeType": "ExpressionStatement",
                        "src": "2158:38:59"
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 7775,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 7772,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7769,
                      "src": "2121:1:59",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 7773,
                        "name": "pools",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7753,
                        "src": "2125:5:59",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_contract$_IBPool_$1371_$dyn_calldata_ptr",
                          "typeString": "contract IBPool[] calldata"
                        }
                      },
                      "id": 7774,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "2125:12:59",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "2121:16:59",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 7791,
                  "initializationExpression": {
                    "assignments": [
                      7769
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 7769,
                        "mutability": "mutable",
                        "name": "i",
                        "nodeType": "VariableDeclaration",
                        "overrides": null,
                        "scope": 7791,
                        "src": "2109:6:59",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 7768,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "2109:4:59",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "id": 7771,
                    "initialValue": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 7770,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "2118:1:59",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "2109:10:59"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 7777,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "2139:3:59",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 7776,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7769,
                        "src": "2139:1:59",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 7778,
                    "nodeType": "ExpressionStatement",
                    "src": "2139:3:59"
                  },
                  "nodeType": "ForStatement",
                  "src": "2104:103:59"
                }
              ]
            },
            "documentation": null,
            "functionSelector": "977982ba",
            "id": 7793,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "refreshPools",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 7754,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7753,
                  "mutability": "mutable",
                  "name": "pools",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 7793,
                  "src": "1968:23:59",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_contract$_IBPool_$1371_$dyn_calldata_ptr",
                    "typeString": "contract IBPool[]"
                  },
                  "typeName": {
                    "baseType": {
                      "contractScope": null,
                      "id": 7751,
                      "name": "IBPool",
                      "nodeType": "UserDefinedTypeName",
                      "referencedDeclaration": 1371,
                      "src": "1968:6:59",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_IBPool_$1371",
                        "typeString": "contract IBPool"
                      }
                    },
                    "id": 7752,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "1968:8:59",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_contract$_IBPool_$1371_$dyn_storage_ptr",
                      "typeString": "contract IBPool[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1958:39:59"
            },
            "returnParameters": {
              "id": 7758,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7757,
                  "mutability": "mutable",
                  "name": "result",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 7793,
                  "src": "2021:24:59",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_struct$_PoolInfo_$7579_memory_ptr_$dyn_memory_ptr",
                    "typeString": "struct RegistryHelperBalancer.PoolInfo[]"
                  },
                  "typeName": {
                    "baseType": {
                      "contractScope": null,
                      "id": 7755,
                      "name": "PoolInfo",
                      "nodeType": "UserDefinedTypeName",
                      "referencedDeclaration": 7579,
                      "src": "2021:8:59",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_PoolInfo_$7579_storage_ptr",
                        "typeString": "struct RegistryHelperBalancer.PoolInfo"
                      }
                    },
                    "id": 7756,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "2021:10:59",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_struct$_PoolInfo_$7579_storage_$dyn_storage_ptr",
                      "typeString": "struct RegistryHelperBalancer.PoolInfo[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2020:26:59"
            },
            "scope": 7867,
            "src": "1937:276:59",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": {
              "id": 7865,
              "nodeType": "Block",
              "src": "2300:605:59",
              "statements": [
                {
                  "assignments": [
                    7804
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 7804,
                      "mutability": "mutable",
                      "name": "poolTokens",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 7865,
                      "src": "2310:27:59",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                        "typeString": "address[]"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 7802,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "2310:7:59",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "id": 7803,
                        "length": null,
                        "nodeType": "ArrayTypeName",
                        "src": "2310:9:59",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                          "typeString": "address[]"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 7808,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "argumentTypes": null,
                        "id": 7805,
                        "name": "pool",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7795,
                        "src": "2340:4:59",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IBPool_$1371",
                          "typeString": "contract IBPool"
                        }
                      },
                      "id": 7806,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "getCurrentTokens",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 1266,
                      "src": "2340:21:59",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$__$returns$_t_array$_t_address_$dyn_memory_ptr_$",
                        "typeString": "function () view external returns (address[] memory)"
                      }
                    },
                    "id": 7807,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2340:23:59",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                      "typeString": "address[] memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2310:53:59"
                },
                {
                  "assignments": [
                    7812
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 7812,
                      "mutability": "mutable",
                      "name": "tokenStates",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 7865,
                      "src": "2373:31:59",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_struct$_TokenState_$7571_memory_ptr_$dyn_memory_ptr",
                        "typeString": "struct RegistryHelperBalancer.TokenState[]"
                      },
                      "typeName": {
                        "baseType": {
                          "contractScope": null,
                          "id": 7810,
                          "name": "TokenState",
                          "nodeType": "UserDefinedTypeName",
                          "referencedDeclaration": 7571,
                          "src": "2373:10:59",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_TokenState_$7571_storage_ptr",
                            "typeString": "struct RegistryHelperBalancer.TokenState"
                          }
                        },
                        "id": 7811,
                        "length": null,
                        "nodeType": "ArrayTypeName",
                        "src": "2373:12:59",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_struct$_TokenState_$7571_storage_$dyn_storage_ptr",
                          "typeString": "struct RegistryHelperBalancer.TokenState[]"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 7819,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 7816,
                          "name": "poolTokens",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7804,
                          "src": "2424:10:59",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                            "typeString": "address[] memory"
                          }
                        },
                        "id": 7817,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "length",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "2424:17:59",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 7815,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "NewExpression",
                      "src": "2407:16:59",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_TokenState_$7571_memory_ptr_$dyn_memory_ptr_$",
                        "typeString": "function (uint256) pure returns (struct RegistryHelperBalancer.TokenState memory[] memory)"
                      },
                      "typeName": {
                        "baseType": {
                          "contractScope": null,
                          "id": 7813,
                          "name": "TokenState",
                          "nodeType": "UserDefinedTypeName",
                          "referencedDeclaration": 7571,
                          "src": "2411:10:59",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_TokenState_$7571_storage_ptr",
                            "typeString": "struct RegistryHelperBalancer.TokenState"
                          }
                        },
                        "id": 7814,
                        "length": null,
                        "nodeType": "ArrayTypeName",
                        "src": "2411:12:59",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_struct$_TokenState_$7571_storage_$dyn_storage_ptr",
                          "typeString": "struct RegistryHelperBalancer.TokenState[]"
                        }
                      }
                    },
                    "id": 7818,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2407:35:59",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_struct$_TokenState_$7571_memory_ptr_$dyn_memory_ptr",
                      "typeString": "struct RegistryHelperBalancer.TokenState memory[] memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2373:69:59"
                },
                {
                  "body": {
                    "id": 7853,
                    "nodeType": "Block",
                    "src": "2564:223:59",
                    "statements": [
                      {
                        "assignments": [
                          7832
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 7832,
                            "mutability": "mutable",
                            "name": "token",
                            "nodeType": "VariableDeclaration",
                            "overrides": null,
                            "scope": 7853,
                            "src": "2578:13:59",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            "typeName": {
                              "id": 7831,
                              "name": "address",
                              "nodeType": "ElementaryTypeName",
                              "src": "2578:7:59",
                              "stateMutability": "nonpayable",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 7836,
                        "initialValue": {
                          "argumentTypes": null,
                          "baseExpression": {
                            "argumentTypes": null,
                            "id": 7833,
                            "name": "poolTokens",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7804,
                            "src": "2594:10:59",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                              "typeString": "address[] memory"
                            }
                          },
                          "id": 7835,
                          "indexExpression": {
                            "argumentTypes": null,
                            "id": 7834,
                            "name": "j",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7821,
                            "src": "2605:1:59",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "2594:13:59",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "2578:29:59"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 7851,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 7837,
                              "name": "tokenStates",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7812,
                              "src": "2621:11:59",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_struct$_TokenState_$7571_memory_ptr_$dyn_memory_ptr",
                                "typeString": "struct RegistryHelperBalancer.TokenState memory[] memory"
                              }
                            },
                            "id": 7839,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 7838,
                              "name": "j",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7821,
                              "src": "2633:1:59",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "2621:14:59",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_TokenState_$7571_memory_ptr",
                              "typeString": "struct RegistryHelperBalancer.TokenState memory"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 7841,
                                "name": "token",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7832,
                                "src": "2666:5:59",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "id": 7844,
                                    "name": "token",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 7832,
                                    "src": "2705:5:59",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 7842,
                                    "name": "pool",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 7795,
                                    "src": "2689:4:59",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_contract$_IBPool_$1371",
                                      "typeString": "contract IBPool"
                                    }
                                  },
                                  "id": 7843,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "getBalance",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 1365,
                                  "src": "2689:15:59",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
                                    "typeString": "function (address) view external returns (uint256)"
                                  }
                                },
                                "id": 7845,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "2689:22:59",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "id": 7848,
                                    "name": "token",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 7832,
                                    "src": "2756:5:59",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 7846,
                                    "name": "pool",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 7795,
                                    "src": "2729:4:59",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_contract$_IBPool_$1371",
                                      "typeString": "contract IBPool"
                                    }
                                  },
                                  "id": 7847,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "getDenormalizedWeight",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 1348,
                                  "src": "2729:26:59",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$",
                                    "typeString": "function (address) view external returns (uint256)"
                                  }
                                },
                                "id": 7849,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "2729:33:59",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 7840,
                              "name": "TokenState",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7571,
                              "src": "2638:10:59",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_struct$_TokenState_$7571_storage_ptr_$",
                                "typeString": "type(struct RegistryHelperBalancer.TokenState storage pointer)"
                              }
                            },
                            "id": 7850,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "structConstructorCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "2638:138:59",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_TokenState_$7571_memory_ptr",
                              "typeString": "struct RegistryHelperBalancer.TokenState memory"
                            }
                          },
                          "src": "2621:155:59",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_TokenState_$7571_memory_ptr",
                            "typeString": "struct RegistryHelperBalancer.TokenState memory"
                          }
                        },
                        "id": 7852,
                        "nodeType": "ExpressionStatement",
                        "src": "2621:155:59"
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 7827,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 7824,
                      "name": "j",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7821,
                      "src": "2536:1:59",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 7825,
                        "name": "poolTokens",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7804,
                        "src": "2540:10:59",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                          "typeString": "address[] memory"
                        }
                      },
                      "id": 7826,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "2540:17:59",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "2536:21:59",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 7854,
                  "initializationExpression": {
                    "assignments": [
                      7821
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 7821,
                        "mutability": "mutable",
                        "name": "j",
                        "nodeType": "VariableDeclaration",
                        "overrides": null,
                        "scope": 7854,
                        "src": "2524:6:59",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 7820,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "2524:4:59",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "id": 7823,
                    "initialValue": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 7822,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "2533:1:59",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "2524:10:59"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 7829,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "2559:3:59",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 7828,
                        "name": "j",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7821,
                        "src": "2559:1:59",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 7830,
                    "nodeType": "ExpressionStatement",
                    "src": "2559:3:59"
                  },
                  "nodeType": "ForStatement",
                  "src": "2519:268:59"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 7863,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 7855,
                      "name": "result",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7798,
                      "src": "2797:6:59",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_PoolInfo_$7579_memory_ptr",
                        "typeString": "struct RegistryHelperBalancer.PoolInfo memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 7857,
                          "name": "pool",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7795,
                          "src": "2828:4:59",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_IBPool_$1371",
                            "typeString": "contract IBPool"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "argumentTypes": null,
                              "id": 7858,
                              "name": "pool",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7795,
                              "src": "2846:4:59",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_IBPool_$1371",
                                "typeString": "contract IBPool"
                              }
                            },
                            "id": 7859,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "getSwapFee",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 1370,
                            "src": "2846:15:59",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$",
                              "typeString": "function () view external returns (uint256)"
                            }
                          },
                          "id": 7860,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2846:17:59",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "id": 7861,
                          "name": "tokenStates",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7812,
                          "src": "2877:11:59",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_struct$_TokenState_$7571_memory_ptr_$dyn_memory_ptr",
                            "typeString": "struct RegistryHelperBalancer.TokenState memory[] memory"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_contract$_IBPool_$1371",
                            "typeString": "contract IBPool"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          {
                            "typeIdentifier": "t_array$_t_struct$_TokenState_$7571_memory_ptr_$dyn_memory_ptr",
                            "typeString": "struct RegistryHelperBalancer.TokenState memory[] memory"
                          }
                        ],
                        "id": 7856,
                        "name": "PoolInfo",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7579,
                        "src": "2806:8:59",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_struct$_PoolInfo_$7579_storage_ptr_$",
                          "typeString": "type(struct RegistryHelperBalancer.PoolInfo storage pointer)"
                        }
                      },
                      "id": 7862,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "structConstructorCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "2806:92:59",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_PoolInfo_$7579_memory_ptr",
                        "typeString": "struct RegistryHelperBalancer.PoolInfo memory"
                      }
                    },
                    "src": "2797:101:59",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_PoolInfo_$7579_memory_ptr",
                      "typeString": "struct RegistryHelperBalancer.PoolInfo memory"
                    }
                  },
                  "id": 7864,
                  "nodeType": "ExpressionStatement",
                  "src": "2797:101:59"
                }
              ]
            },
            "documentation": null,
            "functionSelector": "06bfa938",
            "id": 7866,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getPoolInfo",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 7796,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7795,
                  "mutability": "mutable",
                  "name": "pool",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 7866,
                  "src": "2240:11:59",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_IBPool_$1371",
                    "typeString": "contract IBPool"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 7794,
                    "name": "IBPool",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 1371,
                    "src": "2240:6:59",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IBPool_$1371",
                      "typeString": "contract IBPool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2239:13:59"
            },
            "returnParameters": {
              "id": 7799,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7798,
                  "mutability": "mutable",
                  "name": "result",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 7866,
                  "src": "2276:22:59",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_PoolInfo_$7579_memory_ptr",
                    "typeString": "struct RegistryHelperBalancer.PoolInfo"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 7797,
                    "name": "PoolInfo",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 7579,
                    "src": "2276:8:59",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_PoolInfo_$7579_storage_ptr",
                      "typeString": "struct RegistryHelperBalancer.PoolInfo"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2275:24:59"
            },
            "scope": 7867,
            "src": "2219:686:59",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          }
        ],
        "scope": 7868,
        "src": "183:2724:59"
      }
    ],
    "src": "32:2876:59"
  },
  "legacyAST": {
    "attributes": {
      "absolutePath": "project:/contracts/swappa/RegistryHelperBalancer.sol",
      "exportedSymbols": {
        "RegistryHelperBalancer": [
          7867
        ]
      },
      "license": "MIT"
    },
    "children": [
      {
        "attributes": {
          "literals": [
            "solidity",
            "0.6",
            ".8"
          ]
        },
        "id": 7561,
        "name": "PragmaDirective",
        "src": "32:22:59"
      },
      {
        "attributes": {
          "literals": [
            "experimental",
            "ABIEncoderV2"
          ]
        },
        "id": 7562,
        "name": "PragmaDirective",
        "src": "55:33:59"
      },
      {
        "attributes": {
          "SourceUnit": 1372,
          "absolutePath": "project:/contracts/interfaces/balancer/IBPool.sol",
          "file": "../interfaces/balancer/IBPool.sol",
          "scope": 7868,
          "symbolAliases": [
            null
          ],
          "unitAlias": ""
        },
        "id": 7563,
        "name": "ImportDirective",
        "src": "90:43:59"
      },
      {
        "attributes": {
          "SourceUnit": 1484,
          "absolutePath": "project:/contracts/interfaces/balancer/IBRegistry.sol",
          "file": "../interfaces/balancer/IBRegistry.sol",
          "scope": 7868,
          "symbolAliases": [
            null
          ],
          "unitAlias": ""
        },
        "id": 7564,
        "name": "ImportDirective",
        "src": "134:47:59"
      },
      {
        "attributes": {
          "abstract": false,
          "baseContracts": [
            null
          ],
          "contractDependencies": [
            null
          ],
          "contractKind": "contract",
          "documentation": null,
          "fullyImplemented": true,
          "linearizedBaseContracts": [
            7867
          ],
          "name": "RegistryHelperBalancer",
          "scope": 7868
        },
        "children": [
          {
            "attributes": {
              "canonicalName": "RegistryHelperBalancer.TokenState",
              "name": "TokenState",
              "scope": 7867,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "constant": false,
                  "mutability": "mutable",
                  "name": "token",
                  "overrides": null,
                  "scope": 7571,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "address",
                  "value": null,
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "address",
                      "stateMutability": "nonpayable",
                      "type": "address"
                    },
                    "id": 7565,
                    "name": "ElementaryTypeName",
                    "src": "250:7:59"
                  }
                ],
                "id": 7566,
                "name": "VariableDeclaration",
                "src": "250:13:59"
              },
              {
                "attributes": {
                  "constant": false,
                  "mutability": "mutable",
                  "name": "balance",
                  "overrides": null,
                  "scope": 7571,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "uint256",
                  "value": null,
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "uint",
                      "type": "uint256"
                    },
                    "id": 7567,
                    "name": "ElementaryTypeName",
                    "src": "273:4:59"
                  }
                ],
                "id": 7568,
                "name": "VariableDeclaration",
                "src": "273:12:59"
              },
              {
                "attributes": {
                  "constant": false,
                  "mutability": "mutable",
                  "name": "denormalizedWeight",
                  "overrides": null,
                  "scope": 7571,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "uint256",
                  "value": null,
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "uint",
                      "type": "uint256"
                    },
                    "id": 7569,
                    "name": "ElementaryTypeName",
                    "src": "295:4:59"
                  }
                ],
                "id": 7570,
                "name": "VariableDeclaration",
                "src": "295:23:59"
              }
            ],
            "id": 7571,
            "name": "StructDefinition",
            "src": "222:103:59"
          },
          {
            "attributes": {
              "canonicalName": "RegistryHelperBalancer.PoolInfo",
              "name": "PoolInfo",
              "scope": 7867,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "constant": false,
                  "mutability": "mutable",
                  "name": "pool",
                  "overrides": null,
                  "scope": 7579,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "contract IBPool",
                  "value": null,
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "contractScope": null,
                      "name": "IBPool",
                      "referencedDeclaration": 1371,
                      "type": "contract IBPool"
                    },
                    "id": 7572,
                    "name": "UserDefinedTypeName",
                    "src": "357:6:59"
                  }
                ],
                "id": 7573,
                "name": "VariableDeclaration",
                "src": "357:11:59"
              },
              {
                "attributes": {
                  "constant": false,
                  "mutability": "mutable",
                  "name": "swapFee",
                  "overrides": null,
                  "scope": 7579,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "uint256",
                  "value": null,
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "uint",
                      "type": "uint256"
                    },
                    "id": 7574,
                    "name": "ElementaryTypeName",
                    "src": "378:4:59"
                  }
                ],
                "id": 7575,
                "name": "VariableDeclaration",
                "src": "378:12:59"
              },
              {
                "attributes": {
                  "constant": false,
                  "mutability": "mutable",
                  "name": "tokenStates",
                  "overrides": null,
                  "scope": 7579,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "struct RegistryHelperBalancer.TokenState[]",
                  "value": null,
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "length": null,
                      "type": "struct RegistryHelperBalancer.TokenState[]"
                    },
                    "children": [
                      {
                        "attributes": {
                          "contractScope": null,
                          "name": "TokenState",
                          "referencedDeclaration": 7571,
                          "type": "struct RegistryHelperBalancer.TokenState"
                        },
                        "id": 7576,
                        "name": "UserDefinedTypeName",
                        "src": "400:10:59"
                      }
                    ],
                    "id": 7577,
                    "name": "ArrayTypeName",
                    "src": "400:12:59"
                  }
                ],
                "id": 7578,
                "name": "VariableDeclaration",
                "src": "400:24:59"
              }
            ],
            "id": 7579,
            "name": "StructDefinition",
            "src": "331:100:59"
          },
          {
            "attributes": {
              "documentation": null,
              "functionSelector": "9756ef77",
              "implemented": true,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "findPools",
              "overrides": null,
              "scope": 7867,
              "stateMutability": "view",
              "virtual": false,
              "visibility": "external"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "registry",
                      "overrides": null,
                      "scope": 7750,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "contract IBRegistry",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "contractScope": null,
                          "name": "IBRegistry",
                          "referencedDeclaration": 1483,
                          "type": "contract IBRegistry"
                        },
                        "id": 7580,
                        "name": "UserDefinedTypeName",
                        "src": "465:10:59"
                      }
                    ],
                    "id": 7581,
                    "name": "VariableDeclaration",
                    "src": "465:19:59"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "fromTokens",
                      "overrides": null,
                      "scope": 7750,
                      "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": 7582,
                            "name": "ElementaryTypeName",
                            "src": "494:7:59"
                          }
                        ],
                        "id": 7583,
                        "name": "ArrayTypeName",
                        "src": "494:9:59"
                      }
                    ],
                    "id": 7584,
                    "name": "VariableDeclaration",
                    "src": "494:29:59"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "toTokens",
                      "overrides": null,
                      "scope": 7750,
                      "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": 7585,
                            "name": "ElementaryTypeName",
                            "src": "533:7:59"
                          }
                        ],
                        "id": 7586,
                        "name": "ArrayTypeName",
                        "src": "533:9:59"
                      }
                    ],
                    "id": 7587,
                    "name": "VariableDeclaration",
                    "src": "533:27:59"
                  }
                ],
                "id": 7588,
                "name": "ParameterList",
                "src": "455:111:59"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "result",
                      "overrides": null,
                      "scope": 7750,
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "type": "struct RegistryHelperBalancer.PoolInfo[]",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "length": null,
                          "type": "struct RegistryHelperBalancer.PoolInfo[]"
                        },
                        "children": [
                          {
                            "attributes": {
                              "contractScope": null,
                              "name": "PoolInfo",
                              "referencedDeclaration": 7579,
                              "type": "struct RegistryHelperBalancer.PoolInfo"
                            },
                            "id": 7589,
                            "name": "UserDefinedTypeName",
                            "src": "590:8:59"
                          }
                        ],
                        "id": 7590,
                        "name": "ArrayTypeName",
                        "src": "590:10:59"
                      }
                    ],
                    "id": 7591,
                    "name": "VariableDeclaration",
                    "src": "590:24:59"
                  }
                ],
                "id": 7592,
                "name": "ParameterList",
                "src": "589:26:59"
              },
              {
                "children": [
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "tryCall": false,
                          "type": "tuple()",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                },
                                {
                                  "typeIdentifier": "t_stringliteral_78fcd33ef9af9b3e62b4a92348ed4ae24cf4226f004d61b656ff4f6e017443dc",
                                  "typeString": "literal_string \"fromTokens and toTokens must be of equal length\""
                                }
                              ],
                              "overloadedDeclarations": [
                                -18,
                                -18
                              ],
                              "referencedDeclaration": -18,
                              "type": "function (bool,string memory) pure",
                              "value": "require"
                            },
                            "id": 7593,
                            "name": "Identifier",
                            "src": "626:7:59"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "==",
                              "type": "bool"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "length",
                                  "referencedDeclaration": null,
                                  "type": "uint256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 7584,
                                      "type": "address[] calldata",
                                      "value": "fromTokens"
                                    },
                                    "id": 7594,
                                    "name": "Identifier",
                                    "src": "634:10:59"
                                  }
                                ],
                                "id": 7595,
                                "name": "MemberAccess",
                                "src": "634:17:59"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "length",
                                  "referencedDeclaration": null,
                                  "type": "uint256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 7587,
                                      "type": "address[] calldata",
                                      "value": "toTokens"
                                    },
                                    "id": 7596,
                                    "name": "Identifier",
                                    "src": "655:8:59"
                                  }
                                ],
                                "id": 7597,
                                "name": "MemberAccess",
                                "src": "655:15:59"
                              }
                            ],
                            "id": 7598,
                            "name": "BinaryOperation",
                            "src": "634:36:59"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "hexvalue": "66726f6d546f6b656e7320616e6420746f546f6b656e73206d757374206265206f6620657175616c206c656e677468",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "subdenomination": null,
                              "token": "string",
                              "type": "literal_string \"fromTokens and toTokens must be of equal length\"",
                              "value": "fromTokens and toTokens must be of equal length"
                            },
                            "id": 7599,
                            "name": "Literal",
                            "src": "684:49:59"
                          }
                        ],
                        "id": 7600,
                        "name": "FunctionCall",
                        "src": "626:108:59"
                      }
                    ],
                    "id": 7601,
                    "name": "ExpressionStatement",
                    "src": "626:108:59"
                  },
                  {
                    "attributes": {
                      "assignments": [
                        7605
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "mutability": "mutable",
                          "name": "foundPools",
                          "overrides": null,
                          "scope": 7749,
                          "stateVariable": false,
                          "storageLocation": "memory",
                          "type": "contract IBPool[]",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "length": null,
                              "type": "contract IBPool[]"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "contractScope": null,
                                  "name": "IBPool",
                                  "referencedDeclaration": 1371,
                                  "type": "contract IBPool"
                                },
                                "id": 7603,
                                "name": "UserDefinedTypeName",
                                "src": "745:6:59"
                              }
                            ],
                            "id": 7604,
                            "name": "ArrayTypeName",
                            "src": "745:8:59"
                          }
                        ],
                        "id": 7605,
                        "name": "VariableDeclaration",
                        "src": "745:26:59"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "tryCall": false,
                          "type": "contract IBPool[] memory",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "type": "function (uint256) pure returns (contract IBPool[] memory)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "length": null,
                                  "type": "contract IBPool[]"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "contractScope": null,
                                      "name": "IBPool",
                                      "referencedDeclaration": 1371,
                                      "type": "contract IBPool"
                                    },
                                    "id": 7606,
                                    "name": "UserDefinedTypeName",
                                    "src": "778:6:59"
                                  }
                                ],
                                "id": 7607,
                                "name": "ArrayTypeName",
                                "src": "778:8:59"
                              }
                            ],
                            "id": 7608,
                            "name": "NewExpression",
                            "src": "774:12:59"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "*",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "length",
                                  "referencedDeclaration": null,
                                  "type": "uint256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 7584,
                                      "type": "address[] calldata",
                                      "value": "fromTokens"
                                    },
                                    "id": 7609,
                                    "name": "Identifier",
                                    "src": "787:10:59"
                                  }
                                ],
                                "id": 7610,
                                "name": "MemberAccess",
                                "src": "787:17:59"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "hexvalue": "35",
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "subdenomination": null,
                                  "token": "number",
                                  "type": "int_const 5",
                                  "value": "5"
                                },
                                "id": 7611,
                                "name": "Literal",
                                "src": "807:1:59"
                              }
                            ],
                            "id": 7612,
                            "name": "BinaryOperation",
                            "src": "787:21:59"
                          }
                        ],
                        "id": 7613,
                        "name": "FunctionCall",
                        "src": "774:35:59"
                      }
                    ],
                    "id": 7614,
                    "name": "VariableDeclarationStatement",
                    "src": "745:64:59"
                  },
                  {
                    "attributes": {
                      "assignments": [
                        7616
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "mutability": "mutable",
                          "name": "found",
                          "overrides": null,
                          "scope": 7749,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "uint256",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "uint",
                              "type": "uint256"
                            },
                            "id": 7615,
                            "name": "ElementaryTypeName",
                            "src": "819:4:59"
                          }
                        ],
                        "id": 7616,
                        "name": "VariableDeclaration",
                        "src": "819:10:59"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "hexvalue": "30",
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "subdenomination": null,
                          "token": "number",
                          "type": "int_const 0",
                          "value": "0"
                        },
                        "id": 7617,
                        "name": "Literal",
                        "src": "832:1:59"
                      }
                    ],
                    "id": 7618,
                    "name": "VariableDeclarationStatement",
                    "src": "819:14:59"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "assignments": [
                            7620
                          ]
                        },
                        "children": [
                          {
                            "attributes": {
                              "constant": false,
                              "mutability": "mutable",
                              "name": "i",
                              "overrides": null,
                              "scope": 7713,
                              "stateVariable": false,
                              "storageLocation": "default",
                              "type": "uint256",
                              "value": null,
                              "visibility": "internal"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "name": "uint",
                                  "type": "uint256"
                                },
                                "id": 7619,
                                "name": "ElementaryTypeName",
                                "src": "849:4:59"
                              }
                            ],
                            "id": 7620,
                            "name": "VariableDeclaration",
                            "src": "849:6:59"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "subdenomination": null,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 7621,
                            "name": "Literal",
                            "src": "858:1:59"
                          }
                        ],
                        "id": 7622,
                        "name": "VariableDeclarationStatement",
                        "src": "849:10:59"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "<",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 7620,
                              "type": "uint256",
                              "value": "i"
                            },
                            "id": 7623,
                            "name": "Identifier",
                            "src": "861:1:59"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "length",
                              "referencedDeclaration": null,
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 7584,
                                  "type": "address[] calldata",
                                  "value": "fromTokens"
                                },
                                "id": 7624,
                                "name": "Identifier",
                                "src": "865:10:59"
                              }
                            ],
                            "id": 7625,
                            "name": "MemberAccess",
                            "src": "865:17:59"
                          }
                        ],
                        "id": 7626,
                        "name": "BinaryOperation",
                        "src": "861:21:59"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "++",
                              "prefix": false,
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 7620,
                                  "type": "uint256",
                                  "value": "i"
                                },
                                "id": 7627,
                                "name": "Identifier",
                                "src": "884:1:59"
                              }
                            ],
                            "id": 7628,
                            "name": "UnaryOperation",
                            "src": "884:3:59"
                          }
                        ],
                        "id": 7629,
                        "name": "ExpressionStatement",
                        "src": "884:3:59"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "assignments": [
                                7634
                              ]
                            },
                            "children": [
                              {
                                "attributes": {
                                  "constant": false,
                                  "mutability": "mutable",
                                  "name": "pools",
                                  "overrides": null,
                                  "scope": 7712,
                                  "stateVariable": false,
                                  "storageLocation": "memory",
                                  "type": "address[]",
                                  "value": null,
                                  "visibility": "internal"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "length": null,
                                      "type": "address[]"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "name": "address",
                                          "type": "address"
                                        },
                                        "id": 7632,
                                        "name": "ElementaryTypeName",
                                        "src": "970:7:59"
                                      }
                                    ],
                                    "id": 7633,
                                    "name": "ArrayTypeName",
                                    "src": "970:9:59"
                                  }
                                ],
                                "id": 7634,
                                "name": "VariableDeclaration",
                                "src": "970:22:59"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "tryCall": false,
                                  "type": "address[] memory",
                                  "type_conversion": false
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_address",
                                          "typeString": "address"
                                        },
                                        {
                                          "typeIdentifier": "t_address",
                                          "typeString": "address"
                                        },
                                        {
                                          "typeIdentifier": "t_rational_5_by_1",
                                          "typeString": "int_const 5"
                                        }
                                      ],
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "member_name": "getBestPoolsWithLimit",
                                      "referencedDeclaration": 1442,
                                      "type": "function (address,address,uint256) view external returns (address[] memory)"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 7581,
                                          "type": "contract IBRegistry",
                                          "value": "registry"
                                        },
                                        "id": 7635,
                                        "name": "Identifier",
                                        "src": "1011:8:59"
                                      }
                                    ],
                                    "id": 7636,
                                    "name": "MemberAccess",
                                    "src": "1011:30:59"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "address"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 7584,
                                          "type": "address[] calldata",
                                          "value": "fromTokens"
                                        },
                                        "id": 7637,
                                        "name": "Identifier",
                                        "src": "1042:10:59"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 7620,
                                          "type": "uint256",
                                          "value": "i"
                                        },
                                        "id": 7638,
                                        "name": "Identifier",
                                        "src": "1053:1:59"
                                      }
                                    ],
                                    "id": 7639,
                                    "name": "IndexAccess",
                                    "src": "1042:13:59"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "type": "address"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 7587,
                                          "type": "address[] calldata",
                                          "value": "toTokens"
                                        },
                                        "id": 7640,
                                        "name": "Identifier",
                                        "src": "1057:8:59"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 7620,
                                          "type": "uint256",
                                          "value": "i"
                                        },
                                        "id": 7641,
                                        "name": "Identifier",
                                        "src": "1066:1:59"
                                      }
                                    ],
                                    "id": 7642,
                                    "name": "IndexAccess",
                                    "src": "1057:11:59"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "hexvalue": "35",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "subdenomination": null,
                                      "token": "number",
                                      "type": "int_const 5",
                                      "value": "5"
                                    },
                                    "id": 7643,
                                    "name": "Literal",
                                    "src": "1070:1:59"
                                  }
                                ],
                                "id": 7644,
                                "name": "FunctionCall",
                                "src": "1011:61:59"
                              }
                            ],
                            "id": 7645,
                            "name": "VariableDeclarationStatement",
                            "src": "970:102:59"
                          },
                          {
                            "children": [
                              {
                                "attributes": {
                                  "assignments": [
                                    7647
                                  ]
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "constant": false,
                                      "mutability": "mutable",
                                      "name": "j",
                                      "overrides": null,
                                      "scope": 7711,
                                      "stateVariable": false,
                                      "storageLocation": "default",
                                      "type": "uint256",
                                      "value": null,
                                      "visibility": "internal"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "name": "uint",
                                          "type": "uint256"
                                        },
                                        "id": 7646,
                                        "name": "ElementaryTypeName",
                                        "src": "1091:4:59"
                                      }
                                    ],
                                    "id": 7647,
                                    "name": "VariableDeclaration",
                                    "src": "1091:6:59"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "hexvalue": "30",
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "subdenomination": null,
                                      "token": "number",
                                      "type": "int_const 0",
                                      "value": "0"
                                    },
                                    "id": 7648,
                                    "name": "Literal",
                                    "src": "1100:1:59"
                                  }
                                ],
                                "id": 7649,
                                "name": "VariableDeclarationStatement",
                                "src": "1091:10:59"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "<",
                                  "type": "bool"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 7647,
                                      "type": "uint256",
                                      "value": "j"
                                    },
                                    "id": 7650,
                                    "name": "Identifier",
                                    "src": "1103:1:59"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "member_name": "length",
                                      "referencedDeclaration": null,
                                      "type": "uint256"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 7634,
                                          "type": "address[] memory",
                                          "value": "pools"
                                        },
                                        "id": 7651,
                                        "name": "Identifier",
                                        "src": "1107:5:59"
                                      }
                                    ],
                                    "id": 7652,
                                    "name": "MemberAccess",
                                    "src": "1107:12:59"
                                  }
                                ],
                                "id": 7653,
                                "name": "BinaryOperation",
                                "src": "1103:16:59"
                              },
                              {
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "operator": "++",
                                      "prefix": false,
                                      "type": "uint256"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 7647,
                                          "type": "uint256",
                                          "value": "j"
                                        },
                                        "id": 7654,
                                        "name": "Identifier",
                                        "src": "1121:1:59"
                                      }
                                    ],
                                    "id": 7655,
                                    "name": "UnaryOperation",
                                    "src": "1121:3:59"
                                  }
                                ],
                                "id": 7656,
                                "name": "ExpressionStatement",
                                "src": "1121:3:59"
                              },
                              {
                                "children": [
                                  {
                                    "attributes": {
                                      "assignments": [
                                        7658
                                      ]
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "constant": false,
                                          "mutability": "mutable",
                                          "name": "pool",
                                          "overrides": null,
                                          "scope": 7710,
                                          "stateVariable": false,
                                          "storageLocation": "default",
                                          "type": "contract IBPool",
                                          "value": null,
                                          "visibility": "internal"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "contractScope": null,
                                              "name": "IBPool",
                                              "referencedDeclaration": 1371,
                                              "type": "contract IBPool"
                                            },
                                            "id": 7657,
                                            "name": "UserDefinedTypeName",
                                            "src": "1144:6:59"
                                          }
                                        ],
                                        "id": 7658,
                                        "name": "VariableDeclaration",
                                        "src": "1144:11:59"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "isStructConstructorCall": false,
                                          "lValueRequested": false,
                                          "names": [
                                            null
                                          ],
                                          "tryCall": false,
                                          "type": "contract IBPool",
                                          "type_conversion": true
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": [
                                                {
                                                  "typeIdentifier": "t_address",
                                                  "typeString": "address"
                                                }
                                              ],
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 1371,
                                              "type": "type(contract IBPool)",
                                              "value": "IBPool"
                                            },
                                            "id": 7659,
                                            "name": "Identifier",
                                            "src": "1158:6:59"
                                          },
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "isConstant": false,
                                              "isLValue": true,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "type": "address"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 7634,
                                                  "type": "address[] memory",
                                                  "value": "pools"
                                                },
                                                "id": 7660,
                                                "name": "Identifier",
                                                "src": "1165:5:59"
                                              },
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 7647,
                                                  "type": "uint256",
                                                  "value": "j"
                                                },
                                                "id": 7661,
                                                "name": "Identifier",
                                                "src": "1171:1:59"
                                              }
                                            ],
                                            "id": 7662,
                                            "name": "IndexAccess",
                                            "src": "1165:8:59"
                                          }
                                        ],
                                        "id": 7663,
                                        "name": "FunctionCall",
                                        "src": "1158:16:59"
                                      }
                                    ],
                                    "id": 7664,
                                    "name": "VariableDeclarationStatement",
                                    "src": "1144:30:59"
                                  },
                                  {
                                    "attributes": {
                                      "falseBody": null
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "operator": "!",
                                          "prefix": true,
                                          "type": "bool"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "arguments": [
                                                null
                                              ],
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "isStructConstructorCall": false,
                                              "lValueRequested": false,
                                              "names": [
                                                null
                                              ],
                                              "tryCall": false,
                                              "type": "bool",
                                              "type_conversion": false
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": [
                                                    null
                                                  ],
                                                  "isConstant": false,
                                                  "isLValue": false,
                                                  "isPure": false,
                                                  "lValueRequested": false,
                                                  "member_name": "isFinalized",
                                                  "referencedDeclaration": 1358,
                                                  "type": "function () view external returns (bool)"
                                                },
                                                "children": [
                                                  {
                                                    "attributes": {
                                                      "argumentTypes": null,
                                                      "overloadedDeclarations": [
                                                        null
                                                      ],
                                                      "referencedDeclaration": 7658,
                                                      "type": "contract IBPool",
                                                      "value": "pool"
                                                    },
                                                    "id": 7665,
                                                    "name": "Identifier",
                                                    "src": "1197:4:59"
                                                  }
                                                ],
                                                "id": 7666,
                                                "name": "MemberAccess",
                                                "src": "1197:16:59"
                                              }
                                            ],
                                            "id": 7667,
                                            "name": "FunctionCall",
                                            "src": "1197:18:59"
                                          }
                                        ],
                                        "id": 7668,
                                        "name": "UnaryOperation",
                                        "src": "1196:19:59"
                                      },
                                      {
                                        "children": [
                                          {
                                            "id": 7669,
                                            "name": "Continue",
                                            "src": "1239:8:59"
                                          }
                                        ],
                                        "id": 7670,
                                        "name": "Block",
                                        "src": "1217:49:59"
                                      }
                                    ],
                                    "id": 7671,
                                    "name": "IfStatement",
                                    "src": "1192:74:59"
                                  },
                                  {
                                    "attributes": {
                                      "assignments": [
                                        7673
                                      ]
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "constant": false,
                                          "mutability": "mutable",
                                          "name": "addPool",
                                          "overrides": null,
                                          "scope": 7710,
                                          "stateVariable": false,
                                          "storageLocation": "default",
                                          "type": "bool",
                                          "value": null,
                                          "visibility": "internal"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "name": "bool",
                                              "type": "bool"
                                            },
                                            "id": 7672,
                                            "name": "ElementaryTypeName",
                                            "src": "1284:4:59"
                                          }
                                        ],
                                        "id": 7673,
                                        "name": "VariableDeclaration",
                                        "src": "1284:12:59"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "hexvalue": "74727565",
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "subdenomination": null,
                                          "token": "bool",
                                          "type": "bool",
                                          "value": "true"
                                        },
                                        "id": 7674,
                                        "name": "Literal",
                                        "src": "1299:4:59"
                                      }
                                    ],
                                    "id": 7675,
                                    "name": "VariableDeclarationStatement",
                                    "src": "1284:19:59"
                                  },
                                  {
                                    "children": [
                                      {
                                        "attributes": {
                                          "assignments": [
                                            7677
                                          ]
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "constant": false,
                                              "mutability": "mutable",
                                              "name": "k",
                                              "overrides": null,
                                              "scope": 7699,
                                              "stateVariable": false,
                                              "storageLocation": "default",
                                              "type": "uint256",
                                              "value": null,
                                              "visibility": "internal"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "name": "uint",
                                                  "type": "uint256"
                                                },
                                                "id": 7676,
                                                "name": "ElementaryTypeName",
                                                "src": "1326:4:59"
                                              }
                                            ],
                                            "id": 7677,
                                            "name": "VariableDeclaration",
                                            "src": "1326:6:59"
                                          },
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "hexvalue": "30",
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "subdenomination": null,
                                              "token": "number",
                                              "type": "int_const 0",
                                              "value": "0"
                                            },
                                            "id": 7678,
                                            "name": "Literal",
                                            "src": "1335:1:59"
                                          }
                                        ],
                                        "id": 7679,
                                        "name": "VariableDeclarationStatement",
                                        "src": "1326:10:59"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "commonType": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          },
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "operator": "<",
                                          "type": "bool"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 7677,
                                              "type": "uint256",
                                              "value": "k"
                                            },
                                            "id": 7680,
                                            "name": "Identifier",
                                            "src": "1338:1:59"
                                          },
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 7616,
                                              "type": "uint256",
                                              "value": "found"
                                            },
                                            "id": 7681,
                                            "name": "Identifier",
                                            "src": "1342:5:59"
                                          }
                                        ],
                                        "id": 7682,
                                        "name": "BinaryOperation",
                                        "src": "1338:9:59"
                                      },
                                      {
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "operator": "++",
                                              "prefix": false,
                                              "type": "uint256"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 7677,
                                                  "type": "uint256",
                                                  "value": "k"
                                                },
                                                "id": 7683,
                                                "name": "Identifier",
                                                "src": "1349:1:59"
                                              }
                                            ],
                                            "id": 7684,
                                            "name": "UnaryOperation",
                                            "src": "1349:3:59"
                                          }
                                        ],
                                        "id": 7685,
                                        "name": "ExpressionStatement",
                                        "src": "1349:3:59"
                                      },
                                      {
                                        "children": [
                                          {
                                            "attributes": {
                                              "falseBody": null
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "commonType": {
                                                    "typeIdentifier": "t_contract$_IBPool_$1371",
                                                    "typeString": "contract IBPool"
                                                  },
                                                  "isConstant": false,
                                                  "isLValue": false,
                                                  "isPure": false,
                                                  "lValueRequested": false,
                                                  "operator": "==",
                                                  "type": "bool"
                                                },
                                                "children": [
                                                  {
                                                    "attributes": {
                                                      "argumentTypes": null,
                                                      "isConstant": false,
                                                      "isLValue": true,
                                                      "isPure": false,
                                                      "lValueRequested": false,
                                                      "type": "contract IBPool"
                                                    },
                                                    "children": [
                                                      {
                                                        "attributes": {
                                                          "argumentTypes": null,
                                                          "overloadedDeclarations": [
                                                            null
                                                          ],
                                                          "referencedDeclaration": 7605,
                                                          "type": "contract IBPool[] memory",
                                                          "value": "foundPools"
                                                        },
                                                        "id": 7686,
                                                        "name": "Identifier",
                                                        "src": "1380:10:59"
                                                      },
                                                      {
                                                        "attributes": {
                                                          "argumentTypes": null,
                                                          "overloadedDeclarations": [
                                                            null
                                                          ],
                                                          "referencedDeclaration": 7677,
                                                          "type": "uint256",
                                                          "value": "k"
                                                        },
                                                        "id": 7687,
                                                        "name": "Identifier",
                                                        "src": "1391:1:59"
                                                      }
                                                    ],
                                                    "id": 7688,
                                                    "name": "IndexAccess",
                                                    "src": "1380:13:59"
                                                  },
                                                  {
                                                    "attributes": {
                                                      "argumentTypes": null,
                                                      "overloadedDeclarations": [
                                                        null
                                                      ],
                                                      "referencedDeclaration": 7658,
                                                      "type": "contract IBPool",
                                                      "value": "pool"
                                                    },
                                                    "id": 7689,
                                                    "name": "Identifier",
                                                    "src": "1397:4:59"
                                                  }
                                                ],
                                                "id": 7690,
                                                "name": "BinaryOperation",
                                                "src": "1380:21:59"
                                              },
                                              {
                                                "children": [
                                                  {
                                                    "children": [
                                                      {
                                                        "attributes": {
                                                          "argumentTypes": null,
                                                          "isConstant": false,
                                                          "isLValue": false,
                                                          "isPure": false,
                                                          "lValueRequested": false,
                                                          "operator": "=",
                                                          "type": "bool"
                                                        },
                                                        "children": [
                                                          {
                                                            "attributes": {
                                                              "argumentTypes": null,
                                                              "overloadedDeclarations": [
                                                                null
                                                              ],
                                                              "referencedDeclaration": 7673,
                                                              "type": "bool",
                                                              "value": "addPool"
                                                            },
                                                            "id": 7691,
                                                            "name": "Identifier",
                                                            "src": "1485:7:59"
                                                          },
                                                          {
                                                            "attributes": {
                                                              "argumentTypes": null,
                                                              "hexvalue": "66616c7365",
                                                              "isConstant": false,
                                                              "isLValue": false,
                                                              "isPure": true,
                                                              "lValueRequested": false,
                                                              "subdenomination": null,
                                                              "token": "bool",
                                                              "type": "bool",
                                                              "value": "false"
                                                            },
                                                            "id": 7692,
                                                            "name": "Literal",
                                                            "src": "1495:5:59"
                                                          }
                                                        ],
                                                        "id": 7693,
                                                        "name": "Assignment",
                                                        "src": "1485:15:59"
                                                      }
                                                    ],
                                                    "id": 7694,
                                                    "name": "ExpressionStatement",
                                                    "src": "1485:15:59"
                                                  },
                                                  {
                                                    "id": 7695,
                                                    "name": "Break",
                                                    "src": "1526:5:59"
                                                  }
                                                ],
                                                "id": 7696,
                                                "name": "Block",
                                                "src": "1403:151:59"
                                              }
                                            ],
                                            "id": 7697,
                                            "name": "IfStatement",
                                            "src": "1376:178:59"
                                          }
                                        ],
                                        "id": 7698,
                                        "name": "Block",
                                        "src": "1354:218:59"
                                      }
                                    ],
                                    "id": 7699,
                                    "name": "ForStatement",
                                    "src": "1321:251:59"
                                  },
                                  {
                                    "attributes": {
                                      "falseBody": null
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 7673,
                                          "type": "bool",
                                          "value": "addPool"
                                        },
                                        "id": 7700,
                                        "name": "Identifier",
                                        "src": "1593:7:59"
                                      },
                                      {
                                        "children": [
                                          {
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "isConstant": false,
                                                  "isLValue": false,
                                                  "isPure": false,
                                                  "lValueRequested": false,
                                                  "operator": "=",
                                                  "type": "contract IBPool"
                                                },
                                                "children": [
                                                  {
                                                    "attributes": {
                                                      "argumentTypes": null,
                                                      "isConstant": false,
                                                      "isLValue": true,
                                                      "isPure": false,
                                                      "lValueRequested": true,
                                                      "type": "contract IBPool"
                                                    },
                                                    "children": [
                                                      {
                                                        "attributes": {
                                                          "argumentTypes": null,
                                                          "overloadedDeclarations": [
                                                            null
                                                          ],
                                                          "referencedDeclaration": 7605,
                                                          "type": "contract IBPool[] memory",
                                                          "value": "foundPools"
                                                        },
                                                        "id": 7701,
                                                        "name": "Identifier",
                                                        "src": "1673:10:59"
                                                      },
                                                      {
                                                        "attributes": {
                                                          "argumentTypes": null,
                                                          "isConstant": false,
                                                          "isLValue": false,
                                                          "isPure": false,
                                                          "lValueRequested": false,
                                                          "operator": "++",
                                                          "prefix": false,
                                                          "type": "uint256"
                                                        },
                                                        "children": [
                                                          {
                                                            "attributes": {
                                                              "argumentTypes": null,
                                                              "overloadedDeclarations": [
                                                                null
                                                              ],
                                                              "referencedDeclaration": 7616,
                                                              "type": "uint256",
                                                              "value": "found"
                                                            },
                                                            "id": 7702,
                                                            "name": "Identifier",
                                                            "src": "1684:5:59"
                                                          }
                                                        ],
                                                        "id": 7703,
                                                        "name": "UnaryOperation",
                                                        "src": "1684:7:59"
                                                      }
                                                    ],
                                                    "id": 7704,
                                                    "name": "IndexAccess",
                                                    "src": "1673:19:59"
                                                  },
                                                  {
                                                    "attributes": {
                                                      "argumentTypes": null,
                                                      "overloadedDeclarations": [
                                                        null
                                                      ],
                                                      "referencedDeclaration": 7658,
                                                      "type": "contract IBPool",
                                                      "value": "pool"
                                                    },
                                                    "id": 7705,
                                                    "name": "Identifier",
                                                    "src": "1695:4:59"
                                                  }
                                                ],
                                                "id": 7706,
                                                "name": "Assignment",
                                                "src": "1673:26:59"
                                              }
                                            ],
                                            "id": 7707,
                                            "name": "ExpressionStatement",
                                            "src": "1673:26:59"
                                          }
                                        ],
                                        "id": 7708,
                                        "name": "Block",
                                        "src": "1602:116:59"
                                      }
                                    ],
                                    "id": 7709,
                                    "name": "IfStatement",
                                    "src": "1589:129:59"
                                  }
                                ],
                                "id": 7710,
                                "name": "Block",
                                "src": "1126:606:59"
                              }
                            ],
                            "id": 7711,
                            "name": "ForStatement",
                            "src": "1086:646:59"
                          }
                        ],
                        "id": 7712,
                        "name": "Block",
                        "src": "889:853:59"
                      }
                    ],
                    "id": 7713,
                    "name": "ForStatement",
                    "src": "844:898:59"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "struct RegistryHelperBalancer.PoolInfo memory[] memory"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 7591,
                              "type": "struct RegistryHelperBalancer.PoolInfo memory[] memory",
                              "value": "result"
                            },
                            "id": 7714,
                            "name": "Identifier",
                            "src": "1752:6:59"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "tryCall": false,
                              "type": "struct RegistryHelperBalancer.PoolInfo memory[] memory",
                              "type_conversion": false
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "type": "function (uint256) pure returns (struct RegistryHelperBalancer.PoolInfo memory[] memory)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "length": null,
                                      "type": "struct RegistryHelperBalancer.PoolInfo[]"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "contractScope": null,
                                          "name": "PoolInfo",
                                          "referencedDeclaration": 7579,
                                          "type": "struct RegistryHelperBalancer.PoolInfo"
                                        },
                                        "id": 7715,
                                        "name": "UserDefinedTypeName",
                                        "src": "1765:8:59"
                                      }
                                    ],
                                    "id": 7716,
                                    "name": "ArrayTypeName",
                                    "src": "1765:10:59"
                                  }
                                ],
                                "id": 7717,
                                "name": "NewExpression",
                                "src": "1761:14:59"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 7616,
                                  "type": "uint256",
                                  "value": "found"
                                },
                                "id": 7718,
                                "name": "Identifier",
                                "src": "1776:5:59"
                              }
                            ],
                            "id": 7719,
                            "name": "FunctionCall",
                            "src": "1761:21:59"
                          }
                        ],
                        "id": 7720,
                        "name": "Assignment",
                        "src": "1752:30:59"
                      }
                    ],
                    "id": 7721,
                    "name": "ExpressionStatement",
                    "src": "1752:30:59"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "assignments": [
                            7723
                          ]
                        },
                        "children": [
                          {
                            "attributes": {
                              "constant": false,
                              "mutability": "mutable",
                              "name": "i",
                              "overrides": null,
                              "scope": 7748,
                              "stateVariable": false,
                              "storageLocation": "default",
                              "type": "uint256",
                              "value": null,
                              "visibility": "internal"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "name": "uint",
                                  "type": "uint256"
                                },
                                "id": 7722,
                                "name": "ElementaryTypeName",
                                "src": "1797:4:59"
                              }
                            ],
                            "id": 7723,
                            "name": "VariableDeclaration",
                            "src": "1797:6:59"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "subdenomination": null,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 7724,
                            "name": "Literal",
                            "src": "1806:1:59"
                          }
                        ],
                        "id": 7725,
                        "name": "VariableDeclarationStatement",
                        "src": "1797:10:59"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "<",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 7723,
                              "type": "uint256",
                              "value": "i"
                            },
                            "id": 7726,
                            "name": "Identifier",
                            "src": "1809:1:59"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 7616,
                              "type": "uint256",
                              "value": "found"
                            },
                            "id": 7727,
                            "name": "Identifier",
                            "src": "1813:5:59"
                          }
                        ],
                        "id": 7728,
                        "name": "BinaryOperation",
                        "src": "1809:9:59"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "++",
                              "prefix": false,
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 7723,
                                  "type": "uint256",
                                  "value": "i"
                                },
                                "id": 7729,
                                "name": "Identifier",
                                "src": "1820:1:59"
                              }
                            ],
                            "id": 7730,
                            "name": "UnaryOperation",
                            "src": "1820:3:59"
                          }
                        ],
                        "id": 7731,
                        "name": "ExpressionStatement",
                        "src": "1820:3:59"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "assignments": [
                                7733
                              ]
                            },
                            "children": [
                              {
                                "attributes": {
                                  "constant": false,
                                  "mutability": "mutable",
                                  "name": "pool",
                                  "overrides": null,
                                  "scope": 7747,
                                  "stateVariable": false,
                                  "storageLocation": "default",
                                  "type": "contract IBPool",
                                  "value": null,
                                  "visibility": "internal"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "contractScope": null,
                                      "name": "IBPool",
                                      "referencedDeclaration": 1371,
                                      "type": "contract IBPool"
                                    },
                                    "id": 7732,
                                    "name": "UserDefinedTypeName",
                                    "src": "1839:6:59"
                                  }
                                ],
                                "id": 7733,
                                "name": "VariableDeclaration",
                                "src": "1839:11:59"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "contract IBPool"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 7605,
                                      "type": "contract IBPool[] memory",
                                      "value": "foundPools"
                                    },
                                    "id": 7734,
                                    "name": "Identifier",
                                    "src": "1853:10:59"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 7723,
                                      "type": "uint256",
                                      "value": "i"
                                    },
                                    "id": 7735,
                                    "name": "Identifier",
                                    "src": "1864:1:59"
                                  }
                                ],
                                "id": 7736,
                                "name": "IndexAccess",
                                "src": "1853:13:59"
                              }
                            ],
                            "id": 7737,
                            "name": "VariableDeclarationStatement",
                            "src": "1839:27:59"
                          },
                          {
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "=",
                                  "type": "struct RegistryHelperBalancer.PoolInfo memory"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": true,
                                      "type": "struct RegistryHelperBalancer.PoolInfo memory"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 7591,
                                          "type": "struct RegistryHelperBalancer.PoolInfo memory[] memory",
                                          "value": "result"
                                        },
                                        "id": 7738,
                                        "name": "Identifier",
                                        "src": "1880:6:59"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 7723,
                                          "type": "uint256",
                                          "value": "i"
                                        },
                                        "id": 7739,
                                        "name": "Identifier",
                                        "src": "1887:1:59"
                                      }
                                    ],
                                    "id": 7740,
                                    "name": "IndexAccess",
                                    "src": "1880:9:59"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "isStructConstructorCall": false,
                                      "lValueRequested": false,
                                      "names": [
                                        null
                                      ],
                                      "tryCall": false,
                                      "type": "struct RegistryHelperBalancer.PoolInfo memory",
                                      "type_conversion": false
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_contract$_IBPool_$1371",
                                              "typeString": "contract IBPool"
                                            }
                                          ],
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "member_name": "getPoolInfo",
                                          "referencedDeclaration": 7866,
                                          "type": "function (contract IBPool) view external returns (struct RegistryHelperBalancer.PoolInfo memory)"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": -28,
                                              "type": "contract RegistryHelperBalancer",
                                              "value": "this"
                                            },
                                            "id": 7741,
                                            "name": "Identifier",
                                            "src": "1892:4:59"
                                          }
                                        ],
                                        "id": 7742,
                                        "name": "MemberAccess",
                                        "src": "1892:16:59"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 7733,
                                          "type": "contract IBPool",
                                          "value": "pool"
                                        },
                                        "id": 7743,
                                        "name": "Identifier",
                                        "src": "1909:4:59"
                                      }
                                    ],
                                    "id": 7744,
                                    "name": "FunctionCall",
                                    "src": "1892:22:59"
                                  }
                                ],
                                "id": 7745,
                                "name": "Assignment",
                                "src": "1880:34:59"
                              }
                            ],
                            "id": 7746,
                            "name": "ExpressionStatement",
                            "src": "1880:34:59"
                          }
                        ],
                        "id": 7747,
                        "name": "Block",
                        "src": "1825:100:59"
                      }
                    ],
                    "id": 7748,
                    "name": "ForStatement",
                    "src": "1792:133:59"
                  }
                ],
                "id": 7749,
                "name": "Block",
                "src": "616:1315:59"
              }
            ],
            "id": 7750,
            "name": "FunctionDefinition",
            "src": "437:1494:59"
          },
          {
            "attributes": {
              "documentation": null,
              "functionSelector": "977982ba",
              "implemented": true,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "refreshPools",
              "overrides": null,
              "scope": 7867,
              "stateMutability": "view",
              "virtual": false,
              "visibility": "external"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "pools",
                      "overrides": null,
                      "scope": 7793,
                      "stateVariable": false,
                      "storageLocation": "calldata",
                      "type": "contract IBPool[]",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "length": null,
                          "type": "contract IBPool[]"
                        },
                        "children": [
                          {
                            "attributes": {
                              "contractScope": null,
                              "name": "IBPool",
                              "referencedDeclaration": 1371,
                              "type": "contract IBPool"
                            },
                            "id": 7751,
                            "name": "UserDefinedTypeName",
                            "src": "1968:6:59"
                          }
                        ],
                        "id": 7752,
                        "name": "ArrayTypeName",
                        "src": "1968:8:59"
                      }
                    ],
                    "id": 7753,
                    "name": "VariableDeclaration",
                    "src": "1968:23:59"
                  }
                ],
                "id": 7754,
                "name": "ParameterList",
                "src": "1958:39:59"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "result",
                      "overrides": null,
                      "scope": 7793,
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "type": "struct RegistryHelperBalancer.PoolInfo[]",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "length": null,
                          "type": "struct RegistryHelperBalancer.PoolInfo[]"
                        },
                        "children": [
                          {
                            "attributes": {
                              "contractScope": null,
                              "name": "PoolInfo",
                              "referencedDeclaration": 7579,
                              "type": "struct RegistryHelperBalancer.PoolInfo"
                            },
                            "id": 7755,
                            "name": "UserDefinedTypeName",
                            "src": "2021:8:59"
                          }
                        ],
                        "id": 7756,
                        "name": "ArrayTypeName",
                        "src": "2021:10:59"
                      }
                    ],
                    "id": 7757,
                    "name": "VariableDeclaration",
                    "src": "2021:24:59"
                  }
                ],
                "id": 7758,
                "name": "ParameterList",
                "src": "2020:26:59"
              },
              {
                "children": [
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "struct RegistryHelperBalancer.PoolInfo memory[] memory"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 7757,
                              "type": "struct RegistryHelperBalancer.PoolInfo memory[] memory",
                              "value": "result"
                            },
                            "id": 7759,
                            "name": "Identifier",
                            "src": "2057:6:59"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "tryCall": false,
                              "type": "struct RegistryHelperBalancer.PoolInfo memory[] memory",
                              "type_conversion": false
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "type": "function (uint256) pure returns (struct RegistryHelperBalancer.PoolInfo memory[] memory)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "length": null,
                                      "type": "struct RegistryHelperBalancer.PoolInfo[]"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "contractScope": null,
                                          "name": "PoolInfo",
                                          "referencedDeclaration": 7579,
                                          "type": "struct RegistryHelperBalancer.PoolInfo"
                                        },
                                        "id": 7760,
                                        "name": "UserDefinedTypeName",
                                        "src": "2070:8:59"
                                      }
                                    ],
                                    "id": 7761,
                                    "name": "ArrayTypeName",
                                    "src": "2070:10:59"
                                  }
                                ],
                                "id": 7762,
                                "name": "NewExpression",
                                "src": "2066:14:59"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "member_name": "length",
                                  "referencedDeclaration": null,
                                  "type": "uint256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 7753,
                                      "type": "contract IBPool[] calldata",
                                      "value": "pools"
                                    },
                                    "id": 7763,
                                    "name": "Identifier",
                                    "src": "2081:5:59"
                                  }
                                ],
                                "id": 7764,
                                "name": "MemberAccess",
                                "src": "2081:12:59"
                              }
                            ],
                            "id": 7765,
                            "name": "FunctionCall",
                            "src": "2066:28:59"
                          }
                        ],
                        "id": 7766,
                        "name": "Assignment",
                        "src": "2057:37:59"
                      }
                    ],
                    "id": 7767,
                    "name": "ExpressionStatement",
                    "src": "2057:37:59"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "assignments": [
                            7769
                          ]
                        },
                        "children": [
                          {
                            "attributes": {
                              "constant": false,
                              "mutability": "mutable",
                              "name": "i",
                              "overrides": null,
                              "scope": 7791,
                              "stateVariable": false,
                              "storageLocation": "default",
                              "type": "uint256",
                              "value": null,
                              "visibility": "internal"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "name": "uint",
                                  "type": "uint256"
                                },
                                "id": 7768,
                                "name": "ElementaryTypeName",
                                "src": "2109:4:59"
                              }
                            ],
                            "id": 7769,
                            "name": "VariableDeclaration",
                            "src": "2109:6:59"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "subdenomination": null,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 7770,
                            "name": "Literal",
                            "src": "2118:1:59"
                          }
                        ],
                        "id": 7771,
                        "name": "VariableDeclarationStatement",
                        "src": "2109:10:59"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "<",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 7769,
                              "type": "uint256",
                              "value": "i"
                            },
                            "id": 7772,
                            "name": "Identifier",
                            "src": "2121:1:59"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "length",
                              "referencedDeclaration": null,
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 7753,
                                  "type": "contract IBPool[] calldata",
                                  "value": "pools"
                                },
                                "id": 7773,
                                "name": "Identifier",
                                "src": "2125:5:59"
                              }
                            ],
                            "id": 7774,
                            "name": "MemberAccess",
                            "src": "2125:12:59"
                          }
                        ],
                        "id": 7775,
                        "name": "BinaryOperation",
                        "src": "2121:16:59"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "++",
                              "prefix": false,
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 7769,
                                  "type": "uint256",
                                  "value": "i"
                                },
                                "id": 7776,
                                "name": "Identifier",
                                "src": "2139:1:59"
                              }
                            ],
                            "id": 7777,
                            "name": "UnaryOperation",
                            "src": "2139:3:59"
                          }
                        ],
                        "id": 7778,
                        "name": "ExpressionStatement",
                        "src": "2139:3:59"
                      },
                      {
                        "children": [
                          {
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "=",
                                  "type": "struct RegistryHelperBalancer.PoolInfo memory"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": true,
                                      "type": "struct RegistryHelperBalancer.PoolInfo memory"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 7757,
                                          "type": "struct RegistryHelperBalancer.PoolInfo memory[] memory",
                                          "value": "result"
                                        },
                                        "id": 7779,
                                        "name": "Identifier",
                                        "src": "2158:6:59"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 7769,
                                          "type": "uint256",
                                          "value": "i"
                                        },
                                        "id": 7780,
                                        "name": "Identifier",
                                        "src": "2165:1:59"
                                      }
                                    ],
                                    "id": 7781,
                                    "name": "IndexAccess",
                                    "src": "2158:9:59"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "isStructConstructorCall": false,
                                      "lValueRequested": false,
                                      "names": [
                                        null
                                      ],
                                      "tryCall": false,
                                      "type": "struct RegistryHelperBalancer.PoolInfo memory",
                                      "type_conversion": false
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_contract$_IBPool_$1371",
                                              "typeString": "contract IBPool"
                                            }
                                          ],
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "member_name": "getPoolInfo",
                                          "referencedDeclaration": 7866,
                                          "type": "function (contract IBPool) view external returns (struct RegistryHelperBalancer.PoolInfo memory)"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": -28,
                                              "type": "contract RegistryHelperBalancer",
                                              "value": "this"
                                            },
                                            "id": 7782,
                                            "name": "Identifier",
                                            "src": "2170:4:59"
                                          }
                                        ],
                                        "id": 7783,
                                        "name": "MemberAccess",
                                        "src": "2170:16:59"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "type": "contract IBPool"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 7753,
                                              "type": "contract IBPool[] calldata",
                                              "value": "pools"
                                            },
                                            "id": 7784,
                                            "name": "Identifier",
                                            "src": "2187:5:59"
                                          },
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 7769,
                                              "type": "uint256",
                                              "value": "i"
                                            },
                                            "id": 7785,
                                            "name": "Identifier",
                                            "src": "2193:1:59"
                                          }
                                        ],
                                        "id": 7786,
                                        "name": "IndexAccess",
                                        "src": "2187:8:59"
                                      }
                                    ],
                                    "id": 7787,
                                    "name": "FunctionCall",
                                    "src": "2170:26:59"
                                  }
                                ],
                                "id": 7788,
                                "name": "Assignment",
                                "src": "2158:38:59"
                              }
                            ],
                            "id": 7789,
                            "name": "ExpressionStatement",
                            "src": "2158:38:59"
                          }
                        ],
                        "id": 7790,
                        "name": "Block",
                        "src": "2144:63:59"
                      }
                    ],
                    "id": 7791,
                    "name": "ForStatement",
                    "src": "2104:103:59"
                  }
                ],
                "id": 7792,
                "name": "Block",
                "src": "2047:166:59"
              }
            ],
            "id": 7793,
            "name": "FunctionDefinition",
            "src": "1937:276:59"
          },
          {
            "attributes": {
              "documentation": null,
              "functionSelector": "06bfa938",
              "implemented": true,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "getPoolInfo",
              "overrides": null,
              "scope": 7867,
              "stateMutability": "view",
              "virtual": false,
              "visibility": "external"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "pool",
                      "overrides": null,
                      "scope": 7866,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "contract IBPool",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "contractScope": null,
                          "name": "IBPool",
                          "referencedDeclaration": 1371,
                          "type": "contract IBPool"
                        },
                        "id": 7794,
                        "name": "UserDefinedTypeName",
                        "src": "2240:6:59"
                      }
                    ],
                    "id": 7795,
                    "name": "VariableDeclaration",
                    "src": "2240:11:59"
                  }
                ],
                "id": 7796,
                "name": "ParameterList",
                "src": "2239:13:59"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "result",
                      "overrides": null,
                      "scope": 7866,
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "type": "struct RegistryHelperBalancer.PoolInfo",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "contractScope": null,
                          "name": "PoolInfo",
                          "referencedDeclaration": 7579,
                          "type": "struct RegistryHelperBalancer.PoolInfo"
                        },
                        "id": 7797,
                        "name": "UserDefinedTypeName",
                        "src": "2276:8:59"
                      }
                    ],
                    "id": 7798,
                    "name": "VariableDeclaration",
                    "src": "2276:22:59"
                  }
                ],
                "id": 7799,
                "name": "ParameterList",
                "src": "2275:24:59"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "assignments": [
                        7804
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "mutability": "mutable",
                          "name": "poolTokens",
                          "overrides": null,
                          "scope": 7865,
                          "stateVariable": false,
                          "storageLocation": "memory",
                          "type": "address[]",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "length": null,
                              "type": "address[]"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "name": "address",
                                  "type": "address"
                                },
                                "id": 7802,
                                "name": "ElementaryTypeName",
                                "src": "2310:7:59"
                              }
                            ],
                            "id": 7803,
                            "name": "ArrayTypeName",
                            "src": "2310:9:59"
                          }
                        ],
                        "id": 7804,
                        "name": "VariableDeclaration",
                        "src": "2310:27:59"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "arguments": [
                            null
                          ],
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "tryCall": false,
                          "type": "address[] memory",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                null
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "getCurrentTokens",
                              "referencedDeclaration": 1266,
                              "type": "function () view external returns (address[] memory)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 7795,
                                  "type": "contract IBPool",
                                  "value": "pool"
                                },
                                "id": 7805,
                                "name": "Identifier",
                                "src": "2340:4:59"
                              }
                            ],
                            "id": 7806,
                            "name": "MemberAccess",
                            "src": "2340:21:59"
                          }
                        ],
                        "id": 7807,
                        "name": "FunctionCall",
                        "src": "2340:23:59"
                      }
                    ],
                    "id": 7808,
                    "name": "VariableDeclarationStatement",
                    "src": "2310:53:59"
                  },
                  {
                    "attributes": {
                      "assignments": [
                        7812
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "mutability": "mutable",
                          "name": "tokenStates",
                          "overrides": null,
                          "scope": 7865,
                          "stateVariable": false,
                          "storageLocation": "memory",
                          "type": "struct RegistryHelperBalancer.TokenState[]",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "length": null,
                              "type": "struct RegistryHelperBalancer.TokenState[]"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "contractScope": null,
                                  "name": "TokenState",
                                  "referencedDeclaration": 7571,
                                  "type": "struct RegistryHelperBalancer.TokenState"
                                },
                                "id": 7810,
                                "name": "UserDefinedTypeName",
                                "src": "2373:10:59"
                              }
                            ],
                            "id": 7811,
                            "name": "ArrayTypeName",
                            "src": "2373:12:59"
                          }
                        ],
                        "id": 7812,
                        "name": "VariableDeclaration",
                        "src": "2373:31:59"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "isStructConstructorCall": false,
                          "lValueRequested": false,
                          "names": [
                            null
                          ],
                          "tryCall": false,
                          "type": "struct RegistryHelperBalancer.TokenState memory[] memory",
                          "type_conversion": false
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "type": "function (uint256) pure returns (struct RegistryHelperBalancer.TokenState memory[] memory)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "length": null,
                                  "type": "struct RegistryHelperBalancer.TokenState[]"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "contractScope": null,
                                      "name": "TokenState",
                                      "referencedDeclaration": 7571,
                                      "type": "struct RegistryHelperBalancer.TokenState"
                                    },
                                    "id": 7813,
                                    "name": "UserDefinedTypeName",
                                    "src": "2411:10:59"
                                  }
                                ],
                                "id": 7814,
                                "name": "ArrayTypeName",
                                "src": "2411:12:59"
                              }
                            ],
                            "id": 7815,
                            "name": "NewExpression",
                            "src": "2407:16:59"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "length",
                              "referencedDeclaration": null,
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 7804,
                                  "type": "address[] memory",
                                  "value": "poolTokens"
                                },
                                "id": 7816,
                                "name": "Identifier",
                                "src": "2424:10:59"
                              }
                            ],
                            "id": 7817,
                            "name": "MemberAccess",
                            "src": "2424:17:59"
                          }
                        ],
                        "id": 7818,
                        "name": "FunctionCall",
                        "src": "2407:35:59"
                      }
                    ],
                    "id": 7819,
                    "name": "VariableDeclarationStatement",
                    "src": "2373:69:59"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "assignments": [
                            7821
                          ]
                        },
                        "children": [
                          {
                            "attributes": {
                              "constant": false,
                              "mutability": "mutable",
                              "name": "j",
                              "overrides": null,
                              "scope": 7854,
                              "stateVariable": false,
                              "storageLocation": "default",
                              "type": "uint256",
                              "value": null,
                              "visibility": "internal"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "name": "uint",
                                  "type": "uint256"
                                },
                                "id": 7820,
                                "name": "ElementaryTypeName",
                                "src": "2524:4:59"
                              }
                            ],
                            "id": 7821,
                            "name": "VariableDeclaration",
                            "src": "2524:6:59"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "subdenomination": null,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 7822,
                            "name": "Literal",
                            "src": "2533:1:59"
                          }
                        ],
                        "id": 7823,
                        "name": "VariableDeclarationStatement",
                        "src": "2524:10:59"
                      },
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "<",
                          "type": "bool"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 7821,
                              "type": "uint256",
                              "value": "j"
                            },
                            "id": 7824,
                            "name": "Identifier",
                            "src": "2536:1:59"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "member_name": "length",
                              "referencedDeclaration": null,
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 7804,
                                  "type": "address[] memory",
                                  "value": "poolTokens"
                                },
                                "id": 7825,
                                "name": "Identifier",
                                "src": "2540:10:59"
                              }
                            ],
                            "id": 7826,
                            "name": "MemberAccess",
                            "src": "2540:17:59"
                          }
                        ],
                        "id": 7827,
                        "name": "BinaryOperation",
                        "src": "2536:21:59"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "++",
                              "prefix": false,
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 7821,
                                  "type": "uint256",
                                  "value": "j"
                                },
                                "id": 7828,
                                "name": "Identifier",
                                "src": "2559:1:59"
                              }
                            ],
                            "id": 7829,
                            "name": "UnaryOperation",
                            "src": "2559:3:59"
                          }
                        ],
                        "id": 7830,
                        "name": "ExpressionStatement",
                        "src": "2559:3:59"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "assignments": [
                                7832
                              ]
                            },
                            "children": [
                              {
                                "attributes": {
                                  "constant": false,
                                  "mutability": "mutable",
                                  "name": "token",
                                  "overrides": null,
                                  "scope": 7853,
                                  "stateVariable": false,
                                  "storageLocation": "default",
                                  "type": "address",
                                  "value": null,
                                  "visibility": "internal"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "name": "address",
                                      "stateMutability": "nonpayable",
                                      "type": "address"
                                    },
                                    "id": 7831,
                                    "name": "ElementaryTypeName",
                                    "src": "2578:7:59"
                                  }
                                ],
                                "id": 7832,
                                "name": "VariableDeclaration",
                                "src": "2578:13:59"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "type": "address"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 7804,
                                      "type": "address[] memory",
                                      "value": "poolTokens"
                                    },
                                    "id": 7833,
                                    "name": "Identifier",
                                    "src": "2594:10:59"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 7821,
                                      "type": "uint256",
                                      "value": "j"
                                    },
                                    "id": 7834,
                                    "name": "Identifier",
                                    "src": "2605:1:59"
                                  }
                                ],
                                "id": 7835,
                                "name": "IndexAccess",
                                "src": "2594:13:59"
                              }
                            ],
                            "id": 7836,
                            "name": "VariableDeclarationStatement",
                            "src": "2578:29:59"
                          },
                          {
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "=",
                                  "type": "struct RegistryHelperBalancer.TokenState memory"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": true,
                                      "type": "struct RegistryHelperBalancer.TokenState memory"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 7812,
                                          "type": "struct RegistryHelperBalancer.TokenState memory[] memory",
                                          "value": "tokenStates"
                                        },
                                        "id": 7837,
                                        "name": "Identifier",
                                        "src": "2621:11:59"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 7821,
                                          "type": "uint256",
                                          "value": "j"
                                        },
                                        "id": 7838,
                                        "name": "Identifier",
                                        "src": "2633:1:59"
                                      }
                                    ],
                                    "id": 7839,
                                    "name": "IndexAccess",
                                    "src": "2621:14:59"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "isStructConstructorCall": true,
                                      "lValueRequested": false,
                                      "names": [
                                        null
                                      ],
                                      "tryCall": false,
                                      "type": "struct RegistryHelperBalancer.TokenState memory",
                                      "type_conversion": false
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_address",
                                              "typeString": "address"
                                            },
                                            {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            },
                                            {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          ],
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 7571,
                                          "type": "type(struct RegistryHelperBalancer.TokenState storage pointer)",
                                          "value": "TokenState"
                                        },
                                        "id": 7840,
                                        "name": "Identifier",
                                        "src": "2638:10:59"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 7832,
                                          "type": "address",
                                          "value": "token"
                                        },
                                        "id": 7841,
                                        "name": "Identifier",
                                        "src": "2666:5:59"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "isStructConstructorCall": false,
                                          "lValueRequested": false,
                                          "names": [
                                            null
                                          ],
                                          "tryCall": false,
                                          "type": "uint256",
                                          "type_conversion": false
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": [
                                                {
                                                  "typeIdentifier": "t_address",
                                                  "typeString": "address"
                                                }
                                              ],
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "member_name": "getBalance",
                                              "referencedDeclaration": 1365,
                                              "type": "function (address) view external returns (uint256)"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 7795,
                                                  "type": "contract IBPool",
                                                  "value": "pool"
                                                },
                                                "id": 7842,
                                                "name": "Identifier",
                                                "src": "2689:4:59"
                                              }
                                            ],
                                            "id": 7843,
                                            "name": "MemberAccess",
                                            "src": "2689:15:59"
                                          },
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 7832,
                                              "type": "address",
                                              "value": "token"
                                            },
                                            "id": 7844,
                                            "name": "Identifier",
                                            "src": "2705:5:59"
                                          }
                                        ],
                                        "id": 7845,
                                        "name": "FunctionCall",
                                        "src": "2689:22:59"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "isStructConstructorCall": false,
                                          "lValueRequested": false,
                                          "names": [
                                            null
                                          ],
                                          "tryCall": false,
                                          "type": "uint256",
                                          "type_conversion": false
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": [
                                                {
                                                  "typeIdentifier": "t_address",
                                                  "typeString": "address"
                                                }
                                              ],
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": false,
                                              "lValueRequested": false,
                                              "member_name": "getDenormalizedWeight",
                                              "referencedDeclaration": 1348,
                                              "type": "function (address) view external returns (uint256)"
                                            },
                                            "children": [
                                              {
                                                "attributes": {
                                                  "argumentTypes": null,
                                                  "overloadedDeclarations": [
                                                    null
                                                  ],
                                                  "referencedDeclaration": 7795,
                                                  "type": "contract IBPool",
                                                  "value": "pool"
                                                },
                                                "id": 7846,
                                                "name": "Identifier",
                                                "src": "2729:4:59"
                                              }
                                            ],
                                            "id": 7847,
                                            "name": "MemberAccess",
                                            "src": "2729:26:59"
                                          },
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 7832,
                                              "type": "address",
                                              "value": "token"
                                            },
                                            "id": 7848,
                                            "name": "Identifier",
                                            "src": "2756:5:59"
                                          }
                                        ],
                                        "id": 7849,
                                        "name": "FunctionCall",
                                        "src": "2729:33:59"
                                      }
                                    ],
                                    "id": 7850,
                                    "name": "FunctionCall",
                                    "src": "2638:138:59"
                                  }
                                ],
                                "id": 7851,
                                "name": "Assignment",
                                "src": "2621:155:59"
                              }
                            ],
                            "id": 7852,
                            "name": "ExpressionStatement",
                            "src": "2621:155:59"
                          }
                        ],
                        "id": 7853,
                        "name": "Block",
                        "src": "2564:223:59"
                      }
                    ],
                    "id": 7854,
                    "name": "ForStatement",
                    "src": "2519:268:59"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "struct RegistryHelperBalancer.PoolInfo memory"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 7798,
                              "type": "struct RegistryHelperBalancer.PoolInfo memory",
                              "value": "result"
                            },
                            "id": 7855,
                            "name": "Identifier",
                            "src": "2797:6:59"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": true,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "tryCall": false,
                              "type": "struct RegistryHelperBalancer.PoolInfo memory",
                              "type_conversion": false
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_contract$_IBPool_$1371",
                                      "typeString": "contract IBPool"
                                    },
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    },
                                    {
                                      "typeIdentifier": "t_array$_t_struct$_TokenState_$7571_memory_ptr_$dyn_memory_ptr",
                                      "typeString": "struct RegistryHelperBalancer.TokenState memory[] memory"
                                    }
                                  ],
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 7579,
                                  "type": "type(struct RegistryHelperBalancer.PoolInfo storage pointer)",
                                  "value": "PoolInfo"
                                },
                                "id": 7856,
                                "name": "Identifier",
                                "src": "2806:8:59"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 7795,
                                  "type": "contract IBPool",
                                  "value": "pool"
                                },
                                "id": 7857,
                                "name": "Identifier",
                                "src": "2828:4:59"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    null
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "tryCall": false,
                                  "type": "uint256",
                                  "type_conversion": false
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        null
                                      ],
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "member_name": "getSwapFee",
                                      "referencedDeclaration": 1370,
                                      "type": "function () view external returns (uint256)"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 7795,
                                          "type": "contract IBPool",
                                          "value": "pool"
                                        },
                                        "id": 7858,
                                        "name": "Identifier",
                                        "src": "2846:4:59"
                                      }
                                    ],
                                    "id": 7859,
                                    "name": "MemberAccess",
                                    "src": "2846:15:59"
                                  }
                                ],
                                "id": 7860,
                                "name": "FunctionCall",
                                "src": "2846:17:59"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 7812,
                                  "type": "struct RegistryHelperBalancer.TokenState memory[] memory",
                                  "value": "tokenStates"
                                },
                                "id": 7861,
                                "name": "Identifier",
                                "src": "2877:11:59"
                              }
                            ],
                            "id": 7862,
                            "name": "FunctionCall",
                            "src": "2806:92:59"
                          }
                        ],
                        "id": 7863,
                        "name": "Assignment",
                        "src": "2797:101:59"
                      }
                    ],
                    "id": 7864,
                    "name": "ExpressionStatement",
                    "src": "2797:101:59"
                  }
                ],
                "id": 7865,
                "name": "Block",
                "src": "2300:605:59"
              }
            ],
            "id": 7866,
            "name": "FunctionDefinition",
            "src": "2219:686:59"
          }
        ],
        "id": 7867,
        "name": "ContractDefinition",
        "src": "183:2724:59"
      }
    ],
    "id": 7868,
    "name": "SourceUnit",
    "src": "32:2876:59"
  },
  "compiler": {
    "name": "solc",
    "version": "0.6.8+commit.0bbfe453.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "3.4.16",
  "updatedAt": "2025-02-07T17:50:42.851Z",
  "devdoc": {
    "methods": {}
  },
  "userdoc": {
    "methods": {}
  }
}