Mavryk_client_base.Client_keys
module Pk_uri_hashtbl :
Mavryk_base.TzPervasives.Hashtbl.S with type key = pk_uri
val pk_uri_parameter : unit -> (pk_uri, 'a) Mavryk_clic.parameter
val pk_uri_param :
?name:string ->
?desc:string ->
('a, 'b) Mavryk_clic.params ->
(pk_uri -> 'a, 'b) Mavryk_clic.params
val sk_uri_parameter : unit -> (sk_uri, 'a) Mavryk_clic.parameter
val sk_uri_param :
?name:string ->
?desc:string ->
('a, 'b) Mavryk_clic.params ->
(sk_uri -> 'a, 'b) Mavryk_clic.params
val aggregate_sk_uri_parameter :
unit ->
(aggregate_sk_uri, 'a) Mavryk_clic.parameter
val aggregate_sk_uri_param :
?name:string ->
?desc:string ->
('a, 'b) Mavryk_clic.params ->
(aggregate_sk_uri -> 'a, 'b) Mavryk_clic.params
type sapling_key = {
sk : sapling_uri;
path : int32 list;
address_index : Mavryk_sapling.Core.Client.Viewing_key.index;
}
module Sapling_key : Client_aliases.Alias with type t = sapling_key
module Aggregate_alias : sig ... end
Aggregate_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 : sig ... end
module Logging : sig ... end
module type COMMON_SIGNER = sig ... end
module type AGGREGATE_SIGNER = sig ... end
module type SIGNER = sig ... end
val register_signer : (module SIGNER) -> unit
register_signer signer
registers first-class module signer
as signer for keys with scheme (val signer : SIGNER).scheme
.
val registered_signers : unit -> (string * signer) list
val register_aggregate_signer : (module AGGREGATE_SIGNER) -> unit
register_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.t
val 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.t
val 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.t
val 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.t
val 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.t
val aggregate_sign :
Client_context.wallet ->
aggregate_sk_uri ->
Mavryk_base.TzPervasives.Bytes.t ->
Mavryk_crypto.Aggregate_signature.t Mavryk_base.TzPervasives.tzresult Lwt.t
module type S = sig ... end
module V0 :
S
with type public_key_hash := Mavryk_crypto.Signature.V0.Public_key_hash.t
and type public_key := Mavryk_crypto.Signature.V0.Public_key.t
and type secret_key := Mavryk_crypto.Signature.V0.Secret_key.t
and type watermark := Mavryk_crypto.Signature.V0.watermark
and type signature := Mavryk_crypto.Signature.V0.t
module V1 :
S
with type public_key_hash := Mavryk_crypto.Signature.V1.Public_key_hash.t
and type public_key := Mavryk_crypto.Signature.V1.Public_key.t
and type secret_key := Mavryk_crypto.Signature.V1.Secret_key.t
and type watermark := Mavryk_crypto.Signature.V1.watermark
and type signature := Mavryk_crypto.Signature.V1.t
module V_latest :
S
with type public_key_hash :=
Mavryk_crypto.Signature.V_latest.Public_key_hash.t
and type public_key := Mavryk_crypto.Signature.V_latest.Public_key.t
and type secret_key := Mavryk_crypto.Signature.V_latest.Secret_key.t
and type watermark := Mavryk_crypto.Signature.V_latest.watermark
and type signature := Mavryk_crypto.Signature.V_latest.t
include module type of V_latest
module Signature_type : sig ... end
Signature_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_aliases.Alias
with type t = Mavryk_crypto.Signature.V_latest.Public_key_hash.t
module Public_key :
Client_aliases.Alias
with type t = pk_uri * Mavryk_crypto.Signature.V_latest.Public_key.t option
module Secret_key : Client_aliases.Alias with type t = sk_uri
val import_secret_key :
io:Client_context.io_wallet ->
pk_uri ->
(Mavryk_crypto.Signature.V_latest.Public_key_hash.t
* Mavryk_crypto.Signature.V_latest.Public_key.t option)
Mavryk_base.TzPervasives.tzresult
Lwt.t
val public_key :
pk_uri ->
Mavryk_crypto.Signature.V_latest.Public_key.t
Mavryk_base.TzPervasives.tzresult
Lwt.t
val public_key_hash :
pk_uri ->
(Mavryk_crypto.Signature.V_latest.Public_key_hash.t
* Mavryk_crypto.Signature.V_latest.Public_key.t option)
Mavryk_base.TzPervasives.tzresult
Lwt.t
val neuterize : sk_uri -> pk_uri Mavryk_base.TzPervasives.tzresult Lwt.t
val sign :
Client_context.wallet ->
?watermark:Mavryk_crypto.Signature.V_latest.watermark ->
sk_uri ->
Mavryk_base.TzPervasives.Bytes.t ->
Mavryk_crypto.Signature.V_latest.t Mavryk_base.TzPervasives.tzresult Lwt.t
val append :
Client_context.wallet ->
?watermark:Mavryk_crypto.Signature.V_latest.watermark ->
sk_uri ->
Mavryk_base.TzPervasives.Bytes.t ->
Mavryk_base.TzPervasives.Bytes.t Mavryk_base.TzPervasives.tzresult Lwt.t
val check :
?watermark:Mavryk_crypto.Signature.V_latest.watermark ->
pk_uri ->
Mavryk_crypto.Signature.V_latest.t ->
Mavryk_base.TzPervasives.Bytes.t ->
bool Mavryk_base.TzPervasives.tzresult Lwt.t
val deterministic_nonce :
sk_uri ->
Mavryk_base.TzPervasives.Bytes.t ->
Mavryk_base.TzPervasives.Bytes.t Mavryk_base.TzPervasives.tzresult Lwt.t
val deterministic_nonce_hash :
sk_uri ->
Mavryk_base.TzPervasives.Bytes.t ->
Mavryk_base.TzPervasives.Bytes.t Mavryk_base.TzPervasives.tzresult Lwt.t
val supports_deterministic_nonces :
sk_uri ->
bool Mavryk_base.TzPervasives.tzresult Lwt.t
val register_key :
Client_context.wallet ->
?force:bool ->
(Mavryk_crypto.Signature.V_latest.Public_key_hash.t * pk_uri * sk_uri) ->
?public_key:Mavryk_crypto.Signature.V_latest.Public_key.t ->
string ->
unit Mavryk_base.TzPervasives.tzresult Lwt.t
val register_keys :
Client_context.wallet ->
(string
* Mavryk_crypto.Signature.V_latest.Public_key_hash.t
* Mavryk_crypto.Signature.V_latest.Public_key.t
* pk_uri
* sk_uri)
list ->
unit Mavryk_base.TzPervasives.tzresult Lwt.t
Similar 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.V_latest.Public_key_hash.t
* Mavryk_crypto.Signature.V_latest.Public_key.t option
* sk_uri option)
list
Mavryk_base.TzPervasives.tzresult
Lwt.t
val alias_keys :
Client_context.wallet ->
string ->
(Mavryk_crypto.Signature.V_latest.Public_key_hash.t
* Mavryk_crypto.Signature.V_latest.Public_key.t option
* sk_uri option)
option
Mavryk_base.TzPervasives.tzresult
Lwt.t
val get_key :
Client_context.wallet ->
Mavryk_crypto.Signature.V_latest.Public_key_hash.t ->
(string * Mavryk_crypto.Signature.V_latest.Public_key.t * sk_uri)
Mavryk_base.TzPervasives.tzresult
Lwt.t
val get_public_key :
Client_context.wallet ->
Mavryk_crypto.Signature.V_latest.Public_key_hash.t ->
(string * Mavryk_crypto.Signature.V_latest.Public_key.t)
Mavryk_base.TzPervasives.tzresult
Lwt.t
val get_keys :
Client_context.wallet ->
(string
* Mavryk_crypto.Signature.V_latest.Public_key_hash.t
* Mavryk_crypto.Signature.V_latest.Public_key.t
* sk_uri)
list
Mavryk_base.TzPervasives.tzresult
Lwt.t
val force_switch : unit -> (bool, 'ctx) Mavryk_clic.arg