chore(trie): clean up state root methods (#10598)

This commit is contained in:
Roman Krasiuk
2024-08-28 07:41:29 -07:00
committed by GitHub
parent 3be92d5049
commit 6f086d1060
25 changed files with 119 additions and 153 deletions

View File

@ -886,11 +886,11 @@ mod tests {
}
impl StateRootProvider for MockStateProvider {
fn hashed_state_root(&self, _hashed_state: HashedPostState) -> ProviderResult<B256> {
fn state_root(&self, _hashed_state: HashedPostState) -> ProviderResult<B256> {
Ok(B256::random())
}
fn hashed_state_root_from_nodes(
fn state_root_from_nodes(
&self,
_nodes: TrieUpdates,
_post_state: HashedPostState,
@ -899,14 +899,14 @@ mod tests {
Ok(B256::random())
}
fn hashed_state_root_with_updates(
fn state_root_with_updates(
&self,
_hashed_state: HashedPostState,
) -> ProviderResult<(B256, TrieUpdates)> {
Ok((B256::random(), TrieUpdates::default()))
}
fn hashed_state_root_from_nodes_with_updates(
fn state_root_from_nodes_with_updates(
&self,
_nodes: TrieUpdates,
_post_state: HashedPostState,
@ -917,7 +917,7 @@ mod tests {
}
impl StorageRootProvider for MockStateProvider {
fn hashed_storage_root(
fn storage_root(
&self,
_address: Address,
_hashed_storage: HashedStorage,

View File

@ -102,12 +102,12 @@ impl AccountReader for MemoryOverlayStateProvider {
}
impl StateRootProvider for MemoryOverlayStateProvider {
fn hashed_state_root(&self, hashed_state: HashedPostState) -> ProviderResult<B256> {
fn state_root(&self, hashed_state: HashedPostState) -> ProviderResult<B256> {
let prefix_sets = hashed_state.construct_prefix_sets();
self.hashed_state_root_from_nodes(TrieUpdates::default(), hashed_state, prefix_sets)
self.state_root_from_nodes(TrieUpdates::default(), hashed_state, prefix_sets)
}
fn hashed_state_root_from_nodes(
fn state_root_from_nodes(
&self,
nodes: TrieUpdates,
state: HashedPostState,
@ -116,22 +116,18 @@ impl StateRootProvider for MemoryOverlayStateProvider {
let MemoryOverlayTrieState { mut trie_nodes, mut hashed_state } = self.trie_state().clone();
trie_nodes.extend(nodes);
hashed_state.extend(state);
self.historical.hashed_state_root_from_nodes(trie_nodes, hashed_state, prefix_sets)
self.historical.state_root_from_nodes(trie_nodes, hashed_state, prefix_sets)
}
fn hashed_state_root_with_updates(
fn state_root_with_updates(
&self,
hashed_state: HashedPostState,
) -> ProviderResult<(B256, TrieUpdates)> {
let prefix_sets = hashed_state.construct_prefix_sets();
self.hashed_state_root_from_nodes_with_updates(
TrieUpdates::default(),
hashed_state,
prefix_sets,
)
self.state_root_from_nodes_with_updates(TrieUpdates::default(), hashed_state, prefix_sets)
}
fn hashed_state_root_from_nodes_with_updates(
fn state_root_from_nodes_with_updates(
&self,
nodes: TrieUpdates,
state: HashedPostState,
@ -140,21 +136,13 @@ impl StateRootProvider for MemoryOverlayStateProvider {
let MemoryOverlayTrieState { mut trie_nodes, mut hashed_state } = self.trie_state().clone();
trie_nodes.extend(nodes);
hashed_state.extend(state);
self.historical.hashed_state_root_from_nodes_with_updates(
trie_nodes,
hashed_state,
prefix_sets,
)
self.historical.state_root_from_nodes_with_updates(trie_nodes, hashed_state, prefix_sets)
}
}
impl StorageRootProvider for MemoryOverlayStateProvider {
// TODO: Currently this does not reuse available in-memory trie nodes.
fn hashed_storage_root(
&self,
address: Address,
storage: HashedStorage,
) -> ProviderResult<B256> {
fn storage_root(&self, address: Address, storage: HashedStorage) -> ProviderResult<B256> {
let mut hashed_storage = self
.trie_state()
.hashed_state
@ -163,7 +151,7 @@ impl StorageRootProvider for MemoryOverlayStateProvider {
.cloned()
.unwrap_or_default();
hashed_storage.extend(&storage);
self.historical.hashed_storage_root(address, hashed_storage)
self.historical.storage_root(address, hashed_storage)
}
}