62#ifdef SYSIO_SYS_VM_RUNTIME_ENABLED
63 if(vm == wasm_interface::vm_type::eos_vm)
64 runtime_interface = std::make_unique<webassembly::eos_vm_runtime::eos_vm_runtime<sysio::vm::interpreter>>();
65#endif
66#ifdef SYSIO_SYS_VM_JIT_RUNTIME_ENABLED
67 if(vm == wasm_interface::vm_type::eos_vm_jit && profile) {
69 runtime_interface = std::make_unique<webassembly::eos_vm_runtime::eos_vm_profile_runtime>();
70 }
71 if(vm == wasm_interface::vm_type::eos_vm_jit && !profile)
72 runtime_interface = std::make_unique<webassembly::eos_vm_runtime::eos_vm_runtime<sysio::vm::jit>>();
73#endif
74#ifdef SYSIO_SYS_VM_OC_RUNTIME_ENABLED
75 if(vm == wasm_interface::vm_type::eos_vm_oc)
76 runtime_interface = std::make_unique<webassembly::eosvmoc::eosvmoc_runtime>(data_dir, eosvmoc_config, d);
77#endif
80
81#ifdef SYSIO_SYS_VM_OC_RUNTIME_ENABLED
82 if(eosvmoc_tierup) {
83 SYS_ASSERT(vm != wasm_interface::vm_type::eos_vm_oc,
wasm_exception,
"You can't use SYS VM OC as the base runtime when tier up is activated");
84 eosvmoc.emplace(data_dir, eosvmoc_config, d);
85 }
86#endif
87 }
#define SYS_THROW(exc_type, FORMAT,...)
#define SYS_ASSERT(expr, exc_type, FORMAT,...)
key Invalid authority Invalid transaction Invalid block ID Invalid packed transaction Invalid chain ID Invalid symbol Signature type is not a currently activated type Block can not be found Unlinkable block Block does not guarantee concurrent execution without conflicts Block exhausted allowed resources Block is from the future Block is not signed by expected producer Block includes an ill formed protocol feature activation extension Block includes an ill formed additional block signature extension Error decompressing transaction Transaction should have at least one required authority Expired Transaction Invalid Reference Block Duplicate deferred transaction The transaction can not be found Transaction is too big Invalid transaction extension Transaction includes disallowed Transaction exceeded transient resource limit Account name already exists sysio_assert_message assertion failure Action can not be found Attempt to use unaccessible API Inline Action exceeds maximum size limit sysio_assert_code assertion failure uses restricted error code value action return value size too big Permission Query Exception Contract Table Query Exception Database is an unknown or unsupported version Database usage is at unsafe levels wasm_exception
void set_profile_interval_us(uint32_t value)
const wasm_interface::vm_type wasm_runtime_time
const chainbase::database & db
std::unique_ptr< wasm_runtime_interface > runtime_interface