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;
}