{
  "contractName": "RegistryHelperUniswapV2",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "contract IUniswapV2Factory",
          "name": "factory",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "offset",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "limit",
          "type": "uint256"
        }
      ],
      "name": "findPairs",
      "outputs": [
        {
          "components": [
            {
              "internalType": "contract IUniswapV2Pair",
              "name": "pair",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "token0",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "token1",
              "type": "address"
            },
            {
              "components": [
                {
                  "internalType": "uint256",
                  "name": "reserve0",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "reserve1",
                  "type": "uint256"
                }
              ],
              "internalType": "struct RegistryHelperUniswapV2.PairState",
              "name": "state",
              "type": "tuple"
            }
          ],
          "internalType": "struct RegistryHelperUniswapV2.PairInfo[]",
          "name": "result",
          "type": "tuple[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract IUniswapV2Pair[]",
          "name": "pairs",
          "type": "address[]"
        }
      ],
      "name": "refreshPairs",
      "outputs": [
        {
          "components": [
            {
              "internalType": "uint256",
              "name": "reserve0",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "reserve1",
              "type": "uint256"
            }
          ],
          "internalType": "struct RegistryHelperUniswapV2.PairState[]",
          "name": "result",
          "type": "tuple[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "metadata": "{\"compiler\":{\"version\":\"0.6.8+commit.0bbfe453\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract IUniswapV2Factory\",\"name\":\"factory\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"offset\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"}],\"name\":\"findPairs\",\"outputs\":[{\"components\":[{\"internalType\":\"contract IUniswapV2Pair\",\"name\":\"pair\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token0\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token1\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"reserve0\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"reserve1\",\"type\":\"uint256\"}],\"internalType\":\"struct RegistryHelperUniswapV2.PairState\",\"name\":\"state\",\"type\":\"tuple\"}],\"internalType\":\"struct RegistryHelperUniswapV2.PairInfo[]\",\"name\":\"result\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IUniswapV2Pair[]\",\"name\":\"pairs\",\"type\":\"address[]\"}],\"name\":\"refreshPairs\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"reserve0\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"reserve1\",\"type\":\"uint256\"}],\"internalType\":\"struct RegistryHelperUniswapV2.PairState[]\",\"name\":\"result\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"project:/contracts/swappa/RegistryHelperUniswapV2.sol\":\"RegistryHelperUniswapV2\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"project:/contracts/interfaces/uniswap/IUniswapV2Factory.sol\":{\"keccak256\":\"0x079c01d23dd481b8838440aee8adbd41a111ddc74bd78d4e66c52ad113eb1f77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7ca77fb765c2d772ef5d4863d86fb15a84be0df31819fe1c4b20f1788fdd1fc3\",\"dweb:/ipfs/QmcwHRqTPVMtWcKobvT9xm72eQ36ryrJ2c66fts5io5prY\"]},\"project:/contracts/interfaces/uniswap/IUniswapV2Pair.sol\":{\"keccak256\":\"0xe89bf881b5677223429ad431a0e9b4028fedae3b10bc6e1581daa0b8a8a8b9b0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://83939573d0b85183a7c5fa6406581e396a5d9ad30758ba776294a0b33fa7a8e5\",\"dweb:/ipfs/QmQci9HzqXcMTSHDBjp9ZEVUfwcJdHaE63Pzafux7Vp61Y\"]},\"project:/contracts/swappa/RegistryHelperUniswapV2.sol\":{\"keccak256\":\"0xe0e6759973e280eb078d7e94b26ae138d60336a8e38e1b33deb228f28059f07b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7bbf0085f934aff436fdedaa9f8a41702bf1f5eb6930964d2abf6b7317c77986\",\"dweb:/ipfs/QmRTEfkx6MHpiGDpZYczNM7p1HRcvZ618c6qe2edFtdy8z\"]}},\"version\":1}",
  "bytecode": "0x608060405234801561001057600080fd5b506108d0806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c806321e5656e1461003b57806341d8210514610064575b600080fd5b61004e6100493660046106ba565b610084565b60405161005b9190610785565b60405180910390f35b61007761007236600461064e565b610486565b60405161005b9190610810565b606060008473ffffffffffffffffffffffffffffffffffffffff1663574f2ba36040518163ffffffff1660e01b815260040160206040518083038186803b1580156100ce57600080fd5b505afa1580156100e2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610106919061075e565b905082840181111561011b5750828201610129565b83811015610129575061047f565b83810367ffffffffffffffff8111801561014257600080fd5b5060405190808252806020026020018201604052801561017c57816020015b6101696105ea565b8152602001906001900390816101615790505b509150835b8181101561047c576040517f1e3dd18b00000000000000000000000000000000000000000000000000000000815260009073ffffffffffffffffffffffffffffffffffffffff881690631e3dd18b906101de908590600401610850565b60206040518083038186803b1580156101f657600080fd5b505afa15801561020a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061022e9190610632565b905060008173ffffffffffffffffffffffffffffffffffffffff16630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b15801561027857600080fd5b505afa15801561028c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102b09190610632565b905060008273ffffffffffffffffffffffffffffffffffffffff1663d21220a76040518163ffffffff1660e01b815260040160206040518083038186803b1580156102fa57600080fd5b505afa15801561030e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103329190610632565b90506000808473ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b15801561037d57600080fd5b505afa158015610391573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103b5919061070a565b506dffffffffffffffffffffffffffff1691506dffffffffffffffffffffffffffff16915060405180608001604052808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff168152602001604051806040016040528085815260200184815250815250888b88038151811061045f57fe5b602002602001018190525050505050508080600101915050610181565b50505b9392505050565b60608167ffffffffffffffff8111801561049f57600080fd5b506040519080825280602002602001820160405280156104d957816020015b6104c6610618565b8152602001906001900390816104be5790505b50905060005b828110156105e3576000808585848181106104f657fe5b905060200201602081019061050b91906106ee565b73ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b15801561055057600080fd5b505afa158015610564573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610588919061070a565b506dffffffffffffffffffffffffffff1691506dffffffffffffffffffffffffffff1691506040518060400160405280838152602001828152508484815181106105ce57fe5b602090810291909101015250506001016104df565b5092915050565b604080516080810182526000808252602082018190529181019190915260608101610613610618565b905290565b604051806040016040528060008152602001600081525090565b600060208284031215610643578081fd5b815161047f81610859565b60008060208385031215610660578081fd5b823567ffffffffffffffff80821115610677578283fd5b81850186601f820112610688578384fd5b8035925081831115610698578384fd5b86602080850283010111156106ab578384fd5b60200196919550909350505050565b6000806000606084860312156106ce578081fd5b83356106d981610859565b95602085013595506040909401359392505050565b6000602082840312156106ff578081fd5b813561047f81610859565b60008060006060848603121561071e578283fd5b83516107298161087e565b602085015190935061073a8161087e565b604085015190925063ffffffff81168114610753578182fd5b809150509250925092565b60006020828403121561076f578081fd5b5051919050565b80518252602090810151910152565b602080825282518282018190526000919060409081850190868401855b82811015610803578151805173ffffffffffffffffffffffffffffffffffffffff9081168652878201518116888701528682015116868601526060808201516107ed82880182610776565b50505060a09390930192908501906001016107a2565b5091979650505050505050565b602080825282518282018190526000919060409081850190868401855b8281101561080357610840848351610776565b928401929085019060010161082d565b90815260200190565b73ffffffffffffffffffffffffffffffffffffffff8116811461087b57600080fd5b50565b6dffffffffffffffffffffffffffff8116811461087b57600080fdfea26469706673582212208869dd969ded2c0c5a1bf4a5163a1071bf42cde57bbb23c5ffe1bce775c81d3264736f6c63430006080033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100365760003560e01c806321e5656e1461003b57806341d8210514610064575b600080fd5b61004e6100493660046106ba565b610084565b60405161005b9190610785565b60405180910390f35b61007761007236600461064e565b610486565b60405161005b9190610810565b606060008473ffffffffffffffffffffffffffffffffffffffff1663574f2ba36040518163ffffffff1660e01b815260040160206040518083038186803b1580156100ce57600080fd5b505afa1580156100e2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610106919061075e565b905082840181111561011b5750828201610129565b83811015610129575061047f565b83810367ffffffffffffffff8111801561014257600080fd5b5060405190808252806020026020018201604052801561017c57816020015b6101696105ea565b8152602001906001900390816101615790505b509150835b8181101561047c576040517f1e3dd18b00000000000000000000000000000000000000000000000000000000815260009073ffffffffffffffffffffffffffffffffffffffff881690631e3dd18b906101de908590600401610850565b60206040518083038186803b1580156101f657600080fd5b505afa15801561020a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061022e9190610632565b905060008173ffffffffffffffffffffffffffffffffffffffff16630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b15801561027857600080fd5b505afa15801561028c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102b09190610632565b905060008273ffffffffffffffffffffffffffffffffffffffff1663d21220a76040518163ffffffff1660e01b815260040160206040518083038186803b1580156102fa57600080fd5b505afa15801561030e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103329190610632565b90506000808473ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b15801561037d57600080fd5b505afa158015610391573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103b5919061070a565b506dffffffffffffffffffffffffffff1691506dffffffffffffffffffffffffffff16915060405180608001604052808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff168152602001604051806040016040528085815260200184815250815250888b88038151811061045f57fe5b602002602001018190525050505050508080600101915050610181565b50505b9392505050565b60608167ffffffffffffffff8111801561049f57600080fd5b506040519080825280602002602001820160405280156104d957816020015b6104c6610618565b8152602001906001900390816104be5790505b50905060005b828110156105e3576000808585848181106104f657fe5b905060200201602081019061050b91906106ee565b73ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b815260040160606040518083038186803b15801561055057600080fd5b505afa158015610564573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610588919061070a565b506dffffffffffffffffffffffffffff1691506dffffffffffffffffffffffffffff1691506040518060400160405280838152602001828152508484815181106105ce57fe5b602090810291909101015250506001016104df565b5092915050565b604080516080810182526000808252602082018190529181019190915260608101610613610618565b905290565b604051806040016040528060008152602001600081525090565b600060208284031215610643578081fd5b815161047f81610859565b60008060208385031215610660578081fd5b823567ffffffffffffffff80821115610677578283fd5b81850186601f820112610688578384fd5b8035925081831115610698578384fd5b86602080850283010111156106ab578384fd5b60200196919550909350505050565b6000806000606084860312156106ce578081fd5b83356106d981610859565b95602085013595506040909401359392505050565b6000602082840312156106ff578081fd5b813561047f81610859565b60008060006060848603121561071e578283fd5b83516107298161087e565b602085015190935061073a8161087e565b604085015190925063ffffffff81168114610753578182fd5b809150509250925092565b60006020828403121561076f578081fd5b5051919050565b80518252602090810151910152565b602080825282518282018190526000919060409081850190868401855b82811015610803578151805173ffffffffffffffffffffffffffffffffffffffff9081168652878201518116888701528682015116868601526060808201516107ed82880182610776565b50505060a09390930192908501906001016107a2565b5091979650505050505050565b602080825282518282018190526000919060409081850190868401855b8281101561080357610840848351610776565b928401929085019060010161082d565b90815260200190565b73ffffffffffffffffffffffffffffffffffffffff8116811461087b57600080fd5b50565b6dffffffffffffffffffffffffffff8116811461087b57600080fdfea26469706673582212208869dd969ded2c0c5a1bf4a5163a1071bf42cde57bbb23c5ffe1bce775c81d3264736f6c63430006080033",
  "immutableReferences": {},
  "sourceMap": "196:1632:60:-:0;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;196:1632:60;;;;;;;",
  "deployedSourceMap": "196:1632:60:-:0;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;196:1632:60;;;;;;;;;;;;;;;;;;;;;12:1:-1;9;2:12;443:1017:60;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;1466:360;;;;;;;;;:::i;:::-;;;;;;;;443:1017;567:24;603:17;623:7;:22;;;:24;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;623:24:60;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;623:24:60;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;623:24:60;;;;;;;;;603:44;;686:5;677:6;:14;662:12;:29;658:249;;;-1:-1:-1;772:14:60;;;658:249;;;822:6;807:12;:21;803:104;;;-1:-1:-1;883:13:60;;803:104;1044:6;1029:12;:21;1014:37;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1014:37:60;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;1005:46:60;-1:-1:-1;1075:6:60;1061:393;1087:12;1083:1;:16;1061:393;;;1160:19;;;;;1120:22;;1160:16;;;;;;:19;;1177:1;;1160:19;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1160:19:60;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1160:19:60;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;1160:19:60;;;;;;;;;1120:60;;1194:14;1211:7;:14;;;:16;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1211:16:60;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1211:16:60;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;1211:16:60;;;;;;;;;1194:33;;1241:14;1258:7;:14;;;:16;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1258:16:60;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1258:16:60;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;1258:16:60;;;;;;;;;1241:33;;1289:13;1304;1323:7;:19;;;:21;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1323:21:60;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1323:21:60;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;1323:21:60;;;;;;;;;1288:56;;;;;;;;;1379:64;;;;;;;;1388:7;1379:64;;;;;;1397:6;1379:64;;;;;;1405:6;1379:64;;;;;;1413:29;;;;;;;;1423:8;1413:29;;;;1433:8;1413:29;;;1379:64;;;1358:6;1369;1365:1;:10;1358:18;;;;;;;;;;;;;:85;;;;1061:393;;;;;1101:3;;;;;;;1061:393;;;;443:1017;;;;;;;:::o;1466:360::-;1558:25;1620:5;1604:29;;;2:2:-1;;;;27:1;24;17:12;2:2;1604:29:60;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;1595:38:60;-1:-1:-1;1648:6:60;1643:177;1660:16;;;1643:177;;;1698:13;1713;1732:5;;1738:1;1732:8;;;;;;;;;;;;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;1732:22:60;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1732:22:60;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;1732:22:60;;;;;;;;;1697:57;;;;;;;;;1780:29;;;;;;;;1790:8;1780:29;;;;1800:8;1780:29;;;1768:6;1775:1;1768:9;;;;;;;;;;;;;;;;;:41;-1:-1:-1;;1678:3:60;;1643:177;;;;1466:360;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::o;1493:263::-;;1608:2;1596:9;1587:7;1583:23;1579:32;1576:2;;;-1:-1;;1614:12;1576:2;89:6;83:13;101:33;128:5;101:33;;1763:443;;;1925:2;1913:9;1904:7;1900:23;1896:32;1893:2;;;-1:-1;;1931:12;1893:2;1989:17;1976:31;2027:18;;2019:6;2016:30;2013:2;;;-1:-1;;2049:12;2013:2;2173:6;2162:9;2158:22;333:3;326:4;318:6;314:17;310:27;300:2;;-1:-1;;341:12;300:2;384:6;371:20;361:30;;2027:18;403:6;400:30;397:2;;;-1:-1;;433:12;397:2;528:3;1925:2;;512:6;508:17;469:6;494:32;;491:41;488:2;;;-1:-1;;535:12;488:2;1925;465:17;;2077:113;;-1:-1;1887:319;;-1:-1;;;;1887:319;2213:543;;;;2377:2;2365:9;2356:7;2352:23;2348:32;2345:2;;;-1:-1;;2383:12;2345:2;669:6;656:20;681:59;734:5;681:59;;;2435:89;2561:2;2600:22;;1143:20;;-1:-1;2669:2;2708:22;;;1143:20;;2339:417;-1:-1;;;2339:417;2763:287;;2890:2;2878:9;2869:7;2865:23;2861:32;2858:2;;;-1:-1;;2896:12;2858:2;855:6;842:20;867:56;917:5;867:56;;3057:533;;;;3205:2;3193:9;3184:7;3180:23;3176:32;3173:2;;;-1:-1;;3211:12;3173:2;1019:6;1013:13;1031:33;1058:5;1031:33;;;3374:2;3424:22;;1013:13;3263:74;;-1:-1;1031:33;1013:13;1031:33;;;3493:2;3542:22;;1431:13;3382:74;;-1:-1;11847:10;11836:22;;12958:34;;12948:2;;-1:-1;;12996:12;12948:2;3501:73;;;;3167:423;;;;;;3597:263;;3712:2;3700:9;3691:7;3687:23;3683:32;3680:2;;;-1:-1;;3718:12;3680:2;-1:-1;1291:13;;3674:186;-1:-1;3674:186;7779:478;7986:23;;8325:37;;8161:4;8150:16;;;8144:23;8221:14;;8325:37;7889:368;8494:474;8723:2;8737:47;;;10187:12;;8708:18;;;10827:19;;;8494:474;;8723:2;10867:14;;;;;;9830;;;8494:474;5186:338;5211:6;5208:1;5205:13;5186:338;;;5272:13;;7024:23;;11641:42;11630:54;;;6649:73;;7209:16;;;7203:23;11630:54;;7280:14;;;4504:37;7365:16;;;7359:23;11630:54;7436:14;;;4504:37;7531:4;7520:16;;;7514:23;7543:117;7645:14;;;7514:23;7543:117;;;-1:-1;;;4134:4;4125:14;;;;;10514;;;;5233:1;5226:9;5186:338;;;-1:-1;8790:168;;8694:274;-1:-1;;;;;;;8694:274;8975:478;9206:2;9220:47;;;10187:12;;9191:18;;;10827:19;;;8975:478;;9206:2;10867:14;;;;;;9830;;;8975:478;6194:341;6219:6;6216:1;6213:13;6194:341;;;4295:100;4391:3;6286:6;6280:13;4295:100;;;4415:14;;;;10514;;;;6241:1;6234:9;6194:341;;9460:222;8325:37;;;9587:2;9572:18;;9558:124;12182:117;11641:42;12269:5;11630:54;12244:5;12241:35;12231:2;;12290:1;;12280:12;12231:2;12225:74;;12652:117;11525:30;12739:5;11514:42;12714:5;12711:35;12701:2;;12760:1;;12750:12",
  "source": "// SPDX-License-Identifier: MIT\npragma solidity 0.6.8;\npragma experimental ABIEncoderV2;\n\nimport \"../interfaces/uniswap/IUniswapV2Pair.sol\";\nimport \"../interfaces/uniswap/IUniswapV2Factory.sol\";\n\ncontract RegistryHelperUniswapV2 {\n\n    struct PairState {\n        uint reserve0;\n        uint reserve1;\n    }\n\n    struct PairInfo {\n        IUniswapV2Pair pair;\n        address token0;\n        address token1;\n        PairState state;\n    }\n\n    function findPairs(\n        IUniswapV2Factory factory,\n        uint offset,\n        uint limit\n    ) external view returns (PairInfo[] memory result) {\n        uint allPairsUpTo = factory.allPairsLength();\n\n        if (allPairsUpTo > offset + limit) {\n            // limit the number of pairs returned\n            allPairsUpTo = offset + limit;\n        } else if (allPairsUpTo < offset) {\n            // there are no more pairs\n            return result;\n        }\n\n        // allocate a buffer array with the upper bound of the number of pairs returned\n        result = new PairInfo[](allPairsUpTo - offset);\n        for (uint i = offset; i < allPairsUpTo; i++) {\n            IUniswapV2Pair uniPair = IUniswapV2Pair(factory.allPairs(i));\n            address token0 = uniPair.token0();\n            address token1 = uniPair.token1();\n            (uint reserve0, uint reserve1, ) = uniPair.getReserves();\n            result[i - offset] = PairInfo(uniPair, token0, token1, PairState(reserve0, reserve1));\n        }\n    }\n\n    function refreshPairs(\n        IUniswapV2Pair[] calldata pairs\n    ) external view returns (PairState[] memory result) {\n        result = new PairState[](pairs.length);\n        for (uint i = 0; i < pairs.length; i++) {\n            (uint reserve0, uint reserve1, ) = pairs[i].getReserves();\n            result[i] = PairState(reserve0, reserve1);\n        }\n    }\n}\n",
  "sourcePath": "/home/thezviad_gmail_com/src/swappa/contracts/swappa/RegistryHelperUniswapV2.sol",
  "ast": {
    "absolutePath": "project:/contracts/swappa/RegistryHelperUniswapV2.sol",
    "exportedSymbols": {
      "RegistryHelperUniswapV2": [
        8044
      ]
    },
    "id": 8045,
    "license": "MIT",
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 7869,
        "literals": [
          "solidity",
          "0.6",
          ".8"
        ],
        "nodeType": "PragmaDirective",
        "src": "32:22:60"
      },
      {
        "id": 7870,
        "literals": [
          "experimental",
          "ABIEncoderV2"
        ],
        "nodeType": "PragmaDirective",
        "src": "55:33:60"
      },
      {
        "absolutePath": "project:/contracts/interfaces/uniswap/IUniswapV2Pair.sol",
        "file": "../interfaces/uniswap/IUniswapV2Pair.sol",
        "id": 7871,
        "nodeType": "ImportDirective",
        "scope": 8045,
        "sourceUnit": 2706,
        "src": "90:50:60",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "project:/contracts/interfaces/uniswap/IUniswapV2Factory.sol",
        "file": "../interfaces/uniswap/IUniswapV2Factory.sol",
        "id": 7872,
        "nodeType": "ImportDirective",
        "scope": 8045,
        "sourceUnit": 2464,
        "src": "141:53:60",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "abstract": false,
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 8044,
        "linearizedBaseContracts": [
          8044
        ],
        "name": "RegistryHelperUniswapV2",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "canonicalName": "RegistryHelperUniswapV2.PairState",
            "id": 7877,
            "members": [
              {
                "constant": false,
                "id": 7874,
                "mutability": "mutable",
                "name": "reserve0",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 7877,
                "src": "263:13:60",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 7873,
                  "name": "uint",
                  "nodeType": "ElementaryTypeName",
                  "src": "263:4:60",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 7876,
                "mutability": "mutable",
                "name": "reserve1",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 7877,
                "src": "286:13:60",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 7875,
                  "name": "uint",
                  "nodeType": "ElementaryTypeName",
                  "src": "286:4:60",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "PairState",
            "nodeType": "StructDefinition",
            "scope": 8044,
            "src": "236:70:60",
            "visibility": "public"
          },
          {
            "canonicalName": "RegistryHelperUniswapV2.PairInfo",
            "id": 7886,
            "members": [
              {
                "constant": false,
                "id": 7879,
                "mutability": "mutable",
                "name": "pair",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 7886,
                "src": "338:19:60",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_contract$_IUniswapV2Pair_$2705",
                  "typeString": "contract IUniswapV2Pair"
                },
                "typeName": {
                  "contractScope": null,
                  "id": 7878,
                  "name": "IUniswapV2Pair",
                  "nodeType": "UserDefinedTypeName",
                  "referencedDeclaration": 2705,
                  "src": "338:14:60",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_IUniswapV2Pair_$2705",
                    "typeString": "contract IUniswapV2Pair"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 7881,
                "mutability": "mutable",
                "name": "token0",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 7886,
                "src": "367:14:60",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 7880,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "367:7:60",
                  "stateMutability": "nonpayable",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 7883,
                "mutability": "mutable",
                "name": "token1",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 7886,
                "src": "391:14:60",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 7882,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "391:7:60",
                  "stateMutability": "nonpayable",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "value": null,
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 7885,
                "mutability": "mutable",
                "name": "state",
                "nodeType": "VariableDeclaration",
                "overrides": null,
                "scope": 7886,
                "src": "415:15:60",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_PairState_$7877_storage_ptr",
                  "typeString": "struct RegistryHelperUniswapV2.PairState"
                },
                "typeName": {
                  "contractScope": null,
                  "id": 7884,
                  "name": "PairState",
                  "nodeType": "UserDefinedTypeName",
                  "referencedDeclaration": 7877,
                  "src": "415:9:60",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_PairState_$7877_storage_ptr",
                    "typeString": "struct RegistryHelperUniswapV2.PairState"
                  }
                },
                "value": null,
                "visibility": "internal"
              }
            ],
            "name": "PairInfo",
            "nodeType": "StructDefinition",
            "scope": 8044,
            "src": "312:125:60",
            "visibility": "public"
          },
          {
            "body": {
              "id": 7991,
              "nodeType": "Block",
              "src": "593:867:60",
              "statements": [
                {
                  "assignments": [
                    7899
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 7899,
                      "mutability": "mutable",
                      "name": "allPairsUpTo",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 7991,
                      "src": "603:17:60",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 7898,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "603:4:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 7903,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "argumentTypes": null,
                        "id": 7900,
                        "name": "factory",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7888,
                        "src": "623:7:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IUniswapV2Factory_$2463",
                          "typeString": "contract IUniswapV2Factory"
                        }
                      },
                      "id": 7901,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "allPairsLength",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2443,
                      "src": "623:22:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$",
                        "typeString": "function () view external returns (uint256)"
                      }
                    },
                    "id": 7902,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "623:24:60",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "603:44:60"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 7908,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 7904,
                      "name": "allPairsUpTo",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7899,
                      "src": "662:12:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 7907,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 7905,
                        "name": "offset",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7890,
                        "src": "677:6:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "+",
                      "rightExpression": {
                        "argumentTypes": null,
                        "id": 7906,
                        "name": "limit",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7892,
                        "src": "686:5:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "677:14:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "662:29:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "condition": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 7918,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 7916,
                        "name": "allPairsUpTo",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7899,
                        "src": "807:12:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "<",
                      "rightExpression": {
                        "argumentTypes": null,
                        "id": 7917,
                        "name": "offset",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7890,
                        "src": "822:6:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "src": "807:21:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseBody": null,
                    "id": 7922,
                    "nodeType": "IfStatement",
                    "src": "803:104:60",
                    "trueBody": {
                      "id": 7921,
                      "nodeType": "Block",
                      "src": "830:77:60",
                      "statements": [
                        {
                          "expression": {
                            "argumentTypes": null,
                            "id": 7919,
                            "name": "result",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7896,
                            "src": "890:6:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_struct$_PairInfo_$7886_memory_ptr_$dyn_memory_ptr",
                              "typeString": "struct RegistryHelperUniswapV2.PairInfo memory[] memory"
                            }
                          },
                          "functionReturnParameters": 7897,
                          "id": 7920,
                          "nodeType": "Return",
                          "src": "883:13:60"
                        }
                      ]
                    }
                  },
                  "id": 7923,
                  "nodeType": "IfStatement",
                  "src": "658:249:60",
                  "trueBody": {
                    "id": 7915,
                    "nodeType": "Block",
                    "src": "693:104:60",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 7913,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 7909,
                            "name": "allPairsUpTo",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7899,
                            "src": "757:12:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 7912,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 7910,
                              "name": "offset",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7890,
                              "src": "772:6:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "+",
                            "rightExpression": {
                              "argumentTypes": null,
                              "id": 7911,
                              "name": "limit",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7892,
                              "src": "781:5:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "772:14:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "757:29:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 7914,
                        "nodeType": "ExpressionStatement",
                        "src": "757:29:60"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 7932,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 7924,
                      "name": "result",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7896,
                      "src": "1005:6:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_struct$_PairInfo_$7886_memory_ptr_$dyn_memory_ptr",
                        "typeString": "struct RegistryHelperUniswapV2.PairInfo memory[] memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 7930,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 7928,
                            "name": "allPairsUpTo",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7899,
                            "src": "1029:12:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "-",
                          "rightExpression": {
                            "argumentTypes": null,
                            "id": 7929,
                            "name": "offset",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7890,
                            "src": "1044:6:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "1029:21:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 7927,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "NewExpression",
                        "src": "1014:14:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_PairInfo_$7886_memory_ptr_$dyn_memory_ptr_$",
                          "typeString": "function (uint256) pure returns (struct RegistryHelperUniswapV2.PairInfo memory[] memory)"
                        },
                        "typeName": {
                          "baseType": {
                            "contractScope": null,
                            "id": 7925,
                            "name": "PairInfo",
                            "nodeType": "UserDefinedTypeName",
                            "referencedDeclaration": 7886,
                            "src": "1018:8:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_PairInfo_$7886_storage_ptr",
                              "typeString": "struct RegistryHelperUniswapV2.PairInfo"
                            }
                          },
                          "id": 7926,
                          "length": null,
                          "nodeType": "ArrayTypeName",
                          "src": "1018:10:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_struct$_PairInfo_$7886_storage_$dyn_storage_ptr",
                            "typeString": "struct RegistryHelperUniswapV2.PairInfo[]"
                          }
                        }
                      },
                      "id": 7931,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "1014:37:60",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_struct$_PairInfo_$7886_memory_ptr_$dyn_memory_ptr",
                        "typeString": "struct RegistryHelperUniswapV2.PairInfo memory[] memory"
                      }
                    },
                    "src": "1005:46:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_struct$_PairInfo_$7886_memory_ptr_$dyn_memory_ptr",
                      "typeString": "struct RegistryHelperUniswapV2.PairInfo memory[] memory"
                    }
                  },
                  "id": 7933,
                  "nodeType": "ExpressionStatement",
                  "src": "1005:46:60"
                },
                {
                  "body": {
                    "id": 7989,
                    "nodeType": "Block",
                    "src": "1106:348:60",
                    "statements": [
                      {
                        "assignments": [
                          7945
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 7945,
                            "mutability": "mutable",
                            "name": "uniPair",
                            "nodeType": "VariableDeclaration",
                            "overrides": null,
                            "scope": 7989,
                            "src": "1120:22:60",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_IUniswapV2Pair_$2705",
                              "typeString": "contract IUniswapV2Pair"
                            },
                            "typeName": {
                              "contractScope": null,
                              "id": 7944,
                              "name": "IUniswapV2Pair",
                              "nodeType": "UserDefinedTypeName",
                              "referencedDeclaration": 2705,
                              "src": "1120:14:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_IUniswapV2Pair_$2705",
                                "typeString": "contract IUniswapV2Pair"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 7952,
                        "initialValue": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 7949,
                                  "name": "i",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 7935,
                                  "src": "1177:1:60",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 7947,
                                  "name": "factory",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 7888,
                                  "src": "1160:7:60",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_IUniswapV2Factory_$2463",
                                    "typeString": "contract IUniswapV2Factory"
                                  }
                                },
                                "id": 7948,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "allPairs",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 2438,
                                "src": "1160:16:60",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_address_$",
                                  "typeString": "function (uint256) view external returns (address)"
                                }
                              },
                              "id": 7950,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "1160:19:60",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            ],
                            "id": 7946,
                            "name": "IUniswapV2Pair",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 2705,
                            "src": "1145:14:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_contract$_IUniswapV2Pair_$2705_$",
                              "typeString": "type(contract IUniswapV2Pair)"
                            }
                          },
                          "id": 7951,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1145:35:60",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_IUniswapV2Pair_$2705",
                            "typeString": "contract IUniswapV2Pair"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "1120:60:60"
                      },
                      {
                        "assignments": [
                          7954
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 7954,
                            "mutability": "mutable",
                            "name": "token0",
                            "nodeType": "VariableDeclaration",
                            "overrides": null,
                            "scope": 7989,
                            "src": "1194:14:60",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            "typeName": {
                              "id": 7953,
                              "name": "address",
                              "nodeType": "ElementaryTypeName",
                              "src": "1194:7:60",
                              "stateMutability": "nonpayable",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 7958,
                        "initialValue": {
                          "argumentTypes": null,
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "argumentTypes": null,
                              "id": 7955,
                              "name": "uniPair",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7945,
                              "src": "1211:7:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_IUniswapV2Pair_$2705",
                                "typeString": "contract IUniswapV2Pair"
                              }
                            },
                            "id": 7956,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "token0",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 2633,
                            "src": "1211:14:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
                              "typeString": "function () view external returns (address)"
                            }
                          },
                          "id": 7957,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1211:16:60",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "1194:33:60"
                      },
                      {
                        "assignments": [
                          7960
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 7960,
                            "mutability": "mutable",
                            "name": "token1",
                            "nodeType": "VariableDeclaration",
                            "overrides": null,
                            "scope": 7989,
                            "src": "1241:14:60",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            "typeName": {
                              "id": 7959,
                              "name": "address",
                              "nodeType": "ElementaryTypeName",
                              "src": "1241:7:60",
                              "stateMutability": "nonpayable",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 7964,
                        "initialValue": {
                          "argumentTypes": null,
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "argumentTypes": null,
                              "id": 7961,
                              "name": "uniPair",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7945,
                              "src": "1258:7:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_IUniswapV2Pair_$2705",
                                "typeString": "contract IUniswapV2Pair"
                              }
                            },
                            "id": 7962,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "token1",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 2638,
                            "src": "1258:14:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
                              "typeString": "function () view external returns (address)"
                            }
                          },
                          "id": 7963,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1258:16:60",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "1241:33:60"
                      },
                      {
                        "assignments": [
                          7966,
                          7968,
                          null
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 7966,
                            "mutability": "mutable",
                            "name": "reserve0",
                            "nodeType": "VariableDeclaration",
                            "overrides": null,
                            "scope": 7989,
                            "src": "1289:13:60",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "typeName": {
                              "id": 7965,
                              "name": "uint",
                              "nodeType": "ElementaryTypeName",
                              "src": "1289:4:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          },
                          {
                            "constant": false,
                            "id": 7968,
                            "mutability": "mutable",
                            "name": "reserve1",
                            "nodeType": "VariableDeclaration",
                            "overrides": null,
                            "scope": 7989,
                            "src": "1304:13:60",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "typeName": {
                              "id": 7967,
                              "name": "uint",
                              "nodeType": "ElementaryTypeName",
                              "src": "1304:4:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          },
                          null
                        ],
                        "id": 7972,
                        "initialValue": {
                          "argumentTypes": null,
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "argumentTypes": null,
                              "id": 7969,
                              "name": "uniPair",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7945,
                              "src": "1323:7:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_IUniswapV2Pair_$2705",
                                "typeString": "contract IUniswapV2Pair"
                              }
                            },
                            "id": 7970,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "getReserves",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 2647,
                            "src": "1323:19:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_view$__$returns$_t_uint112_$_t_uint112_$_t_uint32_$",
                              "typeString": "function () view external returns (uint112,uint112,uint32)"
                            }
                          },
                          "id": 7971,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1323:21:60",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$_t_uint112_$_t_uint112_$_t_uint32_$",
                            "typeString": "tuple(uint112,uint112,uint32)"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "1288:56:60"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 7987,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 7973,
                              "name": "result",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7896,
                              "src": "1358:6:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_struct$_PairInfo_$7886_memory_ptr_$dyn_memory_ptr",
                                "typeString": "struct RegistryHelperUniswapV2.PairInfo memory[] memory"
                              }
                            },
                            "id": 7977,
                            "indexExpression": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 7976,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "id": 7974,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7935,
                                "src": "1365:1:60",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "-",
                              "rightExpression": {
                                "argumentTypes": null,
                                "id": 7975,
                                "name": "offset",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7890,
                                "src": "1369:6:60",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "src": "1365:10:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "1358:18:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_PairInfo_$7886_memory_ptr",
                              "typeString": "struct RegistryHelperUniswapV2.PairInfo memory"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 7979,
                                "name": "uniPair",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7945,
                                "src": "1388:7:60",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_IUniswapV2Pair_$2705",
                                  "typeString": "contract IUniswapV2Pair"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 7980,
                                "name": "token0",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7954,
                                "src": "1397:6:60",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 7981,
                                "name": "token1",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7960,
                                "src": "1405:6:60",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "id": 7983,
                                    "name": "reserve0",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 7966,
                                    "src": "1423:8:60",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  {
                                    "argumentTypes": null,
                                    "id": 7984,
                                    "name": "reserve1",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 7968,
                                    "src": "1433:8:60",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    },
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "id": 7982,
                                  "name": "PairState",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 7877,
                                  "src": "1413:9:60",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_struct$_PairState_$7877_storage_ptr_$",
                                    "typeString": "type(struct RegistryHelperUniswapV2.PairState storage pointer)"
                                  }
                                },
                                "id": 7985,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "structConstructorCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "1413:29:60",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_PairState_$7877_memory_ptr",
                                  "typeString": "struct RegistryHelperUniswapV2.PairState memory"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_contract$_IUniswapV2Pair_$2705",
                                  "typeString": "contract IUniswapV2Pair"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_struct$_PairState_$7877_memory_ptr",
                                  "typeString": "struct RegistryHelperUniswapV2.PairState memory"
                                }
                              ],
                              "id": 7978,
                              "name": "PairInfo",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7886,
                              "src": "1379:8:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_struct$_PairInfo_$7886_storage_ptr_$",
                                "typeString": "type(struct RegistryHelperUniswapV2.PairInfo storage pointer)"
                              }
                            },
                            "id": 7986,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "structConstructorCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "1379:64:60",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_PairInfo_$7886_memory_ptr",
                              "typeString": "struct RegistryHelperUniswapV2.PairInfo memory"
                            }
                          },
                          "src": "1358:85:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_PairInfo_$7886_memory_ptr",
                            "typeString": "struct RegistryHelperUniswapV2.PairInfo memory"
                          }
                        },
                        "id": 7988,
                        "nodeType": "ExpressionStatement",
                        "src": "1358:85:60"
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 7940,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 7938,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7935,
                      "src": "1083:1:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 7939,
                      "name": "allPairsUpTo",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7899,
                      "src": "1087:12:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "1083:16:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 7990,
                  "initializationExpression": {
                    "assignments": [
                      7935
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 7935,
                        "mutability": "mutable",
                        "name": "i",
                        "nodeType": "VariableDeclaration",
                        "overrides": null,
                        "scope": 7990,
                        "src": "1066:6:60",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 7934,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "1066:4:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "id": 7937,
                    "initialValue": {
                      "argumentTypes": null,
                      "id": 7936,
                      "name": "offset",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7890,
                      "src": "1075:6:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "1066:15:60"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 7942,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "1101:3:60",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 7941,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7935,
                        "src": "1101:1:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 7943,
                    "nodeType": "ExpressionStatement",
                    "src": "1101:3:60"
                  },
                  "nodeType": "ForStatement",
                  "src": "1061:393:60"
                }
              ]
            },
            "documentation": null,
            "functionSelector": "21e5656e",
            "id": 7992,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "findPairs",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 7893,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7888,
                  "mutability": "mutable",
                  "name": "factory",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 7992,
                  "src": "471:25:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_IUniswapV2Factory_$2463",
                    "typeString": "contract IUniswapV2Factory"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 7887,
                    "name": "IUniswapV2Factory",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 2463,
                    "src": "471:17:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IUniswapV2Factory_$2463",
                      "typeString": "contract IUniswapV2Factory"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7890,
                  "mutability": "mutable",
                  "name": "offset",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 7992,
                  "src": "506:11:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 7889,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "506:4:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7892,
                  "mutability": "mutable",
                  "name": "limit",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 7992,
                  "src": "527:10:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 7891,
                    "name": "uint",
                    "nodeType": "ElementaryTypeName",
                    "src": "527:4:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "461:82:60"
            },
            "returnParameters": {
              "id": 7897,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7896,
                  "mutability": "mutable",
                  "name": "result",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 7992,
                  "src": "567:24:60",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_struct$_PairInfo_$7886_memory_ptr_$dyn_memory_ptr",
                    "typeString": "struct RegistryHelperUniswapV2.PairInfo[]"
                  },
                  "typeName": {
                    "baseType": {
                      "contractScope": null,
                      "id": 7894,
                      "name": "PairInfo",
                      "nodeType": "UserDefinedTypeName",
                      "referencedDeclaration": 7886,
                      "src": "567:8:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_PairInfo_$7886_storage_ptr",
                        "typeString": "struct RegistryHelperUniswapV2.PairInfo"
                      }
                    },
                    "id": 7895,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "567:10:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_struct$_PairInfo_$7886_storage_$dyn_storage_ptr",
                      "typeString": "struct RegistryHelperUniswapV2.PairInfo[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "566:26:60"
            },
            "scope": 8044,
            "src": "443:1017:60",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": {
              "id": 8042,
              "nodeType": "Block",
              "src": "1585:241:60",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 8008,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 8001,
                      "name": "result",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7999,
                      "src": "1595:6:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_struct$_PairState_$7877_memory_ptr_$dyn_memory_ptr",
                        "typeString": "struct RegistryHelperUniswapV2.PairState memory[] memory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 8005,
                            "name": "pairs",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7995,
                            "src": "1620:5:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_contract$_IUniswapV2Pair_$2705_$dyn_calldata_ptr",
                              "typeString": "contract IUniswapV2Pair[] calldata"
                            }
                          },
                          "id": 8006,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "1620:12:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 8004,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "NewExpression",
                        "src": "1604:15:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_PairState_$7877_memory_ptr_$dyn_memory_ptr_$",
                          "typeString": "function (uint256) pure returns (struct RegistryHelperUniswapV2.PairState memory[] memory)"
                        },
                        "typeName": {
                          "baseType": {
                            "contractScope": null,
                            "id": 8002,
                            "name": "PairState",
                            "nodeType": "UserDefinedTypeName",
                            "referencedDeclaration": 7877,
                            "src": "1608:9:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_PairState_$7877_storage_ptr",
                              "typeString": "struct RegistryHelperUniswapV2.PairState"
                            }
                          },
                          "id": 8003,
                          "length": null,
                          "nodeType": "ArrayTypeName",
                          "src": "1608:11:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_struct$_PairState_$7877_storage_$dyn_storage_ptr",
                            "typeString": "struct RegistryHelperUniswapV2.PairState[]"
                          }
                        }
                      },
                      "id": 8007,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "1604:29:60",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_struct$_PairState_$7877_memory_ptr_$dyn_memory_ptr",
                        "typeString": "struct RegistryHelperUniswapV2.PairState memory[] memory"
                      }
                    },
                    "src": "1595:38:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_struct$_PairState_$7877_memory_ptr_$dyn_memory_ptr",
                      "typeString": "struct RegistryHelperUniswapV2.PairState memory[] memory"
                    }
                  },
                  "id": 8009,
                  "nodeType": "ExpressionStatement",
                  "src": "1595:38:60"
                },
                {
                  "body": {
                    "id": 8040,
                    "nodeType": "Block",
                    "src": "1683:137:60",
                    "statements": [
                      {
                        "assignments": [
                          8022,
                          8024,
                          null
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 8022,
                            "mutability": "mutable",
                            "name": "reserve0",
                            "nodeType": "VariableDeclaration",
                            "overrides": null,
                            "scope": 8040,
                            "src": "1698:13:60",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "typeName": {
                              "id": 8021,
                              "name": "uint",
                              "nodeType": "ElementaryTypeName",
                              "src": "1698:4:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          },
                          {
                            "constant": false,
                            "id": 8024,
                            "mutability": "mutable",
                            "name": "reserve1",
                            "nodeType": "VariableDeclaration",
                            "overrides": null,
                            "scope": 8040,
                            "src": "1713:13:60",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "typeName": {
                              "id": 8023,
                              "name": "uint",
                              "nodeType": "ElementaryTypeName",
                              "src": "1713:4:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          },
                          null
                        ],
                        "id": 8030,
                        "initialValue": {
                          "argumentTypes": null,
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 8025,
                                "name": "pairs",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7995,
                                "src": "1732:5:60",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_contract$_IUniswapV2Pair_$2705_$dyn_calldata_ptr",
                                  "typeString": "contract IUniswapV2Pair[] calldata"
                                }
                              },
                              "id": 8027,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 8026,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 8011,
                                "src": "1738:1:60",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "1732:8:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_IUniswapV2Pair_$2705",
                                "typeString": "contract IUniswapV2Pair"
                              }
                            },
                            "id": 8028,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "getReserves",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 2647,
                            "src": "1732:20:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_view$__$returns$_t_uint112_$_t_uint112_$_t_uint32_$",
                              "typeString": "function () view external returns (uint112,uint112,uint32)"
                            }
                          },
                          "id": 8029,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1732:22:60",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$_t_uint112_$_t_uint112_$_t_uint32_$",
                            "typeString": "tuple(uint112,uint112,uint32)"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "1697:57:60"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 8038,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 8031,
                              "name": "result",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7999,
                              "src": "1768:6:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_struct$_PairState_$7877_memory_ptr_$dyn_memory_ptr",
                                "typeString": "struct RegistryHelperUniswapV2.PairState memory[] memory"
                              }
                            },
                            "id": 8033,
                            "indexExpression": {
                              "argumentTypes": null,
                              "id": 8032,
                              "name": "i",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 8011,
                              "src": "1775:1:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "1768:9:60",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_PairState_$7877_memory_ptr",
                              "typeString": "struct RegistryHelperUniswapV2.PairState memory"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 8035,
                                "name": "reserve0",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 8022,
                                "src": "1790:8:60",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 8036,
                                "name": "reserve1",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 8024,
                                "src": "1800:8:60",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 8034,
                              "name": "PairState",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7877,
                              "src": "1780:9:60",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_struct$_PairState_$7877_storage_ptr_$",
                                "typeString": "type(struct RegistryHelperUniswapV2.PairState storage pointer)"
                              }
                            },
                            "id": 8037,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "structConstructorCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "1780:29:60",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_PairState_$7877_memory_ptr",
                              "typeString": "struct RegistryHelperUniswapV2.PairState memory"
                            }
                          },
                          "src": "1768:41:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_PairState_$7877_memory_ptr",
                            "typeString": "struct RegistryHelperUniswapV2.PairState memory"
                          }
                        },
                        "id": 8039,
                        "nodeType": "ExpressionStatement",
                        "src": "1768:41:60"
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 8017,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 8014,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8011,
                      "src": "1660:1:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 8015,
                        "name": "pairs",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7995,
                        "src": "1664:5:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_contract$_IUniswapV2Pair_$2705_$dyn_calldata_ptr",
                          "typeString": "contract IUniswapV2Pair[] calldata"
                        }
                      },
                      "id": 8016,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "1664:12:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "1660:16:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 8041,
                  "initializationExpression": {
                    "assignments": [
                      8011
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 8011,
                        "mutability": "mutable",
                        "name": "i",
                        "nodeType": "VariableDeclaration",
                        "overrides": null,
                        "scope": 8041,
                        "src": "1648:6:60",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 8010,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "1648:4:60",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "id": 8013,
                    "initialValue": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 8012,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "1657:1:60",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "1648:10:60"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 8019,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "1678:3:60",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 8018,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8011,
                        "src": "1678:1:60",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 8020,
                    "nodeType": "ExpressionStatement",
                    "src": "1678:3:60"
                  },
                  "nodeType": "ForStatement",
                  "src": "1643:177:60"
                }
              ]
            },
            "documentation": null,
            "functionSelector": "41d82105",
            "id": 8043,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "refreshPairs",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 7996,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7995,
                  "mutability": "mutable",
                  "name": "pairs",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 8043,
                  "src": "1497:31:60",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_contract$_IUniswapV2Pair_$2705_$dyn_calldata_ptr",
                    "typeString": "contract IUniswapV2Pair[]"
                  },
                  "typeName": {
                    "baseType": {
                      "contractScope": null,
                      "id": 7993,
                      "name": "IUniswapV2Pair",
                      "nodeType": "UserDefinedTypeName",
                      "referencedDeclaration": 2705,
                      "src": "1497:14:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_IUniswapV2Pair_$2705",
                        "typeString": "contract IUniswapV2Pair"
                      }
                    },
                    "id": 7994,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "1497:16:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_contract$_IUniswapV2Pair_$2705_$dyn_storage_ptr",
                      "typeString": "contract IUniswapV2Pair[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1487:47:60"
            },
            "returnParameters": {
              "id": 8000,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7999,
                  "mutability": "mutable",
                  "name": "result",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 8043,
                  "src": "1558:25:60",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_struct$_PairState_$7877_memory_ptr_$dyn_memory_ptr",
                    "typeString": "struct RegistryHelperUniswapV2.PairState[]"
                  },
                  "typeName": {
                    "baseType": {
                      "contractScope": null,
                      "id": 7997,
                      "name": "PairState",
                      "nodeType": "UserDefinedTypeName",
                      "referencedDeclaration": 7877,
                      "src": "1558:9:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_PairState_$7877_storage_ptr",
                        "typeString": "struct RegistryHelperUniswapV2.PairState"
                      }
                    },
                    "id": 7998,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "1558:11:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_struct$_PairState_$7877_storage_$dyn_storage_ptr",
                      "typeString": "struct RegistryHelperUniswapV2.PairState[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1557:27:60"
            },
            "scope": 8044,
            "src": "1466:360:60",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          }
        ],
        "scope": 8045,
        "src": "196:1632:60"
      }
    ],
    "src": "32:1797:60"
  },
  "legacyAST": {
    "attributes": {
      "absolutePath": "project:/contracts/swappa/RegistryHelperUniswapV2.sol",
      "exportedSymbols": {
        "RegistryHelperUniswapV2": [
          8044
        ]
      },
      "license": "MIT"
    },
    "children": [
      {
        "attributes": {
          "literals": [
            "solidity",
            "0.6",
            ".8"
          ]
        },
        "id": 7869,
        "name": "PragmaDirective",
        "src": "32:22:60"
      },
      {
        "attributes": {
          "literals": [
            "experimental",
            "ABIEncoderV2"
          ]
        },
        "id": 7870,
        "name": "PragmaDirective",
        "src": "55:33:60"
      },
      {
        "attributes": {
          "SourceUnit": 2706,
          "absolutePath": "project:/contracts/interfaces/uniswap/IUniswapV2Pair.sol",
          "file": "../interfaces/uniswap/IUniswapV2Pair.sol",
          "scope": 8045,
          "symbolAliases": [
            null
          ],
          "unitAlias": ""
        },
        "id": 7871,
        "name": "ImportDirective",
        "src": "90:50:60"
      },
      {
        "attributes": {
          "SourceUnit": 2464,
          "absolutePath": "project:/contracts/interfaces/uniswap/IUniswapV2Factory.sol",
          "file": "../interfaces/uniswap/IUniswapV2Factory.sol",
          "scope": 8045,
          "symbolAliases": [
            null
          ],
          "unitAlias": ""
        },
        "id": 7872,
        "name": "ImportDirective",
        "src": "141:53:60"
      },
      {
        "attributes": {
          "abstract": false,
          "baseContracts": [
            null
          ],
          "contractDependencies": [
            null
          ],
          "contractKind": "contract",
          "documentation": null,
          "fullyImplemented": true,
          "linearizedBaseContracts": [
            8044
          ],
          "name": "RegistryHelperUniswapV2",
          "scope": 8045
        },
        "children": [
          {
            "attributes": {
              "canonicalName": "RegistryHelperUniswapV2.PairState",
              "name": "PairState",
              "scope": 8044,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "constant": false,
                  "mutability": "mutable",
                  "name": "reserve0",
                  "overrides": null,
                  "scope": 7877,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "uint256",
                  "value": null,
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "uint",
                      "type": "uint256"
                    },
                    "id": 7873,
                    "name": "ElementaryTypeName",
                    "src": "263:4:60"
                  }
                ],
                "id": 7874,
                "name": "VariableDeclaration",
                "src": "263:13:60"
              },
              {
                "attributes": {
                  "constant": false,
                  "mutability": "mutable",
                  "name": "reserve1",
                  "overrides": null,
                  "scope": 7877,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "uint256",
                  "value": null,
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "uint",
                      "type": "uint256"
                    },
                    "id": 7875,
                    "name": "ElementaryTypeName",
                    "src": "286:4:60"
                  }
                ],
                "id": 7876,
                "name": "VariableDeclaration",
                "src": "286:13:60"
              }
            ],
            "id": 7877,
            "name": "StructDefinition",
            "src": "236:70:60"
          },
          {
            "attributes": {
              "canonicalName": "RegistryHelperUniswapV2.PairInfo",
              "name": "PairInfo",
              "scope": 8044,
              "visibility": "public"
            },
            "children": [
              {
                "attributes": {
                  "constant": false,
                  "mutability": "mutable",
                  "name": "pair",
                  "overrides": null,
                  "scope": 7886,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "contract IUniswapV2Pair",
                  "value": null,
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "contractScope": null,
                      "name": "IUniswapV2Pair",
                      "referencedDeclaration": 2705,
                      "type": "contract IUniswapV2Pair"
                    },
                    "id": 7878,
                    "name": "UserDefinedTypeName",
                    "src": "338:14:60"
                  }
                ],
                "id": 7879,
                "name": "VariableDeclaration",
                "src": "338:19:60"
              },
              {
                "attributes": {
                  "constant": false,
                  "mutability": "mutable",
                  "name": "token0",
                  "overrides": null,
                  "scope": 7886,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "address",
                  "value": null,
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "address",
                      "stateMutability": "nonpayable",
                      "type": "address"
                    },
                    "id": 7880,
                    "name": "ElementaryTypeName",
                    "src": "367:7:60"
                  }
                ],
                "id": 7881,
                "name": "VariableDeclaration",
                "src": "367:14:60"
              },
              {
                "attributes": {
                  "constant": false,
                  "mutability": "mutable",
                  "name": "token1",
                  "overrides": null,
                  "scope": 7886,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "address",
                  "value": null,
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "name": "address",
                      "stateMutability": "nonpayable",
                      "type": "address"
                    },
                    "id": 7882,
                    "name": "ElementaryTypeName",
                    "src": "391:7:60"
                  }
                ],
                "id": 7883,
                "name": "VariableDeclaration",
                "src": "391:14:60"
              },
              {
                "attributes": {
                  "constant": false,
                  "mutability": "mutable",
                  "name": "state",
                  "overrides": null,
                  "scope": 7886,
                  "stateVariable": false,
                  "storageLocation": "default",
                  "type": "struct RegistryHelperUniswapV2.PairState",
                  "value": null,
                  "visibility": "internal"
                },
                "children": [
                  {
                    "attributes": {
                      "contractScope": null,
                      "name": "PairState",
                      "referencedDeclaration": 7877,
                      "type": "struct RegistryHelperUniswapV2.PairState"
                    },
                    "id": 7884,
                    "name": "UserDefinedTypeName",
                    "src": "415:9:60"
                  }
                ],
                "id": 7885,
                "name": "VariableDeclaration",
                "src": "415:15:60"
              }
            ],
            "id": 7886,
            "name": "StructDefinition",
            "src": "312:125:60"
          },
          {
            "attributes": {
              "documentation": null,
              "functionSelector": "21e5656e",
              "implemented": true,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "findPairs",
              "overrides": null,
              "scope": 8044,
              "stateMutability": "view",
              "virtual": false,
              "visibility": "external"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "factory",
                      "overrides": null,
                      "scope": 7992,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "contract IUniswapV2Factory",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "contractScope": null,
                          "name": "IUniswapV2Factory",
                          "referencedDeclaration": 2463,
                          "type": "contract IUniswapV2Factory"
                        },
                        "id": 7887,
                        "name": "UserDefinedTypeName",
                        "src": "471:17:60"
                      }
                    ],
                    "id": 7888,
                    "name": "VariableDeclaration",
                    "src": "471:25:60"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "offset",
                      "overrides": null,
                      "scope": 7992,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 7889,
                        "name": "ElementaryTypeName",
                        "src": "506:4:60"
                      }
                    ],
                    "id": 7890,
                    "name": "VariableDeclaration",
                    "src": "506:11:60"
                  },
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "limit",
                      "overrides": null,
                      "scope": 7992,
                      "stateVariable": false,
                      "storageLocation": "default",
                      "type": "uint256",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "name": "uint",
                          "type": "uint256"
                        },
                        "id": 7891,
                        "name": "ElementaryTypeName",
                        "src": "527:4:60"
                      }
                    ],
                    "id": 7892,
                    "name": "VariableDeclaration",
                    "src": "527:10:60"
                  }
                ],
                "id": 7893,
                "name": "ParameterList",
                "src": "461:82:60"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "result",
                      "overrides": null,
                      "scope": 7992,
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "type": "struct RegistryHelperUniswapV2.PairInfo[]",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "length": null,
                          "type": "struct RegistryHelperUniswapV2.PairInfo[]"
                        },
                        "children": [
                          {
                            "attributes": {
                              "contractScope": null,
                              "name": "PairInfo",
                              "referencedDeclaration": 7886,
                              "type": "struct RegistryHelperUniswapV2.PairInfo"
                            },
                            "id": 7894,
                            "name": "UserDefinedTypeName",
                            "src": "567:8:60"
                          }
                        ],
                        "id": 7895,
                        "name": "ArrayTypeName",
                        "src": "567:10:60"
                      }
                    ],
                    "id": 7896,
                    "name": "VariableDeclaration",
                    "src": "567:24:60"
                  }
                ],
                "id": 7897,
                "name": "ParameterList",
                "src": "566:26:60"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "assignments": [
                        7899
                      ]
                    },
                    "children": [
                      {
                        "attributes": {
                          "constant": false,
                          "mutability": "mutable",
                          "name": "allPairsUpTo",
                          "overrides": null,
                          "scope": 7991,
                          "stateVariable": false,
                          "storageLocation": "default",
                          "type": "uint256",
                          "value": null,
                          "visibility": "internal"
                        },
                        "children": [
                          {
                            "attributes": {
                              "name": "uint",
                              "type": "uint256"
                            },
                            "id": 7898,
                            "name": "ElementaryTypeName",
                            "src": "603:4:60"
                          }
                        ],
                        "id": 7899,
                        "name": "VariableDeclaration",
                        "src": "603:17:60"
                      },
                      {
                        "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": "allPairsLength",
                              "referencedDeclaration": 2443,
                              "type": "function () view external returns (uint256)"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 7888,
                                  "type": "contract IUniswapV2Factory",
                                  "value": "factory"
                                },
                                "id": 7900,
                                "name": "Identifier",
                                "src": "623:7:60"
                              }
                            ],
                            "id": 7901,
                            "name": "MemberAccess",
                            "src": "623:22:60"
                          }
                        ],
                        "id": 7902,
                        "name": "FunctionCall",
                        "src": "623:24:60"
                      }
                    ],
                    "id": 7903,
                    "name": "VariableDeclarationStatement",
                    "src": "603:44:60"
                  },
                  {
                    "children": [
                      {
                        "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": 7899,
                              "type": "uint256",
                              "value": "allPairsUpTo"
                            },
                            "id": 7904,
                            "name": "Identifier",
                            "src": "662:12:60"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "+",
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 7890,
                                  "type": "uint256",
                                  "value": "offset"
                                },
                                "id": 7905,
                                "name": "Identifier",
                                "src": "677:6:60"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 7892,
                                  "type": "uint256",
                                  "value": "limit"
                                },
                                "id": 7906,
                                "name": "Identifier",
                                "src": "686:5:60"
                              }
                            ],
                            "id": 7907,
                            "name": "BinaryOperation",
                            "src": "677:14:60"
                          }
                        ],
                        "id": 7908,
                        "name": "BinaryOperation",
                        "src": "662:29:60"
                      },
                      {
                        "children": [
                          {
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "=",
                                  "type": "uint256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 7899,
                                      "type": "uint256",
                                      "value": "allPairsUpTo"
                                    },
                                    "id": 7909,
                                    "name": "Identifier",
                                    "src": "757:12:60"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "commonType": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "operator": "+",
                                      "type": "uint256"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 7890,
                                          "type": "uint256",
                                          "value": "offset"
                                        },
                                        "id": 7910,
                                        "name": "Identifier",
                                        "src": "772:6:60"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 7892,
                                          "type": "uint256",
                                          "value": "limit"
                                        },
                                        "id": 7911,
                                        "name": "Identifier",
                                        "src": "781:5:60"
                                      }
                                    ],
                                    "id": 7912,
                                    "name": "BinaryOperation",
                                    "src": "772:14:60"
                                  }
                                ],
                                "id": 7913,
                                "name": "Assignment",
                                "src": "757:29:60"
                              }
                            ],
                            "id": 7914,
                            "name": "ExpressionStatement",
                            "src": "757:29:60"
                          }
                        ],
                        "id": 7915,
                        "name": "Block",
                        "src": "693:104:60"
                      },
                      {
                        "attributes": {
                          "falseBody": null
                        },
                        "children": [
                          {
                            "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": 7899,
                                  "type": "uint256",
                                  "value": "allPairsUpTo"
                                },
                                "id": 7916,
                                "name": "Identifier",
                                "src": "807:12:60"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 7890,
                                  "type": "uint256",
                                  "value": "offset"
                                },
                                "id": 7917,
                                "name": "Identifier",
                                "src": "822:6:60"
                              }
                            ],
                            "id": 7918,
                            "name": "BinaryOperation",
                            "src": "807:21:60"
                          },
                          {
                            "children": [
                              {
                                "attributes": {
                                  "functionReturnParameters": 7897
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 7896,
                                      "type": "struct RegistryHelperUniswapV2.PairInfo memory[] memory",
                                      "value": "result"
                                    },
                                    "id": 7919,
                                    "name": "Identifier",
                                    "src": "890:6:60"
                                  }
                                ],
                                "id": 7920,
                                "name": "Return",
                                "src": "883:13:60"
                              }
                            ],
                            "id": 7921,
                            "name": "Block",
                            "src": "830:77:60"
                          }
                        ],
                        "id": 7922,
                        "name": "IfStatement",
                        "src": "803:104:60"
                      }
                    ],
                    "id": 7923,
                    "name": "IfStatement",
                    "src": "658:249:60"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "struct RegistryHelperUniswapV2.PairInfo memory[] memory"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 7896,
                              "type": "struct RegistryHelperUniswapV2.PairInfo memory[] memory",
                              "value": "result"
                            },
                            "id": 7924,
                            "name": "Identifier",
                            "src": "1005:6:60"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "tryCall": false,
                              "type": "struct RegistryHelperUniswapV2.PairInfo 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 RegistryHelperUniswapV2.PairInfo memory[] memory)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "length": null,
                                      "type": "struct RegistryHelperUniswapV2.PairInfo[]"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "contractScope": null,
                                          "name": "PairInfo",
                                          "referencedDeclaration": 7886,
                                          "type": "struct RegistryHelperUniswapV2.PairInfo"
                                        },
                                        "id": 7925,
                                        "name": "UserDefinedTypeName",
                                        "src": "1018:8:60"
                                      }
                                    ],
                                    "id": 7926,
                                    "name": "ArrayTypeName",
                                    "src": "1018:10:60"
                                  }
                                ],
                                "id": 7927,
                                "name": "NewExpression",
                                "src": "1014:14:60"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "-",
                                  "type": "uint256"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 7899,
                                      "type": "uint256",
                                      "value": "allPairsUpTo"
                                    },
                                    "id": 7928,
                                    "name": "Identifier",
                                    "src": "1029:12:60"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 7890,
                                      "type": "uint256",
                                      "value": "offset"
                                    },
                                    "id": 7929,
                                    "name": "Identifier",
                                    "src": "1044:6:60"
                                  }
                                ],
                                "id": 7930,
                                "name": "BinaryOperation",
                                "src": "1029:21:60"
                              }
                            ],
                            "id": 7931,
                            "name": "FunctionCall",
                            "src": "1014:37:60"
                          }
                        ],
                        "id": 7932,
                        "name": "Assignment",
                        "src": "1005:46:60"
                      }
                    ],
                    "id": 7933,
                    "name": "ExpressionStatement",
                    "src": "1005:46:60"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "assignments": [
                            7935
                          ]
                        },
                        "children": [
                          {
                            "attributes": {
                              "constant": false,
                              "mutability": "mutable",
                              "name": "i",
                              "overrides": null,
                              "scope": 7990,
                              "stateVariable": false,
                              "storageLocation": "default",
                              "type": "uint256",
                              "value": null,
                              "visibility": "internal"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "name": "uint",
                                  "type": "uint256"
                                },
                                "id": 7934,
                                "name": "ElementaryTypeName",
                                "src": "1066:4:60"
                              }
                            ],
                            "id": 7935,
                            "name": "VariableDeclaration",
                            "src": "1066:6:60"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 7890,
                              "type": "uint256",
                              "value": "offset"
                            },
                            "id": 7936,
                            "name": "Identifier",
                            "src": "1075:6:60"
                          }
                        ],
                        "id": 7937,
                        "name": "VariableDeclarationStatement",
                        "src": "1066:15:60"
                      },
                      {
                        "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": 7935,
                              "type": "uint256",
                              "value": "i"
                            },
                            "id": 7938,
                            "name": "Identifier",
                            "src": "1083:1:60"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 7899,
                              "type": "uint256",
                              "value": "allPairsUpTo"
                            },
                            "id": 7939,
                            "name": "Identifier",
                            "src": "1087:12:60"
                          }
                        ],
                        "id": 7940,
                        "name": "BinaryOperation",
                        "src": "1083:16:60"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "++",
                              "prefix": false,
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 7935,
                                  "type": "uint256",
                                  "value": "i"
                                },
                                "id": 7941,
                                "name": "Identifier",
                                "src": "1101:1:60"
                              }
                            ],
                            "id": 7942,
                            "name": "UnaryOperation",
                            "src": "1101:3:60"
                          }
                        ],
                        "id": 7943,
                        "name": "ExpressionStatement",
                        "src": "1101:3:60"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "assignments": [
                                7945
                              ]
                            },
                            "children": [
                              {
                                "attributes": {
                                  "constant": false,
                                  "mutability": "mutable",
                                  "name": "uniPair",
                                  "overrides": null,
                                  "scope": 7989,
                                  "stateVariable": false,
                                  "storageLocation": "default",
                                  "type": "contract IUniswapV2Pair",
                                  "value": null,
                                  "visibility": "internal"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "contractScope": null,
                                      "name": "IUniswapV2Pair",
                                      "referencedDeclaration": 2705,
                                      "type": "contract IUniswapV2Pair"
                                    },
                                    "id": 7944,
                                    "name": "UserDefinedTypeName",
                                    "src": "1120:14:60"
                                  }
                                ],
                                "id": 7945,
                                "name": "VariableDeclaration",
                                "src": "1120:22:60"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "tryCall": false,
                                  "type": "contract IUniswapV2Pair",
                                  "type_conversion": true
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_address",
                                          "typeString": "address"
                                        }
                                      ],
                                      "overloadedDeclarations": [
                                        null
                                      ],
                                      "referencedDeclaration": 2705,
                                      "type": "type(contract IUniswapV2Pair)",
                                      "value": "IUniswapV2Pair"
                                    },
                                    "id": 7946,
                                    "name": "Identifier",
                                    "src": "1145:14:60"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "isStructConstructorCall": false,
                                      "lValueRequested": false,
                                      "names": [
                                        null
                                      ],
                                      "tryCall": false,
                                      "type": "address",
                                      "type_conversion": false
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          ],
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "member_name": "allPairs",
                                          "referencedDeclaration": 2438,
                                          "type": "function (uint256) view external returns (address)"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 7888,
                                              "type": "contract IUniswapV2Factory",
                                              "value": "factory"
                                            },
                                            "id": 7947,
                                            "name": "Identifier",
                                            "src": "1160:7:60"
                                          }
                                        ],
                                        "id": 7948,
                                        "name": "MemberAccess",
                                        "src": "1160:16:60"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 7935,
                                          "type": "uint256",
                                          "value": "i"
                                        },
                                        "id": 7949,
                                        "name": "Identifier",
                                        "src": "1177:1:60"
                                      }
                                    ],
                                    "id": 7950,
                                    "name": "FunctionCall",
                                    "src": "1160:19:60"
                                  }
                                ],
                                "id": 7951,
                                "name": "FunctionCall",
                                "src": "1145:35:60"
                              }
                            ],
                            "id": 7952,
                            "name": "VariableDeclarationStatement",
                            "src": "1120:60:60"
                          },
                          {
                            "attributes": {
                              "assignments": [
                                7954
                              ]
                            },
                            "children": [
                              {
                                "attributes": {
                                  "constant": false,
                                  "mutability": "mutable",
                                  "name": "token0",
                                  "overrides": null,
                                  "scope": 7989,
                                  "stateVariable": false,
                                  "storageLocation": "default",
                                  "type": "address",
                                  "value": null,
                                  "visibility": "internal"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "name": "address",
                                      "stateMutability": "nonpayable",
                                      "type": "address"
                                    },
                                    "id": 7953,
                                    "name": "ElementaryTypeName",
                                    "src": "1194:7:60"
                                  }
                                ],
                                "id": 7954,
                                "name": "VariableDeclaration",
                                "src": "1194:14:60"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    null
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "tryCall": false,
                                  "type": "address",
                                  "type_conversion": false
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        null
                                      ],
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "member_name": "token0",
                                      "referencedDeclaration": 2633,
                                      "type": "function () view external returns (address)"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 7945,
                                          "type": "contract IUniswapV2Pair",
                                          "value": "uniPair"
                                        },
                                        "id": 7955,
                                        "name": "Identifier",
                                        "src": "1211:7:60"
                                      }
                                    ],
                                    "id": 7956,
                                    "name": "MemberAccess",
                                    "src": "1211:14:60"
                                  }
                                ],
                                "id": 7957,
                                "name": "FunctionCall",
                                "src": "1211:16:60"
                              }
                            ],
                            "id": 7958,
                            "name": "VariableDeclarationStatement",
                            "src": "1194:33:60"
                          },
                          {
                            "attributes": {
                              "assignments": [
                                7960
                              ]
                            },
                            "children": [
                              {
                                "attributes": {
                                  "constant": false,
                                  "mutability": "mutable",
                                  "name": "token1",
                                  "overrides": null,
                                  "scope": 7989,
                                  "stateVariable": false,
                                  "storageLocation": "default",
                                  "type": "address",
                                  "value": null,
                                  "visibility": "internal"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "name": "address",
                                      "stateMutability": "nonpayable",
                                      "type": "address"
                                    },
                                    "id": 7959,
                                    "name": "ElementaryTypeName",
                                    "src": "1241:7:60"
                                  }
                                ],
                                "id": 7960,
                                "name": "VariableDeclaration",
                                "src": "1241:14:60"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    null
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "tryCall": false,
                                  "type": "address",
                                  "type_conversion": false
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        null
                                      ],
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "member_name": "token1",
                                      "referencedDeclaration": 2638,
                                      "type": "function () view external returns (address)"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 7945,
                                          "type": "contract IUniswapV2Pair",
                                          "value": "uniPair"
                                        },
                                        "id": 7961,
                                        "name": "Identifier",
                                        "src": "1258:7:60"
                                      }
                                    ],
                                    "id": 7962,
                                    "name": "MemberAccess",
                                    "src": "1258:14:60"
                                  }
                                ],
                                "id": 7963,
                                "name": "FunctionCall",
                                "src": "1258:16:60"
                              }
                            ],
                            "id": 7964,
                            "name": "VariableDeclarationStatement",
                            "src": "1241:33:60"
                          },
                          {
                            "attributes": {
                              "assignments": [
                                7966,
                                7968,
                                null
                              ]
                            },
                            "children": [
                              {
                                "attributes": {
                                  "constant": false,
                                  "mutability": "mutable",
                                  "name": "reserve0",
                                  "overrides": null,
                                  "scope": 7989,
                                  "stateVariable": false,
                                  "storageLocation": "default",
                                  "type": "uint256",
                                  "value": null,
                                  "visibility": "internal"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "name": "uint",
                                      "type": "uint256"
                                    },
                                    "id": 7965,
                                    "name": "ElementaryTypeName",
                                    "src": "1289:4:60"
                                  }
                                ],
                                "id": 7966,
                                "name": "VariableDeclaration",
                                "src": "1289:13:60"
                              },
                              {
                                "attributes": {
                                  "constant": false,
                                  "mutability": "mutable",
                                  "name": "reserve1",
                                  "overrides": null,
                                  "scope": 7989,
                                  "stateVariable": false,
                                  "storageLocation": "default",
                                  "type": "uint256",
                                  "value": null,
                                  "visibility": "internal"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "name": "uint",
                                      "type": "uint256"
                                    },
                                    "id": 7967,
                                    "name": "ElementaryTypeName",
                                    "src": "1304:4:60"
                                  }
                                ],
                                "id": 7968,
                                "name": "VariableDeclaration",
                                "src": "1304:13:60"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    null
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "tryCall": false,
                                  "type": "tuple(uint112,uint112,uint32)",
                                  "type_conversion": false
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        null
                                      ],
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "member_name": "getReserves",
                                      "referencedDeclaration": 2647,
                                      "type": "function () view external returns (uint112,uint112,uint32)"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 7945,
                                          "type": "contract IUniswapV2Pair",
                                          "value": "uniPair"
                                        },
                                        "id": 7969,
                                        "name": "Identifier",
                                        "src": "1323:7:60"
                                      }
                                    ],
                                    "id": 7970,
                                    "name": "MemberAccess",
                                    "src": "1323:19:60"
                                  }
                                ],
                                "id": 7971,
                                "name": "FunctionCall",
                                "src": "1323:21:60"
                              }
                            ],
                            "id": 7972,
                            "name": "VariableDeclarationStatement",
                            "src": "1288:56:60"
                          },
                          {
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "=",
                                  "type": "struct RegistryHelperUniswapV2.PairInfo memory"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": true,
                                      "type": "struct RegistryHelperUniswapV2.PairInfo memory"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 7896,
                                          "type": "struct RegistryHelperUniswapV2.PairInfo memory[] memory",
                                          "value": "result"
                                        },
                                        "id": 7973,
                                        "name": "Identifier",
                                        "src": "1358:6:60"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "commonType": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          },
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "operator": "-",
                                          "type": "uint256"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 7935,
                                              "type": "uint256",
                                              "value": "i"
                                            },
                                            "id": 7974,
                                            "name": "Identifier",
                                            "src": "1365:1:60"
                                          },
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 7890,
                                              "type": "uint256",
                                              "value": "offset"
                                            },
                                            "id": 7975,
                                            "name": "Identifier",
                                            "src": "1369:6:60"
                                          }
                                        ],
                                        "id": 7976,
                                        "name": "BinaryOperation",
                                        "src": "1365:10:60"
                                      }
                                    ],
                                    "id": 7977,
                                    "name": "IndexAccess",
                                    "src": "1358:18:60"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "isStructConstructorCall": true,
                                      "lValueRequested": false,
                                      "names": [
                                        null
                                      ],
                                      "tryCall": false,
                                      "type": "struct RegistryHelperUniswapV2.PairInfo memory",
                                      "type_conversion": false
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_contract$_IUniswapV2Pair_$2705",
                                              "typeString": "contract IUniswapV2Pair"
                                            },
                                            {
                                              "typeIdentifier": "t_address",
                                              "typeString": "address"
                                            },
                                            {
                                              "typeIdentifier": "t_address",
                                              "typeString": "address"
                                            },
                                            {
                                              "typeIdentifier": "t_struct$_PairState_$7877_memory_ptr",
                                              "typeString": "struct RegistryHelperUniswapV2.PairState memory"
                                            }
                                          ],
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 7886,
                                          "type": "type(struct RegistryHelperUniswapV2.PairInfo storage pointer)",
                                          "value": "PairInfo"
                                        },
                                        "id": 7978,
                                        "name": "Identifier",
                                        "src": "1379:8:60"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 7945,
                                          "type": "contract IUniswapV2Pair",
                                          "value": "uniPair"
                                        },
                                        "id": 7979,
                                        "name": "Identifier",
                                        "src": "1388:7:60"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 7954,
                                          "type": "address",
                                          "value": "token0"
                                        },
                                        "id": 7980,
                                        "name": "Identifier",
                                        "src": "1397:6:60"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 7960,
                                          "type": "address",
                                          "value": "token1"
                                        },
                                        "id": 7981,
                                        "name": "Identifier",
                                        "src": "1405:6:60"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "isStructConstructorCall": true,
                                          "lValueRequested": false,
                                          "names": [
                                            null
                                          ],
                                          "tryCall": false,
                                          "type": "struct RegistryHelperUniswapV2.PairState memory",
                                          "type_conversion": false
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": [
                                                {
                                                  "typeIdentifier": "t_uint256",
                                                  "typeString": "uint256"
                                                },
                                                {
                                                  "typeIdentifier": "t_uint256",
                                                  "typeString": "uint256"
                                                }
                                              ],
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 7877,
                                              "type": "type(struct RegistryHelperUniswapV2.PairState storage pointer)",
                                              "value": "PairState"
                                            },
                                            "id": 7982,
                                            "name": "Identifier",
                                            "src": "1413:9:60"
                                          },
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 7966,
                                              "type": "uint256",
                                              "value": "reserve0"
                                            },
                                            "id": 7983,
                                            "name": "Identifier",
                                            "src": "1423:8:60"
                                          },
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 7968,
                                              "type": "uint256",
                                              "value": "reserve1"
                                            },
                                            "id": 7984,
                                            "name": "Identifier",
                                            "src": "1433:8:60"
                                          }
                                        ],
                                        "id": 7985,
                                        "name": "FunctionCall",
                                        "src": "1413:29:60"
                                      }
                                    ],
                                    "id": 7986,
                                    "name": "FunctionCall",
                                    "src": "1379:64:60"
                                  }
                                ],
                                "id": 7987,
                                "name": "Assignment",
                                "src": "1358:85:60"
                              }
                            ],
                            "id": 7988,
                            "name": "ExpressionStatement",
                            "src": "1358:85:60"
                          }
                        ],
                        "id": 7989,
                        "name": "Block",
                        "src": "1106:348:60"
                      }
                    ],
                    "id": 7990,
                    "name": "ForStatement",
                    "src": "1061:393:60"
                  }
                ],
                "id": 7991,
                "name": "Block",
                "src": "593:867:60"
              }
            ],
            "id": 7992,
            "name": "FunctionDefinition",
            "src": "443:1017:60"
          },
          {
            "attributes": {
              "documentation": null,
              "functionSelector": "41d82105",
              "implemented": true,
              "isConstructor": false,
              "kind": "function",
              "modifiers": [
                null
              ],
              "name": "refreshPairs",
              "overrides": null,
              "scope": 8044,
              "stateMutability": "view",
              "virtual": false,
              "visibility": "external"
            },
            "children": [
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "pairs",
                      "overrides": null,
                      "scope": 8043,
                      "stateVariable": false,
                      "storageLocation": "calldata",
                      "type": "contract IUniswapV2Pair[]",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "length": null,
                          "type": "contract IUniswapV2Pair[]"
                        },
                        "children": [
                          {
                            "attributes": {
                              "contractScope": null,
                              "name": "IUniswapV2Pair",
                              "referencedDeclaration": 2705,
                              "type": "contract IUniswapV2Pair"
                            },
                            "id": 7993,
                            "name": "UserDefinedTypeName",
                            "src": "1497:14:60"
                          }
                        ],
                        "id": 7994,
                        "name": "ArrayTypeName",
                        "src": "1497:16:60"
                      }
                    ],
                    "id": 7995,
                    "name": "VariableDeclaration",
                    "src": "1497:31:60"
                  }
                ],
                "id": 7996,
                "name": "ParameterList",
                "src": "1487:47:60"
              },
              {
                "children": [
                  {
                    "attributes": {
                      "constant": false,
                      "mutability": "mutable",
                      "name": "result",
                      "overrides": null,
                      "scope": 8043,
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "type": "struct RegistryHelperUniswapV2.PairState[]",
                      "value": null,
                      "visibility": "internal"
                    },
                    "children": [
                      {
                        "attributes": {
                          "length": null,
                          "type": "struct RegistryHelperUniswapV2.PairState[]"
                        },
                        "children": [
                          {
                            "attributes": {
                              "contractScope": null,
                              "name": "PairState",
                              "referencedDeclaration": 7877,
                              "type": "struct RegistryHelperUniswapV2.PairState"
                            },
                            "id": 7997,
                            "name": "UserDefinedTypeName",
                            "src": "1558:9:60"
                          }
                        ],
                        "id": 7998,
                        "name": "ArrayTypeName",
                        "src": "1558:11:60"
                      }
                    ],
                    "id": 7999,
                    "name": "VariableDeclaration",
                    "src": "1558:25:60"
                  }
                ],
                "id": 8000,
                "name": "ParameterList",
                "src": "1557:27:60"
              },
              {
                "children": [
                  {
                    "children": [
                      {
                        "attributes": {
                          "argumentTypes": null,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "operator": "=",
                          "type": "struct RegistryHelperUniswapV2.PairState memory[] memory"
                        },
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "overloadedDeclarations": [
                                null
                              ],
                              "referencedDeclaration": 7999,
                              "type": "struct RegistryHelperUniswapV2.PairState memory[] memory",
                              "value": "result"
                            },
                            "id": 8001,
                            "name": "Identifier",
                            "src": "1595:6:60"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "isStructConstructorCall": false,
                              "lValueRequested": false,
                              "names": [
                                null
                              ],
                              "tryCall": false,
                              "type": "struct RegistryHelperUniswapV2.PairState 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 RegistryHelperUniswapV2.PairState memory[] memory)"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "length": null,
                                      "type": "struct RegistryHelperUniswapV2.PairState[]"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "contractScope": null,
                                          "name": "PairState",
                                          "referencedDeclaration": 7877,
                                          "type": "struct RegistryHelperUniswapV2.PairState"
                                        },
                                        "id": 8002,
                                        "name": "UserDefinedTypeName",
                                        "src": "1608:9:60"
                                      }
                                    ],
                                    "id": 8003,
                                    "name": "ArrayTypeName",
                                    "src": "1608:11:60"
                                  }
                                ],
                                "id": 8004,
                                "name": "NewExpression",
                                "src": "1604:15:60"
                              },
                              {
                                "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": 7995,
                                      "type": "contract IUniswapV2Pair[] calldata",
                                      "value": "pairs"
                                    },
                                    "id": 8005,
                                    "name": "Identifier",
                                    "src": "1620:5:60"
                                  }
                                ],
                                "id": 8006,
                                "name": "MemberAccess",
                                "src": "1620:12:60"
                              }
                            ],
                            "id": 8007,
                            "name": "FunctionCall",
                            "src": "1604:29:60"
                          }
                        ],
                        "id": 8008,
                        "name": "Assignment",
                        "src": "1595:38:60"
                      }
                    ],
                    "id": 8009,
                    "name": "ExpressionStatement",
                    "src": "1595:38:60"
                  },
                  {
                    "children": [
                      {
                        "attributes": {
                          "assignments": [
                            8011
                          ]
                        },
                        "children": [
                          {
                            "attributes": {
                              "constant": false,
                              "mutability": "mutable",
                              "name": "i",
                              "overrides": null,
                              "scope": 8041,
                              "stateVariable": false,
                              "storageLocation": "default",
                              "type": "uint256",
                              "value": null,
                              "visibility": "internal"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "name": "uint",
                                  "type": "uint256"
                                },
                                "id": 8010,
                                "name": "ElementaryTypeName",
                                "src": "1648:4:60"
                              }
                            ],
                            "id": 8011,
                            "name": "VariableDeclaration",
                            "src": "1648:6:60"
                          },
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "hexvalue": "30",
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "subdenomination": null,
                              "token": "number",
                              "type": "int_const 0",
                              "value": "0"
                            },
                            "id": 8012,
                            "name": "Literal",
                            "src": "1657:1:60"
                          }
                        ],
                        "id": 8013,
                        "name": "VariableDeclarationStatement",
                        "src": "1648:10:60"
                      },
                      {
                        "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": 8011,
                              "type": "uint256",
                              "value": "i"
                            },
                            "id": 8014,
                            "name": "Identifier",
                            "src": "1660:1:60"
                          },
                          {
                            "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": 7995,
                                  "type": "contract IUniswapV2Pair[] calldata",
                                  "value": "pairs"
                                },
                                "id": 8015,
                                "name": "Identifier",
                                "src": "1664:5:60"
                              }
                            ],
                            "id": 8016,
                            "name": "MemberAccess",
                            "src": "1664:12:60"
                          }
                        ],
                        "id": 8017,
                        "name": "BinaryOperation",
                        "src": "1660:16:60"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "argumentTypes": null,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "operator": "++",
                              "prefix": false,
                              "type": "uint256"
                            },
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "overloadedDeclarations": [
                                    null
                                  ],
                                  "referencedDeclaration": 8011,
                                  "type": "uint256",
                                  "value": "i"
                                },
                                "id": 8018,
                                "name": "Identifier",
                                "src": "1678:1:60"
                              }
                            ],
                            "id": 8019,
                            "name": "UnaryOperation",
                            "src": "1678:3:60"
                          }
                        ],
                        "id": 8020,
                        "name": "ExpressionStatement",
                        "src": "1678:3:60"
                      },
                      {
                        "children": [
                          {
                            "attributes": {
                              "assignments": [
                                8022,
                                8024,
                                null
                              ]
                            },
                            "children": [
                              {
                                "attributes": {
                                  "constant": false,
                                  "mutability": "mutable",
                                  "name": "reserve0",
                                  "overrides": null,
                                  "scope": 8040,
                                  "stateVariable": false,
                                  "storageLocation": "default",
                                  "type": "uint256",
                                  "value": null,
                                  "visibility": "internal"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "name": "uint",
                                      "type": "uint256"
                                    },
                                    "id": 8021,
                                    "name": "ElementaryTypeName",
                                    "src": "1698:4:60"
                                  }
                                ],
                                "id": 8022,
                                "name": "VariableDeclaration",
                                "src": "1698:13:60"
                              },
                              {
                                "attributes": {
                                  "constant": false,
                                  "mutability": "mutable",
                                  "name": "reserve1",
                                  "overrides": null,
                                  "scope": 8040,
                                  "stateVariable": false,
                                  "storageLocation": "default",
                                  "type": "uint256",
                                  "value": null,
                                  "visibility": "internal"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "name": "uint",
                                      "type": "uint256"
                                    },
                                    "id": 8023,
                                    "name": "ElementaryTypeName",
                                    "src": "1713:4:60"
                                  }
                                ],
                                "id": 8024,
                                "name": "VariableDeclaration",
                                "src": "1713:13:60"
                              },
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    null
                                  ],
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "isStructConstructorCall": false,
                                  "lValueRequested": false,
                                  "names": [
                                    null
                                  ],
                                  "tryCall": false,
                                  "type": "tuple(uint112,uint112,uint32)",
                                  "type_conversion": false
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": [
                                        null
                                      ],
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "member_name": "getReserves",
                                      "referencedDeclaration": 2647,
                                      "type": "function () view external returns (uint112,uint112,uint32)"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "type": "contract IUniswapV2Pair"
                                        },
                                        "children": [
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 7995,
                                              "type": "contract IUniswapV2Pair[] calldata",
                                              "value": "pairs"
                                            },
                                            "id": 8025,
                                            "name": "Identifier",
                                            "src": "1732:5:60"
                                          },
                                          {
                                            "attributes": {
                                              "argumentTypes": null,
                                              "overloadedDeclarations": [
                                                null
                                              ],
                                              "referencedDeclaration": 8011,
                                              "type": "uint256",
                                              "value": "i"
                                            },
                                            "id": 8026,
                                            "name": "Identifier",
                                            "src": "1738:1:60"
                                          }
                                        ],
                                        "id": 8027,
                                        "name": "IndexAccess",
                                        "src": "1732:8:60"
                                      }
                                    ],
                                    "id": 8028,
                                    "name": "MemberAccess",
                                    "src": "1732:20:60"
                                  }
                                ],
                                "id": 8029,
                                "name": "FunctionCall",
                                "src": "1732:22:60"
                              }
                            ],
                            "id": 8030,
                            "name": "VariableDeclarationStatement",
                            "src": "1697:57:60"
                          },
                          {
                            "children": [
                              {
                                "attributes": {
                                  "argumentTypes": null,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "operator": "=",
                                  "type": "struct RegistryHelperUniswapV2.PairState memory"
                                },
                                "children": [
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": true,
                                      "type": "struct RegistryHelperUniswapV2.PairState memory"
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 7999,
                                          "type": "struct RegistryHelperUniswapV2.PairState memory[] memory",
                                          "value": "result"
                                        },
                                        "id": 8031,
                                        "name": "Identifier",
                                        "src": "1768:6:60"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 8011,
                                          "type": "uint256",
                                          "value": "i"
                                        },
                                        "id": 8032,
                                        "name": "Identifier",
                                        "src": "1775:1:60"
                                      }
                                    ],
                                    "id": 8033,
                                    "name": "IndexAccess",
                                    "src": "1768:9:60"
                                  },
                                  {
                                    "attributes": {
                                      "argumentTypes": null,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "isStructConstructorCall": true,
                                      "lValueRequested": false,
                                      "names": [
                                        null
                                      ],
                                      "tryCall": false,
                                      "type": "struct RegistryHelperUniswapV2.PairState memory",
                                      "type_conversion": false
                                    },
                                    "children": [
                                      {
                                        "attributes": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            },
                                            {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          ],
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 7877,
                                          "type": "type(struct RegistryHelperUniswapV2.PairState storage pointer)",
                                          "value": "PairState"
                                        },
                                        "id": 8034,
                                        "name": "Identifier",
                                        "src": "1780:9:60"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 8022,
                                          "type": "uint256",
                                          "value": "reserve0"
                                        },
                                        "id": 8035,
                                        "name": "Identifier",
                                        "src": "1790:8:60"
                                      },
                                      {
                                        "attributes": {
                                          "argumentTypes": null,
                                          "overloadedDeclarations": [
                                            null
                                          ],
                                          "referencedDeclaration": 8024,
                                          "type": "uint256",
                                          "value": "reserve1"
                                        },
                                        "id": 8036,
                                        "name": "Identifier",
                                        "src": "1800:8:60"
                                      }
                                    ],
                                    "id": 8037,
                                    "name": "FunctionCall",
                                    "src": "1780:29:60"
                                  }
                                ],
                                "id": 8038,
                                "name": "Assignment",
                                "src": "1768:41:60"
                              }
                            ],
                            "id": 8039,
                            "name": "ExpressionStatement",
                            "src": "1768:41:60"
                          }
                        ],
                        "id": 8040,
                        "name": "Block",
                        "src": "1683:137:60"
                      }
                    ],
                    "id": 8041,
                    "name": "ForStatement",
                    "src": "1643:177:60"
                  }
                ],
                "id": 8042,
                "name": "Block",
                "src": "1585:241:60"
              }
            ],
            "id": 8043,
            "name": "FunctionDefinition",
            "src": "1466:360:60"
          }
        ],
        "id": 8044,
        "name": "ContractDefinition",
        "src": "196:1632:60"
      }
    ],
    "id": 8045,
    "name": "SourceUnit",
    "src": "32:1797:60"
  },
  "compiler": {
    "name": "solc",
    "version": "0.6.8+commit.0bbfe453.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "3.4.16",
  "updatedAt": "2025-02-07T17:50:42.855Z",
  "devdoc": {
    "methods": {}
  },
  "userdoc": {
    "methods": {}
  }
}