From 97e78116cd1b7346d80bce26a41749ac89560c54 Mon Sep 17 00:00:00 2001 From: Emilia Hane Date: Tue, 20 Jan 2026 13:15:29 +0100 Subject: [PATCH 1/4] Reverts redundant visibility and doc diff with stable branch --- crates/trie/common/src/updates.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/crates/trie/common/src/updates.rs b/crates/trie/common/src/updates.rs index b9a64424b1c..17f0d02b5ef 100644 --- a/crates/trie/common/src/updates.rs +++ b/crates/trie/common/src/updates.rs @@ -550,9 +550,9 @@ pub struct TrieUpdatesSortedRef<'a> { pub struct TrieUpdatesSorted { /// Sorted collection of updated state nodes with corresponding paths. None indicates that a /// node was removed. - pub account_nodes: Vec<(Nibbles, Option)>, - /// Map of hashed addresses to their storage tries stored by path. - pub storage_tries: B256Map, + account_nodes: Vec<(Nibbles, Option)>, + /// Storage tries stored by hashed address of the account the trie belongs to. + storage_tries: B256Map, } impl TrieUpdatesSorted { From 7b560bdf7ae9ca8d574506ffd37e11760d938511 Mon Sep 17 00:00:00 2001 From: Emilia Hane Date: Tue, 20 Jan 2026 17:04:08 +0100 Subject: [PATCH 2/4] Use getters instead of direct field access --- crates/optimism/trie/src/db/store.rs | 10 +++++----- crates/optimism/trie/src/in_memory.rs | 4 ++-- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/crates/optimism/trie/src/db/store.rs b/crates/optimism/trie/src/db/store.rs index 3411ba07cf1..70fc6e4d917 100644 --- a/crates/optimism/trie/src/db/store.rs +++ b/crates/optimism/trie/src/db/store.rs @@ -327,13 +327,13 @@ impl MdbxProofsStorage { ) -> OpProofsStorageResult { let BlockStateDiff { sorted_trie_updates, sorted_post_state } = block_state_diff; - let storage_trie_len = sorted_trie_updates.storage_tries.len(); + let storage_trie_len = sorted_trie_updates.storage_tries_ref().len(); let hashed_storage_len = sorted_post_state.storages.len(); let account_trie_keys = self.persist_history_batch( tx, block_number, - sorted_trie_updates.account_nodes.into_iter(), + sorted_trie_updates.account_nodes_ref(), append_mode, )?; let hashed_account_keys = self.persist_history_batch( @@ -344,7 +344,7 @@ impl MdbxProofsStorage { )?; let mut storage_trie_keys = Vec::::with_capacity(storage_trie_len); - for (hashed_address, nodes) in sorted_trie_updates.storage_tries { + for (hashed_address, nodes) in sorted_trie_updates.storage_tries_ref() { // Handle wiped - mark all storage trie as deleted at the current block number if nodes.is_deleted && append_mode { // Yet to have any update for the current block number - So just using up to @@ -1671,8 +1671,8 @@ mod tests { store.store_trie_updates(block, diff).await.expect("store"); let got = store.fetch_trie_updates(1).await.expect("fetch"); - assert!(got.sorted_trie_updates.account_nodes.is_empty()); - assert!(got.sorted_trie_updates.storage_tries.is_empty()); + assert!(got.sorted_trie_updates.account_nodes_ref().is_empty()); + assert!(got.sorted_trie_updates.storage_tries_ref().is_empty()); assert!(got.sorted_post_state.accounts.is_empty()); assert!(got.sorted_post_state.storages.is_empty()); } diff --git a/crates/optimism/trie/src/in_memory.rs b/crates/optimism/trie/src/in_memory.rs index f040b4279f5..3b379f13732 100644 --- a/crates/optimism/trie/src/in_memory.rs +++ b/crates/optimism/trie/src/in_memory.rs @@ -618,7 +618,7 @@ impl OpProofsStore for InMemoryProofsStorage { let leaves_diff = diff.sorted_post_state; // Apply branch updates to the earliest state (block 0) - for (path, branch) in &branches_diff.account_nodes { + for (path, branch) in branches_diff.account_nodes_ref() { write_counts.account_trie_updates_written_total += 1; match branch { Some(br) => _ = inner.account_branches.insert((0, *path), Some(br.clone())), @@ -627,7 +627,7 @@ impl OpProofsStore for InMemoryProofsStorage { } // Apply storage trie updates - for (hashed_address, storage_updates) in &branches_diff.storage_tries { + for (hashed_address, storage_updates) in branches_diff.storage_tries_ref() { for (path, branch) in &storage_updates.storage_nodes { match branch { Some(br) => { From 35c7c75a522330dd9d5b16009e957440e39d0ee7 Mon Sep 17 00:00:00 2001 From: Emilia Hane Date: Wed, 21 Jan 2026 08:10:39 +0100 Subject: [PATCH 3/4] fixup! Use getters instead of direct field access --- crates/optimism/trie/src/db/store.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/crates/optimism/trie/src/db/store.rs b/crates/optimism/trie/src/db/store.rs index 70fc6e4d917..e11729ac4ec 100644 --- a/crates/optimism/trie/src/db/store.rs +++ b/crates/optimism/trie/src/db/store.rs @@ -333,7 +333,7 @@ impl MdbxProofsStorage { let account_trie_keys = self.persist_history_batch( tx, block_number, - sorted_trie_updates.account_nodes_ref(), + sorted_trie_updates.account_nodes_ref().iter().cloned(), append_mode, )?; let hashed_account_keys = self.persist_history_batch( @@ -349,9 +349,9 @@ impl MdbxProofsStorage { if nodes.is_deleted && append_mode { // Yet to have any update for the current block number - So just using up to // previous block number - let mut ro = self.storage_trie_cursor(hashed_address, block_number - 1)?; + let mut ro = self.storage_trie_cursor(*hashed_address, block_number - 1)?; let keys = - self.wipe_storage(tx, block_number, hashed_address, || Ok(ro.next()?))?; + self.wipe_storage(tx, block_number, *hashed_address, || Ok(ro.next()?))?; storage_trie_keys.extend(keys); From d25243e201ed7ce7676db9c301cb697e94538de8 Mon Sep 17 00:00:00 2001 From: Emilia Hane Date: Thu, 22 Jan 2026 12:20:38 +0100 Subject: [PATCH 4/4] fixup! Use getters instead of direct field access --- crates/optimism/trie/src/db/store.rs | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/crates/optimism/trie/src/db/store.rs b/crates/optimism/trie/src/db/store.rs index e11729ac4ec..5876bbb9d87 100644 --- a/crates/optimism/trie/src/db/store.rs +++ b/crates/optimism/trie/src/db/store.rs @@ -362,7 +362,11 @@ impl MdbxProofsStorage { let keys = self.persist_history_batch( tx, block_number, - nodes.storage_nodes.into_iter().map(|(path, node)| (hashed_address, path, node)), + nodes + .storage_nodes_ref() + .iter() + .cloned() + .map(|(path, node)| (*hashed_address, path, node)), append_mode, )?; storage_trie_keys.extend(keys); @@ -1993,12 +1997,12 @@ mod tests { // verify trie updates assert_eq!( - got.sorted_trie_updates.account_nodes, - block_state_diff.sorted_trie_updates.account_nodes, + got.sorted_trie_updates.account_nodes_ref(), + block_state_diff.sorted_trie_updates.account_nodes_ref(), ); assert_eq!( - got.sorted_trie_updates.storage_tries, - block_state_diff.sorted_trie_updates.storage_tries, + got.sorted_trie_updates.storage_tries_ref(), + block_state_diff.sorted_trie_updates.storage_tries_ref(), ); // verify post state