anvil_zksync_core/node/
vm.rs

1use zksync_multivm::{interface::storage::WriteStorage, vm_latest::Vm, HistoryMode};
2
3use super::boojumos::BoojumOsVM;
4
5#[allow(clippy::large_enum_variant)]
6pub enum AnvilVM<W: WriteStorage, H: HistoryMode> {
7    BoojumOs(BoojumOsVM<W, H>),
8    ZKSync(Vm<W, H>),
9}
10
11#[macro_export]
12macro_rules! delegate_vm {
13    ($variable:expr, $function:ident($($params:tt)*)) => {
14        match &mut $variable {
15            AnvilVM::BoojumOs(vm) => vm.$function($($params)*),
16            AnvilVM::ZKSync(vm) => vm.$function($($params)*),
17        }
18    };
19}