This commit is contained in:
parent
0eef08d00f
commit
78203116e9
3 changed files with 32 additions and 3 deletions
|
|
@ -351,7 +351,9 @@ module Auditors_disable = struct
|
|||
| None -> Error "auditor not found"
|
||||
| Some last_date ->
|
||||
let cmp = Timestamp.compare last_date validity_end |> Option.get in
|
||||
if cmp > 0 then Error "more recent management auditor already present"
|
||||
if cmp > 0 then
|
||||
Error
|
||||
"database has more recent auditor data for this auditor public key"
|
||||
else
|
||||
let+ () =
|
||||
Pg.disable_auditor db_conn ~auditor_pub ~change_date:validity_end
|
||||
|
|
|
|||
|
|
@ -136,6 +136,22 @@ let enable_auditor_cmd =
|
|||
enable_auditor ~output ~master_key ~auditor_url ~auditor_name ~auditor_pub
|
||||
~validity_start
|
||||
|
||||
let disable_auditor_cmd =
|
||||
let doc = "Disable auditor." in
|
||||
let auditor_pub =
|
||||
Arg.(required & opt (some eddsa_pub) None & info [ "auditor_pub" ])
|
||||
in
|
||||
let validity_end =
|
||||
Arg.(required & opt (some timestamp) None & info [ "validity_end" ])
|
||||
in
|
||||
Cmd.make (Cmd.info "disable-auditor" ~doc)
|
||||
@@
|
||||
let+ output = output
|
||||
and+ master_key = master_key
|
||||
and+ auditor_pub = auditor_pub
|
||||
and+ validity_end = validity_end in
|
||||
disable_auditor ~output ~master_key ~auditor_pub ~validity_end
|
||||
|
||||
let global_fees_cmd =
|
||||
let doc = "Provides global fee configuration." in
|
||||
let start_date =
|
||||
|
|
@ -193,6 +209,7 @@ let cli =
|
|||
revoke_denom_cmd;
|
||||
revoke_signkey_cmd;
|
||||
enable_auditor_cmd;
|
||||
disable_auditor_cmd;
|
||||
global_fees_cmd;
|
||||
]
|
||||
|
||||
|
|
@ -200,8 +217,6 @@ let main () = Cmd.eval_result cli
|
|||
let () = if !Sys.interactive then () else exit (main ())
|
||||
|
||||
(* TODO all management operations:
|
||||
/management/auditors
|
||||
/management/auditors/$AUDITOR_PUB/disable
|
||||
/management/wire-fee
|
||||
/management/wire
|
||||
/management/wire/disable
|
||||
|
|
|
|||
|
|
@ -155,3 +155,15 @@ let enable_auditor ~output ~master_key ~auditor_url ~auditor_name ~auditor_pub
|
|||
let* s = Api.encode Api.AuditorSetupMessage.jsont v in
|
||||
let* () = write_file output s in
|
||||
Ok ()
|
||||
|
||||
let disable_auditor ~output ~master_key ~auditor_pub ~validity_end =
|
||||
let open Crypto in
|
||||
let* key = read_master_key_file master_key in
|
||||
let master_sig =
|
||||
let open Bin_sig.MasterDelAuditor in
|
||||
sign_f ~f:(EddsaSignature.sign ~key) { end_date= validity_end; auditor_pub }
|
||||
in
|
||||
let v = Api.AuditorTeardownMessage.{ master_sig; validity_end } in
|
||||
let* s = Api.encode Api.AuditorTeardownMessage.jsont v in
|
||||
let* () = write_file output s in
|
||||
Ok ()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue