use exchange_pub valid at this time

This commit is contained in:
swrup 2026-02-26 17:04:48 +01:00 committed by Swrup
parent 9df75d7ea4
commit 96ac74a0ab
5 changed files with 25 additions and 8 deletions

View file

@ -68,7 +68,7 @@ let mk_keys ~db_conn (module Keys : Keys.S) ~last_issue_date =
| Some timestamp ->
List.find_map
(fun v ->
if Timestamp.compare v.Denomination.stamp_start timestamp = 0 then
if Timestamp.equal v.Denomination.stamp_start timestamp then
Some v.stamp_start
else None)
denom_l
@ -77,20 +77,24 @@ let mk_keys ~db_conn (module Keys : Keys.S) ~last_issue_date =
| None -> denom_l
| Some timestamp ->
List.filter
(fun v -> Timestamp.compare v.Denomination.stamp_start timestamp >= 0)
(fun v -> Timestamp.geq v.Denomination.stamp_start timestamp)
denom_l
in
let* denominations = Denomination.make_denom_group_sorted denom_l in
let* signkeys = Keys.signkeys () in
let signkeys = List.map Api.SignKey.of_signkey signkeys in
(* the eddsa pub key used to sign exchange_sig *)
let* exchange_pub =
match signkeys with
| [] -> Fmt.error "exchange has no active signkey"
| sk :: _ -> Ok sk.SignKey.key
let now = Timestamp.of_ptime (Ptime_clock.now ()) in
let opt =
List.find_opt (fun sk -> Signkey.is_valid_at ~timestamp:now sk) signkeys
in
match opt with
| None -> Fmt.error "exchange has no active signkey"
| Some sk -> Ok sk.pub
in
let signkeys = List.map Api.SignKey.of_signkey signkeys in
(* ! depends on denominations order *)
let exchange_sig =