This commit is contained in:
swrup 2025-12-21 19:04:44 +01:00
parent 81cb814c91
commit 2623268a61
2 changed files with 50 additions and 17 deletions

View file

@ -63,6 +63,11 @@ module B32 = struct
include B32 include B32
let jsont = Jsont.of_of_string ~kind:"B32" B32.decode ~enc:B32.encode let jsont = Jsont.of_of_string ~kind:"B32" B32.decode ~enc:B32.encode
let caqti =
Caqti_type.custom
~encode:(fun v -> Ok (B32.encode v))
~decode:B32.decode Caqti_type.string
end end
module HashCode : sig module HashCode : sig
@ -689,12 +694,12 @@ end
module DrainProfitsMessage = struct module DrainProfitsMessage = struct
type t = { type t = {
wtid: B32.t;
debit_account_section: string; debit_account_section: string;
credit_payto_uri: string; credit_payto_uri: string;
wtid: B32.t;
master_sig: MasterDrainProfit.t;
date: Timestamp.t; date: Timestamp.t;
amount: Amount.t; amount: Amount.t;
master_sig: MasterDrainProfit.t;
} }
let jsont = let jsont =

View file

@ -41,6 +41,7 @@ module Caqti_type = struct
(* todo: enum type for wire_method? *) (* todo: enum type for wire_method? *)
let wire_method = Caqti_type.string let wire_method = Caqti_type.string
let payto_uri = Caqti_type.string let payto_uri = Caqti_type.string
let b32 = Api.B32.caqti
include struct include struct
(* alias for hash *) (* alias for hash *)
@ -267,6 +268,46 @@ module Caqti_type = struct
t7 payto_uri (option string) account_restrictions account_restrictions t7 payto_uri (option string) account_restrictions account_restrictions
master_sig (option string) (option int)) master_sig (option string) (option int))
let drain_profit_message =
let master_sig = Bin_sig.MasterDrainProfit.caqti in
Caqti_type.custom
~encode:(fun
DrainProfitsMessage.
{
wtid;
debit_account_section;
credit_payto_uri;
date;
amount;
master_sig;
}
->
Ok
( wtid,
debit_account_section,
credit_payto_uri,
date,
amount,
master_sig ))
~decode:(fun
( wtid,
debit_account_section,
credit_payto_uri,
date,
amount,
master_sig )
->
Ok
{
wtid;
debit_account_section;
credit_payto_uri;
date;
amount;
master_sig;
})
Caqti_type.(t6 b32 string string time amount master_sig)
include Caqti_request.Infix include Caqti_request.Infix
end end
@ -501,24 +542,11 @@ let disable_wire =
let insert_drain_profit = let insert_drain_profit =
let insert_drain_profit = let insert_drain_profit =
let master_sig = Bin_sig.MasterDrainProfit.caqti in Caqti_type.(drain_profit_message ->. unit)
Caqti_type.(t6 string string payto_uri time amount master_sig ->. unit)
"INSERT INTO profit_drains (wtid, account_section, payto_uri, \ "INSERT INTO profit_drains (wtid, account_section, payto_uri, \
trigger_date, amount, master_sig) VALUES ($1, $2, $3, $4, ($5,$6), $7)" trigger_date, amount, master_sig) VALUES ($1, $2, $3, $4, ($5,$6), $7)"
in in
fun (module Conn : CONN) fun (module Conn : CONN) v -> Conn.exec insert_drain_profit v
DrainProfitsMessage.
{
debit_account_section;
credit_payto_uri;
wtid;
master_sig;
date;
amount;
}
->
Conn.exec insert_drain_profit
(wtid, debit_account_section, credit_payto_uri, date, amount, master_sig)
let insert_aml_officer = let insert_aml_officer =
let exchange_do_insert_aml_officer = let exchange_do_insert_aml_officer =