@@ -146,22 +146,23 @@ def encode_internal_node(node: Optional[InternalNode]) -> Extended:
146
146
which is encoded to `b""`.
147
147
"""
148
148
unencoded : Extended
149
- if node is None :
150
- unencoded = b""
151
- elif isinstance (node , LeafNode ):
152
- unencoded = (
153
- nibble_list_to_compact (node .rest_of_key , True ),
154
- node .value ,
155
- )
156
- elif isinstance (node , ExtensionNode ):
157
- unencoded = (
158
- nibble_list_to_compact (node .key_segment , False ),
159
- node .subnode ,
160
- )
161
- elif isinstance (node , BranchNode ):
162
- unencoded = list (node .subnodes ) + [node .value ]
163
- else :
164
- raise AssertionError (f"Invalid internal node type { type (node )} !" )
149
+ match node :
150
+ case None :
151
+ unencoded = b""
152
+ case LeafNode ():
153
+ unencoded = (
154
+ nibble_list_to_compact (node .rest_of_key , True ),
155
+ node .value ,
156
+ )
157
+ case ExtensionNode ():
158
+ unencoded = (
159
+ nibble_list_to_compact (node .key_segment , False ),
160
+ node .subnode ,
161
+ )
162
+ case BranchNode ():
163
+ unencoded = list (node .subnodes ) + [node .value ]
164
+ case _:
165
+ raise AssertionError (f"Invalid internal node type { type (node )} !" )
165
166
166
167
encoded = rlp .encode (unencoded )
167
168
if len (encoded ) < 32 :
@@ -176,15 +177,16 @@ def encode_node(node: Node, storage_root: Optional[Bytes] = None) -> Bytes:
176
177
177
178
Currently mostly an unimplemented stub.
178
179
"""
179
- if isinstance (node , FrontierAccount ):
180
- assert storage_root is not None
181
- return encode_account (node , storage_root )
182
- elif isinstance (node , U256 ):
183
- return rlp .encode (node )
184
- elif isinstance (node , Bytes ):
185
- return node
186
- else :
187
- raise AssertionError (f"encoding for { type (node )} is not currently implemented" )
180
+ match node :
181
+ case FrontierAccount ():
182
+ assert storage_root is not None
183
+ return encode_account (node , storage_root )
184
+ case U256 ():
185
+ return rlp .encode (node )
186
+ case Bytes ():
187
+ return node
188
+ case _:
189
+ raise AssertionError (f"encoding for { type (node )} is not currently implemented" )
188
190
189
191
190
192
@dataclass (slots = True )
0 commit comments