multiversx_chain_vm/vm_hooks/vh_handler/
vh_error.rs1use multiversx_chain_core::types::ReturnCode;
2
3use crate::{types::RawHandle, vm_hooks::VMHooksHandlerSource};
4
5use super::VMHooksManagedTypes;
6
7pub trait VMHooksError: VMHooksHandlerSource {
8 fn signal_error(&self, message: &[u8]) -> ! {
9 println!("{}", std::str::from_utf8(message).unwrap());
12
13 self.halt_with_error(ReturnCode::UserError, std::str::from_utf8(message).unwrap())
14 }
15}
16
17pub trait VMHooksErrorManaged: VMHooksManagedTypes + VMHooksError {
18 fn signal_error_from_buffer(&self, message_handle: RawHandle) -> ! {
19 self.signal_error(self.m_types_lock().mb_get(message_handle))
20 }
21}