wip wire-fee & global-fees

This commit is contained in:
swrup 2025-12-11 05:41:32 +01:00
parent af09c697b8
commit 0e46ea162a
5 changed files with 212 additions and 9 deletions

View file

@ -296,3 +296,99 @@ let auditor_disable ~db_conn auditor_pub
|> unwrap_err_caqti
in
()
let verify_wire_fee_setup_sig
WireFeeSetupMessage.
{
wire_method;
master_sig_wire;
fee_start;
fee_end;
closing_fee;
wire_fee;
} =
let open Bin_sig.MasterWireFee in
verify ~key:Config.Exchange.master_public_key master_sig_wire
{
h_wire_method= Bin_type.Hash_64_cstr.hash wire_method;
start_date= fee_start;
end_date= fee_end;
wire_fee;
closing_fee;
}
let update_wire_fee_setup ~db_conn
WireFeeSetupMessage.
{
wire_method;
master_sig_wire;
fee_start;
fee_end;
closing_fee;
wire_fee;
} =
let* wire_fee_opt =
Pg.lookup_wire_fee_by_time db_conn ~wire_method ~start_date:fee_start
~end_date:fee_end
|> unwrap_err_caqti
in
match wire_fee_opt with
| Some (_wire_fee, _closing_fee) -> Error "wire-fee already setup"
| None ->
let+ () =
Pg.insert_wire_fee db_conn ~wire_method ~start_date:fee_start
~end_date:fee_end ~wire_fee ~closing_fee ~master_sig:master_sig_wire
|> unwrap_err_caqti
in
()
let verify_global_fees
GlobalFees.
{
start_date;
end_date;
history_fee;
account_fee;
purse_fee;
history_expiration= _;
purse_account_limit;
purse_timeout= _;
master_sig;
} =
(* TODO time..... *)
let dummy_relative_time = None in
let dummy_amount =
Amount.make ~sign:None ~currency:"EUR" ~value:0_L ~fraction:0_l
|> Result.get_ok
in
(* TODO what is kyc_timeout, kyc_fee ? *)
let kyc_timeout = dummy_relative_time in
let kyc_fee = dummy_amount in
(* * *)
let open Bin_sig.GlobalFees in
verify ~key:Config.Exchange.master_public_key master_sig
{
start_date;
end_date;
purse_timeout= dummy_relative_time;
kyc_timeout;
history_expiration= dummy_relative_time;
history_fee;
kyc_fee;
account_fee;
purse_fee;
purse_account_limit;
}
let update_global_fees ~db_conn v =
let* global_fees_opt =
let start_date = v.GlobalFees.start_date in
let end_date = v.GlobalFees.end_date in
Pg.lookup_global_fee_by_time db_conn ~start_date ~end_date
|> unwrap_err_caqti
in
match global_fees_opt with
| Some _ -> Error "global-fees already setup"
| None ->
let+ () = Pg.insert_global_fee db_conn v |> unwrap_err_caqti in
()