@@ -10,7 +10,7 @@ use crate::{
1010 interface:: L1BatchEnv ,
1111} ;
1212
13- pub ( crate ) mod bytecode;
13+ pub mod bytecode;
1414mod deduplicator;
1515pub ( crate ) mod events;
1616
@@ -73,7 +73,8 @@ pub fn derive_base_fee_and_gas_per_pubdata(
7373 | VmVersion :: Vm1_5_0IncreasedBootloaderMemory
7474 | VmVersion :: VmGateway
7575 | VmVersion :: VmEvmEmulator
76- | VmVersion :: VmEcPrecompiles => {
76+ | VmVersion :: VmEcPrecompiles
77+ | VmVersion :: VmInterop => {
7778 crate :: vm_latest:: utils:: fee:: derive_base_fee_and_gas_per_pubdata (
7879 batch_fee_input. into_pubdata_independent ( ) ,
7980 )
@@ -105,9 +106,8 @@ pub fn get_batch_base_fee(l1_batch_env: &L1BatchEnv, vm_version: VmVersion) -> u
105106 | VmVersion :: Vm1_5_0IncreasedBootloaderMemory
106107 | VmVersion :: VmGateway
107108 | VmVersion :: VmEvmEmulator
108- | VmVersion :: VmEcPrecompiles => {
109- crate :: vm_latest:: utils:: fee:: get_batch_base_fee ( l1_batch_env)
110- }
109+ | VmVersion :: VmEcPrecompiles
110+ | VmVersion :: VmInterop => crate :: vm_latest:: utils:: fee:: get_batch_base_fee ( l1_batch_env) ,
111111 }
112112}
113113
@@ -241,9 +241,8 @@ pub fn derive_overhead(
241241 | VmVersion :: Vm1_5_0IncreasedBootloaderMemory
242242 | VmVersion :: VmGateway
243243 | VmVersion :: VmEvmEmulator
244- | VmVersion :: VmEcPrecompiles => {
245- crate :: vm_latest:: utils:: overhead:: derive_overhead ( encoded_len)
246- }
244+ | VmVersion :: VmEcPrecompiles
245+ | VmVersion :: VmInterop => crate :: vm_latest:: utils:: overhead:: derive_overhead ( encoded_len) ,
247246 }
248247}
249248
@@ -288,6 +287,9 @@ pub fn get_bootloader_encoding_space(version: VmVersion) -> u32 {
288287 crate :: vm_latest:: MultiVmSubversion :: EcPrecompiles ,
289288 )
290289 }
290+ VmVersion :: VmInterop => crate :: vm_latest:: constants:: get_bootloader_tx_encoding_space (
291+ crate :: vm_latest:: MultiVmSubversion :: Interop ,
292+ ) ,
291293 }
292294}
293295
@@ -311,7 +313,29 @@ pub fn get_bootloader_max_txs_in_batch(version: VmVersion) -> usize {
311313 | VmVersion :: Vm1_5_0IncreasedBootloaderMemory
312314 | VmVersion :: VmGateway
313315 | VmVersion :: VmEvmEmulator
314- | VmVersion :: VmEcPrecompiles => crate :: vm_latest:: constants:: MAX_TXS_IN_BATCH ,
316+ | VmVersion :: VmEcPrecompiles
317+ | VmVersion :: VmInterop => crate :: vm_latest:: constants:: MAX_TXS_IN_BATCH ,
318+ }
319+ }
320+
321+ pub fn get_bootloader_max_msg_roots_in_batch ( version : VmVersion ) -> usize {
322+ match version {
323+ VmVersion :: M5WithRefunds
324+ | VmVersion :: M5WithoutRefunds
325+ | VmVersion :: M6Initial
326+ | VmVersion :: M6BugWithCompressionFixed
327+ | VmVersion :: Vm1_3_2
328+ | VmVersion :: VmVirtualBlocks
329+ | VmVersion :: VmVirtualBlocksRefundsEnhancement
330+ | VmVersion :: VmBoojumIntegration
331+ | VmVersion :: Vm1_4_1
332+ | VmVersion :: Vm1_4_2
333+ | VmVersion :: Vm1_5_0SmallBootloaderMemory
334+ | VmVersion :: Vm1_5_0IncreasedBootloaderMemory
335+ | VmVersion :: VmGateway
336+ | VmVersion :: VmEvmEmulator
337+ | VmVersion :: VmEcPrecompiles => 0 ,
338+ VmVersion :: VmInterop => crate :: vm_latest:: constants:: MAX_MSG_ROOTS_IN_BATCH ,
315339 }
316340}
317341
@@ -336,7 +360,8 @@ pub fn gas_bootloader_batch_tip_overhead(version: VmVersion) -> u32 {
336360 | VmVersion :: Vm1_5_0IncreasedBootloaderMemory
337361 | VmVersion :: VmGateway
338362 | VmVersion :: VmEvmEmulator
339- | VmVersion :: VmEcPrecompiles => crate :: vm_latest:: constants:: BOOTLOADER_BATCH_TIP_OVERHEAD ,
363+ | VmVersion :: VmEcPrecompiles
364+ | VmVersion :: VmInterop => crate :: vm_latest:: constants:: BOOTLOADER_BATCH_TIP_OVERHEAD ,
340365 }
341366}
342367
@@ -361,7 +386,8 @@ pub fn circuit_statistics_bootloader_batch_tip_overhead(version: VmVersion) -> u
361386 | VmVersion :: Vm1_5_0IncreasedBootloaderMemory
362387 | VmVersion :: VmGateway
363388 | VmVersion :: VmEvmEmulator
364- | VmVersion :: VmEcPrecompiles => {
389+ | VmVersion :: VmEcPrecompiles
390+ | VmVersion :: VmInterop => {
365391 crate :: vm_latest:: constants:: BOOTLOADER_BATCH_TIP_CIRCUIT_STATISTICS_OVERHEAD as usize
366392 }
367393 }
@@ -388,7 +414,8 @@ pub fn execution_metrics_bootloader_batch_tip_overhead(version: VmVersion) -> us
388414 | VmVersion :: Vm1_5_0IncreasedBootloaderMemory
389415 | VmVersion :: VmGateway
390416 | VmVersion :: VmEvmEmulator
391- | VmVersion :: VmEcPrecompiles => {
417+ | VmVersion :: VmEcPrecompiles
418+ | VmVersion :: VmInterop => {
392419 crate :: vm_latest:: constants:: BOOTLOADER_BATCH_TIP_METRICS_SIZE_OVERHEAD as usize
393420 }
394421 }
@@ -416,7 +443,8 @@ pub fn get_max_gas_per_pubdata_byte(version: VmVersion) -> u64 {
416443 | VmVersion :: Vm1_5_0IncreasedBootloaderMemory
417444 | VmVersion :: VmGateway
418445 | VmVersion :: VmEvmEmulator
419- | VmVersion :: VmEcPrecompiles => crate :: vm_latest:: constants:: MAX_GAS_PER_PUBDATA_BYTE ,
446+ | VmVersion :: VmEcPrecompiles
447+ | VmVersion :: VmInterop => crate :: vm_latest:: constants:: MAX_GAS_PER_PUBDATA_BYTE ,
420448 }
421449}
422450
@@ -461,6 +489,9 @@ pub fn get_used_bootloader_memory_bytes(version: VmVersion) -> usize {
461489 crate :: vm_latest:: MultiVmSubversion :: EcPrecompiles ,
462490 )
463491 }
492+ VmVersion :: VmInterop => crate :: vm_latest:: constants:: get_used_bootloader_memory_bytes (
493+ crate :: vm_latest:: MultiVmSubversion :: Interop ,
494+ ) ,
464495 }
465496}
466497
@@ -505,6 +536,9 @@ pub fn get_used_bootloader_memory_words(version: VmVersion) -> usize {
505536 crate :: vm_latest:: MultiVmSubversion :: EcPrecompiles ,
506537 )
507538 }
539+ VmVersion :: VmInterop => crate :: vm_latest:: constants:: get_used_bootloader_memory_words (
540+ crate :: vm_latest:: MultiVmSubversion :: Interop ,
541+ ) ,
508542 }
509543}
510544
@@ -530,7 +564,8 @@ pub fn get_max_batch_gas_limit(version: VmVersion) -> u64 {
530564 | VmVersion :: Vm1_5_0IncreasedBootloaderMemory
531565 | VmVersion :: VmGateway
532566 | VmVersion :: VmEvmEmulator
533- | VmVersion :: VmEcPrecompiles => crate :: vm_latest:: constants:: BATCH_GAS_LIMIT ,
567+ | VmVersion :: VmEcPrecompiles
568+ | VmVersion :: VmInterop => crate :: vm_latest:: constants:: BATCH_GAS_LIMIT ,
534569 }
535570}
536571
@@ -558,7 +593,8 @@ pub fn get_eth_call_gas_limit(version: VmVersion) -> u64 {
558593 | VmVersion :: Vm1_5_0IncreasedBootloaderMemory
559594 | VmVersion :: VmGateway
560595 | VmVersion :: VmEvmEmulator
561- | VmVersion :: VmEcPrecompiles => crate :: vm_latest:: constants:: ETH_CALL_GAS_LIMIT ,
596+ | VmVersion :: VmEcPrecompiles
597+ | VmVersion :: VmInterop => crate :: vm_latest:: constants:: ETH_CALL_GAS_LIMIT ,
562598 }
563599}
564600
@@ -583,7 +619,8 @@ pub fn get_max_batch_base_layer_circuits(version: VmVersion) -> usize {
583619 | VmVersion :: Vm1_5_0IncreasedBootloaderMemory
584620 | VmVersion :: VmGateway
585621 | VmVersion :: VmEvmEmulator
586- | VmVersion :: VmEcPrecompiles => crate :: vm_latest:: constants:: MAX_BASE_LAYER_CIRCUITS ,
622+ | VmVersion :: VmEcPrecompiles
623+ | VmVersion :: VmInterop => crate :: vm_latest:: constants:: MAX_BASE_LAYER_CIRCUITS ,
587624 }
588625}
589626
@@ -609,7 +646,8 @@ pub fn get_max_new_factory_deps(version: VmVersion) -> usize {
609646 | VmVersion :: Vm1_5_0IncreasedBootloaderMemory
610647 | VmVersion :: VmGateway
611648 | VmVersion :: VmEvmEmulator
612- | VmVersion :: VmEcPrecompiles ) => {
649+ | VmVersion :: VmEcPrecompiles
650+ | VmVersion :: VmInterop ) => {
613651 crate :: vm_latest:: constants:: get_max_new_factory_deps ( version. try_into ( ) . unwrap ( ) )
614652 }
615653 }
0 commit comments