diff --git a/crates/stages/stages/src/stages/merkle.rs b/crates/stages/stages/src/stages/merkle.rs index f85ef565f..936c077fb 100644 --- a/crates/stages/stages/src/stages/merkle.rs +++ b/crates/stages/stages/src/stages/merkle.rs @@ -7,8 +7,8 @@ use reth_db_api::{ }; use reth_primitives::{BlockNumber, GotExpected, SealedHeader, B256}; use reth_provider::{ - writer::StorageWriter, DatabaseProviderRW, HeaderProvider, ProviderError, - StageCheckpointReader, StageCheckpointWriter, StatsReader, + DatabaseProviderRW, HeaderProvider, ProviderError, StageCheckpointReader, + StageCheckpointWriter, StatsReader, TrieWriter, }; use reth_stages_api::{ BlockErrorKind, EntitiesCheckpoint, ExecInput, ExecOutput, MerkleCheckpoint, Stage, @@ -218,8 +218,7 @@ impl Stage for MerkleStage { })?; match progress { StateRootProgress::Progress(state, hashed_entries_walked, updates) => { - let writer = StorageWriter::new(Some(provider), None); - writer.write_trie_updates(&updates)?; + provider.write_trie_updates(&updates)?; let checkpoint = MerkleCheckpoint::new( to_block, @@ -239,8 +238,7 @@ impl Stage for MerkleStage { }) } StateRootProgress::Complete(root, hashed_entries_walked, updates) => { - let writer = StorageWriter::new(Some(provider), None); - writer.write_trie_updates(&updates)?; + provider.write_trie_updates(&updates)?; entities_checkpoint.processed += hashed_entries_walked as u64; @@ -255,8 +253,8 @@ impl Stage for MerkleStage { error!(target: "sync::stages::merkle", %e, ?current_block_number, ?to_block, "Incremental state root failed! {INVALID_STATE_ROOT_ERROR_MESSAGE}"); StageError::Fatal(Box::new(e)) })?; - let writer = StorageWriter::new(Some(provider), None); - writer.write_trie_updates(&updates)?; + + provider.write_trie_updates(&updates)?; let total_hashed_entries = (provider.count_entries::()? + provider.count_entries::()?) @@ -329,8 +327,7 @@ impl Stage for MerkleStage { validate_state_root(block_root, target.seal_slow(), input.unwind_to)?; // Validation passed, apply unwind changes to the database. - let writer = StorageWriter::new(Some(provider), None); - writer.write_trie_updates(&updates)?; + provider.write_trie_updates(&updates)?; // TODO(alexey): update entities checkpoint } else { diff --git a/crates/storage/provider/src/writer/mod.rs b/crates/storage/provider/src/writer/mod.rs index 5ca806bd3..90d1e25b8 100644 --- a/crates/storage/provider/src/writer/mod.rs +++ b/crates/storage/provider/src/writer/mod.rs @@ -1,6 +1,6 @@ use crate::{ providers::StaticFileProviderRWRefMut, DatabaseProvider, DatabaseProviderRO, - DatabaseProviderRW, StateChangeWriter, StateWriter, TrieWriter, + DatabaseProviderRW, StateChangeWriter, StateWriter, }; use reth_db::{ cursor::DbCursorRO, @@ -15,7 +15,6 @@ use reth_primitives::{ }; use reth_storage_api::{HeaderProvider, ReceiptWriter}; use reth_storage_errors::writer::StorageWriterError; -use reth_trie::updates::TrieUpdates; use revm::db::OriginalValuesKnown; use static_file::StaticFileWriter; use std::borrow::Borrow; @@ -289,12 +288,6 @@ where Ok(()) } - - /// Writes trie updates. Returns the number of entries modified. - pub fn write_trie_updates(&self, trie_updates: &TrieUpdates) -> ProviderResult { - self.ensure_database_writer()?; - self.database_writer().write_trie_updates(trie_updates) - } } impl<'a, 'b, TX> StateWriter for StorageWriter<'a, 'b, TX>