From d73000ceebc30c790e955bbafbe88b020857c003 Mon Sep 17 00:00:00 2001 From: Rami Khalil Date: Thu, 5 Sep 2024 11:04:09 +0300 Subject: [PATCH 1/3] ignore intellij --- .gitignore | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.gitignore b/.gitignore index 67dad994c1..319332229a 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,6 @@ target/ # Environment Variables .env + +# IntelliJ IDE +.idea \ No newline at end of file From d531200351dbeb77c114b90041d345b588ce7991 Mon Sep 17 00:00:00 2001 From: Rami Khalil Date: Thu, 5 Sep 2024 11:11:24 +0300 Subject: [PATCH 2/3] support empty nodes --- crates/mpt/src/list_walker.rs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/crates/mpt/src/list_walker.rs b/crates/mpt/src/list_walker.rs index f98c82af4c..003a0eb975 100644 --- a/crates/mpt/src/list_walker.rs +++ b/crates/mpt/src/list_walker.rs @@ -117,6 +117,9 @@ where node => Ok(Self::fetch_leaves(node, fetcher)?), } } + TrieNode::Empty => { + Ok(Default::default()) + } _ => anyhow::bail!("Invalid trie node type encountered"), } } From bdda1d63fda9e96cf30835056d89078dc28a9845 Mon Sep 17 00:00:00 2001 From: Rami Khalil Date: Thu, 5 Sep 2024 12:25:35 +0300 Subject: [PATCH 3/3] test walker --- crates/mpt/src/list_walker.rs | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/crates/mpt/src/list_walker.rs b/crates/mpt/src/list_walker.rs index 003a0eb975..4da171d48c 100644 --- a/crates/mpt/src/list_walker.rs +++ b/crates/mpt/src/list_walker.rs @@ -159,6 +159,7 @@ where mod test { use super::*; use crate::{ + NoopTrieDBFetcher, ordered_trie_with_encoder, test_util::{ get_live_derivable_receipts_list, get_live_derivable_transactions_list, @@ -224,4 +225,13 @@ mod test { VALUES ); } + + #[test] + fn test_empty_list_walker() { + assert!( + OrderedListWalker::fetch_leaves(&TrieNode::Empty, &NoopTrieDBFetcher) + .expect("Failed to traverse empty trie") + .is_empty() + ); + } }