revm_handler/
mainnet_handler.rs

1use super::{EvmTrError, Handler};
2use crate::{EvmTr, Frame, FrameResult};
3use context::JournalOutput;
4use context_interface::{result::HaltReason, ContextTr, JournalTr};
5use interpreter::FrameInput;
6
7pub struct MainnetHandler<CTX, ERROR, FRAME> {
8    pub _phantom: core::marker::PhantomData<(CTX, ERROR, FRAME)>,
9}
10
11impl<EVM, ERROR, FRAME> Handler for MainnetHandler<EVM, ERROR, FRAME>
12where
13    EVM: EvmTr<Context: ContextTr<Journal: JournalTr<FinalOutput = JournalOutput>>>,
14    ERROR: EvmTrError<EVM>,
15    // TODO `FrameResult` should be a generic trait.
16    // TODO `FrameInit` should be a generic.
17    FRAME: Frame<Evm = EVM, Error = ERROR, FrameResult = FrameResult, FrameInit = FrameInput>,
18{
19    type Evm = EVM;
20    type Error = ERROR;
21    type Frame = FRAME;
22    type HaltReason = HaltReason;
23}
24
25impl<CTX, ERROR, FRAME> Default for MainnetHandler<CTX, ERROR, FRAME> {
26    fn default() -> Self {
27        Self {
28            _phantom: core::marker::PhantomData,
29        }
30    }
31}