+ ExchangePartnerListEntry
This commit is contained in:
parent
47c4303363
commit
ac08f7cc07
2 changed files with 95 additions and 12 deletions
45
src/api.ml
45
src/api.ml
|
|
@ -767,3 +767,48 @@ module ExchangePartnerSetupRequest = struct
|
|||
|> mem "wad_fee" Amount.jsont ~enc:wad_fee
|
||||
|> finish
|
||||
end
|
||||
|
||||
(* -- types for /keys -- *)
|
||||
|
||||
module ExchangePartnerListEntry = struct
|
||||
type t = {
|
||||
partner_base_url: string;
|
||||
partner_master_pub: EddsaPublicKey.t;
|
||||
wad_fee: Amount.t;
|
||||
wad_frequency: RelativeTime.t;
|
||||
start_date: Timestamp.t;
|
||||
end_date: Timestamp.t;
|
||||
master_sig: WadPartnerSignaturePS.t;
|
||||
}
|
||||
|
||||
let jsont =
|
||||
let make partner_base_url partner_master_pub wad_fee wad_frequency
|
||||
start_date end_date master_sig =
|
||||
{
|
||||
partner_base_url;
|
||||
partner_master_pub;
|
||||
wad_fee;
|
||||
wad_frequency;
|
||||
start_date;
|
||||
end_date;
|
||||
master_sig;
|
||||
}
|
||||
in
|
||||
let partner_base_url v = v.partner_base_url in
|
||||
let partner_master_pub v = v.partner_master_pub in
|
||||
let wad_fee v = v.wad_fee in
|
||||
let wad_frequency v = v.wad_frequency in
|
||||
let start_date v = v.start_date in
|
||||
let end_date v = v.end_date in
|
||||
let master_sig v = v.master_sig in
|
||||
let open Jsont.Object in
|
||||
map ~kind:"ExchangePartnerListEntry" make
|
||||
|> mem "partner_base_url" Jsont.string ~enc:partner_base_url
|
||||
|> mem "partner_master_pub" EddsaPublicKey.jsont ~enc:partner_master_pub
|
||||
|> mem "wad_fee" Amount.jsont ~enc:wad_fee
|
||||
|> mem "wad_frequency" RelativeTime.jsont ~enc:wad_frequency
|
||||
|> mem "start_date" Timestamp.jsont ~enc:start_date
|
||||
|> mem "end_date" Timestamp.jsont ~enc:end_date
|
||||
|> mem "master_sig" WadPartnerSignaturePS.jsont ~enc:master_sig
|
||||
|> finish
|
||||
end
|
||||
|
|
|
|||
|
|
@ -517,6 +517,8 @@ end
|
|||
|
||||
module PartnerConfigurationPS = struct
|
||||
module R = struct
|
||||
(* TODO purpose
|
||||
this purpose is used 2 times!? *)
|
||||
(* purpose.purpose = TALER_SIGNATURE_MASTER_PARNTER_DETAILS *)
|
||||
type r = {
|
||||
partner_pub: MasterPublicKeyP.t;
|
||||
|
|
@ -555,6 +557,54 @@ module PartnerConfigurationPS = struct
|
|||
include MK (R)
|
||||
end
|
||||
|
||||
module WadPartnerSignaturePS = struct
|
||||
module R = struct
|
||||
(* purpose.purpose = TALER_SIGNATURE_MASTER_PARTNER_DETAILS *)
|
||||
type r = {
|
||||
h_partner_base_url: Hash_64_cstr.t;
|
||||
master_public_key: MasterPublicKeyP.t;
|
||||
start_date: TimeAbsoluteNBO.t;
|
||||
end_date: TimeAbsoluteNBO.t;
|
||||
wad_fee: AmountNBO.t;
|
||||
wad_frequency: TimeRelativeNBO.t;
|
||||
}
|
||||
|
||||
let bin =
|
||||
let open Bin in
|
||||
Purpose.make_bin Taler_signatures.master_partner_details
|
||||
@@ fun _purpose ->
|
||||
record
|
||||
(fun
|
||||
_purpose
|
||||
h_partner_base_url
|
||||
master_public_key
|
||||
start_date
|
||||
end_date
|
||||
wad_fee
|
||||
wad_frequency
|
||||
->
|
||||
{
|
||||
h_partner_base_url;
|
||||
master_public_key;
|
||||
start_date;
|
||||
end_date;
|
||||
wad_fee;
|
||||
wad_frequency;
|
||||
})
|
||||
|+ Purpose.field _purpose
|
||||
|+ field Hash_64_cstr.bin (fun t -> t.h_partner_base_url)
|
||||
|+ field MasterPublicKeyP.bin (fun t -> t.master_public_key)
|
||||
|+ field TimeAbsoluteNBO.bin (fun t -> t.start_date)
|
||||
|+ field TimeAbsoluteNBO.bin (fun t -> t.end_date)
|
||||
|+ field AmountNBO.bin (fun t -> t.wad_fee)
|
||||
|+ field TimeRelativeNBO.bin (fun t -> t.wad_frequency)
|
||||
|> sealr
|
||||
end
|
||||
|
||||
include R
|
||||
include MK (R)
|
||||
end
|
||||
|
||||
(* ### BIN IMPL END ### *)
|
||||
|
||||
module WithdrawRequestPS = struct
|
||||
|
|
@ -985,18 +1035,6 @@ module WadDataSignaturePS = struct
|
|||
}
|
||||
end
|
||||
|
||||
module WadPartnerSignaturePS = struct
|
||||
(* purpose.purpose = TALER_SIGNATURE_MASTER_PARTNER_DETAILS *)
|
||||
type t = {
|
||||
h_partner_base_url: Hash_64_cstr.t;
|
||||
master_public_key: MasterPublicKeyP.t;
|
||||
start_date: TimeAbsoluteNBO.t;
|
||||
end_date: TimeAbsoluteNBO.t;
|
||||
wad_fee: AmountNBO.t;
|
||||
wad_frequency: TimeRelativeNBO.t;
|
||||
}
|
||||
end
|
||||
|
||||
module P2PFeesPS = struct
|
||||
(* purpose.purpose = TALER_SIGNATURE_P2P_FEES *)
|
||||
type t = {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue