faster-eth-abi 5.2.1__cp313-cp313-macosx_11_0_arm64.whl → 5.2.20__cp313-cp313-macosx_11_0_arm64.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 (43) hide show
  1. faster_eth_abi/_codec.cpython-313-darwin.so +0 -0
  2. faster_eth_abi/_codec.py +83 -0
  3. faster_eth_abi/_decoding.cpython-313-darwin.so +0 -0
  4. faster_eth_abi/_decoding.py +299 -0
  5. faster_eth_abi/_encoding.cpython-313-darwin.so +0 -0
  6. faster_eth_abi/_encoding.py +251 -0
  7. faster_eth_abi/_grammar.cpython-313-darwin.so +0 -0
  8. faster_eth_abi/_grammar.py +375 -0
  9. faster_eth_abi/abi.cpython-313-darwin.so +0 -0
  10. faster_eth_abi/base.py +5 -1
  11. faster_eth_abi/codec.py +2694 -52
  12. faster_eth_abi/constants.cpython-313-darwin.so +0 -0
  13. faster_eth_abi/decoding.py +263 -242
  14. faster_eth_abi/encoding.py +201 -154
  15. faster_eth_abi/exceptions.py +26 -14
  16. faster_eth_abi/from_type_str.cpython-313-darwin.so +0 -0
  17. faster_eth_abi/from_type_str.py +7 -1
  18. faster_eth_abi/grammar.py +30 -325
  19. faster_eth_abi/io.py +5 -1
  20. faster_eth_abi/packed.cpython-313-darwin.so +0 -0
  21. faster_eth_abi/packed.py +4 -0
  22. faster_eth_abi/registry.py +201 -83
  23. faster_eth_abi/tools/__init__.cpython-313-darwin.so +0 -0
  24. faster_eth_abi/tools/_strategies.cpython-313-darwin.so +0 -0
  25. faster_eth_abi/tools/_strategies.py +12 -6
  26. faster_eth_abi/typing.py +4627 -0
  27. faster_eth_abi/utils/__init__.cpython-313-darwin.so +0 -0
  28. faster_eth_abi/utils/numeric.cpython-313-darwin.so +0 -0
  29. faster_eth_abi/utils/numeric.py +51 -20
  30. faster_eth_abi/utils/padding.cpython-313-darwin.so +0 -0
  31. faster_eth_abi/utils/string.cpython-313-darwin.so +0 -0
  32. faster_eth_abi/utils/validation.cpython-313-darwin.so +0 -0
  33. faster_eth_abi/utils/validation.py +1 -5
  34. faster_eth_abi-5.2.20.dist-info/METADATA +136 -0
  35. faster_eth_abi-5.2.20.dist-info/RECORD +46 -0
  36. faster_eth_abi-5.2.20.dist-info/top_level.txt +2 -0
  37. faster_eth_abi__mypyc.cpython-313-darwin.so +0 -0
  38. a1f8aa123fabc88e2b56__mypyc.cpython-313-darwin.so +0 -0
  39. faster_eth_abi-5.2.1.dist-info/METADATA +0 -95
  40. faster_eth_abi-5.2.1.dist-info/RECORD +0 -38
  41. faster_eth_abi-5.2.1.dist-info/licenses/LICENSE +0 -21
  42. faster_eth_abi-5.2.1.dist-info/top_level.txt +0 -3
  43. {faster_eth_abi-5.2.1.dist-info → faster_eth_abi-5.2.20.dist-info}/WHEEL +0 -0
faster_eth_abi/codec.py CHANGED
@@ -1,33 +1,52 @@
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
+
1
9
  from typing import (
2
10
  Any,
3
11
  Iterable,
4
12
  Tuple,
5
- cast,
13
+ Union,
14
+ overload,
6
15
  )
7
16
 
17
+ from eth_typing import (
18
+ HexAddress,
19
+ )
8
20
  from eth_typing.abi import (
9
21
  Decodable,
10
22
  TypeStr,
11
23
  )
12
24
 
25
+ from faster_eth_abi._codec import (
26
+ decode_c,
27
+ encode_c,
28
+ )
13
29
  from faster_eth_abi.decoding import (
14
30
  ContextFramesBytesIO,
15
- TupleDecoder,
16
- )
17
- from faster_eth_abi.encoding import (
18
- TupleEncoder,
19
31
  )
20
32
  from faster_eth_abi.exceptions import (
21
33
  EncodingError,
34
+ MultipleEntriesFound,
22
35
  )
23
36
  from faster_eth_abi.registry import (
24
37
  ABIRegistry,
25
38
  )
26
- from faster_eth_abi.utils.validation import (
27
- validate_bytes_param,
28
- validate_list_like_param,
39
+ from faster_eth_abi.typing import (
40
+ AddressTypeStr,
41
+ BoolTypeStr,
42
+ BytesTypeStr,
43
+ IntTypeStr,
44
+ StringTypeStr,
45
+ UintTypeStr,
29
46
  )
30
47
 
48
+ DecodesToIntTypeStr = Union[UintTypeStr, IntTypeStr]
49
+
31
50
 
32
51
  class BaseABICoder:
33
52
  """
@@ -64,15 +83,7 @@ class ABIEncoder(BaseABICoder):
64
83
  :returns: The head-tail encoded binary representation of the python
65
84
  values in ``args`` as values of the ABI types in ``types``.
66
85
  """
67
- # validate encode types and args
68
- validate_list_like_param(types, "types")
69
- validate_list_like_param(args, "args")
70
-
71
- encoders = tuple(self._registry.get_encoder(type_str) for type_str in types)
72
-
73
- encoder = TupleEncoder(encoders=encoders)
74
-
75
- return encoder(args)
86
+ return encode_c(self, types, args)
76
87
 
77
88
  def is_encodable(self, typ: TypeStr, arg: Any) -> bool:
78
89
  """
@@ -87,20 +98,18 @@ class ABIEncoder(BaseABICoder):
87
98
  :returns: ``True`` if ``arg`` is encodable as a value of the ABI type
88
99
  ``typ``. Otherwise, ``False``.
89
100
  """
90
- if not self.is_encodable_type(typ):
101
+ try:
102
+ encoder = self._registry.get_encoder(typ)
103
+ except MultipleEntriesFound:
104
+ raise
105
+ except Exception:
91
106
  return False
92
107
 
93
- encoder = self._registry.get_encoder(typ)
94
-
108
+ validate = getattr(encoder, "validate_value", encoder)
95
109
  try:
96
- encoder.validate_value(arg)
110
+ validate(arg)
97
111
  except EncodingError:
98
112
  return False
99
- except AttributeError:
100
- try:
101
- encoder(arg)
102
- except EncodingError:
103
- return False
104
113
 
105
114
  return True
106
115
 
@@ -126,41 +135,2674 @@ class ABIDecoder(BaseABICoder):
126
135
 
127
136
  stream_class = ContextFramesBytesIO
128
137
 
138
+ # raw tuple types, same type
139
+
140
+ # len == 1
141
+
142
+ @overload
129
143
  def decode(
130
144
  self,
131
- types: Iterable[TypeStr],
145
+ types: Tuple[AddressTypeStr],
132
146
  data: Decodable,
133
147
  strict: bool = True,
134
- ) -> Tuple[Any, ...]:
135
- """
136
- Decodes the binary value ``data`` as a sequence of values of the ABI types
137
- in ``types`` via the head-tail mechanism into a tuple of equivalent python
138
- values.
148
+ ) -> Tuple[HexAddress]:
149
+ ...
139
150
 
140
- :param types: A list or tuple of string representations of the ABI types that
141
- will be used for decoding e.g. ``('uint256', 'bytes[]', '(int,int)')``
142
- :param data: The binary value to be decoded.
143
- :param strict: If ``False``, dynamic-type decoders will ignore validations such
144
- as making sure the data is padded to a multiple of 32 bytes or checking that
145
- padding bytes are zero / empty. ``False`` is how the Solidity ABI decoder
146
- currently works. However, ``True`` is the default for the faster-eth-abi
147
- library.
151
+ @overload
152
+ def decode(
153
+ self,
154
+ types: Tuple[BytesTypeStr],
155
+ data: Decodable,
156
+ strict: bool = True,
157
+ ) -> Tuple[bytes]:
158
+ ...
148
159
 
149
- :returns: A tuple of equivalent python values for the ABI values
150
- represented in ``data``.
151
- """
152
- # validate decode types and data
153
- validate_list_like_param(types, "types")
154
- validate_bytes_param(data, "data")
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
+ ...
155
503
 
156
- decoders = tuple(
157
- self._registry.get_decoder(type_str, strict=strict) for type_str in types
158
- )
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
+ ...
159
552
 
160
- decoder = TupleDecoder(decoders=decoders)
161
- stream = self.stream_class(data)
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
+ ...
162
561
 
163
- return cast(Tuple[Any, ...], decoder(stream))
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)
164
2806
 
165
2807
 
166
2808
  class ABICodec(ABIEncoder, ABIDecoder):