mirror of
https://github.com/hl-archive-node/nanoreth.git
synced 2025-12-06 10:59:55 +00:00
trie: init storage blinded provider with account (#13058)
This commit is contained in:
@ -1,7 +1,7 @@
|
||||
//! Traits and default implementations related to retrieval of blinded trie nodes.
|
||||
|
||||
use crate::SparseTrieError;
|
||||
use alloy_primitives::Bytes;
|
||||
use alloy_primitives::{Bytes, B256};
|
||||
use reth_trie_common::Nibbles;
|
||||
|
||||
/// Factory for instantiating blinded node providers.
|
||||
@ -15,7 +15,7 @@ pub trait BlindedProviderFactory {
|
||||
fn account_node_provider(&self) -> Self::AccountNodeProvider;
|
||||
|
||||
/// Returns blinded storage node provider.
|
||||
fn storage_node_provider(&self) -> Self::StorageNodeProvider;
|
||||
fn storage_node_provider(&self, account: B256) -> Self::StorageNodeProvider;
|
||||
}
|
||||
|
||||
/// Trie node provider for retrieving blinded nodes.
|
||||
@ -39,7 +39,7 @@ impl BlindedProviderFactory for DefaultBlindedProviderFactory {
|
||||
DefaultBlindedProvider
|
||||
}
|
||||
|
||||
fn storage_node_provider(&self) -> Self::StorageNodeProvider {
|
||||
fn storage_node_provider(&self, _account: B256) -> Self::StorageNodeProvider {
|
||||
DefaultBlindedProvider
|
||||
}
|
||||
}
|
||||
|
||||
@ -129,7 +129,7 @@ impl<F: BlindedProviderFactory> SparseStateTrie<F> {
|
||||
|
||||
// Reveal root node if it wasn't already.
|
||||
let trie = self.storages.entry(account).or_default().reveal_root_with_provider(
|
||||
self.provider_factory.storage_node_provider(),
|
||||
self.provider_factory.storage_node_provider(account),
|
||||
root_node,
|
||||
self.retain_updates,
|
||||
)?;
|
||||
@ -179,7 +179,7 @@ impl<F: BlindedProviderFactory> SparseStateTrie<F> {
|
||||
if let Some(root_node) = self.validate_root_node(&mut storage_nodes)? {
|
||||
// Reveal root node if it wasn't already.
|
||||
let trie = self.storages.entry(account).or_default().reveal_root_with_provider(
|
||||
self.provider_factory.storage_node_provider(),
|
||||
self.provider_factory.storage_node_provider(account),
|
||||
root_node,
|
||||
self.retain_updates,
|
||||
)?;
|
||||
|
||||
Reference in New Issue
Block a user