multiversx_chain_vm/host/vm_hooks/
vh_early_exit.rs1use multiversx_chain_core::types::ReturnCode;
2use multiversx_chain_vm_executor::VMHooksEarlyExit;
3
4pub const ASYNC_CALL_EARLY_EXIT_CODE: u64 = 0;
5
6pub fn early_exit_out_of_gas() -> VMHooksEarlyExit {
7 VMHooksEarlyExit::new(ReturnCode::OutOfGas.as_u64())
8}
9
10pub fn early_exit_vm_error(message: &'static str) -> VMHooksEarlyExit {
11 VMHooksEarlyExit::new(ReturnCode::ExecutionFailed.as_u64()).with_const_message(message)
12}
13
14pub fn early_exit_async_call() -> VMHooksEarlyExit {
15 VMHooksEarlyExit::new(ASYNC_CALL_EARLY_EXIT_CODE).with_const_message("async call exit")
16}