~
This commit is contained in:
parent
bcb9015c34
commit
edbe3ceb70
1 changed files with 38 additions and 36 deletions
|
|
@ -159,6 +159,43 @@ let verify_master_signatures ~sm_signkey ~sm_denom
|
|||
|
||||
(* --- *)
|
||||
|
||||
(* TODO move to test *)
|
||||
let check_master_signatures_update ~db_conn ~sm_denom =
|
||||
let open Syntax in
|
||||
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 ())
|
||||
|
||||
let update_master_signatures ~db_conn ~sm_signkey ~sm_denom
|
||||
MasterSignatures.{ denom_sigs; signkey_sigs } =
|
||||
let open Syntax in
|
||||
|
|
@ -174,40 +211,5 @@ 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
|
||||
let* () = check_master_signatures_update ~db_conn ~sm_denom in
|
||||
Ok ()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue