Mavryk_raw_protocol_001_PtAtLas.Local_gas_counter
This module exposes an API for local gas counting. It provides a set of functions for updating a gas counter without applying it on an an Alpha_context.context
.
A type for describing a context that is not up to date with respect to gas consumption.
val update_context :
local_gas_counter ->
outdated_context ->
Alpha_context.context
val local_gas_counter_and_outdated_context :
Alpha_context.context ->
local_gas_counter * outdated_context
local_gas_counter_and_outdated_context ctxt
returns the gas counter value corresponding to the remaining gas in the given context ctxt
along with an outdated_context
value.
val use_gas_counter_in_context :
outdated_context ->
local_gas_counter ->
(Alpha_context.context ->
('a * Alpha_context.context)
Mavryk_protocol_environment_001_PtAtLas.Error_monad.tzresult
Mavryk_protocol_environment_001_PtAtLas.Lwt.t) ->
('a * outdated_context * local_gas_counter)
Mavryk_protocol_environment_001_PtAtLas.Error_monad.tzresult
Mavryk_protocol_environment_001_PtAtLas.Lwt.t
use_gas_counter_in_context outdated_ctxt gas_counter f
first applies the gas_counter
on the outdated context outdated_ctxt
, then invokes f
on the resulting context, and returns a new outdated_context
and a local_gas_counter
value.
val consume_opt :
local_gas_counter ->
Alpha_context.Gas.cost ->
local_gas_counter option
consume_opt amt cost
attempts to consume an amt
of gas and returns the new remaining value wrapped in Some
. If the resulting gas is negative None
is returned.
val consume :
local_gas_counter ->
Alpha_context.Gas.cost ->
local_gas_counter
Mavryk_protocol_environment_001_PtAtLas.Error_monad.tzresult
consume amt cost
attempts to consume an amt
of gas and returns the new remaining value as a result. If the resulting gas is negative, an error Gas.Operation_quota_exceeded
is instead returned.