[][src]Trait sc_executor_common::sandbox::SandboxCapabilities

pub trait SandboxCapabilities: FunctionContext {
    type SupervisorFuncRef;
    fn invoke(
        &mut self,
        dispatch_thunk: &Self::SupervisorFuncRef,
        invoke_args_ptr: Pointer<u8>,
        invoke_args_len: WordSize,
        state: u32,
        func_idx: SupervisorFuncIndex
    ) -> Result<i64>; }

This trait encapsulates sandboxing capabilities.

Note that this functions are only called in the supervisor context.

Associated Types

type SupervisorFuncRef

Represents a function reference into the supervisor environment.

Loading content...

Required methods

fn invoke(
    &mut self,
    dispatch_thunk: &Self::SupervisorFuncRef,
    invoke_args_ptr: Pointer<u8>,
    invoke_args_len: WordSize,
    state: u32,
    func_idx: SupervisorFuncIndex
) -> Result<i64>

Invoke a function in the supervisor environment.

This first invokes the dispatch_thunk function, passing in the function index of the desired function to call and serialized arguments. The thunk calls the desired function with the deserialized arguments, then serializes the result into memory and returns reference. The pointer to and length of the result in linear memory is encoded into an i64, with the upper 32 bits representing the pointer and the lower 32 bits representing the length.

Errors

Returns Err if the dispatch_thunk function has an incorrect signature or traps during execution.

Loading content...

Implementors

Loading content...