cfmms 0.6.2

CFMM lib built in Rust enabling pair syncing and swap simulation with pools on Ethereum.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
{
    "abi": [
        {
            "inputs": [
                {
                    "internalType": "uint256",
                    "name": "from",
                    "type": "uint256"
                },
                {
                    "internalType": "uint256",
                    "name": "step",
                    "type": "uint256"
                },
                {
                    "internalType": "address",
                    "name": "factory",
                    "type": "address"
                }
            ],
            "stateMutability": "nonpayable",
            "type": "constructor"
        }
    ],
    "bytecode": {
        "object": "0x608060405234801561001057600080fd5b5060405161051138038061051183398181016040528101906100329190610249565b6000838361004091906102cb565b905060008167ffffffffffffffff81111561005e5761005d6102ff565b5b60405190808252806020026020018201604052801561008c5781602001602082028036833780820191505090505b50905060005b82811015610181578373ffffffffffffffffffffffffffffffffffffffff16631e3dd18b82886100c2919061032e565b6040518263ffffffff1660e01b81526004016100de9190610371565b6020604051808303816000875af11580156100fd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610121919061038c565b828281518110610134576101336103b9565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508080610179906103e8565b915050610092565b5060008160405160200161019591906104ee565b60405160208183030381529060405290506020810180590381f35b600080fd5b6000819050919050565b6101c8816101b5565b81146101d357600080fd5b50565b6000815190506101e5816101bf565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000610216826101eb565b9050919050565b6102268161020b565b811461023157600080fd5b50565b6000815190506102438161021d565b92915050565b600080600060608486031215610262576102616101b0565b5b6000610270868287016101d6565b9350506020610281868287016101d6565b925050604061029286828701610234565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006102d6826101b5565b91506102e1836101b5565b92508282039050818111156102f9576102f861029c565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000610339826101b5565b9150610344836101b5565b925082820190508082111561035c5761035b61029c565b5b92915050565b61036b816101b5565b82525050565b60006020820190506103866000830184610362565b92915050565b6000602082840312156103a2576103a16101b0565b5b60006103b084828501610234565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006103f3826101b5565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036104255761042461029c565b5b600182019050919050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6104658161020b565b82525050565b6000610477838361045c565b60208301905092915050565b6000602082019050919050565b600061049b82610430565b6104a5818561043b565b93506104b08361044c565b8060005b838110156104e15781516104c8888261046b565b97506104d383610483565b9250506001810190506104b4565b5085935050505092915050565b600060208201905081810360008301526105088184610490565b90509291505056fe",
        "sourceMap": "1387:1020:2:-:0;;;1432:973;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1529:16;1555:4;1548;:11;;;;:::i;:::-;1529:30;;1656:25;1698:8;1684:23;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1656:51;;1759:9;1754:114;1778:8;1774:1;:12;1754:114;;;1830:7;1821:26;;;1855:1;1848:4;:8;;;;:::i;:::-;1821:36;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1807:8;1816:1;1807:11;;;;;;;;:::i;:::-;;;;;;;:50;;;;;;;;;;;1788:3;;;;;:::i;:::-;;;;1754:114;;;;2070:28;2112:8;2101:20;;;;;;;;:::i;:::-;;;;;;;;;;;;;2070:51;;2329:4;2312:15;2308:26;2378:9;2369:7;2365:23;2354:9;2347:42;88:117:4;197:1;194;187:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:143::-;602:5;633:6;627:13;618:22;;649:33;676:5;649:33;:::i;:::-;545:143;;;;:::o;694:126::-;731:7;771:42;764:5;760:54;749:65;;694:126;;;:::o;826:96::-;863:7;892:24;910:5;892:24;:::i;:::-;881:35;;826:96;;;:::o;928:122::-;1001:24;1019:5;1001:24;:::i;:::-;994:5;991:35;981:63;;1040:1;1037;1030:12;981:63;928:122;:::o;1056:143::-;1113:5;1144:6;1138:13;1129:22;;1160:33;1187:5;1160:33;:::i;:::-;1056:143;;;;:::o;1205:663::-;1293:6;1301;1309;1358:2;1346:9;1337:7;1333:23;1329:32;1326:119;;;1364:79;;:::i;:::-;1326:119;1484:1;1509:64;1565:7;1556:6;1545:9;1541:22;1509:64;:::i;:::-;1499:74;;1455:128;1622:2;1648:64;1704:7;1695:6;1684:9;1680:22;1648:64;:::i;:::-;1638:74;;1593:129;1761:2;1787:64;1843:7;1834:6;1823:9;1819:22;1787:64;:::i;:::-;1777:74;;1732:129;1205:663;;;;;:::o;1874:180::-;1922:77;1919:1;1912:88;2019:4;2016:1;2009:15;2043:4;2040:1;2033:15;2060:194;2100:4;2120:20;2138:1;2120:20;:::i;:::-;2115:25;;2154:20;2172:1;2154:20;:::i;:::-;2149:25;;2198:1;2195;2191:9;2183:17;;2222:1;2216:4;2213:11;2210:37;;;2227:18;;:::i;:::-;2210:37;2060:194;;;;:::o;2260:180::-;2308:77;2305:1;2298:88;2405:4;2402:1;2395:15;2429:4;2426:1;2419:15;2446:191;2486:3;2505:20;2523:1;2505:20;:::i;:::-;2500:25;;2539:20;2557:1;2539:20;:::i;:::-;2534:25;;2582:1;2579;2575:9;2568:16;;2603:3;2600:1;2597:10;2594:36;;;2610:18;;:::i;:::-;2594:36;2446:191;;;;:::o;2643:118::-;2730:24;2748:5;2730:24;:::i;:::-;2725:3;2718:37;2643:118;;:::o;2767:222::-;2860:4;2898:2;2887:9;2883:18;2875:26;;2911:71;2979:1;2968:9;2964:17;2955:6;2911:71;:::i;:::-;2767:222;;;;:::o;2995:351::-;3065:6;3114:2;3102:9;3093:7;3089:23;3085:32;3082:119;;;3120:79;;:::i;:::-;3082:119;3240:1;3265:64;3321:7;3312:6;3301:9;3297:22;3265:64;:::i;:::-;3255:74;;3211:128;2995:351;;;;:::o;3352:180::-;3400:77;3397:1;3390:88;3497:4;3494:1;3487:15;3521:4;3518:1;3511:15;3538:233;3577:3;3600:24;3618:5;3600:24;:::i;:::-;3591:33;;3646:66;3639:5;3636:77;3633:103;;3716:18;;:::i;:::-;3633:103;3763:1;3756:5;3752:13;3745:20;;3538:233;;;:::o;3777:114::-;3844:6;3878:5;3872:12;3862:22;;3777:114;;;:::o;3897:184::-;3996:11;4030:6;4025:3;4018:19;4070:4;4065:3;4061:14;4046:29;;3897:184;;;;:::o;4087:132::-;4154:4;4177:3;4169:11;;4207:4;4202:3;4198:14;4190:22;;4087:132;;;:::o;4225:108::-;4302:24;4320:5;4302:24;:::i;:::-;4297:3;4290:37;4225:108;;:::o;4339:179::-;4408:10;4429:46;4471:3;4463:6;4429:46;:::i;:::-;4507:4;4502:3;4498:14;4484:28;;4339:179;;;;:::o;4524:113::-;4594:4;4626;4621:3;4617:14;4609:22;;4524:113;;;:::o;4673:732::-;4792:3;4821:54;4869:5;4821:54;:::i;:::-;4891:86;4970:6;4965:3;4891:86;:::i;:::-;4884:93;;5001:56;5051:5;5001:56;:::i;:::-;5080:7;5111:1;5096:284;5121:6;5118:1;5115:13;5096:284;;;5197:6;5191:13;5224:63;5283:3;5268:13;5224:63;:::i;:::-;5217:70;;5310:60;5363:6;5310:60;:::i;:::-;5300:70;;5156:224;5143:1;5140;5136:9;5131:14;;5096:284;;;5100:14;5396:3;5389:10;;4797:608;;;4673:732;;;;:::o;5411:373::-;5554:4;5592:2;5581:9;5577:18;5569:26;;5641:9;5635:4;5631:20;5627:1;5616:9;5612:17;5605:47;5669:108;5772:4;5763:6;5669:108;:::i;:::-;5661:116;;5411:373;;;;:::o",
        "linkReferences": {}
    },
    "deployedBytecode": {
        "object": "0x6080604052600080fdfea26469706673582212202283e64a34222912c0f2e5b1140671965967e315bfc73dc25cf9a5c38f0aca8564736f6c63430008100033",
        "sourceMap": "1387:1020:2:-:0;;;;;",
        "linkReferences": {}
    },
    "methodIdentifiers": {},
    "rawMetadata": "{\"compiler\":{\"version\":\"0.8.16+commit.07a7930e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"from\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"step\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"factory\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"}],\"devdoc\":{\"details\":\"This contract is not meant to be deployed. Instead, use a static call with the deployment bytecode as payload.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/test/GasTest.t.sol\":\"GetUniswapV2PairsBatchRequest\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":10000},\"remappings\":[]},\"sources\":{\"lib/Console.sol\":{\"keccak256\":\"0xc8c3331c1465a493b682c06409fc70af5d8e05ec8fee2889c0bfef973a074f53\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7c5906d8a96726d805044870c473fa913e690ba90bfd1d69cce554c585233b4e\",\"dweb:/ipfs/Qmf1K4GNZckXSd96hQtZ8zvJLyer7oenPTUMWxAHpEatHJ\"]},\"lib/test.sol\":{\"keccak256\":\"0x3caf2fc40f6848cabffba2c1f68554e659e36f25e65ad9a647970253a5e872a0\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://f06eed59c9db910fe73c0b043d535b25e2b4ccfd9497e8e2e05fe4390b4cf121\",\"dweb:/ipfs/QmVSqDq3VNPypw9REwuREPsg51Tk7rhL7jsM3EtJeVuFsA\"]},\"src/test/GasTest.t.sol\":{\"keccak256\":\"0xe677fdc3c3c1bc802cec216fea56f1781a0c4b1bbbe887623d9b2c973941439c\",\"license\":\"UNLICENSED\",\"urls\":[\"bzz-raw://07404d265b29533743d6b8042fb3b064331e933c73aa07cf0d5e20606fd453ea\",\"dweb:/ipfs/QmR8mU4i5GZkSme7k85YGzYDBKrt7Jri6BfqWqZHo3Gj1w\"]}},\"version\":1}",
    "metadata": {
        "compiler": {
            "version": "0.8.16+commit.07a7930e"
        },
        "language": "Solidity",
        "output": {
            "abi": [
                {
                    "inputs": [
                        {
                            "internalType": "uint256",
                            "name": "from",
                            "type": "uint256"
                        },
                        {
                            "internalType": "uint256",
                            "name": "step",
                            "type": "uint256"
                        },
                        {
                            "internalType": "address",
                            "name": "factory",
                            "type": "address"
                        }
                    ],
                    "stateMutability": "nonpayable",
                    "type": "constructor"
                }
            ],
            "devdoc": {
                "kind": "dev",
                "methods": {},
                "version": 1
            },
            "userdoc": {
                "kind": "user",
                "methods": {},
                "version": 1
            }
        },
        "settings": {
            "remappings": [],
            "optimizer": {
                "enabled": false,
                "runs": 10000
            },
            "metadata": {
                "bytecodeHash": "ipfs"
            },
            "compilationTarget": {
                "src/test/GasTest.t.sol": "GetUniswapV2PairsBatchRequest"
            },
            "libraries": {}
        },
        "sources": {
            "lib/Console.sol": {
                "keccak256": "0xc8c3331c1465a493b682c06409fc70af5d8e05ec8fee2889c0bfef973a074f53",
                "urls": [
                    "bzz-raw://7c5906d8a96726d805044870c473fa913e690ba90bfd1d69cce554c585233b4e",
                    "dweb:/ipfs/Qmf1K4GNZckXSd96hQtZ8zvJLyer7oenPTUMWxAHpEatHJ"
                ],
                "license": "MIT"
            },
            "lib/test.sol": {
                "keccak256": "0x3caf2fc40f6848cabffba2c1f68554e659e36f25e65ad9a647970253a5e872a0",
                "urls": [
                    "bzz-raw://f06eed59c9db910fe73c0b043d535b25e2b4ccfd9497e8e2e05fe4390b4cf121",
                    "dweb:/ipfs/QmVSqDq3VNPypw9REwuREPsg51Tk7rhL7jsM3EtJeVuFsA"
                ],
                "license": "GPL-3.0-or-later"
            },
            "src/test/GasTest.t.sol": {
                "keccak256": "0xe677fdc3c3c1bc802cec216fea56f1781a0c4b1bbbe887623d9b2c973941439c",
                "urls": [
                    "bzz-raw://07404d265b29533743d6b8042fb3b064331e933c73aa07cf0d5e20606fd453ea",
                    "dweb:/ipfs/QmR8mU4i5GZkSme7k85YGzYDBKrt7Jri6BfqWqZHo3Gj1w"
                ],
                "license": "UNLICENSED"
            }
        },
        "version": 1
    },
    "ast": {
        "absolutePath": "src/test/GasTest.t.sol",
        "id": 9871,
        "exportedSymbols": {
            "DSTest": [
                9744
            ],
            "GasTest": [
                9800
            ],
            "GetUniswapV2PairsBatchRequest": [
                9870
            ],
            "IFactory": [
                9808
            ],
            "console": [
                8063
            ]
        },
        "nodeType": "SourceUnit",
        "src": "39:2369:2",
        "nodes": [
            {
                "id": 9746,
                "nodeType": "PragmaDirective",
                "src": "39:23:2",
                "nodes": [],
                "literals": [
                    "solidity",
                    "^",
                    "0.8",
                    ".0"
                ]
            },
            {
                "id": 9747,
                "nodeType": "ImportDirective",
                "src": "64:28:2",
                "nodes": [],
                "absolutePath": "lib/test.sol",
                "file": "../../lib/test.sol",
                "nameLocation": "-1:-1:-1",
                "scope": 9871,
                "sourceUnit": 9745,
                "symbolAliases": [],
                "unitAlias": ""
            },
            {
                "id": 9748,
                "nodeType": "ImportDirective",
                "src": "93:31:2",
                "nodes": [],
                "absolutePath": "lib/Console.sol",
                "file": "../../lib/Console.sol",
                "nameLocation": "-1:-1:-1",
                "scope": 9871,
                "sourceUnit": 8064,
                "symbolAliases": [],
                "unitAlias": ""
            },
            {
                "id": 9800,
                "nodeType": "ContractDefinition",
                "src": "126:1041:2",
                "nodes": [
                    {
                        "id": 9754,
                        "nodeType": "FunctionDefinition",
                        "src": "159:26:2",
                        "nodes": [],
                        "body": {
                            "id": 9753,
                            "nodeType": "Block",
                            "src": "183:2:2",
                            "nodes": [],
                            "statements": []
                        },
                        "functionSelector": "0a9254e4",
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [],
                        "name": "setUp",
                        "nameLocation": "168:5:2",
                        "parameters": {
                            "id": 9751,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "173:2:2"
                        },
                        "returnParameters": {
                            "id": 9752,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "183:0:2"
                        },
                        "scope": 9800,
                        "stateMutability": "nonpayable",
                        "virtual": false,
                        "visibility": "public"
                    },
                    {
                        "id": 9799,
                        "nodeType": "FunctionDefinition",
                        "src": "191:974:2",
                        "nodes": [],
                        "body": {
                            "id": 9798,
                            "nodeType": "Block",
                            "src": "217:948:2",
                            "nodes": [],
                            "statements": [
                                {
                                    "assignments": [
                                        9761
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 9761,
                                            "mutability": "mutable",
                                            "name": "pools",
                                            "nameLocation": "244:5:2",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 9798,
                                            "src": "227:22:2",
                                            "stateVariable": false,
                                            "storageLocation": "memory",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                                                "typeString": "address[]"
                                            },
                                            "typeName": {
                                                "baseType": {
                                                    "id": 9759,
                                                    "name": "address",
                                                    "nodeType": "ElementaryTypeName",
                                                    "src": "227:7:2",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                },
                                                "id": 9760,
                                                "nodeType": "ArrayTypeName",
                                                "src": "227:9:2",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                                                    "typeString": "address[]"
                                                }
                                            },
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 9767,
                                    "initialValue": {
                                        "arguments": [
                                            {
                                                "hexValue": "31",
                                                "id": 9765,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "number",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "266:1:2",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_rational_1_by_1",
                                                    "typeString": "int_const 1"
                                                },
                                                "value": "1"
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_rational_1_by_1",
                                                    "typeString": "int_const 1"
                                                }
                                            ],
                                            "id": 9764,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "lValueRequested": false,
                                            "nodeType": "NewExpression",
                                            "src": "252:13:2",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$",
                                                "typeString": "function (uint256) pure returns (address[] memory)"
                                            },
                                            "typeName": {
                                                "baseType": {
                                                    "id": 9762,
                                                    "name": "address",
                                                    "nodeType": "ElementaryTypeName",
                                                    "src": "256:7:2",
                                                    "stateMutability": "nonpayable",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                },
                                                "id": 9763,
                                                "nodeType": "ArrayTypeName",
                                                "src": "256:9:2",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                                                    "typeString": "address[]"
                                                }
                                            }
                                        },
                                        "id": 9766,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "nameLocations": [],
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "252:16:2",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                                            "typeString": "address[] memory"
                                        }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "227:41:2"
                                },
                                {
                                    "expression": {
                                        "id": 9775,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftHandSide": {
                                            "baseExpression": {
                                                "id": 9768,
                                                "name": "pools",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 9761,
                                                "src": "279:5:2",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                                                    "typeString": "address[] memory"
                                                }
                                            },
                                            "id": 9770,
                                            "indexExpression": {
                                                "hexValue": "30",
                                                "id": 9769,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "number",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "285:1:2",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_rational_0_by_1",
                                                    "typeString": "int_const 0"
                                                },
                                                "value": "0"
                                            },
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": true,
                                            "nodeType": "IndexAccess",
                                            "src": "279:8:2",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            }
                                        },
                                        "nodeType": "Assignment",
                                        "operator": "=",
                                        "rightHandSide": {
                                            "arguments": [
                                                {
                                                    "hexValue": "307830303030303030303030303030303030303030303030303030303030303030303030303062433830",
                                                    "id": 9773,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": true,
                                                    "kind": "number",
                                                    "lValueRequested": false,
                                                    "nodeType": "Literal",
                                                    "src": "298:42:2",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    },
                                                    "value": "0x000000000000000000000000000000000000bC80"
                                                }
                                            ],
                                            "expression": {
                                                "argumentTypes": [
                                                    {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                ],
                                                "id": 9772,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "lValueRequested": false,
                                                "nodeType": "ElementaryTypeNameExpression",
                                                "src": "290:7:2",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_type$_t_address_$",
                                                    "typeString": "type(address)"
                                                },
                                                "typeName": {
                                                    "id": 9771,
                                                    "name": "address",
                                                    "nodeType": "ElementaryTypeName",
                                                    "src": "290:7:2",
                                                    "typeDescriptions": {}
                                                }
                                            },
                                            "id": 9774,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "typeConversion",
                                            "lValueRequested": false,
                                            "nameLocations": [],
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "290:51:2",
                                            "tryCall": false,
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                            }
                                        },
                                        "src": "279:62:2",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "id": 9776,
                                    "nodeType": "ExpressionStatement",
                                    "src": "279:62:2"
                                },
                                {
                                    "assignments": [
                                        9779
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 9779,
                                            "mutability": "mutable",
                                            "name": "x",
                                            "nameLocation": "981:1:2",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 9798,
                                            "src": "951:31:2",
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_contract$_GetUniswapV2PairsBatchRequest_$9870",
                                                "typeString": "contract GetUniswapV2PairsBatchRequest"
                                            },
                                            "typeName": {
                                                "id": 9778,
                                                "nodeType": "UserDefinedTypeName",
                                                "pathNode": {
                                                    "id": 9777,
                                                    "name": "GetUniswapV2PairsBatchRequest",
                                                    "nameLocations": [
                                                        "951:29:2"
                                                    ],
                                                    "nodeType": "IdentifierPath",
                                                    "referencedDeclaration": 9870,
                                                    "src": "951:29:2"
                                                },
                                                "referencedDeclaration": 9870,
                                                "src": "951:29:2",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_contract$_GetUniswapV2PairsBatchRequest_$9870",
                                                    "typeString": "contract GetUniswapV2PairsBatchRequest"
                                                }
                                            },
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 9787,
                                    "initialValue": {
                                        "arguments": [
                                            {
                                                "hexValue": "31",
                                                "id": 9783,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "number",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "1032:1:2",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_rational_1_by_1",
                                                    "typeString": "int_const 1"
                                                },
                                                "value": "1"
                                            },
                                            {
                                                "hexValue": "32",
                                                "id": 9784,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "number",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "1047:1:2",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_rational_2_by_1",
                                                    "typeString": "int_const 2"
                                                },
                                                "value": "2"
                                            },
                                            {
                                                "hexValue": "307843304145653437386533363538653236313063354637413441324531373737634539653466324163",
                                                "id": 9785,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "number",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "1062:42:2",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                },
                                                "value": "0xC0AEe478e3658e2610c5F7A4A2E1777cE9e4f2Ac"
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_rational_1_by_1",
                                                    "typeString": "int_const 1"
                                                },
                                                {
                                                    "typeIdentifier": "t_rational_2_by_1",
                                                    "typeString": "int_const 2"
                                                },
                                                {
                                                    "typeIdentifier": "t_address",
                                                    "typeString": "address"
                                                }
                                            ],
                                            "id": 9782,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "nodeType": "NewExpression",
                                            "src": "985:33:2",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_creation_nonpayable$_t_uint256_$_t_uint256_$_t_address_$returns$_t_contract$_GetUniswapV2PairsBatchRequest_$9870_$",
                                                "typeString": "function (uint256,uint256,address) returns (contract GetUniswapV2PairsBatchRequest)"
                                            },
                                            "typeName": {
                                                "id": 9781,
                                                "nodeType": "UserDefinedTypeName",
                                                "pathNode": {
                                                    "id": 9780,
                                                    "name": "GetUniswapV2PairsBatchRequest",
                                                    "nameLocations": [
                                                        "989:29:2"
                                                    ],
                                                    "nodeType": "IdentifierPath",
                                                    "referencedDeclaration": 9870,
                                                    "src": "989:29:2"
                                                },
                                                "referencedDeclaration": 9870,
                                                "src": "989:29:2",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_contract$_GetUniswapV2PairsBatchRequest_$9870",
                                                    "typeString": "contract GetUniswapV2PairsBatchRequest"
                                                }
                                            }
                                        },
                                        "id": 9786,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "nameLocations": [],
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "985:129:2",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_contract$_GetUniswapV2PairsBatchRequest_$9870",
                                            "typeString": "contract GetUniswapV2PairsBatchRequest"
                                        }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "951:163:2"
                                },
                                {
                                    "expression": {
                                        "arguments": [
                                            {
                                                "expression": {
                                                    "arguments": [
                                                        {
                                                            "id": 9793,
                                                            "name": "x",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 9779,
                                                            "src": "1150:1:2",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_contract$_GetUniswapV2PairsBatchRequest_$9870",
                                                                "typeString": "contract GetUniswapV2PairsBatchRequest"
                                                            }
                                                        }
                                                    ],
                                                    "expression": {
                                                        "argumentTypes": [
                                                            {
                                                                "typeIdentifier": "t_contract$_GetUniswapV2PairsBatchRequest_$9870",
                                                                "typeString": "contract GetUniswapV2PairsBatchRequest"
                                                            }
                                                        ],
                                                        "id": 9792,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": true,
                                                        "lValueRequested": false,
                                                        "nodeType": "ElementaryTypeNameExpression",
                                                        "src": "1142:7:2",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_type$_t_address_$",
                                                            "typeString": "type(address)"
                                                        },
                                                        "typeName": {
                                                            "id": 9791,
                                                            "name": "address",
                                                            "nodeType": "ElementaryTypeName",
                                                            "src": "1142:7:2",
                                                            "typeDescriptions": {}
                                                        }
                                                    },
                                                    "id": 9794,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "kind": "typeConversion",
                                                    "lValueRequested": false,
                                                    "nameLocations": [],
                                                    "names": [],
                                                    "nodeType": "FunctionCall",
                                                    "src": "1142:10:2",
                                                    "tryCall": false,
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                },
                                                "id": 9795,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": false,
                                                "lValueRequested": false,
                                                "memberLocation": "1153:4:2",
                                                "memberName": "code",
                                                "nodeType": "MemberAccess",
                                                "src": "1142:15:2",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes_memory_ptr",
                                                    "typeString": "bytes memory"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_bytes_memory_ptr",
                                                    "typeString": "bytes memory"
                                                }
                                            ],
                                            "expression": {
                                                "id": 9788,
                                                "name": "console",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 8063,
                                                "src": "1125:7:2",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_type$_t_contract$_console_$8063_$",
                                                    "typeString": "type(library console)"
                                                }
                                            },
                                            "id": 9790,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "memberLocation": "1133:8:2",
                                            "memberName": "logBytes",
                                            "nodeType": "MemberAccess",
                                            "referencedDeclaration": 118,
                                            "src": "1125:16:2",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_view$_t_bytes_memory_ptr_$returns$__$",
                                                "typeString": "function (bytes memory) view"
                                            }
                                        },
                                        "id": 9796,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "nameLocations": [],
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "1125:33:2",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                        }
                                    },
                                    "id": 9797,
                                    "nodeType": "ExpressionStatement",
                                    "src": "1125:33:2"
                                }
                            ]
                        },
                        "functionSelector": "4a6661ff",
                        "implemented": true,
                        "kind": "function",
                        "modifiers": [],
                        "name": "testGas",
                        "nameLocation": "200:7:2",
                        "parameters": {
                            "id": 9755,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "207:2:2"
                        },
                        "returnParameters": {
                            "id": 9756,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "217:0:2"
                        },
                        "scope": 9800,
                        "stateMutability": "nonpayable",
                        "virtual": false,
                        "visibility": "public"
                    }
                ],
                "abstract": false,
                "baseContracts": [
                    {
                        "baseName": {
                            "id": 9749,
                            "name": "DSTest",
                            "nameLocations": [
                                "146:6:2"
                            ],
                            "nodeType": "IdentifierPath",
                            "referencedDeclaration": 9744,
                            "src": "146:6:2"
                        },
                        "id": 9750,
                        "nodeType": "InheritanceSpecifier",
                        "src": "146:6:2"
                    }
                ],
                "canonicalName": "GasTest",
                "contractDependencies": [
                    9870
                ],
                "contractKind": "contract",
                "fullyImplemented": true,
                "linearizedBaseContracts": [
                    9800,
                    9744
                ],
                "name": "GasTest",
                "nameLocation": "135:7:2",
                "scope": 9871,
                "usedErrors": []
            },
            {
                "id": 9808,
                "nodeType": "ContractDefinition",
                "src": "1169:85:2",
                "nodes": [
                    {
                        "id": 9807,
                        "nodeType": "FunctionDefinition",
                        "src": "1194:58:2",
                        "nodes": [],
                        "functionSelector": "1e3dd18b",
                        "implemented": false,
                        "kind": "function",
                        "modifiers": [],
                        "name": "allPairs",
                        "nameLocation": "1203:8:2",
                        "parameters": {
                            "id": 9803,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 9802,
                                    "mutability": "mutable",
                                    "name": "idx",
                                    "nameLocation": "1220:3:2",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 9807,
                                    "src": "1212:11:2",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 9801,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "1212:7:2",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "visibility": "internal"
                                }
                            ],
                            "src": "1211:13:2"
                        },
                        "returnParameters": {
                            "id": 9806,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 9805,
                                    "mutability": "mutable",
                                    "name": "",
                                    "nameLocation": "-1:-1:-1",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 9807,
                                    "src": "1243:7:2",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 9804,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "1243:7:2",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "visibility": "internal"
                                }
                            ],
                            "src": "1242:9:2"
                        },
                        "scope": 9808,
                        "stateMutability": "nonpayable",
                        "virtual": false,
                        "visibility": "external"
                    }
                ],
                "abstract": false,
                "baseContracts": [],
                "canonicalName": "IFactory",
                "contractDependencies": [],
                "contractKind": "interface",
                "fullyImplemented": false,
                "linearizedBaseContracts": [
                    9808
                ],
                "name": "IFactory",
                "nameLocation": "1179:8:2",
                "scope": 9871,
                "usedErrors": []
            },
            {
                "id": 9870,
                "nodeType": "ContractDefinition",
                "src": "1387:1020:2",
                "nodes": [
                    {
                        "id": 9869,
                        "nodeType": "FunctionDefinition",
                        "src": "1432:973:2",
                        "nodes": [],
                        "body": {
                            "id": 9868,
                            "nodeType": "Block",
                            "src": "1519:886:2",
                            "nodes": [],
                            "statements": [
                                {
                                    "assignments": [
                                        9819
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 9819,
                                            "mutability": "mutable",
                                            "name": "distance",
                                            "nameLocation": "1537:8:2",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 9868,
                                            "src": "1529:16:2",
                                            "stateVariable": false,
                                            "storageLocation": "default",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            },
                                            "typeName": {
                                                "id": 9818,
                                                "name": "uint256",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "1529:7:2",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 9823,
                                    "initialValue": {
                                        "commonType": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        },
                                        "id": 9822,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                            "id": 9820,
                                            "name": "step",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 9813,
                                            "src": "1548:4:2",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": "-",
                                        "rightExpression": {
                                            "id": 9821,
                                            "name": "from",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 9811,
                                            "src": "1555:4:2",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "src": "1548:11:2",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "1529:30:2"
                                },
                                {
                                    "assignments": [
                                        9828
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 9828,
                                            "mutability": "mutable",
                                            "name": "allPairs",
                                            "nameLocation": "1673:8:2",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 9868,
                                            "src": "1656:25:2",
                                            "stateVariable": false,
                                            "storageLocation": "memory",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                                                "typeString": "address[]"
                                            },
                                            "typeName": {
                                                "baseType": {
                                                    "id": 9826,
                                                    "name": "address",
                                                    "nodeType": "ElementaryTypeName",
                                                    "src": "1656:7:2",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                },
                                                "id": 9827,
                                                "nodeType": "ArrayTypeName",
                                                "src": "1656:9:2",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                                                    "typeString": "address[]"
                                                }
                                            },
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 9834,
                                    "initialValue": {
                                        "arguments": [
                                            {
                                                "id": 9832,
                                                "name": "distance",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 9819,
                                                "src": "1698:8:2",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            ],
                                            "id": 9831,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "lValueRequested": false,
                                            "nodeType": "NewExpression",
                                            "src": "1684:13:2",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$",
                                                "typeString": "function (uint256) pure returns (address[] memory)"
                                            },
                                            "typeName": {
                                                "baseType": {
                                                    "id": 9829,
                                                    "name": "address",
                                                    "nodeType": "ElementaryTypeName",
                                                    "src": "1688:7:2",
                                                    "stateMutability": "nonpayable",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                },
                                                "id": 9830,
                                                "nodeType": "ArrayTypeName",
                                                "src": "1688:9:2",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                                                    "typeString": "address[]"
                                                }
                                            }
                                        },
                                        "id": 9833,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "nameLocations": [],
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "1684:23:2",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                                            "typeString": "address[] memory"
                                        }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "1656:51:2"
                                },
                                {
                                    "body": {
                                        "id": 9858,
                                        "nodeType": "Block",
                                        "src": "1793:75:2",
                                        "statements": [
                                            {
                                                "expression": {
                                                    "id": 9856,
                                                    "isConstant": false,
                                                    "isLValue": false,
                                                    "isPure": false,
                                                    "lValueRequested": false,
                                                    "leftHandSide": {
                                                        "baseExpression": {
                                                            "id": 9845,
                                                            "name": "allPairs",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 9828,
                                                            "src": "1807:8:2",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                                                                "typeString": "address[] memory"
                                                            }
                                                        },
                                                        "id": 9847,
                                                        "indexExpression": {
                                                            "id": 9846,
                                                            "name": "i",
                                                            "nodeType": "Identifier",
                                                            "overloadedDeclarations": [],
                                                            "referencedDeclaration": 9836,
                                                            "src": "1816:1:2",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_uint256",
                                                                "typeString": "uint256"
                                                            }
                                                        },
                                                        "isConstant": false,
                                                        "isLValue": true,
                                                        "isPure": false,
                                                        "lValueRequested": true,
                                                        "nodeType": "IndexAccess",
                                                        "src": "1807:11:2",
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    "nodeType": "Assignment",
                                                    "operator": "=",
                                                    "rightHandSide": {
                                                        "arguments": [
                                                            {
                                                                "commonType": {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                },
                                                                "id": 9854,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "lValueRequested": false,
                                                                "leftExpression": {
                                                                    "id": 9852,
                                                                    "name": "from",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 9811,
                                                                    "src": "1848:4:2",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_uint256",
                                                                        "typeString": "uint256"
                                                                    }
                                                                },
                                                                "nodeType": "BinaryOperation",
                                                                "operator": "+",
                                                                "rightExpression": {
                                                                    "id": 9853,
                                                                    "name": "i",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 9836,
                                                                    "src": "1855:1:2",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_uint256",
                                                                        "typeString": "uint256"
                                                                    }
                                                                },
                                                                "src": "1848:8:2",
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            }
                                                        ],
                                                        "expression": {
                                                            "argumentTypes": [
                                                                {
                                                                    "typeIdentifier": "t_uint256",
                                                                    "typeString": "uint256"
                                                                }
                                                            ],
                                                            "expression": {
                                                                "arguments": [
                                                                    {
                                                                        "id": 9849,
                                                                        "name": "factory",
                                                                        "nodeType": "Identifier",
                                                                        "overloadedDeclarations": [],
                                                                        "referencedDeclaration": 9815,
                                                                        "src": "1830:7:2",
                                                                        "typeDescriptions": {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        }
                                                                    }
                                                                ],
                                                                "expression": {
                                                                    "argumentTypes": [
                                                                        {
                                                                            "typeIdentifier": "t_address",
                                                                            "typeString": "address"
                                                                        }
                                                                    ],
                                                                    "id": 9848,
                                                                    "name": "IFactory",
                                                                    "nodeType": "Identifier",
                                                                    "overloadedDeclarations": [],
                                                                    "referencedDeclaration": 9808,
                                                                    "src": "1821:8:2",
                                                                    "typeDescriptions": {
                                                                        "typeIdentifier": "t_type$_t_contract$_IFactory_$9808_$",
                                                                        "typeString": "type(contract IFactory)"
                                                                    }
                                                                },
                                                                "id": 9850,
                                                                "isConstant": false,
                                                                "isLValue": false,
                                                                "isPure": false,
                                                                "kind": "typeConversion",
                                                                "lValueRequested": false,
                                                                "nameLocations": [],
                                                                "names": [],
                                                                "nodeType": "FunctionCall",
                                                                "src": "1821:17:2",
                                                                "tryCall": false,
                                                                "typeDescriptions": {
                                                                    "typeIdentifier": "t_contract$_IFactory_$9808",
                                                                    "typeString": "contract IFactory"
                                                                }
                                                            },
                                                            "id": 9851,
                                                            "isConstant": false,
                                                            "isLValue": false,
                                                            "isPure": false,
                                                            "lValueRequested": false,
                                                            "memberLocation": "1839:8:2",
                                                            "memberName": "allPairs",
                                                            "nodeType": "MemberAccess",
                                                            "referencedDeclaration": 9807,
                                                            "src": "1821:26:2",
                                                            "typeDescriptions": {
                                                                "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$_t_address_$",
                                                                "typeString": "function (uint256) external returns (address)"
                                                            }
                                                        },
                                                        "id": 9855,
                                                        "isConstant": false,
                                                        "isLValue": false,
                                                        "isPure": false,
                                                        "kind": "functionCall",
                                                        "lValueRequested": false,
                                                        "nameLocations": [],
                                                        "names": [],
                                                        "nodeType": "FunctionCall",
                                                        "src": "1821:36:2",
                                                        "tryCall": false,
                                                        "typeDescriptions": {
                                                            "typeIdentifier": "t_address",
                                                            "typeString": "address"
                                                        }
                                                    },
                                                    "src": "1807:50:2",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_address",
                                                        "typeString": "address"
                                                    }
                                                },
                                                "id": 9857,
                                                "nodeType": "ExpressionStatement",
                                                "src": "1807:50:2"
                                            }
                                        ]
                                    },
                                    "condition": {
                                        "commonType": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        },
                                        "id": 9841,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "leftExpression": {
                                            "id": 9839,
                                            "name": "i",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 9836,
                                            "src": "1774:1:2",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "nodeType": "BinaryOperation",
                                        "operator": "<",
                                        "rightExpression": {
                                            "id": 9840,
                                            "name": "distance",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 9819,
                                            "src": "1778:8:2",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "src": "1774:12:2",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bool",
                                            "typeString": "bool"
                                        }
                                    },
                                    "id": 9859,
                                    "initializationExpression": {
                                        "assignments": [
                                            9836
                                        ],
                                        "declarations": [
                                            {
                                                "constant": false,
                                                "id": 9836,
                                                "mutability": "mutable",
                                                "name": "i",
                                                "nameLocation": "1767:1:2",
                                                "nodeType": "VariableDeclaration",
                                                "scope": 9859,
                                                "src": "1759:9:2",
                                                "stateVariable": false,
                                                "storageLocation": "default",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                },
                                                "typeName": {
                                                    "id": 9835,
                                                    "name": "uint256",
                                                    "nodeType": "ElementaryTypeName",
                                                    "src": "1759:7:2",
                                                    "typeDescriptions": {
                                                        "typeIdentifier": "t_uint256",
                                                        "typeString": "uint256"
                                                    }
                                                },
                                                "visibility": "internal"
                                            }
                                        ],
                                        "id": 9838,
                                        "initialValue": {
                                            "hexValue": "30",
                                            "id": 9837,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "number",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "1771:1:2",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_rational_0_by_1",
                                                "typeString": "int_const 0"
                                            },
                                            "value": "0"
                                        },
                                        "nodeType": "VariableDeclarationStatement",
                                        "src": "1759:13:2"
                                    },
                                    "loopExpression": {
                                        "expression": {
                                            "id": 9843,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "nodeType": "UnaryOperation",
                                            "operator": "++",
                                            "prefix": false,
                                            "src": "1788:3:2",
                                            "subExpression": {
                                                "id": 9842,
                                                "name": "i",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 9836,
                                                "src": "1788:1:2",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_uint256",
                                                    "typeString": "uint256"
                                                }
                                            },
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                            }
                                        },
                                        "id": 9844,
                                        "nodeType": "ExpressionStatement",
                                        "src": "1788:3:2"
                                    },
                                    "nodeType": "ForStatement",
                                    "src": "1754:114:2"
                                },
                                {
                                    "assignments": [
                                        9861
                                    ],
                                    "declarations": [
                                        {
                                            "constant": false,
                                            "id": 9861,
                                            "mutability": "mutable",
                                            "name": "_abiEncodedData",
                                            "nameLocation": "2083:15:2",
                                            "nodeType": "VariableDeclaration",
                                            "scope": 9868,
                                            "src": "2070:28:2",
                                            "stateVariable": false,
                                            "storageLocation": "memory",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_bytes_memory_ptr",
                                                "typeString": "bytes"
                                            },
                                            "typeName": {
                                                "id": 9860,
                                                "name": "bytes",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "2070:5:2",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_bytes_storage_ptr",
                                                    "typeString": "bytes"
                                                }
                                            },
                                            "visibility": "internal"
                                        }
                                    ],
                                    "id": 9866,
                                    "initialValue": {
                                        "arguments": [
                                            {
                                                "id": 9864,
                                                "name": "allPairs",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 9828,
                                                "src": "2112:8:2",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                                                    "typeString": "address[] memory"
                                                }
                                            }
                                        ],
                                        "expression": {
                                            "argumentTypes": [
                                                {
                                                    "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr",
                                                    "typeString": "address[] memory"
                                                }
                                            ],
                                            "expression": {
                                                "id": 9862,
                                                "name": "abi",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": -1,
                                                "src": "2101:3:2",
                                                "typeDescriptions": {
                                                    "typeIdentifier": "t_magic_abi",
                                                    "typeString": "abi"
                                                }
                                            },
                                            "id": 9863,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "lValueRequested": false,
                                            "memberLocation": "2105:6:2",
                                            "memberName": "encode",
                                            "nodeType": "MemberAccess",
                                            "src": "2101:10:2",
                                            "typeDescriptions": {
                                                "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$",
                                                "typeString": "function () pure returns (bytes memory)"
                                            }
                                        },
                                        "id": 9865,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "nameLocations": [],
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "2101:20:2",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_bytes_memory_ptr",
                                            "typeString": "bytes memory"
                                        }
                                    },
                                    "nodeType": "VariableDeclarationStatement",
                                    "src": "2070:51:2"
                                },
                                {
                                    "AST": {
                                        "nodeType": "YulBlock",
                                        "src": "2141:258:2",
                                        "statements": [
                                            {
                                                "nodeType": "YulVariableDeclaration",
                                                "src": "2291:43:2",
                                                "value": {
                                                    "arguments": [
                                                        {
                                                            "name": "_abiEncodedData",
                                                            "nodeType": "YulIdentifier",
                                                            "src": "2312:15:2"
                                                        },
                                                        {
                                                            "kind": "number",
                                                            "nodeType": "YulLiteral",
                                                            "src": "2329:4:2",
                                                            "type": "",
                                                            "value": "0x20"
                                                        }
                                                    ],
                                                    "functionName": {
                                                        "name": "add",
                                                        "nodeType": "YulIdentifier",
                                                        "src": "2308:3:2"
                                                    },
                                                    "nodeType": "YulFunctionCall",
                                                    "src": "2308:26:2"
                                                },
                                                "variables": [
                                                    {
                                                        "name": "dataStart",
                                                        "nodeType": "YulTypedName",
                                                        "src": "2295:9:2",
                                                        "type": ""
                                                    }
                                                ]
                                            },
                                            {
                                                "expression": {
                                                    "arguments": [
                                                        {
                                                            "name": "dataStart",
                                                            "nodeType": "YulIdentifier",
                                                            "src": "2354:9:2"
                                                        },
                                                        {
                                                            "arguments": [
                                                                {
                                                                    "arguments": [],
                                                                    "functionName": {
                                                                        "name": "msize",
                                                                        "nodeType": "YulIdentifier",
                                                                        "src": "2369:5:2"
                                                                    },
                                                                    "nodeType": "YulFunctionCall",
                                                                    "src": "2369:7:2"
                                                                },
                                                                {
                                                                    "name": "dataStart",
                                                                    "nodeType": "YulIdentifier",
                                                                    "src": "2378:9:2"
                                                                }
                                                            ],
                                                            "functionName": {
                                                                "name": "sub",
                                                                "nodeType": "YulIdentifier",
                                                                "src": "2365:3:2"
                                                            },
                                                            "nodeType": "YulFunctionCall",
                                                            "src": "2365:23:2"
                                                        }
                                                    ],
                                                    "functionName": {
                                                        "name": "return",
                                                        "nodeType": "YulIdentifier",
                                                        "src": "2347:6:2"
                                                    },
                                                    "nodeType": "YulFunctionCall",
                                                    "src": "2347:42:2"
                                                },
                                                "nodeType": "YulExpressionStatement",
                                                "src": "2347:42:2"
                                            }
                                        ]
                                    },
                                    "evmVersion": "london",
                                    "externalReferences": [
                                        {
                                            "declaration": 9861,
                                            "isOffset": false,
                                            "isSlot": false,
                                            "src": "2312:15:2",
                                            "valueSize": 1
                                        }
                                    ],
                                    "id": 9867,
                                    "nodeType": "InlineAssembly",
                                    "src": "2132:267:2"
                                }
                            ]
                        },
                        "implemented": true,
                        "kind": "constructor",
                        "modifiers": [],
                        "name": "",
                        "nameLocation": "-1:-1:-1",
                        "parameters": {
                            "id": 9816,
                            "nodeType": "ParameterList",
                            "parameters": [
                                {
                                    "constant": false,
                                    "id": 9811,
                                    "mutability": "mutable",
                                    "name": "from",
                                    "nameLocation": "1461:4:2",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 9869,
                                    "src": "1453:12:2",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 9810,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "1453:7:2",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 9813,
                                    "mutability": "mutable",
                                    "name": "step",
                                    "nameLocation": "1483:4:2",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 9869,
                                    "src": "1475:12:2",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                    },
                                    "typeName": {
                                        "id": 9812,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "1475:7:2",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                        }
                                    },
                                    "visibility": "internal"
                                },
                                {
                                    "constant": false,
                                    "id": 9815,
                                    "mutability": "mutable",
                                    "name": "factory",
                                    "nameLocation": "1505:7:2",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 9869,
                                    "src": "1497:15:2",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                    },
                                    "typeName": {
                                        "id": 9814,
                                        "name": "address",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "1497:7:2",
                                        "stateMutability": "nonpayable",
                                        "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                        }
                                    },
                                    "visibility": "internal"
                                }
                            ],
                            "src": "1443:75:2"
                        },
                        "returnParameters": {
                            "id": 9817,
                            "nodeType": "ParameterList",
                            "parameters": [],
                            "src": "1519:0:2"
                        },
                        "scope": 9870,
                        "stateMutability": "nonpayable",
                        "virtual": false,
                        "visibility": "public"
                    }
                ],
                "abstract": false,
                "baseContracts": [],
                "canonicalName": "GetUniswapV2PairsBatchRequest",
                "contractDependencies": [],
                "contractKind": "contract",
                "documentation": {
                    "id": 9809,
                    "nodeType": "StructuredDocumentation",
                    "src": "1256:130:2",
                    "text": "@dev This contract is not meant to be deployed. Instead, use a static call with the\ndeployment bytecode as payload."
                },
                "fullyImplemented": true,
                "linearizedBaseContracts": [
                    9870
                ],
                "name": "GetUniswapV2PairsBatchRequest",
                "nameLocation": "1396:29:2",
                "scope": 9871,
                "usedErrors": []
            }
        ],
        "license": "UNLICENSED"
    },
    "id": 2
}