Script_interpreter.InternalsInternally, the interpretation loop uses a local gas counter.
val next :
Script_typed_ir.logger option ->
(Local_gas_counter.outdated_context * step_constants) ->
Local_gas_counter.local_gas_counter ->
('a, 's) Script_typed_ir.stack_ty ->
('a, 's, 'r, 'f) Script_typed_ir.continuation ->
'a ->
's ->
('r
* 'f
* Local_gas_counter.outdated_context
* Local_gas_counter.local_gas_counter)
Mavryk_protocol_environment_alpha.Error_monad.tzresult
Mavryk_protocol_environment_alpha.Lwt.tnext logger (ctxt, step_constants) local_gas_counter ks accu
stack is an internal function which interprets the continuation ks to execute the interpreter on the current A-stack.
val step :
(Local_gas_counter.outdated_context * step_constants) ->
Local_gas_counter.local_gas_counter ->
('a, 's, 'r, 'f) Script_typed_ir.kinstr ->
'a ->
's ->
('r
* 'f
* Local_gas_counter.outdated_context
* Local_gas_counter.local_gas_counter)
Mavryk_protocol_environment_alpha.Error_monad.tzresult
Mavryk_protocol_environment_alpha.Lwt.tval step_descr :
Script_typed_ir.logger option ->
Alpha_context.context ->
Script_typed_ir.step_constants ->
('a, 's, 'r, 'f) Script_typed_ir.kdescr ->
'a ->
's ->
('r * 'f * Alpha_context.context)
Mavryk_protocol_environment_alpha.Error_monad.tzresult
Mavryk_protocol_environment_alpha.Lwt.tval kstep :
Script_typed_ir.logger option ->
Alpha_context.context ->
step_constants ->
('a, 's) Script_typed_ir.stack_ty ->
('a, 's, 'r, 'f) Script_typed_ir.kinstr ->
'a ->
's ->
('r * 'f * Alpha_context.context)
Mavryk_protocol_environment_alpha.Error_monad.tzresult
Mavryk_protocol_environment_alpha.Lwt.tkstep logger ctxt step_constants kinstr accu stack interprets the script represented by kinstr under the context ctxt. This will turn a stack whose topmost element is accu and remaining elements stack into a new accumulator and a new stack. This function also returns an updated context. If logger is given, kstep calls back its functions at specific points of the execution. The execution is parameterized by some step_constants.
module Raw : sig ... end