Module V9.Make

Parameters

module Param : sig ... end

Signature

include Mavryk_protocol_environment_sigs.V9.T with type Format.formatter = Stdlib.Format.formatter and type 'a Seq.node = 'a Mavryk_base.TzPervasives.Seq.node and type 'a Seq.t = unit -> 'a Mavryk_base.TzPervasives.Seq.node and type 'a Data_encoding.t = 'a Mavryk_base.TzPervasives.Data_encoding.t and type 'a Data_encoding.Compact.t = 'a Mavryk_base.TzPervasives.Data_encoding.Compact.t and type 'a Data_encoding.lazy_t = 'a Mavryk_base.TzPervasives.Data_encoding.lazy_t and type 'a Lwt.t = 'a Lwt.t and type ('a, 'b) Pervasives.result = ('a, 'b) Stdlib.result and type Chain_id.t = Mavryk_base.TzPervasives.Chain_id.t and type Block_hash.t = Mavryk_base.TzPervasives.Block_hash.t and type Operation_hash.t = Mavryk_base.TzPervasives.Operation_hash.t and type Operation_list_hash.t = Mavryk_base.TzPervasives.Operation_list_hash.t and type Operation_list_list_hash.t = Mavryk_base.TzPervasives.Operation_list_list_hash.t and type Context.t = Mavryk_protocol_environment__.Environment_context.Context.t and type Context.cache_key = Mavryk_protocol_environment__.Environment_context.Context.cache_key and type Context.cache_value = Mavryk_protocol_environment__.Environment_context.Context.cache_value and type Context_hash.t = Mavryk_base.TzPervasives.Context_hash.t and type Context_hash.Version.t = Mavryk_base.TzPervasives.Context_hash.Version.t and type Context.config = Mavryk_context_sigs.Config.t and module Context.Proof = Mavryk_protocol_environment__.Environment_context.Context.Proof and type Protocol_hash.t = Mavryk_base.TzPervasives.Protocol_hash.t and type Time.t = Mavryk_base.TzPervasives.Time.Protocol.t and type Operation.shell_header = Mavryk_base.TzPervasives.Operation.shell_header and type Operation.t = Mavryk_base.TzPervasives.Operation.t and type Block_header.shell_header = Mavryk_base.TzPervasives.Block_header.shell_header and type Block_header.t = Mavryk_base.TzPervasives.Block_header.t and type 'a RPC_directory.t = 'a Mavryk_rpc.Directory.t and type Ed25519.Public_key_hash.t = Mavryk_crypto.Signature.Ed25519.Public_key_hash.t and type Ed25519.Public_key.t = Mavryk_crypto.Signature.Ed25519.Public_key.t and type Ed25519.t = Mavryk_crypto.Signature.Ed25519.t and type Secp256k1.Public_key_hash.t = Mavryk_crypto.Signature.Secp256k1.Public_key_hash.t and type Secp256k1.Public_key.t = Mavryk_crypto.Signature.Secp256k1.Public_key.t and type Secp256k1.t = Mavryk_crypto.Signature.Secp256k1.t and type P256.Public_key_hash.t = Mavryk_crypto.Signature.P256.Public_key_hash.t and type P256.Public_key.t = Mavryk_crypto.Signature.P256.Public_key.t and type P256.t = Mavryk_crypto.Signature.P256.t and type Bls.Public_key_hash.t = Mavryk_crypto.Signature.Bls.Public_key_hash.t and type Bls.Public_key.t = Mavryk_crypto.Signature.Bls.Public_key.t and type Bls.t = Mavryk_crypto.Signature.Bls.t and type Signature.public_key_hash = Mavryk_crypto.Signature.V1.public_key_hash and type Signature.public_key = Mavryk_crypto.Signature.V1.public_key and type Signature.signature = Mavryk_crypto.Signature.V1.signature and type Signature.t = Mavryk_crypto.Signature.V1.t and type Signature.watermark = Mavryk_crypto.Signature.V1.watermark and type Micheline.canonical_location = Mavryk_micheline.Micheline.canonical_location and type 'a Micheline.canonical = 'a Mavryk_micheline.Micheline.canonical and type Z.t = Z.t and type Q.t = Q.t and type ('a, 'b) Micheline.node = ('a, 'b) Mavryk_micheline.Micheline.node and type Data_encoding.json_schema = Mavryk_base.TzPervasives.Data_encoding.json_schema and type ('a, 'b) RPC_path.t = ('a, 'b) Mavryk_rpc.Path.t and type RPC_service.meth = Mavryk_rpc.Service.meth and type (+'m, 'pr, 'p, 'q, 'i, 'o) RPC_service.t = ('m, 'pr, 'p, 'q, 'i, 'o) Mavryk_rpc.Service.t and type Error_monad.shell_tztrace = Mavryk_base.TzPervasives.Error_monad.tztrace and type 'a Error_monad.shell_tzresult = ('a, Mavryk_base.TzPervasives.Error_monad.tztrace) Stdlib.result and type Timelock.chest = Mavryk_crypto.Timelock_legacy.chest and type Timelock.chest_key = Mavryk_crypto.Timelock_legacy.chest_key and type Timelock.opening_result = Mavryk_crypto.Timelock_legacy.opening_result and module Sapling = Mavryk_sapling.Core.Validator and type ('a, 'b) Either.t = ('a, 'b) Stdlib.Either.t and type Bls.Primitive.Fr.t = Mavryk_bls12_381.Fr.t and type Plonk.proof = Mavryk_protocol_environment_structs.V9.Plonk.proof and type Plonk.public_parameters = Mavryk_protocol_environment_structs.V9.Plonk.verifier_public_parameters and type Dal.parameters = Mavryk_crypto_dal.Cryptobox.Verifier.parameters and type Dal.commitment = Mavryk_crypto_dal.Cryptobox.Verifier.commitment and type Dal.commitment_proof = Mavryk_crypto_dal.Cryptobox.Verifier.commitment_proof and type Dal.page_proof = Mavryk_crypto_dal.Cryptobox.Verifier.page_proof and type Bounded.Non_negative_int32.t = Mavryk_base.Bounded.Non_negative_int32.t and type Wasm_2_0_0.reveal = Mavryk_scoru_wasm.Wasm_pvm_state.Compatibility.reveal and type Wasm_2_0_0.version = Mavryk_scoru_wasm.Wasm_pvm_state.version and type Wasm_2_0_0.input = Mavryk_scoru_wasm.Wasm_pvm_state.input_info and type Wasm_2_0_0.output = Mavryk_scoru_wasm.Wasm_pvm_state.output_info and type Wasm_2_0_0.reveal_hash = Mavryk_scoru_wasm.Wasm_pvm_state.Compatibility.reveal_hash with type Updater.quota = Mavryk_protocol_environment__.Environment_context.quota with type Updater.rpc_context = Mavryk_protocol_environment__.Environment_context.rpc_context
module Pervasives : sig ... end

The OCaml Standard library.

module Either : sig ... end

Either type.

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 Logging : sig ... end
module Hex : sig ... end

Hexadecimal encoding.

module Z : sig ... end

Integers.

module Q : sig ... end

Rationals.

module Lwt : sig ... end
module Data_encoding : sig ... end
module Raw_hashes : sig ... end
module Compare : sig ... end
module Time : sig ... end
module TzEndian : sig ... end
module Bits : sig ... end
module Equality_witness : sig ... end

This module provides support for type equalities and runtime type identifiers.

module FallbackArray : sig ... end

This module implements arrays equipped with accessors that cannot raise exceptions. Reading out of the bounds of the arrays return a fallback value fixed at array construction time, writing out of the bounds of the arrays is ignored.

module Error_monad : sig ... end
module Seq : sig ... end
module List : sig ... end
module Array : sig ... end

This module is a very restricted subset of OCaml's Stdlib Array module. There is just enough exposed that you can pass arrays around to some functions and such, but not enough that you can easily shoot yourself in the foot. (See details below.)

module Set : sig ... end
module Map : sig ... end
module Option : sig ... end

Signature from Lwtreslib's option module

module Result : sig ... end
module RPC_arg : sig ... end

See src/lib_rpc/RPC_arg.mli for documentation

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 Blake2B : sig ... end

Builds a new Hash type using Blake2B.

module Bls : sig ... end

Mavryk - BLS12-381 cryptography

module Ed25519 : sig ... end

Mavryk - Ed25519 cryptography

module Secp256k1 : sig ... end

Mavryk - Secp256k1 cryptography

module P256 : sig ... end

Mavryk - 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 Timelock : sig ... end
module Vdf : sig ... end
module Micheline : sig ... end
module Block_header : sig ... end
module Bounded : sig ... end

This module implements bounded (or refined) versions of data types.

module Fitness : sig ... end
module Operation : sig ... end

Mavryk operations.

module Context : sig ... end

View over the context store, restricted to types, access and functional manipulation of an existing context.

module Updater : sig ... end

Mavryk Protocol Environment - Protocol updater.

module RPC_context : sig ... end
module Wasm_2_0_0 : sig ... end
module Plonk : sig ... end

aPlonK is a PlonK-based proving system. As such, it provides a way to create succinct cryptographic proofs about a given predicate, which can be then verified with a low computational cost.

module Dal : sig ... end

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.}).

wrap_tzerror e is a shell error wrapping the protocol error e. (It is Ecoproto_error e.)

wrap_tztrace t is a shell trace composed of the wrapped errors of the protocol trace t.

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) : sig ... end
class ['chain, 'block] proto_rpc_context : Mavryk_rpc.Context.t -> (unit, (unit * 'chain) * 'block) RPC_path.t -> ('chain * 'block) RPC_context.simple