transact

Function transact 

Source
pub fn transact<H, I>(
    args: I::TransactArgs,
    heap_depth: Option<usize>,
    backend: &mut H,
    invoker: &I,
) -> Result<I::TransactValue, ExitError>
where I: Invoker<H, Interrupt = Infallible>, I::Interpreter: Interpreter<H>,
Expand description

Initiate a transaction, using a hybrid call stack.

Up until heap_depth, a stack-based call stack is used first. A stack-based call stack is faster, but for really deep calls, it can reach the default stack size limit of the platform and thus overflow.

After heap_depth, a heap-based call stack is then used.

If heap_depth is None, then always use a stack-based call stack.

Because a stack-based call stack cannot handle interrupts, the Invoker type must have its Interrupt type set to Infallible.