pub fn transact<H, I>(
args: I::TransactArgs,
heap_depth: Option<usize>,
backend: &mut H,
invoker: &I,
) -> Result<I::TransactValue, ExitError>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.