Script_interpreter.Internals
Internally, 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_001_PtAtLas.Error_monad.tzresult
Mavryk_protocol_environment_001_PtAtLas.Lwt.t
next 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_001_PtAtLas.Error_monad.tzresult
Mavryk_protocol_environment_001_PtAtLas.Lwt.t
val 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_001_PtAtLas.Error_monad.tzresult
Mavryk_protocol_environment_001_PtAtLas.Lwt.t
val 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_001_PtAtLas.Error_monad.tzresult
Mavryk_protocol_environment_001_PtAtLas.Lwt.t
kstep 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