clone_cw_multi_test/wasm_emulation/
instance.rs1use cosmwasm_vm::internals::compile;
2use cosmwasm_vm::internals::{instance_from_module, make_compiling_engine};
3use cosmwasm_vm::{Backend, BackendApi, Instance, InstanceOptions, Querier, Storage, VmResult};
4use wasmer::{Engine, Module, Store};
5
6pub fn create_module(code: &[u8]) -> VmResult<(Engine, Module)> {
7 let engine = make_compiling_engine(None);
8 let module = compile(&engine, code)?;
9 Ok((engine, module))
10}
11
12pub fn instance_from_reused_module<A, S, Q>(
15 (engine, module): (Engine, Module),
16 backend: Backend<A, S, Q>,
17 options: InstanceOptions,
18) -> VmResult<Instance<A, S, Q>>
19where
20 A: BackendApi + 'static,
21 S: Storage + 'static,
22 Q: Querier + 'static,
23{
24 let store = Store::new(engine);
25 instance_from_module(store, &module, backend, options.gas_limit, None)
26}