This commit is contained in:
swrup 2025-12-16 18:02:13 +01:00
parent 4f69ac56d2
commit 7b71a9ae2b
2 changed files with 43 additions and 53 deletions

View file

@ -380,30 +380,17 @@ module Wire_fee = struct
closing_fee; closing_fee;
} }
let do_ ~db_conn let do_ ~db_conn (v : WireFeeSetupMessage.t) =
WireFeeSetupMessage.
{
wire_method;
master_sig_wire;
fee_start;
fee_end;
closing_fee;
wire_fee;
} =
let* wire_fee_opt = let* wire_fee_opt =
Pg.lookup_wire_fee_by_time db_conn ~wire_method ~start_date:fee_start Pg.get_wire_fees_by_time db_conn ~wire_method:v.wire_method
~end_date:fee_end ~start_date:v.fee_start ~end_date:v.fee_end
|> unwrap_err_caqti |> unwrap_err_caqti
in in
match wire_fee_opt with match wire_fee_opt with
| Some (_wire_fee, _closing_fee) -> Error "wire-fee already setup" | [] ->
| None -> let+ () = Pg.insert_wire_fee db_conn v |> unwrap_err_caqti in
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
() ()
| _l -> Error "wire-fee already setup"
let jsont = WireFeeSetupMessage.jsont let jsont = WireFeeSetupMessage.jsont

View file

@ -328,16 +328,6 @@ let disable_auditor =
fun (module Conn : CONN) ~auditor_pub ~change_date -> fun (module Conn : CONN) ~auditor_pub ~change_date ->
Conn.exec update_auditor (auditor_pub, "", "", false, change_date) Conn.exec update_auditor (auditor_pub, "", "", false, change_date)
(* TODO return type *)
let lookup_wire_fee_by_time =
let lookup_wire_fee_by_time =
Caqti_type.(t3 wire_method time time ->? t2 amount amount)
"SELECT (wire_fee).*, (closing_fee).* FROM wire_fee WHERE wire_method=$1 \
AND end_date > $2 AND start_date < $3"
in
fun (module Conn : CONN) ~wire_method ~start_date ~end_date ->
Conn.find_opt lookup_wire_fee_by_time (wire_method, start_date, end_date)
let insert_wire_fee = let insert_wire_fee =
let insert_wire_fee = let insert_wire_fee =
let master_sig = Bin_sig.MasterWireFee.caqti in let master_sig = Bin_sig.MasterWireFee.caqti in
@ -346,15 +336,44 @@ let insert_wire_fee =
closing_fee, master_sig) VALUES ($1, $2, $3, ($4,$5), ($6,$7), $8)" closing_fee, master_sig) VALUES ($1, $2, $3, ($4,$5), ($6,$7), $8)"
in in
fun (module Conn : CONN) fun (module Conn : CONN)
~wire_method WireFeeSetupMessage.
~start_date {
~end_date wire_method;
~wire_fee master_sig_wire;
~closing_fee fee_start;
~master_sig fee_end;
closing_fee;
wire_fee;
}
-> ->
Conn.exec insert_wire_fee Conn.exec insert_wire_fee
(wire_method, start_date, end_date, wire_fee, closing_fee, master_sig) (wire_method, fee_start, fee_end, wire_fee, closing_fee, master_sig_wire)
(* TODO return type *)
let get_wire_fees_by_time =
let lookup_wire_fee_by_time =
Caqti_type.(t3 wire_method time time ->* t2 amount amount)
"SELECT (wire_fee).*, (closing_fee).* FROM wire_fee WHERE wire_method=$1 \
AND end_date > $2 AND start_date < $3"
in
fun (module Conn : CONN) ~wire_method ~start_date ~end_date ->
Conn.collect_list lookup_wire_fee_by_time (wire_method, start_date, end_date)
let get_wire_fees =
let get_wire_fees =
let master_sig = Bin_sig.MasterWireFee.caqti in
Caqti_type.(string ->* t5 amount amount time time master_sig)
"SELECT wire_fee, closing_fee, start_date, end_date, master_sig FROM \
wire_fee WHERE wire_method=$1"
in
fun (module Conn : CONN) ~wire_method ->
let open Syntax in
let+ l = Conn.collect_list get_wire_fees wire_method in
List.map
(fun (wire_fee, closing_fee, start_date, end_date, sig_) ->
AggregateTransferFee.
{ wire_fee; closing_fee; start_date; end_date; sig_ })
l
let get_global_fees = let get_global_fees =
let get_global_fees = let get_global_fees =
@ -368,7 +387,7 @@ let get_global_fees =
let lookup_global_fees_by_time = let lookup_global_fees_by_time =
let lookup_global_fees_by_time = let lookup_global_fees_by_time =
Caqti_type.(t2 time time ->? global_fee) Caqti_type.(t2 time time ->* global_fee)
"SELECT start_date, end_date, (history_fee).*, (account_fee).*, \ "SELECT start_date, end_date, (history_fee).*, (account_fee).*, \
(purse_fee).*, history_expiration, purse_account_limit, purse_timeout, \ (purse_fee).*, history_expiration, purse_account_limit, purse_timeout, \
master_sig FROM global_fee WHERE end_date > $1 AND start_date < $2" master_sig FROM global_fee WHERE end_date > $1 AND start_date < $2"
@ -587,22 +606,6 @@ let get_wire_accouts =
}) })
l l
let get_wire_fees =
let get_wire_fees =
let master_sig = Bin_sig.MasterWireFee.caqti in
Caqti_type.(string ->* t5 amount amount time time master_sig)
"SELECT wire_fee, closing_fee, start_date, end_date, master_sig FROM \
wire_fee WHERE wire_method=$1"
in
fun (module Conn : CONN) ~wire_method ->
let open Syntax in
let+ l = Conn.collect_list get_wire_fees wire_method in
List.map
(fun (wire_fee, closing_fee, start_date, end_date, sig_) ->
AggregateTransferFee.
{ wire_fee; closing_fee; start_date; end_date; sig_ })
l
(* TODO (* TODO
iterate_denominations iterate_denominations
iterate_active_signkeys iterate_active_signkeys