mirror of
https://github.com/hl-archive-node/nanoreth.git
synced 2025-12-06 10:59:55 +00:00
refactor: unify logic for writing receipts (#12878)
This commit is contained in:
@ -22,9 +22,9 @@ use reth_network_api::NetworkInfo;
|
||||
use reth_node_ethereum::EthExecutorProvider;
|
||||
use reth_primitives::BlockExt;
|
||||
use reth_provider::{
|
||||
providers::ProviderNodeTypes, writer::UnifiedStorageWriter, AccountExtReader,
|
||||
ChainSpecProvider, HashingWriter, HeaderProvider, LatestStateProviderRef, OriginalValuesKnown,
|
||||
ProviderFactory, StageCheckpointReader, StateWriter, StorageReader,
|
||||
providers::ProviderNodeTypes, AccountExtReader, ChainSpecProvider, DatabaseProviderFactory,
|
||||
HashingWriter, HeaderProvider, LatestStateProviderRef, OriginalValuesKnown, ProviderFactory,
|
||||
StageCheckpointReader, StateWriter, StorageLocation, StorageReader,
|
||||
};
|
||||
use reth_revm::database::StateProviderDatabase;
|
||||
use reth_stages::StageId;
|
||||
@ -163,7 +163,7 @@ impl<C: ChainSpecParser<ChainSpec = ChainSpec>> Command<C> {
|
||||
return Ok(())
|
||||
}
|
||||
|
||||
let provider_rw = provider_factory.provider_rw()?;
|
||||
let provider_rw = provider_factory.database_provider_rw()?;
|
||||
|
||||
// Insert block, state and hashes
|
||||
provider_rw.insert_historical_block(
|
||||
@ -172,8 +172,11 @@ impl<C: ChainSpecParser<ChainSpec = ChainSpec>> Command<C> {
|
||||
.try_seal_with_senders()
|
||||
.map_err(|_| BlockValidationError::SenderRecoveryError)?,
|
||||
)?;
|
||||
let mut storage_writer = UnifiedStorageWriter::from_database(&provider_rw.0);
|
||||
storage_writer.write_to_storage(execution_outcome, OriginalValuesKnown::No)?;
|
||||
provider_rw.write_to_storage(
|
||||
execution_outcome,
|
||||
OriginalValuesKnown::No,
|
||||
StorageLocation::Database,
|
||||
)?;
|
||||
let storage_lists = provider_rw.changed_storages_with_range(block.number..=block.number)?;
|
||||
let storages = provider_rw.plain_state_storages(storage_lists)?;
|
||||
provider_rw.insert_storage_for_hashing(storages)?;
|
||||
|
||||
@ -20,9 +20,9 @@ use reth_network_p2p::full_block::FullBlockClient;
|
||||
use reth_node_api::BlockTy;
|
||||
use reth_node_ethereum::EthExecutorProvider;
|
||||
use reth_provider::{
|
||||
providers::ProviderNodeTypes, writer::UnifiedStorageWriter, BlockNumReader, BlockWriter,
|
||||
ChainSpecProvider, DatabaseProviderFactory, HeaderProvider, LatestStateProviderRef,
|
||||
OriginalValuesKnown, ProviderError, ProviderFactory, StateWriter, StorageLocation,
|
||||
providers::ProviderNodeTypes, BlockNumReader, BlockWriter, ChainSpecProvider,
|
||||
DatabaseProviderFactory, HeaderProvider, LatestStateProviderRef, OriginalValuesKnown,
|
||||
ProviderError, ProviderFactory, StateWriter, StorageLocation,
|
||||
};
|
||||
use reth_revm::database::StateProviderDatabase;
|
||||
use reth_stages::{
|
||||
@ -158,8 +158,11 @@ impl<C: ChainSpecParser<ChainSpec = ChainSpec>> Command<C> {
|
||||
executor.execute_and_verify_one((&sealed_block.clone().unseal(), td).into())?;
|
||||
let execution_outcome = executor.finalize();
|
||||
|
||||
let mut storage_writer = UnifiedStorageWriter::from_database(&provider_rw);
|
||||
storage_writer.write_to_storage(execution_outcome, OriginalValuesKnown::Yes)?;
|
||||
provider_rw.write_to_storage(
|
||||
execution_outcome,
|
||||
OriginalValuesKnown::Yes,
|
||||
StorageLocation::Database,
|
||||
)?;
|
||||
|
||||
let checkpoint = Some(StageCheckpoint::new(
|
||||
block_number
|
||||
|
||||
Reference in New Issue
Block a user