+ aml-officers

This commit is contained in:
swrup 2025-12-11 09:39:24 +01:00
parent b9f9547316
commit 21371c7d50
4 changed files with 62 additions and 2 deletions

View file

@ -178,3 +178,16 @@ let management_drain req server _env =
Ok ""
in
respond_with_res res req
let management_aml_officers_jsont = AmlOfficerSetup.jsont
let management_aml_officers req server _env =
let open Management in
let db_conn = Vif.Server.device Devices.db_connection server in
let res =
let* v = Vif.Request.of_json req |> unwrap_err_msg in
let* () = verify_aml_officier v in
let* () = update_aml_officier ~db_conn v in
Ok ""
in
respond_with_res res req

View file

@ -445,8 +445,6 @@ let update_wire_disable ~db_conn
in
()
[@@@ocaml.warning "-27"]
let verify_drain
DrainProfitsMessage.
{
@ -471,3 +469,29 @@ let verify_drain
let update_drain ~db_conn v =
let+ () = Pg.insert_drain_profit db_conn v |> unwrap_err_caqti in
()
let verify_aml_officier
AmlOfficerSetup.
{
officer_pub;
officer_name;
is_active;
read_only=_;
master_sig;
change_date;
} =
let open Bin_sig.MasterAmlOfficerStatus in
let is_active = match is_active with true -> 1_l | false -> 0_l in
verify ~key:Config.Exchange.master_public_key master_sig
{
change_date;
officer_pub;
h_officer_name= Bin_type.Hash_64_cstr.hash officer_name;
is_active;
}
let update_aml_officier ~db_conn v =
let+ _last_change = Pg.insert_aml_officer db_conn v |> unwrap_err_caqti in
()
(*[@@@ocaml.warning "-27"]*)

View file

@ -57,6 +57,8 @@ let routes =
post (v "management" / "wire" / "disable") management_wire_disable_jsont
--> management_wire_disable;
post (v "management" / "drain") management_drain_jsont --> management_drain;
post (v "management" / "aml-officers") management_aml_officers_jsont
--> management_aml_officers;
]
let () =

View file

@ -429,3 +429,24 @@ let insert_drain_profit =
->
Conn.exec insert_drain_profit
(wtid, debit_account_section, credit_payto_uri, date, amount, master_sig)
let insert_aml_officer =
let exchange_do_insert_aml_officer =
let master_sig = Bin_sig.MasterAmlOfficerStatus.caqti in
Caqti_type.(t6 eddsa_pub master_sig string bool bool time ->! time)
"SELECT out_last_change FROM exchange_do_insert_aml_officer ($1, $2, $3, \
$4, $5, $6)"
in
fun (module Conn : CONN)
Api.AmlOfficerSetup.
{
officer_pub;
officer_name;
is_active;
read_only;
master_sig;
change_date;
}
->
Conn.find exchange_do_insert_aml_officer
(officer_pub, master_sig, officer_name, is_active, read_only, change_date)