From 700e660337c7b67fd28e2d29cac6f1b87cca77c2 Mon Sep 17 00:00:00 2001 From: Roman Krasiuk Date: Mon, 29 Jul 2024 13:32:51 -0700 Subject: [PATCH] fix(tree): hashed state aggregation (#9874) --- crates/chain-state/src/memory_overlay.rs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/crates/chain-state/src/memory_overlay.rs b/crates/chain-state/src/memory_overlay.rs index 52ec8cc18a..87e6cef466 100644 --- a/crates/chain-state/src/memory_overlay.rs +++ b/crates/chain-state/src/memory_overlay.rs @@ -20,9 +20,15 @@ pub struct MemoryOverlayStateProvider { impl MemoryOverlayStateProvider { /// Create new memory overlay state provider. + /// + /// ## Arguments + /// + /// - `in_memory` - the collection of executed ancestor blocks in reverse. + /// - `historical` - a historical state provider for the latest ancestor block stored in the + /// database. pub fn new(in_memory: Vec, historical: Box) -> Self { let mut hashed_post_state = HashedPostState::default(); - for block in &in_memory { + for block in in_memory.iter().rev() { hashed_post_state.extend(block.hashed_state.as_ref().clone()); } Self { in_memory, hashed_post_state, historical }