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}