+ GlobalFees

This commit is contained in:
swrup 2025-12-04 16:45:03 +01:00
parent 6cccfe76ef
commit 689c08ddf5
2 changed files with 115 additions and 16 deletions

View file

@ -431,3 +431,55 @@ module WireFeeSetupMessage = struct
|> mem "wire_fee" Amount.jsont ~enc:wire_fee
|> finish
end
module GlobalFees = struct
type t = {
start_date: Timestamp.t;
end_date: Timestamp.t;
history_fee: Amount.t;
account_fee: Amount.t;
purse_fee: Amount.t;
history_expiration: RelativeTime.t;
purse_account_limit: int;
purse_timeout: RelativeTime.t;
(* Signature of TALER_GlobalFeesPS. *)
master_sig: GlobalFeesPS.t;
}
let jsont =
let make start_date end_date history_fee account_fee purse_fee
history_expiration purse_account_limit purse_timeout master_sig =
{
start_date;
end_date;
history_fee;
account_fee;
purse_fee;
history_expiration;
purse_account_limit;
purse_timeout;
master_sig;
}
in
let start_date v = v.start_date in
let end_date v = v.end_date in
let history_fee v = v.history_fee in
let account_fee v = v.account_fee in
let purse_fee v = v.purse_fee in
let history_expiration v = v.history_expiration in
let purse_account_limit v = v.purse_account_limit in
let purse_timeout v = v.purse_timeout in
let master_sig v = v.master_sig in
let open Jsont.Object in
map ~kind:"GlobalFees" make
|> mem "start_date" Timestamp.jsont ~enc:start_date
|> mem "end_date" Timestamp.jsont ~enc:end_date
|> mem "history_fee" Amount.jsont ~enc:history_fee
|> mem "account_fee" Amount.jsont ~enc:account_fee
|> mem "purse_fee" Amount.jsont ~enc:purse_fee
|> mem "history_expiration" RelativeTime.jsont ~enc:history_expiration
|> mem "purse_account_limit" Jsont.int ~enc:purse_account_limit
|> mem "purse_timeout" RelativeTime.jsont ~enc:purse_timeout
|> mem "master_sig" GlobalFeesPS.jsont ~enc:master_sig
|> finish
end