Mavryk_crypto.Base58module Prefix : sig ... endAn extensible sum-type for decoded data: one case per known "prefix". See for instance Hash.Block_hash.Hash or Environment.Ed25519.Public_key_hash.
type 'a encoding = private {prefix : string;length : int;encoded_prefix : string;encoded_length : int;to_raw : 'a -> string;of_raw : string -> 'a option;wrap : 'a -> data;}Abstract representation of registered encodings. The type parameter is the type of the encoded data, for instance Hash.Block_hash.t.
val register_encoding :
prefix:string ->
length:int ->
to_raw:('a -> string) ->
of_raw:(string -> 'a option) ->
wrap:('a -> data) ->
'a encodingRegister a new encoding. The function might raise Invalid_arg if the provided prefix overlaps with a previously registered prefix. The to_raw and of_raw are the ad-hoc serialisation/deserialisation for the data. The wrap should wrap the deserialised value into the extensible sum-type data (see the generic function decode).
val check_encoded_prefix : 'a encoding -> string -> int -> unitChecks that an encoding has a certain prefix and length.
module Alphabet : sig ... endval simple_encode : ?alphabet:Alphabet.t -> 'a encoding -> 'a -> stringEncoder for a given kind of data.
val simple_decode : ?alphabet:Alphabet.t -> 'a encoding -> string -> 'a optionDecoder for a given kind of data. It returns None when the decoded data does not start with the expected prefix.
val decode : ?alphabet:Alphabet.t -> string -> data optionGeneric decoder. It returns None when the decoded data does not start with a registered prefix.
val register_resolver : 'a encoding -> (string -> 'a list Lwt.t) -> unitRegister a (global) resolver for a previously registered kind of data.
val complete : ?alphabet:Alphabet.t -> string -> string list Lwt.tTry to complete a prefix of a Base58Check encoded data, by using the previously registered resolver associated to this kind of data. Note that a prefix of n characters of a Base58-encoded value provides at least n/2 bytes of a prefix of the original value.
See src/environment/v1/base58.mli for an inlined documentation.
val safe_encode : ?alphabet:Alphabet.t -> string -> stringBase58Check-encoding/decoding functions (with error detections).
val safe_decode : ?alphabet:Alphabet.t -> string -> string optionval raw_encode : ?alphabet:Alphabet.t -> string -> stringBase58-encoding/decoding functions (without error detections).
val raw_decode : ?alphabet:Alphabet.t -> string -> string option