@@ -31,6 +31,25 @@ class AccessList(object):
31
31
storage_keys : Optional [list [str ]]
32
32
33
33
34
+ class Authorization (object ):
35
+ """Evm authorization object
36
+
37
+ See ethereum rpc spec for the meaning of fields
38
+ """
39
+ # uint256
40
+ chain_id : Optional [str ]
41
+ # 20-byte hex
42
+ address : Optional [str ]
43
+ # uint64
44
+ nonce : Optional [int ]
45
+ # 0 | 1
46
+ y_parity : Optional [int ]
47
+ # 32-byte hex
48
+ r : Optional [str ]
49
+ # 32-byte hex
50
+ s : Optional [str ]
51
+
52
+
34
53
class Transaction (object ):
35
54
block_hash : Optional [str ]
36
55
block_number : Optional [int ]
@@ -51,6 +70,7 @@ class Transaction(object):
51
70
max_fee_per_gas : Optional [str ]
52
71
chain_id : Optional [int ]
53
72
access_list : Optional [list [AccessList ]]
73
+ authorization_list : Optional [list [Authorization ]]
54
74
max_fee_per_blob_gas : Optional [str ]
55
75
blob_versioned_hashes : Optional [list [str ]]
56
76
cumulative_gas_used : Optional [str ]
@@ -369,6 +389,9 @@ class TransactionField(StrEnum):
369
389
# and `accessed_storage_keys` global sets (introduced in EIP-2929).
370
390
# A gas cost is charged, though at a discount relative to the cost of accessing outside the list.
371
391
ACCESS_LIST = "access_list"
392
+ # The authorization list specifies a list of addresses and their associated authorization data
393
+ # for EIP-3074 transactions.
394
+ AUTHORIZATION_LIST = "authorization_list"
372
395
# Max fee per data gas aka BlobFeeCap or blobGasFeeCap
373
396
MAX_FEE_PER_BLOB_GAS = "max_fee_per_blob_gas"
374
397
# It contains a list of fixed size hash(32 bytes)
@@ -518,6 +541,15 @@ class LogSelection:
518
541
topics : Optional [list [list [str ]]] = None
519
542
520
543
544
+ @dataclass
545
+ class AuthorizationSelection :
546
+ """Selection criteria for authorization list filtering."""
547
+ # List of chain ids to match in the transaction authorizationList
548
+ chain_id : Optional [list [int ]] = None
549
+ # List of addresses to match in the transaction authorizationList
550
+ address : Optional [list [str ]] = None
551
+
552
+
521
553
@dataclass
522
554
class TransactionSelection :
523
555
# Address the transaction should originate from. If transaction.from matches any of these, the transaction
@@ -539,6 +571,8 @@ class TransactionSelection:
539
571
# If transaction.hash matches any of these values the transaction will be returned.
540
572
# empty means match all.
541
573
hash : Optional [list [str ]] = None
574
+ # If transaction.authorization_list matches any of these values, the transaction will be returned.
575
+ authorization_list : Optional [list [AuthorizationSelection ]] = None
542
576
543
577
544
578
@dataclass
0 commit comments