use crate::MonadCfgEnv;
use revm::{
context::{BlockEnv, TxEnv},
database_interface::EmptyDB,
Context, Journal, MainContext,
};
pub type MonadContext<DB> = Context<BlockEnv, TxEnv, MonadCfgEnv, DB, Journal<DB>, ()>;
pub trait DefaultMonad {
fn monad() -> MonadContext<EmptyDB>;
}
impl DefaultMonad for MonadContext<EmptyDB> {
fn monad() -> Self {
Context::mainnet().with_cfg(MonadCfgEnv::new())
}
}
#[cfg(test)]
mod test {
use super::*;
use crate::api::builder::MonadBuilder;
use revm::{inspector::NoOpInspector, ExecuteEvm};
#[test]
fn default_run_monad() {
let ctx = Context::monad();
let mut evm = ctx.build_monad_with_inspector(NoOpInspector {});
let tx = TxEnv::default();
let _ = evm.transact(tx);
}
}