package octez-smart-rollup-node-lib

  1. Overview
  2. Docs
Legend:
Library
Module
Module type
Parameter
Class
Class type
type 'a t =
  1. | Operating : Tezos_crypto.Signature.public_key_hash t
  2. | Batching : Tezos_crypto.Signature.public_key_hash list t
  3. | Cementing : Tezos_crypto.Signature.public_key_hash t
  4. | Recovering : Tezos_crypto.Signature.public_key_hash t
  5. | Executing_outbox : Tezos_crypto.Signature.public_key_hash t

Purposes for operators, indicating their role and thus the kinds of operations that they sign.

type ex_purpose =
  1. | Purpose : 'a t -> ex_purpose

existential type for purpose.

val all : ex_purpose list

List of possible purposes for operator specialization.

module Map : Tezos_base.TzPervasives.Map.S with type key = ex_purpose
type 'a operator =
  1. | Single : Tezos_crypto.Signature.public_key_hash -> Tezos_crypto.Signature.public_key_hash operator
  2. | Multiple : Tezos_crypto.Signature.public_key_hash list -> Tezos_crypto.Signature.public_key_hash list operator

Operator type. An operator is either a single key or a list of keys.

type ex_operator =
  1. | Operator : 'a operator -> ex_operator

existential type for operator.

type operators = private ex_operator Map.t

operators type is a map from purpose to operator. This type is private to control its creation and make sure `kind t and `kind operator are correctly related with `kind

type Tezos_base.TzPervasives.error +=
  1. | Missing_operator of ex_purpose
  2. | Too_many_operators of {
    1. expected_purposes : ex_purpose list;
    2. given_operators : operators;
    }
val to_string_ex_purpose : ex_purpose -> string

to_string_ex_purpose p returns a string representation of purpose p.

val pp : Format.formatter -> 'a t -> unit
val pp_ex_purpose : Format.formatter -> ex_purpose -> unit
val of_string_ex_purpose : string -> ex_purpose option

of_string_ex_purpose s parses a purpose from the given string s.

val of_string_exn_ex_purpose : string -> ex_purpose

of_string_exn_ex_purpose s parses a purpose from the given string s.

val operators_encoding : operators Tezos_base.TzPervasives.Data_encoding.t
val make_operator : ?default_operator:Tezos_crypto.Signature.public_key_hash -> needed_purposes:ex_purpose list -> (ex_purpose * Tezos_crypto.Signature.public_key_hash) list -> operators Tezos_base.TzPervasives.tzresult

make_operator ?default ~needed_purposes operators constructs a purpose map from a list of bindings operators, with a potential default key. If operators does not cover all purposes of needed_purposes and does not contains a default key then fails.

val replace_operator : ?default_operator:Tezos_crypto.Signature.public_key_hash -> needed_purposes:ex_purpose list -> (ex_purpose * Tezos_crypto.Signature.public_key_hash) list -> operators -> operators Tezos_base.TzPervasives.tzresult

replace_operator ?default_operator ~needed_purposes purposed_keys operators replaces keys of operators by default_operator if it's set or by the purposed key in purposed_keys. It does nothing if default_operator is not set or purposed_keys is empty. Similar to make_operator the returns operators contains only mapping of purpose from needed_purposes.

val operation_kind : ex_purpose -> Operation_kind.t list

For each purpose, it returns a list of associated operation kinds.

val of_operation_kind : Operation_kind.t list -> ex_purpose list

For a list of operation kind, it returns a list of associated purpose.

val find_operator : 'kind t -> operators -> 'kind operator option

find_operator purpose operators returns the operator for the purpose from the operators list. The 'kind type is to know if this purpose allows only one or multiple operators.

val mem_operator : Tezos_crypto.Signature.public_key_hash -> operators -> bool

mem_operator operator operators checks of operator is part of any purpose in operators.

val operators_bindings : operators -> (ex_purpose * ex_operator) list

function to bypass the private type. The opposite is not exposed so we don't risk corrupting the map with invalid 'kind1 purpose_kind -> 'kind2 operator mapping where 'kind1 <> 'kind2

OCaml

Innovation. Community. Security.