1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#![doc = include_str!("../README.md")]

mod cache;
mod code;
mod errors;
mod features;
mod imports;
mod instrument;
pub mod logic;
#[cfg(all(feature = "wasmer0_vm", target_arch = "x86_64"))]
mod memory;
pub mod prepare;
mod profile;
mod runner;
#[cfg(test)]
mod tests;
#[cfg(all(feature = "unc_vm", target_arch = "x86_64"))]
mod unc_vm_runner;
mod utils;
#[cfg(all(feature = "wasmer2_vm", target_arch = "x86_64"))]
mod wasmer2_runner;
#[cfg(all(feature = "wasmer0_vm", target_arch = "x86_64"))]
mod wasmer_runner;
#[cfg(feature = "wasmtime_vm")]
mod wasmtime_runner;

pub use crate::logic::with_ext_cost_counter;
pub use cache::{get_contract_cache_key, precompile_contract, MockCompiledContractCache};
pub use code::ContractCode;
pub use profile::ProfileDataV2;
pub use profile::ProfileDataV3;
pub use runner::{run, VM};

/// This is public for internal experimentation use only, and should otherwise be considered an
/// implementation detail of `unc-vm-runner`.
#[doc(hidden)]
pub mod internal {
    pub use crate::runner::VMKindExt;
    pub use wasmparser;
}