reth_engine_tree/tree/
types.rs1use crate::tree::error::InsertPayloadError;
4use alloy_eip7928::bal::RawBal;
5use reth_chain_state::{ExecutedBlock, ExecutionTimingStats};
6use reth_primitives_traits::{BlockTy, NodePrimitives};
7
8pub type ValidationOutcome<N, E = InsertPayloadError<BlockTy<N>>> = Result<ValidationOutput<N>, E>;
10
11pub(crate) type InsertPayloadResult<N> =
13 Result<ValidationOutput<N>, InsertPayloadError<<N as NodePrimitives>::Block>>;
14
15#[derive(Clone, Debug)]
17pub struct ValidationOutput<N: NodePrimitives> {
18 pub executed_block: ExecutedBlock<N>,
20 pub execution_timing_stats: Option<Box<ExecutionTimingStats>>,
22 pub raw_bal: Option<RawBal>,
24}
25
26impl<N: NodePrimitives> ValidationOutput<N> {
27 pub const fn new(
29 executed_block: ExecutedBlock<N>,
30 execution_timing_stats: Option<Box<ExecutionTimingStats>>,
31 ) -> Self {
32 Self { executed_block, execution_timing_stats, raw_bal: None }
33 }
34
35 pub fn with_raw_bal(mut self, raw_bal: Option<RawBal>) -> Self {
37 self.raw_bal = raw_bal;
38 self
39 }
40}