faster-eth-abi 5.2.25__cp314-cp314-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.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.
Files changed (50) hide show
  1. faster_eth_abi/__init__.py +17 -0
  2. faster_eth_abi/_codec.cpython-314-i386-linux-gnu.so +0 -0
  3. faster_eth_abi/_codec.py +83 -0
  4. faster_eth_abi/_decoding.cpython-314-i386-linux-gnu.so +0 -0
  5. faster_eth_abi/_decoding.py +371 -0
  6. faster_eth_abi/_encoding.cpython-314-i386-linux-gnu.so +0 -0
  7. faster_eth_abi/_encoding.py +514 -0
  8. faster_eth_abi/_grammar.cpython-314-i386-linux-gnu.so +0 -0
  9. faster_eth_abi/_grammar.py +389 -0
  10. faster_eth_abi/abi.cpython-314-i386-linux-gnu.so +0 -0
  11. faster_eth_abi/abi.py +17 -0
  12. faster_eth_abi/base.py +45 -0
  13. faster_eth_abi/codec.py +2809 -0
  14. faster_eth_abi/constants.cpython-314-i386-linux-gnu.so +0 -0
  15. faster_eth_abi/constants.py +7 -0
  16. faster_eth_abi/decoding.py +555 -0
  17. faster_eth_abi/encoding.py +738 -0
  18. faster_eth_abi/exceptions.cpython-314-i386-linux-gnu.so +0 -0
  19. faster_eth_abi/exceptions.py +127 -0
  20. faster_eth_abi/from_type_str.cpython-314-i386-linux-gnu.so +0 -0
  21. faster_eth_abi/from_type_str.py +141 -0
  22. faster_eth_abi/grammar.py +179 -0
  23. faster_eth_abi/io.cpython-314-i386-linux-gnu.so +0 -0
  24. faster_eth_abi/io.py +137 -0
  25. faster_eth_abi/packed.cpython-314-i386-linux-gnu.so +0 -0
  26. faster_eth_abi/packed.py +19 -0
  27. faster_eth_abi/py.typed +0 -0
  28. faster_eth_abi/registry.py +758 -0
  29. faster_eth_abi/tools/__init__.cpython-314-i386-linux-gnu.so +0 -0
  30. faster_eth_abi/tools/__init__.py +3 -0
  31. faster_eth_abi/tools/_strategies.cpython-314-i386-linux-gnu.so +0 -0
  32. faster_eth_abi/tools/_strategies.py +247 -0
  33. faster_eth_abi/typing.py +4627 -0
  34. faster_eth_abi/utils/__init__.cpython-314-i386-linux-gnu.so +0 -0
  35. faster_eth_abi/utils/__init__.py +0 -0
  36. faster_eth_abi/utils/localcontext.cpython-314-i386-linux-gnu.so +0 -0
  37. faster_eth_abi/utils/localcontext.py +49 -0
  38. faster_eth_abi/utils/numeric.cpython-314-i386-linux-gnu.so +0 -0
  39. faster_eth_abi/utils/numeric.py +117 -0
  40. faster_eth_abi/utils/padding.cpython-314-i386-linux-gnu.so +0 -0
  41. faster_eth_abi/utils/padding.py +22 -0
  42. faster_eth_abi/utils/string.cpython-314-i386-linux-gnu.so +0 -0
  43. faster_eth_abi/utils/string.py +19 -0
  44. faster_eth_abi/utils/validation.cpython-314-i386-linux-gnu.so +0 -0
  45. faster_eth_abi/utils/validation.py +18 -0
  46. faster_eth_abi-5.2.25.dist-info/METADATA +134 -0
  47. faster_eth_abi-5.2.25.dist-info/RECORD +50 -0
  48. faster_eth_abi-5.2.25.dist-info/WHEEL +7 -0
  49. faster_eth_abi-5.2.25.dist-info/top_level.txt +2 -0
  50. faster_eth_abi__mypyc.cpython-314-i386-linux-gnu.so +0 -0
@@ -0,0 +1,2809 @@
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
+
9
+ from typing import (
10
+ Any,
11
+ Iterable,
12
+ Tuple,
13
+ Union,
14
+ overload,
15
+ )
16
+
17
+ from eth_typing import (
18
+ HexAddress,
19
+ )
20
+ from eth_typing.abi import (
21
+ Decodable,
22
+ TypeStr,
23
+ )
24
+
25
+ from faster_eth_abi._codec import (
26
+ decode_c,
27
+ encode_c,
28
+ )
29
+ from faster_eth_abi.decoding import (
30
+ ContextFramesBytesIO,
31
+ )
32
+ from faster_eth_abi.exceptions import (
33
+ EncodingError,
34
+ MultipleEntriesFound,
35
+ )
36
+ from faster_eth_abi.registry import (
37
+ ABIRegistry,
38
+ )
39
+ from faster_eth_abi.typing import (
40
+ AddressTypeStr,
41
+ BoolTypeStr,
42
+ BytesTypeStr,
43
+ IntTypeStr,
44
+ StringTypeStr,
45
+ UintTypeStr,
46
+ )
47
+
48
+ DecodesToIntTypeStr = Union[UintTypeStr, IntTypeStr]
49
+
50
+
51
+ class BaseABICoder:
52
+ """
53
+ Base class for porcelain coding APIs. These are classes which wrap
54
+ instances of :class:`~faster_eth_abi.registry.ABIRegistry` to provide last-mile
55
+ coding functionality.
56
+ """
57
+
58
+ def __init__(self, registry: ABIRegistry):
59
+ """
60
+ Constructor.
61
+
62
+ :param registry: The registry providing the encoders to be used when
63
+ encoding values.
64
+ """
65
+ self._registry = registry
66
+
67
+
68
+ class ABIEncoder(BaseABICoder):
69
+ """
70
+ Wraps a registry to provide last-mile encoding functionality.
71
+ """
72
+
73
+ def encode(self, types: Iterable[TypeStr], args: Iterable[Any]) -> bytes:
74
+ """
75
+ Encodes the python values in ``args`` as a sequence of binary values of
76
+ the ABI types in ``types`` via the head-tail mechanism.
77
+
78
+ :param types: A list or tuple of string representations of the ABI types
79
+ that will be used for encoding e.g. ``('uint256', 'bytes[]',
80
+ '(int,int)')``
81
+ :param args: A list or tuple of python values to be encoded.
82
+
83
+ :returns: The head-tail encoded binary representation of the python
84
+ values in ``args`` as values of the ABI types in ``types``.
85
+ """
86
+ return encode_c(self, types, args)
87
+
88
+ def is_encodable(self, typ: TypeStr, arg: Any) -> bool:
89
+ """
90
+ Determines if the python value ``arg`` is encodable as a value of the
91
+ ABI type ``typ``.
92
+
93
+ :param typ: A string representation for the ABI type against which the
94
+ python value ``arg`` will be checked e.g. ``'uint256'``,
95
+ ``'bytes[]'``, ``'(int,int)'``, etc.
96
+ :param arg: The python value whose encodability should be checked.
97
+
98
+ :returns: ``True`` if ``arg`` is encodable as a value of the ABI type
99
+ ``typ``. Otherwise, ``False``.
100
+ """
101
+ try:
102
+ encoder = self._registry.get_encoder(typ)
103
+ except MultipleEntriesFound:
104
+ raise
105
+ except Exception:
106
+ return False
107
+
108
+ validate = getattr(encoder, "validate_value", encoder)
109
+ try:
110
+ validate(arg)
111
+ except EncodingError:
112
+ return False
113
+
114
+ return True
115
+
116
+ def is_encodable_type(self, typ: TypeStr) -> bool:
117
+ """
118
+ Returns ``True`` if values for the ABI type ``typ`` can be encoded by
119
+ this codec.
120
+
121
+ :param typ: A string representation for the ABI type that will be
122
+ checked for encodability e.g. ``'uint256'``, ``'bytes[]'``,
123
+ ``'(int,int)'``, etc.
124
+
125
+ :returns: ``True`` if values for ``typ`` can be encoded by this codec.
126
+ Otherwise, ``False``.
127
+ """
128
+ return self._registry.has_encoder(typ)
129
+
130
+
131
+ class ABIDecoder(BaseABICoder):
132
+ """
133
+ Wraps a registry to provide last-mile decoding functionality.
134
+ """
135
+
136
+ stream_class = ContextFramesBytesIO
137
+
138
+ # raw tuple types, same type
139
+
140
+ # len == 1
141
+
142
+ @overload
143
+ def decode(
144
+ self,
145
+ types: Tuple[AddressTypeStr],
146
+ data: Decodable,
147
+ strict: bool = True,
148
+ ) -> Tuple[HexAddress]:
149
+ ...
150
+
151
+ @overload
152
+ def decode(
153
+ self,
154
+ types: Tuple[BytesTypeStr],
155
+ data: Decodable,
156
+ strict: bool = True,
157
+ ) -> Tuple[bytes]:
158
+ ...
159
+
160
+ @overload
161
+ def decode(
162
+ self,
163
+ types: Tuple[StringTypeStr],
164
+ data: Decodable,
165
+ strict: bool = True,
166
+ ) -> Tuple[str]:
167
+ ...
168
+
169
+ @overload
170
+ def decode(
171
+ self,
172
+ types: Tuple[DecodesToIntTypeStr],
173
+ data: Decodable,
174
+ strict: bool = True,
175
+ ) -> Tuple[int]:
176
+ ...
177
+
178
+ @overload
179
+ def decode(
180
+ self,
181
+ types: Tuple[BoolTypeStr],
182
+ data: Decodable,
183
+ strict: bool = True,
184
+ ) -> Tuple[bool]:
185
+ ...
186
+
187
+ @overload
188
+ def decode(
189
+ self,
190
+ types: Tuple[TypeStr],
191
+ data: Decodable,
192
+ strict: bool = True,
193
+ ) -> Tuple[Any]:
194
+ ...
195
+
196
+ # len == 2
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
+
261
+ @overload
262
+ def decode(
263
+ self,
264
+ types: Tuple[BytesTypeStr, BytesTypeStr],
265
+ data: Decodable,
266
+ strict: bool = True,
267
+ ) -> Tuple[bytes, bytes]:
268
+ ...
269
+
270
+ @overload
271
+ def decode(
272
+ self,
273
+ types: Tuple[BytesTypeStr, StringTypeStr],
274
+ data: Decodable,
275
+ strict: bool = True,
276
+ ) -> Tuple[bytes, str]:
277
+ ...
278
+
279
+ @overload
280
+ def decode(
281
+ self,
282
+ types: Tuple[BytesTypeStr, DecodesToIntTypeStr],
283
+ data: Decodable,
284
+ strict: bool = True,
285
+ ) -> Tuple[bytes, int]:
286
+ ...
287
+
288
+ @overload
289
+ def decode(
290
+ self,
291
+ types: Tuple[BytesTypeStr, BoolTypeStr],
292
+ data: Decodable,
293
+ strict: bool = True,
294
+ ) -> Tuple[bytes, bool]:
295
+ ...
296
+
297
+ @overload
298
+ def decode(
299
+ self,
300
+ types: Tuple[BytesTypeStr, TypeStr],
301
+ data: Decodable,
302
+ strict: bool = True,
303
+ ) -> Tuple[bytes, Any]:
304
+ ...
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
+
315
+ @overload
316
+ def decode(
317
+ self,
318
+ types: Tuple[StringTypeStr, BytesTypeStr],
319
+ data: Decodable,
320
+ strict: bool = True,
321
+ ) -> Tuple[str, bytes]:
322
+ ...
323
+
324
+ @overload
325
+ def decode(
326
+ self,
327
+ types: Tuple[StringTypeStr, StringTypeStr],
328
+ data: Decodable,
329
+ strict: bool = True,
330
+ ) -> Tuple[str, str]:
331
+ ...
332
+
333
+ @overload
334
+ def decode(
335
+ self,
336
+ types: Tuple[StringTypeStr, DecodesToIntTypeStr],
337
+ data: Decodable,
338
+ strict: bool = True,
339
+ ) -> Tuple[str, int]:
340
+ ...
341
+
342
+ @overload
343
+ def decode(
344
+ self,
345
+ types: Tuple[StringTypeStr, BoolTypeStr],
346
+ data: Decodable,
347
+ strict: bool = True,
348
+ ) -> Tuple[str, bool]:
349
+ ...
350
+
351
+ @overload
352
+ def decode(
353
+ self,
354
+ types: Tuple[StringTypeStr, TypeStr],
355
+ data: Decodable,
356
+ strict: bool = True,
357
+ ) -> Tuple[str, Any]:
358
+ ...
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
+
369
+ @overload
370
+ def decode(
371
+ self,
372
+ types: Tuple[DecodesToIntTypeStr, BytesTypeStr],
373
+ data: Decodable,
374
+ strict: bool = True,
375
+ ) -> Tuple[int, bytes]:
376
+ ...
377
+
378
+ @overload
379
+ def decode(
380
+ self,
381
+ types: Tuple[DecodesToIntTypeStr, StringTypeStr],
382
+ data: Decodable,
383
+ strict: bool = True,
384
+ ) -> Tuple[int, str]:
385
+ ...
386
+
387
+ @overload
388
+ def decode(
389
+ self,
390
+ types: Tuple[DecodesToIntTypeStr, DecodesToIntTypeStr],
391
+ data: Decodable,
392
+ strict: bool = True,
393
+ ) -> Tuple[int, int]:
394
+ ...
395
+
396
+ @overload
397
+ def decode(
398
+ self,
399
+ types: Tuple[DecodesToIntTypeStr, BoolTypeStr],
400
+ data: Decodable,
401
+ strict: bool = True,
402
+ ) -> Tuple[int, bool]:
403
+ ...
404
+
405
+ @overload
406
+ def decode(
407
+ self,
408
+ types: Tuple[DecodesToIntTypeStr, TypeStr],
409
+ data: Decodable,
410
+ strict: bool = True,
411
+ ) -> Tuple[int, Any]:
412
+ ...
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
+
423
+ @overload
424
+ def decode(
425
+ self,
426
+ types: Tuple[BoolTypeStr, BytesTypeStr],
427
+ data: Decodable,
428
+ strict: bool = True,
429
+ ) -> Tuple[bool, bytes]:
430
+ ...
431
+
432
+ @overload
433
+ def decode(
434
+ self,
435
+ types: Tuple[BoolTypeStr, StringTypeStr],
436
+ data: Decodable,
437
+ strict: bool = True,
438
+ ) -> Tuple[bool, str]:
439
+ ...
440
+
441
+ @overload
442
+ def decode(
443
+ self,
444
+ types: Tuple[BoolTypeStr, DecodesToIntTypeStr],
445
+ data: Decodable,
446
+ strict: bool = True,
447
+ ) -> Tuple[bool, int]:
448
+ ...
449
+
450
+ @overload
451
+ def decode(
452
+ self,
453
+ types: Tuple[BoolTypeStr, BoolTypeStr],
454
+ data: Decodable,
455
+ strict: bool = True,
456
+ ) -> Tuple[bool, bool]:
457
+ ...
458
+
459
+ @overload
460
+ def decode(
461
+ self,
462
+ types: Tuple[BoolTypeStr, TypeStr],
463
+ data: Decodable,
464
+ strict: bool = True,
465
+ ) -> Tuple[bool, Any]:
466
+ ...
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
+
477
+ @overload
478
+ def decode(
479
+ self,
480
+ types: Tuple[TypeStr, BytesTypeStr],
481
+ data: Decodable,
482
+ strict: bool = True,
483
+ ) -> Tuple[Any, bytes]:
484
+ ...
485
+
486
+ @overload
487
+ def decode(
488
+ self,
489
+ types: Tuple[TypeStr, StringTypeStr],
490
+ data: Decodable,
491
+ strict: bool = True,
492
+ ) -> Tuple[Any, str]:
493
+ ...
494
+
495
+ @overload
496
+ def decode(
497
+ self,
498
+ types: Tuple[TypeStr, DecodesToIntTypeStr],
499
+ data: Decodable,
500
+ strict: bool = True,
501
+ ) -> Tuple[Any, int]:
502
+ ...
503
+
504
+ @overload
505
+ def decode(
506
+ self,
507
+ types: Tuple[TypeStr, BoolTypeStr],
508
+ data: Decodable,
509
+ strict: bool = True,
510
+ ) -> Tuple[Any, bool]:
511
+ ...
512
+
513
+ @overload
514
+ def decode(
515
+ self,
516
+ types: Tuple[TypeStr, TypeStr],
517
+ data: Decodable,
518
+ strict: bool = True,
519
+ ) -> Tuple[Any, Any]:
520
+ ...
521
+
522
+ # len == 3
523
+ # okay get ready for some ugly overloads
524
+ # We will probably not implement lengths > 3
525
+
526
+ @overload
527
+ def decode(
528
+ self,
529
+ types: Tuple[AddressTypeStr, AddressTypeStr, AddressTypeStr],
530
+ data: Decodable,
531
+ strict: bool = True,
532
+ ) -> Tuple[HexAddress, HexAddress, HexAddress]:
533
+ ...
534
+
535
+ @overload
536
+ def decode(
537
+ self,
538
+ types: Tuple[AddressTypeStr, AddressTypeStr, BytesTypeStr],
539
+ data: Decodable,
540
+ strict: bool = True,
541
+ ) -> Tuple[HexAddress, HexAddress, bytes]:
542
+ ...
543
+
544
+ @overload
545
+ def decode(
546
+ self,
547
+ types: Tuple[AddressTypeStr, AddressTypeStr, StringTypeStr],
548
+ data: Decodable,
549
+ strict: bool = True,
550
+ ) -> Tuple[HexAddress, HexAddress, str]:
551
+ ...
552
+
553
+ @overload
554
+ def decode(
555
+ self,
556
+ types: Tuple[AddressTypeStr, AddressTypeStr, DecodesToIntTypeStr],
557
+ data: Decodable,
558
+ strict: bool = True,
559
+ ) -> Tuple[HexAddress, HexAddress, int]:
560
+ ...
561
+
562
+ @overload
563
+ def decode(
564
+ self,
565
+ types: Tuple[AddressTypeStr, AddressTypeStr, BoolTypeStr],
566
+ data: Decodable,
567
+ strict: bool = True,
568
+ ) -> Tuple[HexAddress, HexAddress, bool]:
569
+ ...
570
+
571
+ @overload
572
+ def decode(
573
+ self,
574
+ types: Tuple[AddressTypeStr, AddressTypeStr, TypeStr],
575
+ data: Decodable,
576
+ strict: bool = True,
577
+ ) -> Tuple[HexAddress, HexAddress, Any]:
578
+ ...
579
+
580
+ @overload
581
+ def decode(
582
+ self,
583
+ types: Tuple[AddressTypeStr, BytesTypeStr, AddressTypeStr],
584
+ data: Decodable,
585
+ strict: bool = True,
586
+ ) -> Tuple[HexAddress, bytes, HexAddress]:
587
+ ...
588
+
589
+ @overload
590
+ def decode(
591
+ self,
592
+ types: Tuple[AddressTypeStr, BytesTypeStr, BytesTypeStr],
593
+ data: Decodable,
594
+ strict: bool = True,
595
+ ) -> Tuple[HexAddress, bytes, bytes]:
596
+ ...
597
+
598
+ @overload
599
+ def decode(
600
+ self,
601
+ types: Tuple[AddressTypeStr, BytesTypeStr, StringTypeStr],
602
+ data: Decodable,
603
+ strict: bool = True,
604
+ ) -> Tuple[HexAddress, bytes, str]:
605
+ ...
606
+
607
+ @overload
608
+ def decode(
609
+ self,
610
+ types: Tuple[AddressTypeStr, BytesTypeStr, DecodesToIntTypeStr],
611
+ data: Decodable,
612
+ strict: bool = True,
613
+ ) -> Tuple[HexAddress, bytes, int]:
614
+ ...
615
+
616
+ @overload
617
+ def decode(
618
+ self,
619
+ types: Tuple[AddressTypeStr, BytesTypeStr, BoolTypeStr],
620
+ data: Decodable,
621
+ strict: bool = True,
622
+ ) -> Tuple[HexAddress, bytes, bool]:
623
+ ...
624
+
625
+ @overload
626
+ def decode(
627
+ self,
628
+ types: Tuple[AddressTypeStr, BytesTypeStr, TypeStr],
629
+ data: Decodable,
630
+ strict: bool = True,
631
+ ) -> Tuple[HexAddress, bytes, Any]:
632
+ ...
633
+
634
+ @overload
635
+ def decode(
636
+ self,
637
+ types: Tuple[AddressTypeStr, StringTypeStr, AddressTypeStr],
638
+ data: Decodable,
639
+ strict: bool = True,
640
+ ) -> Tuple[HexAddress, str, HexAddress]:
641
+ ...
642
+
643
+ @overload
644
+ def decode(
645
+ self,
646
+ types: Tuple[AddressTypeStr, StringTypeStr, BytesTypeStr],
647
+ data: Decodable,
648
+ strict: bool = True,
649
+ ) -> Tuple[HexAddress, str, bytes]:
650
+ ...
651
+
652
+ @overload
653
+ def decode(
654
+ self,
655
+ types: Tuple[AddressTypeStr, StringTypeStr, StringTypeStr],
656
+ data: Decodable,
657
+ strict: bool = True,
658
+ ) -> Tuple[HexAddress, str, str]:
659
+ ...
660
+
661
+ @overload
662
+ def decode(
663
+ self,
664
+ types: Tuple[AddressTypeStr, StringTypeStr, DecodesToIntTypeStr],
665
+ data: Decodable,
666
+ strict: bool = True,
667
+ ) -> Tuple[HexAddress, str, int]:
668
+ ...
669
+
670
+ @overload
671
+ def decode(
672
+ self,
673
+ types: Tuple[AddressTypeStr, StringTypeStr, BoolTypeStr],
674
+ data: Decodable,
675
+ strict: bool = True,
676
+ ) -> Tuple[HexAddress, str, bool]:
677
+ ...
678
+
679
+ @overload
680
+ def decode(
681
+ self,
682
+ types: Tuple[AddressTypeStr, StringTypeStr, TypeStr],
683
+ data: Decodable,
684
+ strict: bool = True,
685
+ ) -> Tuple[HexAddress, str, Any]:
686
+ ...
687
+
688
+ @overload
689
+ def decode(
690
+ self,
691
+ types: Tuple[AddressTypeStr, DecodesToIntTypeStr, AddressTypeStr],
692
+ data: Decodable,
693
+ strict: bool = True,
694
+ ) -> Tuple[HexAddress, int, HexAddress]:
695
+ ...
696
+
697
+ @overload
698
+ def decode(
699
+ self,
700
+ types: Tuple[AddressTypeStr, DecodesToIntTypeStr, BytesTypeStr],
701
+ data: Decodable,
702
+ strict: bool = True,
703
+ ) -> Tuple[HexAddress, int, bytes]:
704
+ ...
705
+
706
+ @overload
707
+ def decode(
708
+ self,
709
+ types: Tuple[AddressTypeStr, DecodesToIntTypeStr, StringTypeStr],
710
+ data: Decodable,
711
+ strict: bool = True,
712
+ ) -> Tuple[HexAddress, int, str]:
713
+ ...
714
+
715
+ @overload
716
+ def decode(
717
+ self,
718
+ types: Tuple[AddressTypeStr, DecodesToIntTypeStr, DecodesToIntTypeStr],
719
+ data: Decodable,
720
+ strict: bool = True,
721
+ ) -> Tuple[HexAddress, int, int]:
722
+ ...
723
+
724
+ @overload
725
+ def decode(
726
+ self,
727
+ types: Tuple[AddressTypeStr, DecodesToIntTypeStr, BoolTypeStr],
728
+ data: Decodable,
729
+ strict: bool = True,
730
+ ) -> Tuple[HexAddress, int, bool]:
731
+ ...
732
+
733
+ @overload
734
+ def decode(
735
+ self,
736
+ types: Tuple[AddressTypeStr, DecodesToIntTypeStr, TypeStr],
737
+ data: Decodable,
738
+ strict: bool = True,
739
+ ) -> Tuple[HexAddress, int, Any]:
740
+ ...
741
+
742
+ @overload
743
+ def decode(
744
+ self,
745
+ types: Tuple[AddressTypeStr, BoolTypeStr, AddressTypeStr],
746
+ data: Decodable,
747
+ strict: bool = True,
748
+ ) -> Tuple[HexAddress, bool, HexAddress]:
749
+ ...
750
+
751
+ @overload
752
+ def decode(
753
+ self,
754
+ types: Tuple[AddressTypeStr, BoolTypeStr, BytesTypeStr],
755
+ data: Decodable,
756
+ strict: bool = True,
757
+ ) -> Tuple[HexAddress, bool, bytes]:
758
+ ...
759
+
760
+ @overload
761
+ def decode(
762
+ self,
763
+ types: Tuple[AddressTypeStr, BoolTypeStr, StringTypeStr],
764
+ data: Decodable,
765
+ strict: bool = True,
766
+ ) -> Tuple[HexAddress, bool, str]:
767
+ ...
768
+
769
+ @overload
770
+ def decode(
771
+ self,
772
+ types: Tuple[AddressTypeStr, BoolTypeStr, DecodesToIntTypeStr],
773
+ data: Decodable,
774
+ strict: bool = True,
775
+ ) -> Tuple[HexAddress, bool, int]:
776
+ ...
777
+
778
+ @overload
779
+ def decode(
780
+ self,
781
+ types: Tuple[AddressTypeStr, BoolTypeStr, BoolTypeStr],
782
+ data: Decodable,
783
+ strict: bool = True,
784
+ ) -> Tuple[HexAddress, bool, bool]:
785
+ ...
786
+
787
+ @overload
788
+ def decode(
789
+ self,
790
+ types: Tuple[AddressTypeStr, BoolTypeStr, TypeStr],
791
+ data: Decodable,
792
+ strict: bool = True,
793
+ ) -> Tuple[HexAddress, bool, Any]:
794
+ ...
795
+
796
+ @overload
797
+ def decode(
798
+ self,
799
+ types: Tuple[AddressTypeStr, TypeStr, AddressTypeStr],
800
+ data: Decodable,
801
+ strict: bool = True,
802
+ ) -> Tuple[HexAddress, Any, HexAddress]:
803
+ ...
804
+
805
+ @overload
806
+ def decode(
807
+ self,
808
+ types: Tuple[AddressTypeStr, TypeStr, BytesTypeStr],
809
+ data: Decodable,
810
+ strict: bool = True,
811
+ ) -> Tuple[HexAddress, Any, bytes]:
812
+ ...
813
+
814
+ @overload
815
+ def decode(
816
+ self,
817
+ types: Tuple[AddressTypeStr, TypeStr, StringTypeStr],
818
+ data: Decodable,
819
+ strict: bool = True,
820
+ ) -> Tuple[HexAddress, Any, str]:
821
+ ...
822
+
823
+ @overload
824
+ def decode(
825
+ self,
826
+ types: Tuple[AddressTypeStr, TypeStr, DecodesToIntTypeStr],
827
+ data: Decodable,
828
+ strict: bool = True,
829
+ ) -> Tuple[HexAddress, Any, int]:
830
+ ...
831
+
832
+ @overload
833
+ def decode(
834
+ self,
835
+ types: Tuple[AddressTypeStr, TypeStr, BoolTypeStr],
836
+ data: Decodable,
837
+ strict: bool = True,
838
+ ) -> Tuple[HexAddress, Any, bool]:
839
+ ...
840
+
841
+ @overload
842
+ def decode(
843
+ self,
844
+ types: Tuple[AddressTypeStr, TypeStr, TypeStr],
845
+ data: Decodable,
846
+ strict: bool = True,
847
+ ) -> Tuple[HexAddress, Any, Any]:
848
+ ...
849
+
850
+ @overload
851
+ def decode(
852
+ self,
853
+ types: Tuple[BytesTypeStr, AddressTypeStr, AddressTypeStr],
854
+ data: Decodable,
855
+ strict: bool = True,
856
+ ) -> Tuple[bytes, HexAddress, HexAddress]:
857
+ ...
858
+
859
+ @overload
860
+ def decode(
861
+ self,
862
+ types: Tuple[BytesTypeStr, AddressTypeStr, BytesTypeStr],
863
+ data: Decodable,
864
+ strict: bool = True,
865
+ ) -> Tuple[bytes, HexAddress, bytes]:
866
+ ...
867
+
868
+ @overload
869
+ def decode(
870
+ self,
871
+ types: Tuple[BytesTypeStr, AddressTypeStr, StringTypeStr],
872
+ data: Decodable,
873
+ strict: bool = True,
874
+ ) -> Tuple[bytes, HexAddress, str]:
875
+ ...
876
+
877
+ @overload
878
+ def decode(
879
+ self,
880
+ types: Tuple[BytesTypeStr, AddressTypeStr, DecodesToIntTypeStr],
881
+ data: Decodable,
882
+ strict: bool = True,
883
+ ) -> Tuple[bytes, HexAddress, int]:
884
+ ...
885
+
886
+ @overload
887
+ def decode(
888
+ self,
889
+ types: Tuple[BytesTypeStr, AddressTypeStr, BoolTypeStr],
890
+ data: Decodable,
891
+ strict: bool = True,
892
+ ) -> Tuple[bytes, HexAddress, bool]:
893
+ ...
894
+
895
+ @overload
896
+ def decode(
897
+ self,
898
+ types: Tuple[BytesTypeStr, AddressTypeStr, TypeStr],
899
+ data: Decodable,
900
+ strict: bool = True,
901
+ ) -> Tuple[bytes, HexAddress, Any]:
902
+ ...
903
+
904
+ @overload
905
+ def decode(
906
+ self,
907
+ types: Tuple[BytesTypeStr, BytesTypeStr, AddressTypeStr],
908
+ data: Decodable,
909
+ strict: bool = True,
910
+ ) -> Tuple[bytes, bytes, HexAddress]:
911
+ ...
912
+
913
+ @overload
914
+ def decode(
915
+ self,
916
+ types: Tuple[BytesTypeStr, BytesTypeStr, BytesTypeStr],
917
+ data: Decodable,
918
+ strict: bool = True,
919
+ ) -> Tuple[bytes, bytes, bytes]:
920
+ ...
921
+
922
+ @overload
923
+ def decode(
924
+ self,
925
+ types: Tuple[BytesTypeStr, BytesTypeStr, StringTypeStr],
926
+ data: Decodable,
927
+ strict: bool = True,
928
+ ) -> Tuple[bytes, bytes, str]:
929
+ ...
930
+
931
+ @overload
932
+ def decode(
933
+ self,
934
+ types: Tuple[BytesTypeStr, BytesTypeStr, DecodesToIntTypeStr],
935
+ data: Decodable,
936
+ strict: bool = True,
937
+ ) -> Tuple[bytes, bytes, int]:
938
+ ...
939
+
940
+ @overload
941
+ def decode(
942
+ self,
943
+ types: Tuple[BytesTypeStr, BytesTypeStr, BoolTypeStr],
944
+ data: Decodable,
945
+ strict: bool = True,
946
+ ) -> Tuple[bytes, bytes, bool]:
947
+ ...
948
+
949
+ @overload
950
+ def decode(
951
+ self,
952
+ types: Tuple[BytesTypeStr, BytesTypeStr, TypeStr],
953
+ data: Decodable,
954
+ strict: bool = True,
955
+ ) -> Tuple[bytes, bytes, Any]:
956
+ ...
957
+
958
+ @overload
959
+ def decode(
960
+ self,
961
+ types: Tuple[BytesTypeStr, StringTypeStr, AddressTypeStr],
962
+ data: Decodable,
963
+ strict: bool = True,
964
+ ) -> Tuple[bytes, str, HexAddress]:
965
+ ...
966
+
967
+ @overload
968
+ def decode(
969
+ self,
970
+ types: Tuple[BytesTypeStr, StringTypeStr, BytesTypeStr],
971
+ data: Decodable,
972
+ strict: bool = True,
973
+ ) -> Tuple[bytes, str, bytes]:
974
+ ...
975
+
976
+ @overload
977
+ def decode(
978
+ self,
979
+ types: Tuple[BytesTypeStr, StringTypeStr, StringTypeStr],
980
+ data: Decodable,
981
+ strict: bool = True,
982
+ ) -> Tuple[bytes, str, str]:
983
+ ...
984
+
985
+ @overload
986
+ def decode(
987
+ self,
988
+ types: Tuple[BytesTypeStr, StringTypeStr, DecodesToIntTypeStr],
989
+ data: Decodable,
990
+ strict: bool = True,
991
+ ) -> Tuple[bytes, str, int]:
992
+ ...
993
+
994
+ @overload
995
+ def decode(
996
+ self,
997
+ types: Tuple[BytesTypeStr, StringTypeStr, BoolTypeStr],
998
+ data: Decodable,
999
+ strict: bool = True,
1000
+ ) -> Tuple[bytes, str, bool]:
1001
+ ...
1002
+
1003
+ @overload
1004
+ def decode(
1005
+ self,
1006
+ types: Tuple[BytesTypeStr, StringTypeStr, TypeStr],
1007
+ data: Decodable,
1008
+ strict: bool = True,
1009
+ ) -> Tuple[bytes, str, Any]:
1010
+ ...
1011
+
1012
+ @overload
1013
+ def decode(
1014
+ self,
1015
+ types: Tuple[BytesTypeStr, DecodesToIntTypeStr, AddressTypeStr],
1016
+ data: Decodable,
1017
+ strict: bool = True,
1018
+ ) -> Tuple[bytes, int, HexAddress]:
1019
+ ...
1020
+
1021
+ @overload
1022
+ def decode(
1023
+ self,
1024
+ types: Tuple[BytesTypeStr, DecodesToIntTypeStr, BytesTypeStr],
1025
+ data: Decodable,
1026
+ strict: bool = True,
1027
+ ) -> Tuple[bytes, int, bytes]:
1028
+ ...
1029
+
1030
+ @overload
1031
+ def decode(
1032
+ self,
1033
+ types: Tuple[BytesTypeStr, DecodesToIntTypeStr, StringTypeStr],
1034
+ data: Decodable,
1035
+ strict: bool = True,
1036
+ ) -> Tuple[bytes, int, str]:
1037
+ ...
1038
+
1039
+ @overload
1040
+ def decode(
1041
+ self,
1042
+ types: Tuple[BytesTypeStr, DecodesToIntTypeStr, DecodesToIntTypeStr],
1043
+ data: Decodable,
1044
+ strict: bool = True,
1045
+ ) -> Tuple[bytes, int, int]:
1046
+ ...
1047
+
1048
+ @overload
1049
+ def decode(
1050
+ self,
1051
+ types: Tuple[BytesTypeStr, DecodesToIntTypeStr, BoolTypeStr],
1052
+ data: Decodable,
1053
+ strict: bool = True,
1054
+ ) -> Tuple[bytes, int, bool]:
1055
+ ...
1056
+
1057
+ @overload
1058
+ def decode(
1059
+ self,
1060
+ types: Tuple[BytesTypeStr, DecodesToIntTypeStr, TypeStr],
1061
+ data: Decodable,
1062
+ strict: bool = True,
1063
+ ) -> Tuple[bytes, int, Any]:
1064
+ ...
1065
+
1066
+ @overload
1067
+ def decode(
1068
+ self,
1069
+ types: Tuple[BytesTypeStr, BoolTypeStr, AddressTypeStr],
1070
+ data: Decodable,
1071
+ strict: bool = True,
1072
+ ) -> Tuple[bytes, bool, HexAddress]:
1073
+ ...
1074
+
1075
+ @overload
1076
+ def decode(
1077
+ self,
1078
+ types: Tuple[BytesTypeStr, BoolTypeStr, BytesTypeStr],
1079
+ data: Decodable,
1080
+ strict: bool = True,
1081
+ ) -> Tuple[bytes, bool, bytes]:
1082
+ ...
1083
+
1084
+ @overload
1085
+ def decode(
1086
+ self,
1087
+ types: Tuple[BytesTypeStr, BoolTypeStr, StringTypeStr],
1088
+ data: Decodable,
1089
+ strict: bool = True,
1090
+ ) -> Tuple[bytes, bool, str]:
1091
+ ...
1092
+
1093
+ @overload
1094
+ def decode(
1095
+ self,
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],
1700
+ data: Decodable,
1701
+ strict: bool = True,
1702
+ ) -> Tuple[int, int, bool]:
1703
+ ...
1704
+
1705
+ @overload
1706
+ def decode(
1707
+ self,
1708
+ types: Tuple[DecodesToIntTypeStr, DecodesToIntTypeStr, TypeStr],
1709
+ data: Decodable,
1710
+ strict: bool = True,
1711
+ ) -> Tuple[int, int, Any]:
1712
+ ...
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
+
1723
+ @overload
1724
+ def decode(
1725
+ self,
1726
+ types: Tuple[DecodesToIntTypeStr, BoolTypeStr, BytesTypeStr],
1727
+ data: Decodable,
1728
+ strict: bool = True,
1729
+ ) -> Tuple[int, bool, bytes]:
1730
+ ...
1731
+
1732
+ @overload
1733
+ def decode(
1734
+ self,
1735
+ types: Tuple[DecodesToIntTypeStr, BoolTypeStr, StringTypeStr],
1736
+ data: Decodable,
1737
+ strict: bool = True,
1738
+ ) -> Tuple[int, bool, str]:
1739
+ ...
1740
+
1741
+ @overload
1742
+ def decode(
1743
+ self,
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],
1817
+ data: Decodable,
1818
+ strict: bool = True,
1819
+ ) -> Tuple[int, Any, Any]:
1820
+ ...
1821
+
1822
+ @overload
1823
+ def decode(
1824
+ self,
1825
+ types: Tuple[BoolTypeStr, AddressTypeStr, AddressTypeStr],
1826
+ data: Decodable,
1827
+ strict: bool = True,
1828
+ ) -> Tuple[bool, HexAddress, HexAddress]:
1829
+ ...
1830
+
1831
+ @overload
1832
+ def decode(
1833
+ self,
1834
+ types: Tuple[BoolTypeStr, AddressTypeStr, BytesTypeStr],
1835
+ data: Decodable,
1836
+ strict: bool = True,
1837
+ ) -> Tuple[bool, HexAddress, bytes]:
1838
+ ...
1839
+
1840
+ @overload
1841
+ def decode(
1842
+ self,
1843
+ types: Tuple[BoolTypeStr, AddressTypeStr, StringTypeStr],
1844
+ data: Decodable,
1845
+ strict: bool = True,
1846
+ ) -> Tuple[bool, HexAddress, str]:
1847
+ ...
1848
+
1849
+ @overload
1850
+ def decode(
1851
+ self,
1852
+ types: Tuple[BoolTypeStr, AddressTypeStr, DecodesToIntTypeStr],
1853
+ data: Decodable,
1854
+ strict: bool = True,
1855
+ ) -> Tuple[bool, HexAddress, int]:
1856
+ ...
1857
+
1858
+ @overload
1859
+ def decode(
1860
+ self,
1861
+ types: Tuple[BoolTypeStr, AddressTypeStr, BoolTypeStr],
1862
+ data: Decodable,
1863
+ strict: bool = True,
1864
+ ) -> Tuple[bool, HexAddress, bool]:
1865
+ ...
1866
+
1867
+ @overload
1868
+ def decode(
1869
+ self,
1870
+ types: Tuple[BoolTypeStr, AddressTypeStr, TypeStr],
1871
+ data: Decodable,
1872
+ strict: bool = True,
1873
+ ) -> Tuple[bool, HexAddress, Any]:
1874
+ ...
1875
+
1876
+ @overload
1877
+ def decode(
1878
+ self,
1879
+ types: Tuple[BoolTypeStr, BytesTypeStr, AddressTypeStr],
1880
+ data: Decodable,
1881
+ strict: bool = True,
1882
+ ) -> Tuple[bool, bytes, HexAddress]:
1883
+ ...
1884
+
1885
+ @overload
1886
+ def decode(
1887
+ self,
1888
+ types: Tuple[BoolTypeStr, BytesTypeStr, BytesTypeStr],
1889
+ data: Decodable,
1890
+ strict: bool = True,
1891
+ ) -> Tuple[bool, bytes, bytes]:
1892
+ ...
1893
+
1894
+ @overload
1895
+ def decode(
1896
+ self,
1897
+ types: Tuple[BoolTypeStr, BytesTypeStr, StringTypeStr],
1898
+ data: Decodable,
1899
+ strict: bool = True,
1900
+ ) -> Tuple[bool, bytes, str]:
1901
+ ...
1902
+
1903
+ @overload
1904
+ def decode(
1905
+ self,
1906
+ types: Tuple[BoolTypeStr, BytesTypeStr, DecodesToIntTypeStr],
1907
+ data: Decodable,
1908
+ strict: bool = True,
1909
+ ) -> Tuple[bool, bytes, int]:
1910
+ ...
1911
+
1912
+ @overload
1913
+ def decode(
1914
+ self,
1915
+ types: Tuple[BoolTypeStr, BytesTypeStr, BoolTypeStr],
1916
+ data: Decodable,
1917
+ strict: bool = True,
1918
+ ) -> Tuple[bool, bytes, bool]:
1919
+ ...
1920
+
1921
+ @overload
1922
+ def decode(
1923
+ self,
1924
+ types: Tuple[BoolTypeStr, BytesTypeStr, TypeStr],
1925
+ data: Decodable,
1926
+ strict: bool = True,
1927
+ ) -> Tuple[bool, bytes, Any]:
1928
+ ...
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
+
1939
+ @overload
1940
+ def decode(
1941
+ self,
1942
+ types: Tuple[BoolTypeStr, StringTypeStr, BytesTypeStr],
1943
+ data: Decodable,
1944
+ strict: bool = True,
1945
+ ) -> Tuple[bool, str, bytes]:
1946
+ ...
1947
+
1948
+ @overload
1949
+ def decode(
1950
+ self,
1951
+ types: Tuple[BoolTypeStr, StringTypeStr, StringTypeStr],
1952
+ data: Decodable,
1953
+ strict: bool = True,
1954
+ ) -> Tuple[bool, str, str]:
1955
+ ...
1956
+
1957
+ @overload
1958
+ def decode(
1959
+ self,
1960
+ types: Tuple[BoolTypeStr, StringTypeStr, DecodesToIntTypeStr],
1961
+ data: Decodable,
1962
+ strict: bool = True,
1963
+ ) -> Tuple[bool, str, int]:
1964
+ ...
1965
+
1966
+ @overload
1967
+ def decode(
1968
+ self,
1969
+ types: Tuple[BoolTypeStr, StringTypeStr, BoolTypeStr],
1970
+ data: Decodable,
1971
+ strict: bool = True,
1972
+ ) -> Tuple[bool, str, bool]:
1973
+ ...
1974
+
1975
+ @overload
1976
+ def decode(
1977
+ self,
1978
+ types: Tuple[BoolTypeStr, StringTypeStr, TypeStr],
1979
+ data: Decodable,
1980
+ strict: bool = True,
1981
+ ) -> Tuple[bool, str, Any]:
1982
+ ...
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
+
1993
+ @overload
1994
+ def decode(
1995
+ self,
1996
+ types: Tuple[BoolTypeStr, DecodesToIntTypeStr, BytesTypeStr],
1997
+ data: Decodable,
1998
+ strict: bool = True,
1999
+ ) -> Tuple[bool, int, bytes]:
2000
+ ...
2001
+
2002
+ @overload
2003
+ def decode(
2004
+ self,
2005
+ types: Tuple[BoolTypeStr, DecodesToIntTypeStr, StringTypeStr],
2006
+ data: Decodable,
2007
+ strict: bool = True,
2008
+ ) -> Tuple[bool, int, str]:
2009
+ ...
2010
+
2011
+ @overload
2012
+ def decode(
2013
+ self,
2014
+ types: Tuple[BoolTypeStr, DecodesToIntTypeStr, DecodesToIntTypeStr],
2015
+ data: Decodable,
2016
+ strict: bool = True,
2017
+ ) -> Tuple[bool, int, int]:
2018
+ ...
2019
+
2020
+ @overload
2021
+ def decode(
2022
+ self,
2023
+ types: Tuple[BoolTypeStr, DecodesToIntTypeStr, BoolTypeStr],
2024
+ data: Decodable,
2025
+ strict: bool = True,
2026
+ ) -> Tuple[bool, int, bool]:
2027
+ ...
2028
+
2029
+ @overload
2030
+ def decode(
2031
+ self,
2032
+ types: Tuple[BoolTypeStr, DecodesToIntTypeStr, TypeStr],
2033
+ data: Decodable,
2034
+ strict: bool = True,
2035
+ ) -> Tuple[bool, int, Any]:
2036
+ ...
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
+
2047
+ @overload
2048
+ def decode(
2049
+ self,
2050
+ types: Tuple[BoolTypeStr, BoolTypeStr, BytesTypeStr],
2051
+ data: Decodable,
2052
+ strict: bool = True,
2053
+ ) -> Tuple[bool, bool, bytes]:
2054
+ ...
2055
+
2056
+ @overload
2057
+ def decode(
2058
+ self,
2059
+ types: Tuple[BoolTypeStr, BoolTypeStr, StringTypeStr],
2060
+ data: Decodable,
2061
+ strict: bool = True,
2062
+ ) -> Tuple[bool, bool, str]:
2063
+ ...
2064
+
2065
+ @overload
2066
+ def decode(
2067
+ self,
2068
+ types: Tuple[BoolTypeStr, BoolTypeStr, DecodesToIntTypeStr],
2069
+ data: Decodable,
2070
+ strict: bool = True,
2071
+ ) -> Tuple[bool, bool, int]:
2072
+ ...
2073
+
2074
+ @overload
2075
+ def decode(
2076
+ self,
2077
+ types: Tuple[BoolTypeStr, BoolTypeStr, BoolTypeStr],
2078
+ data: Decodable,
2079
+ strict: bool = True,
2080
+ ) -> Tuple[bool, bool, bool]:
2081
+ ...
2082
+
2083
+ @overload
2084
+ def decode(
2085
+ self,
2086
+ types: Tuple[BoolTypeStr, BoolTypeStr, TypeStr],
2087
+ data: Decodable,
2088
+ strict: bool = True,
2089
+ ) -> Tuple[bool, bool, Any]:
2090
+ ...
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
+
2101
+ @overload
2102
+ def decode(
2103
+ self,
2104
+ types: Tuple[BoolTypeStr, TypeStr, BytesTypeStr],
2105
+ data: Decodable,
2106
+ strict: bool = True,
2107
+ ) -> Tuple[bool, Any, bytes]:
2108
+ ...
2109
+
2110
+ @overload
2111
+ def decode(
2112
+ self,
2113
+ types: Tuple[BoolTypeStr, TypeStr, StringTypeStr],
2114
+ data: Decodable,
2115
+ strict: bool = True,
2116
+ ) -> Tuple[bool, Any, str]:
2117
+ ...
2118
+
2119
+ @overload
2120
+ def decode(
2121
+ self,
2122
+ types: Tuple[BoolTypeStr, TypeStr, DecodesToIntTypeStr],
2123
+ data: Decodable,
2124
+ strict: bool = True,
2125
+ ) -> Tuple[bool, Any, int]:
2126
+ ...
2127
+
2128
+ @overload
2129
+ def decode(
2130
+ self,
2131
+ types: Tuple[BoolTypeStr, TypeStr, BoolTypeStr],
2132
+ data: Decodable,
2133
+ strict: bool = True,
2134
+ ) -> Tuple[bool, Any, bool]:
2135
+ ...
2136
+
2137
+ @overload
2138
+ def decode(
2139
+ self,
2140
+ types: Tuple[BoolTypeStr, TypeStr, TypeStr],
2141
+ data: Decodable,
2142
+ strict: bool = True,
2143
+ ) -> Tuple[bool, Any, Any]:
2144
+ ...
2145
+
2146
+ # --- Fallbacks for len == 3 ---
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
+
2211
+ @overload
2212
+ def decode(
2213
+ self,
2214
+ types: Tuple[TypeStr, BytesTypeStr, BytesTypeStr],
2215
+ data: Decodable,
2216
+ strict: bool = True,
2217
+ ) -> Tuple[Any, bytes, bytes]:
2218
+ ...
2219
+
2220
+ @overload
2221
+ def decode(
2222
+ self,
2223
+ types: Tuple[TypeStr, BytesTypeStr, StringTypeStr],
2224
+ data: Decodable,
2225
+ strict: bool = True,
2226
+ ) -> Tuple[Any, bytes, str]:
2227
+ ...
2228
+
2229
+ @overload
2230
+ def decode(
2231
+ self,
2232
+ types: Tuple[TypeStr, BytesTypeStr, DecodesToIntTypeStr],
2233
+ data: Decodable,
2234
+ strict: bool = True,
2235
+ ) -> Tuple[Any, bytes, int]:
2236
+ ...
2237
+
2238
+ @overload
2239
+ def decode(
2240
+ self,
2241
+ types: Tuple[TypeStr, BytesTypeStr, BoolTypeStr],
2242
+ data: Decodable,
2243
+ strict: bool = True,
2244
+ ) -> Tuple[Any, bytes, bool]:
2245
+ ...
2246
+
2247
+ @overload
2248
+ def decode(
2249
+ self,
2250
+ types: Tuple[TypeStr, BytesTypeStr, TypeStr],
2251
+ data: Decodable,
2252
+ strict: bool = True,
2253
+ ) -> Tuple[Any, bytes, Any]:
2254
+ ...
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
+
2265
+ @overload
2266
+ def decode(
2267
+ self,
2268
+ types: Tuple[TypeStr, StringTypeStr, BytesTypeStr],
2269
+ data: Decodable,
2270
+ strict: bool = True,
2271
+ ) -> Tuple[Any, str, bytes]:
2272
+ ...
2273
+
2274
+ @overload
2275
+ def decode(
2276
+ self,
2277
+ types: Tuple[TypeStr, StringTypeStr, StringTypeStr],
2278
+ data: Decodable,
2279
+ strict: bool = True,
2280
+ ) -> Tuple[Any, str, str]:
2281
+ ...
2282
+
2283
+ @overload
2284
+ def decode(
2285
+ self,
2286
+ types: Tuple[TypeStr, StringTypeStr, DecodesToIntTypeStr],
2287
+ data: Decodable,
2288
+ strict: bool = True,
2289
+ ) -> Tuple[Any, str, int]:
2290
+ ...
2291
+
2292
+ @overload
2293
+ def decode(
2294
+ self,
2295
+ types: Tuple[TypeStr, StringTypeStr, BoolTypeStr],
2296
+ data: Decodable,
2297
+ strict: bool = True,
2298
+ ) -> Tuple[Any, str, bool]:
2299
+ ...
2300
+
2301
+ @overload
2302
+ def decode(
2303
+ self,
2304
+ types: Tuple[TypeStr, StringTypeStr, TypeStr],
2305
+ data: Decodable,
2306
+ strict: bool = True,
2307
+ ) -> Tuple[Any, str, Any]:
2308
+ ...
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
+
2319
+ @overload
2320
+ def decode(
2321
+ self,
2322
+ types: Tuple[TypeStr, DecodesToIntTypeStr, BytesTypeStr],
2323
+ data: Decodable,
2324
+ strict: bool = True,
2325
+ ) -> Tuple[Any, int, bytes]:
2326
+ ...
2327
+
2328
+ @overload
2329
+ def decode(
2330
+ self,
2331
+ types: Tuple[TypeStr, DecodesToIntTypeStr, StringTypeStr],
2332
+ data: Decodable,
2333
+ strict: bool = True,
2334
+ ) -> Tuple[Any, int, str]:
2335
+ ...
2336
+
2337
+ @overload
2338
+ def decode(
2339
+ self,
2340
+ types: Tuple[TypeStr, DecodesToIntTypeStr, DecodesToIntTypeStr],
2341
+ data: Decodable,
2342
+ strict: bool = True,
2343
+ ) -> Tuple[Any, int, int]:
2344
+ ...
2345
+
2346
+ @overload
2347
+ def decode(
2348
+ self,
2349
+ types: Tuple[TypeStr, DecodesToIntTypeStr, BoolTypeStr],
2350
+ data: Decodable,
2351
+ strict: bool = True,
2352
+ ) -> Tuple[Any, int, bool]:
2353
+ ...
2354
+
2355
+ @overload
2356
+ def decode(
2357
+ self,
2358
+ types: Tuple[TypeStr, DecodesToIntTypeStr, TypeStr],
2359
+ data: Decodable,
2360
+ strict: bool = True,
2361
+ ) -> Tuple[Any, int, Any]:
2362
+ ...
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
+
2373
+ @overload
2374
+ def decode(
2375
+ self,
2376
+ types: Tuple[TypeStr, BoolTypeStr, BytesTypeStr],
2377
+ data: Decodable,
2378
+ strict: bool = True,
2379
+ ) -> Tuple[Any, bool, bytes]:
2380
+ ...
2381
+
2382
+ @overload
2383
+ def decode(
2384
+ self,
2385
+ types: Tuple[TypeStr, BoolTypeStr, StringTypeStr],
2386
+ data: Decodable,
2387
+ strict: bool = True,
2388
+ ) -> Tuple[Any, bool, str]:
2389
+ ...
2390
+
2391
+ @overload
2392
+ def decode(
2393
+ self,
2394
+ types: Tuple[TypeStr, BoolTypeStr, DecodesToIntTypeStr],
2395
+ data: Decodable,
2396
+ strict: bool = True,
2397
+ ) -> Tuple[Any, bool, int]:
2398
+ ...
2399
+
2400
+ @overload
2401
+ def decode(
2402
+ self,
2403
+ types: Tuple[TypeStr, BoolTypeStr, BoolTypeStr],
2404
+ data: Decodable,
2405
+ strict: bool = True,
2406
+ ) -> Tuple[Any, bool, bool]:
2407
+ ...
2408
+
2409
+ @overload
2410
+ def decode(
2411
+ self,
2412
+ types: Tuple[TypeStr, BoolTypeStr, TypeStr],
2413
+ data: Decodable,
2414
+ strict: bool = True,
2415
+ ) -> Tuple[Any, bool, Any]:
2416
+ ...
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
+
2427
+ @overload
2428
+ def decode(
2429
+ self,
2430
+ types: Tuple[TypeStr, TypeStr, BytesTypeStr],
2431
+ data: Decodable,
2432
+ strict: bool = True,
2433
+ ) -> Tuple[Any, Any, bytes]:
2434
+ ...
2435
+
2436
+ @overload
2437
+ def decode(
2438
+ self,
2439
+ types: Tuple[TypeStr, TypeStr, StringTypeStr],
2440
+ data: Decodable,
2441
+ strict: bool = True,
2442
+ ) -> Tuple[Any, Any, str]:
2443
+ ...
2444
+
2445
+ @overload
2446
+ def decode(
2447
+ self,
2448
+ types: Tuple[TypeStr, TypeStr, DecodesToIntTypeStr],
2449
+ data: Decodable,
2450
+ strict: bool = True,
2451
+ ) -> Tuple[Any, Any, int]:
2452
+ ...
2453
+
2454
+ @overload
2455
+ def decode(
2456
+ self,
2457
+ types: Tuple[TypeStr, TypeStr, BoolTypeStr],
2458
+ data: Decodable,
2459
+ strict: bool = True,
2460
+ ) -> Tuple[Any, Any, bool]:
2461
+ ...
2462
+
2463
+ @overload
2464
+ def decode(
2465
+ self,
2466
+ types: Tuple[TypeStr, TypeStr, TypeStr],
2467
+ data: Decodable,
2468
+ strict: bool = True,
2469
+ ) -> Tuple[Any, Any, Any]:
2470
+ ...
2471
+
2472
+ # non-tuple types input
2473
+
2474
+ @overload
2475
+ def decode(
2476
+ self,
2477
+ types: Iterable[AddressTypeStr],
2478
+ data: Decodable,
2479
+ strict: bool = True,
2480
+ ) -> Tuple[HexAddress, ...]:
2481
+ ...
2482
+
2483
+ @overload
2484
+ def decode(
2485
+ self,
2486
+ types: Iterable[BytesTypeStr],
2487
+ data: Decodable,
2488
+ strict: bool = True,
2489
+ ) -> Tuple[bytes, ...]:
2490
+ ...
2491
+
2492
+ @overload
2493
+ def decode(
2494
+ self,
2495
+ types: Iterable[StringTypeStr],
2496
+ data: Decodable,
2497
+ strict: bool = True,
2498
+ ) -> Tuple[str, ...]:
2499
+ ...
2500
+
2501
+ @overload
2502
+ def decode(
2503
+ self,
2504
+ types: Iterable[DecodesToIntTypeStr],
2505
+ data: Decodable,
2506
+ strict: bool = True,
2507
+ ) -> Tuple[int, ...]:
2508
+ ...
2509
+
2510
+ @overload
2511
+ def decode(
2512
+ self,
2513
+ types: Iterable[BoolTypeStr],
2514
+ data: Decodable,
2515
+ strict: bool = True,
2516
+ ) -> Tuple[bool, ...]:
2517
+ ...
2518
+
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
+
2557
+ @overload
2558
+ def decode(
2559
+ self,
2560
+ types: Iterable[Union[BytesTypeStr, StringTypeStr]],
2561
+ data: Decodable,
2562
+ strict: bool = True,
2563
+ ) -> Tuple[Union[bytes, str], ...]:
2564
+ ...
2565
+
2566
+ @overload
2567
+ def decode(
2568
+ self,
2569
+ types: Iterable[Union[BytesTypeStr, DecodesToIntTypeStr]],
2570
+ data: Decodable,
2571
+ strict: bool = True,
2572
+ ) -> Tuple[Union[bytes, int], ...]:
2573
+ ...
2574
+
2575
+ @overload
2576
+ def decode(
2577
+ self,
2578
+ types: Iterable[Union[BytesTypeStr, BoolTypeStr]],
2579
+ data: Decodable,
2580
+ strict: bool = True,
2581
+ ) -> Tuple[Union[bytes, bool], ...]:
2582
+ ...
2583
+
2584
+ @overload
2585
+ def decode(
2586
+ self,
2587
+ types: Iterable[Union[StringTypeStr, DecodesToIntTypeStr]],
2588
+ data: Decodable,
2589
+ strict: bool = True,
2590
+ ) -> Tuple[Union[str, int], ...]:
2591
+ ...
2592
+
2593
+ @overload
2594
+ def decode(
2595
+ self,
2596
+ types: Iterable[Union[StringTypeStr, BoolTypeStr]],
2597
+ data: Decodable,
2598
+ strict: bool = True,
2599
+ ) -> Tuple[Union[str, bool], ...]:
2600
+ ...
2601
+
2602
+ @overload
2603
+ def decode(
2604
+ self,
2605
+ types: Iterable[Union[DecodesToIntTypeStr, BoolTypeStr]],
2606
+ data: Decodable,
2607
+ strict: bool = True,
2608
+ ) -> Tuple[Union[int, bool], ...]:
2609
+ ...
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
+
2665
+ @overload
2666
+ def decode(
2667
+ self,
2668
+ types: Iterable[Union[BytesTypeStr, StringTypeStr, DecodesToIntTypeStr]],
2669
+ data: Decodable,
2670
+ strict: bool = True,
2671
+ ) -> Tuple[Union[bytes, str, int], ...]:
2672
+ ...
2673
+
2674
+ @overload
2675
+ def decode(
2676
+ self,
2677
+ types: Iterable[Union[BytesTypeStr, StringTypeStr, BoolTypeStr]],
2678
+ data: Decodable,
2679
+ strict: bool = True,
2680
+ ) -> Tuple[Union[bytes, str, bool], ...]:
2681
+ ...
2682
+
2683
+ @overload
2684
+ def decode(
2685
+ self,
2686
+ types: Iterable[Union[BytesTypeStr, DecodesToIntTypeStr, BoolTypeStr]],
2687
+ data: Decodable,
2688
+ strict: bool = True,
2689
+ ) -> Tuple[Union[bytes, int, bool], ...]:
2690
+ ...
2691
+
2692
+ @overload
2693
+ def decode(
2694
+ self,
2695
+ types: Iterable[Union[StringTypeStr, DecodesToIntTypeStr, BoolTypeStr]],
2696
+ data: Decodable,
2697
+ strict: bool = True,
2698
+ ) -> Tuple[Union[str, int, bool], ...]:
2699
+ ...
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
+
2745
+ @overload
2746
+ def decode(
2747
+ self,
2748
+ types: Iterable[
2749
+ Union[BytesTypeStr, StringTypeStr, DecodesToIntTypeStr, BoolTypeStr]
2750
+ ],
2751
+ data: Decodable,
2752
+ strict: bool = True,
2753
+ ) -> Tuple[Union[bytes, str, int, bool], ...]:
2754
+ ...
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
+
2782
+ def decode(
2783
+ self,
2784
+ types: Iterable[TypeStr],
2785
+ data: Decodable,
2786
+ strict: bool = True,
2787
+ ) -> Tuple[Any, ...]:
2788
+ """
2789
+ Decodes the binary value ``data`` as a sequence of values of the ABI types
2790
+ in ``types`` via the head-tail mechanism into a tuple of equivalent python
2791
+ values.
2792
+
2793
+ :param types: A list or tuple of string representations of the ABI types that
2794
+ will be used for decoding e.g. ``('uint256', 'bytes[]', '(int,int)')``
2795
+ :param data: The binary value to be decoded.
2796
+ :param strict: If ``False``, dynamic-type decoders will ignore validations such
2797
+ as making sure the data is padded to a multiple of 32 bytes or checking that
2798
+ padding bytes are zero / empty. ``False`` is how the Solidity ABI decoder
2799
+ currently works. However, ``True`` is the default for the faster-eth-abi
2800
+ library.
2801
+
2802
+ :returns: A tuple of equivalent python values for the ABI values
2803
+ represented in ``data``.
2804
+ """
2805
+ return decode_c(self, types, data, strict)
2806
+
2807
+
2808
+ class ABICodec(ABIEncoder, ABIDecoder):
2809
+ pass