+ validate wire_fees

This commit is contained in:
swrup 2026-02-27 18:15:09 +01:00
parent 9213604385
commit 71902e3423
3 changed files with 28 additions and 12 deletions

View file

@ -60,7 +60,7 @@ echo "[OK] /management/auditors/\$AUDITOR_PUB/disable"
offline_tool wire-fee \
--master_key $master_key \
--output $b \
--wire_method "xxx" \
--wire_method "x-taler-bank" \
--fee_start 0 \
--fee_end 99999999 \
--closing_fee $zero_kudos \

View file

@ -2,9 +2,9 @@ open Syntax
(*open Crypto*)
let keys content =
let open Api.ExchangeKeysResponse in
let open Api in
let open ExchangeKeysResponse in
let* v = Api.decode jsont content in
(* validate version compatibility *)
let* () =
if
Libtool_version.is_compatible
@ -13,13 +13,29 @@ let keys content =
else Fmt.error "version incompatible"
in
(* TODO *)
(* validate currency specification *)
(* validate all amounts *)
(* validate all timestamp/duration *)
(* validate master_public_key *)
(* validate accounts *)
(* validate wire-fees *)
(* TODO need hash over json..
validate ExchangeWireAccount *)
let* () =
let open AggregateTransferFee in
v.wire_fees
|> String_map.bindings
|> List.concat_map (fun (wire_method, l) ->
List.map (fun item -> (wire_method, item)) l)
|> list_iter
(fun
(wire_method, { wire_fee; closing_fee; start_date; end_date; sig_ })
->
let open Signatures.MasterWireFee in
verify v.master_public_key sig_
{
h_wire_method= Hash.Cstring.H64.hash wire_method;
start_date;
end_date;
wire_fee;
closing_fee;
})
in
(* validate signkeys *)
(* validate exchange_pub *)
(* validate denominations *)