package tezos-protocol-011-PtHangz2

  1. Overview
  2. Docs
Legend:
Library
Module
Module type
Parameter
Class
Class type

An Alpha_context.t is an immutable snapshot of the ledger state at some block height, preserving type-safety and invariants of the ledger state.

Implementation

Alpha_context.t is a wrapper over Raw_context.t, which in turn is a wrapper around Context.t from the Protocol Environment.

Lifetime of an Alpha_context

  • Creation, using prepare or prepare_first_block
  • Modification, using the operations defined in this signature
  • Finalization, using finalize
module type BASIC_DATA = sig ... end
type t
type context = t
type signature = Tezos_crypto.Signature.t
module Tez : sig ... end
module Period : sig ... end
module Timestamp : sig ... end
module Raw_level : sig ... end
module Cycle : sig ... end
module Gas : sig ... end

This module implements the gas subsystem of the context.

module Script_string : module type of Script_string_repr

Strings of printable characters

module Script_int : module type of Script_int_repr
module Script_timestamp : sig ... end
module Script : sig ... end
module Constants : sig ... end
module Global_constants_storage : sig ... end
module Cache : sig ... end

Frequently used data should be kept in memory and persist along a chain of blocks. The caching mechanism allows the economic protocol to declare such data and to rely on a Least Recently Used strategy to keep the cache size under a fixed limit.

module Level : sig ... end
module Fitness : sig ... end
module Nonce : sig ... end
module Seed : sig ... end
module Big_map : sig ... end
module Sapling : sig ... end
module Lazy_storage : sig ... end
module Contract : sig ... end
module Receipt : sig ... end
module Delegate : sig ... end
module Voting_period : sig ... end
module Vote : sig ... end
module Block_header : sig ... end
module Kind : sig ... end
type 'kind operation = {
  1. shell : Tezos_base.Operation.shell_header;
  2. protocol_data : 'kind protocol_data;
}
and 'kind protocol_data = {
  1. contents : 'kind contents_list;
  2. signature : Tezos_crypto.Signature.t option;
}
and _ contents_list =
  1. | Single : 'kind contents -> 'kind contents_list
  2. | Cons : 'kind Kind.manager contents * 'rest Kind.manager contents_list -> ('kind * 'rest) Kind.manager contents_list
and _ contents =
  1. | Endorsement : {
    1. level : Raw_level.t;
    } -> Kind.endorsement contents
  2. | Seed_nonce_revelation : {
    1. level : Raw_level.t;
    2. nonce : Nonce.t;
    } -> Kind.seed_nonce_revelation contents
  3. | Endorsement_with_slot : {
    1. endorsement : Kind.endorsement operation;
    2. slot : int;
    } -> Kind.endorsement_with_slot contents
  4. | Double_endorsement_evidence : {
    1. op1 : Kind.endorsement operation;
    2. op2 : Kind.endorsement operation;
    3. slot : int;
    } -> Kind.double_endorsement_evidence contents
  5. | Double_baking_evidence : {
    1. bh1 : Block_header.t;
    2. bh2 : Block_header.t;
    } -> Kind.double_baking_evidence contents
  6. | Activate_account : {
    1. id : Tezos_crypto.Ed25519.Public_key_hash.t;
    2. activation_code : Blinded_public_key_hash.activation_code;
    } -> Kind.activate_account contents
  7. | Proposals : {
    1. source : Tezos_crypto.Signature.public_key_hash;
    2. period : int32;
    3. proposals : Tezos_crypto.Protocol_hash.t list;
    } -> Kind.proposals contents
  8. | Ballot : {
    1. source : Tezos_crypto.Signature.public_key_hash;
    2. period : int32;
    3. proposal : Tezos_crypto.Protocol_hash.t;
    4. ballot : Vote.ballot;
    } -> Kind.ballot contents
  9. | Failing_noop : string -> Kind.failing_noop contents
  10. | Manager_operation : {
    1. source : Tezos_crypto.Signature.public_key_hash;
    2. fee : Tez.tez;
    3. counter : counter;
    4. operation : 'kind manager_operation;
    5. gas_limit : Gas.Arith.integral;
    6. storage_limit : Z.t;
    } -> 'kind Kind.manager contents
and _ manager_operation =
  1. | Reveal : Tezos_crypto.Signature.public_key -> Kind.reveal manager_operation
  2. | Transaction : {
    1. amount : Tez.tez;
    2. parameters : Script.lazy_expr;
    3. entrypoint : string;
    4. destination : Contract.contract;
    } -> Kind.transaction manager_operation
  3. | Origination : {
    1. delegate : Tezos_crypto.Signature.public_key_hash option;
    2. script : Script.t;
    3. credit : Tez.tez;
    4. preorigination : Contract.t option;
    } -> Kind.origination manager_operation
  4. | Delegation : Tezos_crypto.Signature.public_key_hash option -> Kind.delegation manager_operation
  5. | Register_global_constant : {
    1. value : Script.lazy_expr;
    } -> Kind.register_global_constant manager_operation
and counter = Z.t
type 'kind internal_operation = {
  1. source : Contract.contract;
  2. operation : 'kind manager_operation;
  3. nonce : int;
}
type packed_manager_operation =
  1. | Manager : 'kind manager_operation -> packed_manager_operation
type packed_contents =
  1. | Contents : 'kind contents -> packed_contents
type packed_contents_list =
  1. | Contents_list : 'kind contents_list -> packed_contents_list
type packed_protocol_data =
  1. | Operation_data : 'kind protocol_data -> packed_protocol_data
type packed_operation = {
  1. shell : Tezos_base.Operation.shell_header;
  2. protocol_data : packed_protocol_data;
}
type packed_internal_operation =
  1. | Internal_operation : 'kind internal_operation -> packed_internal_operation
val manager_kind : 'kind manager_operation -> 'kind Kind.manager
module Fees : sig ... end
module Operation : sig ... end
module Roll : sig ... end
module Commitment : sig ... end
module Bootstrap : sig ... end
module Global : sig ... end
val max_operations_ttl : int
module Migration : sig ... end
val prepare_first_block : Environment_context.Context.t -> typecheck: (context -> Script.t -> ((Script.t * Lazy_storage.diffs option) * context, Tezos_protocol_environment_011_PtHangz2__Environment.Error_monad.error Tezos_protocol_environment_011_PtHangz2__Environment.Error_monad.trace) result Lwt.t) -> level:int32 -> timestamp:Tezos_base.Time.Protocol.t -> fitness:Fitness.t -> (context, Tezos_protocol_environment_011_PtHangz2__Environment.Error_monad.error Tezos_protocol_environment_011_PtHangz2__Environment.Error_monad.trace) result Lwt.t

Create an Alpha_context.t from an untyped context (first block in the chain only).

val prepare : Environment_context.Context.t -> level:int32 -> predecessor_timestamp:Tezos_base.Time.Protocol.t -> timestamp:Tezos_base.Time.Protocol.t -> fitness:Fitness.t -> (context * Receipt.balance_updates * Migration.origination_result list, Tezos_protocol_environment_011_PtHangz2__Environment.Error_monad.error Tezos_protocol_environment_011_PtHangz2__Environment.Error_monad.trace) result Lwt.t

Create an Alpha_context.t from an untyped context.

val finalize : ?commit_message:string -> context -> Environment_context.validation_result

Finalize an Alpha_context.t, producing a validation_result.

val allowed_endorsements : context -> (Tezos_crypto.Signature.public_key * int list * bool) Tezos_protocol_environment_011_PtHangz2__Environment.Signature.Public_key_hash.Map.t
val init_endorsements : context -> (Tezos_crypto.Signature.public_key * int list * bool) Tezos_protocol_environment_011_PtHangz2__Environment.Signature.Public_key_hash.Map.t -> context
val included_endorsements : context -> int
val reset_internal_nonce : context -> context
val fresh_internal_nonce : context -> (context * int, Tezos_protocol_environment_011_PtHangz2__Environment.Error_monad.error Tezos_protocol_environment_011_PtHangz2__Environment.Error_monad.trace) result
val record_internal_nonce : context -> int -> context
val internal_nonce_already_recorded : context -> int -> bool
val add_fees : context -> Tez.t -> (context, Tezos_protocol_environment_011_PtHangz2__Environment.Error_monad.error Tezos_protocol_environment_011_PtHangz2__Environment.Error_monad.trace) result
val add_rewards : context -> Tez.t -> (context, Tezos_protocol_environment_011_PtHangz2__Environment.Error_monad.error Tezos_protocol_environment_011_PtHangz2__Environment.Error_monad.trace) result
val get_fees : context -> Tez.t
val get_rewards : context -> Tez.t
val description : context Storage_description.t
module Parameters : sig ... end
module Liquidity_baking : sig ... end