From 923fdb98e69e0932a0d6dbf6f1826a7e5af58600 Mon Sep 17 00:00:00 2001 From: Roman Krasiuk Date: Wed, 21 Aug 2024 09:07:32 +0200 Subject: [PATCH] fix(trie): skip cleared storage database lookup on `InMemoryStorageTrieCursor::next` --- 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 fa93d300d7d2..a1ec822f57be 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())?;