mirror of
https://github.com/hl-archive-node/nanoreth.git
synced 2025-12-06 10:59:55 +00:00
feat: make more block types generic (#12812)
This commit is contained in:
@ -210,12 +210,13 @@ where
|
||||
|
||||
let block = payload.block();
|
||||
|
||||
let cancun_fields =
|
||||
self.provider.chain_spec().is_cancun_active_at_timestamp(block.timestamp).then(|| {
|
||||
CancunPayloadFields {
|
||||
parent_beacon_block_root: block.parent_beacon_block_root.unwrap(),
|
||||
versioned_hashes: block.blob_versioned_hashes().into_iter().copied().collect(),
|
||||
}
|
||||
let cancun_fields = self
|
||||
.provider
|
||||
.chain_spec()
|
||||
.is_cancun_active_at_timestamp(block.timestamp)
|
||||
.then(|| CancunPayloadFields {
|
||||
parent_beacon_block_root: block.parent_beacon_block_root.unwrap(),
|
||||
versioned_hashes: block.body.blob_versioned_hashes().into_iter().copied().collect(),
|
||||
});
|
||||
|
||||
let (tx, rx) = oneshot::channel();
|
||||
|
||||
@ -21,11 +21,15 @@ use tracing::{debug, error};
|
||||
/// A helper trait with requirements for [`ProviderNodeTypes`] to be used within
|
||||
/// [`PersistenceService`].
|
||||
pub trait PersistenceNodeTypes:
|
||||
ProviderNodeTypes<Primitives: FullNodePrimitives<BlockBody = BlockBody>>
|
||||
ProviderNodeTypes<
|
||||
Primitives: FullNodePrimitives<Block = reth_primitives::Block, BlockBody = BlockBody>,
|
||||
>
|
||||
{
|
||||
}
|
||||
impl<T> PersistenceNodeTypes for T where
|
||||
T: ProviderNodeTypes<Primitives: FullNodePrimitives<BlockBody = BlockBody>>
|
||||
T: ProviderNodeTypes<
|
||||
Primitives: FullNodePrimitives<Block = reth_primitives::Block, BlockBody = BlockBody>,
|
||||
>
|
||||
{
|
||||
}
|
||||
/// Writes parts of reth's in memory tree state to the database and static files.
|
||||
|
||||
@ -2609,6 +2609,7 @@ mod tests {
|
||||
use reth_engine_primitives::ForkchoiceStatus;
|
||||
use reth_ethereum_engine_primitives::EthEngineTypes;
|
||||
use reth_evm::test_utils::MockExecutorProvider;
|
||||
use reth_primitives::BlockExt;
|
||||
use reth_provider::test_utils::MockEthProvider;
|
||||
use reth_rpc_types_compat::engine::{block_to_payload_v1, payload::block_to_payload_v3};
|
||||
use reth_trie::updates::TrieUpdates;
|
||||
|
||||
@ -18,7 +18,7 @@ use reth_evm::{
|
||||
ConfigureEvm,
|
||||
};
|
||||
use reth_payload_validator::ExecutionPayloadValidator;
|
||||
use reth_primitives::{proofs, Block, BlockBody, Receipt, Receipts};
|
||||
use reth_primitives::{proofs, Block, BlockBody, BlockExt, Receipt, Receipts};
|
||||
use reth_provider::{BlockReader, ExecutionOutcome, ProviderError, StateProviderFactory};
|
||||
use reth_revm::{
|
||||
database::StateProviderDatabase,
|
||||
|
||||
Reference in New Issue
Block a user