anvil_zksync_core/node/
vm.rs

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