From 1e52ef948669fdadfb0d4ac2dc6d421efb5da5f9 Mon Sep 17 00:00:00 2001 From: Roman Krasiuk Date: Wed, 21 Aug 2024 02:37:02 -0700 Subject: [PATCH] fix(trie): skip cleared storage database lookup on `InMemoryStorageTrieCursor::next` (#10412) --- crates/trie/trie/src/trie_cursor/in_memory.rs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/crates/trie/trie/src/trie_cursor/in_memory.rs b/crates/trie/trie/src/trie_cursor/in_memory.rs index 7b5b1642ac..4159606c49 100644 --- a/crates/trie/trie/src/trie_cursor/in_memory.rs +++ b/crates/trie/trie/src/trie_cursor/in_memory.rs @@ -221,6 +221,9 @@ impl<'a, C: TrieCursor> InMemoryStorageTrieCursor<'a, C> { last: Nibbles, ) -> Result, DatabaseError> { let in_memory = self.in_memory_cursor.as_mut().and_then(|c| c.first_after(&last)); + if self.storage_trie_cleared { + return Ok(in_memory) + } // Reposition the cursor to the first greater or equal node that wasn't removed. let mut db_entry = self.cursor.seek(last.clone())?;