3333from ..blocks import Log
3434from ..fork_types import Address
3535from ..state import (
36- account_exists_and_is_empty ,
3736 account_has_code_or_nonce ,
3837 account_has_storage ,
3938 begin_transaction ,
4443 move_ether ,
4544 rollback_transaction ,
4645 set_code ,
47- touch_account ,
4846)
4947from ..vm import Message
5048from ..vm .gas import GAS_CODE_DEPOSIT , charge_gas
@@ -77,15 +75,13 @@ class MessageCallOutput:
7775 2. `refund_counter`: gas to refund after execution.
7876 3. `logs`: list of `Log` generated during execution.
7977 4. `accounts_to_delete`: Contracts which have self-destructed.
80- 5. `touched_accounts`: Accounts that have been touched.
81- 6. `error`: The error from the execution if any.
78+ 5. `error`: The error from the execution if any.
8279 """
8380
8481 gas_left : Uint
8582 refund_counter : U256
8683 logs : Tuple [Log , ...]
8784 accounts_to_delete : Set [Address ]
88- touched_accounts : Set [Address ]
8985 error : Optional [EthereumException ]
9086
9187
@@ -112,25 +108,19 @@ def process_message_call(message: Message) -> MessageCallOutput:
112108 ) or account_has_storage (block_env .state , message .current_target )
113109 if is_collision :
114110 return MessageCallOutput (
115- Uint (0 ), U256 (0 ), tuple (), set (), set (), AddressCollision ()
111+ Uint (0 ), U256 (0 ), tuple (), set (), AddressCollision ()
116112 )
117113 else :
118114 evm = process_create_message (message )
119115 else :
120116 evm = process_message (message )
121- if account_exists_and_is_empty (
122- block_env .state , Address (message .target )
123- ):
124- evm .touched_accounts .add (Address (message .target ))
125117
126118 if evm .error :
127119 logs : Tuple [Log , ...] = ()
128120 accounts_to_delete = set ()
129- touched_accounts = set ()
130121 else :
131122 logs = evm .logs
132123 accounts_to_delete = evm .accounts_to_delete
133- touched_accounts = evm .touched_accounts
134124 refund_counter += U256 (evm .refund_counter )
135125
136126 tx_end = TransactionEnd (
@@ -143,7 +133,6 @@ def process_message_call(message: Message) -> MessageCallOutput:
143133 refund_counter = refund_counter ,
144134 logs = logs ,
145135 accounts_to_delete = accounts_to_delete ,
146- touched_accounts = touched_accounts ,
147136 error = evm .error ,
148137 )
149138
@@ -232,8 +221,6 @@ def process_message(message: Message) -> Evm:
232221 # take snapshot of state before processing the message
233222 begin_transaction (state , transient_storage )
234223
235- touch_account (state , message .current_target )
236-
237224 if message .should_transfer_value and message .value != 0 :
238225 move_ether (
239226 state , message .caller , message .current_target , message .value
@@ -281,7 +268,6 @@ def execute_code(message: Message) -> Evm:
281268 message = message ,
282269 output = b"" ,
283270 accounts_to_delete = set (),
284- touched_accounts = set (),
285271 return_data = b"" ,
286272 error = None ,
287273 accessed_addresses = message .accessed_addresses ,
0 commit comments