From 29d84e4cef13df85d70ca4a253d9b362f5999267 Mon Sep 17 00:00:00 2001 From: Roman Krasiuk Date: Thu, 28 Nov 2024 17:53:16 +0100 Subject: [PATCH] fix(tree): account info on state update in root task (#12978) --- crates/engine/tree/src/tree/root.rs | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/crates/engine/tree/src/tree/root.rs b/crates/engine/tree/src/tree/root.rs index 2638f9dead..254cec6c7e 100644 --- a/crates/engine/tree/src/tree/root.rs +++ b/crates/engine/tree/src/tree/root.rs @@ -226,20 +226,19 @@ where let hashed_address = keccak256(address); let destroyed = account.is_selfdestructed(); - hashed_state_update.accounts.insert( - hashed_address, - if destroyed || account.is_empty() { None } else { Some(account.info.into()) }, - ); + let info = if account.is_empty() { None } else { Some(account.info.into()) }; + hashed_state_update.accounts.insert(hashed_address, info); if destroyed || !account.storage.is_empty() { - let storage = account.storage.into_iter().filter_map(|(slot, value)| { - value - .is_changed() - .then(|| (keccak256(B256::from(slot)), value.present_value)) - }); - hashed_state_update - .storages - .insert(hashed_address, HashedStorage::from_iter(destroyed, storage)); + let storage = HashedStorage::from_iter( + destroyed, + account.storage.into_iter().filter_map(|(slot, value)| { + value + .is_changed() + .then(|| (keccak256(B256::from(slot)), value.present_value)) + }), + ); + hashed_state_update.storages.insert(hashed_address, storage); } } }