wip wire_fee caqti
This commit is contained in:
parent
4f69ac56d2
commit
90ec2423df
3 changed files with 46 additions and 55 deletions
|
|
@ -380,30 +380,17 @@ module Wire_fee = struct
|
||||||
closing_fee;
|
closing_fee;
|
||||||
}
|
}
|
||||||
|
|
||||||
let do_ ~db_conn
|
let do_ ~db_conn (v : WireFeeSetupMessage.t) =
|
||||||
WireFeeSetupMessage.
|
let* wire_fees =
|
||||||
{
|
Pg.get_wire_fees_by_time db_conn ~wire_method:v.wire_method
|
||||||
wire_method;
|
~start_date:v.fee_start ~end_date:v.fee_end
|
||||||
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
|
|> unwrap_err_caqti
|
||||||
in
|
in
|
||||||
|
match wire_fees with
|
||||||
|
| [] ->
|
||||||
|
let+ () = Pg.insert_wire_fee db_conn v |> unwrap_err_caqti in
|
||||||
()
|
()
|
||||||
|
| _l -> Error "wire-fee already setup"
|
||||||
|
|
||||||
let jsont = WireFeeSetupMessage.jsont
|
let jsont = WireFeeSetupMessage.jsont
|
||||||
|
|
||||||
|
|
|
||||||
71
src/pg.ml
71
src/pg.ml
|
|
@ -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, use AggregateTransferFee.t *)
|
||||||
|
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
|
||||||
|
|
|
||||||
|
|
@ -10,6 +10,7 @@ val verify_with_sm_key : t -> eddsa_sig -> msg:string -> (unit, string) result
|
||||||
val verify_with_signkey :
|
val verify_with_signkey :
|
||||||
t -> pub:eddsa_pub -> eddsa_sig -> msg:string -> (unit, string) result
|
t -> pub:eddsa_pub -> eddsa_sig -> msg:string -> (unit, string) result
|
||||||
|
|
||||||
|
(* TODO query database instead? *)
|
||||||
val get_sm_key_pub : t -> eddsa_pub
|
val get_sm_key_pub : t -> eddsa_pub
|
||||||
val get_signkeys_data : t -> Signkey_data.t list
|
val get_signkeys_data : t -> Signkey_data.t list
|
||||||
val get_denoms_data : t -> Denom_data.t list
|
val get_denoms_data : t -> Denom_data.t list
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue