package tezos-protocol-environment
include Tezos_protocol_environment_sigs.V2.T
with type Format.formatter = Format.formatter
and type 'a Data_encoding.t = 'a Data_encoding.t
and type 'a Data_encoding.lazy_t = 'a Data_encoding.lazy_t
and type 'a Lwt.t = 'a Lwt.t
and type ('a, 'b) Pervasives.result = ('a, 'b) result
and type Chain_id.t = Tezos_crypto.Chain_id.t
and type Block_hash.t = Tezos_crypto.Block_hash.t
and type Operation_hash.t = Tezos_crypto.Operation_hash.t
and type Operation_list_hash.t = Tezos_crypto.Operation_list_hash.t
and type Operation_list_list_hash.t =
Tezos_crypto.Operation_list_list_hash.t
and type Context.t = Environment_context.Context.t
and type Context_hash.t = Tezos_crypto.Context_hash.t
and type Protocol_hash.t = Tezos_crypto.Protocol_hash.t
and type Time.t = Tezos_base.Time.Protocol.t
and type Operation.shell_header = Tezos_base.Operation.shell_header
and type Operation.t = Tezos_base.Operation.t
and type Block_header.shell_header = Tezos_base.Block_header.shell_header
and type Block_header.t = Tezos_base.Block_header.t
and type 'a RPC_directory.t = 'a Tezos_rpc.RPC_directory.t
and type Ed25519.Public_key_hash.t = Tezos_crypto.Ed25519.Public_key_hash.t
and type Ed25519.Public_key.t = Tezos_crypto.Ed25519.Public_key.t
and type Ed25519.t = Tezos_crypto.Ed25519.t
and type Secp256k1.Public_key_hash.t =
Tezos_crypto.Secp256k1.Public_key_hash.t
and type Secp256k1.Public_key.t = Tezos_crypto.Secp256k1.Public_key.t
and type Secp256k1.t = Tezos_crypto.Secp256k1.t
and type P256.Public_key_hash.t = Tezos_crypto.P256.Public_key_hash.t
and type P256.Public_key.t = Tezos_crypto.P256.Public_key.t
and type P256.t = Tezos_crypto.P256.t
and type Signature.public_key_hash = Tezos_crypto.Signature.public_key_hash
and type Signature.public_key = Tezos_crypto.Signature.public_key
and type Signature.t = Tezos_crypto.Signature.t
and type Signature.watermark = Tezos_crypto.Signature.watermark
and type Pvss_secp256k1.Commitment.t =
Tezos_crypto.Pvss_secp256k1.Commitment.t
and type Pvss_secp256k1.Encrypted_share.t =
Tezos_crypto.Pvss_secp256k1.Encrypted_share.t
and type Pvss_secp256k1.Clear_share.t =
Tezos_crypto.Pvss_secp256k1.Clear_share.t
and type Pvss_secp256k1.Public_key.t =
Tezos_crypto.Pvss_secp256k1.Public_key.t
and type Pvss_secp256k1.Secret_key.t =
Tezos_crypto.Pvss_secp256k1.Secret_key.t
and type 'a Micheline.canonical = 'a Tezos_micheline.Micheline.canonical
and type Z.t = Z.t
and type ('a, 'b) Micheline.node = ('a, 'b) Tezos_micheline.Micheline.node
and type Data_encoding.json_schema = Data_encoding.json_schema
and type ('a, 'b) RPC_path.t = ('a, 'b) Tezos_rpc.RPC_path.t
and type RPC_service.meth = Tezos_rpc.RPC_service.meth
and type (+'m, 'pr, 'p, 'q, 'i, 'o) RPC_service.t =
('m, 'pr, 'p, 'q, 'i, 'o) Tezos_rpc.RPC_service.t
and type Error_monad.shell_tztrace =
Tezos_error_monad.TzCore.error
Tezos_error_monad.Error_monad.TzTrace.trace
and type 'a Error_monad.shell_tzresult =
('a,
Tezos_error_monad.TzCore.error
Tezos_error_monad.Error_monad.TzTrace.trace)
result
and module Sapling = Tezos_sapling.Core.Validator
module Pervasives : sig ... end
The OCaml Standard library.
module List : sig ... end
List operations.
module String : sig ... end
String operations.
module Char : sig ... end
Character operations.
module Bytes : sig ... end
Byte sequence operations.
module Int32 : sig ... end
32-bit integers.
module Int64 : sig ... end
64-bit integers.
module Format : sig ... end
Pretty-printing.
module Hex : sig ... end
Hexadecimal encoding.
module Z : sig ... end
Integers.
module Lwt : sig ... end
module Lwt_list : sig ... end
List helpers
module Data_encoding : sig ... end
module Raw_hashes : sig ... end
module Compare : sig ... end
module Error_monad : sig ... end
module Logging : sig ... end
module Time : sig ... end
module Option : sig ... end
Signature from Lwtreslib's option module
module TzEndian : sig ... end
module Bits : sig ... end
module RPC_arg : sig ... end
module RPC_path : sig ... end
module RPC_query : sig ... end
module RPC_service : sig ... end
module RPC_answer : sig ... end
module RPC_directory : sig ... end
module Base58 : sig ... end
module S : sig ... end
module Set : sig ... end
Sets over ordered types.
module Map : sig ... end
Association tables over ordered types.
module Blake2B : sig ... end
Builds a new Hash type using Blake2B.
module Bls12_381 : sig ... end
module Ed25519 : sig ... end
Tezos - Ed25519 cryptography
module Secp256k1 : sig ... end
Tezos - Secp256k1 cryptography
module P256 : sig ... end
Tezos - P256 cryptography
module Chain_id : sig ... end
module Signature : sig ... end
module Block_hash : sig ... end
module Operation_hash : sig ... end
module Operation_list_hash : sig ... end
module Operation_list_list_hash : sig ... end
module Protocol_hash : sig ... end
module Context_hash : sig ... end
module Pvss_secp256k1 : sig ... end
Tezos - PVSS Secp256k1 cryptography
module Sapling = Tezos_sapling.Core.Validator
module Micheline : sig ... end
module Block_header : sig ... end
module Fitness : sig ... end
module Operation : sig ... end
Tezos operations.
module Protocol : sig ... end
module Context : sig ... end
View over the context store, restricted to types, access and functional manipulation of an existing context.
module Updater : sig ... end
Tezos Protocol Environment - Protocol updater.
module RPC_context : sig ... end
module Equality_witness : sig ... end
This module provides support for type equalities and runtime type identifiers.
An Ecoproto_error e
is a shell error that carry a protocol error.
Each protocol has its own error-monad (instantiated when this module here is applied) with a fresh extensible error type. This protocol-specific error type is incompatible with the shell's. The Ecoproto_error
constructor belongs to the shell's error type and it carries the errors of the protocol's specific error type back into the shell's.
The function wrap_tz*
below provide wrappers for three different levels: errors, traces, and tzresults. They are used within the implementation of the environment to translate some return values from the protocol's error monad into the shell's. They are exported because they can be useful for writing tests for the protocol (i.e., for the tests located in src/proto_*/lib_protocol/test/
) and for writing protocol-specific support libraries and binaries (i.e., for the code in src/proto_*/lib_{client,delegate,etc.}
).
val wrap_tzerror : Error_monad.error -> Tezos_error_monad.TzCore.error
wrap_tzerror e
is a shell error wrapping the protocol error e
. (It is Ecoproto_error e
.)
val wrap_tztrace :
Error_monad.error Error_monad.trace ->
Tezos_error_monad.TzCore.error list
wrap_tztrace t
is a shell trace composed of the wrapped errors of the protocol trace t
.
val wrap_tzresult :
'a Error_monad.tzresult ->
('a, Tezos_error_monad.TzCore.error list) result
wrap_tzresult r
is a shell tzresult that carries the same result as or a wrapped trace of the protocol tzresult r
. (It is Ok x
if r
is Ok x
, it is Error (wrap_tztrace t)
if r
is Error t
.)
module Lift
(P : Updater.PROTOCOL) :
Environment_protocol_T.PROTOCOL
with type block_header_data = P.block_header_data
and type block_header_metadata = P.block_header_metadata
and type block_header = P.block_header
and type operation_data = P.operation_data
and type operation_receipt = P.operation_receipt
and type operation = P.operation
and type validation_state = P.validation_state
class ['chain, 'block] proto_rpc_context : Tezos_rpc.RPC_context.t -> (unit, (unit * 'chain) * 'block) RPC_path.t ->
('chain * 'block)
RPC_context.simple
class 'block proto_rpc_context_of_directory : ('block ->
RPC_context.t) -> RPC_context.t RPC_directory.t -> 'block RPC_context.simple