multiversx_chain_vm/vm_hooks/
vh_handler.rs

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
mod vh_blockchain;
mod vh_call_value;
mod vh_crypto;
mod vh_endpoint_arg;
mod vh_endpoint_finish;
mod vh_error;
mod vh_log;
mod vh_managed_types;
mod vh_send;
mod vh_storage;

pub use vh_blockchain::VMHooksBlockchain;
pub use vh_call_value::VMHooksCallValue;
pub use vh_crypto::VMHooksCrypto;
pub use vh_endpoint_arg::VMHooksEndpointArgument;
pub use vh_endpoint_finish::VMHooksEndpointFinish;
pub use vh_error::{VMHooksError, VMHooksErrorManaged};
pub use vh_log::VMHooksLog;
pub use vh_managed_types::{
    VMHooksBigFloat, VMHooksBigInt, VMHooksManagedBuffer, VMHooksManagedMap, VMHooksManagedTypes,
};
pub use vh_send::VMHooksSend;
pub use vh_storage::{VMHooksStorageRead, VMHooksStorageWrite};

/// Defines all methods that can handle VM hooks. They are spread out over several traits.
pub trait VMHooksHandler:
    VMHooksManagedTypes
    + VMHooksCallValue
    + VMHooksEndpointArgument
    + VMHooksEndpointFinish
    + VMHooksError
    + VMHooksErrorManaged
    + VMHooksStorageRead
    + VMHooksStorageWrite
    + VMHooksCrypto
    + VMHooksBlockchain
    + VMHooksLog
    + VMHooksSend
{
}