Module Tezos_raw_protocol_alpha.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.

type local_gas_counter =
  1. | Local_gas_counter of int

A local_gas_counter is a wrapped int.

type outdated_context

A type for describing a context that is not up to date with respect to gas consumption.

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.

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.

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.

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.