Liquidity_baking_machine.ValidationMachine
The state of the ValidationMachine
.
module Symbolic : sig ... end
A collections of functions to introspect the symbolic part of the ValidationMachine
state.
module Concrete : sig ... end
A collections of functions to introspect the concrete part of the ValidationMachine
state.
val build :
?invariant:
(Mavryk_protocol_alpha.Protocol.Alpha_context.Contract.t env ->
t ->
bool Mavryk_base.TzPervasives.tzresult Lwt.t) ->
?subsidy:xtz ->
specs ->
(t * Mavryk_protocol_alpha.Protocol.Alpha_context.Contract.t env)
Mavryk_base.TzPervasives.tzresult
Lwt.t
build specs
asynchronously computes (1) an initial state for the ValidationMachine
, and (2) the environment associated to this state.
The machine enforces the resulting state is consistent with the specs
given as inputs, and raises an Assert_failure
exception if it does not. It also enforces that the machines used underneath remain in sync.
One can use the optional argument subsidy
to set the subsidy amount to a given value (by default, we use the same as the main chain). Additionally, the invariant
optional argument can be used to verify that a given invariant holds at the end of the initialization.
val step :
?invariant:
(Mavryk_protocol_alpha.Protocol.Alpha_context.Contract.t env ->
t ->
bool Mavryk_base.TzPervasives.tzresult Lwt.t) ->
Mavryk_protocol_alpha.Protocol.Alpha_context.Contract.t step ->
Mavryk_protocol_alpha.Protocol.Alpha_context.Contract.t env ->
t ->
t Mavryk_base.TzPervasives.tzresult Lwt.t
step s env state
asynchronously executes a single step s
from state
.
The invariant
optional argument can be used to verify that a given invariant holds after each baked block.
val run :
?invariant:
(Mavryk_protocol_alpha.Protocol.Alpha_context.Contract.t env ->
t ->
bool Mavryk_base.TzPervasives.tzresult Lwt.t) ->
contract_id step list ->
Mavryk_protocol_alpha.Protocol.Alpha_context.Contract.t env ->
t ->
t Mavryk_base.TzPervasives.tzresult Lwt.t
run lss env state
asynchronously executes a list of steps from state
.
The invariant
optional argument can be used to verify that a given invariant holds after each baked block.