+ fix taler_amount: lookup_denomination_key

This commit is contained in:
swrup 2025-12-07 04:05:15 +01:00
parent 0c8ea5ba65
commit 27a940deed
3 changed files with 51 additions and 6 deletions

View file

@ -179,6 +179,42 @@ let update_master_signatures ~db_conn ~sm_signkey ~sm_denom
(h_denom_pub, master_sig))
|> Secmod_denom.add_master_signatures db_conn sm_denom
in
let* () =
(* TODO move to test *)
Secmod_denom.get_denoms sm_denom
|> list_iter (fun denom ->
let error = Error "update_master_signatures sanity check failure" in
let* opt =
Pg.lookup_denomination_key db_conn denom.Denomination.h_pub
|> unwrap_err_caqti
in
let* ( valid_from,
_expire_withdraw,
_expire_deposit,
_expire_legal,
coin,
_fee_withdraw,
_fee_deposit,
_fee_refresh,
fee_refund,
age_mask ) =
match opt with None -> error | Some v -> Ok v
in
let check = function false -> error | true -> Ok () in
(* TODO time *)
let timestamp_equal a b =
let timestamp_to_int64 = function
| None -> None
| Some v -> v |> Ptime.to_float_s |> Int64.of_float |> Option.some
in
timestamp_to_int64 a = timestamp_to_int64 b
in
let* () = check (timestamp_equal valid_from denom.stamp_start) in
let* () = check (coin = denom.value) in
let* () = check (fee_refund = denom.fee_refund) in
let* () = check (age_mask = denom.age_mask) in
Ok ())
in
Ok ()
(* --- *)
@ -200,7 +236,10 @@ let respond_with_ok_json content req =
let respond_with_res res req =
match res with
| Error err -> respond_with_plain_text_error err req
| Error err ->
Logs.err (fun m -> m "%s." err);
let err = Fmt.str "%s@." err in
respond_with_plain_text_error err req
| Ok content -> respond_with_ok_json content req
let keys_get req server _env =