package tezos-protocol-012-Psithaca

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

Tezos Protocol Implementation - Low level Repr. of Operations

Defines kinds of operations that can be performed on chain:

  • preendorsement
  • endorsement
  • double baking evidence
  • double preendorsing evidence
  • double endorsing evidence
  • seed nonce revelation
  • account activation
  • proposal (see: Voting_repr)
  • ballot (see: Voting_repr)
  • failing noop
  • manager operation (which in turn has several types):
  • revelation
  • transaction
  • origination
  • delegation
  • set deposits limitation

Each of them can be encoded as raw bytes. Operations are distinguished at type level using phantom type parameters. packed_operation type allows for unifying them when required, for instance to put them on a single list.

module Kind : sig ... end
type 'a consensus_operation_type =
  1. | Endorsement : Kind.endorsement consensus_operation_type
  2. | Preendorsement : Kind.preendorsement consensus_operation_type
type consensus_content = {
  1. slot : Slot_repr.t;
  2. level : Raw_level_repr.t;
  3. round : Round_repr.t;
  4. block_payload_hash : Block_payload_hash.t;
}
type 'kind operation = {
  1. shell : Tezos_protocol_environment_012_Psithaca.Operation.shell_header;
  2. protocol_data : 'kind protocol_data;
}
and 'kind protocol_data = {
  1. contents : 'kind contents_list;
  2. signature : Tezos_protocol_environment_012_Psithaca.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. | Preendorsement : consensus_content -> Kind.preendorsement contents
  2. | Endorsement : consensus_content -> Kind.endorsement contents
  3. | Seed_nonce_revelation : {
    1. level : Raw_level_repr.t;
    2. nonce : Seed_repr.nonce;
    } -> Kind.seed_nonce_revelation contents
  4. | Double_preendorsement_evidence : {
    1. op1 : Kind.preendorsement operation;
    2. op2 : Kind.preendorsement operation;
    } -> Kind.double_preendorsement_evidence contents
  5. | Double_endorsement_evidence : {
    1. op1 : Kind.endorsement operation;
    2. op2 : Kind.endorsement operation;
    } -> Kind.double_endorsement_evidence contents
  6. | Double_baking_evidence : {
    1. bh1 : Block_header_repr.t;
    2. bh2 : Block_header_repr.t;
    } -> Kind.double_baking_evidence contents
  7. | Activate_account : {
    1. id : Tezos_protocol_environment_012_Psithaca.Ed25519.Public_key_hash.t;
    2. activation_code : Blinded_public_key_hash.activation_code;
    } -> Kind.activate_account contents
  8. | Proposals : {
    1. source : Tezos_protocol_environment_012_Psithaca.Signature.Public_key_hash.t;
    2. period : int32;
    3. proposals : Tezos_protocol_environment_012_Psithaca.Protocol_hash.t list;
    } -> Kind.proposals contents
  9. | Ballot : {
    1. source : Tezos_protocol_environment_012_Psithaca.Signature.Public_key_hash.t;
    2. period : int32;
    3. proposal : Tezos_protocol_environment_012_Psithaca.Protocol_hash.t;
    4. ballot : Vote_repr.ballot;
    } -> Kind.ballot contents
  10. | Failing_noop : string -> Kind.failing_noop contents
  11. | Manager_operation : {
    1. source : Tezos_protocol_environment_012_Psithaca.Signature.Public_key_hash.t;
    2. fee : Tez_repr.tez;
    3. counter : counter;
    4. operation : 'kind manager_operation;
    5. gas_limit : Gas_limit_repr.Arith.integral;
    6. storage_limit : Tezos_protocol_environment_012_Psithaca.Z.t;
    } -> 'kind Kind.manager contents
type 'kind internal_operation = {
  1. source : Contract_repr.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
val pack : 'kind operation -> packed_operation
type packed_internal_operation =
  1. | Internal_operation : 'kind internal_operation -> packed_internal_operation
val manager_kind : 'kind manager_operation -> 'kind Kind.manager
val raw : _ operation -> raw
val acceptable_passes : packed_operation -> int list
type ('a, 'b) eq =
  1. | Eq : ('a, 'a) eq
val equal : 'a operation -> 'b operation -> ('a, 'b) eq option
val packed_internal_operation_in_memory_size : packed_internal_operation -> Cache_memory_helpers.nodes_and_size
module Encoding : sig ... end
OCaml

Innovation. Community. Security.