faster-eth-abi 5.2.15__cp314-cp314t-win32.whl → 5.2.16__cp314-cp314t-win32.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of faster-eth-abi might be problematic. Click here for more details.

Files changed (48) hide show
  1. faster_eth_abi/_codec.cp314t-win32.pyd +0 -0
  2. faster_eth_abi/_codec.py +6 -0
  3. faster_eth_abi/_decoding.cp314t-win32.pyd +0 -0
  4. faster_eth_abi/_decoding.py +28 -15
  5. faster_eth_abi/_encoding.cp314t-win32.pyd +0 -0
  6. faster_eth_abi/_encoding.py +7 -1
  7. faster_eth_abi/_grammar.cp314t-win32.pyd +0 -0
  8. faster_eth_abi/_grammar.py +5 -0
  9. faster_eth_abi/abi.cp314t-win32.pyd +0 -0
  10. faster_eth_abi/base.py +4 -0
  11. faster_eth_abi/codec.py +1261 -144
  12. faster_eth_abi/constants.cp314t-win32.pyd +0 -0
  13. faster_eth_abi/decoding.py +91 -47
  14. faster_eth_abi/encoding.py +51 -3
  15. faster_eth_abi/exceptions.py +5 -2
  16. faster_eth_abi/from_type_str.cp314t-win32.pyd +0 -0
  17. faster_eth_abi/from_type_str.py +4 -0
  18. faster_eth_abi/grammar.py +17 -19
  19. faster_eth_abi/io.py +4 -0
  20. faster_eth_abi/packed.cp314t-win32.pyd +0 -0
  21. faster_eth_abi/packed.py +4 -0
  22. faster_eth_abi/registry.py +98 -33
  23. faster_eth_abi/tools/__init__.cp314t-win32.pyd +0 -0
  24. faster_eth_abi/tools/_strategies.cp314t-win32.pyd +0 -0
  25. faster_eth_abi/typing.py +94 -10
  26. faster_eth_abi/utils/__init__.cp314t-win32.pyd +0 -0
  27. faster_eth_abi/utils/numeric.cp314t-win32.pyd +0 -0
  28. faster_eth_abi/utils/padding.cp314t-win32.pyd +0 -0
  29. faster_eth_abi/utils/string.cp314t-win32.pyd +0 -0
  30. faster_eth_abi/utils/validation.cp314t-win32.pyd +0 -0
  31. {faster_eth_abi-5.2.15.dist-info → faster_eth_abi-5.2.16.dist-info}/METADATA +13 -8
  32. faster_eth_abi-5.2.16.dist-info/RECORD +47 -0
  33. {faster_eth_abi-5.2.15.dist-info → faster_eth_abi-5.2.16.dist-info}/top_level.txt +0 -1
  34. faster_eth_abi__mypyc.cp314t-win32.pyd +0 -0
  35. benchmarks/__init__.py +0 -1
  36. benchmarks/batch.py +0 -9
  37. benchmarks/data.py +0 -313
  38. benchmarks/test_abi_benchmarks.py +0 -82
  39. benchmarks/test_decoding_benchmarks.py +0 -109
  40. benchmarks/test_encoding_benchmarks.py +0 -99
  41. benchmarks/test_grammar_benchmarks.py +0 -38
  42. benchmarks/test_io_benchmarks.py +0 -99
  43. benchmarks/test_packed_benchmarks.py +0 -41
  44. benchmarks/test_registry_benchmarks.py +0 -45
  45. benchmarks/type_strings.py +0 -26
  46. faster_eth_abi-5.2.15.dist-info/RECORD +0 -58
  47. {faster_eth_abi-5.2.15.dist-info → faster_eth_abi-5.2.16.dist-info}/WHEEL +0 -0
  48. {faster_eth_abi-5.2.15.dist-info → faster_eth_abi-5.2.16.dist-info}/licenses/LICENSE +0 -0
faster_eth_abi/codec.py CHANGED
@@ -1,4 +1,11 @@
1
1
  # mypy: disable-error-code="overload-overlap"
2
+ """
3
+ API for ABI encoding and decoding.
4
+
5
+ Defines the main encoder and decoder classes, providing methods for binary serialization
6
+ and deserialization of values according to ABI type specifications.
7
+ """
8
+
2
9
  from typing import (
3
10
  Any,
4
11
  Iterable,
@@ -7,6 +14,9 @@ from typing import (
7
14
  overload,
8
15
  )
9
16
 
17
+ from eth_typing import (
18
+ HexAddress,
19
+ )
10
20
  from eth_typing.abi import (
11
21
  Decodable,
12
22
  TypeStr,
@@ -27,6 +37,7 @@ from faster_eth_abi.registry import (
27
37
  ABIRegistry,
28
38
  )
29
39
  from faster_eth_abi.typing import (
40
+ AddressTypeStr,
30
41
  BoolTypeStr,
31
42
  BytesTypeStr,
32
43
  IntTypeStr,
@@ -91,7 +102,7 @@ class ABIEncoder(BaseABICoder):
91
102
  encoder = self._registry.get_encoder(typ)
92
103
  except MultipleEntriesFound:
93
104
  raise
94
- except:
105
+ except Exception:
95
106
  return False
96
107
 
97
108
  validate = getattr(encoder, "validate_value", encoder)
@@ -128,6 +139,15 @@ class ABIDecoder(BaseABICoder):
128
139
 
129
140
  # len == 1
130
141
 
142
+ @overload
143
+ def decode(
144
+ self,
145
+ types: Tuple[AddressTypeStr],
146
+ data: Decodable,
147
+ strict: bool = True,
148
+ ) -> Tuple[HexAddress]:
149
+ ...
150
+
131
151
  @overload
132
152
  def decode(
133
153
  self,
@@ -164,8 +184,80 @@ class ABIDecoder(BaseABICoder):
164
184
  ) -> Tuple[bool]:
165
185
  ...
166
186
 
187
+ @overload
188
+ def decode(
189
+ self,
190
+ types: Tuple[TypeStr],
191
+ data: Decodable,
192
+ strict: bool = True,
193
+ ) -> Tuple[Any]:
194
+ ...
195
+
167
196
  # len == 2
168
197
 
198
+ @overload
199
+ def decode(
200
+ self,
201
+ types: Tuple[AddressTypeStr, AddressTypeStr],
202
+ data: Decodable,
203
+ strict: bool = True,
204
+ ) -> Tuple[HexAddress, HexAddress]:
205
+ ...
206
+
207
+ @overload
208
+ def decode(
209
+ self,
210
+ types: Tuple[AddressTypeStr, BytesTypeStr],
211
+ data: Decodable,
212
+ strict: bool = True,
213
+ ) -> Tuple[HexAddress, bytes]:
214
+ ...
215
+
216
+ @overload
217
+ def decode(
218
+ self,
219
+ types: Tuple[AddressTypeStr, StringTypeStr],
220
+ data: Decodable,
221
+ strict: bool = True,
222
+ ) -> Tuple[HexAddress, str]:
223
+ ...
224
+
225
+ @overload
226
+ def decode(
227
+ self,
228
+ types: Tuple[AddressTypeStr, DecodesToIntTypeStr],
229
+ data: Decodable,
230
+ strict: bool = True,
231
+ ) -> Tuple[HexAddress, int]:
232
+ ...
233
+
234
+ @overload
235
+ def decode(
236
+ self,
237
+ types: Tuple[AddressTypeStr, BoolTypeStr],
238
+ data: Decodable,
239
+ strict: bool = True,
240
+ ) -> Tuple[HexAddress, bool]:
241
+ ...
242
+
243
+ @overload
244
+ def decode(
245
+ self,
246
+ types: Tuple[AddressTypeStr, TypeStr],
247
+ data: Decodable,
248
+ strict: bool = True,
249
+ ) -> Tuple[HexAddress, Any]:
250
+ ...
251
+
252
+ @overload
253
+ def decode(
254
+ self,
255
+ types: Tuple[BytesTypeStr, AddressTypeStr],
256
+ data: Decodable,
257
+ strict: bool = True,
258
+ ) -> Tuple[bytes, HexAddress]:
259
+ ...
260
+
169
261
  @overload
170
262
  def decode(
171
263
  self,
@@ -211,6 +303,15 @@ class ABIDecoder(BaseABICoder):
211
303
  ) -> Tuple[bytes, Any]:
212
304
  ...
213
305
 
306
+ @overload
307
+ def decode(
308
+ self,
309
+ types: Tuple[StringTypeStr, AddressTypeStr],
310
+ data: Decodable,
311
+ strict: bool = True,
312
+ ) -> Tuple[str, HexAddress]:
313
+ ...
314
+
214
315
  @overload
215
316
  def decode(
216
317
  self,
@@ -256,6 +357,15 @@ class ABIDecoder(BaseABICoder):
256
357
  ) -> Tuple[str, Any]:
257
358
  ...
258
359
 
360
+ @overload
361
+ def decode(
362
+ self,
363
+ types: Tuple[DecodesToIntTypeStr, AddressTypeStr],
364
+ data: Decodable,
365
+ strict: bool = True,
366
+ ) -> Tuple[int, HexAddress]:
367
+ ...
368
+
259
369
  @overload
260
370
  def decode(
261
371
  self,
@@ -301,6 +411,15 @@ class ABIDecoder(BaseABICoder):
301
411
  ) -> Tuple[int, Any]:
302
412
  ...
303
413
 
414
+ @overload
415
+ def decode(
416
+ self,
417
+ types: Tuple[BoolTypeStr, AddressTypeStr],
418
+ data: Decodable,
419
+ strict: bool = True,
420
+ ) -> Tuple[bool, HexAddress]:
421
+ ...
422
+
304
423
  @overload
305
424
  def decode(
306
425
  self,
@@ -346,6 +465,15 @@ class ABIDecoder(BaseABICoder):
346
465
  ) -> Tuple[bool, Any]:
347
466
  ...
348
467
 
468
+ @overload
469
+ def decode(
470
+ self,
471
+ types: Tuple[TypeStr, AddressTypeStr],
472
+ data: Decodable,
473
+ strict: bool = True,
474
+ ) -> Tuple[Any, HexAddress]:
475
+ ...
476
+
349
477
  @overload
350
478
  def decode(
351
479
  self,
@@ -398,574 +526,1177 @@ class ABIDecoder(BaseABICoder):
398
526
  @overload
399
527
  def decode(
400
528
  self,
401
- types: Tuple[BytesTypeStr, BytesTypeStr, BytesTypeStr],
529
+ types: Tuple[AddressTypeStr, AddressTypeStr, AddressTypeStr],
402
530
  data: Decodable,
403
531
  strict: bool = True,
404
- ) -> Tuple[bytes, bytes, bytes]:
532
+ ) -> Tuple[HexAddress, HexAddress, HexAddress]:
405
533
  ...
406
534
 
407
535
  @overload
408
536
  def decode(
409
537
  self,
410
- types: Tuple[BytesTypeStr, BytesTypeStr, StringTypeStr],
538
+ types: Tuple[AddressTypeStr, AddressTypeStr, BytesTypeStr],
411
539
  data: Decodable,
412
540
  strict: bool = True,
413
- ) -> Tuple[bytes, bytes, str]:
541
+ ) -> Tuple[HexAddress, HexAddress, bytes]:
414
542
  ...
415
543
 
416
544
  @overload
417
545
  def decode(
418
546
  self,
419
- types: Tuple[BytesTypeStr, BytesTypeStr, DecodesToIntTypeStr],
547
+ types: Tuple[AddressTypeStr, AddressTypeStr, StringTypeStr],
420
548
  data: Decodable,
421
549
  strict: bool = True,
422
- ) -> Tuple[bytes, bytes, int]:
550
+ ) -> Tuple[HexAddress, HexAddress, str]:
423
551
  ...
424
552
 
425
553
  @overload
426
554
  def decode(
427
555
  self,
428
- types: Tuple[BytesTypeStr, BytesTypeStr, BoolTypeStr],
556
+ types: Tuple[AddressTypeStr, AddressTypeStr, DecodesToIntTypeStr],
429
557
  data: Decodable,
430
558
  strict: bool = True,
431
- ) -> Tuple[bytes, bytes, bool]:
559
+ ) -> Tuple[HexAddress, HexAddress, int]:
432
560
  ...
433
561
 
434
562
  @overload
435
563
  def decode(
436
564
  self,
437
- types: Tuple[BytesTypeStr, BytesTypeStr, TypeStr],
565
+ types: Tuple[AddressTypeStr, AddressTypeStr, BoolTypeStr],
438
566
  data: Decodable,
439
567
  strict: bool = True,
440
- ) -> Tuple[bytes, bytes, Any]:
568
+ ) -> Tuple[HexAddress, HexAddress, bool]:
441
569
  ...
442
570
 
443
571
  @overload
444
572
  def decode(
445
573
  self,
446
- types: Tuple[BytesTypeStr, StringTypeStr, BytesTypeStr],
574
+ types: Tuple[AddressTypeStr, AddressTypeStr, TypeStr],
447
575
  data: Decodable,
448
576
  strict: bool = True,
449
- ) -> Tuple[bytes, str, bytes]:
577
+ ) -> Tuple[HexAddress, HexAddress, Any]:
450
578
  ...
451
579
 
452
580
  @overload
453
581
  def decode(
454
582
  self,
455
- types: Tuple[BytesTypeStr, StringTypeStr, StringTypeStr],
583
+ types: Tuple[AddressTypeStr, BytesTypeStr, AddressTypeStr],
456
584
  data: Decodable,
457
585
  strict: bool = True,
458
- ) -> Tuple[bytes, str, str]:
586
+ ) -> Tuple[HexAddress, bytes, HexAddress]:
459
587
  ...
460
588
 
461
589
  @overload
462
590
  def decode(
463
591
  self,
464
- types: Tuple[BytesTypeStr, StringTypeStr, DecodesToIntTypeStr],
592
+ types: Tuple[AddressTypeStr, BytesTypeStr, BytesTypeStr],
465
593
  data: Decodable,
466
594
  strict: bool = True,
467
- ) -> Tuple[bytes, str, int]:
595
+ ) -> Tuple[HexAddress, bytes, bytes]:
468
596
  ...
469
597
 
470
598
  @overload
471
599
  def decode(
472
600
  self,
473
- types: Tuple[BytesTypeStr, StringTypeStr, BoolTypeStr],
601
+ types: Tuple[AddressTypeStr, BytesTypeStr, StringTypeStr],
474
602
  data: Decodable,
475
603
  strict: bool = True,
476
- ) -> Tuple[bytes, str, bool]:
604
+ ) -> Tuple[HexAddress, bytes, str]:
477
605
  ...
478
606
 
479
607
  @overload
480
608
  def decode(
481
609
  self,
482
- types: Tuple[BytesTypeStr, StringTypeStr, TypeStr],
610
+ types: Tuple[AddressTypeStr, BytesTypeStr, DecodesToIntTypeStr],
483
611
  data: Decodable,
484
612
  strict: bool = True,
485
- ) -> Tuple[bytes, str, Any]:
613
+ ) -> Tuple[HexAddress, bytes, int]:
486
614
  ...
487
615
 
488
616
  @overload
489
617
  def decode(
490
618
  self,
491
- types: Tuple[BytesTypeStr, DecodesToIntTypeStr, BytesTypeStr],
619
+ types: Tuple[AddressTypeStr, BytesTypeStr, BoolTypeStr],
492
620
  data: Decodable,
493
621
  strict: bool = True,
494
- ) -> Tuple[bytes, int, bytes]:
622
+ ) -> Tuple[HexAddress, bytes, bool]:
495
623
  ...
496
624
 
497
625
  @overload
498
626
  def decode(
499
627
  self,
500
- types: Tuple[BytesTypeStr, DecodesToIntTypeStr, StringTypeStr],
628
+ types: Tuple[AddressTypeStr, BytesTypeStr, TypeStr],
501
629
  data: Decodable,
502
630
  strict: bool = True,
503
- ) -> Tuple[bytes, int, str]:
631
+ ) -> Tuple[HexAddress, bytes, Any]:
504
632
  ...
505
633
 
506
634
  @overload
507
635
  def decode(
508
636
  self,
509
- types: Tuple[BytesTypeStr, DecodesToIntTypeStr, DecodesToIntTypeStr],
637
+ types: Tuple[AddressTypeStr, StringTypeStr, AddressTypeStr],
510
638
  data: Decodable,
511
639
  strict: bool = True,
512
- ) -> Tuple[bytes, int, int]:
640
+ ) -> Tuple[HexAddress, str, HexAddress]:
513
641
  ...
514
642
 
515
643
  @overload
516
644
  def decode(
517
645
  self,
518
- types: Tuple[BytesTypeStr, DecodesToIntTypeStr, BoolTypeStr],
646
+ types: Tuple[AddressTypeStr, StringTypeStr, BytesTypeStr],
519
647
  data: Decodable,
520
648
  strict: bool = True,
521
- ) -> Tuple[bytes, int, bool]:
649
+ ) -> Tuple[HexAddress, str, bytes]:
522
650
  ...
523
651
 
524
652
  @overload
525
653
  def decode(
526
654
  self,
527
- types: Tuple[BytesTypeStr, DecodesToIntTypeStr, TypeStr],
655
+ types: Tuple[AddressTypeStr, StringTypeStr, StringTypeStr],
528
656
  data: Decodable,
529
657
  strict: bool = True,
530
- ) -> Tuple[bytes, int, Any]:
658
+ ) -> Tuple[HexAddress, str, str]:
531
659
  ...
532
660
 
533
661
  @overload
534
662
  def decode(
535
663
  self,
536
- types: Tuple[BytesTypeStr, BoolTypeStr, BytesTypeStr],
664
+ types: Tuple[AddressTypeStr, StringTypeStr, DecodesToIntTypeStr],
537
665
  data: Decodable,
538
666
  strict: bool = True,
539
- ) -> Tuple[bytes, bool, bytes]:
667
+ ) -> Tuple[HexAddress, str, int]:
540
668
  ...
541
669
 
542
670
  @overload
543
671
  def decode(
544
672
  self,
545
- types: Tuple[BytesTypeStr, BoolTypeStr, StringTypeStr],
673
+ types: Tuple[AddressTypeStr, StringTypeStr, BoolTypeStr],
546
674
  data: Decodable,
547
675
  strict: bool = True,
548
- ) -> Tuple[bytes, bool, str]:
676
+ ) -> Tuple[HexAddress, str, bool]:
549
677
  ...
550
678
 
551
679
  @overload
552
680
  def decode(
553
681
  self,
554
- types: Tuple[BytesTypeStr, BoolTypeStr, DecodesToIntTypeStr],
682
+ types: Tuple[AddressTypeStr, StringTypeStr, TypeStr],
555
683
  data: Decodable,
556
684
  strict: bool = True,
557
- ) -> Tuple[bytes, bool, int]:
685
+ ) -> Tuple[HexAddress, str, Any]:
558
686
  ...
559
687
 
560
688
  @overload
561
689
  def decode(
562
690
  self,
563
- types: Tuple[BytesTypeStr, BoolTypeStr, BoolTypeStr],
691
+ types: Tuple[AddressTypeStr, DecodesToIntTypeStr, AddressTypeStr],
564
692
  data: Decodable,
565
693
  strict: bool = True,
566
- ) -> Tuple[bytes, bool, bool]:
694
+ ) -> Tuple[HexAddress, int, HexAddress]:
567
695
  ...
568
696
 
569
697
  @overload
570
698
  def decode(
571
699
  self,
572
- types: Tuple[BytesTypeStr, BoolTypeStr, TypeStr],
700
+ types: Tuple[AddressTypeStr, DecodesToIntTypeStr, BytesTypeStr],
573
701
  data: Decodable,
574
702
  strict: bool = True,
575
- ) -> Tuple[bytes, bool, Any]:
703
+ ) -> Tuple[HexAddress, int, bytes]:
576
704
  ...
577
705
 
578
706
  @overload
579
707
  def decode(
580
708
  self,
581
- types: Tuple[BytesTypeStr, TypeStr, BytesTypeStr],
709
+ types: Tuple[AddressTypeStr, DecodesToIntTypeStr, StringTypeStr],
582
710
  data: Decodable,
583
711
  strict: bool = True,
584
- ) -> Tuple[bytes, Any, bytes]:
712
+ ) -> Tuple[HexAddress, int, str]:
585
713
  ...
586
714
 
587
715
  @overload
588
716
  def decode(
589
717
  self,
590
- types: Tuple[BytesTypeStr, TypeStr, StringTypeStr],
718
+ types: Tuple[AddressTypeStr, DecodesToIntTypeStr, DecodesToIntTypeStr],
591
719
  data: Decodable,
592
720
  strict: bool = True,
593
- ) -> Tuple[bytes, Any, str]:
721
+ ) -> Tuple[HexAddress, int, int]:
594
722
  ...
595
723
 
596
724
  @overload
597
725
  def decode(
598
726
  self,
599
- types: Tuple[BytesTypeStr, TypeStr, DecodesToIntTypeStr],
727
+ types: Tuple[AddressTypeStr, DecodesToIntTypeStr, BoolTypeStr],
600
728
  data: Decodable,
601
729
  strict: bool = True,
602
- ) -> Tuple[bytes, Any, int]:
730
+ ) -> Tuple[HexAddress, int, bool]:
603
731
  ...
604
732
 
605
733
  @overload
606
734
  def decode(
607
735
  self,
608
- types: Tuple[BytesTypeStr, TypeStr, BoolTypeStr],
736
+ types: Tuple[AddressTypeStr, DecodesToIntTypeStr, TypeStr],
609
737
  data: Decodable,
610
738
  strict: bool = True,
611
- ) -> Tuple[bytes, Any, bool]:
739
+ ) -> Tuple[HexAddress, int, Any]:
612
740
  ...
613
741
 
614
742
  @overload
615
743
  def decode(
616
744
  self,
617
- types: Tuple[BytesTypeStr, TypeStr, TypeStr],
745
+ types: Tuple[AddressTypeStr, BoolTypeStr, AddressTypeStr],
618
746
  data: Decodable,
619
747
  strict: bool = True,
620
- ) -> Tuple[bytes, Any, Any]:
748
+ ) -> Tuple[HexAddress, bool, HexAddress]:
621
749
  ...
622
750
 
623
751
  @overload
624
752
  def decode(
625
753
  self,
626
- types: Tuple[StringTypeStr, BytesTypeStr, BytesTypeStr],
754
+ types: Tuple[AddressTypeStr, BoolTypeStr, BytesTypeStr],
627
755
  data: Decodable,
628
756
  strict: bool = True,
629
- ) -> Tuple[str, bytes, bytes]:
757
+ ) -> Tuple[HexAddress, bool, bytes]:
630
758
  ...
631
759
 
632
760
  @overload
633
761
  def decode(
634
762
  self,
635
- types: Tuple[StringTypeStr, BytesTypeStr, StringTypeStr],
763
+ types: Tuple[AddressTypeStr, BoolTypeStr, StringTypeStr],
636
764
  data: Decodable,
637
765
  strict: bool = True,
638
- ) -> Tuple[str, bytes, str]:
766
+ ) -> Tuple[HexAddress, bool, str]:
639
767
  ...
640
768
 
641
769
  @overload
642
770
  def decode(
643
771
  self,
644
- types: Tuple[StringTypeStr, BytesTypeStr, DecodesToIntTypeStr],
772
+ types: Tuple[AddressTypeStr, BoolTypeStr, DecodesToIntTypeStr],
645
773
  data: Decodable,
646
774
  strict: bool = True,
647
- ) -> Tuple[str, bytes, int]:
775
+ ) -> Tuple[HexAddress, bool, int]:
648
776
  ...
649
777
 
650
778
  @overload
651
779
  def decode(
652
780
  self,
653
- types: Tuple[StringTypeStr, BytesTypeStr, BoolTypeStr],
781
+ types: Tuple[AddressTypeStr, BoolTypeStr, BoolTypeStr],
654
782
  data: Decodable,
655
783
  strict: bool = True,
656
- ) -> Tuple[str, bytes, bool]:
784
+ ) -> Tuple[HexAddress, bool, bool]:
657
785
  ...
658
786
 
659
787
  @overload
660
788
  def decode(
661
789
  self,
662
- types: Tuple[StringTypeStr, BytesTypeStr, TypeStr],
790
+ types: Tuple[AddressTypeStr, BoolTypeStr, TypeStr],
663
791
  data: Decodable,
664
792
  strict: bool = True,
665
- ) -> Tuple[str, bytes, Any]:
793
+ ) -> Tuple[HexAddress, bool, Any]:
666
794
  ...
667
795
 
668
796
  @overload
669
797
  def decode(
670
798
  self,
671
- types: Tuple[StringTypeStr, StringTypeStr, BytesTypeStr],
799
+ types: Tuple[AddressTypeStr, TypeStr, AddressTypeStr],
672
800
  data: Decodable,
673
801
  strict: bool = True,
674
- ) -> Tuple[str, str, bytes]:
802
+ ) -> Tuple[HexAddress, Any, HexAddress]:
675
803
  ...
676
804
 
677
805
  @overload
678
806
  def decode(
679
807
  self,
680
- types: Tuple[StringTypeStr, StringTypeStr, StringTypeStr],
808
+ types: Tuple[AddressTypeStr, TypeStr, BytesTypeStr],
681
809
  data: Decodable,
682
810
  strict: bool = True,
683
- ) -> Tuple[str, str, str]:
811
+ ) -> Tuple[HexAddress, Any, bytes]:
684
812
  ...
685
813
 
686
814
  @overload
687
815
  def decode(
688
816
  self,
689
- types: Tuple[StringTypeStr, StringTypeStr, DecodesToIntTypeStr],
817
+ types: Tuple[AddressTypeStr, TypeStr, StringTypeStr],
690
818
  data: Decodable,
691
819
  strict: bool = True,
692
- ) -> Tuple[str, str, int]:
820
+ ) -> Tuple[HexAddress, Any, str]:
693
821
  ...
694
822
 
695
823
  @overload
696
824
  def decode(
697
825
  self,
698
- types: Tuple[StringTypeStr, StringTypeStr, BoolTypeStr],
826
+ types: Tuple[AddressTypeStr, TypeStr, DecodesToIntTypeStr],
699
827
  data: Decodable,
700
828
  strict: bool = True,
701
- ) -> Tuple[str, str, bool]:
829
+ ) -> Tuple[HexAddress, Any, int]:
702
830
  ...
703
831
 
704
832
  @overload
705
833
  def decode(
706
834
  self,
707
- types: Tuple[StringTypeStr, StringTypeStr, TypeStr],
835
+ types: Tuple[AddressTypeStr, TypeStr, BoolTypeStr],
708
836
  data: Decodable,
709
837
  strict: bool = True,
710
- ) -> Tuple[str, str, Any]:
838
+ ) -> Tuple[HexAddress, Any, bool]:
711
839
  ...
712
840
 
713
841
  @overload
714
842
  def decode(
715
843
  self,
716
- types: Tuple[StringTypeStr, DecodesToIntTypeStr, BytesTypeStr],
844
+ types: Tuple[AddressTypeStr, TypeStr, TypeStr],
717
845
  data: Decodable,
718
846
  strict: bool = True,
719
- ) -> Tuple[str, int, bytes]:
847
+ ) -> Tuple[HexAddress, Any, Any]:
720
848
  ...
721
849
 
722
850
  @overload
723
851
  def decode(
724
852
  self,
725
- types: Tuple[StringTypeStr, DecodesToIntTypeStr, StringTypeStr],
853
+ types: Tuple[BytesTypeStr, AddressTypeStr, AddressTypeStr],
726
854
  data: Decodable,
727
855
  strict: bool = True,
728
- ) -> Tuple[str, int, str]:
856
+ ) -> Tuple[bytes, HexAddress, HexAddress]:
729
857
  ...
730
858
 
731
859
  @overload
732
860
  def decode(
733
861
  self,
734
- types: Tuple[StringTypeStr, DecodesToIntTypeStr, DecodesToIntTypeStr],
862
+ types: Tuple[BytesTypeStr, AddressTypeStr, BytesTypeStr],
735
863
  data: Decodable,
736
864
  strict: bool = True,
737
- ) -> Tuple[str, int, int]:
865
+ ) -> Tuple[bytes, HexAddress, bytes]:
738
866
  ...
739
867
 
740
868
  @overload
741
869
  def decode(
742
870
  self,
743
- types: Tuple[StringTypeStr, DecodesToIntTypeStr, BoolTypeStr],
871
+ types: Tuple[BytesTypeStr, AddressTypeStr, StringTypeStr],
744
872
  data: Decodable,
745
873
  strict: bool = True,
746
- ) -> Tuple[str, int, bool]:
874
+ ) -> Tuple[bytes, HexAddress, str]:
747
875
  ...
748
876
 
749
877
  @overload
750
878
  def decode(
751
879
  self,
752
- types: Tuple[StringTypeStr, DecodesToIntTypeStr, TypeStr],
880
+ types: Tuple[BytesTypeStr, AddressTypeStr, DecodesToIntTypeStr],
753
881
  data: Decodable,
754
882
  strict: bool = True,
755
- ) -> Tuple[str, int, Any]:
883
+ ) -> Tuple[bytes, HexAddress, int]:
756
884
  ...
757
885
 
758
886
  @overload
759
887
  def decode(
760
888
  self,
761
- types: Tuple[StringTypeStr, BoolTypeStr, BytesTypeStr],
889
+ types: Tuple[BytesTypeStr, AddressTypeStr, BoolTypeStr],
762
890
  data: Decodable,
763
891
  strict: bool = True,
764
- ) -> Tuple[str, bool, bytes]:
892
+ ) -> Tuple[bytes, HexAddress, bool]:
765
893
  ...
766
894
 
767
895
  @overload
768
896
  def decode(
769
897
  self,
770
- types: Tuple[StringTypeStr, BoolTypeStr, StringTypeStr],
898
+ types: Tuple[BytesTypeStr, AddressTypeStr, TypeStr],
771
899
  data: Decodable,
772
900
  strict: bool = True,
773
- ) -> Tuple[str, bool, str]:
901
+ ) -> Tuple[bytes, HexAddress, Any]:
774
902
  ...
775
903
 
776
904
  @overload
777
905
  def decode(
778
906
  self,
779
- types: Tuple[StringTypeStr, BoolTypeStr, DecodesToIntTypeStr],
907
+ types: Tuple[BytesTypeStr, BytesTypeStr, AddressTypeStr],
780
908
  data: Decodable,
781
909
  strict: bool = True,
782
- ) -> Tuple[str, bool, int]:
910
+ ) -> Tuple[bytes, bytes, HexAddress]:
783
911
  ...
784
912
 
785
913
  @overload
786
914
  def decode(
787
915
  self,
788
- types: Tuple[StringTypeStr, BoolTypeStr, BoolTypeStr],
916
+ types: Tuple[BytesTypeStr, BytesTypeStr, BytesTypeStr],
789
917
  data: Decodable,
790
918
  strict: bool = True,
791
- ) -> Tuple[str, bool, bool]:
919
+ ) -> Tuple[bytes, bytes, bytes]:
792
920
  ...
793
921
 
794
922
  @overload
795
923
  def decode(
796
924
  self,
797
- types: Tuple[StringTypeStr, BoolTypeStr, TypeStr],
925
+ types: Tuple[BytesTypeStr, BytesTypeStr, StringTypeStr],
798
926
  data: Decodable,
799
927
  strict: bool = True,
800
- ) -> Tuple[str, bool, Any]:
928
+ ) -> Tuple[bytes, bytes, str]:
801
929
  ...
802
930
 
803
931
  @overload
804
932
  def decode(
805
933
  self,
806
- types: Tuple[StringTypeStr, TypeStr, BytesTypeStr],
934
+ types: Tuple[BytesTypeStr, BytesTypeStr, DecodesToIntTypeStr],
807
935
  data: Decodable,
808
936
  strict: bool = True,
809
- ) -> Tuple[str, Any, bytes]:
937
+ ) -> Tuple[bytes, bytes, int]:
810
938
  ...
811
939
 
812
940
  @overload
813
941
  def decode(
814
942
  self,
815
- types: Tuple[StringTypeStr, TypeStr, StringTypeStr],
943
+ types: Tuple[BytesTypeStr, BytesTypeStr, BoolTypeStr],
816
944
  data: Decodable,
817
945
  strict: bool = True,
818
- ) -> Tuple[str, Any, str]:
946
+ ) -> Tuple[bytes, bytes, bool]:
819
947
  ...
820
948
 
821
949
  @overload
822
950
  def decode(
823
951
  self,
824
- types: Tuple[StringTypeStr, TypeStr, DecodesToIntTypeStr],
952
+ types: Tuple[BytesTypeStr, BytesTypeStr, TypeStr],
825
953
  data: Decodable,
826
954
  strict: bool = True,
827
- ) -> Tuple[str, Any, int]:
955
+ ) -> Tuple[bytes, bytes, Any]:
828
956
  ...
829
957
 
830
958
  @overload
831
959
  def decode(
832
960
  self,
833
- types: Tuple[StringTypeStr, TypeStr, BoolTypeStr],
961
+ types: Tuple[BytesTypeStr, StringTypeStr, AddressTypeStr],
834
962
  data: Decodable,
835
963
  strict: bool = True,
836
- ) -> Tuple[str, Any, bool]:
964
+ ) -> Tuple[bytes, str, HexAddress]:
837
965
  ...
838
966
 
839
967
  @overload
840
968
  def decode(
841
969
  self,
842
- types: Tuple[StringTypeStr, TypeStr, TypeStr],
970
+ types: Tuple[BytesTypeStr, StringTypeStr, BytesTypeStr],
843
971
  data: Decodable,
844
972
  strict: bool = True,
845
- ) -> Tuple[str, Any, Any]:
973
+ ) -> Tuple[bytes, str, bytes]:
846
974
  ...
847
975
 
848
976
  @overload
849
977
  def decode(
850
978
  self,
851
- types: Tuple[DecodesToIntTypeStr, BytesTypeStr, BytesTypeStr],
979
+ types: Tuple[BytesTypeStr, StringTypeStr, StringTypeStr],
852
980
  data: Decodable,
853
981
  strict: bool = True,
854
- ) -> Tuple[int, bytes, bytes]:
982
+ ) -> Tuple[bytes, str, str]:
855
983
  ...
856
984
 
857
985
  @overload
858
986
  def decode(
859
987
  self,
860
- types: Tuple[DecodesToIntTypeStr, BytesTypeStr, StringTypeStr],
988
+ types: Tuple[BytesTypeStr, StringTypeStr, DecodesToIntTypeStr],
861
989
  data: Decodable,
862
990
  strict: bool = True,
863
- ) -> Tuple[int, bytes, str]:
991
+ ) -> Tuple[bytes, str, int]:
864
992
  ...
865
993
 
866
994
  @overload
867
995
  def decode(
868
996
  self,
869
- types: Tuple[DecodesToIntTypeStr, BytesTypeStr, DecodesToIntTypeStr],
997
+ types: Tuple[BytesTypeStr, StringTypeStr, BoolTypeStr],
870
998
  data: Decodable,
871
999
  strict: bool = True,
872
- ) -> Tuple[int, bytes, int]:
1000
+ ) -> Tuple[bytes, str, bool]:
873
1001
  ...
874
1002
 
875
1003
  @overload
876
1004
  def decode(
877
1005
  self,
878
- types: Tuple[DecodesToIntTypeStr, BytesTypeStr, BoolTypeStr],
1006
+ types: Tuple[BytesTypeStr, StringTypeStr, TypeStr],
879
1007
  data: Decodable,
880
1008
  strict: bool = True,
881
- ) -> Tuple[int, bytes, bool]:
1009
+ ) -> Tuple[bytes, str, Any]:
882
1010
  ...
883
1011
 
884
1012
  @overload
885
1013
  def decode(
886
1014
  self,
887
- types: Tuple[DecodesToIntTypeStr, BytesTypeStr, TypeStr],
1015
+ types: Tuple[BytesTypeStr, DecodesToIntTypeStr, AddressTypeStr],
888
1016
  data: Decodable,
889
1017
  strict: bool = True,
890
- ) -> Tuple[int, bytes, Any]:
1018
+ ) -> Tuple[bytes, int, HexAddress]:
891
1019
  ...
892
1020
 
893
1021
  @overload
894
1022
  def decode(
895
1023
  self,
896
- types: Tuple[DecodesToIntTypeStr, StringTypeStr, BytesTypeStr],
1024
+ types: Tuple[BytesTypeStr, DecodesToIntTypeStr, BytesTypeStr],
897
1025
  data: Decodable,
898
1026
  strict: bool = True,
899
- ) -> Tuple[int, str, bytes]:
1027
+ ) -> Tuple[bytes, int, bytes]:
900
1028
  ...
901
1029
 
902
1030
  @overload
903
1031
  def decode(
904
1032
  self,
905
- types: Tuple[DecodesToIntTypeStr, StringTypeStr, StringTypeStr],
1033
+ types: Tuple[BytesTypeStr, DecodesToIntTypeStr, StringTypeStr],
906
1034
  data: Decodable,
907
1035
  strict: bool = True,
908
- ) -> Tuple[int, str, str]:
1036
+ ) -> Tuple[bytes, int, str]:
909
1037
  ...
910
1038
 
911
1039
  @overload
912
1040
  def decode(
913
1041
  self,
914
- types: Tuple[DecodesToIntTypeStr, StringTypeStr, DecodesToIntTypeStr],
1042
+ types: Tuple[BytesTypeStr, DecodesToIntTypeStr, DecodesToIntTypeStr],
915
1043
  data: Decodable,
916
1044
  strict: bool = True,
917
- ) -> Tuple[int, str, int]:
1045
+ ) -> Tuple[bytes, int, int]:
918
1046
  ...
919
1047
 
920
1048
  @overload
921
1049
  def decode(
922
1050
  self,
923
- types: Tuple[DecodesToIntTypeStr, StringTypeStr, BoolTypeStr],
1051
+ types: Tuple[BytesTypeStr, DecodesToIntTypeStr, BoolTypeStr],
924
1052
  data: Decodable,
925
1053
  strict: bool = True,
926
- ) -> Tuple[int, str, bool]:
1054
+ ) -> Tuple[bytes, int, bool]:
927
1055
  ...
928
1056
 
929
1057
  @overload
930
1058
  def decode(
931
1059
  self,
932
- types: Tuple[DecodesToIntTypeStr, StringTypeStr, TypeStr],
1060
+ types: Tuple[BytesTypeStr, DecodesToIntTypeStr, TypeStr],
933
1061
  data: Decodable,
934
1062
  strict: bool = True,
935
- ) -> Tuple[int, str, Any]:
1063
+ ) -> Tuple[bytes, int, Any]:
936
1064
  ...
937
1065
 
938
1066
  @overload
939
1067
  def decode(
940
1068
  self,
941
- types: Tuple[DecodesToIntTypeStr, DecodesToIntTypeStr, BytesTypeStr],
1069
+ types: Tuple[BytesTypeStr, BoolTypeStr, AddressTypeStr],
942
1070
  data: Decodable,
943
1071
  strict: bool = True,
944
- ) -> Tuple[int, int, bytes]:
1072
+ ) -> Tuple[bytes, bool, HexAddress]:
945
1073
  ...
946
1074
 
947
1075
  @overload
948
1076
  def decode(
949
1077
  self,
950
- types: Tuple[DecodesToIntTypeStr, DecodesToIntTypeStr, StringTypeStr],
1078
+ types: Tuple[BytesTypeStr, BoolTypeStr, BytesTypeStr],
951
1079
  data: Decodable,
952
1080
  strict: bool = True,
953
- ) -> Tuple[int, int, str]:
1081
+ ) -> Tuple[bytes, bool, bytes]:
954
1082
  ...
955
1083
 
956
1084
  @overload
957
1085
  def decode(
958
1086
  self,
959
- types: Tuple[DecodesToIntTypeStr, DecodesToIntTypeStr, DecodesToIntTypeStr],
1087
+ types: Tuple[BytesTypeStr, BoolTypeStr, StringTypeStr],
960
1088
  data: Decodable,
961
1089
  strict: bool = True,
962
- ) -> Tuple[int, int, int]:
1090
+ ) -> Tuple[bytes, bool, str]:
963
1091
  ...
964
1092
 
965
1093
  @overload
966
1094
  def decode(
967
1095
  self,
968
- types: Tuple[DecodesToIntTypeStr, DecodesToIntTypeStr, BoolTypeStr],
1096
+ types: Tuple[BytesTypeStr, BoolTypeStr, DecodesToIntTypeStr],
1097
+ data: Decodable,
1098
+ strict: bool = True,
1099
+ ) -> Tuple[bytes, bool, int]:
1100
+ ...
1101
+
1102
+ @overload
1103
+ def decode(
1104
+ self,
1105
+ types: Tuple[BytesTypeStr, BoolTypeStr, BoolTypeStr],
1106
+ data: Decodable,
1107
+ strict: bool = True,
1108
+ ) -> Tuple[bytes, bool, bool]:
1109
+ ...
1110
+
1111
+ @overload
1112
+ def decode(
1113
+ self,
1114
+ types: Tuple[BytesTypeStr, BoolTypeStr, TypeStr],
1115
+ data: Decodable,
1116
+ strict: bool = True,
1117
+ ) -> Tuple[bytes, bool, Any]:
1118
+ ...
1119
+
1120
+ @overload
1121
+ def decode(
1122
+ self,
1123
+ types: Tuple[BytesTypeStr, TypeStr, AddressTypeStr],
1124
+ data: Decodable,
1125
+ strict: bool = True,
1126
+ ) -> Tuple[bytes, Any, HexAddress]:
1127
+ ...
1128
+
1129
+ @overload
1130
+ def decode(
1131
+ self,
1132
+ types: Tuple[BytesTypeStr, TypeStr, BytesTypeStr],
1133
+ data: Decodable,
1134
+ strict: bool = True,
1135
+ ) -> Tuple[bytes, Any, bytes]:
1136
+ ...
1137
+
1138
+ @overload
1139
+ def decode(
1140
+ self,
1141
+ types: Tuple[BytesTypeStr, TypeStr, StringTypeStr],
1142
+ data: Decodable,
1143
+ strict: bool = True,
1144
+ ) -> Tuple[bytes, Any, str]:
1145
+ ...
1146
+
1147
+ @overload
1148
+ def decode(
1149
+ self,
1150
+ types: Tuple[BytesTypeStr, TypeStr, DecodesToIntTypeStr],
1151
+ data: Decodable,
1152
+ strict: bool = True,
1153
+ ) -> Tuple[bytes, Any, int]:
1154
+ ...
1155
+
1156
+ @overload
1157
+ def decode(
1158
+ self,
1159
+ types: Tuple[BytesTypeStr, TypeStr, BoolTypeStr],
1160
+ data: Decodable,
1161
+ strict: bool = True,
1162
+ ) -> Tuple[bytes, Any, bool]:
1163
+ ...
1164
+
1165
+ @overload
1166
+ def decode(
1167
+ self,
1168
+ types: Tuple[BytesTypeStr, TypeStr, TypeStr],
1169
+ data: Decodable,
1170
+ strict: bool = True,
1171
+ ) -> Tuple[bytes, Any, Any]:
1172
+ ...
1173
+
1174
+ @overload
1175
+ def decode(
1176
+ self,
1177
+ types: Tuple[StringTypeStr, AddressTypeStr, AddressTypeStr],
1178
+ data: Decodable,
1179
+ strict: bool = True,
1180
+ ) -> Tuple[str, HexAddress, HexAddress]:
1181
+ ...
1182
+
1183
+ @overload
1184
+ def decode(
1185
+ self,
1186
+ types: Tuple[StringTypeStr, AddressTypeStr, BytesTypeStr],
1187
+ data: Decodable,
1188
+ strict: bool = True,
1189
+ ) -> Tuple[str, HexAddress, bytes]:
1190
+ ...
1191
+
1192
+ @overload
1193
+ def decode(
1194
+ self,
1195
+ types: Tuple[StringTypeStr, AddressTypeStr, StringTypeStr],
1196
+ data: Decodable,
1197
+ strict: bool = True,
1198
+ ) -> Tuple[str, HexAddress, str]:
1199
+ ...
1200
+
1201
+ @overload
1202
+ def decode(
1203
+ self,
1204
+ types: Tuple[StringTypeStr, AddressTypeStr, DecodesToIntTypeStr],
1205
+ data: Decodable,
1206
+ strict: bool = True,
1207
+ ) -> Tuple[str, HexAddress, int]:
1208
+ ...
1209
+
1210
+ @overload
1211
+ def decode(
1212
+ self,
1213
+ types: Tuple[StringTypeStr, AddressTypeStr, BoolTypeStr],
1214
+ data: Decodable,
1215
+ strict: bool = True,
1216
+ ) -> Tuple[str, HexAddress, bool]:
1217
+ ...
1218
+
1219
+ @overload
1220
+ def decode(
1221
+ self,
1222
+ types: Tuple[StringTypeStr, AddressTypeStr, TypeStr],
1223
+ data: Decodable,
1224
+ strict: bool = True,
1225
+ ) -> Tuple[str, HexAddress, Any]:
1226
+ ...
1227
+
1228
+ @overload
1229
+ def decode(
1230
+ self,
1231
+ types: Tuple[StringTypeStr, BytesTypeStr, AddressTypeStr],
1232
+ data: Decodable,
1233
+ strict: bool = True,
1234
+ ) -> Tuple[str, bytes, HexAddress]:
1235
+ ...
1236
+
1237
+ @overload
1238
+ def decode(
1239
+ self,
1240
+ types: Tuple[StringTypeStr, BytesTypeStr, BytesTypeStr],
1241
+ data: Decodable,
1242
+ strict: bool = True,
1243
+ ) -> Tuple[str, bytes, bytes]:
1244
+ ...
1245
+
1246
+ @overload
1247
+ def decode(
1248
+ self,
1249
+ types: Tuple[StringTypeStr, BytesTypeStr, StringTypeStr],
1250
+ data: Decodable,
1251
+ strict: bool = True,
1252
+ ) -> Tuple[str, bytes, str]:
1253
+ ...
1254
+
1255
+ @overload
1256
+ def decode(
1257
+ self,
1258
+ types: Tuple[StringTypeStr, BytesTypeStr, DecodesToIntTypeStr],
1259
+ data: Decodable,
1260
+ strict: bool = True,
1261
+ ) -> Tuple[str, bytes, int]:
1262
+ ...
1263
+
1264
+ @overload
1265
+ def decode(
1266
+ self,
1267
+ types: Tuple[StringTypeStr, BytesTypeStr, BoolTypeStr],
1268
+ data: Decodable,
1269
+ strict: bool = True,
1270
+ ) -> Tuple[str, bytes, bool]:
1271
+ ...
1272
+
1273
+ @overload
1274
+ def decode(
1275
+ self,
1276
+ types: Tuple[StringTypeStr, BytesTypeStr, TypeStr],
1277
+ data: Decodable,
1278
+ strict: bool = True,
1279
+ ) -> Tuple[str, bytes, Any]:
1280
+ ...
1281
+
1282
+ @overload
1283
+ def decode(
1284
+ self,
1285
+ types: Tuple[StringTypeStr, StringTypeStr, AddressTypeStr],
1286
+ data: Decodable,
1287
+ strict: bool = True,
1288
+ ) -> Tuple[str, str, HexAddress]:
1289
+ ...
1290
+
1291
+ @overload
1292
+ def decode(
1293
+ self,
1294
+ types: Tuple[StringTypeStr, StringTypeStr, BytesTypeStr],
1295
+ data: Decodable,
1296
+ strict: bool = True,
1297
+ ) -> Tuple[str, str, bytes]:
1298
+ ...
1299
+
1300
+ @overload
1301
+ def decode(
1302
+ self,
1303
+ types: Tuple[StringTypeStr, StringTypeStr, StringTypeStr],
1304
+ data: Decodable,
1305
+ strict: bool = True,
1306
+ ) -> Tuple[str, str, str]:
1307
+ ...
1308
+
1309
+ @overload
1310
+ def decode(
1311
+ self,
1312
+ types: Tuple[StringTypeStr, StringTypeStr, DecodesToIntTypeStr],
1313
+ data: Decodable,
1314
+ strict: bool = True,
1315
+ ) -> Tuple[str, str, int]:
1316
+ ...
1317
+
1318
+ @overload
1319
+ def decode(
1320
+ self,
1321
+ types: Tuple[StringTypeStr, StringTypeStr, BoolTypeStr],
1322
+ data: Decodable,
1323
+ strict: bool = True,
1324
+ ) -> Tuple[str, str, bool]:
1325
+ ...
1326
+
1327
+ @overload
1328
+ def decode(
1329
+ self,
1330
+ types: Tuple[StringTypeStr, StringTypeStr, TypeStr],
1331
+ data: Decodable,
1332
+ strict: bool = True,
1333
+ ) -> Tuple[str, str, Any]:
1334
+ ...
1335
+
1336
+ @overload
1337
+ def decode(
1338
+ self,
1339
+ types: Tuple[StringTypeStr, DecodesToIntTypeStr, AddressTypeStr],
1340
+ data: Decodable,
1341
+ strict: bool = True,
1342
+ ) -> Tuple[str, int, HexAddress]:
1343
+ ...
1344
+
1345
+ @overload
1346
+ def decode(
1347
+ self,
1348
+ types: Tuple[StringTypeStr, DecodesToIntTypeStr, BytesTypeStr],
1349
+ data: Decodable,
1350
+ strict: bool = True,
1351
+ ) -> Tuple[str, int, bytes]:
1352
+ ...
1353
+
1354
+ @overload
1355
+ def decode(
1356
+ self,
1357
+ types: Tuple[StringTypeStr, DecodesToIntTypeStr, StringTypeStr],
1358
+ data: Decodable,
1359
+ strict: bool = True,
1360
+ ) -> Tuple[str, int, str]:
1361
+ ...
1362
+
1363
+ @overload
1364
+ def decode(
1365
+ self,
1366
+ types: Tuple[StringTypeStr, DecodesToIntTypeStr, DecodesToIntTypeStr],
1367
+ data: Decodable,
1368
+ strict: bool = True,
1369
+ ) -> Tuple[str, int, int]:
1370
+ ...
1371
+
1372
+ @overload
1373
+ def decode(
1374
+ self,
1375
+ types: Tuple[StringTypeStr, DecodesToIntTypeStr, BoolTypeStr],
1376
+ data: Decodable,
1377
+ strict: bool = True,
1378
+ ) -> Tuple[str, int, bool]:
1379
+ ...
1380
+
1381
+ @overload
1382
+ def decode(
1383
+ self,
1384
+ types: Tuple[StringTypeStr, DecodesToIntTypeStr, TypeStr],
1385
+ data: Decodable,
1386
+ strict: bool = True,
1387
+ ) -> Tuple[str, int, Any]:
1388
+ ...
1389
+
1390
+ @overload
1391
+ def decode(
1392
+ self,
1393
+ types: Tuple[StringTypeStr, BoolTypeStr, AddressTypeStr],
1394
+ data: Decodable,
1395
+ strict: bool = True,
1396
+ ) -> Tuple[str, bool, HexAddress]:
1397
+ ...
1398
+
1399
+ @overload
1400
+ def decode(
1401
+ self,
1402
+ types: Tuple[StringTypeStr, BoolTypeStr, BytesTypeStr],
1403
+ data: Decodable,
1404
+ strict: bool = True,
1405
+ ) -> Tuple[str, bool, bytes]:
1406
+ ...
1407
+
1408
+ @overload
1409
+ def decode(
1410
+ self,
1411
+ types: Tuple[StringTypeStr, BoolTypeStr, StringTypeStr],
1412
+ data: Decodable,
1413
+ strict: bool = True,
1414
+ ) -> Tuple[str, bool, str]:
1415
+ ...
1416
+
1417
+ @overload
1418
+ def decode(
1419
+ self,
1420
+ types: Tuple[StringTypeStr, BoolTypeStr, DecodesToIntTypeStr],
1421
+ data: Decodable,
1422
+ strict: bool = True,
1423
+ ) -> Tuple[str, bool, int]:
1424
+ ...
1425
+
1426
+ @overload
1427
+ def decode(
1428
+ self,
1429
+ types: Tuple[StringTypeStr, BoolTypeStr, BoolTypeStr],
1430
+ data: Decodable,
1431
+ strict: bool = True,
1432
+ ) -> Tuple[str, bool, bool]:
1433
+ ...
1434
+
1435
+ @overload
1436
+ def decode(
1437
+ self,
1438
+ types: Tuple[StringTypeStr, BoolTypeStr, TypeStr],
1439
+ data: Decodable,
1440
+ strict: bool = True,
1441
+ ) -> Tuple[str, bool, Any]:
1442
+ ...
1443
+
1444
+ @overload
1445
+ def decode(
1446
+ self,
1447
+ types: Tuple[StringTypeStr, TypeStr, AddressTypeStr],
1448
+ data: Decodable,
1449
+ strict: bool = True,
1450
+ ) -> Tuple[str, Any, HexAddress]:
1451
+ ...
1452
+
1453
+ @overload
1454
+ def decode(
1455
+ self,
1456
+ types: Tuple[StringTypeStr, TypeStr, BytesTypeStr],
1457
+ data: Decodable,
1458
+ strict: bool = True,
1459
+ ) -> Tuple[str, Any, bytes]:
1460
+ ...
1461
+
1462
+ @overload
1463
+ def decode(
1464
+ self,
1465
+ types: Tuple[StringTypeStr, TypeStr, StringTypeStr],
1466
+ data: Decodable,
1467
+ strict: bool = True,
1468
+ ) -> Tuple[str, Any, str]:
1469
+ ...
1470
+
1471
+ @overload
1472
+ def decode(
1473
+ self,
1474
+ types: Tuple[StringTypeStr, TypeStr, DecodesToIntTypeStr],
1475
+ data: Decodable,
1476
+ strict: bool = True,
1477
+ ) -> Tuple[str, Any, int]:
1478
+ ...
1479
+
1480
+ @overload
1481
+ def decode(
1482
+ self,
1483
+ types: Tuple[StringTypeStr, TypeStr, BoolTypeStr],
1484
+ data: Decodable,
1485
+ strict: bool = True,
1486
+ ) -> Tuple[str, Any, bool]:
1487
+ ...
1488
+
1489
+ @overload
1490
+ def decode(
1491
+ self,
1492
+ types: Tuple[StringTypeStr, TypeStr, TypeStr],
1493
+ data: Decodable,
1494
+ strict: bool = True,
1495
+ ) -> Tuple[str, Any, Any]:
1496
+ ...
1497
+
1498
+ @overload
1499
+ def decode(
1500
+ self,
1501
+ types: Tuple[DecodesToIntTypeStr, AddressTypeStr, AddressTypeStr],
1502
+ data: Decodable,
1503
+ strict: bool = True,
1504
+ ) -> Tuple[int, HexAddress, HexAddress]:
1505
+ ...
1506
+
1507
+ @overload
1508
+ def decode(
1509
+ self,
1510
+ types: Tuple[DecodesToIntTypeStr, AddressTypeStr, BytesTypeStr],
1511
+ data: Decodable,
1512
+ strict: bool = True,
1513
+ ) -> Tuple[int, HexAddress, bytes]:
1514
+ ...
1515
+
1516
+ @overload
1517
+ def decode(
1518
+ self,
1519
+ types: Tuple[DecodesToIntTypeStr, AddressTypeStr, StringTypeStr],
1520
+ data: Decodable,
1521
+ strict: bool = True,
1522
+ ) -> Tuple[int, HexAddress, str]:
1523
+ ...
1524
+
1525
+ @overload
1526
+ def decode(
1527
+ self,
1528
+ types: Tuple[DecodesToIntTypeStr, AddressTypeStr, DecodesToIntTypeStr],
1529
+ data: Decodable,
1530
+ strict: bool = True,
1531
+ ) -> Tuple[int, HexAddress, int]:
1532
+ ...
1533
+
1534
+ @overload
1535
+ def decode(
1536
+ self,
1537
+ types: Tuple[DecodesToIntTypeStr, AddressTypeStr, BoolTypeStr],
1538
+ data: Decodable,
1539
+ strict: bool = True,
1540
+ ) -> Tuple[int, HexAddress, bool]:
1541
+ ...
1542
+
1543
+ @overload
1544
+ def decode(
1545
+ self,
1546
+ types: Tuple[DecodesToIntTypeStr, AddressTypeStr, TypeStr],
1547
+ data: Decodable,
1548
+ strict: bool = True,
1549
+ ) -> Tuple[int, HexAddress, Any]:
1550
+ ...
1551
+
1552
+ @overload
1553
+ def decode(
1554
+ self,
1555
+ types: Tuple[DecodesToIntTypeStr, BytesTypeStr, AddressTypeStr],
1556
+ data: Decodable,
1557
+ strict: bool = True,
1558
+ ) -> Tuple[int, bytes, HexAddress]:
1559
+ ...
1560
+
1561
+ @overload
1562
+ def decode(
1563
+ self,
1564
+ types: Tuple[DecodesToIntTypeStr, BytesTypeStr, BytesTypeStr],
1565
+ data: Decodable,
1566
+ strict: bool = True,
1567
+ ) -> Tuple[int, bytes, bytes]:
1568
+ ...
1569
+
1570
+ @overload
1571
+ def decode(
1572
+ self,
1573
+ types: Tuple[DecodesToIntTypeStr, BytesTypeStr, StringTypeStr],
1574
+ data: Decodable,
1575
+ strict: bool = True,
1576
+ ) -> Tuple[int, bytes, str]:
1577
+ ...
1578
+
1579
+ @overload
1580
+ def decode(
1581
+ self,
1582
+ types: Tuple[DecodesToIntTypeStr, BytesTypeStr, DecodesToIntTypeStr],
1583
+ data: Decodable,
1584
+ strict: bool = True,
1585
+ ) -> Tuple[int, bytes, int]:
1586
+ ...
1587
+
1588
+ @overload
1589
+ def decode(
1590
+ self,
1591
+ types: Tuple[DecodesToIntTypeStr, BytesTypeStr, BoolTypeStr],
1592
+ data: Decodable,
1593
+ strict: bool = True,
1594
+ ) -> Tuple[int, bytes, bool]:
1595
+ ...
1596
+
1597
+ @overload
1598
+ def decode(
1599
+ self,
1600
+ types: Tuple[DecodesToIntTypeStr, BytesTypeStr, TypeStr],
1601
+ data: Decodable,
1602
+ strict: bool = True,
1603
+ ) -> Tuple[int, bytes, Any]:
1604
+ ...
1605
+
1606
+ @overload
1607
+ def decode(
1608
+ self,
1609
+ types: Tuple[DecodesToIntTypeStr, StringTypeStr, AddressTypeStr],
1610
+ data: Decodable,
1611
+ strict: bool = True,
1612
+ ) -> Tuple[int, str, HexAddress]:
1613
+ ...
1614
+
1615
+ @overload
1616
+ def decode(
1617
+ self,
1618
+ types: Tuple[DecodesToIntTypeStr, StringTypeStr, BytesTypeStr],
1619
+ data: Decodable,
1620
+ strict: bool = True,
1621
+ ) -> Tuple[int, str, bytes]:
1622
+ ...
1623
+
1624
+ @overload
1625
+ def decode(
1626
+ self,
1627
+ types: Tuple[DecodesToIntTypeStr, StringTypeStr, StringTypeStr],
1628
+ data: Decodable,
1629
+ strict: bool = True,
1630
+ ) -> Tuple[int, str, str]:
1631
+ ...
1632
+
1633
+ @overload
1634
+ def decode(
1635
+ self,
1636
+ types: Tuple[DecodesToIntTypeStr, StringTypeStr, DecodesToIntTypeStr],
1637
+ data: Decodable,
1638
+ strict: bool = True,
1639
+ ) -> Tuple[int, str, int]:
1640
+ ...
1641
+
1642
+ @overload
1643
+ def decode(
1644
+ self,
1645
+ types: Tuple[DecodesToIntTypeStr, StringTypeStr, BoolTypeStr],
1646
+ data: Decodable,
1647
+ strict: bool = True,
1648
+ ) -> Tuple[int, str, bool]:
1649
+ ...
1650
+
1651
+ @overload
1652
+ def decode(
1653
+ self,
1654
+ types: Tuple[DecodesToIntTypeStr, StringTypeStr, TypeStr],
1655
+ data: Decodable,
1656
+ strict: bool = True,
1657
+ ) -> Tuple[int, str, Any]:
1658
+ ...
1659
+
1660
+ @overload
1661
+ def decode(
1662
+ self,
1663
+ types: Tuple[DecodesToIntTypeStr, DecodesToIntTypeStr, AddressTypeStr],
1664
+ data: Decodable,
1665
+ strict: bool = True,
1666
+ ) -> Tuple[int, int, HexAddress]:
1667
+ ...
1668
+
1669
+ @overload
1670
+ def decode(
1671
+ self,
1672
+ types: Tuple[DecodesToIntTypeStr, DecodesToIntTypeStr, BytesTypeStr],
1673
+ data: Decodable,
1674
+ strict: bool = True,
1675
+ ) -> Tuple[int, int, bytes]:
1676
+ ...
1677
+
1678
+ @overload
1679
+ def decode(
1680
+ self,
1681
+ types: Tuple[DecodesToIntTypeStr, DecodesToIntTypeStr, StringTypeStr],
1682
+ data: Decodable,
1683
+ strict: bool = True,
1684
+ ) -> Tuple[int, int, str]:
1685
+ ...
1686
+
1687
+ @overload
1688
+ def decode(
1689
+ self,
1690
+ types: Tuple[DecodesToIntTypeStr, DecodesToIntTypeStr, DecodesToIntTypeStr],
1691
+ data: Decodable,
1692
+ strict: bool = True,
1693
+ ) -> Tuple[int, int, int]:
1694
+ ...
1695
+
1696
+ @overload
1697
+ def decode(
1698
+ self,
1699
+ types: Tuple[DecodesToIntTypeStr, DecodesToIntTypeStr, BoolTypeStr],
969
1700
  data: Decodable,
970
1701
  strict: bool = True,
971
1702
  ) -> Tuple[int, int, bool]:
@@ -980,6 +1711,15 @@ class ABIDecoder(BaseABICoder):
980
1711
  ) -> Tuple[int, int, Any]:
981
1712
  ...
982
1713
 
1714
+ @overload
1715
+ def decode(
1716
+ self,
1717
+ types: Tuple[DecodesToIntTypeStr, BoolTypeStr, AddressTypeStr],
1718
+ data: Decodable,
1719
+ strict: bool = True,
1720
+ ) -> Tuple[int, bool, HexAddress]:
1721
+ ...
1722
+
983
1723
  @overload
984
1724
  def decode(
985
1725
  self,
@@ -1001,73 +1741,145 @@ class ABIDecoder(BaseABICoder):
1001
1741
  @overload
1002
1742
  def decode(
1003
1743
  self,
1004
- types: Tuple[DecodesToIntTypeStr, BoolTypeStr, DecodesToIntTypeStr],
1744
+ types: Tuple[DecodesToIntTypeStr, BoolTypeStr, DecodesToIntTypeStr],
1745
+ data: Decodable,
1746
+ strict: bool = True,
1747
+ ) -> Tuple[int, bool, int]:
1748
+ ...
1749
+
1750
+ @overload
1751
+ def decode(
1752
+ self,
1753
+ types: Tuple[DecodesToIntTypeStr, BoolTypeStr, BoolTypeStr],
1754
+ data: Decodable,
1755
+ strict: bool = True,
1756
+ ) -> Tuple[int, bool, bool]:
1757
+ ...
1758
+
1759
+ @overload
1760
+ def decode(
1761
+ self,
1762
+ types: Tuple[DecodesToIntTypeStr, BoolTypeStr, TypeStr],
1763
+ data: Decodable,
1764
+ strict: bool = True,
1765
+ ) -> Tuple[int, bool, Any]:
1766
+ ...
1767
+
1768
+ @overload
1769
+ def decode(
1770
+ self,
1771
+ types: Tuple[DecodesToIntTypeStr, TypeStr, AddressTypeStr],
1772
+ data: Decodable,
1773
+ strict: bool = True,
1774
+ ) -> Tuple[int, Any, HexAddress]:
1775
+ ...
1776
+
1777
+ @overload
1778
+ def decode(
1779
+ self,
1780
+ types: Tuple[DecodesToIntTypeStr, TypeStr, BytesTypeStr],
1781
+ data: Decodable,
1782
+ strict: bool = True,
1783
+ ) -> Tuple[int, Any, bytes]:
1784
+ ...
1785
+
1786
+ @overload
1787
+ def decode(
1788
+ self,
1789
+ types: Tuple[DecodesToIntTypeStr, TypeStr, StringTypeStr],
1790
+ data: Decodable,
1791
+ strict: bool = True,
1792
+ ) -> Tuple[int, Any, str]:
1793
+ ...
1794
+
1795
+ @overload
1796
+ def decode(
1797
+ self,
1798
+ types: Tuple[DecodesToIntTypeStr, TypeStr, DecodesToIntTypeStr],
1799
+ data: Decodable,
1800
+ strict: bool = True,
1801
+ ) -> Tuple[int, Any, int]:
1802
+ ...
1803
+
1804
+ @overload
1805
+ def decode(
1806
+ self,
1807
+ types: Tuple[DecodesToIntTypeStr, TypeStr, BoolTypeStr],
1808
+ data: Decodable,
1809
+ strict: bool = True,
1810
+ ) -> Tuple[int, Any, bool]:
1811
+ ...
1812
+
1813
+ @overload
1814
+ def decode(
1815
+ self,
1816
+ types: Tuple[DecodesToIntTypeStr, TypeStr, TypeStr],
1005
1817
  data: Decodable,
1006
1818
  strict: bool = True,
1007
- ) -> Tuple[int, bool, int]:
1819
+ ) -> Tuple[int, Any, Any]:
1008
1820
  ...
1009
1821
 
1010
1822
  @overload
1011
1823
  def decode(
1012
1824
  self,
1013
- types: Tuple[DecodesToIntTypeStr, BoolTypeStr, BoolTypeStr],
1825
+ types: Tuple[BoolTypeStr, AddressTypeStr, AddressTypeStr],
1014
1826
  data: Decodable,
1015
1827
  strict: bool = True,
1016
- ) -> Tuple[int, bool, bool]:
1828
+ ) -> Tuple[bool, HexAddress, HexAddress]:
1017
1829
  ...
1018
1830
 
1019
1831
  @overload
1020
1832
  def decode(
1021
1833
  self,
1022
- types: Tuple[DecodesToIntTypeStr, BoolTypeStr, TypeStr],
1834
+ types: Tuple[BoolTypeStr, AddressTypeStr, BytesTypeStr],
1023
1835
  data: Decodable,
1024
1836
  strict: bool = True,
1025
- ) -> Tuple[int, bool, Any]:
1837
+ ) -> Tuple[bool, HexAddress, bytes]:
1026
1838
  ...
1027
1839
 
1028
1840
  @overload
1029
1841
  def decode(
1030
1842
  self,
1031
- types: Tuple[DecodesToIntTypeStr, TypeStr, BytesTypeStr],
1843
+ types: Tuple[BoolTypeStr, AddressTypeStr, StringTypeStr],
1032
1844
  data: Decodable,
1033
1845
  strict: bool = True,
1034
- ) -> Tuple[int, Any, bytes]:
1846
+ ) -> Tuple[bool, HexAddress, str]:
1035
1847
  ...
1036
1848
 
1037
1849
  @overload
1038
1850
  def decode(
1039
1851
  self,
1040
- types: Tuple[DecodesToIntTypeStr, TypeStr, StringTypeStr],
1852
+ types: Tuple[BoolTypeStr, AddressTypeStr, DecodesToIntTypeStr],
1041
1853
  data: Decodable,
1042
1854
  strict: bool = True,
1043
- ) -> Tuple[int, Any, str]:
1855
+ ) -> Tuple[bool, HexAddress, int]:
1044
1856
  ...
1045
1857
 
1046
1858
  @overload
1047
1859
  def decode(
1048
1860
  self,
1049
- types: Tuple[DecodesToIntTypeStr, TypeStr, DecodesToIntTypeStr],
1861
+ types: Tuple[BoolTypeStr, AddressTypeStr, BoolTypeStr],
1050
1862
  data: Decodable,
1051
1863
  strict: bool = True,
1052
- ) -> Tuple[int, Any, int]:
1864
+ ) -> Tuple[bool, HexAddress, bool]:
1053
1865
  ...
1054
1866
 
1055
1867
  @overload
1056
1868
  def decode(
1057
1869
  self,
1058
- types: Tuple[DecodesToIntTypeStr, TypeStr, BoolTypeStr],
1870
+ types: Tuple[BoolTypeStr, AddressTypeStr, TypeStr],
1059
1871
  data: Decodable,
1060
1872
  strict: bool = True,
1061
- ) -> Tuple[int, Any, bool]:
1873
+ ) -> Tuple[bool, HexAddress, Any]:
1062
1874
  ...
1063
1875
 
1064
1876
  @overload
1065
1877
  def decode(
1066
1878
  self,
1067
- types: Tuple[DecodesToIntTypeStr, TypeStr, TypeStr],
1879
+ types: Tuple[BoolTypeStr, BytesTypeStr, AddressTypeStr],
1068
1880
  data: Decodable,
1069
1881
  strict: bool = True,
1070
- ) -> Tuple[int, Any, Any]:
1882
+ ) -> Tuple[bool, bytes, HexAddress]:
1071
1883
  ...
1072
1884
 
1073
1885
  @overload
@@ -1115,6 +1927,15 @@ class ABIDecoder(BaseABICoder):
1115
1927
  ) -> Tuple[bool, bytes, Any]:
1116
1928
  ...
1117
1929
 
1930
+ @overload
1931
+ def decode(
1932
+ self,
1933
+ types: Tuple[BoolTypeStr, StringTypeStr, AddressTypeStr],
1934
+ data: Decodable,
1935
+ strict: bool = True,
1936
+ ) -> Tuple[bool, str, HexAddress]:
1937
+ ...
1938
+
1118
1939
  @overload
1119
1940
  def decode(
1120
1941
  self,
@@ -1160,6 +1981,15 @@ class ABIDecoder(BaseABICoder):
1160
1981
  ) -> Tuple[bool, str, Any]:
1161
1982
  ...
1162
1983
 
1984
+ @overload
1985
+ def decode(
1986
+ self,
1987
+ types: Tuple[BoolTypeStr, DecodesToIntTypeStr, AddressTypeStr],
1988
+ data: Decodable,
1989
+ strict: bool = True,
1990
+ ) -> Tuple[bool, int, HexAddress]:
1991
+ ...
1992
+
1163
1993
  @overload
1164
1994
  def decode(
1165
1995
  self,
@@ -1205,6 +2035,15 @@ class ABIDecoder(BaseABICoder):
1205
2035
  ) -> Tuple[bool, int, Any]:
1206
2036
  ...
1207
2037
 
2038
+ @overload
2039
+ def decode(
2040
+ self,
2041
+ types: Tuple[BoolTypeStr, BoolTypeStr, AddressTypeStr],
2042
+ data: Decodable,
2043
+ strict: bool = True,
2044
+ ) -> Tuple[bool, bool, HexAddress]:
2045
+ ...
2046
+
1208
2047
  @overload
1209
2048
  def decode(
1210
2049
  self,
@@ -1250,6 +2089,15 @@ class ABIDecoder(BaseABICoder):
1250
2089
  ) -> Tuple[bool, bool, Any]:
1251
2090
  ...
1252
2091
 
2092
+ @overload
2093
+ def decode(
2094
+ self,
2095
+ types: Tuple[BoolTypeStr, TypeStr, AddressTypeStr],
2096
+ data: Decodable,
2097
+ strict: bool = True,
2098
+ ) -> Tuple[bool, Any, HexAddress]:
2099
+ ...
2100
+
1253
2101
  @overload
1254
2102
  def decode(
1255
2103
  self,
@@ -1297,6 +2145,69 @@ class ABIDecoder(BaseABICoder):
1297
2145
 
1298
2146
  # --- Fallbacks for len == 3 ---
1299
2147
 
2148
+ @overload
2149
+ def decode(
2150
+ self,
2151
+ types: Tuple[TypeStr, AddressTypeStr, AddressTypeStr],
2152
+ data: Decodable,
2153
+ strict: bool = True,
2154
+ ) -> Tuple[Any, HexAddress, HexAddress]:
2155
+ ...
2156
+
2157
+ @overload
2158
+ def decode(
2159
+ self,
2160
+ types: Tuple[TypeStr, AddressTypeStr, BytesTypeStr],
2161
+ data: Decodable,
2162
+ strict: bool = True,
2163
+ ) -> Tuple[Any, HexAddress, bytes]:
2164
+ ...
2165
+
2166
+ @overload
2167
+ def decode(
2168
+ self,
2169
+ types: Tuple[TypeStr, AddressTypeStr, StringTypeStr],
2170
+ data: Decodable,
2171
+ strict: bool = True,
2172
+ ) -> Tuple[Any, HexAddress, str]:
2173
+ ...
2174
+
2175
+ @overload
2176
+ def decode(
2177
+ self,
2178
+ types: Tuple[TypeStr, AddressTypeStr, DecodesToIntTypeStr],
2179
+ data: Decodable,
2180
+ strict: bool = True,
2181
+ ) -> Tuple[Any, HexAddress, int]:
2182
+ ...
2183
+
2184
+ @overload
2185
+ def decode(
2186
+ self,
2187
+ types: Tuple[TypeStr, AddressTypeStr, BoolTypeStr],
2188
+ data: Decodable,
2189
+ strict: bool = True,
2190
+ ) -> Tuple[Any, HexAddress, bool]:
2191
+ ...
2192
+
2193
+ @overload
2194
+ def decode(
2195
+ self,
2196
+ types: Tuple[TypeStr, AddressTypeStr, TypeStr],
2197
+ data: Decodable,
2198
+ strict: bool = True,
2199
+ ) -> Tuple[Any, HexAddress, Any]:
2200
+ ...
2201
+
2202
+ @overload
2203
+ def decode(
2204
+ self,
2205
+ types: Tuple[TypeStr, BytesTypeStr, AddressTypeStr],
2206
+ data: Decodable,
2207
+ strict: bool = True,
2208
+ ) -> Tuple[Any, bytes, HexAddress]:
2209
+ ...
2210
+
1300
2211
  @overload
1301
2212
  def decode(
1302
2213
  self,
@@ -1342,6 +2253,15 @@ class ABIDecoder(BaseABICoder):
1342
2253
  ) -> Tuple[Any, bytes, Any]:
1343
2254
  ...
1344
2255
 
2256
+ @overload
2257
+ def decode(
2258
+ self,
2259
+ types: Tuple[TypeStr, StringTypeStr, AddressTypeStr],
2260
+ data: Decodable,
2261
+ strict: bool = True,
2262
+ ) -> Tuple[Any, str, HexAddress]:
2263
+ ...
2264
+
1345
2265
  @overload
1346
2266
  def decode(
1347
2267
  self,
@@ -1387,6 +2307,15 @@ class ABIDecoder(BaseABICoder):
1387
2307
  ) -> Tuple[Any, str, Any]:
1388
2308
  ...
1389
2309
 
2310
+ @overload
2311
+ def decode(
2312
+ self,
2313
+ types: Tuple[TypeStr, DecodesToIntTypeStr, AddressTypeStr],
2314
+ data: Decodable,
2315
+ strict: bool = True,
2316
+ ) -> Tuple[Any, int, HexAddress]:
2317
+ ...
2318
+
1390
2319
  @overload
1391
2320
  def decode(
1392
2321
  self,
@@ -1432,6 +2361,15 @@ class ABIDecoder(BaseABICoder):
1432
2361
  ) -> Tuple[Any, int, Any]:
1433
2362
  ...
1434
2363
 
2364
+ @overload
2365
+ def decode(
2366
+ self,
2367
+ types: Tuple[TypeStr, BoolTypeStr, AddressTypeStr],
2368
+ data: Decodable,
2369
+ strict: bool = True,
2370
+ ) -> Tuple[Any, bool, HexAddress]:
2371
+ ...
2372
+
1435
2373
  @overload
1436
2374
  def decode(
1437
2375
  self,
@@ -1477,6 +2415,15 @@ class ABIDecoder(BaseABICoder):
1477
2415
  ) -> Tuple[Any, bool, Any]:
1478
2416
  ...
1479
2417
 
2418
+ @overload
2419
+ def decode(
2420
+ self,
2421
+ types: Tuple[TypeStr, TypeStr, AddressTypeStr],
2422
+ data: Decodable,
2423
+ strict: bool = True,
2424
+ ) -> Tuple[Any, Any, HexAddress]:
2425
+ ...
2426
+
1480
2427
  @overload
1481
2428
  def decode(
1482
2429
  self,
@@ -1524,6 +2471,15 @@ class ABIDecoder(BaseABICoder):
1524
2471
 
1525
2472
  # non-tuple types input
1526
2473
 
2474
+ @overload
2475
+ def decode(
2476
+ self,
2477
+ types: Iterable[AddressTypeStr],
2478
+ data: Decodable,
2479
+ strict: bool = True,
2480
+ ) -> Tuple[HexAddress, ...]:
2481
+ ...
2482
+
1527
2483
  @overload
1528
2484
  def decode(
1529
2485
  self,
@@ -1561,6 +2517,43 @@ class ABIDecoder(BaseABICoder):
1561
2517
  ...
1562
2518
 
1563
2519
  # fallback to union types, still better than Any
2520
+
2521
+ @overload
2522
+ def decode(
2523
+ self,
2524
+ types: Iterable[Union[AddressTypeStr, BytesTypeStr]],
2525
+ data: Decodable,
2526
+ strict: bool = True,
2527
+ ) -> Tuple[Union[HexAddress, bytes], ...]:
2528
+ ...
2529
+
2530
+ @overload
2531
+ def decode(
2532
+ self,
2533
+ types: Iterable[Union[AddressTypeStr, StringTypeStr]],
2534
+ data: Decodable,
2535
+ strict: bool = True,
2536
+ ) -> Tuple[Union[HexAddress, str], ...]:
2537
+ ...
2538
+
2539
+ @overload
2540
+ def decode(
2541
+ self,
2542
+ types: Iterable[Union[AddressTypeStr, DecodesToIntTypeStr]],
2543
+ data: Decodable,
2544
+ strict: bool = True,
2545
+ ) -> Tuple[Union[HexAddress, int], ...]:
2546
+ ...
2547
+
2548
+ @overload
2549
+ def decode(
2550
+ self,
2551
+ types: Iterable[Union[AddressTypeStr, BoolTypeStr]],
2552
+ data: Decodable,
2553
+ strict: bool = True,
2554
+ ) -> Tuple[Union[HexAddress, bool], ...]:
2555
+ ...
2556
+
1564
2557
  @overload
1565
2558
  def decode(
1566
2559
  self,
@@ -1615,6 +2608,60 @@ class ABIDecoder(BaseABICoder):
1615
2608
  ) -> Tuple[Union[int, bool], ...]:
1616
2609
  ...
1617
2610
 
2611
+ @overload
2612
+ def decode(
2613
+ self,
2614
+ types: Iterable[Union[AddressTypeStr, BytesTypeStr, StringTypeStr]],
2615
+ data: Decodable,
2616
+ strict: bool = True,
2617
+ ) -> Tuple[Union[HexAddress, bytes, str], ...]:
2618
+ ...
2619
+
2620
+ @overload
2621
+ def decode(
2622
+ self,
2623
+ types: Iterable[Union[AddressTypeStr, BytesTypeStr, DecodesToIntTypeStr]],
2624
+ data: Decodable,
2625
+ strict: bool = True,
2626
+ ) -> Tuple[Union[HexAddress, bytes, int], ...]:
2627
+ ...
2628
+
2629
+ @overload
2630
+ def decode(
2631
+ self,
2632
+ types: Iterable[Union[AddressTypeStr, BytesTypeStr, BoolTypeStr]],
2633
+ data: Decodable,
2634
+ strict: bool = True,
2635
+ ) -> Tuple[Union[HexAddress, bytes, bool], ...]:
2636
+ ...
2637
+
2638
+ @overload
2639
+ def decode(
2640
+ self,
2641
+ types: Iterable[Union[AddressTypeStr, StringTypeStr, DecodesToIntTypeStr]],
2642
+ data: Decodable,
2643
+ strict: bool = True,
2644
+ ) -> Tuple[Union[HexAddress, str, int], ...]:
2645
+ ...
2646
+
2647
+ @overload
2648
+ def decode(
2649
+ self,
2650
+ types: Iterable[Union[AddressTypeStr, StringTypeStr, BoolTypeStr]],
2651
+ data: Decodable,
2652
+ strict: bool = True,
2653
+ ) -> Tuple[Union[HexAddress, str, bool], ...]:
2654
+ ...
2655
+
2656
+ @overload
2657
+ def decode(
2658
+ self,
2659
+ types: Iterable[Union[AddressTypeStr, DecodesToIntTypeStr, BoolTypeStr]],
2660
+ data: Decodable,
2661
+ strict: bool = True,
2662
+ ) -> Tuple[Union[HexAddress, int, bool], ...]:
2663
+ ...
2664
+
1618
2665
  @overload
1619
2666
  def decode(
1620
2667
  self,
@@ -1651,6 +2698,50 @@ class ABIDecoder(BaseABICoder):
1651
2698
  ) -> Tuple[Union[str, int, bool], ...]:
1652
2699
  ...
1653
2700
 
2701
+ @overload
2702
+ def decode(
2703
+ self,
2704
+ types: Iterable[
2705
+ Union[AddressTypeStr, BytesTypeStr, StringTypeStr, DecodesToIntTypeStr]
2706
+ ],
2707
+ data: Decodable,
2708
+ strict: bool = True,
2709
+ ) -> Tuple[Union[HexAddress, bytes, str, int], ...]:
2710
+ ...
2711
+
2712
+ @overload
2713
+ def decode(
2714
+ self,
2715
+ types: Iterable[
2716
+ Union[AddressTypeStr, BytesTypeStr, StringTypeStr, BoolTypeStr]
2717
+ ],
2718
+ data: Decodable,
2719
+ strict: bool = True,
2720
+ ) -> Tuple[Union[HexAddress, bytes, str, bool], ...]:
2721
+ ...
2722
+
2723
+ @overload
2724
+ def decode(
2725
+ self,
2726
+ types: Iterable[
2727
+ Union[AddressTypeStr, BytesTypeStr, DecodesToIntTypeStr, BoolTypeStr]
2728
+ ],
2729
+ data: Decodable,
2730
+ strict: bool = True,
2731
+ ) -> Tuple[Union[HexAddress, bytes, int, bool], ...]:
2732
+ ...
2733
+
2734
+ @overload
2735
+ def decode(
2736
+ self,
2737
+ types: Iterable[
2738
+ Union[AddressTypeStr, StringTypeStr, DecodesToIntTypeStr, BoolTypeStr]
2739
+ ],
2740
+ data: Decodable,
2741
+ strict: bool = True,
2742
+ ) -> Tuple[Union[AddressTypeStr, str, int, bool], ...]:
2743
+ ...
2744
+
1654
2745
  @overload
1655
2746
  def decode(
1656
2747
  self,
@@ -1662,6 +2753,32 @@ class ABIDecoder(BaseABICoder):
1662
2753
  ) -> Tuple[Union[bytes, str, int, bool], ...]:
1663
2754
  ...
1664
2755
 
2756
+ @overload
2757
+ def decode(
2758
+ self,
2759
+ types: Iterable[
2760
+ Union[
2761
+ AddressTypeStr,
2762
+ BytesTypeStr,
2763
+ StringTypeStr,
2764
+ DecodesToIntTypeStr,
2765
+ BoolTypeStr,
2766
+ ]
2767
+ ],
2768
+ data: Decodable,
2769
+ strict: bool = True,
2770
+ ) -> Tuple[Union[HexAddress, bytes, str, int, bool], ...]:
2771
+ ...
2772
+
2773
+ @overload
2774
+ def decode(
2775
+ self,
2776
+ types: Iterable[TypeStr],
2777
+ data: Decodable,
2778
+ strict: bool = True,
2779
+ ) -> Tuple[Any, ...]:
2780
+ ...
2781
+
1665
2782
  def decode(
1666
2783
  self,
1667
2784
  types: Iterable[TypeStr],