add json+bin for MasterSignatures
This commit is contained in:
parent
bee3533b9e
commit
f3de6ea80d
2 changed files with 139 additions and 26 deletions
57
src/api.ml
57
src/api.ml
|
|
@ -29,6 +29,12 @@ module ErrorDetail = struct
|
|||
|> Jsont.Object.finish
|
||||
end
|
||||
|
||||
module HashCode = struct
|
||||
type t = B32.t
|
||||
|
||||
let jsont = Jsont.of_of_string ~kind:"HashCode" B32.decode ~enc:B32.encode
|
||||
end
|
||||
|
||||
module Amount = struct
|
||||
include Amount
|
||||
|
||||
|
|
@ -283,3 +289,54 @@ module FutureKeysResponse = struct
|
|||
~enc:signkey_secmod_public_key
|
||||
|> finish
|
||||
end
|
||||
|
||||
module SignKeySignature = struct
|
||||
type t = {
|
||||
key: EddsaPublicKey.t;
|
||||
master_sig: EddsaSignature.t;
|
||||
}
|
||||
|
||||
let jsont =
|
||||
let make key master_sig = { key; master_sig } in
|
||||
let key v = v.key in
|
||||
let master_sig v = v.master_sig in
|
||||
let open Jsont.Object in
|
||||
map ~kind:"SignKeySignature" make
|
||||
|> mem "key" EddsaPublicKey.jsont ~enc:key
|
||||
|> mem "master_sig" EddsaSignature.jsont ~enc:master_sig
|
||||
|> finish
|
||||
end
|
||||
|
||||
module DenomSignature = struct
|
||||
type t = {
|
||||
h_denom_pub: HashCode.t;
|
||||
master_sig: EddsaSignature.t;
|
||||
}
|
||||
|
||||
let jsont =
|
||||
let make h_denom_pub master_sig = { h_denom_pub; master_sig } in
|
||||
let h_denom_pub v = v.h_denom_pub in
|
||||
let master_sig v = v.master_sig in
|
||||
let open Jsont.Object in
|
||||
map ~kind:"DenomSignature" make
|
||||
|> mem "h_denom_pub" HashCode.jsont ~enc:h_denom_pub
|
||||
|> mem "master_sig" EddsaSignature.jsont ~enc:master_sig
|
||||
|> finish
|
||||
end
|
||||
|
||||
module MasterSignatures = struct
|
||||
type t = {
|
||||
denom_sigs: DenomSignature.t list;
|
||||
signkey_sigs: SignKeySignature.t list;
|
||||
}
|
||||
|
||||
let jsont =
|
||||
let make denom_sigs signkey_sigs = { denom_sigs; signkey_sigs } in
|
||||
let denom_sigs v = v.denom_sigs in
|
||||
let signkey_sigs v = v.signkey_sigs in
|
||||
let open Jsont.Object in
|
||||
map ~kind:"MasterSignatures" make
|
||||
|> mem "denom_sigs" (Jsont.list DenomSignature.jsont) ~enc:denom_sigs
|
||||
|> mem "signkey_sigs" (Jsont.list SignKeySignature.jsont) ~enc:signkey_sigs
|
||||
|> finish
|
||||
end
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue