#[macro_export]
macro_rules! unwrap_or_trevm_err {
($e:expr, $trevm:expr) => {
match $e {
Ok(val) => val,
Err(e) => return Err($trevm.errored(e.into())),
}
};
}
#[macro_export]
macro_rules! trevm_ensure {
($cond:expr, $trevm:expr, $err:expr) => {
if !$cond {
trevm_bail!($trevm, $err);
}
};
}
#[macro_export]
macro_rules! trevm_bail {
($trevm:expr, $err:expr) => {
return Err($trevm.errored($err))
};
}
macro_rules! estimate_and_adjust {
($est:ident, $trevm:ident, $gas_limit:ident, $range:ident) => {
($est, $trevm) = $trevm.run_estimate(&$gas_limit.into())?;
if let Err(e) = $est.adjust_binary_search_range($gas_limit, &mut $range) {
return Ok((e, $trevm));
}
};
}