package tezos-protocol-012-Psithaca
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 =
| Endorsement : Kind.endorsement consensus_operation_type
| Preendorsement : Kind.preendorsement consensus_operation_type
val pp_operation_kind :
Tezos_protocol_environment_012_Psithaca.Format.formatter ->
'kind consensus_operation_type ->
unit
type consensus_content = {
slot : Slot_repr.t;
level : Raw_level_repr.t;
round : Round_repr.t;
block_payload_hash : Block_payload_hash.t;
}
val consensus_content_encoding :
consensus_content Tezos_protocol_environment_012_Psithaca.Data_encoding.t
val pp_consensus_content :
Tezos_protocol_environment_012_Psithaca.Format.formatter ->
consensus_content ->
unit
type consensus_watermark =
| Endorsement of Tezos_protocol_environment_012_Psithaca.Chain_id.t
| Preendorsement of Tezos_protocol_environment_012_Psithaca.Chain_id.t
val to_watermark :
consensus_watermark ->
Tezos_protocol_environment_012_Psithaca.Signature.watermark
val of_watermark :
Tezos_protocol_environment_012_Psithaca.Signature.watermark ->
consensus_watermark option
type raw = Tezos_protocol_environment_012_Psithaca.Operation.t = {
shell : Tezos_protocol_environment_012_Psithaca.Operation.shell_header;
proto : bytes;
}
val raw_encoding : raw Tezos_protocol_environment_012_Psithaca.Data_encoding.t
type 'kind operation = {
shell : Tezos_protocol_environment_012_Psithaca.Operation.shell_header;
protocol_data : 'kind protocol_data;
}
and 'kind protocol_data = {
contents : 'kind contents_list;
signature : Tezos_protocol_environment_012_Psithaca.Signature.t option;
}
and _ contents_list =
| Single : 'kind contents -> 'kind contents_list
| Cons : 'kind Kind.manager contents * 'rest Kind.manager contents_list -> ('kind * 'rest) Kind.manager contents_list
and _ contents =
| Preendorsement : consensus_content -> Kind.preendorsement contents
| Endorsement : consensus_content -> Kind.endorsement contents
| Seed_nonce_revelation : {
level : Raw_level_repr.t;
nonce : Seed_repr.nonce;
} -> Kind.seed_nonce_revelation contents
| Double_preendorsement_evidence : {
op1 : Kind.preendorsement operation;
op2 : Kind.preendorsement operation;
} -> Kind.double_preendorsement_evidence contents
| Double_endorsement_evidence : {
op1 : Kind.endorsement operation;
op2 : Kind.endorsement operation;
} -> Kind.double_endorsement_evidence contents
| Double_baking_evidence : {
bh1 : Block_header_repr.t;
bh2 : Block_header_repr.t;
} -> Kind.double_baking_evidence contents
| Activate_account : {
id : Tezos_protocol_environment_012_Psithaca.Ed25519.Public_key_hash.t;
activation_code : Blinded_public_key_hash.activation_code;
} -> Kind.activate_account contents
| Proposals : {
source : Tezos_protocol_environment_012_Psithaca.Signature.Public_key_hash.t;
period : int32;
proposals : Tezos_protocol_environment_012_Psithaca.Protocol_hash.t list;
} -> Kind.proposals contents
| Ballot : {
source : Tezos_protocol_environment_012_Psithaca.Signature.Public_key_hash.t;
period : int32;
proposal : Tezos_protocol_environment_012_Psithaca.Protocol_hash.t;
ballot : Vote_repr.ballot;
} -> Kind.ballot contents
| Failing_noop : string -> Kind.failing_noop contents
| Manager_operation : {
source : Tezos_protocol_environment_012_Psithaca.Signature.Public_key_hash.t;
fee : Tez_repr.tez;
counter : counter;
operation : 'kind manager_operation;
gas_limit : Gas_limit_repr.Arith.integral;
storage_limit : Tezos_protocol_environment_012_Psithaca.Z.t;
} -> 'kind Kind.manager contents
and _ manager_operation =
| Reveal : Tezos_protocol_environment_012_Psithaca.Signature.Public_key.t -> Kind.reveal manager_operation
| Transaction : {
amount : Tez_repr.tez;
parameters : Script_repr.lazy_expr;
entrypoint : string;
destination : Contract_repr.contract;
} -> Kind.transaction manager_operation
| Origination : {
delegate : Tezos_protocol_environment_012_Psithaca.Signature.Public_key_hash.t option;
script : Script_repr.t;
credit : Tez_repr.tez;
preorigination : Contract_repr.t option;
} -> Kind.origination manager_operation
| Delegation : Tezos_protocol_environment_012_Psithaca.Signature.Public_key_hash.t option -> Kind.delegation manager_operation
| Register_global_constant : {
value : Script_repr.lazy_expr;
} -> Kind.register_global_constant manager_operation
| Set_deposits_limit : Tez_repr.t option -> Kind.set_deposits_limit manager_operation
and counter = Tezos_protocol_environment_012_Psithaca.Z.t
type 'kind internal_operation = {
source : Contract_repr.contract;
operation : 'kind manager_operation;
nonce : int;
}
val of_list :
packed_contents list ->
packed_contents_list
Tezos_protocol_environment_012_Psithaca.Error_monad.tzresult
val to_list : packed_contents_list -> packed_contents list
type packed_operation = {
shell : Tezos_protocol_environment_012_Psithaca.Operation.shell_header;
protocol_data : packed_protocol_data;
}
val pack : 'kind operation -> packed_operation
type packed_internal_operation =
| Internal_operation : 'kind internal_operation -> packed_internal_operation
val manager_kind : 'kind manager_operation -> 'kind Kind.manager
val contents_encoding :
packed_contents Tezos_protocol_environment_012_Psithaca.Data_encoding.t
val contents_list_encoding :
packed_contents_list Tezos_protocol_environment_012_Psithaca.Data_encoding.t
val protocol_data_encoding :
packed_protocol_data Tezos_protocol_environment_012_Psithaca.Data_encoding.t
val unsigned_operation_encoding :
(Tezos_protocol_environment_012_Psithaca.Operation.shell_header
* packed_contents_list)
Tezos_protocol_environment_012_Psithaca.Data_encoding.t
val hash_raw : raw -> Tezos_protocol_environment_012_Psithaca.Operation_hash.t
val hash :
_ operation ->
Tezos_protocol_environment_012_Psithaca.Operation_hash.t
val hash_packed :
packed_operation ->
Tezos_protocol_environment_012_Psithaca.Operation_hash.t
val acceptable_passes : packed_operation -> int list
val internal_operation_encoding :
packed_internal_operation
Tezos_protocol_environment_012_Psithaca.Data_encoding.t
val packed_internal_operation_in_memory_size :
packed_internal_operation ->
Cache_memory_helpers.nodes_and_size
module Encoding : sig ... end
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>