reth_execution_types/
execute.rs1use alloy_eips::eip7685::Requests;
2use alloy_primitives::U256;
3use revm::db::BundleState;
4
5#[derive(Debug)]
7pub struct BlockExecutionInput<'a, Block> {
8 pub block: &'a Block,
10 pub total_difficulty: U256,
12}
13
14impl<'a, Block> BlockExecutionInput<'a, Block> {
15 pub const fn new(block: &'a Block, total_difficulty: U256) -> Self {
17 Self { block, total_difficulty }
18 }
19}
20
21impl<'a, Block> From<(&'a Block, U256)> for BlockExecutionInput<'a, Block> {
22 fn from((block, total_difficulty): (&'a Block, U256)) -> Self {
23 Self::new(block, total_difficulty)
24 }
25}
26
27#[derive(Debug, Clone, PartialEq, Eq)]
31pub struct BlockExecutionOutput<T> {
32 pub state: BundleState,
34 pub receipts: Vec<T>,
36 pub requests: Requests,
38 pub gas_used: u64,
40}