-
Notifications
You must be signed in to change notification settings - Fork 27
Expand file tree
/
Copy pathconfig.py
More file actions
865 lines (818 loc) · 226 KB
/
config.py
File metadata and controls
865 lines (818 loc) · 226 KB
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
from utils.tools import get_accounts_data
ACROSS_ABI = {
'router': [{"inputs":[{"internalType":"contract SpokePoolInterface","name":"spokePool","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"address","name":"originToken","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"destinationChainId","type":"uint256"},{"internalType":"int64","name":"relayerFeePct","type":"int64"},{"internalType":"uint32","name":"quoteTimestamp","type":"uint32"},{"internalType":"bytes","name":"message","type":"bytes"},{"internalType":"uint256","name":"maxCount","type":"uint256"}],"name":"deposit","outputs":[],"stateMutability":"payable","type":"function"}],
'pool': [{'anonymous': False, 'inputs': [{'indexed': False, 'internalType': 'address', 'name': 'previousAdmin', 'type': 'address'}, {'indexed': False, 'internalType': 'address', 'name': 'newAdmin', 'type': 'address'}], 'name': 'AdminChanged', 'type': 'event'}, {'anonymous': False, 'inputs': [{'indexed': True, 'internalType': 'address', 'name': 'beacon', 'type': 'address'}], 'name': 'BeaconUpgraded', 'type': 'event'}, {'anonymous': False, 'inputs': [{'indexed': True, 'internalType': 'uint256', 'name': 'rootBundleId', 'type': 'uint256'}], 'name': 'EmergencyDeleteRootBundle', 'type': 'event'}, {'anonymous': False, 'inputs': [{'indexed': True, 'internalType': 'address', 'name': 'originToken', 'type': 'address'}, {'indexed': True, 'internalType': 'uint256', 'name': 'destinationChainId', 'type': 'uint256'}, {'indexed': False, 'internalType': 'bool', 'name': 'enabled', 'type': 'bool'}], 'name': 'EnabledDepositRoute', 'type': 'event'}, {'anonymous': False, 'inputs': [{'indexed': False, 'internalType': 'uint256', 'name': 'amountToReturn', 'type': 'uint256'}, {'indexed': True, 'internalType': 'uint256', 'name': 'chainId', 'type': 'uint256'}, {'indexed': False, 'internalType': 'uint256[]', 'name': 'refundAmounts', 'type': 'uint256[]'}, {'indexed': True, 'internalType': 'uint32', 'name': 'rootBundleId', 'type': 'uint32'}, {'indexed': True, 'internalType': 'uint32', 'name': 'leafId', 'type': 'uint32'}, {'indexed': False, 'internalType': 'address', 'name': 'l2TokenAddress', 'type': 'address'}, {'indexed': False, 'internalType': 'address[]', 'name': 'refundAddresses', 'type': 'address[]'}, {'indexed': False, 'internalType': 'address', 'name': 'caller', 'type': 'address'}], 'name': 'ExecutedRelayerRefundRoot', 'type': 'event'}, {'anonymous': False, 'inputs': [{'indexed': False, 'internalType': 'uint256', 'name': 'amount', 'type': 'uint256'}, {'indexed': False, 'internalType': 'uint256', 'name': 'totalFilledAmount', 'type': 'uint256'}, {'indexed': False, 'internalType': 'uint256', 'name': 'fillAmount', 'type': 'uint256'}, {'indexed': False, 'internalType': 'uint256', 'name': 'repaymentChainId', 'type': 'uint256'}, {'indexed': True, 'internalType': 'uint256', 'name': 'originChainId', 'type': 'uint256'}, {'indexed': False, 'internalType': 'uint256', 'name': 'destinationChainId', 'type': 'uint256'}, {'indexed': False, 'internalType': 'int64', 'name': 'relayerFeePct', 'type': 'int64'}, {'indexed': False, 'internalType': 'int64', 'name': 'realizedLpFeePct', 'type': 'int64'}, {'indexed': True, 'internalType': 'uint32', 'name': 'depositId', 'type': 'uint32'}, {'indexed': False, 'internalType': 'address', 'name': 'destinationToken', 'type': 'address'}, {'indexed': False, 'internalType': 'address', 'name': 'relayer', 'type': 'address'}, {'indexed': True, 'internalType': 'address', 'name': 'depositor', 'type': 'address'}, {'indexed': False, 'internalType': 'address', 'name': 'recipient', 'type': 'address'}, {'indexed': False, 'internalType': 'bytes', 'name': 'message', 'type': 'bytes'}, {'components': [{'internalType': 'address', 'name': 'recipient', 'type': 'address'}, {'internalType': 'bytes', 'name': 'message', 'type': 'bytes'}, {'internalType': 'int64', 'name': 'relayerFeePct', 'type': 'int64'}, {'internalType': 'bool', 'name': 'isSlowRelay', 'type': 'bool'}, {'internalType': 'int256', 'name': 'payoutAdjustmentPct', 'type': 'int256'}], 'indexed': False, 'internalType': 'struct SpokePool.RelayExecutionInfo', 'name': 'updatableRelayData', 'type': 'tuple'}], 'name': 'FilledRelay', 'type': 'event'}, {'anonymous': False, 'inputs': [{'indexed': False, 'internalType': 'uint256', 'name': 'amount', 'type': 'uint256'}, {'indexed': False, 'internalType': 'uint256', 'name': 'originChainId', 'type': 'uint256'}, {'indexed': True, 'internalType': 'uint256', 'name': 'destinationChainId', 'type': 'uint256'}, {'indexed': False, 'internalType': 'int64', 'name': 'relayerFeePct', 'type': 'int64'}, {'indexed': True, 'internalType': 'uint32', 'name': 'depositId', 'type': 'uint32'}, {'indexed': False, 'internalType': 'uint32', 'name': 'quoteTimestamp', 'type': 'uint32'}, {'indexed': False, 'internalType': 'address', 'name': 'originToken', 'type': 'address'}, {'indexed': False, 'internalType': 'address', 'name': 'recipient', 'type': 'address'}, {'indexed': True, 'internalType': 'address', 'name': 'depositor', 'type': 'address'}, {'indexed': False, 'internalType': 'bytes', 'name': 'message', 'type': 'bytes'}], 'name': 'FundsDeposited', 'type': 'event'}, {'anonymous': False, 'inputs': [{'indexed': False, 'internalType': 'uint8', 'name': 'version', 'type': 'uint8'}], 'name': 'Initialized', 'type': 'event'}, {'anonymous': False, 'inputs': [{'indexed': True, 'internalType': 'address', 'name': 'previousOwner', 'type': 'address'}, {'indexed': True, 'internalType': 'address', 'name': 'newOwner', 'type': 'address'}], 'name': 'OwnershipTransferred', 'type': 'event'}, {'anonymous': False, 'inputs': [{'indexed': False, 'internalType': 'bool', 'name': 'isPaused', 'type': 'bool'}], 'name': 'PausedDeposits', 'type': 'event'}, {'anonymous': False, 'inputs': [{'indexed': False, 'internalType': 'bool', 'name': 'isPaused', 'type': 'bool'}], 'name': 'PausedFills', 'type': 'event'}, {'anonymous': False, 'inputs': [{'indexed': True, 'internalType': 'address', 'name': 'relayer', 'type': 'address'}, {'indexed': False, 'internalType': 'address', 'name': 'refundToken', 'type': 'address'}, {'indexed': False, 'internalType': 'uint256', 'name': 'amount', 'type': 'uint256'}, {'indexed': True, 'internalType': 'uint256', 'name': 'originChainId', 'type': 'uint256'}, {'indexed': False, 'internalType': 'uint256', 'name': 'destinationChainId', 'type': 'uint256'}, {'indexed': False, 'internalType': 'int64', 'name': 'realizedLpFeePct', 'type': 'int64'}, {'indexed': True, 'internalType': 'uint32', 'name': 'depositId', 'type': 'uint32'}, {'indexed': False, 'internalType': 'uint256', 'name': 'fillBlock', 'type': 'uint256'}, {'indexed': False, 'internalType': 'uint256', 'name': 'previousIdenticalRequests', 'type': 'uint256'}], 'name': 'RefundRequested', 'type': 'event'}, {'anonymous': False, 'inputs': [{'indexed': True, 'internalType': 'uint32', 'name': 'rootBundleId', 'type': 'uint32'}, {'indexed': True, 'internalType': 'bytes32', 'name': 'relayerRefundRoot', 'type': 'bytes32'}, {'indexed': True, 'internalType': 'bytes32', 'name': 'slowRelayRoot', 'type': 'bytes32'}], 'name': 'RelayedRootBundle', 'type': 'event'}, {'anonymous': False, 'inputs': [{'indexed': False, 'internalType': 'int64', 'name': 'newRelayerFeePct', 'type': 'int64'}, {'indexed': True, 'internalType': 'uint32', 'name': 'depositId', 'type': 'uint32'}, {'indexed': True, 'internalType': 'address', 'name': 'depositor', 'type': 'address'}, {'indexed': False, 'internalType': 'address', 'name': 'updatedRecipient', 'type': 'address'}, {'indexed': False, 'internalType': 'bytes', 'name': 'updatedMessage', 'type': 'bytes'}, {'indexed': False, 'internalType': 'bytes', 'name': 'depositorSignature', 'type': 'bytes'}], 'name': 'RequestedSpeedUpDeposit', 'type': 'event'}, {'anonymous': False, 'inputs': [{'indexed': False, 'internalType': 'uint32', 'name': 'newBuffer', 'type': 'uint32'}], 'name': 'SetDepositQuoteTimeBuffer', 'type': 'event'}, {'anonymous': False, 'inputs': [{'indexed': True, 'internalType': 'address', 'name': 'newHubPool', 'type': 'address'}], 'name': 'SetHubPool', 'type': 'event'}, {'anonymous': False, 'inputs': [{'indexed': True, 'internalType': 'address', 'name': 'newAdmin', 'type': 'address'}], 'name': 'SetXDomainAdmin', 'type': 'event'}, {'anonymous': False, 'inputs': [{'indexed': False, 'internalType': 'uint256', 'name': 'amountToReturn', 'type': 'uint256'}, {'indexed': True, 'internalType': 'uint256', 'name': 'chainId', 'type': 'uint256'}, {'indexed': True, 'internalType': 'uint32', 'name': 'leafId', 'type': 'uint32'}, {'indexed': True, 'internalType': 'address', 'name': 'l2TokenAddress', 'type': 'address'}, {'indexed': False, 'internalType': 'address', 'name': 'caller', 'type': 'address'}], 'name': 'TokensBridged', 'type': 'event'}, {'anonymous': False, 'inputs': [{'indexed': True, 'internalType': 'address', 'name': 'implementation', 'type': 'address'}], 'name': 'Upgraded', 'type': 'event'}, {'inputs': [], 'name': 'MAX_TRANSFER_SIZE', 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [], 'name': 'SLOW_FILL_MAX_TOKENS_TO_SEND', 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [], 'name': 'UPDATE_DEPOSIT_DETAILS_HASH', 'outputs': [{'internalType': 'bytes32', 'name': '', 'type': 'bytes32'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [{'internalType': 'uint32', 'name': '_initialDepositId', 'type': 'uint32'}, {'internalType': 'address', 'name': '_crossDomainAdmin', 'type': 'address'}, {'internalType': 'address', 'name': '_hubPool', 'type': 'address'}, {'internalType': 'address', 'name': '_wrappedNativeTokenAddress', 'type': 'address'}], 'name': '__SpokePool_init', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [], 'name': 'chainId', 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [], 'name': 'crossDomainAdmin', 'outputs': [{'internalType': 'address', 'name': '', 'type': 'address'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [{'internalType': 'address', 'name': 'recipient', 'type': 'address'}, {'internalType': 'address', 'name': 'originToken', 'type': 'address'}, {'internalType': 'uint256', 'name': 'amount', 'type': 'uint256'}, {'internalType': 'uint256', 'name': 'destinationChainId', 'type': 'uint256'}, {'internalType': 'int64', 'name': 'relayerFeePct', 'type': 'int64'}, {'internalType': 'uint32', 'name': 'quoteTimestamp', 'type': 'uint32'}, {'internalType': 'bytes', 'name': 'message', 'type': 'bytes'}, {'internalType': 'uint256', 'name': 'maxCount', 'type': 'uint256'}], 'name': 'deposit', 'outputs': [], 'stateMutability': 'payable', 'type': 'function'}, {'inputs': [{'internalType': 'address', 'name': '', 'type': 'address'}], 'name': 'depositCounter', 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [{'internalType': 'address', 'name': 'recipient', 'type': 'address'}, {'internalType': 'address', 'name': 'originToken', 'type': 'address'}, {'internalType': 'uint256', 'name': 'amount', 'type': 'uint256'}, {'internalType': 'uint256', 'name': 'destinationChainId', 'type': 'uint256'}, {'internalType': 'int64', 'name': 'relayerFeePct', 'type': 'int64'}, {'internalType': 'bytes', 'name': 'message', 'type': 'bytes'}, {'internalType': 'uint256', 'name': 'maxCount', 'type': 'uint256'}], 'name': 'depositNow', 'outputs': [], 'stateMutability': 'payable', 'type': 'function'}, {'inputs': [], 'name': 'depositQuoteTimeBuffer', 'outputs': [{'internalType': 'uint32', 'name': '', 'type': 'uint32'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [{'internalType': 'uint256', 'name': 'rootBundleId', 'type': 'uint256'}], 'name': 'emergencyDeleteRootBundle', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{'internalType': 'address', 'name': '', 'type': 'address'}, {'internalType': 'uint256', 'name': '', 'type': 'uint256'}], 'name': 'enabledDepositRoutes', 'outputs': [{'internalType': 'bool', 'name': '', 'type': 'bool'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [{'internalType': 'uint32', 'name': 'rootBundleId', 'type': 'uint32'}, {'components': [{'internalType': 'uint256', 'name': 'amountToReturn', 'type': 'uint256'}, {'internalType': 'uint256', 'name': 'chainId', 'type': 'uint256'}, {'internalType': 'uint256[]', 'name': 'refundAmounts', 'type': 'uint256[]'}, {'internalType': 'uint32', 'name': 'leafId', 'type': 'uint32'}, {'internalType': 'address', 'name': 'l2TokenAddress', 'type': 'address'}, {'internalType': 'address[]', 'name': 'refundAddresses', 'type': 'address[]'}], 'internalType': 'struct SpokePoolInterface.RelayerRefundLeaf', 'name': 'relayerRefundLeaf', 'type': 'tuple'}, {'internalType': 'bytes32[]', 'name': 'proof', 'type': 'bytes32[]'}], 'name': 'executeRelayerRefundLeaf', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{'internalType': 'address', 'name': 'depositor', 'type': 'address'}, {'internalType': 'address', 'name': 'recipient', 'type': 'address'}, {'internalType': 'address', 'name': 'destinationToken', 'type': 'address'}, {'internalType': 'uint256', 'name': 'amount', 'type': 'uint256'}, {'internalType': 'uint256', 'name': 'originChainId', 'type': 'uint256'}, {'internalType': 'int64', 'name': 'realizedLpFeePct', 'type': 'int64'}, {'internalType': 'int64', 'name': 'relayerFeePct', 'type': 'int64'}, {'internalType': 'uint32', 'name': 'depositId', 'type': 'uint32'}, {'internalType': 'uint32', 'name': 'rootBundleId', 'type': 'uint32'}, {'internalType': 'bytes', 'name': 'message', 'type': 'bytes'}, {'internalType': 'int256', 'name': 'payoutAdjustment', 'type': 'int256'}, {'internalType': 'bytes32[]', 'name': 'proof', 'type': 'bytes32[]'}], 'name': 'executeSlowRelayLeaf', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{'internalType': 'address', 'name': '', 'type': 'address'}], 'name': 'fillCounter', 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [{'internalType': 'address', 'name': 'depositor', 'type': 'address'}, {'internalType': 'address', 'name': 'recipient', 'type': 'address'}, {'internalType': 'address', 'name': 'destinationToken', 'type': 'address'}, {'internalType': 'uint256', 'name': 'amount', 'type': 'uint256'}, {'internalType': 'uint256', 'name': 'maxTokensToSend', 'type': 'uint256'}, {'internalType': 'uint256', 'name': 'repaymentChainId', 'type': 'uint256'}, {'internalType': 'uint256', 'name': 'originChainId', 'type': 'uint256'}, {'internalType': 'int64', 'name': 'realizedLpFeePct', 'type': 'int64'}, {'internalType': 'int64', 'name': 'relayerFeePct', 'type': 'int64'}, {'internalType': 'uint32', 'name': 'depositId', 'type': 'uint32'}, {'internalType': 'bytes', 'name': 'message', 'type': 'bytes'}, {'internalType': 'uint256', 'name': 'maxCount', 'type': 'uint256'}], 'name': 'fillRelay', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{'internalType': 'address', 'name': 'depositor', 'type': 'address'}, {'internalType': 'address', 'name': 'recipient', 'type': 'address'}, {'internalType': 'address', 'name': 'updatedRecipient', 'type': 'address'}, {'internalType': 'address', 'name': 'destinationToken', 'type': 'address'}, {'internalType': 'uint256', 'name': 'amount', 'type': 'uint256'}, {'internalType': 'uint256', 'name': 'maxTokensToSend', 'type': 'uint256'}, {'internalType': 'uint256', 'name': 'repaymentChainId', 'type': 'uint256'}, {'internalType': 'uint256', 'name': 'originChainId', 'type': 'uint256'}, {'internalType': 'int64', 'name': 'realizedLpFeePct', 'type': 'int64'}, {'internalType': 'int64', 'name': 'relayerFeePct', 'type': 'int64'}, {'internalType': 'int64', 'name': 'updatedRelayerFeePct', 'type': 'int64'}, {'internalType': 'uint32', 'name': 'depositId', 'type': 'uint32'}, {'internalType': 'bytes', 'name': 'message', 'type': 'bytes'}, {'internalType': 'bytes', 'name': 'updatedMessage', 'type': 'bytes'}, {'internalType': 'bytes', 'name': 'depositorSignature', 'type': 'bytes'}, {'internalType': 'uint256', 'name': 'maxCount', 'type': 'uint256'}], 'name': 'fillRelayWithUpdatedDeposit', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [], 'name': 'getCurrentTime', 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [], 'name': 'hubPool', 'outputs': [{'internalType': 'address', 'name': '', 'type': 'address'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [{'internalType': 'uint32', 'name': '_initialDepositId', 'type': 'uint32'}, {'internalType': 'address', 'name': '_hubPool', 'type': 'address'}, {'internalType': 'address', 'name': '_wethAddress', 'type': 'address'}], 'name': 'initialize', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{'internalType': 'bytes[]', 'name': 'data', 'type': 'bytes[]'}], 'name': 'multicall', 'outputs': [{'internalType': 'bytes[]', 'name': 'results', 'type': 'bytes[]'}], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [], 'name': 'numberOfDeposits', 'outputs': [{'internalType': 'uint32', 'name': '', 'type': 'uint32'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [], 'name': 'owner', 'outputs': [{'internalType': 'address', 'name': '', 'type': 'address'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [{'internalType': 'bool', 'name': 'pause', 'type': 'bool'}], 'name': 'pauseDeposits', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{'internalType': 'bool', 'name': 'pause', 'type': 'bool'}], 'name': 'pauseFills', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [], 'name': 'pausedDeposits', 'outputs': [{'internalType': 'bool', 'name': '', 'type': 'bool'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [], 'name': 'pausedFills', 'outputs': [{'internalType': 'bool', 'name': '', 'type': 'bool'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [], 'name': 'proxiableUUID', 'outputs': [{'internalType': 'bytes32', 'name': '', 'type': 'bytes32'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [{'internalType': 'bytes32', 'name': '', 'type': 'bytes32'}], 'name': 'refundsRequested', 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [{'internalType': 'bytes32', 'name': '', 'type': 'bytes32'}], 'name': 'relayFills', 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [{'internalType': 'bytes32', 'name': 'relayerRefundRoot', 'type': 'bytes32'}, {'internalType': 'bytes32', 'name': 'slowRelayRoot', 'type': 'bytes32'}], 'name': 'relayRootBundle', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [], 'name': 'renounceOwnership', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{'internalType': 'address', 'name': 'refundToken', 'type': 'address'}, {'internalType': 'uint256', 'name': 'amount', 'type': 'uint256'}, {'internalType': 'uint256', 'name': 'originChainId', 'type': 'uint256'}, {'internalType': 'uint256', 'name': 'destinationChainId', 'type': 'uint256'}, {'internalType': 'int64', 'name': 'realizedLpFeePct', 'type': 'int64'}, {'internalType': 'uint32', 'name': 'depositId', 'type': 'uint32'}, {'internalType': 'uint256', 'name': 'fillBlock', 'type': 'uint256'}, {'internalType': 'uint256', 'name': 'maxCount', 'type': 'uint256'}], 'name': 'requestRefund', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], 'name': 'rootBundles', 'outputs': [{'internalType': 'bytes32', 'name': 'slowRelayRoot', 'type': 'bytes32'}, {'internalType': 'bytes32', 'name': 'relayerRefundRoot', 'type': 'bytes32'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [{'internalType': 'address', 'name': 'newCrossDomainAdmin', 'type': 'address'}], 'name': 'setCrossDomainAdmin', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{'internalType': 'uint32', 'name': 'newDepositQuoteTimeBuffer', 'type': 'uint32'}], 'name': 'setDepositQuoteTimeBuffer', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{'internalType': 'address', 'name': 'originToken', 'type': 'address'}, {'internalType': 'uint256', 'name': 'destinationChainId', 'type': 'uint256'}, {'internalType': 'bool', 'name': 'enabled', 'type': 'bool'}], 'name': 'setEnableRoute', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{'internalType': 'address', 'name': 'newHubPool', 'type': 'address'}], 'name': 'setHubPool', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{'internalType': 'address', 'name': 'depositor', 'type': 'address'}, {'internalType': 'int64', 'name': 'updatedRelayerFeePct', 'type': 'int64'}, {'internalType': 'uint32', 'name': 'depositId', 'type': 'uint32'}, {'internalType': 'address', 'name': 'updatedRecipient', 'type': 'address'}, {'internalType': 'bytes', 'name': 'updatedMessage', 'type': 'bytes'}, {'internalType': 'bytes', 'name': 'depositorSignature', 'type': 'bytes'}], 'name': 'speedUpDeposit', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{'internalType': 'address', 'name': 'newOwner', 'type': 'address'}], 'name': 'transferOwnership', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{'internalType': 'address', 'name': 'newImplementation', 'type': 'address'}], 'name': 'upgradeTo', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{'internalType': 'address', 'name': 'newImplementation', 'type': 'address'}, {'internalType': 'bytes', 'name': 'data', 'type': 'bytes'}], 'name': 'upgradeToAndCall', 'outputs': [], 'stateMutability': 'payable', 'type': 'function'}, {'inputs': [], 'name': 'wrappedNativeToken', 'outputs': [{'internalType': 'contract WETH9Interface', 'name': '', 'type': 'address'}], 'stateMutability': 'view', 'type': 'function'}, {'stateMutability': 'payable', 'type': 'receive'}]
}
BUNGEE_ABI = {
'refuel': [{'inputs': [], 'stateMutability': 'nonpayable', 'type': 'constructor'}, {'anonymous': False, 'inputs': [{'indexed': True, 'internalType': 'address', 'name': 'destinationReceiver', 'type': 'address'}, {'indexed': False, 'internalType': 'uint256', 'name': 'amount', 'type': 'uint256'}, {'indexed': True, 'internalType': 'uint256', 'name': 'destinationChainId', 'type': 'uint256'}], 'name': 'Deposit', 'type': 'event'}, {'anonymous': False, 'inputs': [{'indexed': False, 'internalType': 'address', 'name': 'sender', 'type': 'address'}, {'indexed': False, 'internalType': 'uint256', 'name': 'amount', 'type': 'uint256'}], 'name': 'Donation', 'type': 'event'}, {'anonymous': False, 'inputs': [{'indexed': False, 'internalType': 'address', 'name': 'sender', 'type': 'address'}], 'name': 'GrantSender', 'type': 'event'}, {'anonymous': False, 'inputs': [{'indexed': True, 'internalType': 'address', 'name': 'previousOwner', 'type': 'address'}, {'indexed': True, 'internalType': 'address', 'name': 'newOwner', 'type': 'address'}], 'name': 'OwnershipTransferred', 'type': 'event'}, {'anonymous': False, 'inputs': [{'indexed': False, 'internalType': 'address', 'name': 'account', 'type': 'address'}], 'name': 'Paused', 'type': 'event'}, {'anonymous': False, 'inputs': [{'indexed': False, 'internalType': 'address', 'name': 'sender', 'type': 'address'}], 'name': 'RevokeSender', 'type': 'event'}, {'anonymous': False, 'inputs': [{'indexed': False, 'internalType': 'address', 'name': 'receiver', 'type': 'address'}, {'indexed': False, 'internalType': 'uint256', 'name': 'amount', 'type': 'uint256'}, {'indexed': False, 'internalType': 'bytes32', 'name': 'srcChainTxHash', 'type': 'bytes32'}], 'name': 'Send', 'type': 'event'}, {'anonymous': False, 'inputs': [{'indexed': False, 'internalType': 'address', 'name': 'account', 'type': 'address'}], 'name': 'Unpaused', 'type': 'event'}, {'anonymous': False, 'inputs': [{'indexed': True, 'internalType': 'address', 'name': 'receiver', 'type': 'address'}, {'indexed': False, 'internalType': 'uint256', 'name': 'amount', 'type': 'uint256'}], 'name': 'Withdrawal', 'type': 'event'}, {'inputs': [{'components': [{'internalType': 'uint256', 'name': 'chainId', 'type': 'uint256'}, {'internalType': 'bool', 'name': 'isEnabled', 'type': 'bool'}], 'internalType': 'struct GasMovr.ChainData[]', 'name': '_routes', 'type': 'tuple[]'}], 'name': 'addRoutes', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{'internalType': 'address payable[]', 'name': 'receivers', 'type': 'address[]'}, {'internalType': 'uint256[]', 'name': 'amounts', 'type': 'uint256[]'}, {'internalType': 'bytes32[]', 'name': 'srcChainTxHashes', 'type': 'bytes32[]'}, {'internalType': 'uint256', 'name': 'perUserGasAmount', 'type': 'uint256'}, {'internalType': 'uint256', 'name': 'maxLimit', 'type': 'uint256'}], 'name': 'batchSendNativeToken', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], 'name': 'chainConfig', 'outputs': [{'internalType': 'uint256', 'name': 'chainId', 'type': 'uint256'}, {'internalType': 'bool', 'name': 'isEnabled', 'type': 'bool'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [{'internalType': 'uint256', 'name': 'destinationChainId', 'type': 'uint256'}, {'internalType': 'address', 'name': '_to', 'type': 'address'}], 'name': 'depositNativeToken', 'outputs': [], 'stateMutability': 'payable', 'type': 'function'}, {'inputs': [{'internalType': 'uint256', 'name': 'chainId', 'type': 'uint256'}], 'name': 'getChainData', 'outputs': [{'components': [{'internalType': 'uint256', 'name': 'chainId', 'type': 'uint256'}, {'internalType': 'bool', 'name': 'isEnabled', 'type': 'bool'}], 'internalType': 'struct GasMovr.ChainData', 'name': '', 'type': 'tuple'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [{'internalType': 'address', 'name': 'sender', 'type': 'address'}], 'name': 'grantSenderRole', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [], 'name': 'owner', 'outputs': [{'internalType': 'address', 'name': '', 'type': 'address'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [], 'name': 'paused', 'outputs': [{'internalType': 'bool', 'name': '', 'type': 'bool'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [{'internalType': 'bytes32', 'name': '', 'type': 'bytes32'}], 'name': 'processedHashes', 'outputs': [{'internalType': 'bool', 'name': '', 'type': 'bool'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [], 'name': 'renounceOwnership', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{'internalType': 'address', 'name': 'sender', 'type': 'address'}], 'name': 'revokeSenderRole', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{'internalType': 'address payable', 'name': 'receiver', 'type': 'address'}, {'internalType': 'uint256', 'name': 'amount', 'type': 'uint256'}, {'internalType': 'bytes32', 'name': 'srcChainTxHash', 'type': 'bytes32'}, {'internalType': 'uint256', 'name': 'perUserGasAmount', 'type': 'uint256'}, {'internalType': 'uint256', 'name': 'maxLimit', 'type': 'uint256'}], 'name': 'sendNativeToken', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{'internalType': 'address', 'name': '', 'type': 'address'}], 'name': 'senders', 'outputs': [{'internalType': 'bool', 'name': '', 'type': 'bool'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [{'internalType': 'uint256', 'name': 'chainId', 'type': 'uint256'}, {'internalType': 'bool', 'name': '_isEnabled', 'type': 'bool'}], 'name': 'setIsEnabled', 'outputs': [{'internalType': 'bool', 'name': '', 'type': 'bool'}], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [], 'name': 'setPause', 'outputs': [{'internalType': 'bool', 'name': '', 'type': 'bool'}], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [], 'name': 'setUnPause', 'outputs': [{'internalType': 'bool', 'name': '', 'type': 'bool'}], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{'internalType': 'address', 'name': 'newOwner', 'type': 'address'}], 'name': 'transferOwnership', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{'internalType': 'address', 'name': '_to', 'type': 'address'}, {'internalType': 'uint256', 'name': '_amount', 'type': 'uint256'}], 'name': 'withdrawBalance', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{'internalType': 'address', 'name': '_to', 'type': 'address'}], 'name': 'withdrawFullBalance', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'stateMutability': 'payable', 'type': 'receive'}],
'claim': [{'inputs': [{'internalType': 'contract IERC20', 'name': '_rewardsToken', 'type': 'address'}], 'stateMutability': 'nonpayable', 'type': 'constructor'}, {'anonymous': False, 'inputs': [{'indexed': True, 'internalType': 'address', 'name': 'account', 'type': 'address'}, {'indexed': False, 'internalType': 'uint256', 'name': 'amount', 'type': 'uint256'}, {'indexed': False, 'internalType': 'uint256', 'name': 'totalAmount', 'type': 'uint256'}], 'name': 'Claimed', 'type': 'event'}, {'anonymous': False, 'inputs': [{'indexed': True, 'internalType': 'bytes32', 'name': 'merkleRoot', 'type': 'bytes32'}, {'indexed': False, 'internalType': 'uint256', 'name': 'totalRewards', 'type': 'uint256'}], 'name': 'MerkleRootSet', 'type': 'event'}, {'anonymous': False, 'inputs': [{'indexed': True, 'internalType': 'address', 'name': 'previousOwner', 'type': 'address'}, {'indexed': True, 'internalType': 'address', 'name': 'newOwner', 'type': 'address'}], 'name': 'OwnershipTransferred', 'type': 'event'}, {'inputs': [], 'name': 'LEAF_SALT', 'outputs': [{'internalType': 'bytes32', 'name': '', 'type': 'bytes32'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [{'internalType': 'address', 'name': 'account', 'type': 'address'}, {'internalType': 'uint256', 'name': 'totalAmount', 'type': 'uint256'}, {'internalType': 'bytes32[]', 'name': 'proof', 'type': 'bytes32[]'}], 'name': 'claim', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{'internalType': 'address[]', 'name': 'accounts', 'type': 'address[]'}, {'internalType': 'uint256[]', 'name': 'totalAmounts', 'type': 'uint256[]'}, {'internalType': 'bytes32[]', 'name': 'proof', 'type': 'bytes32[]'}, {'internalType': 'bool[]', 'name': 'proofFlags', 'type': 'bool[]'}], 'name': 'claimMultiple', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [], 'name': 'currentTotalRewards', 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [], 'name': 'merkleRoot', 'outputs': [{'internalType': 'bytes32', 'name': '', 'type': 'bytes32'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [], 'name': 'owner', 'outputs': [{'internalType': 'address', 'name': '', 'type': 'address'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [], 'name': 'renounceOwnership', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{'internalType': 'address', 'name': '_token', 'type': 'address'}, {'internalType': 'address', 'name': '_receiverAddress', 'type': 'address'}, {'internalType': 'uint256', 'name': '_amount', 'type': 'uint256'}], 'name': 'rescueFunds', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [], 'name': 'rewardsToken', 'outputs': [{'internalType': 'contract IERC20', 'name': '', 'type': 'address'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [{'internalType': 'bytes32', 'name': '_merkleRoot', 'type': 'bytes32'}, {'internalType': 'uint256', 'name': 'totalRewards', 'type': 'uint256'}], 'name': 'setMerkleRoot', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{'internalType': 'address', 'name': 'newOwner', 'type': 'address'}], 'name': 'transferOwnership', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{'internalType': 'address', 'name': '', 'type': 'address'}], 'name': 'withdrawn', 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], 'stateMutability': 'view', 'type': 'function'}]
}
ERC20_ABI = [{'inputs': [{'internalType': 'string', 'name': '_name', 'type': 'string'}, {'internalType': 'string', 'name': '_symbol', 'type': 'string'}, {'internalType': 'uint256', 'name': '_initialSupply', 'type': 'uint256'}], 'stateMutability': 'nonpayable', 'type': 'constructor'}, {'anonymous': False, 'inputs': [{'indexed': True, 'internalType': 'address', 'name': 'owner', 'type': 'address'}, {'indexed': True, 'internalType': 'address', 'name': 'spender', 'type': 'address'}, {'indexed': False, 'internalType': 'uint256', 'name': 'value', 'type': 'uint256'}], 'name': 'Approval', 'type': 'event'}, {'anonymous': False, 'inputs': [{'indexed': True, 'internalType': 'address', 'name': 'from', 'type': 'address'}, {'indexed': True, 'internalType': 'address', 'name': 'to', 'type': 'address'}, {'indexed': False, 'internalType': 'uint256', 'name': 'value', 'type': 'uint256'}], 'name': 'Transfer', 'type': 'event'}, {'inputs': [{'internalType': 'address', 'name': 'owner', 'type': 'address'}, {'internalType': 'address', 'name': 'spender', 'type': 'address'}], 'name': 'allowance', 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [{'internalType': 'address', 'name': 'spender', 'type': 'address'}, {'internalType': 'uint256', 'name': 'amount', 'type': 'uint256'}], 'name': 'approve', 'outputs': [{'internalType': 'bool', 'name': '', 'type': 'bool'}], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{'internalType': 'address', 'name': 'account', 'type': 'address'}], 'name': 'balanceOf', 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [], 'name': 'decimals', 'outputs': [{'internalType': 'uint8', 'name': '', 'type': 'uint8'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [{'internalType': 'address', 'name': 'spender', 'type': 'address'}, {'internalType': 'uint256', 'name': 'subtractedValue', 'type': 'uint256'}], 'name': 'decreaseAllowance', 'outputs': [{'internalType': 'bool', 'name': '', 'type': 'bool'}], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{'internalType': 'address', 'name': 'spender', 'type': 'address'}, {'internalType': 'uint256', 'name': 'addedValue', 'type': 'uint256'}], 'name': 'increaseAllowance', 'outputs': [{'internalType': 'bool', 'name': '', 'type': 'bool'}], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [], 'name': 'name', 'outputs': [{'internalType': 'string', 'name': '', 'type': 'string'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [{'internalType': 'uint8', 'name': 'decimals_', 'type': 'uint8'}], 'name': 'setupDecimals', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [], 'name': 'symbol', 'outputs': [{'internalType': 'string', 'name': '', 'type': 'string'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [], 'name': 'totalSupply', 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [{'internalType': 'address', 'name': 'recipient', 'type': 'address'}, {'internalType': 'uint256', 'name': 'amount', 'type': 'uint256'}], 'name': 'transfer', 'outputs': [{'internalType': 'bool', 'name': '', 'type': 'bool'}], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{'internalType': 'address', 'name': 'sender', 'type': 'address'}, {'internalType': 'address', 'name': 'recipient', 'type': 'address'}, {'internalType': 'uint256', 'name': 'amount', 'type': 'uint256'}], 'name': 'transferFrom', 'outputs': [{'internalType': 'bool', 'name': '', 'type': 'bool'}], 'stateMutability': 'nonpayable', 'type': 'function'}]
ENS_ABI = [{'inputs': [], 'stateMutability': 'nonpayable', 'type': 'constructor'}, {'inputs': [], 'name': 'ApprovalCallerNotOwnerNorApproved', 'type': 'error'}, {'inputs': [], 'name': 'ApprovalQueryForNonexistentToken', 'type': 'error'}, {'inputs': [], 'name': 'ApprovalToCurrentOwner', 'type': 'error'}, {'inputs': [], 'name': 'ApproveToCaller', 'type': 'error'}, {'inputs': [], 'name': 'BalanceQueryForZeroAddress', 'type': 'error'}, {'inputs': [], 'name': 'MintToZeroAddress', 'type': 'error'}, {'inputs': [], 'name': 'MintZeroQuantity', 'type': 'error'}, {'inputs': [], 'name': 'OwnerQueryForNonexistentToken', 'type': 'error'}, {'inputs': [], 'name': 'TransferCallerNotOwnerNorApproved', 'type': 'error'}, {'inputs': [], 'name': 'TransferFromIncorrectOwner', 'type': 'error'}, {'inputs': [], 'name': 'TransferToNonERC721ReceiverImplementer', 'type': 'error'}, {'inputs': [], 'name': 'TransferToZeroAddress', 'type': 'error'}, {'inputs': [], 'name': 'URIQueryForNonexistentToken', 'type': 'error'}, {'anonymous': False, 'inputs': [{'indexed': True, 'internalType': 'address', 'name': 'owner', 'type': 'address'}, {'indexed': True, 'internalType': 'address', 'name': 'approved', 'type': 'address'}, {'indexed': True, 'internalType': 'uint256', 'name': 'tokenId', 'type': 'uint256'}], 'name': 'Approval', 'type': 'event'}, {'anonymous': False, 'inputs': [{'indexed': True, 'internalType': 'address', 'name': 'owner', 'type': 'address'}, {'indexed': True, 'internalType': 'address', 'name': 'operator', 'type': 'address'}, {'indexed': False, 'internalType': 'bool', 'name': 'approved', 'type': 'bool'}], 'name': 'ApprovalForAll', 'type': 'event'}, {'anonymous': False, 'inputs': [{'indexed': True, 'internalType': 'address', 'name': 'previousOwner', 'type': 'address'}, {'indexed': True, 'internalType': 'address', 'name': 'newOwner', 'type': 'address'}], 'name': 'OwnershipTransferred', 'type': 'event'}, {'anonymous': False, 'inputs': [{'indexed': True, 'internalType': 'address', 'name': 'from', 'type': 'address'}, {'indexed': True, 'internalType': 'address', 'name': 'to', 'type': 'address'}, {'indexed': True, 'internalType': 'uint256', 'name': 'tokenId', 'type': 'uint256'}], 'name': 'Transfer', 'type': 'event'}, {'inputs': [], 'name': 'IS_ALLOWLIST_ACTIVE', 'outputs': [{'internalType': 'bool', 'name': '', 'type': 'bool'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [], 'name': 'IS_SALE_ACTIVE', 'outputs': [{'internalType': 'bool', 'name': '', 'type': 'bool'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [{'internalType': 'string', 'name': '_name', 'type': 'string'}], 'name': '_checkName', 'outputs': [{'internalType': 'bool', 'name': '', 'type': 'bool'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [{'internalType': 'string', 'name': 'ether_name', 'type': 'string'}, {'internalType': 'bytes32[]', 'name': '_merkleProof', 'type': 'bytes32[]'}], 'name': 'allowList', 'outputs': [], 'stateMutability': 'payable', 'type': 'function'}, {'inputs': [{'internalType': 'address', 'name': '', 'type': 'address'}], 'name': 'allowlistAddresses', 'outputs': [{'internalType': 'bool', 'name': '', 'type': 'bool'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [{'internalType': 'address', 'name': 'to', 'type': 'address'}, {'internalType': 'uint256', 'name': 'tokenId', 'type': 'uint256'}], 'name': 'approve', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{'internalType': 'address', 'name': 'owner', 'type': 'address'}], 'name': 'balanceOf', 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [], 'name': 'cost', 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [{'internalType': 'string', 'name': '', 'type': 'string'}, {'internalType': 'string', 'name': '', 'type': 'string'}], 'name': 'dataAddress', 'outputs': [{'internalType': 'string', 'name': '', 'type': 'string'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [{'internalType': 'string', 'name': 'ether_name', 'type': 'string'}], 'name': 'getAddress', 'outputs': [{'internalType': 'address', 'name': '', 'type': 'address'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [{'internalType': 'uint256', 'name': 'tokenId', 'type': 'uint256'}], 'name': 'getApproved', 'outputs': [{'internalType': 'address', 'name': '', 'type': 'address'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [{'internalType': 'string', 'name': 'ether_name', 'type': 'string'}, {'internalType': 'string', 'name': 'Area', 'type': 'string'}], 'name': 'getDataAddress', 'outputs': [{'internalType': 'string', 'name': '', 'type': 'string'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [{'internalType': 'address', 'name': 'owner', 'type': 'address'}, {'internalType': 'address', 'name': 'operator', 'type': 'address'}], 'name': 'isApprovedForAll', 'outputs': [{'internalType': 'bool', 'name': '', 'type': 'bool'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [{'internalType': 'uint256', 'name': 'count', 'type': 'uint256'}], 'name': 'lastAddresses', 'outputs': [{'internalType': 'string[]', 'name': '', 'type': 'string[]'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [], 'name': 'merkleRoot', 'outputs': [{'internalType': 'bytes32', 'name': '', 'type': 'bytes32'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [], 'name': 'name', 'outputs': [{'internalType': 'string', 'name': '', 'type': 'string'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [{'internalType': 'uint256', 'name': 'tokenId', 'type': 'uint256'}, {'internalType': 'string', 'name': 'new_ether_name', 'type': 'string'}], 'name': 'nameBurnAndChange', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [], 'name': 'owner', 'outputs': [{'internalType': 'address', 'name': '', 'type': 'address'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [{'internalType': 'uint256', 'name': 'tokenId', 'type': 'uint256'}], 'name': 'ownerOf', 'outputs': [{'internalType': 'address', 'name': '', 'type': 'address'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [{'internalType': 'address', 'name': '', 'type': 'address'}], 'name': 'primaryAddress', 'outputs': [{'internalType': 'string', 'name': '', 'type': 'string'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [], 'name': 'ref', 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [], 'name': 'ref_discount', 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [], 'name': 'ref_owner', 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [{'internalType': 'address', 'name': 'ref_address', 'type': 'address'}, {'internalType': 'string', 'name': 'ether_name', 'type': 'string'}], 'name': 'register', 'outputs': [], 'stateMutability': 'payable', 'type': 'function'}, {'inputs': [{'internalType': 'string', 'name': 'ether_name', 'type': 'string'}, {'internalType': 'string', 'name': 'subdomain_name', 'type': 'string'}], 'name': 'registerSubdomain', 'outputs': [], 'stateMutability': 'payable', 'type': 'function'}, {'inputs': [], 'name': 'renounceOwnership', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{'internalType': 'string', 'name': '', 'type': 'string'}], 'name': 'resolveAddress', 'outputs': [{'internalType': 'address', 'name': '', 'type': 'address'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [{'internalType': 'address', 'name': 'from', 'type': 'address'}, {'internalType': 'address', 'name': 'to', 'type': 'address'}, {'internalType': 'uint256', 'name': 'tokenId', 'type': 'uint256'}], 'name': 'safeTransferFrom', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{'internalType': 'address', 'name': 'from', 'type': 'address'}, {'internalType': 'address', 'name': 'to', 'type': 'address'}, {'internalType': 'uint256', 'name': 'tokenId', 'type': 'uint256'}, {'internalType': 'bytes', 'name': '_data', 'type': 'bytes'}], 'name': 'safeTransferFrom', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{'internalType': 'string', 'name': 'eth_name', 'type': 'string'}, {'internalType': 'address', 'name': 'newresolve', 'type': 'address'}], 'name': 'setAddress', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{'internalType': 'bytes', 'name': 'allwchr', 'type': 'bytes'}], 'name': 'setAllowChars', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{'internalType': 'bool', 'name': 'WhitesaleIsActive', 'type': 'bool'}], 'name': 'setAllowListSaleActive', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{'internalType': 'address', 'name': 'operator', 'type': 'address'}, {'internalType': 'bool', 'name': 'approved', 'type': 'bool'}], 'name': 'setApprovalForAll', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{'internalType': 'string', 'name': 'customBaseURI_', 'type': 'string'}], 'name': 'setBaseURI', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{'internalType': 'string', 'name': 'eth_name', 'type': 'string'}, {'internalType': 'string', 'name': 'setArea', 'type': 'string'}, {'internalType': 'string', 'name': 'newDatas', 'type': 'string'}], 'name': 'setDataAddress', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{'internalType': 'uint256', 'name': 'maxCharSize_', 'type': 'uint256'}], 'name': 'setMaxCharSize', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{'internalType': 'bytes32', 'name': '_newMerkleRoot', 'type': 'bytes32'}], 'name': 'setMerkleRoot', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{'internalType': 'uint256', 'name': 'customPrice', 'type': 'uint256'}], 'name': 'setPrice', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{'internalType': 'string', 'name': 'eth_name', 'type': 'string'}], 'name': 'setPrimaryAddress', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{'internalType': 'uint256', 'name': 'ref_', 'type': 'uint256'}, {'internalType': 'uint256', 'name': 'ref_owner_', 'type': 'uint256'}, {'internalType': 'uint256', 'name': 'ref_discount_', 'type': 'uint256'}, {'internalType': 'uint256', 'name': 'subdomains_fee_', 'type': 'uint256'}], 'name': 'setRefSettings', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{'internalType': 'bool', 'name': 'saleIsActive', 'type': 'bool'}], 'name': 'setSaleActive', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{'internalType': 'bool', 'name': 'saleIsActive', 'type': 'bool'}, {'internalType': 'uint256', 'name': 'customPrice', 'type': 'uint256'}, {'internalType': 'string', 'name': 'ether_name', 'type': 'string'}], 'name': 'setSubdomainSaleActive', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{'internalType': 'string', 'name': '', 'type': 'string'}], 'name': 'subDomains_cost', 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [{'internalType': 'string', 'name': '', 'type': 'string'}], 'name': 'subDomains_publicSale', 'outputs': [{'internalType': 'bool', 'name': '', 'type': 'bool'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [], 'name': 'subdomains_fee', 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [{'internalType': 'bytes4', 'name': 'interfaceId', 'type': 'bytes4'}], 'name': 'supportsInterface', 'outputs': [{'internalType': 'bool', 'name': '', 'type': 'bool'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [], 'name': 'symbol', 'outputs': [{'internalType': 'string', 'name': '', 'type': 'string'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [{'internalType': 'string', 'name': '', 'type': 'string'}], 'name': 'tokenAddressandID', 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], 'name': 'tokenIDandAddress', 'outputs': [{'internalType': 'string', 'name': '', 'type': 'string'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [{'internalType': 'uint256', 'name': 'tokenId', 'type': 'uint256'}], 'name': 'tokenURI', 'outputs': [{'internalType': 'string', 'name': '', 'type': 'string'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [], 'name': 'totalSupply', 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [{'internalType': 'address', 'name': 'from', 'type': 'address'}, {'internalType': 'address', 'name': 'to', 'type': 'address'}, {'internalType': 'uint256', 'name': 'tokenId', 'type': 'uint256'}], 'name': 'transferFrom', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{'internalType': 'address', 'name': 'newOwner', 'type': 'address'}], 'name': 'transferOwnership', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{'internalType': 'address', 'name': '_owner', 'type': 'address'}], 'name': 'walletOfOwnerName', 'outputs': [{'internalType': 'string[]', 'name': '', 'type': 'string[]'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [], 'name': 'withdraw', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}]
IZUMI_LIQUIDITY_MANAGER_ABI = [{'inputs': [{'internalType': 'address', 'name': 'factory', 'type': 'address'}, {'internalType': 'address', 'name': 'weth', 'type': 'address'}], 'stateMutability': 'nonpayable', 'type': 'constructor'}, {'anonymous': False, 'inputs': [{'indexed': True, 'internalType': 'address', 'name': 'owner', 'type': 'address'}, {'indexed': True, 'internalType': 'address', 'name': 'approved', 'type': 'address'}, {'indexed': True, 'internalType': 'uint256', 'name': 'tokenId', 'type': 'uint256'}], 'name': 'Approval', 'type': 'event'}, {'anonymous': False, 'inputs': [{'indexed': True, 'internalType': 'address', 'name': 'owner', 'type': 'address'}, {'indexed': True, 'internalType': 'address', 'name': 'operator', 'type': 'address'}, {'indexed': False, 'internalType': 'bool', 'name': 'approved', 'type': 'bool'}], 'name': 'ApprovalForAll', 'type': 'event'}, {'anonymous': False, 'inputs': [{'indexed': True, 'internalType': 'address', 'name': 'previousOwner', 'type': 'address'}, {'indexed': True, 'internalType': 'address', 'name': 'newOwner', 'type': 'address'}], 'name': 'OwnershipTransferred', 'type': 'event'}, {'anonymous': False, 'inputs': [{'indexed': True, 'internalType': 'address', 'name': 'from', 'type': 'address'}, {'indexed': True, 'internalType': 'address', 'name': 'to', 'type': 'address'}, {'indexed': True, 'internalType': 'uint256', 'name': 'tokenId', 'type': 'uint256'}], 'name': 'Transfer', 'type': 'event'}, {'inputs': [], 'name': 'WETH9', 'outputs': [{'internalType': 'address', 'name': '', 'type': 'address'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [{'components': [{'internalType': 'uint256', 'name': 'lid', 'type': 'uint256'}, {'internalType': 'uint128', 'name': 'xLim', 'type': 'uint128'}, {'internalType': 'uint128', 'name': 'yLim', 'type': 'uint128'}, {'internalType': 'uint128', 'name': 'amountXMin', 'type': 'uint128'}, {'internalType': 'uint128', 'name': 'amountYMin', 'type': 'uint128'}, {'internalType': 'uint256', 'name': 'deadline', 'type': 'uint256'}], 'internalType': 'struct LiquidityManager.AddLiquidityParam', 'name': 'addLiquidityParam', 'type': 'tuple'}], 'name': 'addLiquidity', 'outputs': [{'internalType': 'uint128', 'name': 'liquidityDelta', 'type': 'uint128'}, {'internalType': 'uint256', 'name': 'amountX', 'type': 'uint256'}, {'internalType': 'uint256', 'name': 'amountY', 'type': 'uint256'}], 'stateMutability': 'payable', 'type': 'function'}, {'inputs': [{'internalType': 'address', 'name': 'to', 'type': 'address'}, {'internalType': 'uint256', 'name': 'tokenId', 'type': 'uint256'}], 'name': 'approve', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{'internalType': 'address', 'name': 'owner', 'type': 'address'}], 'name': 'balanceOf', 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [], 'name': 'baseURI', 'outputs': [{'internalType': 'string', 'name': '', 'type': 'string'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [{'internalType': 'uint256', 'name': 'lid', 'type': 'uint256'}], 'name': 'burn', 'outputs': [{'internalType': 'bool', 'name': 'success', 'type': 'bool'}], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{'internalType': 'address', 'name': 'recipient', 'type': 'address'}, {'internalType': 'uint256', 'name': 'lid', 'type': 'uint256'}, {'internalType': 'uint128', 'name': 'amountXLim', 'type': 'uint128'}, {'internalType': 'uint128', 'name': 'amountYLim', 'type': 'uint128'}], 'name': 'collect', 'outputs': [{'internalType': 'uint256', 'name': 'amountX', 'type': 'uint256'}, {'internalType': 'uint256', 'name': 'amountY', 'type': 'uint256'}], 'stateMutability': 'payable', 'type': 'function'}, {'inputs': [{'internalType': 'address', 'name': 'tokenX', 'type': 'address'}, {'internalType': 'address', 'name': 'tokenY', 'type': 'address'}, {'internalType': 'uint24', 'name': 'fee', 'type': 'uint24'}, {'internalType': 'int24', 'name': 'initialPoint', 'type': 'int24'}], 'name': 'createPool', 'outputs': [{'internalType': 'address', 'name': '', 'type': 'address'}], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{'internalType': 'uint256', 'name': 'lid', 'type': 'uint256'}, {'internalType': 'uint128', 'name': 'liquidDelta', 'type': 'uint128'}, {'internalType': 'uint256', 'name': 'amountXMin', 'type': 'uint256'}, {'internalType': 'uint256', 'name': 'amountYMin', 'type': 'uint256'}, {'internalType': 'uint256', 'name': 'deadline', 'type': 'uint256'}], 'name': 'decLiquidity', 'outputs': [{'internalType': 'uint256', 'name': 'amountX', 'type': 'uint256'}, {'internalType': 'uint256', 'name': 'amountY', 'type': 'uint256'}], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [], 'name': 'factory', 'outputs': [{'internalType': 'address', 'name': '', 'type': 'address'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [{'internalType': 'uint256', 'name': 'tokenId', 'type': 'uint256'}], 'name': 'getApproved', 'outputs': [{'internalType': 'address', 'name': '', 'type': 'address'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [{'internalType': 'address', 'name': 'owner', 'type': 'address'}, {'internalType': 'address', 'name': 'operator', 'type': 'address'}], 'name': 'isApprovedForAll', 'outputs': [{'internalType': 'bool', 'name': '', 'type': 'bool'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], 'name': 'liquidities', 'outputs': [{'internalType': 'int24', 'name': 'leftPt', 'type': 'int24'}, {'internalType': 'int24', 'name': 'rightPt', 'type': 'int24'}, {'internalType': 'uint128', 'name': 'liquidity', 'type': 'uint128'}, {'internalType': 'uint256', 'name': 'lastFeeScaleX_128', 'type': 'uint256'}, {'internalType': 'uint256', 'name': 'lastFeeScaleY_128', 'type': 'uint256'}, {'internalType': 'uint256', 'name': 'remainTokenX', 'type': 'uint256'}, {'internalType': 'uint256', 'name': 'remainTokenY', 'type': 'uint256'}, {'internalType': 'uint128', 'name': 'poolId', 'type': 'uint128'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [], 'name': 'liquidityNum', 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [{'components': [{'internalType': 'address', 'name': 'miner', 'type': 'address'}, {'internalType': 'address', 'name': 'tokenX', 'type': 'address'}, {'internalType': 'address', 'name': 'tokenY', 'type': 'address'}, {'internalType': 'uint24', 'name': 'fee', 'type': 'uint24'}, {'internalType': 'int24', 'name': 'pl', 'type': 'int24'}, {'internalType': 'int24', 'name': 'pr', 'type': 'int24'}, {'internalType': 'uint128', 'name': 'xLim', 'type': 'uint128'}, {'internalType': 'uint128', 'name': 'yLim', 'type': 'uint128'}, {'internalType': 'uint128', 'name': 'amountXMin', 'type': 'uint128'}, {'internalType': 'uint128', 'name': 'amountYMin', 'type': 'uint128'}, {'internalType': 'uint256', 'name': 'deadline', 'type': 'uint256'}], 'internalType': 'struct LiquidityManager.MintParam', 'name': 'mintParam', 'type': 'tuple'}], 'name': 'mint', 'outputs': [{'internalType': 'uint256', 'name': 'lid', 'type': 'uint256'}, {'internalType': 'uint128', 'name': 'liquidity', 'type': 'uint128'}, {'internalType': 'uint256', 'name': 'amountX', 'type': 'uint256'}, {'internalType': 'uint256', 'name': 'amountY', 'type': 'uint256'}], 'stateMutability': 'payable', 'type': 'function'}, {'inputs': [{'internalType': 'uint256', 'name': 'x', 'type': 'uint256'}, {'internalType': 'uint256', 'name': 'y', 'type': 'uint256'}, {'internalType': 'bytes', 'name': 'data', 'type': 'bytes'}], 'name': 'mintDepositCallback', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{'internalType': 'bytes[]', 'name': 'data', 'type': 'bytes[]'}], 'name': 'multicall', 'outputs': [{'internalType': 'bytes[]', 'name': 'results', 'type': 'bytes[]'}], 'stateMutability': 'payable', 'type': 'function'}, {'inputs': [], 'name': 'name', 'outputs': [{'internalType': 'string', 'name': '', 'type': 'string'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [], 'name': 'owner', 'outputs': [{'internalType': 'address', 'name': '', 'type': 'address'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [{'internalType': 'uint256', 'name': 'tokenId', 'type': 'uint256'}], 'name': 'ownerOf', 'outputs': [{'internalType': 'address', 'name': '', 'type': 'address'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [{'internalType': 'address', 'name': 'tokenX', 'type': 'address'}, {'internalType': 'address', 'name': 'tokenY', 'type': 'address'}, {'internalType': 'uint24', 'name': 'fee', 'type': 'uint24'}], 'name': 'pool', 'outputs': [{'internalType': 'address', 'name': '', 'type': 'address'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [{'internalType': 'address', 'name': '', 'type': 'address'}], 'name': 'poolIds', 'outputs': [{'internalType': 'uint128', 'name': '', 'type': 'uint128'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [{'internalType': 'uint128', 'name': '', 'type': 'uint128'}], 'name': 'poolMetas', 'outputs': [{'internalType': 'address', 'name': 'tokenX', 'type': 'address'}, {'internalType': 'address', 'name': 'tokenY', 'type': 'address'}, {'internalType': 'uint24', 'name': 'fee', 'type': 'uint24'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [], 'name': 'refundETH', 'outputs': [], 'stateMutability': 'payable', 'type': 'function'}, {'inputs': [], 'name': 'renounceOwnership', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{'internalType': 'address', 'name': 'from', 'type': 'address'}, {'internalType': 'address', 'name': 'to', 'type': 'address'}, {'internalType': 'uint256', 'name': 'tokenId', 'type': 'uint256'}], 'name': 'safeTransferFrom', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{'internalType': 'address', 'name': 'from', 'type': 'address'}, {'internalType': 'address', 'name': 'to', 'type': 'address'}, {'internalType': 'uint256', 'name': 'tokenId', 'type': 'uint256'}, {'internalType': 'bytes', 'name': '_data', 'type': 'bytes'}], 'name': 'safeTransferFrom', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{'internalType': 'address', 'name': 'operator', 'type': 'address'}, {'internalType': 'bool', 'name': 'approved', 'type': 'bool'}], 'name': 'setApprovalForAll', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{'internalType': 'string', 'name': 'newBaseURI', 'type': 'string'}], 'name': 'setBaseURI', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{'internalType': 'bytes4', 'name': 'interfaceId', 'type': 'bytes4'}], 'name': 'supportsInterface', 'outputs': [{'internalType': 'bool', 'name': '', 'type': 'bool'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [{'internalType': 'address', 'name': 'token', 'type': 'address'}, {'internalType': 'uint256', 'name': 'minAmount', 'type': 'uint256'}, {'internalType': 'address', 'name': 'recipient', 'type': 'address'}], 'name': 'sweepToken', 'outputs': [], 'stateMutability': 'payable', 'type': 'function'}, {'inputs': [], 'name': 'symbol', 'outputs': [{'internalType': 'string', 'name': '', 'type': 'string'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [{'internalType': 'uint256', 'name': 'index', 'type': 'uint256'}], 'name': 'tokenByIndex', 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [{'internalType': 'address', 'name': 'owner', 'type': 'address'}, {'internalType': 'uint256', 'name': 'index', 'type': 'uint256'}], 'name': 'tokenOfOwnerByIndex', 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [{'internalType': 'uint256', 'name': 'tokenId', 'type': 'uint256'}], 'name': 'tokenURI', 'outputs': [{'internalType': 'string', 'name': '', 'type': 'string'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [], 'name': 'totalSupply', 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [{'internalType': 'address', 'name': 'from', 'type': 'address'}, {'internalType': 'address', 'name': 'to', 'type': 'address'}, {'internalType': 'uint256', 'name': 'tokenId', 'type': 'uint256'}], 'name': 'transferFrom', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{'internalType': 'address', 'name': 'newOwner', 'type': 'address'}], 'name': 'transferOwnership', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{'internalType': 'uint256', 'name': 'minAmount', 'type': 'uint256'}, {'internalType': 'address', 'name': 'recipient', 'type': 'address'}], 'name': 'unwrapWETH9', 'outputs': [], 'stateMutability': 'payable', 'type': 'function'}, {'stateMutability': 'payable', 'type': 'receive'}]
IZUMI_QUOTER_ABI = [{'inputs': [{'internalType': 'address', 'name': '_factory', 'type': 'address'}, {'internalType': 'address', 'name': '_weth', 'type': 'address'}], 'stateMutability': 'nonpayable', 'type': 'constructor'}, {'inputs': [], 'name': 'WETH9', 'outputs': [{'internalType': 'address', 'name': '', 'type': 'address'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [], 'name': 'factory', 'outputs': [{'internalType': 'address', 'name': '', 'type': 'address'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [{'internalType': 'bytes[]', 'name': 'data', 'type': 'bytes[]'}], 'name': 'multicall', 'outputs': [{'internalType': 'bytes[]', 'name': 'results', 'type': 'bytes[]'}], 'stateMutability': 'payable', 'type': 'function'}, {'inputs': [{'internalType': 'address', 'name': 'tokenX', 'type': 'address'}, {'internalType': 'address', 'name': 'tokenY', 'type': 'address'}, {'internalType': 'uint24', 'name': 'fee', 'type': 'uint24'}], 'name': 'pool', 'outputs': [{'internalType': 'address', 'name': '', 'type': 'address'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [], 'name': 'refundETH', 'outputs': [], 'stateMutability': 'payable', 'type': 'function'}, {'inputs': [{'internalType': 'uint128', 'name': 'amount', 'type': 'uint128'}, {'internalType': 'bytes', 'name': 'path', 'type': 'bytes'}], 'name': 'swapAmount', 'outputs': [{'internalType': 'uint256', 'name': 'acquire', 'type': 'uint256'}, {'internalType': 'int24[]', 'name': 'pointAfterList', 'type': 'int24[]'}], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{'internalType': 'uint128', 'name': 'desire', 'type': 'uint128'}, {'internalType': 'bytes', 'name': 'path', 'type': 'bytes'}], 'name': 'swapDesire', 'outputs': [{'internalType': 'uint256', 'name': 'cost', 'type': 'uint256'}, {'internalType': 'int24[]', 'name': 'pointAfterList', 'type': 'int24[]'}], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{'internalType': 'address', 'name': 'tokenX', 'type': 'address'}, {'internalType': 'address', 'name': 'tokenY', 'type': 'address'}, {'internalType': 'uint24', 'name': 'fee', 'type': 'uint24'}, {'internalType': 'uint128', 'name': 'amount', 'type': 'uint128'}, {'internalType': 'int24', 'name': 'lowPt', 'type': 'int24'}], 'name': 'swapX2Y', 'outputs': [{'internalType': 'uint256', 'name': 'amountY', 'type': 'uint256'}, {'internalType': 'int24', 'name': 'finalPoint', 'type': 'int24'}], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{'internalType': 'uint256', 'name': 'x', 'type': 'uint256'}, {'internalType': 'uint256', 'name': 'y', 'type': 'uint256'}, {'internalType': 'bytes', 'name': 'path', 'type': 'bytes'}], 'name': 'swapX2YCallback', 'outputs': [], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [{'internalType': 'address', 'name': 'tokenX', 'type': 'address'}, {'internalType': 'address', 'name': 'tokenY', 'type': 'address'}, {'internalType': 'uint24', 'name': 'fee', 'type': 'uint24'}, {'internalType': 'uint128', 'name': 'desireY', 'type': 'uint128'}, {'internalType': 'int24', 'name': 'lowPt', 'type': 'int24'}], 'name': 'swapX2YDesireY', 'outputs': [{'internalType': 'uint256', 'name': 'amountX', 'type': 'uint256'}, {'internalType': 'int24', 'name': 'finalPoint', 'type': 'int24'}], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{'internalType': 'address', 'name': 'tokenX', 'type': 'address'}, {'internalType': 'address', 'name': 'tokenY', 'type': 'address'}, {'internalType': 'uint24', 'name': 'fee', 'type': 'uint24'}, {'internalType': 'uint128', 'name': 'amount', 'type': 'uint128'}, {'internalType': 'int24', 'name': 'highPt', 'type': 'int24'}], 'name': 'swapY2X', 'outputs': [{'internalType': 'uint256', 'name': 'amountX', 'type': 'uint256'}, {'internalType': 'int24', 'name': 'finalPoint', 'type': 'int24'}], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{'internalType': 'uint256', 'name': 'x', 'type': 'uint256'}, {'internalType': 'uint256', 'name': 'y', 'type': 'uint256'}, {'internalType': 'bytes', 'name': 'path', 'type': 'bytes'}], 'name': 'swapY2XCallback', 'outputs': [], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [{'internalType': 'address', 'name': 'tokenX', 'type': 'address'}, {'internalType': 'address', 'name': 'tokenY', 'type': 'address'}, {'internalType': 'uint24', 'name': 'fee', 'type': 'uint24'}, {'internalType': 'uint128', 'name': 'desireX', 'type': 'uint128'}, {'internalType': 'int24', 'name': 'highPt', 'type': 'int24'}], 'name': 'swapY2XDesireX', 'outputs': [{'internalType': 'uint256', 'name': 'amountY', 'type': 'uint256'}, {'internalType': 'int24', 'name': 'finalPoint', 'type': 'int24'}], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{'internalType': 'address', 'name': 'token', 'type': 'address'}, {'internalType': 'uint256', 'name': 'minAmount', 'type': 'uint256'}, {'internalType': 'address', 'name': 'recipient', 'type': 'address'}], 'name': 'sweepToken', 'outputs': [], 'stateMutability': 'payable', 'type': 'function'}, {'inputs': [{'internalType': 'uint256', 'name': 'minAmount', 'type': 'uint256'}, {'internalType': 'address', 'name': 'recipient', 'type': 'address'}], 'name': 'unwrapWETH9', 'outputs': [], 'stateMutability': 'payable', 'type': 'function'}, {'stateMutability': 'payable', 'type': 'receive'}]
IZUMI_ROUTER_ABI = [{'inputs': [{'internalType': 'address', 'name': '_factory', 'type': 'address'}, {'internalType': 'address', 'name': '_weth', 'type': 'address'}], 'stateMutability': 'nonpayable', 'type': 'constructor'}, {'inputs': [], 'name': 'WETH9', 'outputs': [{'internalType': 'address', 'name': '', 'type': 'address'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [], 'name': 'factory', 'outputs': [{'internalType': 'address', 'name': '', 'type': 'address'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [{'internalType': 'bytes[]', 'name': 'data', 'type': 'bytes[]'}], 'name': 'multicall', 'outputs': [{'internalType': 'bytes[]', 'name': 'results', 'type': 'bytes[]'}], 'stateMutability': 'payable', 'type': 'function'}, {'inputs': [{'internalType': 'address', 'name': 'tokenX', 'type': 'address'}, {'internalType': 'address', 'name': 'tokenY', 'type': 'address'}, {'internalType': 'uint24', 'name': 'fee', 'type': 'uint24'}], 'name': 'pool', 'outputs': [{'internalType': 'address', 'name': '', 'type': 'address'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [], 'name': 'refundETH', 'outputs': [], 'stateMutability': 'payable', 'type': 'function'}, {'inputs': [{'components': [{'internalType': 'bytes', 'name': 'path', 'type': 'bytes'}, {'internalType': 'address', 'name': 'recipient', 'type': 'address'}, {'internalType': 'uint128', 'name': 'amount', 'type': 'uint128'}, {'internalType': 'uint256', 'name': 'minAcquired', 'type': 'uint256'}, {'internalType': 'uint256', 'name': 'deadline', 'type': 'uint256'}], 'internalType': 'struct Swap.SwapAmountParams', 'name': 'params', 'type': 'tuple'}], 'name': 'swapAmount', 'outputs': [{'internalType': 'uint256', 'name': 'cost', 'type': 'uint256'}, {'internalType': 'uint256', 'name': 'acquire', 'type': 'uint256'}], 'stateMutability': 'payable', 'type': 'function'}, {'inputs': [{'components': [{'internalType': 'bytes', 'name': 'path', 'type': 'bytes'}, {'internalType': 'address', 'name': 'recipient', 'type': 'address'}, {'internalType': 'uint128', 'name': 'desire', 'type': 'uint128'}, {'internalType': 'uint256', 'name': 'maxPayed', 'type': 'uint256'}, {'internalType': 'uint256', 'name': 'deadline', 'type': 'uint256'}], 'internalType': 'struct Swap.SwapDesireParams', 'name': 'params', 'type': 'tuple'}], 'name': 'swapDesire', 'outputs': [{'internalType': 'uint256', 'name': 'cost', 'type': 'uint256'}, {'internalType': 'uint256', 'name': 'acquire', 'type': 'uint256'}], 'stateMutability': 'payable', 'type': 'function'}, {'inputs': [{'components': [{'internalType': 'address', 'name': 'tokenX', 'type': 'address'}, {'internalType': 'address', 'name': 'tokenY', 'type': 'address'}, {'internalType': 'uint24', 'name': 'fee', 'type': 'uint24'}, {'internalType': 'int24', 'name': 'boundaryPt', 'type': 'int24'}, {'internalType': 'address', 'name': 'recipient', 'type': 'address'}, {'internalType': 'uint128', 'name': 'amount', 'type': 'uint128'}, {'internalType': 'uint256', 'name': 'maxPayed', 'type': 'uint256'}, {'internalType': 'uint256', 'name': 'minAcquired', 'type': 'uint256'}, {'internalType': 'uint256', 'name': 'deadline', 'type': 'uint256'}], 'internalType': 'struct Swap.SwapParams', 'name': 'swapParams', 'type': 'tuple'}], 'name': 'swapX2Y', 'outputs': [], 'stateMutability': 'payable', 'type': 'function'}, {'inputs': [{'internalType': 'uint256', 'name': 'x', 'type': 'uint256'}, {'internalType': 'uint256', 'name': 'y', 'type': 'uint256'}, {'internalType': 'bytes', 'name': 'data', 'type': 'bytes'}], 'name': 'swapX2YCallback', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{'components': [{'internalType': 'address', 'name': 'tokenX', 'type': 'address'}, {'internalType': 'address', 'name': 'tokenY', 'type': 'address'}, {'internalType': 'uint24', 'name': 'fee', 'type': 'uint24'}, {'internalType': 'int24', 'name': 'boundaryPt', 'type': 'int24'}, {'internalType': 'address', 'name': 'recipient', 'type': 'address'}, {'internalType': 'uint128', 'name': 'amount', 'type': 'uint128'}, {'internalType': 'uint256', 'name': 'maxPayed', 'type': 'uint256'}, {'internalType': 'uint256', 'name': 'minAcquired', 'type': 'uint256'}, {'internalType': 'uint256', 'name': 'deadline', 'type': 'uint256'}], 'internalType': 'struct Swap.SwapParams', 'name': 'swapParams', 'type': 'tuple'}], 'name': 'swapX2YDesireY', 'outputs': [], 'stateMutability': 'payable', 'type': 'function'}, {'inputs': [{'components': [{'internalType': 'address', 'name': 'tokenX', 'type': 'address'}, {'internalType': 'address', 'name': 'tokenY', 'type': 'address'}, {'internalType': 'uint24', 'name': 'fee', 'type': 'uint24'}, {'internalType': 'int24', 'name': 'boundaryPt', 'type': 'int24'}, {'internalType': 'address', 'name': 'recipient', 'type': 'address'}, {'internalType': 'uint128', 'name': 'amount', 'type': 'uint128'}, {'internalType': 'uint256', 'name': 'maxPayed', 'type': 'uint256'}, {'internalType': 'uint256', 'name': 'minAcquired', 'type': 'uint256'}, {'internalType': 'uint256', 'name': 'deadline', 'type': 'uint256'}], 'internalType': 'struct Swap.SwapParams', 'name': 'swapParams', 'type': 'tuple'}], 'name': 'swapY2X', 'outputs': [], 'stateMutability': 'payable', 'type': 'function'}, {'inputs': [{'internalType': 'uint256', 'name': 'x', 'type': 'uint256'}, {'internalType': 'uint256', 'name': 'y', 'type': 'uint256'}, {'internalType': 'bytes', 'name': 'data', 'type': 'bytes'}], 'name': 'swapY2XCallback', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{'components': [{'internalType': 'address', 'name': 'tokenX', 'type': 'address'}, {'internalType': 'address', 'name': 'tokenY', 'type': 'address'}, {'internalType': 'uint24', 'name': 'fee', 'type': 'uint24'}, {'internalType': 'int24', 'name': 'boundaryPt', 'type': 'int24'}, {'internalType': 'address', 'name': 'recipient', 'type': 'address'}, {'internalType': 'uint128', 'name': 'amount', 'type': 'uint128'}, {'internalType': 'uint256', 'name': 'maxPayed', 'type': 'uint256'}, {'internalType': 'uint256', 'name': 'minAcquired', 'type': 'uint256'}, {'internalType': 'uint256', 'name': 'deadline', 'type': 'uint256'}], 'internalType': 'struct Swap.SwapParams', 'name': 'swapParams', 'type': 'tuple'}], 'name': 'swapY2XDesireX', 'outputs': [], 'stateMutability': 'payable', 'type': 'function'}, {'inputs': [{'internalType': 'address', 'name': 'token', 'type': 'address'}, {'internalType': 'uint256', 'name': 'minAmount', 'type': 'uint256'}, {'internalType': 'address', 'name': 'recipient', 'type': 'address'}], 'name': 'sweepToken', 'outputs': [], 'stateMutability': 'payable', 'type': 'function'}, {'inputs': [{'internalType': 'uint256', 'name': 'minAmount', 'type': 'uint256'}, {'internalType': 'address', 'name': 'recipient', 'type': 'address'}], 'name': 'unwrapWETH9', 'outputs': [], 'stateMutability': 'payable', 'type': 'function'}, {'stateMutability': 'payable', 'type': 'receive'}]
ORBITER_ABI = {
'evm_contract': [{'inputs': [{'internalType': 'address payable', 'name': '_to', 'type': 'address'}, {'internalType': 'bytes', 'name': '_ext', 'type': 'bytes'}], 'name': 'transfer', 'outputs': [], 'stateMutability': 'payable', 'type': 'function'}, {'inputs': [{'internalType': 'contract IERC20', 'name': '_token', 'type': 'address'}, {'internalType': 'address', 'name': '_to', 'type': 'address'}, {'internalType': 'uint256', 'name': '_amount', 'type': 'uint256'}, {'internalType': 'bytes', 'name': '_ext', 'type': 'bytes'}], 'name': 'transferERC20', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}],
'stark_contract': [{'name': 'Uint256', 'size': 2, 'type': 'struct', 'members': [{'name': 'low', 'type': 'felt', 'offset': 0}, {'name': 'high', 'type': 'felt', 'offset': 1}]}, {'name': 'transferERC20', 'type': 'function', 'inputs': [{'name': '_token', 'type': 'felt'}, {'name': '_to', 'type': 'felt'}, {'name': '_amount', 'type': 'Uint256'}, {'name': '_ext', 'type': 'felt'}], 'outputs': []}]
}
RHINO_ABI = {
'router': [{'anonymous': False, 'inputs': [{'indexed': True, 'internalType': 'address', 'name': 'user', 'type': 'address'}, {'indexed': True, 'internalType': 'address', 'name': 'token', 'type': 'address'}, {'indexed': False, 'internalType': 'uint256', 'name': 'amount', 'type': 'uint256'}], 'name': 'BridgedDeposit', 'type': 'event'}, {'anonymous': False, 'inputs': [{'indexed': True, 'internalType': 'address', 'name': 'user', 'type': 'address'}, {'indexed': True, 'internalType': 'address', 'name': 'token', 'type': 'address'}, {'indexed': False, 'internalType': 'uint256', 'name': 'amount', 'type': 'uint256'}, {'indexed': False, 'internalType': 'string', 'name': 'withdrawalId', 'type': 'string'}], 'name': 'BridgedWithdrawal', 'type': 'event'}, {'anonymous': False, 'inputs': [{'indexed': False, 'internalType': 'uint8', 'name': 'version', 'type': 'uint8'}], 'name': 'Initialized', 'type': 'event'}, {'anonymous': False, 'inputs': [{'indexed': True, 'internalType': 'address', 'name': 'previousOwner', 'type': 'address'}, {'indexed': True, 'internalType': 'address', 'name': 'newOwner', 'type': 'address'}], 'name': 'OwnershipTransferred', 'type': 'event'}, {'inputs': [{'internalType': 'address', 'name': 'token', 'type': 'address'}, {'internalType': 'uint256', 'name': 'amount', 'type': 'uint256'}], 'name': 'addFunds', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [], 'name': 'addFundsNative', 'outputs': [], 'stateMutability': 'payable', 'type': 'function'}, {'inputs': [{'internalType': 'address', 'name': 'user', 'type': 'address'}, {'internalType': 'bool', 'name': 'value', 'type': 'bool'}], 'name': 'authorize', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{'internalType': 'address', 'name': '', 'type': 'address'}], 'name': 'authorized', 'outputs': [{'internalType': 'bool', 'name': '', 'type': 'bool'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [{'internalType': 'address', 'name': 'token', 'type': 'address'}, {'internalType': 'uint256', 'name': 'amount', 'type': 'uint256'}], 'name': 'deposit', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [], 'name': 'depositNative', 'outputs': [], 'stateMutability': 'payable', 'type': 'function'}, {'inputs': [], 'name': 'initialize', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [], 'name': 'owner', 'outputs': [{'internalType': 'address', 'name': '', 'type': 'address'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [{'internalType': 'string', 'name': '', 'type': 'string'}], 'name': 'processedWithdrawalIds', 'outputs': [{'internalType': 'bool', 'name': '', 'type': 'bool'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [{'internalType': 'address', 'name': 'token', 'type': 'address'}, {'internalType': 'address', 'name': 'to', 'type': 'address'}, {'internalType': 'uint256', 'name': 'amount', 'type': 'uint256'}], 'name': 'removeFunds', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{'internalType': 'address payable', 'name': 'to', 'type': 'address'}, {'internalType': 'uint256', 'name': 'amount', 'type': 'uint256'}], 'name': 'removeFundsNative', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [], 'name': 'renounceOwnership', 'outputs': [], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [{'internalType': 'address', 'name': 'newOwner', 'type': 'address'}], 'name': 'transferOwner', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{'internalType': 'address', 'name': 'newOwner', 'type': 'address'}], 'name': 'transferOwnership', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{'internalType': 'address', 'name': 'token', 'type': 'address'}, {'internalType': 'address', 'name': 'to', 'type': 'address'}, {'internalType': 'uint256', 'name': 'amount', 'type': 'uint256'}, {'internalType': 'string', 'name': 'withdrawalId', 'type': 'string'}], 'name': 'withdraw', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{'internalType': 'address payable', 'name': 'to', 'type': 'address'}, {'internalType': 'uint256', 'name': 'amount', 'type': 'uint256'}, {'internalType': 'string', 'name': 'withdrawalId', 'type': 'string'}], 'name': 'withdrawNative', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}]
}
MINTFUN_ABI = {
1: [{'inputs': [{'internalType': 'uint32', 'name': 'quantity', 'type': 'uint32'}], 'name': 'mint', 'outputs': [], 'stateMutability': 'payable', 'type': 'function'}, {'inputs': [], 'name': 'name', 'outputs': [{'internalType': 'string', 'name': '', 'type': 'string'}], 'stateMutability': 'view', 'type': 'function'}],
}
UNISWAP_ABI = {
'router': [{"type":"constructor","stateMutability":"nonpayable","inputs":[{"type":"address","name":"_factoryV2","internalType":"address"},{"type":"address","name":"factoryV3","internalType":"address"},{"type":"address","name":"_positionManager","internalType":"address"},{"type":"address","name":"_WETH9","internalType":"address"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address"}],"name":"WETH9","inputs":[]},{"type":"function","stateMutability":"payable","outputs":[],"name":"approveMax","inputs":[{"type":"address","name":"token","internalType":"address"}]},{"type":"function","stateMutability":"payable","outputs":[],"name":"approveMaxMinusOne","inputs":[{"type":"address","name":"token","internalType":"address"}]},{"type":"function","stateMutability":"payable","outputs":[],"name":"approveZeroThenMax","inputs":[{"type":"address","name":"token","internalType":"address"}]},{"type":"function","stateMutability":"payable","outputs":[],"name":"approveZeroThenMaxMinusOne","inputs":[{"type":"address","name":"token","internalType":"address"}]},{"type":"function","stateMutability":"payable","outputs":[{"type":"bytes","name":"result","internalType":"bytes"}],"name":"callPositionManager","inputs":[{"type":"bytes","name":"data","internalType":"bytes"}]},{"type":"function","stateMutability":"view","outputs":[],"name":"checkOracleSlippage","inputs":[{"type":"bytes[]","name":"paths","internalType":"bytes[]"},{"type":"uint128[]","name":"amounts","internalType":"uint128[]"},{"type":"uint24","name":"maximumTickDivergence","internalType":"uint24"},{"type":"uint32","name":"secondsAgo","internalType":"uint32"}]},{"type":"function","stateMutability":"view","outputs":[],"name":"checkOracleSlippage","inputs":[{"type":"bytes","name":"path","internalType":"bytes"},{"type":"uint24","name":"maximumTickDivergence","internalType":"uint24"},{"type":"uint32","name":"secondsAgo","internalType":"uint32"}]},{"type":"function","stateMutability":"payable","outputs":[{"type":"uint256","name":"amountOut","internalType":"uint256"}],"name":"exactInput","inputs":[{"type":"tuple","name":"params","internalType":"struct IV3SwapRouter.ExactInputParams","components":[{"type":"bytes","name":"path","internalType":"bytes"},{"type":"address","name":"recipient","internalType":"address"},{"type":"uint256","name":"amountIn","internalType":"uint256"},{"type":"uint256","name":"amountOutMinimum","internalType":"uint256"}]}]},{"type":"function","stateMutability":"payable","outputs":[{"type":"uint256","name":"amountOut","internalType":"uint256"}],"name":"exactInputSingle","inputs":[{"type":"tuple","name":"params","internalType":"struct IV3SwapRouter.ExactInputSingleParams","components":[{"type":"address","name":"tokenIn","internalType":"address"},{"type":"address","name":"tokenOut","internalType":"address"},{"type":"uint24","name":"fee","internalType":"uint24"},{"type":"address","name":"recipient","internalType":"address"},{"type":"uint256","name":"amountIn","internalType":"uint256"},{"type":"uint256","name":"amountOutMinimum","internalType":"uint256"},{"type":"uint160","name":"sqrtPriceLimitX96","internalType":"uint160"}]}]},{"type":"function","stateMutability":"payable","outputs":[{"type":"uint256","name":"amountIn","internalType":"uint256"}],"name":"exactOutput","inputs":[{"type":"tuple","name":"params","internalType":"struct IV3SwapRouter.ExactOutputParams","components":[{"type":"bytes","name":"path","internalType":"bytes"},{"type":"address","name":"recipient","internalType":"address"},{"type":"uint256","name":"amountOut","internalType":"uint256"},{"type":"uint256","name":"amountInMaximum","internalType":"uint256"}]}]},{"type":"function","stateMutability":"payable","outputs":[{"type":"uint256","name":"amountIn","internalType":"uint256"}],"name":"exactOutputSingle","inputs":[{"type":"tuple","name":"params","internalType":"struct IV3SwapRouter.ExactOutputSingleParams","components":[{"type":"address","name":"tokenIn","internalType":"address"},{"type":"address","name":"tokenOut","internalType":"address"},{"type":"uint24","name":"fee","internalType":"uint24"},{"type":"address","name":"recipient","internalType":"address"},{"type":"uint256","name":"amountOut","internalType":"uint256"},{"type":"uint256","name":"amountInMaximum","internalType":"uint256"},{"type":"uint160","name":"sqrtPriceLimitX96","internalType":"uint160"}]}]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address"}],"name":"factory","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address"}],"name":"factoryV2","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"uint8","name":"","internalType":"enum IApproveAndCall.ApprovalType"}],"name":"getApprovalType","inputs":[{"type":"address","name":"token","internalType":"address"},{"type":"uint256","name":"amount","internalType":"uint256"}]},{"type":"function","stateMutability":"payable","outputs":[{"type":"bytes","name":"result","internalType":"bytes"}],"name":"increaseLiquidity","inputs":[{"type":"tuple","name":"params","internalType":"struct IApproveAndCall.IncreaseLiquidityParams","components":[{"type":"address","name":"token0","internalType":"address"},{"type":"address","name":"token1","internalType":"address"},{"type":"uint256","name":"tokenId","internalType":"uint256"},{"type":"uint256","name":"amount0Min","internalType":"uint256"},{"type":"uint256","name":"amount1Min","internalType":"uint256"}]}]},{"type":"function","stateMutability":"payable","outputs":[{"type":"bytes","name":"result","internalType":"bytes"}],"name":"mint","inputs":[{"type":"tuple","name":"params","internalType":"struct IApproveAndCall.MintParams","components":[{"type":"address","name":"token0","internalType":"address"},{"type":"address","name":"token1","internalType":"address"},{"type":"uint24","name":"fee","internalType":"uint24"},{"type":"int24","name":"tickLower","internalType":"int24"},{"type":"int24","name":"tickUpper","internalType":"int24"},{"type":"uint256","name":"amount0Min","internalType":"uint256"},{"type":"uint256","name":"amount1Min","internalType":"uint256"},{"type":"address","name":"recipient","internalType":"address"}]}]},{"type":"function","stateMutability":"payable","outputs":[{"type":"bytes[]","name":"","internalType":"bytes[]"}],"name":"multicall","inputs":[{"type":"bytes32","name":"previousBlockhash","internalType":"bytes32"},{"type":"bytes[]","name":"data","internalType":"bytes[]"}]},{"type":"function","stateMutability":"payable","outputs":[{"type":"bytes[]","name":"","internalType":"bytes[]"}],"name":"multicall","inputs":[{"type":"uint256","name":"deadline","internalType":"uint256"},{"type":"bytes[]","name":"data","internalType":"bytes[]"}]},{"type":"function","stateMutability":"payable","outputs":[{"type":"bytes[]","name":"results","internalType":"bytes[]"}],"name":"multicall","inputs":[{"type":"bytes[]","name":"data","internalType":"bytes[]"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address"}],"name":"positionManager","inputs":[]},{"type":"function","stateMutability":"payable","outputs":[],"name":"pull","inputs":[{"type":"address","name":"token","internalType":"address"},{"type":"uint256","name":"value","internalType":"uint256"}]},{"type":"function","stateMutability":"payable","outputs":[],"name":"refundETH","inputs":[]},{"type":"function","stateMutability":"payable","outputs":[],"name":"selfPermit","inputs":[{"type":"address","name":"token","internalType":"address"},{"type":"uint256","name":"value","internalType":"uint256"},{"type":"uint256","name":"deadline","internalType":"uint256"},{"type":"uint8","name":"v","internalType":"uint8"},{"type":"bytes32","name":"r","internalType":"bytes32"},{"type":"bytes32","name":"s","internalType":"bytes32"}]},{"type":"function","stateMutability":"payable","outputs":[],"name":"selfPermitAllowed","inputs":[{"type":"address","name":"token","internalType":"address"},{"type":"uint256","name":"nonce","internalType":"uint256"},{"type":"uint256","name":"expiry","internalType":"uint256"},{"type":"uint8","name":"v","internalType":"uint8"},{"type":"bytes32","name":"r","internalType":"bytes32"},{"type":"bytes32","name":"s","internalType":"bytes32"}]},{"type":"function","stateMutability":"payable","outputs":[],"name":"selfPermitAllowedIfNecessary","inputs":[{"type":"address","name":"token","internalType":"address"},{"type":"uint256","name":"nonce","internalType":"uint256"},{"type":"uint256","name":"expiry","internalType":"uint256"},{"type":"uint8","name":"v","internalType":"uint8"},{"type":"bytes32","name":"r","internalType":"bytes32"},{"type":"bytes32","name":"s","internalType":"bytes32"}]},{"type":"function","stateMutability":"payable","outputs":[],"name":"selfPermitIfNecessary","inputs":[{"type":"address","name":"token","internalType":"address"},{"type":"uint256","name":"value","internalType":"uint256"},{"type":"uint256","name":"deadline","internalType":"uint256"},{"type":"uint8","name":"v","internalType":"uint8"},{"type":"bytes32","name":"r","internalType":"bytes32"},{"type":"bytes32","name":"s","internalType":"bytes32"}]},{"type":"function","stateMutability":"payable","outputs":[{"type":"uint256","name":"amountOut","internalType":"uint256"}],"name":"swapExactTokensForTokens","inputs":[{"type":"uint256","name":"amountIn","internalType":"uint256"},{"type":"uint256","name":"amountOutMin","internalType":"uint256"},{"type":"address[]","name":"path","internalType":"address[]"},{"type":"address","name":"to","internalType":"address"}]},{"type":"function","stateMutability":"payable","outputs":[{"type":"uint256","name":"amountIn","internalType":"uint256"}],"name":"swapTokensForExactTokens","inputs":[{"type":"uint256","name":"amountOut","internalType":"uint256"},{"type":"uint256","name":"amountInMax","internalType":"uint256"},{"type":"address[]","name":"path","internalType":"address[]"},{"type":"address","name":"to","internalType":"address"}]},{"type":"function","stateMutability":"payable","outputs":[],"name":"sweepToken","inputs":[{"type":"address","name":"token","internalType":"address"},{"type":"uint256","name":"amountMinimum","internalType":"uint256"},{"type":"address","name":"recipient","internalType":"address"}]},{"type":"function","stateMutability":"payable","outputs":[],"name":"sweepToken","inputs":[{"type":"address","name":"token","internalType":"address"},{"type":"uint256","name":"amountMinimum","internalType":"uint256"}]},{"type":"function","stateMutability":"payable","outputs":[],"name":"sweepTokenWithFee","inputs":[{"type":"address","name":"token","internalType":"address"},{"type":"uint256","name":"amountMinimum","internalType":"uint256"},{"type":"uint256","name":"feeBips","internalType":"uint256"},{"type":"address","name":"feeRecipient","internalType":"address"}]},{"type":"function","stateMutability":"payable","outputs":[],"name":"sweepTokenWithFee","inputs":[{"type":"address","name":"token","internalType":"address"},{"type":"uint256","name":"amountMinimum","internalType":"uint256"},{"type":"address","name":"recipient","internalType":"address"},{"type":"uint256","name":"feeBips","internalType":"uint256"},{"type":"address","name":"feeRecipient","internalType":"address"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"uniswapV3SwapCallback","inputs":[{"type":"int256","name":"amount0Delta","internalType":"int256"},{"type":"int256","name":"amount1Delta","internalType":"int256"},{"type":"bytes","name":"_data","internalType":"bytes"}]},{"type":"function","stateMutability":"payable","outputs":[],"name":"unwrapWETH9","inputs":[{"type":"uint256","name":"amountMinimum","internalType":"uint256"},{"type":"address","name":"recipient","internalType":"address"}]},{"type":"function","stateMutability":"payable","outputs":[],"name":"unwrapWETH9","inputs":[{"type":"uint256","name":"amountMinimum","internalType":"uint256"}]},{"type":"function","stateMutability":"payable","outputs":[],"name":"unwrapWETH9WithFee","inputs":[{"type":"uint256","name":"amountMinimum","internalType":"uint256"},{"type":"address","name":"recipient","internalType":"address"},{"type":"uint256","name":"feeBips","internalType":"uint256"},{"type":"address","name":"feeRecipient","internalType":"address"}]},{"type":"function","stateMutability":"payable","outputs":[],"name":"unwrapWETH9WithFee","inputs":[{"type":"uint256","name":"amountMinimum","internalType":"uint256"},{"type":"uint256","name":"feeBips","internalType":"uint256"},{"type":"address","name":"feeRecipient","internalType":"address"}]},{"type":"function","stateMutability":"payable","outputs":[],"name":"wrapETH","inputs":[{"type":"uint256","name":"value","internalType":"uint256"}]},{"type":"receive","stateMutability":"payable"}],
'quoter': [{"inputs":[{"internalType":"address","name":"_deployer","type":"address"},{"internalType":"address","name":"_factory","type":"address"},{"internalType":"address","name":"_WETH9","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"WETH9","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deployer","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"factory","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"int256","name":"amount0Delta","type":"int256"},{"internalType":"int256","name":"amount1Delta","type":"int256"},{"internalType":"bytes","name":"path","type":"bytes"}],"name":"pancakeV3SwapCallback","outputs":[],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"path","type":"bytes"},{"internalType":"uint256","name":"amountIn","type":"uint256"}],"name":"quoteExactInput","outputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"uint160[]","name":"sqrtPriceX96AfterList","type":"uint160[]"},{"internalType":"uint32[]","name":"initializedTicksCrossedList","type":"uint32[]"},{"internalType":"uint256","name":"gasEstimate","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"tokenIn","type":"address"},{"internalType":"address","name":"tokenOut","type":"address"},{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"uint160","name":"sqrtPriceLimitX96","type":"uint160"}],"internalType":"struct IQuoterV2.QuoteExactInputSingleParams","name":"params","type":"tuple"}],"name":"quoteExactInputSingle","outputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"uint160","name":"sqrtPriceX96After","type":"uint160"},{"internalType":"uint32","name":"initializedTicksCrossed","type":"uint32"},{"internalType":"uint256","name":"gasEstimate","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"path","type":"bytes"},{"internalType":"uint256","name":"amountOut","type":"uint256"}],"name":"quoteExactOutput","outputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint160[]","name":"sqrtPriceX96AfterList","type":"uint160[]"},{"internalType":"uint32[]","name":"initializedTicksCrossedList","type":"uint32[]"},{"internalType":"uint256","name":"gasEstimate","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"tokenIn","type":"address"},{"internalType":"address","name":"tokenOut","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"uint160","name":"sqrtPriceLimitX96","type":"uint160"}],"internalType":"struct IQuoterV2.QuoteExactOutputSingleParams","name":"params","type":"tuple"}],"name":"quoteExactOutputSingle","outputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint160","name":"sqrtPriceX96After","type":"uint160"},{"internalType":"uint32","name":"initializedTicksCrossed","type":"uint32"},{"internalType":"uint256","name":"gasEstimate","type":"uint256"}],"stateMutability":"nonpayable","type":"function"}]
}
WETH_ABI = [{'inputs': [], 'stateMutability': 'nonpayable', 'type': 'constructor'}, {'anonymous': False, 'inputs': [{'indexed': True, 'internalType': 'address', 'name': 'owner', 'type': 'address'}, {'indexed': True, 'internalType': 'address', 'name': 'spender', 'type': 'address'}, {'indexed': False, 'internalType': 'uint256', 'name': 'value', 'type': 'uint256'}], 'name': 'Approval', 'type': 'event'}, {'anonymous': False, 'inputs': [{'indexed': True, 'internalType': 'address', 'name': '_account', 'type': 'address'}, {'indexed': False, 'internalType': 'uint256', 'name': '_amount', 'type': 'uint256'}], 'name': 'BridgeBurn', 'type': 'event'}, {'anonymous': False, 'inputs': [{'indexed': True, 'internalType': 'address', 'name': 'l1Token', 'type': 'address'}, {'indexed': False, 'internalType': 'string', 'name': 'name', 'type': 'string'}, {'indexed': False, 'internalType': 'string', 'name': 'symbol', 'type': 'string'}, {'indexed': False, 'internalType': 'uint8', 'name': 'decimals', 'type': 'uint8'}], 'name': 'BridgeInitialize', 'type': 'event'}, {'anonymous': False, 'inputs': [{'indexed': True, 'internalType': 'address', 'name': '_account', 'type': 'address'}, {'indexed': False, 'internalType': 'uint256', 'name': '_amount', 'type': 'uint256'}], 'name': 'BridgeMint', 'type': 'event'}, {'anonymous': False, 'inputs': [], 'name': 'EIP712DomainChanged', 'type': 'event'}, {'anonymous': False, 'inputs': [{'indexed': False, 'internalType': 'string', 'name': 'name', 'type': 'string'}, {'indexed': False, 'internalType': 'string', 'name': 'symbol', 'type': 'string'}, {'indexed': False, 'internalType': 'uint8', 'name': 'decimals', 'type': 'uint8'}], 'name': 'Initialize', 'type': 'event'}, {'anonymous': False, 'inputs': [{'indexed': False, 'internalType': 'uint8', 'name': 'version', 'type': 'uint8'}], 'name': 'Initialized', 'type': 'event'}, {'anonymous': False, 'inputs': [{'indexed': True, 'internalType': 'address', 'name': 'from', 'type': 'address'}, {'indexed': True, 'internalType': 'address', 'name': 'to', 'type': 'address'}, {'indexed': False, 'internalType': 'uint256', 'name': 'value', 'type': 'uint256'}], 'name': 'Transfer', 'type': 'event'}, {'inputs': [], 'name': 'DOMAIN_SEPARATOR', 'outputs': [{'internalType': 'bytes32', 'name': '', 'type': 'bytes32'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [{'internalType': 'address', 'name': 'owner', 'type': 'address'}, {'internalType': 'address', 'name': 'spender', 'type': 'address'}], 'name': 'allowance', 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [{'internalType': 'address', 'name': 'spender', 'type': 'address'}, {'internalType': 'uint256', 'name': 'amount', 'type': 'uint256'}], 'name': 'approve', 'outputs': [{'internalType': 'bool', 'name': '', 'type': 'bool'}], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{'internalType': 'address', 'name': 'account', 'type': 'address'}], 'name': 'balanceOf', 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [{'internalType': 'address', 'name': '_from', 'type': 'address'}, {'internalType': 'uint256', 'name': '_amount', 'type': 'uint256'}], 'name': 'bridgeBurn', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{'internalType': 'address', 'name': '', 'type': 'address'}, {'internalType': 'uint256', 'name': '', 'type': 'uint256'}], 'name': 'bridgeMint', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [], 'name': 'decimals', 'outputs': [{'internalType': 'uint8', 'name': '', 'type': 'uint8'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [{'internalType': 'address', 'name': 'spender', 'type': 'address'}, {'internalType': 'uint256', 'name': 'subtractedValue', 'type': 'uint256'}], 'name': 'decreaseAllowance', 'outputs': [{'internalType': 'bool', 'name': '', 'type': 'bool'}], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [], 'name': 'deposit', 'outputs': [], 'stateMutability': 'payable', 'type': 'function'}, {'inputs': [{'internalType': 'address', 'name': '_to', 'type': 'address'}], 'name': 'depositTo', 'outputs': [], 'stateMutability': 'payable', 'type': 'function'}, {'inputs': [], 'name': 'eip712Domain', 'outputs': [{'internalType': 'bytes1', 'name': 'fields', 'type': 'bytes1'}, {'internalType': 'string', 'name': 'name', 'type': 'string'}, {'internalType': 'string', 'name': 'version', 'type': 'string'}, {'internalType': 'uint256', 'name': 'chainId', 'type': 'uint256'}, {'internalType': 'address', 'name': 'verifyingContract', 'type': 'address'}, {'internalType': 'bytes32', 'name': 'salt', 'type': 'bytes32'}, {'internalType': 'uint256[]', 'name': 'extensions', 'type': 'uint256[]'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [{'internalType': 'address', 'name': 'spender', 'type': 'address'}, {'internalType': 'uint256', 'name': 'addedValue', 'type': 'uint256'}], 'name': 'increaseAllowance', 'outputs': [{'internalType': 'bool', 'name': '', 'type': 'bool'}], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{'internalType': 'string', 'name': 'name_', 'type': 'string'}, {'internalType': 'string', 'name': 'symbol_', 'type': 'string'}], 'name': 'initialize', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [], 'name': 'l1Address', 'outputs': [{'internalType': 'address', 'name': '', 'type': 'address'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [], 'name': 'l2Bridge', 'outputs': [{'internalType': 'address', 'name': '', 'type': 'address'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [], 'name': 'name', 'outputs': [{'internalType': 'string', 'name': '', 'type': 'string'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [{'internalType': 'address', 'name': 'owner', 'type': 'address'}], 'name': 'nonces', 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [{'internalType': 'address', 'name': 'owner', 'type': 'address'}, {'internalType': 'address', 'name': 'spender', 'type': 'address'}, {'internalType': 'uint256', 'name': 'value', 'type': 'uint256'}, {'internalType': 'uint256', 'name': 'deadline', 'type': 'uint256'}, {'internalType': 'uint8', 'name': 'v', 'type': 'uint8'}, {'internalType': 'bytes32', 'name': 'r', 'type': 'bytes32'}, {'internalType': 'bytes32', 'name': 's', 'type': 'bytes32'}], 'name': 'permit', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [], 'name': 'symbol', 'outputs': [{'internalType': 'string', 'name': '', 'type': 'string'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [], 'name': 'totalSupply', 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [{'internalType': 'address', 'name': 'to', 'type': 'address'}, {'internalType': 'uint256', 'name': 'amount', 'type': 'uint256'}], 'name': 'transfer', 'outputs': [{'internalType': 'bool', 'name': '', 'type': 'bool'}], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{'internalType': 'address', 'name': 'from', 'type': 'address'}, {'internalType': 'address', 'name': 'to', 'type': 'address'}, {'internalType': 'uint256', 'name': 'amount', 'type': 'uint256'}], 'name': 'transferFrom', 'outputs': [{'internalType': 'bool', 'name': '', 'type': 'bool'}], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{'internalType': 'uint256', 'name': '_amount', 'type': 'uint256'}], 'name': 'withdraw', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{'internalType': 'address', 'name': '_to', 'type': 'address'}, {'internalType': 'uint256', 'name': '_amount', 'type': 'uint256'}], 'name': 'withdrawTo', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'stateMutability': 'payable', 'type': 'receive'}]
NATIVE_ABI = {
'zkSync': {
'deposit': [{'anonymous': False, 'inputs': [{'indexed': True, 'internalType': 'address', 'name': 'to', 'type': 'address'}, {'indexed': False, 'internalType': 'uint256', 'name': 'amount', 'type': 'uint256'}], 'name': 'EthWithdrawalFinalized', 'type': 'event'}, {'anonymous': False, 'inputs': [{'indexed': False, 'internalType': 'uint256', 'name': 'txId', 'type': 'uint256'}, {'indexed': False, 'internalType': 'bytes32', 'name': 'txHash', 'type': 'bytes32'}, {'indexed': False, 'internalType': 'uint64', 'name': 'expirationTimestamp', 'type': 'uint64'}, {'components': [{'internalType': 'uint256', 'name': 'txType', 'type': 'uint256'}, {'internalType': 'uint256', 'name': 'from', 'type': 'uint256'}, {'internalType': 'uint256', 'name': 'to', 'type': 'uint256'}, {'internalType': 'uint256', 'name': 'gasLimit', 'type': 'uint256'}, {'internalType': 'uint256', 'name': 'gasPerPubdataByteLimit', 'type': 'uint256'}, {'internalType': 'uint256', 'name': 'maxFeePerGas', 'type': 'uint256'}, {'internalType': 'uint256', 'name': 'maxPriorityFeePerGas', 'type': 'uint256'}, {'internalType': 'uint256', 'name': 'paymaster', 'type': 'uint256'}, {'internalType': 'uint256', 'name': 'nonce', 'type': 'uint256'}, {'internalType': 'uint256', 'name': 'value', 'type': 'uint256'}, {'internalType': 'uint256[4]', 'name': 'reserved', 'type': 'uint256[4]'}, {'internalType': 'bytes', 'name': 'data', 'type': 'bytes'}, {'internalType': 'bytes', 'name': 'signature', 'type': 'bytes'}, {'internalType': 'uint256[]', 'name': 'factoryDeps', 'type': 'uint256[]'}, {'internalType': 'bytes', 'name': 'paymasterInput', 'type': 'bytes'}, {'internalType': 'bytes', 'name': 'reservedDynamic', 'type': 'bytes'}], 'indexed': False, 'internalType': 'struct IMailbox.L2CanonicalTransaction', 'name': 'transaction', 'type': 'tuple'}, {'indexed': False, 'internalType': 'bytes[]', 'name': 'factoryDeps', 'type': 'bytes[]'}], 'name': 'NewPriorityRequest', 'type': 'event'}, {'inputs': [{'internalType': 'uint256', 'name': '_l2BlockNumber', 'type': 'uint256'}, {'internalType': 'uint256', 'name': '_l2MessageIndex', 'type': 'uint256'}, {'internalType': 'uint16', 'name': '_l2TxNumberInBlock', 'type': 'uint16'}, {'internalType': 'bytes', 'name': '_message', 'type': 'bytes'}, {'internalType': 'bytes32[]', 'name': '_merkleProof', 'type': 'bytes32[]'}], 'name': 'finalizeEthWithdrawal', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{'internalType': 'uint256', 'name': '_gasPrice', 'type': 'uint256'}, {'internalType': 'uint256', 'name': '_l2GasLimit', 'type': 'uint256'}, {'internalType': 'uint256', 'name': '_l2GasPerPubdataByteLimit', 'type': 'uint256'}], 'name': 'l2TransactionBaseCost', 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], 'stateMutability': 'pure', 'type': 'function'}, {'inputs': [{'internalType': 'bytes32', 'name': '_l2TxHash', 'type': 'bytes32'}, {'internalType': 'uint256', 'name': '_l2BlockNumber', 'type': 'uint256'}, {'internalType': 'uint256', 'name': '_l2MessageIndex', 'type': 'uint256'}, {'internalType': 'uint16', 'name': '_l2TxNumberInBlock', 'type': 'uint16'}, {'internalType': 'bytes32[]', 'name': '_merkleProof', 'type': 'bytes32[]'}, {'internalType': 'enum TxStatus', 'name': '_status', 'type': 'uint8'}], 'name': 'proveL1ToL2TransactionStatus', 'outputs': [{'internalType': 'bool', 'name': '', 'type': 'bool'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [{'internalType': 'uint256', 'name': '_blockNumber', 'type': 'uint256'}, {'internalType': 'uint256', 'name': '_index', 'type': 'uint256'}, {'components': [{'internalType': 'uint8', 'name': 'l2ShardId', 'type': 'uint8'}, {'internalType': 'bool', 'name': 'isService', 'type': 'bool'}, {'internalType': 'uint16', 'name': 'txNumberInBlock', 'type': 'uint16'}, {'internalType': 'address', 'name': 'sender', 'type': 'address'}, {'internalType': 'bytes32', 'name': 'key', 'type': 'bytes32'}, {'internalType': 'bytes32', 'name': 'value', 'type': 'bytes32'}], 'internalType': 'struct L2Log', 'name': '_log', 'type': 'tuple'}, {'internalType': 'bytes32[]', 'name': '_proof', 'type': 'bytes32[]'}], 'name': 'proveL2LogInclusion', 'outputs': [{'internalType': 'bool', 'name': '', 'type': 'bool'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [{'internalType': 'uint256', 'name': '_blockNumber', 'type': 'uint256'}, {'internalType': 'uint256', 'name': '_index', 'type': 'uint256'}, {'components': [{'internalType': 'uint16', 'name': 'txNumberInBlock', 'type': 'uint16'}, {'internalType': 'address', 'name': 'sender', 'type': 'address'}, {'internalType': 'bytes', 'name': 'data', 'type': 'bytes'}], 'internalType': 'struct L2Message', 'name': '_message', 'type': 'tuple'}, {'internalType': 'bytes32[]', 'name': '_proof', 'type': 'bytes32[]'}], 'name': 'proveL2MessageInclusion', 'outputs': [{'internalType': 'bool', 'name': '', 'type': 'bool'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [{'internalType': 'address', 'name': '_contractL2', 'type': 'address'}, {'internalType': 'uint256', 'name': '_l2Value', 'type': 'uint256'}, {'internalType': 'bytes', 'name': '_calldata', 'type': 'bytes'}, {'internalType': 'uint256', 'name': '_l2GasLimit', 'type': 'uint256'}, {'internalType': 'uint256', 'name': '_l2GasPerPubdataByteLimit', 'type': 'uint256'}, {'internalType': 'bytes[]', 'name': '_factoryDeps', 'type': 'bytes[]'}, {'internalType': 'address', 'name': '_refundRecipient', 'type': 'address'}], 'name': 'requestL2Transaction', 'outputs': [{'internalType': 'bytes32', 'name': 'canonicalTxHash', 'type': 'bytes32'}], 'stateMutability': 'payable', 'type': 'function'}],
'withdraw': [{'anonymous': False, 'inputs': [{'indexed': True, 'internalType': 'address', 'name': 'account', 'type': 'address'}, {'indexed': False, 'internalType': 'uint256', 'name': 'amount', 'type': 'uint256'}], 'name': 'Mint', 'type': 'event'}, {'anonymous': False, 'inputs': [{'indexed': True, 'internalType': 'address', 'name': 'from', 'type': 'address'}, {'indexed': True, 'internalType': 'address', 'name': 'to', 'type': 'address'}, {'indexed': False, 'internalType': 'uint256', 'name': 'value', 'type': 'uint256'}], 'name': 'Transfer', 'type': 'event'}, {'anonymous': False, 'inputs': [{'indexed': True, 'internalType': 'address', 'name': '_l2Sender', 'type': 'address'}, {'indexed': True, 'internalType': 'address', 'name': '_l1Receiver', 'type': 'address'}, {'indexed': False, 'internalType': 'uint256', 'name': '_amount', 'type': 'uint256'}], 'name': 'Withdrawal', 'type': 'event'}, {'inputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], 'name': 'balanceOf', 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [], 'name': 'decimals', 'outputs': [{'internalType': 'uint8', 'name': '', 'type': 'uint8'}], 'stateMutability': 'pure', 'type': 'function'}, {'inputs': [{'internalType': 'address', 'name': '_account', 'type': 'address'}, {'internalType': 'uint256', 'name': '_amount', 'type': 'uint256'}], 'name': 'mint', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [], 'name': 'name', 'outputs': [{'internalType': 'string', 'name': '', 'type': 'string'}], 'stateMutability': 'pure', 'type': 'function'}, {'inputs': [], 'name': 'symbol', 'outputs': [{'internalType': 'string', 'name': '', 'type': 'string'}], 'stateMutability': 'pure', 'type': 'function'}, {'inputs': [], 'name': 'totalSupply', 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [{'internalType': 'address', 'name': '_from', 'type': 'address'}, {'internalType': 'address', 'name': '_to', 'type': 'address'}, {'internalType': 'uint256', 'name': '_amount', 'type': 'uint256'}], 'name': 'transferFromTo', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{'internalType': 'address', 'name': '_l1Receiver', 'type': 'address'}], 'name': 'withdraw', 'outputs': [], 'stateMutability': 'payable', 'type': 'function'}]
},
'Starknet':{
'evm_contract': [{'anonymous': False, 'inputs': [], 'name': 'LogBridgeActivated', 'type': 'event'}, {'anonymous': False, 'inputs': [{'indexed': True, 'internalType': 'address', 'name': 'sender', 'type': 'address'}, {'indexed': False, 'internalType': 'uint256', 'name': 'amount', 'type': 'uint256'}, {'indexed': True, 'internalType': 'uint256', 'name': 'l2Recipient', 'type': 'uint256'}, {'indexed': False, 'internalType': 'uint256', 'name': 'nonce', 'type': 'uint256'}, {'indexed': False, 'internalType': 'uint256', 'name': 'fee', 'type': 'uint256'}], 'name': 'LogDeposit', 'type': 'event'}, {'anonymous': False, 'inputs': [{'indexed': True, 'internalType': 'address', 'name': 'sender', 'type': 'address'}, {'indexed': False, 'internalType': 'uint256', 'name': 'amount', 'type': 'uint256'}, {'indexed': True, 'internalType': 'uint256', 'name': 'l2Recipient', 'type': 'uint256'}, {'indexed': False, 'internalType': 'uint256', 'name': 'nonce', 'type': 'uint256'}], 'name': 'LogDepositCancelRequest', 'type': 'event'}, {'anonymous': False, 'inputs': [{'indexed': True, 'internalType': 'address', 'name': 'sender', 'type': 'address'}, {'indexed': False, 'internalType': 'uint256', 'name': 'amount', 'type': 'uint256'}, {'indexed': True, 'internalType': 'uint256', 'name': 'l2Recipient', 'type': 'uint256'}, {'indexed': False, 'internalType': 'uint256', 'name': 'nonce', 'type': 'uint256'}], 'name': 'LogDepositReclaimed', 'type': 'event'}, {'anonymous': False, 'inputs': [{'indexed': False, 'internalType': 'address', 'name': 'acceptedGovernor', 'type': 'address'}], 'name': 'LogNewGovernorAccepted', 'type': 'event'}, {'anonymous': False, 'inputs': [{'indexed': False, 'internalType': 'address', 'name': 'nominatedGovernor', 'type': 'address'}], 'name': 'LogNominatedGovernor', 'type': 'event'}, {'anonymous': False, 'inputs': [], 'name': 'LogNominationCancelled', 'type': 'event'}, {'anonymous': False, 'inputs': [{'indexed': False, 'internalType': 'address', 'name': 'removedGovernor', 'type': 'address'}], 'name': 'LogRemovedGovernor', 'type': 'event'}, {'anonymous': False, 'inputs': [{'indexed': False, 'internalType': 'uint256', 'name': 'value', 'type': 'uint256'}], 'name': 'LogSetL2TokenBridge', 'type': 'event'}, {'anonymous': False, 'inputs': [{'indexed': False, 'internalType': 'uint256', 'name': 'value', 'type': 'uint256'}], 'name': 'LogSetMaxDeposit', 'type': 'event'}, {'anonymous': False, 'inputs': [{'indexed': False, 'internalType': 'uint256', 'name': 'value', 'type': 'uint256'}], 'name': 'LogSetMaxTotalBalance', 'type': 'event'}, {'anonymous': False, 'inputs': [{'indexed': True, 'internalType': 'address', 'name': 'recipient', 'type': 'address'}, {'indexed': False, 'internalType': 'uint256', 'name': 'amount', 'type': 'uint256'}], 'name': 'LogWithdrawal', 'type': 'event'}, {'inputs': [], 'name': 'acceptGovernance', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [], 'name': 'cancelNomination', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{'internalType': 'uint256', 'name': 'l2Recipient', 'type': 'uint256'}], 'name': 'deposit', 'outputs': [], 'stateMutability': 'payable', 'type': 'function'}, {'inputs': [{'internalType': 'uint256', 'name': 'amount', 'type': 'uint256'}, {'internalType': 'uint256', 'name': 'l2Recipient', 'type': 'uint256'}], 'name': 'deposit', 'outputs': [], 'stateMutability': 'payable', 'type': 'function'}, {'inputs': [{'internalType': 'uint256', 'name': 'amount', 'type': 'uint256'}, {'internalType': 'uint256', 'name': 'l2Recipient', 'type': 'uint256'}, {'internalType': 'uint256', 'name': 'nonce', 'type': 'uint256'}], 'name': 'depositCancelRequest', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{'internalType': 'uint256', 'name': 'amount', 'type': 'uint256'}, {'internalType': 'uint256', 'name': 'l2Recipient', 'type': 'uint256'}, {'internalType': 'uint256', 'name': 'nonce', 'type': 'uint256'}], 'name': 'depositReclaim', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [], 'name': 'identify', 'outputs': [{'internalType': 'string', 'name': '', 'type': 'string'}], 'stateMutability': 'pure', 'type': 'function'}, {'inputs': [{'internalType': 'bytes', 'name': 'data', 'type': 'bytes'}], 'name': 'initialize', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [], 'name': 'isActive', 'outputs': [{'internalType': 'bool', 'name': '', 'type': 'bool'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [], 'name': 'isFrozen', 'outputs': [{'internalType': 'bool', 'name': '', 'type': 'bool'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [{'internalType': 'address', 'name': 'user', 'type': 'address'}], 'name': 'isGovernor', 'outputs': [{'internalType': 'bool', 'name': '', 'type': 'bool'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [], 'name': 'maxDeposit', 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [], 'name': 'maxTotalBalance', 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [{'internalType': 'address', 'name': 'newGovernor', 'type': 'address'}], 'name': 'nominateNewGovernor', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{'internalType': 'address', 'name': 'governorForRemoval', 'type': 'address'}], 'name': 'removeGovernor', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{'internalType': 'uint256', 'name': 'l2TokenBridge_', 'type': 'uint256'}], 'name': 'setL2TokenBridge', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{'internalType': 'uint256', 'name': 'maxDeposit_', 'type': 'uint256'}], 'name': 'setMaxDeposit', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{'internalType': 'uint256', 'name': 'maxTotalBalance_', 'type': 'uint256'}], 'name': 'setMaxTotalBalance', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{'internalType': 'uint256', 'name': 'amount', 'type': 'uint256'}, {'internalType': 'address', 'name': 'recipient', 'type': 'address'}], 'name': 'withdraw', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{'internalType': 'uint256', 'name': 'amount', 'type': 'uint256'}], 'name': 'withdraw', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}],
'stark_contract': [{'name': 'Uint256', 'size': 2, 'type': 'struct', 'members': [{'name': 'low', 'type': 'felt', 'offset': 0}, {'name': 'high', 'type': 'felt', 'offset': 1}]}, {'name': 'initialized', 'type': 'function', 'inputs': [], 'outputs': [{'name': 'res', 'type': 'felt'}], 'stateMutability': 'view'}, {'data': [{'name': 'l1_bridge_address', 'type': 'felt'}], 'keys': [], 'name': 'l1_bridge_set', 'type': 'event'}, {'data': [{'name': 'l2_token_address', 'type': 'felt'}], 'keys': [], 'name': 'l2_token_set', 'type': 'event'}, {'data': [{'name': 'l1_recipient', 'type': 'felt'}, {'name': 'amount', 'type': 'Uint256'}, {'name': 'caller_address', 'type': 'felt'}], 'keys': [], 'name': 'withdraw_initiated', 'type': 'event'}, {'data': [{'name': 'account', 'type': 'felt'}, {'name': 'amount', 'type': 'Uint256'}], 'keys': [], 'name': 'deposit_handled', 'type': 'event'}, {'name': 'get_governor', 'type': 'function', 'inputs': [], 'outputs': [{'name': 'res', 'type': 'felt'}], 'stateMutability': 'view'}, {'name': 'get_l1_bridge', 'type': 'function', 'inputs': [], 'outputs': [{'name': 'res', 'type': 'felt'}], 'stateMutability': 'view'}, {'name': 'get_l2_token', 'type': 'function', 'inputs': [], 'outputs': [{'name': 'res', 'type': 'felt'}], 'stateMutability': 'view'}, {'name': 'get_version', 'type': 'function', 'inputs': [], 'outputs': [{'name': 'version', 'type': 'felt'}], 'stateMutability': 'view'}, {'name': 'get_identity', 'type': 'function', 'inputs': [], 'outputs': [{'name': 'identity', 'type': 'felt'}], 'stateMutability': 'view'}, {'name': 'initialize', 'type': 'function', 'inputs': [{'name': 'init_vector_len', 'type': 'felt'}, {'name': 'init_vector', 'type': 'felt*'}], 'outputs': []}, {'name': 'set_l1_bridge', 'type': 'function', 'inputs': [{'name': 'l1_bridge_address', 'type': 'felt'}], 'outputs': []}, {'name': 'set_l2_token', 'type': 'function', 'inputs': [{'name': 'l2_token_address', 'type': 'felt'}], 'outputs': []}, {'name': 'initiate_withdraw', 'type': 'function', 'inputs': [{'name': 'l1_recipient', 'type': 'felt'}, {'name': 'amount', 'type': 'Uint256'}], 'outputs': []}, {'name': 'handle_deposit', 'type': 'l1_handler', 'inputs': [{'name': 'from_address', 'type': 'felt'}, {'name': 'account', 'type': 'felt'}, {'name': 'amount_low', 'type': 'felt'}, {'name': 'amount_high', 'type': 'felt'}], 'outputs': []}],
'braavos': [{'name': 'DeferredRemoveSignerRequest', 'size': 2, 'type': 'struct', 'members': [{'name': 'expire_at', 'type': 'felt', 'offset': 0}, {'name': 'signer_id', 'type': 'felt', 'offset': 1}]}, {'name': 'SignerModel', 'size': 7, 'type': 'struct', 'members': [{'name': 'signer_0', 'type': 'felt', 'offset': 0}, {'name': 'signer_1', 'type': 'felt', 'offset': 1}, {'name': 'signer_2', 'type': 'felt', 'offset': 2}, {'name': 'signer_3', 'type': 'felt', 'offset': 3}, {'name': 'type', 'type': 'felt', 'offset': 4}, {'name': 'reserved_0', 'type': 'felt', 'offset': 5}, {'name': 'reserved_1', 'type': 'felt', 'offset': 6}]}, {'name': 'DeferredMultisigDisableRequest', 'size': 1, 'type': 'struct', 'members': [{'name': 'expire_at', 'type': 'felt', 'offset': 0}]}, {'name': 'IndexedSignerModel', 'size': 8, 'type': 'struct', 'members': [{'name': 'index', 'type': 'felt', 'offset': 0}, {'name': 'signer', 'type': 'SignerModel', 'offset': 1}]}, {'name': 'PendingMultisigTransaction', 'size': 5, 'type': 'struct', 'members': [{'name': 'transaction_hash', 'type': 'felt', 'offset': 0}, {'name': 'expire_at_sec', 'type': 'felt', 'offset': 1}, {'name': 'expire_at_block_num', 'type': 'felt', 'offset': 2}, {'name': 'signer_1_id', 'type': 'felt', 'offset': 3}, {'name': 'is_disable_multisig_transaction', 'type': 'felt', 'offset': 4}]}, {'name': 'AccountCallArray', 'size': 4, 'type': 'struct', 'members': [{'name': 'to', 'type': 'felt', 'offset': 0}, {'name': 'selector', 'type': 'felt', 'offset': 1}, {'name': 'data_offset', 'type': 'felt', 'offset': 2}, {'name': 'data_len', 'type': 'felt', 'offset': 3}]}, {'data': [{'name': 'implementation', 'type': 'felt'}], 'keys': [], 'name': 'Upgraded', 'type': 'event'}, {'data': [{'name': 'request', 'type': 'DeferredRemoveSignerRequest'}], 'keys': [], 'name': 'SignerRemoveRequest', 'type': 'event'}, {'data': [{'name': 'signer_id', 'type': 'felt'}, {'name': 'signer', 'type': 'SignerModel'}], 'keys': [], 'name': 'SignerAdded', 'type': 'event'}, {'data': [{'name': 'signer_id', 'type': 'felt'}], 'keys': [], 'name': 'SignerRemoved', 'type': 'event'}, {'data': [{'name': 'request', 'type': 'DeferredRemoveSignerRequest'}], 'keys': [], 'name': 'SignerRemoveRequestCancelled', 'type': 'event'}, {'data': [{'name': 'public_key', 'type': 'felt'}], 'keys': [], 'name': 'AccountInitialized', 'type': 'event'}, {'data': [{'name': 'request', 'type': 'DeferredMultisigDisableRequest'}], 'keys': [], 'name': 'MultisigDisableRequest', 'type': 'event'}, {'data': [{'name': 'request', 'type': 'DeferredMultisigDisableRequest'}], 'keys': [], 'name': 'MultisigDisableRequestCancelled', 'type': 'event'}, {'data': [{'name': 'num_signers', 'type': 'felt'}], 'keys': [], 'name': 'MultisigSet', 'type': 'event'}, {'data': [], 'keys': [], 'name': 'MultisigDisabled', 'type': 'event'}, {'name': 'supportsInterface', 'type': 'function', 'inputs': [{'name': 'interfaceId', 'type': 'felt'}], 'outputs': [{'name': 'success', 'type': 'felt'}], 'stateMutability': 'view'}, {'name': 'get_impl_version', 'type': 'function', 'inputs': [], 'outputs': [{'name': 'res', 'type': 'felt'}], 'stateMutability': 'view'}, {'name': 'initializer', 'type': 'function', 'inputs': [{'name': 'public_key', 'type': 'felt'}], 'outputs': []}, {'name': 'upgrade', 'type': 'function', 'inputs': [{'name': 'new_implementation', 'type': 'felt'}], 'outputs': []}, {'name': 'upgrade_regenesis', 'type': 'function', 'inputs': [{'name': 'new_implementation', 'type': 'felt'}, {'name': 'regenesis_account_id', 'type': 'felt'}], 'outputs': []}, {'name': 'migrate_storage', 'type': 'function', 'inputs': [{'name': 'from_version', 'type': 'felt'}], 'outputs': []}, {'name': 'add_signer', 'type': 'function', 'inputs': [{'name': 'signer', 'type': 'SignerModel'}], 'outputs': [{'name': 'signer_id', 'type': 'felt'}]}, {'name': 'swap_signers', 'type': 'function', 'inputs': [{'name': 'remove_index', 'type': 'felt'}, {'name': 'added_signer', 'type': 'SignerModel'}], 'outputs': [{'name': 'signer_id', 'type': 'felt'}]}, {'name': 'setPublicKey', 'type': 'function', 'inputs': [{'name': 'newPublicKey', 'type': 'felt'}], 'outputs': []}, {'name': 'remove_signer', 'type': 'function', 'inputs': [{'name': 'index', 'type': 'felt'}], 'outputs': []}, {'name': 'remove_signer_with_etd', 'type': 'function', 'inputs': [{'name': 'index', 'type': 'felt'}], 'outputs': []}, {'name': 'cancel_deferred_remove_signer_req', 'type': 'function', 'inputs': [{'name': 'removed_signer_id', 'type': 'felt'}], 'outputs': []}, {'name': 'getPublicKey', 'type': 'function', 'inputs': [], 'outputs': [{'name': 'publicKey', 'type': 'felt'}], 'stateMutability': 'view'}, {'name': 'get_public_key', 'type': 'function', 'inputs': [], 'outputs': [{'name': 'res', 'type': 'felt'}], 'stateMutability': 'view'}, {'name': 'get_signers', 'type': 'function', 'inputs': [], 'outputs': [{'name': 'signers_len', 'type': 'felt'}, {'name': 'signers', 'type': 'IndexedSignerModel*'}], 'stateMutability': 'view'}, {'name': 'get_signer', 'type': 'function', 'inputs': [{'name': 'index', 'type': 'felt'}], 'outputs': [{'name': 'signer', 'type': 'SignerModel'}], 'stateMutability': 'view'}, {'name': 'get_deferred_remove_signer_req', 'type': 'function', 'inputs': [], 'outputs': [{'name': 'deferred_request', 'type': 'DeferredRemoveSignerRequest'}], 'stateMutability': 'view'}, {'name': 'get_execution_time_delay', 'type': 'function', 'inputs': [], 'outputs': [{'name': 'etd_sec', 'type': 'felt'}], 'stateMutability': 'view'}, {'name': 'is_valid_signature', 'type': 'function', 'inputs': [{'name': 'hash', 'type': 'felt'}, {'name': 'signature_len', 'type': 'felt'}, {'name': 'signature', 'type': 'felt*'}], 'outputs': [{'name': 'is_valid', 'type': 'felt'}], 'stateMutability': 'view'}, {'name': 'isValidSignature', 'type': 'function', 'inputs': [{'name': 'hash', 'type': 'felt'}, {'name': 'signature_len', 'type': 'felt'}, {'name': 'signature', 'type': 'felt*'}], 'outputs': [{'name': 'isValid', 'type': 'felt'}], 'stateMutability': 'view'}, {'name': 'get_multisig', 'type': 'function', 'inputs': [], 'outputs': [{'name': 'multisig_num_signers', 'type': 'felt'}], 'stateMutability': 'view'}, {'name': 'set_multisig', 'type': 'function', 'inputs': [{'name': 'num_signers', 'type': 'felt'}], 'outputs': []}, {'name': 'get_pending_multisig_transaction', 'type': 'function', 'inputs': [], 'outputs': [{'name': 'pending_multisig_transaction', 'type': 'PendingMultisigTransaction'}], 'stateMutability': 'view'}, {'name': 'sign_pending_multisig_transaction', 'type': 'function', 'inputs': [{'name': 'pending_calldata_len', 'type': 'felt'}, {'name': 'pending_calldata', 'type': 'felt*'}, {'name': 'pending_nonce', 'type': 'felt'}, {'name': 'pending_max_fee', 'type': 'felt'}, {'name': 'pending_transaction_version', 'type': 'felt'}], 'outputs': [{'name': 'response_len', 'type': 'felt'}, {'name': 'response', 'type': 'felt*'}]}, {'name': 'disable_multisig', 'type': 'function', 'inputs': [], 'outputs': []}, {'name': 'disable_multisig_with_etd', 'type': 'function', 'inputs': [], 'outputs': []}, {'name': 'get_deferred_disable_multisig_req', 'type': 'function', 'inputs': [], 'outputs': [{'name': 'deferred_request', 'type': 'DeferredMultisigDisableRequest'}], 'stateMutability': 'view'}, {'name': 'cancel_deferred_disable_multisig_req', 'type': 'function', 'inputs': [], 'outputs': []}, {'name': '__validate__', 'type': 'function', 'inputs': [{'name': 'call_array_len', 'type': 'felt'}, {'name': 'call_array', 'type': 'AccountCallArray*'}, {'name': 'calldata_len', 'type': 'felt'}, {'name': 'calldata', 'type': 'felt*'}], 'outputs': []}, {'name': '__validate_deploy__', 'type': 'function', 'inputs': [{'name': 'class_hash', 'type': 'felt'}, {'name': 'contract_address_salt', 'type': 'felt'}, {'name': 'implementation_address', 'type': 'felt'}, {'name': 'initializer_selector', 'type': 'felt'}, {'name': 'calldata_len', 'type': 'felt'}, {'name': 'calldata', 'type': 'felt*'}], 'outputs': []}, {'name': '__validate_declare__', 'type': 'function', 'inputs': [{'name': 'class_hash', 'type': 'felt'}], 'outputs': []}, {'name': '__execute__', 'type': 'function', 'inputs': [{'name': 'call_array_len', 'type': 'felt'}, {'name': 'call_array', 'type': 'AccountCallArray*'}, {'name': 'calldata_len', 'type': 'felt'}, {'name': 'calldata', 'type': 'felt*'}], 'outputs': [{'name': 'response_len', 'type': 'felt'}, {'name': 'response', 'type': 'felt*'}]}, {'name': 'get_implementation', 'type': 'function', 'inputs': [], 'outputs': [{'name': 'implementation', 'type': 'felt'}], 'stateMutability': 'view'}],
'argent': [{'name': 'CallArray', 'size': 4, 'type': 'struct', 'members': [{'name': 'to', 'type': 'felt', 'offset': 0}, {'name': 'selector', 'type': 'felt', 'offset': 1}, {'name': 'data_offset', 'type': 'felt', 'offset': 2}, {'name': 'data_len', 'type': 'felt', 'offset': 3}]}, {'data': [{'name': 'new_signer', 'type': 'felt'}], 'keys': [], 'name': 'signer_changed', 'type': 'event'}, {'data': [{'name': 'new_guardian', 'type': 'felt'}], 'keys': [], 'name': 'guardian_changed', 'type': 'event'}, {'data': [{'name': 'new_guardian', 'type': 'felt'}], 'keys': [], 'name': 'guardian_backup_changed', 'type': 'event'}, {'data': [{'name': 'active_at', 'type': 'felt'}], 'keys': [], 'name': 'escape_guardian_triggered', 'type': 'event'}, {'data': [{'name': 'active_at', 'type': 'felt'}], 'keys': [], 'name': 'escape_signer_triggered', 'type': 'event'}, {'data': [], 'keys': [], 'name': 'escape_canceled', 'type': 'event'}, {'data': [{'name': 'new_guardian', 'type': 'felt'}], 'keys': [], 'name': 'guardian_escaped', 'type': 'event'}, {'data': [{'name': 'new_signer', 'type': 'felt'}], 'keys': [], 'name': 'signer_escaped', 'type': 'event'}, {'data': [{'name': 'new_implementation', 'type': 'felt'}], 'keys': [], 'name': 'account_upgraded', 'type': 'event'}, {'data': [{'name': 'account', 'type': 'felt'}, {'name': 'key', 'type': 'felt'}, {'name': 'guardian', 'type': 'felt'}], 'keys': [], 'name': 'account_created', 'type': 'event'}, {'data': [{'name': 'hash', 'type': 'felt'}, {'name': 'response_len', 'type': 'felt'}, {'name': 'response', 'type': 'felt*'}], 'keys': [], 'name': 'transaction_executed', 'type': 'event'}, {'name': '__validate__', 'type': 'function', 'inputs': [{'name': 'call_array_len', 'type': 'felt'}, {'name': 'call_array', 'type': 'CallArray*'}, {'name': 'calldata_len', 'type': 'felt'}, {'name': 'calldata', 'type': 'felt*'}], 'outputs': []}, {'name': '__execute__', 'type': 'function', 'inputs': [{'name': 'call_array_len', 'type': 'felt'}, {'name': 'call_array', 'type': 'CallArray*'}, {'name': 'calldata_len', 'type': 'felt'}, {'name': 'calldata', 'type': 'felt*'}], 'outputs': [{'name': 'retdata_size', 'type': 'felt'}, {'name': 'retdata', 'type': 'felt*'}]}, {'name': '__validate_declare__', 'type': 'function', 'inputs': [{'name': 'class_hash', 'type': 'felt'}], 'outputs': []}, {'name': '__validate_deploy__', 'type': 'function', 'inputs': [{'name': 'selector', 'type': 'felt'}, {'name': 'calldata_size', 'type': 'felt'}, {'name': 'calldata', 'type': 'felt*'}], 'outputs': []}, {'name': 'isValidSignature', 'type': 'function', 'inputs': [{'name': 'hash', 'type': 'felt'}, {'name': 'sig_len', 'type': 'felt'}, {'name': 'sig', 'type': 'felt*'}], 'outputs': [{'name': 'isValid', 'type': 'felt'}], 'stateMutability': 'view'}, {'name': 'supportsInterface', 'type': 'function', 'inputs': [{'name': 'interfaceId', 'type': 'felt'}], 'outputs': [{'name': 'success', 'type': 'felt'}], 'stateMutability': 'view'}, {'name': 'initialize', 'type': 'function', 'inputs': [{'name': 'signer', 'type': 'felt'}, {'name': 'guardian', 'type': 'felt'}], 'outputs': []}, {'name': 'upgrade', 'type': 'function', 'inputs': [{'name': 'implementation', 'type': 'felt'}, {'name': 'calldata_len', 'type': 'felt'}, {'name': 'calldata', 'type': 'felt*'}], 'outputs': [{'name': 'retdata_len', 'type': 'felt'}, {'name': 'retdata', 'type': 'felt*'}]}, {'name': 'execute_after_upgrade', 'type': 'function', 'inputs': [{'name': 'call_array_len', 'type': 'felt'}, {'name': 'call_array', 'type': 'CallArray*'}, {'name': 'calldata_len', 'type': 'felt'}, {'name': 'calldata', 'type': 'felt*'}], 'outputs': [{'name': 'retdata_len', 'type': 'felt'}, {'name': 'retdata', 'type': 'felt*'}]}, {'name': 'changeSigner', 'type': 'function', 'inputs': [{'name': 'newSigner', 'type': 'felt'}], 'outputs': []}, {'name': 'changeGuardian', 'type': 'function', 'inputs': [{'name': 'newGuardian', 'type': 'felt'}], 'outputs': []}, {'name': 'changeGuardianBackup', 'type': 'function', 'inputs': [{'name': 'newGuardian', 'type': 'felt'}], 'outputs': []}, {'name': 'triggerEscapeGuardian', 'type': 'function', 'inputs': [], 'outputs': []}, {'name': 'triggerEscapeSigner', 'type': 'function', 'inputs': [], 'outputs': []}, {'name': 'cancelEscape', 'type': 'function', 'inputs': [], 'outputs': []}, {'name': 'escapeGuardian', 'type': 'function', 'inputs': [{'name': 'newGuardian', 'type': 'felt'}], 'outputs': []}, {'name': 'escapeSigner', 'type': 'function', 'inputs': [{'name': 'newSigner', 'type': 'felt'}], 'outputs': []}, {'name': 'getSigner', 'type': 'function', 'inputs': [], 'outputs': [{'name': 'signer', 'type': 'felt'}], 'stateMutability': 'view'}, {'name': 'getGuardian', 'type': 'function', 'inputs': [], 'outputs': [{'name': 'guardian', 'type': 'felt'}], 'stateMutability': 'view'}, {'name': 'getGuardianBackup', 'type': 'function', 'inputs': [], 'outputs': [{'name': 'guardianBackup', 'type': 'felt'}], 'stateMutability': 'view'}, {'name': 'getEscape', 'type': 'function', 'inputs': [], 'outputs': [{'name': 'activeAt', 'type': 'felt'}, {'name': 'type', 'type': 'felt'}], 'stateMutability': 'view'}, {'name': 'getVersion', 'type': 'function', 'inputs': [], 'outputs': [{'name': 'version', 'type': 'felt'}], 'stateMutability': 'view'}, {'name': 'getName', 'type': 'function', 'inputs': [], 'outputs': [{'name': 'name', 'type': 'felt'}], 'stateMutability': 'view'}, {'name': 'is_valid_signature', 'type': 'function', 'inputs': [{'name': 'hash', 'type': 'felt'}, {'name': 'sig_len', 'type': 'felt'}, {'name': 'sig', 'type': 'felt*'}], 'outputs': [{'name': 'is_valid', 'type': 'felt'}], 'stateMutability': 'view'}, {'name': 'get_implementation', 'type': 'function', 'inputs': [], 'outputs': [{'name': 'implementation', 'type': 'felt'}], 'stateMutability': 'view'}],
},
'Scroll': {
'deposit': [{'inputs': [{'internalType': 'address', 'name': '_counterpart', 'type': 'address'}, {'internalType': 'address', 'name': '_rollup', 'type': 'address'}, {'internalType': 'address', 'name': '_messageQueue', 'type': 'address'}], 'stateMutability': 'nonpayable', 'type': 'constructor'}, {'inputs': [], 'name': 'ErrorZeroAddress', 'type': 'error'}, {'anonymous': False, 'inputs': [{'indexed': True, 'internalType': 'bytes32', 'name': 'messageHash', 'type': 'bytes32'}], 'name': 'FailedRelayedMessage', 'type': 'event'}, {'anonymous': False, 'inputs': [{'indexed': False, 'internalType': 'uint8', 'name': 'version', 'type': 'uint8'}], 'name': 'Initialized', 'type': 'event'}, {'anonymous': False, 'inputs': [{'indexed': True, 'internalType': 'address', 'name': 'previousOwner', 'type': 'address'}, {'indexed': True, 'internalType': 'address', 'name': 'newOwner', 'type': 'address'}], 'name': 'OwnershipTransferred', 'type': 'event'}, {'anonymous': False, 'inputs': [{'indexed': False, 'internalType': 'address', 'name': 'account', 'type': 'address'}], 'name': 'Paused', 'type': 'event'}, {'anonymous': False, 'inputs': [{'indexed': True, 'internalType': 'bytes32', 'name': 'messageHash', 'type': 'bytes32'}], 'name': 'RelayedMessage', 'type': 'event'}, {'anonymous': False, 'inputs': [{'indexed': True, 'internalType': 'address', 'name': 'sender', 'type': 'address'}, {'indexed': True, 'internalType': 'address', 'name': 'target', 'type': 'address'}, {'indexed': False, 'internalType': 'uint256', 'name': 'value', 'type': 'uint256'}, {'indexed': False, 'internalType': 'uint256', 'name': 'messageNonce', 'type': 'uint256'}, {'indexed': False, 'internalType': 'uint256', 'name': 'gasLimit', 'type': 'uint256'}, {'indexed': False, 'internalType': 'bytes', 'name': 'message', 'type': 'bytes'}], 'name': 'SentMessage', 'type': 'event'}, {'anonymous': False, 'inputs': [{'indexed': False, 'internalType': 'address', 'name': 'account', 'type': 'address'}], 'name': 'Unpaused', 'type': 'event'}, {'anonymous': False, 'inputs': [{'indexed': False, 'internalType': 'address', 'name': '_oldFeeVault', 'type': 'address'}, {'indexed': False, 'internalType': 'address', 'name': '_newFeeVault', 'type': 'address'}], 'name': 'UpdateFeeVault', 'type': 'event'}, {'anonymous': False, 'inputs': [{'indexed': False, 'internalType': 'uint256', 'name': 'oldMaxReplayTimes', 'type': 'uint256'}, {'indexed': False, 'internalType': 'uint256', 'name': 'newMaxReplayTimes', 'type': 'uint256'}], 'name': 'UpdateMaxReplayTimes', 'type': 'event'}, {'inputs': [], 'name': 'counterpart', 'outputs': [{'internalType': 'address', 'name': '', 'type': 'address'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [{'internalType': 'address', 'name': '_from', 'type': 'address'}, {'internalType': 'address', 'name': '_to', 'type': 'address'}, {'internalType': 'uint256', 'name': '_value', 'type': 'uint256'}, {'internalType': 'uint256', 'name': '_messageNonce', 'type': 'uint256'}, {'internalType': 'bytes', 'name': '_message', 'type': 'bytes'}], 'name': 'dropMessage', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [], 'name': 'feeVault', 'outputs': [{'internalType': 'address', 'name': '', 'type': 'address'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [{'internalType': 'address', 'name': '_counterpart', 'type': 'address'}, {'internalType': 'address', 'name': '_feeVault', 'type': 'address'}, {'internalType': 'address', 'name': '_rollup', 'type': 'address'}, {'internalType': 'address', 'name': '_messageQueue', 'type': 'address'}], 'name': 'initialize', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{'internalType': 'bytes32', 'name': '', 'type': 'bytes32'}], 'name': 'isL1MessageDropped', 'outputs': [{'internalType': 'bool', 'name': '', 'type': 'bool'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [{'internalType': 'bytes32', 'name': '', 'type': 'bytes32'}], 'name': 'isL2MessageExecuted', 'outputs': [{'internalType': 'bool', 'name': '', 'type': 'bool'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [], 'name': 'maxReplayTimes', 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [], 'name': 'messageQueue', 'outputs': [{'internalType': 'address', 'name': '', 'type': 'address'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [{'internalType': 'bytes32', 'name': '', 'type': 'bytes32'}], 'name': 'messageSendTimestamp', 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [], 'name': 'owner', 'outputs': [{'internalType': 'address', 'name': '', 'type': 'address'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [], 'name': 'paused', 'outputs': [{'internalType': 'bool', 'name': '', 'type': 'bool'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], 'name': 'prevReplayIndex', 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [{'internalType': 'address', 'name': '_from', 'type': 'address'}, {'internalType': 'address', 'name': '_to', 'type': 'address'}, {'internalType': 'uint256', 'name': '_value', 'type': 'uint256'}, {'internalType': 'uint256', 'name': '_nonce', 'type': 'uint256'}, {'internalType': 'bytes', 'name': '_message', 'type': 'bytes'}, {'components': [{'internalType': 'uint256', 'name': 'batchIndex', 'type': 'uint256'}, {'internalType': 'bytes', 'name': 'merkleProof', 'type': 'bytes'}], 'internalType': 'struct IL1ScrollMessenger.L2MessageProof', 'name': '_proof', 'type': 'tuple'}], 'name': 'relayMessageWithProof', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [], 'name': 'renounceOwnership', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{'internalType': 'address', 'name': '_from', 'type': 'address'}, {'internalType': 'address', 'name': '_to', 'type': 'address'}, {'internalType': 'uint256', 'name': '_value', 'type': 'uint256'}, {'internalType': 'uint256', 'name': '_messageNonce', 'type': 'uint256'}, {'internalType': 'bytes', 'name': '_message', 'type': 'bytes'}, {'internalType': 'uint32', 'name': '_newGasLimit', 'type': 'uint32'}, {'internalType': 'address', 'name': '_refundAddress', 'type': 'address'}], 'name': 'replayMessage', 'outputs': [], 'stateMutability': 'payable', 'type': 'function'}, {'inputs': [{'internalType': 'bytes32', 'name': '', 'type': 'bytes32'}], 'name': 'replayStates', 'outputs': [{'internalType': 'uint128', 'name': 'times', 'type': 'uint128'}, {'internalType': 'uint128', 'name': 'lastIndex', 'type': 'uint128'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [], 'name': 'rollup', 'outputs': [{'internalType': 'address', 'name': '', 'type': 'address'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [{'internalType': 'address', 'name': '_to', 'type': 'address'}, {'internalType': 'uint256', 'name': '_value', 'type': 'uint256'}, {'internalType': 'bytes', 'name': '_message', 'type': 'bytes'}, {'internalType': 'uint256', 'name': '_gasLimit', 'type': 'uint256'}, {'internalType': 'address', 'name': '_refundAddress', 'type': 'address'}], 'name': 'sendMessage', 'outputs': [], 'stateMutability': 'payable', 'type': 'function'}, {'inputs': [{'internalType': 'address', 'name': '_to', 'type': 'address'}, {'internalType': 'uint256', 'name': '_value', 'type': 'uint256'}, {'internalType': 'bytes', 'name': '_message', 'type': 'bytes'}, {'internalType': 'uint256', 'name': '_gasLimit', 'type': 'uint256'}], 'name': 'sendMessage', 'outputs': [], 'stateMutability': 'payable', 'type': 'function'}, {'inputs': [{'internalType': 'bool', 'name': '_status', 'type': 'bool'}], 'name': 'setPause', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{'internalType': 'address', 'name': 'newOwner', 'type': 'address'}], 'name': 'transferOwnership', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{'internalType': 'address', 'name': '_newFeeVault', 'type': 'address'}], 'name': 'updateFeeVault', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{'internalType': 'uint256', 'name': '_newMaxReplayTimes', 'type': 'uint256'}], 'name': 'updateMaxReplayTimes', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [], 'name': 'xDomainMessageSender', 'outputs': [{'internalType': 'address', 'name': '', 'type': 'address'}], 'stateMutability': 'view', 'type': 'function'}, {'stateMutability': 'payable', 'type': 'receive'}],
'withdraw': [{'inputs': [], 'stateMutability': 'nonpayable', 'type': 'constructor'}, {'anonymous': False, 'inputs': [{'indexed': True, 'internalType': 'address', 'name': 'l1Token', 'type': 'address'}, {'indexed': True, 'internalType': 'address', 'name': 'l2Token', 'type': 'address'}, {'indexed': True, 'internalType': 'address', 'name': 'from', 'type': 'address'}, {'indexed': False, 'internalType': 'address', 'name': 'to', 'type': 'address'}, {'indexed': False, 'internalType': 'uint256', 'name': 'amount', 'type': 'uint256'}, {'indexed': False, 'internalType': 'bytes', 'name': 'data', 'type': 'bytes'}], 'name': 'FinalizeDepositERC20', 'type': 'event'}, {'anonymous': False, 'inputs': [{'indexed': True, 'internalType': 'address', 'name': 'from', 'type': 'address'}, {'indexed': True, 'internalType': 'address', 'name': 'to', 'type': 'address'}, {'indexed': False, 'internalType': 'uint256', 'name': 'amount', 'type': 'uint256'}, {'indexed': False, 'internalType': 'bytes', 'name': 'data', 'type': 'bytes'}], 'name': 'FinalizeDepositETH', 'type': 'event'}, {'anonymous': False, 'inputs': [{'indexed': False, 'internalType': 'uint8', 'name': 'version', 'type': 'uint8'}], 'name': 'Initialized', 'type': 'event'}, {'anonymous': False, 'inputs': [{'indexed': True, 'internalType': 'address', 'name': 'previousOwner', 'type': 'address'}, {'indexed': True, 'internalType': 'address', 'name': 'newOwner', 'type': 'address'}], 'name': 'OwnershipTransferred', 'type': 'event'}, {'anonymous': False, 'inputs': [{'indexed': True, 'internalType': 'address', 'name': 'oldDefaultERC20Gateway', 'type': 'address'}, {'indexed': True, 'internalType': 'address', 'name': 'newDefaultERC20Gateway', 'type': 'address'}], 'name': 'SetDefaultERC20Gateway', 'type': 'event'}, {'anonymous': False, 'inputs': [{'indexed': True, 'internalType': 'address', 'name': 'token', 'type': 'address'}, {'indexed': True, 'internalType': 'address', 'name': 'oldGateway', 'type': 'address'}, {'indexed': True, 'internalType': 'address', 'name': 'newGateway', 'type': 'address'}], 'name': 'SetERC20Gateway', 'type': 'event'}, {'anonymous': False, 'inputs': [{'indexed': True, 'internalType': 'address', 'name': 'oldETHGateway', 'type': 'address'}, {'indexed': True, 'internalType': 'address', 'name': 'newEthGateway', 'type': 'address'}], 'name': 'SetETHGateway', 'type': 'event'}, {'anonymous': False, 'inputs': [{'indexed': True, 'internalType': 'address', 'name': 'l1Token', 'type': 'address'}, {'indexed': True, 'internalType': 'address', 'name': 'l2Token', 'type': 'address'}, {'indexed': True, 'internalType': 'address', 'name': 'from', 'type': 'address'}, {'indexed': False, 'internalType': 'address', 'name': 'to', 'type': 'address'}, {'indexed': False, 'internalType': 'uint256', 'name': 'amount', 'type': 'uint256'}, {'indexed': False, 'internalType': 'bytes', 'name': 'data', 'type': 'bytes'}], 'name': 'WithdrawERC20', 'type': 'event'}, {'anonymous': False, 'inputs': [{'indexed': True, 'internalType': 'address', 'name': 'from', 'type': 'address'}, {'indexed': True, 'internalType': 'address', 'name': 'to', 'type': 'address'}, {'indexed': False, 'internalType': 'uint256', 'name': 'amount', 'type': 'uint256'}, {'indexed': False, 'internalType': 'bytes', 'name': 'data', 'type': 'bytes'}], 'name': 'WithdrawETH', 'type': 'event'}, {'inputs': [{'internalType': 'address', 'name': '', 'type': 'address'}], 'name': 'ERC20Gateway', 'outputs': [{'internalType': 'address', 'name': '', 'type': 'address'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [], 'name': 'defaultERC20Gateway', 'outputs': [{'internalType': 'address', 'name': '', 'type': 'address'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [], 'name': 'ethGateway', 'outputs': [{'internalType': 'address', 'name': '', 'type': 'address'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [{'internalType': 'address', 'name': '', 'type': 'address'}, {'internalType': 'address', 'name': '', 'type': 'address'}, {'internalType': 'address', 'name': '', 'type': 'address'}, {'internalType': 'address', 'name': '', 'type': 'address'}, {'internalType': 'uint256', 'name': '', 'type': 'uint256'}, {'internalType': 'bytes', 'name': '', 'type': 'bytes'}], 'name': 'finalizeDepositERC20', 'outputs': [], 'stateMutability': 'payable', 'type': 'function'}, {'inputs': [{'internalType': 'address', 'name': '', 'type': 'address'}, {'internalType': 'address', 'name': '', 'type': 'address'}, {'internalType': 'uint256', 'name': '', 'type': 'uint256'}, {'internalType': 'bytes', 'name': '', 'type': 'bytes'}], 'name': 'finalizeDepositETH', 'outputs': [], 'stateMutability': 'payable', 'type': 'function'}, {'inputs': [{'internalType': 'address', 'name': '_token', 'type': 'address'}], 'name': 'getERC20Gateway', 'outputs': [{'internalType': 'address', 'name': '', 'type': 'address'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [{'internalType': 'address', 'name': '_l2Address', 'type': 'address'}], 'name': 'getL1ERC20Address', 'outputs': [{'internalType': 'address', 'name': '', 'type': 'address'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [{'internalType': 'address', 'name': '', 'type': 'address'}], 'name': 'getL2ERC20Address', 'outputs': [{'internalType': 'address', 'name': '', 'type': 'address'}], 'stateMutability': 'pure', 'type': 'function'}, {'inputs': [{'internalType': 'address', 'name': '_ethGateway', 'type': 'address'}, {'internalType': 'address', 'name': '_defaultERC20Gateway', 'type': 'address'}], 'name': 'initialize', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [], 'name': 'owner', 'outputs': [{'internalType': 'address', 'name': '', 'type': 'address'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [], 'name': 'renounceOwnership', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{'internalType': 'address', 'name': '_newDefaultERC20Gateway', 'type': 'address'}], 'name': 'setDefaultERC20Gateway', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{'internalType': 'address[]', 'name': '_tokens', 'type': 'address[]'}, {'internalType': 'address[]', 'name': '_gateways', 'type': 'address[]'}], 'name': 'setERC20Gateway', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{'internalType': 'address', 'name': '_newEthGateway', 'type': 'address'}], 'name': 'setETHGateway', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{'internalType': 'address', 'name': 'newOwner', 'type': 'address'}], 'name': 'transferOwnership', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{'internalType': 'address', 'name': '_token', 'type': 'address'}, {'internalType': 'uint256', 'name': '_amount', 'type': 'uint256'}, {'internalType': 'uint256', 'name': '_gasLimit', 'type': 'uint256'}], 'name': 'withdrawERC20', 'outputs': [], 'stateMutability': 'payable', 'type': 'function'}, {'inputs': [{'internalType': 'address', 'name': '_token', 'type': 'address'}, {'internalType': 'address', 'name': '_to', 'type': 'address'}, {'internalType': 'uint256', 'name': '_amount', 'type': 'uint256'}, {'internalType': 'uint256', 'name': '_gasLimit', 'type': 'uint256'}], 'name': 'withdrawERC20', 'outputs': [], 'stateMutability': 'payable', 'type': 'function'}, {'inputs': [{'internalType': 'address', 'name': '_token', 'type': 'address'}, {'internalType': 'address', 'name': '_to', 'type': 'address'}, {'internalType': 'uint256', 'name': '_amount', 'type': 'uint256'}, {'internalType': 'bytes', 'name': '_data', 'type': 'bytes'}, {'internalType': 'uint256', 'name': '_gasLimit', 'type': 'uint256'}], 'name': 'withdrawERC20AndCall', 'outputs': [], 'stateMutability': 'payable', 'type': 'function'}, {'inputs': [{'internalType': 'address', 'name': '_to', 'type': 'address'}, {'internalType': 'uint256', 'name': '_amount', 'type': 'uint256'}, {'internalType': 'uint256', 'name': '_gasLimit', 'type': 'uint256'}], 'name': 'withdrawETH', 'outputs': [], 'stateMutability': 'payable', 'type': 'function'}, {'inputs': [{'internalType': 'uint256', 'name': '_amount', 'type': 'uint256'}, {'internalType': 'uint256', 'name': '_gasLimit', 'type': 'uint256'}], 'name': 'withdrawETH', 'outputs': [], 'stateMutability': 'payable', 'type': 'function'}, {'inputs': [{'internalType': 'address', 'name': '_to', 'type': 'address'}, {'internalType': 'uint256', 'name': '_amount', 'type': 'uint256'}, {'internalType': 'bytes', 'name': '_data', 'type': 'bytes'}, {'internalType': 'uint256', 'name': '_gasLimit', 'type': 'uint256'}], 'name': 'withdrawETHAndCall', 'outputs': [], 'stateMutability': 'payable', 'type': 'function'}],
'oracle': [{'inputs': [], 'stateMutability': 'nonpayable', 'type': 'constructor'}, {'anonymous': False, 'inputs': [{'indexed': False, 'internalType': 'uint8', 'name': 'version', 'type': 'uint8'}], 'name': 'Initialized', 'type': 'event'}, {'anonymous': False, 'inputs': [{'indexed': False, 'internalType': 'uint256', 'name': 'txGas', 'type': 'uint256'}, {'indexed': False, 'internalType': 'uint256', 'name': 'txGasContractCreation', 'type': 'uint256'}, {'indexed': False, 'internalType': 'uint256', 'name': 'zeroGas', 'type': 'uint256'}, {'indexed': False, 'internalType': 'uint256', 'name': 'nonZeroGas', 'type': 'uint256'}], 'name': 'IntrinsicParamsUpdated', 'type': 'event'}, {'anonymous': False, 'inputs': [{'indexed': False, 'internalType': 'uint256', 'name': 'oldL2BaseFee', 'type': 'uint256'}, {'indexed': False, 'internalType': 'uint256', 'name': 'newL2BaseFee', 'type': 'uint256'}], 'name': 'L2BaseFeeUpdated', 'type': 'event'}, {'anonymous': False, 'inputs': [{'indexed': True, 'internalType': 'address', 'name': 'previousOwner', 'type': 'address'}, {'indexed': True, 'internalType': 'address', 'name': 'newOwner', 'type': 'address'}], 'name': 'OwnershipTransferred', 'type': 'event'}, {'anonymous': False, 'inputs': [{'indexed': False, 'internalType': 'address', 'name': '_oldWhitelist', 'type': 'address'}, {'indexed': False, 'internalType': 'address', 'name': '_newWhitelist', 'type': 'address'}], 'name': 'UpdateWhitelist', 'type': 'event'}, {'inputs': [{'internalType': 'bytes', 'name': '_message', 'type': 'bytes'}], 'name': 'calculateIntrinsicGasFee', 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [{'internalType': 'uint256', 'name': '_gasLimit', 'type': 'uint256'}], 'name': 'estimateCrossDomainMessageFee', 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [{'internalType': 'uint64', 'name': '_txGas', 'type': 'uint64'}, {'internalType': 'uint64', 'name': '_txGasContractCreation', 'type': 'uint64'}, {'internalType': 'uint64', 'name': '_zeroGas', 'type': 'uint64'}, {'internalType': 'uint64', 'name': '_nonZeroGas', 'type': 'uint64'}], 'name': 'initialize', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [], 'name': 'intrinsicParams', 'outputs': [{'internalType': 'uint64', 'name': 'txGas', 'type': 'uint64'}, {'internalType': 'uint64', 'name': 'txGasContractCreation', 'type': 'uint64'}, {'internalType': 'uint64', 'name': 'zeroGas', 'type': 'uint64'}, {'internalType': 'uint64', 'name': 'nonZeroGas', 'type': 'uint64'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [], 'name': 'l2BaseFee', 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [], 'name': 'owner', 'outputs': [{'internalType': 'address', 'name': '', 'type': 'address'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [], 'name': 'renounceOwnership', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{'internalType': 'uint64', 'name': '_txGas', 'type': 'uint64'}, {'internalType': 'uint64', 'name': '_txGasContractCreation', 'type': 'uint64'}, {'internalType': 'uint64', 'name': '_zeroGas', 'type': 'uint64'}, {'internalType': 'uint64', 'name': '_nonZeroGas', 'type': 'uint64'}], 'name': 'setIntrinsicParams', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{'internalType': 'uint256', 'name': '_newL2BaseFee', 'type': 'uint256'}], 'name': 'setL2BaseFee', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{'internalType': 'address', 'name': 'newOwner', 'type': 'address'}], 'name': 'transferOwnership', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{'internalType': 'address', 'name': '_newWhitelist', 'type': 'address'}], 'name': 'updateWhitelist', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [], 'name': 'whitelist', 'outputs': [{'internalType': 'contract IWhitelist', 'name': '', 'type': 'address'}], 'stateMutability': 'view', 'type': 'function'}],
},
'Base':{
'deposit': [{'inputs': [{'internalType': 'contract L2OutputOracle', 'name': '_l2Oracle', 'type': 'address'}, {'internalType': 'address', 'name': '_guardian', 'type': 'address'}, {'internalType': 'bool', 'name': '_paused', 'type': 'bool'}, {'internalType': 'contract SystemConfig', 'name': '_config', 'type': 'address'}], 'stateMutability': 'nonpayable', 'type': 'constructor'}, {'anonymous': False, 'inputs': [{'indexed': False, 'internalType': 'uint8', 'name': 'version', 'type': 'uint8'}], 'name': 'Initialized', 'type': 'event'}, {'anonymous': False, 'inputs': [{'indexed': False, 'internalType': 'address', 'name': 'account', 'type': 'address'}], 'name': 'Paused', 'type': 'event'}, {'anonymous': False, 'inputs': [{'indexed': True, 'internalType': 'address', 'name': 'from', 'type': 'address'}, {'indexed': True, 'internalType': 'address', 'name': 'to', 'type': 'address'}, {'indexed': True, 'internalType': 'uint256', 'name': 'version', 'type': 'uint256'}, {'indexed': False, 'internalType': 'bytes', 'name': 'opaqueData', 'type': 'bytes'}], 'name': 'TransactionDeposited', 'type': 'event'}, {'anonymous': False, 'inputs': [{'indexed': False, 'internalType': 'address', 'name': 'account', 'type': 'address'}], 'name': 'Unpaused', 'type': 'event'}, {'anonymous': False, 'inputs': [{'indexed': True, 'internalType': 'bytes32', 'name': 'withdrawalHash', 'type': 'bytes32'}, {'indexed': False, 'internalType': 'bool', 'name': 'success', 'type': 'bool'}], 'name': 'WithdrawalFinalized', 'type': 'event'}, {'anonymous': False, 'inputs': [{'indexed': True, 'internalType': 'bytes32', 'name': 'withdrawalHash', 'type': 'bytes32'}, {'indexed': True, 'internalType': 'address', 'name': 'from', 'type': 'address'}, {'indexed': True, 'internalType': 'address', 'name': 'to', 'type': 'address'}], 'name': 'WithdrawalProven', 'type': 'event'}, {'inputs': [], 'name': 'GUARDIAN', 'outputs': [{'internalType': 'address', 'name': '', 'type': 'address'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [], 'name': 'L2_ORACLE', 'outputs': [{'internalType': 'contract L2OutputOracle', 'name': '', 'type': 'address'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [], 'name': 'SYSTEM_CONFIG', 'outputs': [{'internalType': 'contract SystemConfig', 'name': '', 'type': 'address'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [{'internalType': 'address', 'name': '_to', 'type': 'address'}, {'internalType': 'uint256', 'name': '_value', 'type': 'uint256'}, {'internalType': 'uint64', 'name': '_gasLimit', 'type': 'uint64'}, {'internalType': 'bool', 'name': '_isCreation', 'type': 'bool'}, {'internalType': 'bytes', 'name': '_data', 'type': 'bytes'}], 'name': 'depositTransaction', 'outputs': [], 'stateMutability': 'payable', 'type': 'function'}, {'inputs': [], 'name': 'donateETH', 'outputs': [], 'stateMutability': 'payable', 'type': 'function'}, {'inputs': [{'components': [{'internalType': 'uint256', 'name': 'nonce', 'type': 'uint256'}, {'internalType': 'address', 'name': 'sender', 'type': 'address'}, {'internalType': 'address', 'name': 'target', 'type': 'address'}, {'internalType': 'uint256', 'name': 'value', 'type': 'uint256'}, {'internalType': 'uint256', 'name': 'gasLimit', 'type': 'uint256'}, {'internalType': 'bytes', 'name': 'data', 'type': 'bytes'}], 'internalType': 'struct Types.WithdrawalTransaction', 'name': '_tx', 'type': 'tuple'}], 'name': 'finalizeWithdrawalTransaction', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{'internalType': 'bytes32', 'name': '', 'type': 'bytes32'}], 'name': 'finalizedWithdrawals', 'outputs': [{'internalType': 'bool', 'name': '', 'type': 'bool'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [{'internalType': 'bool', 'name': '_paused', 'type': 'bool'}], 'name': 'initialize', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{'internalType': 'uint256', 'name': '_l2OutputIndex', 'type': 'uint256'}], 'name': 'isOutputFinalized', 'outputs': [{'internalType': 'bool', 'name': '', 'type': 'bool'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [], 'name': 'l2Sender', 'outputs': [{'internalType': 'address', 'name': '', 'type': 'address'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [{'internalType': 'uint64', 'name': '_byteCount', 'type': 'uint64'}], 'name': 'minimumGasLimit', 'outputs': [{'internalType': 'uint64', 'name': '', 'type': 'uint64'}], 'stateMutability': 'pure', 'type': 'function'}, {'inputs': [], 'name': 'params', 'outputs': [{'internalType': 'uint128', 'name': 'prevBaseFee', 'type': 'uint128'}, {'internalType': 'uint64', 'name': 'prevBoughtGas', 'type': 'uint64'}, {'internalType': 'uint64', 'name': 'prevBlockNum', 'type': 'uint64'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [], 'name': 'pause', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [], 'name': 'paused', 'outputs': [{'internalType': 'bool', 'name': '', 'type': 'bool'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [{'components': [{'internalType': 'uint256', 'name': 'nonce', 'type': 'uint256'}, {'internalType': 'address', 'name': 'sender', 'type': 'address'}, {'internalType': 'address', 'name': 'target', 'type': 'address'}, {'internalType': 'uint256', 'name': 'value', 'type': 'uint256'}, {'internalType': 'uint256', 'name': 'gasLimit', 'type': 'uint256'}, {'internalType': 'bytes', 'name': 'data', 'type': 'bytes'}], 'internalType': 'struct Types.WithdrawalTransaction', 'name': '_tx', 'type': 'tuple'}, {'internalType': 'uint256', 'name': '_l2OutputIndex', 'type': 'uint256'}, {'components': [{'internalType': 'bytes32', 'name': 'version', 'type': 'bytes32'}, {'internalType': 'bytes32', 'name': 'stateRoot', 'type': 'bytes32'}, {'internalType': 'bytes32', 'name': 'messagePasserStorageRoot', 'type': 'bytes32'}, {'internalType': 'bytes32', 'name': 'latestBlockhash', 'type': 'bytes32'}], 'internalType': 'struct Types.OutputRootProof', 'name': '_outputRootProof', 'type': 'tuple'}, {'internalType': 'bytes[]', 'name': '_withdrawalProof', 'type': 'bytes[]'}], 'name': 'proveWithdrawalTransaction', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{'internalType': 'bytes32', 'name': '', 'type': 'bytes32'}], 'name': 'provenWithdrawals', 'outputs': [{'internalType': 'bytes32', 'name': 'outputRoot', 'type': 'bytes32'}, {'internalType': 'uint128', 'name': 'timestamp', 'type': 'uint128'}, {'internalType': 'uint128', 'name': 'l2OutputIndex', 'type': 'uint128'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [], 'name': 'unpause', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [], 'name': 'version', 'outputs': [{'internalType': 'string', 'name': '', 'type': 'string'}], 'stateMutability': 'view', 'type': 'function'}, {'stateMutability': 'payable', 'type': 'receive'}],
'withdraw': [{'inputs': [], 'stateMutability': 'nonpayable', 'type': 'constructor'}, {'anonymous': False, 'inputs': [{'indexed': True, 'internalType': 'uint256', 'name': 'nonce', 'type': 'uint256'}, {'indexed': True, 'internalType': 'address', 'name': 'sender', 'type': 'address'}, {'indexed': True, 'internalType': 'address', 'name': 'target', 'type': 'address'}, {'indexed': False, 'internalType': 'uint256', 'name': 'value', 'type': 'uint256'}, {'indexed': False, 'internalType': 'uint256', 'name': 'gasLimit', 'type': 'uint256'}, {'indexed': False, 'internalType': 'bytes', 'name': 'data', 'type': 'bytes'}, {'indexed': False, 'internalType': 'bytes32', 'name': 'withdrawalHash', 'type': 'bytes32'}], 'name': 'MessagePassed', 'type': 'event'}, {'anonymous': False, 'inputs': [{'indexed': True, 'internalType': 'uint256', 'name': 'amount', 'type': 'uint256'}], 'name': 'WithdrawerBalanceBurnt', 'type': 'event'}, {'inputs': [], 'name': 'MESSAGE_VERSION', 'outputs': [{'internalType': 'uint16', 'name': '', 'type': 'uint16'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [], 'name': 'burn', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{'internalType': 'address', 'name': '_target', 'type': 'address'}, {'internalType': 'uint256', 'name': '_gasLimit', 'type': 'uint256'}, {'internalType': 'bytes', 'name': '_data', 'type': 'bytes'}], 'name': 'initiateWithdrawal', 'outputs': [], 'stateMutability': 'payable', 'type': 'function'}, {'inputs': [], 'name': 'messageNonce', 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [{'internalType': 'bytes32', 'name': '', 'type': 'bytes32'}], 'name': 'sentMessages', 'outputs': [{'internalType': 'bool', 'name': '', 'type': 'bool'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [], 'name': 'version', 'outputs': [{'internalType': 'string', 'name': '', 'type': 'string'}], 'stateMutability': 'view', 'type': 'function'}, {'stateMutability': 'payable', 'type': 'receive'}]
},
'Linea':{
'deposit': [{'inputs': [], 'stateMutability': 'nonpayable', 'type': 'constructor'}, {'inputs': [], 'name': 'BlockTimestampError', 'type': 'error'}, {'inputs': [], 'name': 'EmptyBlock', 'type': 'error'}, {'inputs': [], 'name': 'EmptyBlockDataArray', 'type': 'error'}, {'inputs': [{'internalType': 'address', 'name': 'recipient', 'type': 'address'}], 'name': 'FeePaymentFailed', 'type': 'error'}, {'inputs': [], 'name': 'FeeTooLow', 'type': 'error'}, {'inputs': [], 'name': 'InvalidProof', 'type': 'error'}, {'inputs': [], 'name': 'InvalidProofType', 'type': 'error'}, {'inputs': [{'internalType': 'bytes32', 'name': 'pauseType', 'type': 'bytes32'}], 'name': 'IsNotPaused', 'type': 'error'}, {'inputs': [{'internalType': 'bytes32', 'name': 'pauseType', 'type': 'bytes32'}], 'name': 'IsPaused', 'type': 'error'}, {'inputs': [{'internalType': 'bytes32', 'name': 'messageHash', 'type': 'bytes32'}], 'name': 'L1L2MessageNotSent', 'type': 'error'}, {'inputs': [], 'name': 'LimitIsZero', 'type': 'error'}, {'inputs': [{'internalType': 'uint256', 'name': 'inde', 'type': 'uint256'}], 'name': 'MemoryOutOfBounds', 'type': 'error'}, {'inputs': [{'internalType': 'bytes32', 'name': 'messageHash', 'type': 'bytes32'}], 'name': 'MessageAlreadyReceived', 'type': 'error'}, {'inputs': [], 'name': 'MessageAlreadySent', 'type': 'error'}, {'inputs': [], 'name': 'MessageDoesNotExistOrHasAlreadyBeenClaimed', 'type': 'error'}, {'inputs': [{'internalType': 'address', 'name': 'destination', 'type': 'address'}], 'name': 'MessageSendingFailed', 'type': 'error'}, {'inputs': [], 'name': 'NotList', 'type': 'error'}, {'inputs': [], 'name': 'PeriodIsZero', 'type': 'error'}, {'inputs': [], 'name': 'ProofIsEmpty', 'type': 'error'}, {'inputs': [], 'name': 'RateLimitExceeded', 'type': 'error'}, {'inputs': [], 'name': 'StartingRootHashDoesNotMatch', 'type': 'error'}, {'inputs': [], 'name': 'TransactionShort', 'type': 'error'}, {'inputs': [], 'name': 'UnknownTransactionType', 'type': 'error'}, {'inputs': [], 'name': 'ValueSentTooLow', 'type': 'error'}, {'inputs': [], 'name': 'ValueShouldBeGreaterThanFee', 'type': 'error'}, {'inputs': [], 'name': 'WrongBytesLength', 'type': 'error'}, {'inputs': [], 'name': 'ZeroAddressNotAllowed', 'type': 'error'}, {'anonymous': False, 'inputs': [{'indexed': True, 'internalType': 'address', 'name': 'resettingAddress', 'type': 'address'}], 'name': 'AmountUsedInPeriodReset', 'type': 'event'}, {'anonymous': False, 'inputs': [{'indexed': True, 'internalType': 'uint256', 'name': 'blockNumber', 'type': 'uint256'}, {'indexed': True, 'internalType': 'bytes32', 'name': 'stateRootHash', 'type': 'bytes32'}], 'name': 'BlockFinalized', 'type': 'event'}, {'anonymous': False, 'inputs': [{'indexed': True, 'internalType': 'uint256', 'name': 'lastBlockFinalized', 'type': 'uint256'}, {'indexed': False, 'internalType': 'bytes32', 'name': 'startingRootHash', 'type': 'bytes32'}, {'indexed': False, 'internalType': 'bytes32', 'name': 'finalRootHash', 'type': 'bytes32'}], 'name': 'BlocksVerificationDone', 'type': 'event'}, {'anonymous': False, 'inputs': [{'indexed': False, 'internalType': 'uint8', 'name': 'version', 'type': 'uint8'}], 'name': 'Initialized', 'type': 'event'}, {'anonymous': False, 'inputs': [{'indexed': False, 'internalType': 'bytes32[]', 'name': 'messageHashes', 'type': 'bytes32[]'}], 'name': 'L1L2MessagesReceivedOnL2', 'type': 'event'}, {'anonymous': False, 'inputs': [{'indexed': True, 'internalType': 'bytes32', 'name': 'messageHash', 'type': 'bytes32'}], 'name': 'L2L1MessageHashAddedToInbox', 'type': 'event'}, {'anonymous': False, 'inputs': [{'indexed': True, 'internalType': 'address', 'name': 'amountChangeBy', 'type': 'address'}, {'indexed': False, 'internalType': 'uint256', 'name': 'amount', 'type': 'uint256'}, {'indexed': False, 'internalType': 'bool', 'name': 'amountUsedLoweredToLimit', 'type': 'bool'}, {'indexed': False, 'internalType': 'bool', 'name': 'usedAmountResetToZero', 'type': 'bool'}], 'name': 'LimitAmountChanged', 'type': 'event'}, {'anonymous': False, 'inputs': [{'indexed': True, 'internalType': 'bytes32', 'name': '_messageHash', 'type': 'bytes32'}], 'name': 'MessageClaimed', 'type': 'event'}, {'anonymous': False, 'inputs': [{'indexed': True, 'internalType': 'address', 'name': '_from', 'type': 'address'}, {'indexed': True, 'internalType': 'address', 'name': '_to', 'type': 'address'}, {'indexed': False, 'internalType': 'uint256', 'name': '_fee', 'type': 'uint256'}, {'indexed': False, 'internalType': 'uint256', 'name': '_value', 'type': 'uint256'}, {'indexed': False, 'internalType': 'uint256', 'name': '_nonce', 'type': 'uint256'}, {'indexed': False, 'internalType': 'bytes', 'name': '_calldata', 'type': 'bytes'}, {'indexed': True, 'internalType': 'bytes32', 'name': '_messageHash', 'type': 'bytes32'}], 'name': 'MessageSent', 'type': 'event'}, {'anonymous': False, 'inputs': [{'indexed': False, 'internalType': 'address', 'name': 'messageSender', 'type': 'address'}, {'indexed': False, 'internalType': 'bytes32', 'name': 'pauseType', 'type': 'bytes32'}], 'name': 'Paused', 'type': 'event'}, {'anonymous': False, 'inputs': [{'indexed': True, 'internalType': 'bytes32', 'name': 'role', 'type': 'bytes32'}, {'indexed': True, 'internalType': 'bytes32', 'name': 'previousAdminRole', 'type': 'bytes32'}, {'indexed': True, 'internalType': 'bytes32', 'name': 'newAdminRole', 'type': 'bytes32'}], 'name': 'RoleAdminChanged', 'type': 'event'}, {'anonymous': False, 'inputs': [{'indexed': True, 'internalType': 'bytes32', 'name': 'role', 'type': 'bytes32'}, {'indexed': True, 'internalType': 'address', 'name': 'account', 'type': 'address'}, {'indexed': True, 'internalType': 'address', 'name': 'sender', 'type': 'address'}], 'name': 'RoleGranted', 'type': 'event'}, {'anonymous': False, 'inputs': [{'indexed': True, 'internalType': 'bytes32', 'name': 'role', 'type': 'bytes32'}, {'indexed': True, 'internalType': 'address', 'name': 'account', 'type': 'address'}, {'indexed': True, 'internalType': 'address', 'name': 'sender', 'type': 'address'}], 'name': 'RoleRevoked', 'type': 'event'}, {'anonymous': False, 'inputs': [{'indexed': False, 'internalType': 'address', 'name': 'messageSender', 'type': 'address'}, {'indexed': False, 'internalType': 'bytes32', 'name': 'pauseType', 'type': 'bytes32'}], 'name': 'UnPaused', 'type': 'event'}, {'anonymous': False, 'inputs': [{'indexed': True, 'internalType': 'address', 'name': 'verifierAddress', 'type': 'address'}, {'indexed': True, 'internalType': 'uint256', 'name': 'proofType', 'type': 'uint256'}, {'indexed': True, 'internalType': 'address', 'name': 'verifierSetBy', 'type': 'address'}], 'name': 'VerifierAddressChanged', 'type': 'event'}, {'inputs': [], 'name': 'DEFAULT_ADMIN_ROLE', 'outputs': [{'internalType': 'bytes32', 'name': '', 'type': 'bytes32'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [], 'name': 'GENERAL_PAUSE_TYPE', 'outputs': [{'internalType': 'bytes32', 'name': '', 'type': 'bytes32'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [], 'name': 'INBOX_STATUS_RECEIVED', 'outputs': [{'internalType': 'uint8', 'name': '', 'type': 'uint8'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [], 'name': 'INBOX_STATUS_UNKNOWN', 'outputs': [{'internalType': 'uint8', 'name': '', 'type': 'uint8'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [], 'name': 'L1_L2_PAUSE_TYPE', 'outputs': [{'internalType': 'bytes32', 'name': '', 'type': 'bytes32'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [], 'name': 'L2_L1_PAUSE_TYPE', 'outputs': [{'internalType': 'bytes32', 'name': '', 'type': 'bytes32'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [], 'name': 'OPERATOR_ROLE', 'outputs': [{'internalType': 'bytes32', 'name': '', 'type': 'bytes32'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [], 'name': 'OUTBOX_STATUS_RECEIVED', 'outputs': [{'internalType': 'uint8', 'name': '', 'type': 'uint8'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [], 'name': 'OUTBOX_STATUS_SENT', 'outputs': [{'internalType': 'uint8', 'name': '', 'type': 'uint8'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [], 'name': 'OUTBOX_STATUS_UNKNOWN', 'outputs': [{'internalType': 'uint8', 'name': '', 'type': 'uint8'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [], 'name': 'PAUSE_MANAGER_ROLE', 'outputs': [{'internalType': 'bytes32', 'name': '', 'type': 'bytes32'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [], 'name': 'PROVING_SYSTEM_PAUSE_TYPE', 'outputs': [{'internalType': 'bytes32', 'name': '', 'type': 'bytes32'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [], 'name': 'RATE_LIMIT_SETTER_ROLE', 'outputs': [{'internalType': 'bytes32', 'name': '', 'type': 'bytes32'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [{'internalType': 'address', 'name': '_from', 'type': 'address'}, {'internalType': 'address', 'name': '_to', 'type': 'address'}, {'internalType': 'uint256', 'name': '_fee', 'type': 'uint256'}, {'internalType': 'uint256', 'name': '_value', 'type': 'uint256'}, {'internalType': 'address payable', 'name': '_feeRecipient', 'type': 'address'}, {'internalType': 'bytes', 'name': '_calldata', 'type': 'bytes'}, {'internalType': 'uint256', 'name': '_nonce', 'type': 'uint256'}], 'name': 'claimMessage', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [], 'name': 'currentL2BlockNumber', 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [], 'name': 'currentPeriodAmountInWei', 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [], 'name': 'currentPeriodEnd', 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [], 'name': 'currentTimestamp', 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [{'components': [{'internalType': 'bytes32', 'name': 'blockRootHash', 'type': 'bytes32'}, {'internalType': 'uint32', 'name': 'l2BlockTimestamp', 'type': 'uint32'}, {'internalType': 'bytes[]', 'name': 'transactions', 'type': 'bytes[]'}, {'internalType': 'bytes32[]', 'name': 'l2ToL1MsgHashes', 'type': 'bytes32[]'}, {'internalType': 'bytes', 'name': 'fromAddresses', 'type': 'bytes'}, {'internalType': 'uint16[]', 'name': 'batchReceptionIndices', 'type': 'uint16[]'}], 'internalType': 'struct IZkEvmV2.BlockData[]', 'name': '_blocksData', 'type': 'tuple[]'}, {'internalType': 'bytes', 'name': '_proof', 'type': 'bytes'}, {'internalType': 'uint256', 'name': '_proofType', 'type': 'uint256'}, {'internalType': 'bytes32', 'name': '_parentStateRootHash', 'type': 'bytes32'}], 'name': 'finalizeBlocks', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{'components': [{'internalType': 'bytes32', 'name': 'blockRootHash', 'type': 'bytes32'}, {'internalType': 'uint32', 'name': 'l2BlockTimestamp', 'type': 'uint32'}, {'internalType': 'bytes[]', 'name': 'transactions', 'type': 'bytes[]'}, {'internalType': 'bytes32[]', 'name': 'l2ToL1MsgHashes', 'type': 'bytes32[]'}, {'internalType': 'bytes', 'name': 'fromAddresses', 'type': 'bytes'}, {'internalType': 'uint16[]', 'name': 'batchReceptionIndices', 'type': 'uint16[]'}], 'internalType': 'struct IZkEvmV2.BlockData[]', 'name': '_blocksData', 'type': 'tuple[]'}], 'name': 'finalizeBlocksWithoutProof', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{'internalType': 'bytes32', 'name': 'role', 'type': 'bytes32'}], 'name': 'getRoleAdmin', 'outputs': [{'internalType': 'bytes32', 'name': '', 'type': 'bytes32'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [{'internalType': 'bytes32', 'name': 'role', 'type': 'bytes32'}, {'internalType': 'address', 'name': 'account', 'type': 'address'}], 'name': 'grantRole', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{'internalType': 'bytes32', 'name': 'role', 'type': 'bytes32'}, {'internalType': 'address', 'name': 'account', 'type': 'address'}], 'name': 'hasRole', 'outputs': [{'internalType': 'bool', 'name': '', 'type': 'bool'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [{'internalType': 'bytes32', 'name': '', 'type': 'bytes32'}], 'name': 'inboxL2L1MessageStatus', 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [{'internalType': 'bytes32', 'name': '_initialStateRootHash', 'type': 'bytes32'}, {'internalType': 'uint256', 'name': '_initialL2BlockNumber', 'type': 'uint256'}, {'internalType': 'address', 'name': '_defaultVerifier', 'type': 'address'}, {'internalType': 'address', 'name': '_securityCouncil', 'type': 'address'}, {'internalType': 'address[]', 'name': '_operators', 'type': 'address[]'}, {'internalType': 'uint256', 'name': '_rateLimitPeriodInSeconds', 'type': 'uint256'}, {'internalType': 'uint256', 'name': '_rateLimitAmountInWei', 'type': 'uint256'}], 'name': 'initialize', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [], 'name': 'limitInWei', 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [], 'name': 'nextMessageNumber', 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [{'internalType': 'bytes32', 'name': '', 'type': 'bytes32'}], 'name': 'outboxL1L2MessageStatus', 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [{'internalType': 'bytes32', 'name': '_pauseType', 'type': 'bytes32'}], 'name': 'pauseByType', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{'internalType': 'bytes32', 'name': '', 'type': 'bytes32'}], 'name': 'pauseTypeStatuses', 'outputs': [{'internalType': 'bool', 'name': '', 'type': 'bool'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [], 'name': 'periodInSeconds', 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [{'internalType': 'bytes32', 'name': 'role', 'type': 'bytes32'}, {'internalType': 'address', 'name': 'account', 'type': 'address'}], 'name': 'renounceRole', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [], 'name': 'resetAmountUsedInPeriod', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{'internalType': 'uint256', 'name': '_amount', 'type': 'uint256'}], 'name': 'resetRateLimitAmount', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{'internalType': 'bytes32', 'name': 'role', 'type': 'bytes32'}, {'internalType': 'address', 'name': 'account', 'type': 'address'}], 'name': 'revokeRole', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{'internalType': 'address', 'name': '_to', 'type': 'address'}, {'internalType': 'uint256', 'name': '_fee', 'type': 'uint256'}, {'internalType': 'bytes', 'name': '_calldata', 'type': 'bytes'}], 'name': 'sendMessage', 'outputs': [], 'stateMutability': 'payable', 'type': 'function'}, {'inputs': [], 'name': 'sender', 'outputs': [{'internalType': 'address', 'name': '', 'type': 'address'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [{'internalType': 'address', 'name': '_newVerifierAddress', 'type': 'address'}, {'internalType': 'uint256', 'name': '_proofType', 'type': 'uint256'}], 'name': 'setVerifierAddress', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], 'name': 'stateRootHashes', 'outputs': [{'internalType': 'bytes32', 'name': '', 'type': 'bytes32'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [{'internalType': 'bytes4', 'name': 'interfaceId', 'type': 'bytes4'}], 'name': 'supportsInterface', 'outputs': [{'internalType': 'bool', 'name': '', 'type': 'bool'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [{'internalType': 'bytes32', 'name': '_pauseType', 'type': 'bytes32'}], 'name': 'unPauseByType', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], 'name': 'verifiers', 'outputs': [{'internalType': 'address', 'name': '', 'type': 'address'}], 'stateMutability': 'view', 'type': 'function'}, {'stateMutability': 'payable', 'type': 'receive'}],
'withdraw': [{'inputs': [], 'stateMutability': 'nonpayable', 'type': 'constructor'}, {'inputs': [], 'name': 'BlockTimestampError', 'type': 'error'}, {'inputs': [], 'name': 'EmptyBlock', 'type': 'error'}, {'inputs': [], 'name': 'EmptyBlockDataArray', 'type': 'error'}, {'inputs': [{'internalType': 'address', 'name': 'recipient', 'type': 'address'}], 'name': 'FeePaymentFailed', 'type': 'error'}, {'inputs': [], 'name': 'FeeTooLow', 'type': 'error'}, {'inputs': [], 'name': 'InvalidProof', 'type': 'error'}, {'inputs': [], 'name': 'InvalidProofType', 'type': 'error'}, {'inputs': [{'internalType': 'bytes32', 'name': 'pauseType', 'type': 'bytes32'}], 'name': 'IsNotPaused', 'type': 'error'}, {'inputs': [{'internalType': 'bytes32', 'name': 'pauseType', 'type': 'bytes32'}], 'name': 'IsPaused', 'type': 'error'}, {'inputs': [{'internalType': 'bytes32', 'name': 'messageHash', 'type': 'bytes32'}], 'name': 'L1L2MessageNotSent', 'type': 'error'}, {'inputs': [], 'name': 'LimitIsZero', 'type': 'error'}, {'inputs': [{'internalType': 'uint256', 'name': 'inde', 'type': 'uint256'}], 'name': 'MemoryOutOfBounds', 'type': 'error'}, {'inputs': [{'internalType': 'bytes32', 'name': 'messageHash', 'type': 'bytes32'}], 'name': 'MessageAlreadyReceived', 'type': 'error'}, {'inputs': [], 'name': 'MessageAlreadySent', 'type': 'error'}, {'inputs': [], 'name': 'MessageDoesNotExistOrHasAlreadyBeenClaimed', 'type': 'error'}, {'inputs': [{'internalType': 'address', 'name': 'destination', 'type': 'address'}], 'name': 'MessageSendingFailed', 'type': 'error'}, {'inputs': [], 'name': 'NotList', 'type': 'error'}, {'inputs': [], 'name': 'PeriodIsZero', 'type': 'error'}, {'inputs': [], 'name': 'ProofIsEmpty', 'type': 'error'}, {'inputs': [], 'name': 'RateLimitExceeded', 'type': 'error'}, {'inputs': [], 'name': 'StartingRootHashDoesNotMatch', 'type': 'error'}, {'inputs': [], 'name': 'TransactionShort', 'type': 'error'}, {'inputs': [], 'name': 'UnknownTransactionType', 'type': 'error'}, {'inputs': [], 'name': 'ValueSentTooLow', 'type': 'error'}, {'inputs': [], 'name': 'ValueShouldBeGreaterThanFee', 'type': 'error'}, {'inputs': [], 'name': 'WrongBytesLength', 'type': 'error'}, {'inputs': [], 'name': 'ZeroAddressNotAllowed', 'type': 'error'}, {'anonymous': False, 'inputs': [{'indexed': True, 'internalType': 'address', 'name': 'resettingAddress', 'type': 'address'}], 'name': 'AmountUsedInPeriodReset', 'type': 'event'}, {'anonymous': False, 'inputs': [{'indexed': True, 'internalType': 'uint256', 'name': 'blockNumber', 'type': 'uint256'}, {'indexed': True, 'internalType': 'bytes32', 'name': 'stateRootHash', 'type': 'bytes32'}], 'name': 'BlockFinalized', 'type': 'event'}, {'anonymous': False, 'inputs': [{'indexed': True, 'internalType': 'uint256', 'name': 'lastBlockFinalized', 'type': 'uint256'}, {'indexed': False, 'internalType': 'bytes32', 'name': 'startingRootHash', 'type': 'bytes32'}, {'indexed': False, 'internalType': 'bytes32', 'name': 'finalRootHash', 'type': 'bytes32'}], 'name': 'BlocksVerificationDone', 'type': 'event'}, {'anonymous': False, 'inputs': [{'indexed': False, 'internalType': 'uint8', 'name': 'version', 'type': 'uint8'}], 'name': 'Initialized', 'type': 'event'}, {'anonymous': False, 'inputs': [{'indexed': False, 'internalType': 'bytes32[]', 'name': 'messageHashes', 'type': 'bytes32[]'}], 'name': 'L1L2MessagesReceivedOnL2', 'type': 'event'}, {'anonymous': False, 'inputs': [{'indexed': True, 'internalType': 'bytes32', 'name': 'messageHash', 'type': 'bytes32'}], 'name': 'L2L1MessageHashAddedToInbox', 'type': 'event'}, {'anonymous': False, 'inputs': [{'indexed': True, 'internalType': 'address', 'name': 'amountChangeBy', 'type': 'address'}, {'indexed': False, 'internalType': 'uint256', 'name': 'amount', 'type': 'uint256'}, {'indexed': False, 'internalType': 'bool', 'name': 'amountUsedLoweredToLimit', 'type': 'bool'}, {'indexed': False, 'internalType': 'bool', 'name': 'usedAmountResetToZero', 'type': 'bool'}], 'name': 'LimitAmountChanged', 'type': 'event'}, {'anonymous': False, 'inputs': [{'indexed': True, 'internalType': 'bytes32', 'name': '_messageHash', 'type': 'bytes32'}], 'name': 'MessageClaimed', 'type': 'event'}, {'anonymous': False, 'inputs': [{'indexed': True, 'internalType': 'address', 'name': '_from', 'type': 'address'}, {'indexed': True, 'internalType': 'address', 'name': '_to', 'type': 'address'}, {'indexed': False, 'internalType': 'uint256', 'name': '_fee', 'type': 'uint256'}, {'indexed': False, 'internalType': 'uint256', 'name': '_value', 'type': 'uint256'}, {'indexed': False, 'internalType': 'uint256', 'name': '_nonce', 'type': 'uint256'}, {'indexed': False, 'internalType': 'bytes', 'name': '_calldata', 'type': 'bytes'}, {'indexed': True, 'internalType': 'bytes32', 'name': '_messageHash', 'type': 'bytes32'}], 'name': 'MessageSent', 'type': 'event'}, {'anonymous': False, 'inputs': [{'indexed': False, 'internalType': 'address', 'name': 'messageSender', 'type': 'address'}, {'indexed': False, 'internalType': 'bytes32', 'name': 'pauseType', 'type': 'bytes32'}], 'name': 'Paused', 'type': 'event'}, {'anonymous': False, 'inputs': [{'indexed': True, 'internalType': 'bytes32', 'name': 'role', 'type': 'bytes32'}, {'indexed': True, 'internalType': 'bytes32', 'name': 'previousAdminRole', 'type': 'bytes32'}, {'indexed': True, 'internalType': 'bytes32', 'name': 'newAdminRole', 'type': 'bytes32'}], 'name': 'RoleAdminChanged', 'type': 'event'}, {'anonymous': False, 'inputs': [{'indexed': True, 'internalType': 'bytes32', 'name': 'role', 'type': 'bytes32'}, {'indexed': True, 'internalType': 'address', 'name': 'account', 'type': 'address'}, {'indexed': True, 'internalType': 'address', 'name': 'sender', 'type': 'address'}], 'name': 'RoleGranted', 'type': 'event'}, {'anonymous': False, 'inputs': [{'indexed': True, 'internalType': 'bytes32', 'name': 'role', 'type': 'bytes32'}, {'indexed': True, 'internalType': 'address', 'name': 'account', 'type': 'address'}, {'indexed': True, 'internalType': 'address', 'name': 'sender', 'type': 'address'}], 'name': 'RoleRevoked', 'type': 'event'}, {'anonymous': False, 'inputs': [{'indexed': False, 'internalType': 'address', 'name': 'messageSender', 'type': 'address'}, {'indexed': False, 'internalType': 'bytes32', 'name': 'pauseType', 'type': 'bytes32'}], 'name': 'UnPaused', 'type': 'event'}, {'anonymous': False, 'inputs': [{'indexed': True, 'internalType': 'address', 'name': 'verifierAddress', 'type': 'address'}, {'indexed': True, 'internalType': 'uint256', 'name': 'proofType', 'type': 'uint256'}, {'indexed': True, 'internalType': 'address', 'name': 'verifierSetBy', 'type': 'address'}], 'name': 'VerifierAddressChanged', 'type': 'event'}, {'inputs': [], 'name': 'DEFAULT_ADMIN_ROLE', 'outputs': [{'internalType': 'bytes32', 'name': '', 'type': 'bytes32'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [], 'name': 'GENERAL_PAUSE_TYPE', 'outputs': [{'internalType': 'bytes32', 'name': '', 'type': 'bytes32'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [], 'name': 'INBOX_STATUS_RECEIVED', 'outputs': [{'internalType': 'uint8', 'name': '', 'type': 'uint8'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [], 'name': 'INBOX_STATUS_UNKNOWN', 'outputs': [{'internalType': 'uint8', 'name': '', 'type': 'uint8'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [], 'name': 'L1_L2_PAUSE_TYPE', 'outputs': [{'internalType': 'bytes32', 'name': '', 'type': 'bytes32'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [], 'name': 'L2_L1_PAUSE_TYPE', 'outputs': [{'internalType': 'bytes32', 'name': '', 'type': 'bytes32'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [], 'name': 'OPERATOR_ROLE', 'outputs': [{'internalType': 'bytes32', 'name': '', 'type': 'bytes32'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [], 'name': 'OUTBOX_STATUS_RECEIVED', 'outputs': [{'internalType': 'uint8', 'name': '', 'type': 'uint8'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [], 'name': 'OUTBOX_STATUS_SENT', 'outputs': [{'internalType': 'uint8', 'name': '', 'type': 'uint8'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [], 'name': 'OUTBOX_STATUS_UNKNOWN', 'outputs': [{'internalType': 'uint8', 'name': '', 'type': 'uint8'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [], 'name': 'PAUSE_MANAGER_ROLE', 'outputs': [{'internalType': 'bytes32', 'name': '', 'type': 'bytes32'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [], 'name': 'PROVING_SYSTEM_PAUSE_TYPE', 'outputs': [{'internalType': 'bytes32', 'name': '', 'type': 'bytes32'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [], 'name': 'RATE_LIMIT_SETTER_ROLE', 'outputs': [{'internalType': 'bytes32', 'name': '', 'type': 'bytes32'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [{'internalType': 'address', 'name': '_from', 'type': 'address'}, {'internalType': 'address', 'name': '_to', 'type': 'address'}, {'internalType': 'uint256', 'name': '_fee', 'type': 'uint256'}, {'internalType': 'uint256', 'name': '_value', 'type': 'uint256'}, {'internalType': 'address payable', 'name': '_feeRecipient', 'type': 'address'}, {'internalType': 'bytes', 'name': '_calldata', 'type': 'bytes'}, {'internalType': 'uint256', 'name': '_nonce', 'type': 'uint256'}], 'name': 'claimMessage', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [], 'name': 'currentL2BlockNumber', 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [], 'name': 'currentPeriodAmountInWei', 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [], 'name': 'currentPeriodEnd', 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [], 'name': 'currentTimestamp', 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [{'components': [{'internalType': 'bytes32', 'name': 'blockRootHash', 'type': 'bytes32'}, {'internalType': 'uint32', 'name': 'l2BlockTimestamp', 'type': 'uint32'}, {'internalType': 'bytes[]', 'name': 'transactions', 'type': 'bytes[]'}, {'internalType': 'bytes32[]', 'name': 'l2ToL1MsgHashes', 'type': 'bytes32[]'}, {'internalType': 'bytes', 'name': 'fromAddresses', 'type': 'bytes'}, {'internalType': 'uint16[]', 'name': 'batchReceptionIndices', 'type': 'uint16[]'}], 'internalType': 'struct IZkEvmV2.BlockData[]', 'name': '_blocksData', 'type': 'tuple[]'}, {'internalType': 'bytes', 'name': '_proof', 'type': 'bytes'}, {'internalType': 'uint256', 'name': '_proofType', 'type': 'uint256'}, {'internalType': 'bytes32', 'name': '_parentStateRootHash', 'type': 'bytes32'}], 'name': 'finalizeBlocks', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{'components': [{'internalType': 'bytes32', 'name': 'blockRootHash', 'type': 'bytes32'}, {'internalType': 'uint32', 'name': 'l2BlockTimestamp', 'type': 'uint32'}, {'internalType': 'bytes[]', 'name': 'transactions', 'type': 'bytes[]'}, {'internalType': 'bytes32[]', 'name': 'l2ToL1MsgHashes', 'type': 'bytes32[]'}, {'internalType': 'bytes', 'name': 'fromAddresses', 'type': 'bytes'}, {'internalType': 'uint16[]', 'name': 'batchReceptionIndices', 'type': 'uint16[]'}], 'internalType': 'struct IZkEvmV2.BlockData[]', 'name': '_blocksData', 'type': 'tuple[]'}], 'name': 'finalizeBlocksWithoutProof', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{'internalType': 'bytes32', 'name': 'role', 'type': 'bytes32'}], 'name': 'getRoleAdmin', 'outputs': [{'internalType': 'bytes32', 'name': '', 'type': 'bytes32'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [{'internalType': 'bytes32', 'name': 'role', 'type': 'bytes32'}, {'internalType': 'address', 'name': 'account', 'type': 'address'}], 'name': 'grantRole', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{'internalType': 'bytes32', 'name': 'role', 'type': 'bytes32'}, {'internalType': 'address', 'name': 'account', 'type': 'address'}], 'name': 'hasRole', 'outputs': [{'internalType': 'bool', 'name': '', 'type': 'bool'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [{'internalType': 'bytes32', 'name': '', 'type': 'bytes32'}], 'name': 'inboxL2L1MessageStatus', 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [{'internalType': 'bytes32', 'name': '_initialStateRootHash', 'type': 'bytes32'}, {'internalType': 'uint256', 'name': '_initialL2BlockNumber', 'type': 'uint256'}, {'internalType': 'address', 'name': '_defaultVerifier', 'type': 'address'}, {'internalType': 'address', 'name': '_securityCouncil', 'type': 'address'}, {'internalType': 'address[]', 'name': '_operators', 'type': 'address[]'}, {'internalType': 'uint256', 'name': '_rateLimitPeriodInSeconds', 'type': 'uint256'}, {'internalType': 'uint256', 'name': '_rateLimitAmountInWei', 'type': 'uint256'}], 'name': 'initialize', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [], 'name': 'limitInWei', 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [], 'name': 'nextMessageNumber', 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [{'internalType': 'bytes32', 'name': '', 'type': 'bytes32'}], 'name': 'outboxL1L2MessageStatus', 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [{'internalType': 'bytes32', 'name': '_pauseType', 'type': 'bytes32'}], 'name': 'pauseByType', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{'internalType': 'bytes32', 'name': '', 'type': 'bytes32'}], 'name': 'pauseTypeStatuses', 'outputs': [{'internalType': 'bool', 'name': '', 'type': 'bool'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [], 'name': 'periodInSeconds', 'outputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [{'internalType': 'bytes32', 'name': 'role', 'type': 'bytes32'}, {'internalType': 'address', 'name': 'account', 'type': 'address'}], 'name': 'renounceRole', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [], 'name': 'resetAmountUsedInPeriod', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{'internalType': 'uint256', 'name': '_amount', 'type': 'uint256'}], 'name': 'resetRateLimitAmount', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{'internalType': 'bytes32', 'name': 'role', 'type': 'bytes32'}, {'internalType': 'address', 'name': 'account', 'type': 'address'}], 'name': 'revokeRole', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{'internalType': 'address', 'name': '_to', 'type': 'address'}, {'internalType': 'uint256', 'name': '_fee', 'type': 'uint256'}, {'internalType': 'bytes', 'name': '_calldata', 'type': 'bytes'}], 'name': 'sendMessage', 'outputs': [], 'stateMutability': 'payable', 'type': 'function'}, {'inputs': [], 'name': 'sender', 'outputs': [{'internalType': 'address', 'name': '', 'type': 'address'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [{'internalType': 'address', 'name': '_newVerifierAddress', 'type': 'address'}, {'internalType': 'uint256', 'name': '_proofType', 'type': 'uint256'}], 'name': 'setVerifierAddress', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], 'name': 'stateRootHashes', 'outputs': [{'internalType': 'bytes32', 'name': '', 'type': 'bytes32'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [{'internalType': 'bytes4', 'name': 'interfaceId', 'type': 'bytes4'}], 'name': 'supportsInterface', 'outputs': [{'internalType': 'bool', 'name': '', 'type': 'bool'}], 'stateMutability': 'view', 'type': 'function'}, {'inputs': [{'internalType': 'bytes32', 'name': '_pauseType', 'type': 'bytes32'}], 'name': 'unPauseByType', 'outputs': [], 'stateMutability': 'nonpayable', 'type': 'function'}, {'inputs': [{'internalType': 'uint256', 'name': '', 'type': 'uint256'}], 'name': 'verifiers', 'outputs': [{'internalType': 'address', 'name': '', 'type': 'address'}], 'stateMutability': 'view', 'type': 'function'}, {'stateMutability': 'payable', 'type': 'receive'}],
},
'Arbitrum Nova':{
'deposit':[],
'withdraw':[]
},
'Zora':{
'deposit':[],
'withdraw':[]
}
}
ZERO_ADDRESS = '0x0000000000000000000000000000000000000000'
ETH_MASK = '0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE'
NATIVE_CONTRACTS_PER_CHAIN = {
'zkSync': {
'deposit' : '0x32400084C286CF3E17e7B677ea9583e60a000324',
'withdraw' : '0x000000000000000000000000000000000000800A',
'contact_deployer' : '0x0000000000000000000000000000000000008006'
},
'Starknet': {
"evm_contract" : "0xae0Ee0A63A2cE6BaeEFFE56e7714FB4EFE48D419",
"stark_contract" : 0x073314940630fd6dcda0d772d4c972c4e0a9946bef9dabf4ef84eda8ef542b82,
},
'Scroll':{
"deposit" : "0x6774bcbd5cecef1336b5300fb5186a12ddd8b367",
"withdraw" : "0x4C0926FF5252A435FD19e10ED15e5a249Ba19d79",
"oracle" : "0x987e300fDfb06093859358522a79098848C33852"
},
'Base':{
"deposit" : "0x49048044D57e1C92A77f79988d21Fa8fAF74E97e",
"withdraw" : "0x4200000000000000000000000000000000000016"
},
'Linea':{
"deposit" : "0xd19d4B5d358258f05D7B411E21A1460D11B0876F",
"withdraw" : "0x508Ca82Df566dCD1B0DE8296e70a96332cD644ec"
},
'Arbitrum Nova':{
"deposit" : "0x",
"withdraw" : "0x"
},
'Zora':{
"deposit" : "0x",
"withdraw" : "0x"
}
}
TOKENS_PER_CHAIN = {
'Ethereum': {
'ETH' : '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2',
'WETH' : '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2',
'USDC' : '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48',
'USDT' : '0xdAC17F958D2ee523a2206206994597C13D831ec7',
},
"Avalanche": {
'ETH' : '0x49D5c2BdFfac6CE2BFdB6640F4F80f226bc10bAB',
'USDC' : '0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E',
'USDC.e' : '0xA7D7079b0FEaD91F3e65f86E8915Cb59c1a4C664',
'USDT' : '0x9702230A8Ea53601f5cD2dc00fDBc13d4dF4A8c7',
},
"Arbitrum":{
"ETH" : "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1",
"WETH" : "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1",
'USDC' : "0xaf88d065e77c8cC2239327C5EDb3A432268e5831",
'USDT' : "0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9",
'USDC.e' : "0xFF970A61A04b1cA14834A43f5dE4533eBDDB5CC8",
'DAI' : "0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1",
},
'Arbitrum Nova':{
"ETH" : "0x722E8BdD2ce80A4422E880164f2079488e115365",
"WETH" : "0x722E8BdD2ce80A4422E880164f2079488e115365",
"USDC" : "0x750ba8b76187092B0D1E87E28daaf484d1b5273b",
"DAI" : "0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1"
},
'Blast':{
"ETH" : "0x4300000000000000000000000000000000000004",
"WETH" : "0x4300000000000000000000000000000000000004",
"USDB" : "0x4300000000000000000000000000000000000003"
},
'Zora':{
"ETH" : "0x4200000000000000000000000000000000000006",
"WETH" : "0x4200000000000000000000000000000000000006"
},
"Optimism":{
"ETH" : "0x4200000000000000000000000000000000000006",
"WETH" : "0x4200000000000000000000000000000000000006",
"USDC" : "0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85",
"USDT" : "0x94b008aA00579c1307B0EF2c499aD98a8ce58e58",
"USDC.e" : "0x7F5c764cBc14f9669B88837ca1490cCa17c31607",
"DAI" : "0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1"
},
"Polygon":{
'MATIC' : "0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270",
'WMATIC' : "0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270",
'WETH' : "0x7ceB23fD6bC0adD59E62ac25578270cFf1b9f619",
'USDT' : "0xc2132D05D31c914a87C6611C10748AEb04B58e8F",
'USDC' : "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
'USDC.e' : "0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174",
},
"Polygon zkEVM":{
'ETH' : "0x4F9A0e7FD2Bf6067db6994CF12E4495Df938E6e9",
'WETH' : "0x4F9A0e7FD2Bf6067db6994CF12E4495Df938E6e9",
'USDC' : "0xA8CE8aee21bC2A48a5EF670afCc9274C7bbbC035",
},
"zkSync": {
"ETH" : "0x5AEa5775959fBC2557Cc8789bC1bf90A239D9a91",
"WETH" : "0x5AEa5775959fBC2557Cc8789bC1bf90A239D9a91",
"USDC" : "0x3355df6D4c9C3035724Fd0e3914dE96A5a83aaf4",
"USDT" : "0x493257fD37EDB34451f62EDf8D2a0C418852bA4C",
#"BUSD" : "0x2039bb4116B4EFc145Ec4f0e2eA75012D6C0f181"
},
"Starknet": {
"ETH" : 0x049d36570d4e46f48e99674bd3fcc84644ddd6b96f7c741b1562b82f9e004dc7,
"USDC" : 0x053c91253bc9682c04929ca02ed00b3e423f6710d2ee7e0d5ebb06f3ecf368a8,
"USDT" : 0x068f5c6a61780768455de69077e07e89787839bf8166decfbf92b645209c0fb8,
"DAI" : 0x00da114221cb83fa859dbdb4c44beeaa0bb37c7537ad5ae66fe5e0efd20e6eb3,
},
"Base":{
"ETH" : "0x4200000000000000000000000000000000000006",
"WETH" : "0x4200000000000000000000000000000000000006",
"USDC" : "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"USDC.e" : "0xd9aAEc86B65D86f6A7B5B1b0c42FFA531710b6CA",
},
"Linea":{
"ETH" : "0xe5D7C2a44FfDDf6b295A15c148167daaAf5Cf34f",
"WETH" : "0xe5D7C2a44FfDDf6b295A15c148167daaAf5Cf34f",
"USDT" : "0xA219439258ca9da29E9Cc4cE5596924745e12B93",
"USDC" : "0x176211869cA2b568f2A7D4EE941E073a821EE1ff",
},
"Scroll":{
"ETH" : "0x5300000000000000000000000000000000000004",
"WETH" : "0x5300000000000000000000000000000000000004",
"USDT" : "0xf55BEC9cafDbE8730f096Aa55dad6D22d44099Df",
"USDC" : "0x06eFdBFf2a14a7c8E15944D1F4A48F9F95F663A4",
},
"BNB Chain":{
"USDT" : "0x55d398326f99059fF775485246999027B3197955",
"USDC" : "0x8AC76a51cc950d9822D68b83fE1Ad97B32Cd580d",
},
"Manta":{
"ETH" : "0x0Dc808adcE2099A9F62AA87D9670745AbA741746",
"WETH" : "0x0Dc808adcE2099A9F62AA87D9670745AbA741746",
"USDT" : "0xf417F5A458eC102B90352F697D6e2Ac3A3d2851f",
"USDC" : "0xb73603C5d87fA094B7314C74ACE2e64D165016fb",
}
}
ACROSS_CONTRACT = {
'Arbitrum' : '0x269727F088F16E1Aea52Cf5a97B1CD41DAA3f02D',
'Optimism' : '0x269727F088F16E1Aea52Cf5a97B1CD41DAA3f02D',
'Base' : '0x269727F088F16E1Aea52Cf5a97B1CD41DAA3f02D',
'Etherium' : '0x269727F088F16E1Aea52Cf5a97B1CD41DAA3f02D',
'Polygon' : '0x9295ee1d8C5b022Be115A2AD3c30C72E34e7F096',
}
RANGO_CONTRACTS = {
'Ethereum': {
"router": "0x69460570c93f9DE5E2edbC3052bf10125f0Ca22d"
}
}
ODOS_CONTRACTS = {
'Ethereum': {
"router": "0xCf5540fFFCdC3d510B18bFcA6d2b9987b0772559"
}
}
ONEINCH_CONTRACTS = {
'Ethereum': {
"router": "0x1111111254EEB25477B68fb85Ed929f73A960582"
}
}
OPENOCEAN_CONTRACTS = {
'Ethereum': {
"router": "0x6352a56caadC4F1E25CD6c75970Fa768A3304e64"
}
}
XYFINANCE_CONTRACTS = {
'Ethereum': {
"router": "0xFfB9faf89165585Ad4b25F81332Ead96986a2681"
}
}
ORBITER_CONTRACTS = {
"evm_contracts" : {
'zkSync' :'0xBF3922a0cEBbcD718e715e83d9187cC4BbA23f11',
'Zora' :'0x13e46b2a3f8512ed4682a8fb8b560589fe3c2172',
'Arbitrum' :'0xD9D74a29307cc6Fc8BF424ee4217f1A587FBc8Dc',
'Arbitrum Nova' :'0xD9D74a29307cc6Fc8BF424ee4217f1A587FBc8Dc',
'Base' :'0xD9D74a29307cc6Fc8BF424ee4217f1A587FBc8Dc',
'Linea' :'0xD9D74a29307cc6Fc8BF424ee4217f1A587FBc8Dc',
'Manta' :'0xD9D74a29307cc6Fc8BF424ee4217f1A587FBc8Dc',
'Polygon' :'0xD9D74a29307cc6Fc8BF424ee4217f1A587FBc8Dc',
'Polygon zkEVM' :'0xD9D74a29307cc6Fc8BF424ee4217f1A587FBc8Dc',
},
"stark_contract" : 0x173f81c529191726c6e7287e24626fe24760ac44dae2a1f7e02080230f8458b
}
UNISWAP_CONTRACTS = {
'Ethereum': {
"router": "0x68b3465833fb72A70ecDF485E0e4C7bD8665Fc45",
"quoter": "0x61fFE014bA17989E743c5F6cB21bF9697530B21e",
}
}
IZUMI_CONTRACTS = {
'Ethereum':{
"quoter" : '0x30C089574551516e5F1169C32C6D429C92bf3CD7',
"router" : '0x943ac2310D9BC703d6AB5e5e76876e212100f894'
}
}
BUNGEE_CONTRACTS = {
'zkSync':{
'gas_refuel': '0x7Ee459D7fDe8b4a3C22b9c8C7aa52AbadDd9fFD5',
},
'Ethereum':{
'gas_refuel': '0xb584D4bE1A5470CA1a8778E9B86c81e165204599'
},
'Base':{
'gas_refuel': '0xe8c5b8488feafb5df316be73ede3bdc26571a773'
},
'Gnosis':{
'gas_refuel': '0xBE51D38547992293c89CC589105784ab60b004A9'
},
'BNB Chain':{
'gas_refuel': '0xBE51D38547992293c89CC589105784ab60b004A9'
},
'Polygon':{
'gas_refuel': '0xAC313d7491910516E06FBfC2A0b5BB49bb072D91'
},
'Polygon zkEVM':{
'gas_refuel': '0x555A64968E4803e27669D64e349Ef3d18FCa0895'
},
'Arbitrum':{
'gas_refuel': '0xc0E02AA55d10e38855e13B64A8E1387A04681A00',
'claim': '0x659A3A109789b19fe6B6cB36389eE77F1807C54f'
},
'Avalanche':{
'gas_refuel': '0x040993fbF458b95871Cd2D73Ee2E09F4AF6d56bB'
},
'Optimism':{
'gas_refuel': '0x5800249621DA520aDFdCa16da20d8A5Fc0f814d8'
}
}
LAYERSWAP_CHAIN_NAME = {
1 : 'ARBITRUM_MAINNET',
2 : 'ARBITRUMNOVA_MAINNET',
3 : 'BASE_MAINNET',
4 : 'LINEA_MAINNET',
5 : 'MANTA_MAINNET',
6 : 'POLYGON_MAINNET',
7 : 'OPTIMISM_MAINNET',
8 : 'SCROLL_MAINNET',
9 : 'STARKNET_MAINNET',
10 : 'POLYGONZK_MAINNET',
11 : 'ZKSYNCERA_MAINNET',
12 : 'ZORA_MAINNET',
13 : 'ETHEREUM_MAINNET',
14 : 'AVAX_MAINNET',
15 : 'BSC_MAINNET',
28 : 'OPBNB_MAINNET',
29 : 'MANTLE_MAINNET',
}
ORBITER_CHAINS_INFO = {
1: {'name': 'Arbitrum', 'chainId': 42161, 'id': 2},
2: {'name': 'Arbitrum Nova', 'chainId': 42170, 'id': 16},
3: {'name': 'Base', 'chainId': 8453, 'id': 21},
4: {'name': 'Linea', 'chainId': 59144, 'id': 23},
5: {'name': 'Manta', 'chainId': 169, 'id': 31},
6: {'name': 'Polygon', 'chainId': 137, 'id': 6},
7: {'name': 'Optimism', 'chainId': 10, 'id': 7},
8: {'name': 'Scroll', 'chainId': 534352, 'id': 19},
9: {'name': 'Starknet', 'chainId': 'SN_MAIN', 'id': 4},
10: {'name': 'Polygon zkEVM', 'chainId': 1101, 'id': 17},
11: {'name': 'zkSync Era', 'chainId': 324, 'id': 14},
12: {'name': 'Zora', 'chainId': 7777777, 'id': 30},
13: {'name': 'Ethereum', 'chainId': 1, 'id': 1},
14: {'name': 'BNB Chain', 'chainId': 56, 'id': 15},
26: {'name': 'Metis', 'chainId': 1088, 'id': 10},
28: {'name': 'OpBNB', 'chainId': 204, 'id': 25},
29: {'name': 'Mantle', 'chainId': 5000, 'id': 24},
45: {'name': 'ZKFair', 'chainId': 42766, 'id': 38},
49: {'name': 'Blast', 'chainId': 81457, 'id': 40}
}
CHAIN_IDS = {
1: 42161,
2: 42170,
3: 8453,
4: 59144,
5: 169,
6: 137,
7: 10,
8: 534352,
9: 'SN_MAIN',
10: 1101,
11: 324,
12: 7777777,
13: 1,
14: 43114,
15: 56,
16: 1284,
17: 1666600000,
18: 40,
19: 42220,
20: 100,
21: 1116,
22: 88,
23: 1030,
24: 291,
25: 7332,
26: 1088,
27: 592,
28: 204,
29: 5000,
30: 1285,
31: 8217,
32: 2222,
33: 250,
34: 1313161554,
35: 7700,
36: 53935,
37: 122,
38: 5,
39: 82,
40: 66,
41: 148,
42: 1559,
43: 37,
44: 5151706,
45: 42766,
46: 4337,
47: 2525,
48: 0,
49: 2525,
}
RHINO_CHAIN_INFO = {
1: 'ARBITRUM',
2: 'ARBITRUMNOVA',
3: 'BASE',
4: 'LINEA',
5: 'MANTA',
6: 'MATIC_POS',
7: 'OPTIMISM',
8: 'SCROLL',
9: 'STARKNET',
10: 'ZKEVM',
11: 'ZKSYNC',
}
BUNGEE_CHAINS_IDS = {
'Optimism' : 10,
'BNB Chain' : 56,
'Gnosis' : 100,
'Polygon' : 137,
'Polygon zkEVM' : 1101,
'Base' : 8453,
'Arbitrum' : 42161,
'Avalanche' : 43114,
'Aurora' : 1313161554,
#'scroll' : 000,
#'zora' : 000,
}
CHAIN_NAME_FROM_ID = {
42161: 'Arbitrum',
42170: 'Arbitrum Nova',
8453: 'Base',
59144: 'Linea',
169: 'Manta',
137: 'Polygon',
10: 'Optimism',
81457: 'Blast',
534352: 'Scroll',
'SN_MAIN': 'Starknet',
1101: 'Polygon zkEVM',
324: 'zkSync',
7777777: 'Zora',
1: 'Ethereum',
}
OKX_NETWORKS_NAME = {
1 : 'ETH-ERC20',
2 : 'ETH-Arbitrum One',
3 : 'ETH-Optimism',
4 : 'ETH-zkSync Era',
5 : 'ETH-Linea',
6 : 'ETH-Base',
7 : 'AVAX-Avalanche C-Chain',
8 : 'BNB-BSC',
# 9 : 'BNB-OPBNB',
10 : 'CELO-CELO',
11 : 'GLMR-Moonbeam',
12 : 'MOVR-Moonriver',
13 : 'METIS-Metis',
14 : 'CORE-CORE',
15 : 'CFX-CFX_EVM',
16 : 'KLAY-Klaytn',
17 : 'FTM-Fantom',
18 : 'MATIC-Polygon',
19 : 'USDT-Arbitrum One',
20 : 'USDT-Avalanche C-Chain',
21 : 'USDT-Optimism',
22 : 'USDT-Polygon',
23 : 'USDT-BSC',
24 : 'USDT-ERC20',
25 : 'USDC-Arbitrum One',
26 : 'USDC-Avalanche C-Chain',
27 : 'USDC-Optimism',
28 : 'USDC-Polygon',
29 : 'USDC-Optimism (Bridged)',
30 : 'USDC-Polygon (Bridged)',
31 : 'USDC-BSC',
32 : 'USDC-ERC20',
# 33 : 'STG-Arbitrum One',
# 34 : 'STG-BSC',
# 35 : 'STG-Avalanche C-Chain',
# 36 : 'STG-Fantom',
# 37 : 'USDV-BSC',
38 : 'ARB-ARBITRUM',
}
BINGX_NETWORKS_NAME = {
1 : "ETH-ERC20",
2 : "ETH-ARBITRUM",
3 : "ETH-OPTIMISM",
4 : "ETH-ZKSYNCERA",
5 : "ETH-LINEA",
6 : "ETH-BASE",
7 : 'AVAX-AVAX-C',
8 : 'BNB-BEP20',
# 9 : 'BNB-OPBNB',
# 10 : 'CELO-CELO',
# 11 : 'GLMR-Moonbeam',
# 12 : 'MOVR-Moonriver',
13 : 'METIS-METIS',
# 14 : 'CORE-CORE',
15 : 'CFX-CFX',
16 : 'KLAY-KLAYTN',
17 : 'FTM-FANTOM',
18 : 'MATIC-POLYGON',
19 : 'USDT-ARBITRUM',
# 20 : 'USDT-Avalanche',
21 : 'USDT-OPTIMISM',
22 : 'USDT-POLYGON',
23 : 'USDT-BEP20',
24 : 'USDT-ERC20',
25 : 'USDC-Arbitrum One (Circle)',
26 : 'USDC-AVAX-C',
27 : 'USDC-Optimism (Circle)',
28 : 'USDC-Polygon (Circle)',
29 : 'USDC-Optimism (Bridged)',
30 : 'USDC-Polygon (Bridged)',
31 : 'USDC-BEP20',
32 : 'USDC-ERC20',
33 : 'STG-ARBITRUM',
34 : 'STG-BEP20',
# 35 : 'STG-AVAX-C',
# 36 : 'STG-FTM',
# 37 : 'USDV-BSC',
38 : 'ARB-ARBITRUM',
}
BINANCE_NETWORKS_NAME = {
1 : "ETH-ETH",
2 : "ETH-ARBITRUM",
3 : "ETH-OPTIMISM",
4 : "ETH-ZKSYNCERA",
# 5 : "ETH-LINEA",
6 : "ETH-BASE",
7 : 'AVAX-AVAXC',
8 : 'BNB-BSC',
9 : 'BNB-OPBNB',
10 : 'CELO-CELO',
11 : 'GLMR-Moonbeam',
12 : 'MOVR-Moonriver',
# 13 : 'METIS-METIS',
# 14 : 'CORE-CORE',
15 : 'CFX-CFX',
16 : 'KLAY-KLAYTN',
17 : 'FTM-FANTOM',
18 : 'MATIC-MATIC',
19 : 'USDT-ARBITRUM',
20 : 'USDT-AVAXC',
21 : 'USDT-OPTIMISM',
22 : 'USDT-MATIC',
23 : 'USDT-BSC',
24 : 'USDT-ETH',
25 : 'USDC-ARBITRUM',
26 : 'USDC-AVAXC',
27 : 'USDC-OPTIMISM',
28 : 'USDC-MATIC',
# 29 : 'USDC-Optimism (Bridged)',
# 30 : 'USDC-Polygon (Bridged)',
31 : 'USDC-BSC',
32 : 'USDC-ETH',
33 : 'STG-ARBITRUM',
34 : 'STG-BSC',
35 : 'STG-AVAXC',
36 : 'STG-FTM',
# 37 : 'USDV-BSC',
38 : 'ARB-ARBITRUM',
}
BITGET_NETWORKS_NAME = {
1 : "ETH-ETH",
2 : "ETH-ArbitrumOne",
3 : "ETH-Optimism",
4 : "ETH-zkSyncEra",
# 5 : "ETH-LINEA",
# 6 : "ETH-BASE",
7 : 'AVAX-C-Chain',
8 : 'BNB-BEP20',
# 9 : 'BNB-OPBNB',
10 : 'CELO-CELO',
11 : 'GLMR-Moonbeam',
12 : 'MOVR-MOVR',
13 : 'METIS-MetisToken',
14 : 'CORE-CoreDAO',
15 : 'CFX-CFX',
16 : 'KLAY-Klaytn',
17 : 'FTM-Fantom',
18 : 'MATIC-Polygon',
19 : 'USDT-ArbitrumOne',
20 : 'USDT-C-Chain',
21 : 'USDT-Optimism',
22 : 'USDT-Polygon',
23 : 'USDT-BEP20',
24 : 'USDT-ERC20',
25 : 'USDC-ArbitrumOne',
26 : 'USDC-C-Chain',
27 : 'USDC-OPTIMISM',
28 : 'USDC-POLYGON',
# 29 : 'USDC-Optimism (Bridged)',
# 30 : 'USDC-Polygon (Bridged)',
31 : 'USDC-BEP20',
32 : 'USDC-ERC20',
33 : 'STG-ArbitrumOne',
# 34 : 'STG-BEP20',
# 35 : 'STG-FANTOM',
# 36 : 'STG-C-Chain',
37 : 'USDV-BEP20',
38 : 'ARB-ArbitrumOne',
}
CEX_WRAPPED_ID = {
1 : 13,
2 : 1,
3 : 7,
4 : 11,
5 : 4,
6 : 3,
7 : 14,
8 : 15,
9 : 28,
10 : 19,
11 : 16,
12 : 30,
13 : 26,
14 : 21,
15 : 23,
16 : 31,
17 : 33,
18 : 6,
19 : 1,
20 : 14,
21 : 7,
22 : 6,
23 : 15,
24 : 13,
25 : 1,
26 : 14,
27 : 7,
28 : 6,
29 : 7,
30 : 6,
31 : 15,
32 : 13,
33 : 1,
34 : 15,
35 : 14,
36 : 33,
37 : 15,
38 : 1,
}
LAYERZERO_WRAPED_NETWORKS = {
1 : 1,
2 : 2,
3 : 27,
4 : 34,
5 : 14,
6 : 15,
7 : 3,
8 : 35,
9 : 19,
10 : 23,
11 : 21,
12 : 36,
13 : 13,
14 : 33,
15 : 37,
16 : 38,
17 : 20,
18 : 17,
19 : 25,
20 : 32,
21 : 31,
22 : 4,
23 : 44,
24 : 5,
25 : 29,
26 : 39,
27 : 26,
28 : 16,
29 : 30,
30 : 40,
31 : 7,
32 : 24,
33 : 6,
34 : 10,
35 : 8,
36 : 41,
37 : 18,
38 : 22,
39 : 42,
40 : 43,
41 : 12,
42 : 28,
43 : 11,
44 : 46,
45 : 47,
46 : 48
}
COINGECKO_TOKEN_API_NAMES = {
'ETH': 'ethereum',
'ASTR': 'astar',
'AVAX': 'avalanche-2',
'BNB': 'binancecoin',
'CANTO': 'canto',
'CELO': 'celo',
'CFX': 'conflux-token',
'COREDAO': 'coredaoorg',
'JEWEL': 'defi-kingdoms',
'FTM': 'fantom',
'FUSE': 'fuse-network-token',
'GETH': 'goerli-eth',
'xDAI': 'xdai',
'ONE': 'harmony',
'ZEN': 'zencash',
'KAVA': 'kava',
'KLAY': 'klay-token',
'AGLD': 'adventure-gold',
'MNT': 'mantle',
'MTR': 'meter-stable',
'METIS': 'metis-token',
'GLMR': 'moonbeam',
'MOVR': 'moonriver',
'OKT': 'oec-token',
'MATIC': 'matic-network',
'SMR': 'shimmer',
'TLOS': 'telos',
'TOMOE': 'tomoe',
'TENET': 'tenet-1b000f7b-59cb-4e06-89ce-d62b32d362b9',
'XPLA': 'xpla',
'BEAM': 'beam-2',
'INJ': 'injective-protocol',
'DAI': 'dai',
'USDT': 'tether',
'USDC': 'usd-coin',
'USDC.e': 'bridged-usdc-polygon-pos-bridge',
'BUSD': 'binance-usd',
'WETH': 'ethereum',
'USDbC': 'bridged-usd-coin-base',
'STG': 'stargate-finance'
}
LAYERZERO_NETWORKS_DATA = {
1 : ('Arbitrum', 110, 'ETH', 'ethereum'),
2 : ('Arbitrum Nova', 175, 'ETH', 'ethereum'),
3 : ('Astar', 210, 'ASTR', 'astar'),
4 : ('Aurora', 211, 'ETH', 'ethereum'),
5 : ('Avalanche', 106, 'AVAX', 'avalanche-2'),
6 : ('BNB Chain', 102, 'BNB', 'binancecoin'),
7 : ('Base', 184, 'ETH', 'ethereum'),
8 : ('Canto', 159, 'CANTO', 'canto'),
9 : ('Celo', 125, 'CELO', 'celo'),
10 : ('Conflux', 212, 'CFX', 'conflux-token'),
11 : ('CoreDAO', 153, 'COREDAO', 'coredaoorg'),
12 : ('DFK', 115, 'JEWEL', 'defi-kingdoms'),
13 : ('Ethereum', 101, 'ETH', 'ethereum'),
14 : ('Fantom', 112, 'FTM', 'fantom'),
15 : ('Fuse', 138, 'FUSE', 'fuse-network-token'),
16 : ('Goerli', 145, 'GETH', 'goerli-eth'),
17 : ('Gnosis', 145, 'xDAI', 'xdai'),
18 : ('Harmony ONE', 116, 'ONE', 'harmony'),
19 : ('Horizen EON', 215, 'ZEN', 'zencash'),
20 : ('Kava', 177, 'KAVA', 'kava'),
21 : ('Klaytn', 150, 'KLAY', 'klay-token'),
22 : ('Linea', 183, 'ETH', 'ethereum'),
23 : ('Loot', 197, 'AGLD', 'adventure-gold'),
24 : ('Manta Pacific', 217, 'ETH', 'ethereum'),
25 : ('Mantle', 181, 'MNT', 'mantle'),
26 : ('Meter', 176, 'MTR', 'meter-stable'),
27 : ('Metis', 151, 'METIS', 'metis-token'),
28 : ('Moonbeam', 126, 'GLMR', 'moonbeam'),
29 : ('Moonriver', 167, 'MOVR', 'moonriver'),
30 : ('OKX Chain', 155, 'OKT', 'oec-token'),
31 : ('Optimism', 111, 'ETH', 'ethereum'),
32 : ('Orderly', 213, 'ETH', 'ethereum'),
33 : ('Polygon', 109, 'MATIC', 'matic-network'),
34 : ('Polygon zkEVM', 158, 'ETH', 'ethereum'),
35 : ('Scroll', 214, 'ETH', 'ethereum'),
36 : ('ShimmerEVM', 230, 'SMR', 'shimmer'),
37 : ('Telos', 199, 'TLOS', 'telos'),
38 : ('TomoChain', 196, 'TOMOE', 'tomoe'),
39 : ('Tenet', 173, 'TENET', 'tenet-1b000f7b-59cb-4e06-89ce-d62b32d362b9'),
40 : ('XPLA', 216, 'XPLA', 'xpla'),
41 : ('Zora', 195, 'ETH', 'ethereum'),
42 : ('opBNB', 202, 'BNB', 'binancecoin'),
43 : ('zkSync', 165, 'ETH', 'ethereum'),
44 : ('Beam', 198, 'BEAM', 'beam-2'),
45 : ('inEVM', 234, 'INJ', 'injective-protocol'),
46 : ('Rarible', 235, 'ETH', 'ethereum'),
}
HELP_SOFTWARE = True # True or False | Если True, контракт агрегатора будет переводить мне 1% от суммы свапа
CHAIN_NAME = {
0: 'OMNI-CHAIN',
1: 'Arbitrum',
2: 'Arbitrum Nova',
3: 'Base',
4: 'Linea',
5: 'Manta',
6: 'Polygon',
7: 'Optimism',
8: 'Scroll',
9: 'Starknet',
10: 'Polygon zkEVM',
11: 'zkSync',
12: 'Zora',
13: 'Ethereum',
14: 'Avalanche',
15: 'BNB Chain',
16: 'Moonbeam',
17: 'Harmony ONE',
18: 'Telos',
19: 'Celo',
20: 'Gnosis',
21: 'CoreDAO',
22: 'TomoChai',
23: 'Conflux',
24: 'Orderly',
25: 'Horizen',
26: 'Metis',
27: 'Astar',
28: 'OpBNB',
29: 'Mantle',
30: 'Moonriver',
31: 'Klaytn',
32: 'Kava',
33: 'Fantom',
34: 'Aurora',
35: 'Canto',
36: 'DFK',
37: 'Fuse',
38: 'Goerli',
39: 'Meter',
40: 'OKX-Chain',
41: 'Shimmer',
42: 'Tenet',
43: 'XPLA',
44: 'LootChain',
45: 'ZKFair',
46: 'Beam',
47: 'inEVM',
48: 'Rarible',
49: 'Blast',
}
TITLE = """
______ ______ __ __ __ __ ______ ______ __ __ __ __ __ ______
/\ ___\ /\__ _\ /\ \_\ \ /\ "-./ \ /\ __ \ /\ ___\ /\ \_\ \ /\ \ /\ "-.\ \ /\ ___\
\ \ __\ \/_/\ \/ \ \ __ \ \ \ \-./\ \ \ \ __ \ \ \ \____ \ \ __ \ \ \ \ \ \ \-. \ \ \ __\
\ \_____\ \ \_\ \ \_\ \_\ \ \_\ \ \_\ \ \_\ \_\ \ \_____\ \ \_\ \_\ \ \_\ \ \_\\ "\_\ \ \_____\
\/_____/ \/_/ \/_/\/_/ \/_/ \/_/ \/_/\/_/ \/_____/ \/_/\/_/ \/_/ \/_/ \/_/ \/_____/
"""
ACCOUNT_NAMES, PRIVATE_KEYS, PROXIES, CEX_WALLETS = get_accounts_data()