From 201382ee880371c4455a1095372561c5470434cc Mon Sep 17 00:00:00 2001 From: swrup Date: Thu, 11 Dec 2025 09:06:13 +0100 Subject: [PATCH] + wire disable --- src/handler.ml | 13 +++++++++++++ src/management.ml | 27 +++++++++++++++++++++++---- src/mte.ml | 2 ++ 3 files changed, 38 insertions(+), 4 deletions(-) diff --git a/src/handler.ml b/src/handler.ml index a31b45b9..968a7458 100644 --- a/src/handler.ml +++ b/src/handler.ml @@ -152,3 +152,16 @@ let management_wire req server _env = Ok "" in respond_with_res res req + +let management_wire_disable_jsont = WireTeardownMessage.jsont + +let management_wire_disable 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_wire_disable v in + let* () = update_wire_disable ~db_conn v in + Ok "" + in + respond_with_res res req diff --git a/src/management.ml b/src/management.ml index 51cacbf7..be9a8f54 100644 --- a/src/management.ml +++ b/src/management.ml @@ -377,8 +377,6 @@ let update_global_fees ~db_conn v = let+ () = Pg.insert_global_fee db_conn v |> unwrap_err_caqti in () -[@@@ocaml.warning "-27"] - let verify_wire WireSetupMessage. { @@ -386,8 +384,8 @@ let verify_wire master_sig_wire; master_sig_add; validity_start; - bank_label; - priority; + bank_label= _; + priority= _; } = (* TODO wire *) let conversion_url = "" in @@ -427,3 +425,24 @@ let update_wire ~db_conn v = | None -> let+ () = Pg.insert_wire db_conn v |> unwrap_err_caqti in () + +let verify_wire_disable + WireTeardownMessage.{ payto_uri; master_sig_del; validity_end } = + let open Bin_sig.MasterDelWire in + verify ~key:Config.Exchange.master_public_key master_sig_del + { end_date= validity_end; h_wire= Bin_type.FullPaytoHash.hash payto_uri } + +let update_wire_disable ~db_conn + WireTeardownMessage.{ payto_uri; master_sig_del= _; validity_end } = + let* last_change_opt = + Pg.lookup_wire_timestamp db_conn ~payto_uri |> unwrap_err_caqti + in + match last_change_opt with + | None -> Error "wire not found" + | Some _ -> + let+ () = + Pg.disable_wire db_conn ~payto_uri ~validity_end |> unwrap_err_caqti + in + () + +(*[@@@ocaml.warning "-27"]*) diff --git a/src/mte.ml b/src/mte.ml index 44215b2f..6461fc5a 100644 --- a/src/mte.ml +++ b/src/mte.ml @@ -54,6 +54,8 @@ let routes = post (v "management" / "global-fees") management_global_fees_jsont --> management_global_fees; post (v "management" / "wire") management_wire_jsont --> management_wire; + post (v "management" / "wire" / "disable") management_wire_disable_jsont + --> management_wire_disable; ] let () =