revm

Trait EvmExec

Source
pub trait EvmExec {
    type Transaction: Transaction;
    type Block: Block;
    type Output;

    // Required methods
    fn set_block(&mut self, block: Self::Block);
    fn set_tx(&mut self, tx: Self::Transaction);
    fn exec(&mut self) -> Self::Output;
}

Required Associated Types§

Source

type Transaction: Transaction

Source

type Block: Block

Source

type Output

Required Methods§

Source

fn set_block(&mut self, block: Self::Block)

Source

fn set_tx(&mut self, tx: Self::Transaction)

Source

fn exec(&mut self) -> Self::Output

Implementors§

Source§

impl<ERROR, CTX, VAL, PREEXEC, EXEC, POSTEXEC> EvmExec for Evm<ERROR, CTX, EthHandler<CTX, ERROR, VAL, PREEXEC, EXEC, POSTEXEC>>
where CTX: TransactionSetter + BlockSetter + JournalStateGetter + CfgGetter + DatabaseGetter + ErrorGetter<Error = ERROR> + JournalStateGetter<Journal: JournaledState<FinalOutput = (EvmState, Vec<Log>), Database = <CTX as DatabaseGetter>::Database>> + Host, ERROR: From<InvalidTransaction> + From<InvalidHeader> + From<JournalStateGetterDBError<CTX>> + From<PrecompileErrors>, VAL: ValidationHandler<Context = CTX, Error = ERROR>, PREEXEC: PreExecutionHandler<Context = CTX, Error = ERROR>, EXEC: ExecutionHandler<Context = CTX, Error = ERROR, ExecResult = FrameResult, Frame: Frame<FrameResult = FrameResult>>, POSTEXEC: PostExecutionHandler<Context = CTX, Error = ERROR, ExecResult = FrameResult, Output = ResultAndState<HaltReason>>,

Source§

type Transaction = <CTX as TransactionGetter>::Transaction

Source§

type Block = <CTX as BlockGetter>::Block

Source§

type Output = Result<ResultAndState<HaltReason>, ERROR>