Mavryk_client_base.Client_keys_v0Module to use keys over Mavryk_crypto.Signature.V0
include module type of struct include Client_keys endmodule Pk_uri_hashtbl = Client_keys.Pk_uri_hashtblval pk_uri_parameter : unit -> (pk_uri, 'a) Mavryk_clic.parameterval pk_uri_param :
?name:string ->
?desc:string ->
('a, 'b) Mavryk_clic.params ->
(pk_uri -> 'a, 'b) Mavryk_clic.paramsval sk_uri_parameter : unit -> (sk_uri, 'a) Mavryk_clic.parameterval sk_uri_param :
?name:string ->
?desc:string ->
('a, 'b) Mavryk_clic.params ->
(sk_uri -> 'a, 'b) Mavryk_clic.paramsval aggregate_sk_uri_parameter :
unit ->
(aggregate_sk_uri, 'a) Mavryk_clic.parameterval aggregate_sk_uri_param :
?name:string ->
?desc:string ->
('a, 'b) Mavryk_clic.params ->
(aggregate_sk_uri -> 'a, 'b) Mavryk_clic.paramstype sapling_key = Client_keys.sapling_key = {sk : sapling_uri;path : int32 list;address_index : Mavryk_sapling.Core.Client.Viewing_key.index;}module Sapling_key = Client_keys.Sapling_keymodule Aggregate_alias = Client_keys.Aggregate_aliasAggregate_alias contains the implementation needed for the wallet to have the correspondence between aliases and keys. It has three sub-module Public_key Public_key_hash Secret_key. The reason of a sub-module inside a sub-module is not confuse them with the alias module for the standard signature (i.e. Public_key, Public_key_hash, and Secret_key).
module Aggregate_type = Client_keys.Aggregate_typemodule Logging = Client_keys.Loggingmodule type COMMON_SIGNER = Client_keys.COMMON_SIGNERmodule type AGGREGATE_SIGNER = Client_keys.AGGREGATE_SIGNERmodule type SIGNER = Client_keys.SIGNERtype signer = Client_keys.signer = | Simple of (module SIGNER)| Aggregate of (module AGGREGATE_SIGNER)val register_signer : (module SIGNER) -> unitregister_signer signer registers first-class module signer as signer for keys with scheme (val signer : SIGNER).scheme.
val registered_signers : unit -> (string * signer) listval register_aggregate_signer : (module AGGREGATE_SIGNER) -> unitregister_aggregate_signer signer registers first-class module signer as signer for keys with scheme (val signer : AGGREGATE_SIGNER).scheme.
val aggregate_neuterize :
aggregate_sk_uri ->
aggregate_pk_uri Mavryk_base.TzPervasives.tzresult Lwt.tval register_aggregate_key :
Client_context.wallet ->
?force:bool ->
(Mavryk_crypto.Aggregate_signature.Public_key_hash.t
* aggregate_pk_uri
* aggregate_sk_uri) ->
?public_key:Mavryk_crypto.Aggregate_signature.Public_key.t ->
string ->
unit Mavryk_base.TzPervasives.tzresult Lwt.tval list_aggregate_keys :
Client_context.wallet ->
(string
* Mavryk_crypto.Aggregate_signature.Public_key_hash.t
* Mavryk_crypto.Aggregate_signature.Public_key.t option
* aggregate_sk_uri option)
list
Mavryk_base.TzPervasives.tzresult
Lwt.tval import_aggregate_secret_key :
io:Client_context.io_wallet ->
aggregate_pk_uri ->
(Mavryk_crypto.Aggregate_signature.Public_key_hash.t
* Mavryk_crypto.Aggregate_signature.Public_key.t option)
Mavryk_base.TzPervasives.tzresult
Lwt.tval alias_aggregate_keys :
Client_context.wallet ->
string ->
(Mavryk_crypto.Aggregate_signature.Public_key_hash.t
* Mavryk_crypto.Aggregate_signature.Public_key.t option
* aggregate_sk_uri option)
option
Mavryk_base.TzPervasives.tzresult
Lwt.tval aggregate_sign :
Client_context.wallet ->
aggregate_sk_uri ->
Mavryk_base.TzPervasives.Bytes.t ->
Mavryk_crypto.Aggregate_signature.t Mavryk_base.TzPervasives.tzresult Lwt.tmodule type S = Client_keys.Smodule V0 = Client_keys.V0module V1 = Client_keys.V1module V_latest = Client_keys.V_latestinclude module type of V_latestinclude module type of struct include Client_keys.V0 endmodule Signature_type = Client_keys.V0.Signature_typeSignature_type is a small module to be included in signer to conform to the module type SIGNER instead of rewriting all type.
module Public_key_hash = Client_keys.V0.Public_key_hashmodule Public_key = Client_keys.V0.Public_keymodule Secret_key = Client_keys.V0.Secret_keyval import_secret_key :
io:Client_context.io_wallet ->
Client_keys.pk_uri ->
(Mavryk_crypto.Signature.V0.Public_key_hash.t
* Mavryk_crypto.Signature.V0.Public_key.t option)
Mavryk_base.TzPervasives.tzresult
Lwt.tval public_key :
Client_keys.pk_uri ->
Mavryk_crypto.Signature.V0.Public_key.t Mavryk_base.TzPervasives.tzresult
Lwt.tval public_key_hash :
Client_keys.pk_uri ->
(Mavryk_crypto.Signature.V0.Public_key_hash.t
* Mavryk_crypto.Signature.V0.Public_key.t option)
Mavryk_base.TzPervasives.tzresult
Lwt.tval neuterize :
Client_keys.sk_uri ->
Client_keys.pk_uri Mavryk_base.TzPervasives.tzresult Lwt.tval sign :
Client_context.wallet ->
?watermark:Mavryk_crypto.Signature.V0.watermark ->
Client_keys.sk_uri ->
Mavryk_base.TzPervasives.Bytes.t ->
Mavryk_crypto.Signature.V0.t Mavryk_base.TzPervasives.tzresult Lwt.tval append :
Client_context.wallet ->
?watermark:Mavryk_crypto.Signature.V0.watermark ->
Client_keys.sk_uri ->
Mavryk_base.TzPervasives.Bytes.t ->
Mavryk_base.TzPervasives.Bytes.t Mavryk_base.TzPervasives.tzresult Lwt.tval check :
?watermark:Mavryk_crypto.Signature.V0.watermark ->
Client_keys.pk_uri ->
Mavryk_crypto.Signature.V0.t ->
Mavryk_base.TzPervasives.Bytes.t ->
bool Mavryk_base.TzPervasives.tzresult Lwt.tval deterministic_nonce :
Client_keys.sk_uri ->
Mavryk_base.TzPervasives.Bytes.t ->
Mavryk_base.TzPervasives.Bytes.t Mavryk_base.TzPervasives.tzresult Lwt.tval deterministic_nonce_hash :
Client_keys.sk_uri ->
Mavryk_base.TzPervasives.Bytes.t ->
Mavryk_base.TzPervasives.Bytes.t Mavryk_base.TzPervasives.tzresult Lwt.tval supports_deterministic_nonces :
Client_keys.sk_uri ->
bool Mavryk_base.TzPervasives.tzresult Lwt.tval register_key :
Client_context.wallet ->
?force:bool ->
(Mavryk_crypto.Signature.V0.Public_key_hash.t
* Client_keys.pk_uri
* Client_keys.sk_uri) ->
?public_key:Mavryk_crypto.Signature.V0.Public_key.t ->
string ->
unit Mavryk_base.TzPervasives.tzresult Lwt.tval register_keys :
Client_context.wallet ->
(string
* Mavryk_crypto.Signature.V0.Public_key_hash.t
* Mavryk_crypto.Signature.V0.Public_key.t
* Client_keys.pk_uri
* Client_keys.sk_uri)
list ->
unit Mavryk_base.TzPervasives.tzresult Lwt.tSimilar to repeated calls to register_key, but is more efficient. Always forces addition of new elements.
val list_keys :
Client_context.wallet ->
(string
* Mavryk_crypto.Signature.V0.Public_key_hash.t
* Mavryk_crypto.Signature.V0.Public_key.t option
* Client_keys.sk_uri option)
list
Mavryk_base.TzPervasives.tzresult
Lwt.tval alias_keys :
Client_context.wallet ->
string ->
(Mavryk_crypto.Signature.V0.Public_key_hash.t
* Mavryk_crypto.Signature.V0.Public_key.t option
* Client_keys.sk_uri option)
option
Mavryk_base.TzPervasives.tzresult
Lwt.tval get_key :
Client_context.wallet ->
Mavryk_crypto.Signature.V0.Public_key_hash.t ->
(string * Mavryk_crypto.Signature.V0.Public_key.t * Client_keys.sk_uri)
Mavryk_base.TzPervasives.tzresult
Lwt.tval get_public_key :
Client_context.wallet ->
Mavryk_crypto.Signature.V0.Public_key_hash.t ->
(string * Mavryk_crypto.Signature.V0.Public_key.t)
Mavryk_base.TzPervasives.tzresult
Lwt.tval get_keys :
Client_context.wallet ->
(string
* Mavryk_crypto.Signature.V0.Public_key_hash.t
* Mavryk_crypto.Signature.V0.Public_key.t
* Client_keys.sk_uri)
list
Mavryk_base.TzPervasives.tzresult
Lwt.tval force_switch : unit -> (bool, 'ctx) Mavryk_clic.arg