26
26
Sequence ,
27
27
TypeVar ,
28
28
Union ,
29
- cast ,
30
29
)
31
30
32
31
from ethereum .cancun import trie as previous_trie
@@ -81,7 +80,7 @@ class LeafNode:
81
80
"""Leaf node in the Merkle Trie"""
82
81
83
82
rest_of_key : Bytes
84
- value : rlp .RLP
83
+ value : rlp .Extended
85
84
86
85
87
86
@slotted_freezable
@@ -90,22 +89,22 @@ class ExtensionNode:
90
89
"""Extension node in the Merkle Trie"""
91
90
92
91
key_segment : Bytes
93
- subnode : rlp .RLP
92
+ subnode : rlp .Extended
94
93
95
94
96
95
@slotted_freezable
97
96
@dataclass
98
97
class BranchNode :
99
98
"""Branch node in the Merkle Trie"""
100
99
101
- subnodes : List [rlp .RLP ]
102
- value : rlp .RLP
100
+ subnodes : List [rlp .Extended ]
101
+ value : rlp .Extended
103
102
104
103
105
104
InternalNode = Union [LeafNode , ExtensionNode , BranchNode ]
106
105
107
106
108
- def encode_internal_node (node : Optional [InternalNode ]) -> rlp .RLP :
107
+ def encode_internal_node (node : Optional [InternalNode ]) -> rlp .Extended :
109
108
"""
110
109
Encodes a Merkle Trie node into its RLP form. The RLP will then be
111
110
serialized into a `Bytes` and hashed unless it is less that 32 bytes
@@ -121,10 +120,10 @@ def encode_internal_node(node: Optional[InternalNode]) -> rlp.RLP:
121
120
122
121
Returns
123
122
-------
124
- encoded : `rlp.RLP `
123
+ encoded : `rlp.Extended `
125
124
The node encoded as RLP.
126
125
"""
127
- unencoded : rlp .RLP
126
+ unencoded : rlp .Extended
128
127
if node is None :
129
128
unencoded = b""
130
129
elif isinstance (node , LeafNode ):
@@ -159,7 +158,7 @@ def encode_node(node: Node, storage_root: Optional[Bytes] = None) -> Bytes:
159
158
assert storage_root is not None
160
159
return encode_account (node , storage_root )
161
160
elif isinstance (node , (LegacyTransaction , Receipt , Withdrawal , U256 )):
162
- return rlp .encode (cast ( rlp . RLP , node ) )
161
+ return rlp .encode (node )
163
162
elif isinstance (node , Bytes ):
164
163
return node
165
164
else :
0 commit comments