mirror of
https://github.com/hl-archive-node/nanoreth.git
synced 2025-12-06 10:59:55 +00:00
refactor(storage): unify blocks insertion logic (#12694)
This commit is contained in:
@ -9,6 +9,7 @@ use reth_evm::execute::{
|
||||
BatchExecutor, BlockExecutionInput, BlockExecutionOutput, BlockExecutorProvider, Executor,
|
||||
};
|
||||
use reth_evm_ethereum::execute::EthExecutorProvider;
|
||||
use reth_node_api::FullNodePrimitives;
|
||||
use reth_primitives::{
|
||||
Block, BlockBody, BlockWithSenders, Receipt, SealedBlockWithSenders, Transaction,
|
||||
};
|
||||
@ -57,7 +58,7 @@ pub(crate) fn execute_block_and_commit_to_database<N>(
|
||||
block: &BlockWithSenders,
|
||||
) -> eyre::Result<BlockExecutionOutput<Receipt>>
|
||||
where
|
||||
N: ProviderNodeTypes,
|
||||
N: ProviderNodeTypes<Primitives: FullNodePrimitives<Block = reth_primitives::Block>>,
|
||||
{
|
||||
let provider = provider_factory.provider()?;
|
||||
|
||||
@ -161,7 +162,7 @@ pub(crate) fn blocks_and_execution_outputs<N>(
|
||||
key_pair: Keypair,
|
||||
) -> eyre::Result<Vec<(SealedBlockWithSenders, BlockExecutionOutput<Receipt>)>>
|
||||
where
|
||||
N: ProviderNodeTypes,
|
||||
N: ProviderNodeTypes<Primitives: FullNodePrimitives<Block = reth_primitives::Block>>,
|
||||
{
|
||||
let (block1, block2) = blocks(chain_spec.clone(), key_pair)?;
|
||||
|
||||
@ -183,6 +184,7 @@ pub(crate) fn blocks_and_execution_outcome<N>(
|
||||
) -> eyre::Result<(Vec<SealedBlockWithSenders>, ExecutionOutcome)>
|
||||
where
|
||||
N: ProviderNodeTypes,
|
||||
N::Primitives: FullNodePrimitives<Block = reth_primitives::Block>,
|
||||
{
|
||||
let (block1, block2) = blocks(chain_spec.clone(), key_pair)?;
|
||||
|
||||
|
||||
@ -657,7 +657,7 @@ mod tests {
|
||||
use reth_primitives::SealedBlockWithSenders;
|
||||
use reth_provider::{
|
||||
providers::BlockchainProvider2, test_utils::create_test_provider_factory, BlockReader,
|
||||
BlockWriter, Chain, DatabaseProviderFactory, TransactionVariant,
|
||||
BlockWriter, Chain, DatabaseProviderFactory, StorageLocation, TransactionVariant,
|
||||
};
|
||||
use reth_testing_utils::generators::{self, random_block, BlockParams};
|
||||
|
||||
@ -1238,7 +1238,7 @@ mod tests {
|
||||
.seal_with_senders()
|
||||
.unwrap();
|
||||
let provider_rw = provider_factory.database_provider_rw().unwrap();
|
||||
provider_rw.insert_block(block.clone()).unwrap();
|
||||
provider_rw.insert_block(block.clone(), StorageLocation::Database).unwrap();
|
||||
provider_rw.commit().unwrap();
|
||||
|
||||
let provider = BlockchainProvider2::new(provider_factory).unwrap();
|
||||
|
||||
@ -403,7 +403,7 @@ mod tests {
|
||||
use reth_primitives::Block;
|
||||
use reth_provider::{
|
||||
providers::BlockchainProvider2, test_utils::create_test_provider_factory, BlockWriter,
|
||||
Chain, DatabaseProviderFactory,
|
||||
Chain, DatabaseProviderFactory, StorageLocation,
|
||||
};
|
||||
use reth_testing_utils::generators::{self, random_block, BlockParams};
|
||||
use tokio::sync::mpsc;
|
||||
@ -431,6 +431,7 @@ mod tests {
|
||||
let provider_rw = provider_factory.provider_rw()?;
|
||||
provider_rw.insert_block(
|
||||
node_head_block.clone().seal_with_senders().ok_or_eyre("failed to recover senders")?,
|
||||
StorageLocation::Database,
|
||||
)?;
|
||||
provider_rw.commit()?;
|
||||
|
||||
@ -574,7 +575,7 @@ mod tests {
|
||||
..Default::default()
|
||||
};
|
||||
let provider_rw = provider.database_provider_rw()?;
|
||||
provider_rw.insert_block(node_head_block)?;
|
||||
provider_rw.insert_block(node_head_block, StorageLocation::Database)?;
|
||||
provider_rw.commit()?;
|
||||
let node_head_notification = ExExNotification::ChainCommitted {
|
||||
new: Arc::new(
|
||||
|
||||
Reference in New Issue
Block a user