+ aml-officers
This commit is contained in:
parent
b9f9547316
commit
21371c7d50
4 changed files with 62 additions and 2 deletions
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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"]*)
|
||||
|
|
|
|||
|
|
@ -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 () =
|
||||
|
|
|
|||
21
src/pg.ml
21
src/pg.ml
|
|
@ -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)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue