19
19
from dataclasses import dataclass , field
20
20
from typing import Callable , Dict , Iterable , List , Optional , Set , Tuple
21
21
22
- from ethereum_types .bytes import Bytes
22
+ from ethereum_types .bytes import Bytes , Bytes32
23
23
from ethereum_types .frozen import modify
24
24
from ethereum_types .numeric import U256 , Uint
25
25
@@ -37,12 +37,13 @@ class State:
37
37
_main_trie : Trie [Address , Optional [Account ]] = field (
38
38
default_factory = lambda : Trie (secured = True , default = None )
39
39
)
40
- _storage_tries : Dict [Address , Trie [Bytes , U256 ]] = field (
40
+ _storage_tries : Dict [Address , Trie [Bytes32 , U256 ]] = field (
41
41
default_factory = dict
42
42
)
43
43
_snapshots : List [
44
44
Tuple [
45
- Trie [Address , Optional [Account ]], Dict [Address , Trie [Bytes , U256 ]]
45
+ Trie [Address , Optional [Account ]],
46
+ Dict [Address , Trie [Bytes32 , U256 ]],
46
47
]
47
48
] = field (default_factory = list )
48
49
created_accounts : Set [Address ] = field (default_factory = set )
@@ -55,8 +56,8 @@ class TransientStorage:
55
56
within a transaction.
56
57
"""
57
58
58
- _tries : Dict [Address , Trie [Bytes , U256 ]] = field (default_factory = dict )
59
- _snapshots : List [Dict [Address , Trie [Bytes , U256 ]]] = field (
59
+ _tries : Dict [Address , Trie [Bytes32 , U256 ]] = field (default_factory = dict )
60
+ _snapshots : List [Dict [Address , Trie [Bytes32 , U256 ]]] = field (
60
61
default_factory = list
61
62
)
62
63
@@ -261,7 +262,7 @@ def mark_account_created(state: State, address: Address) -> None:
261
262
state .created_accounts .add (address )
262
263
263
264
264
- def get_storage (state : State , address : Address , key : Bytes ) -> U256 :
265
+ def get_storage (state : State , address : Address , key : Bytes32 ) -> U256 :
265
266
"""
266
267
Get a value at a storage key on an account. Returns `U256(0)` if the
267
268
storage key has not been set previously.
@@ -291,7 +292,7 @@ def get_storage(state: State, address: Address, key: Bytes) -> U256:
291
292
292
293
293
294
def set_storage (
294
- state : State , address : Address , key : Bytes , value : U256
295
+ state : State , address : Address , key : Bytes32 , value : U256
295
296
) -> None :
296
297
"""
297
298
Set a value at a storage key on an account. Setting to `U256(0)` deletes
@@ -626,7 +627,7 @@ def write_code(sender: Account) -> None:
626
627
modify_state (state , address , write_code )
627
628
628
629
629
- def get_storage_original (state : State , address : Address , key : Bytes ) -> U256 :
630
+ def get_storage_original (state : State , address : Address , key : Bytes32 ) -> U256 :
630
631
"""
631
632
Get the original value in a storage slot i.e. the value before the current
632
633
transaction began. This function reads the value from the snapshots taken
@@ -660,7 +661,7 @@ def get_storage_original(state: State, address: Address, key: Bytes) -> U256:
660
661
661
662
662
663
def get_transient_storage (
663
- transient_storage : TransientStorage , address : Address , key : Bytes
664
+ transient_storage : TransientStorage , address : Address , key : Bytes32
664
665
) -> U256 :
665
666
"""
666
667
Get a value at a storage key on an account from transient storage.
@@ -691,7 +692,7 @@ def get_transient_storage(
691
692
def set_transient_storage (
692
693
transient_storage : TransientStorage ,
693
694
address : Address ,
694
- key : Bytes ,
695
+ key : Bytes32 ,
695
696
value : U256 ,
696
697
) -> None :
697
698
"""
0 commit comments