revm_handler/
mainnet_handler.rs

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