This commit is contained in:
parent
008bb6b0fe
commit
f741dbc7e4
3 changed files with 49 additions and 8 deletions
|
|
@ -20,9 +20,13 @@ module Exchange = struct
|
|||
let port = get "port" |> int
|
||||
let bind_to = get "bind_to"
|
||||
let master_public_key = get "master_public_key" |> ed25519
|
||||
|
||||
(* TODO Defaults to 0.0 if not specified. *)
|
||||
let stefan_abs = get "stefan_abs" |> amount
|
||||
let stefan_log = get "stefan_log" |> amount
|
||||
let stefan_lin = get_opt "stefan_lin" |> Option.map float
|
||||
|
||||
let stefan_lin =
|
||||
get_opt "stefan_lin" |> Option.map float |> Option.value ~default:0.0
|
||||
|
||||
let aggregator_idle_sleep_interval =
|
||||
get "aggregator_idle_sleep_interval" |> duration
|
||||
|
|
|
|||
|
|
@ -88,7 +88,9 @@ let mk_keys ~db_conn ~sm ~last_issue_date =
|
|||
let kyc_enabled = false in
|
||||
let disable_direct_deposit = (* todo *) false in
|
||||
let master_public_key = Config.master_public_key in
|
||||
let reserve_closing_delay = Config.Exchangedb.idle_reserve_expiration_time in
|
||||
let reserve_closing_delay =
|
||||
Some Config.Exchangedb.idle_reserve_expiration_time
|
||||
in
|
||||
(* todo *)
|
||||
let wallet_balance_limit_without_kyc = None in
|
||||
let hard_limits = [] in
|
||||
|
|
@ -110,13 +112,44 @@ let mk_keys ~db_conn ~sm ~last_issue_date =
|
|||
| v :: _ -> v.stamp_start
|
||||
in
|
||||
let denominations =
|
||||
(* TODO really need to understand and correctly group denoms *)
|
||||
(* TODO really need to understand and correctly group denoms
|
||||
'exchange_sig' depends on correct denom group/order *)
|
||||
List.map denomgroup_of_denomdata denom_data_l
|
||||
in
|
||||
|
||||
let* signkeys =
|
||||
let+ signkey_data_l = Pg.get_active_signkeys db_conn |> unwrap_err_caqti in
|
||||
let signkey_data_l =
|
||||
List.sort
|
||||
(fun a b ->
|
||||
let open Signkey_data in
|
||||
Stdlib.compare a.stamp_start b.stamp_start)
|
||||
signkey_data_l
|
||||
in
|
||||
List.map
|
||||
(fun Signkey_data.
|
||||
{
|
||||
pub;
|
||||
stamp_start;
|
||||
stamp_expire;
|
||||
stamp_end;
|
||||
master_sig;
|
||||
revoked_sig= _;
|
||||
} ->
|
||||
let master_sig =
|
||||
match master_sig with
|
||||
| None -> Fmt.failwith "signkey_data without master_sig"
|
||||
| Some v -> v
|
||||
in
|
||||
SignKey.{ key= pub; stamp_start; stamp_expire; stamp_end; master_sig })
|
||||
signkey_data_l
|
||||
in
|
||||
|
||||
let exchange_pub =
|
||||
(* the eddsa pub key used to sign exchange_sig *)
|
||||
Obj.magic ""
|
||||
match signkeys with
|
||||
| [] -> Fmt.failwith "exchange has no active signkey"
|
||||
| v :: _ -> v.SignKey.key
|
||||
in
|
||||
let exchange_sig =
|
||||
(* Compact EdDSA signature (binary-only) over the
|
||||
|
|
@ -139,7 +172,13 @@ let mk_keys ~db_conn ~sm ~last_issue_date =
|
|||
R.{ list_issue_date; hc }
|
||||
in
|
||||
|
||||
(*
|
||||
let recoup = [] in
|
||||
let global_fees = (* TODO *) [] in
|
||||
let auditors = (* TODO *) [] in
|
||||
let extensions = None in
|
||||
let extensions_sig = None in
|
||||
Ok
|
||||
ExchangeKeysResponse.
|
||||
{
|
||||
version;
|
||||
base_url;
|
||||
|
|
@ -175,8 +214,6 @@ let mk_keys ~db_conn ~sm ~last_issue_date =
|
|||
extensions;
|
||||
extensions_sig;
|
||||
}
|
||||
*)
|
||||
assert false
|
||||
|
||||
let jsont = ExchangeKeysResponse.jsont
|
||||
|
||||
|
|
|
|||
|
|
@ -61,7 +61,7 @@ let get_active_signkeys =
|
|||
esk_serial FROM signkey_revocations skr WHERE esk.esk_serial = \
|
||||
skr.esk_serial)"
|
||||
in
|
||||
fun (module Conn : CONN) () ->
|
||||
fun (module Conn : CONN) ->
|
||||
let now = Ptime_clock.now () |> Option.some in
|
||||
Conn.collect_list get_active_signkeys now
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue