JJ: Description from the destination commit:
fix secmod add/write; + wip test revoke JJ: Description from source commit: + test disable-auditor + wire + drain
This commit is contained in:
parent
836b9ff64a
commit
c45cd51c27
14 changed files with 545 additions and 232 deletions
110
tools/offline.ml
110
tools/offline.ml
|
|
@ -1,13 +1,6 @@
|
|||
(* TODO
|
||||
all management operations:
|
||||
/management/wire
|
||||
/management/wire/disable
|
||||
|
||||
/management/aml-officers
|
||||
-> /aml
|
||||
/management/partners
|
||||
-> /wads *)
|
||||
|
||||
(* not done:
|
||||
/management/aml-officers (for /aml)
|
||||
/management/partners (for /wads) *)
|
||||
open Cmdliner
|
||||
open Cmdliner.Term.Syntax
|
||||
open Offline_impl
|
||||
|
|
@ -128,14 +121,54 @@ let sign_cmd =
|
|||
|
||||
let revoke_denom_cmd =
|
||||
let doc = "Revoke denomination." in
|
||||
let h_denom =
|
||||
let doc = "hash of denomination public key" in
|
||||
let is_rsa_pub =
|
||||
let doc =
|
||||
"interpret input string as a RSA public key (in Crockford-base32) \
|
||||
instead of a denomination hash"
|
||||
in
|
||||
Arg.(value & flag & info [ "rsa" ] ~doc)
|
||||
in
|
||||
let v =
|
||||
let doc = "hash of denomination (or RSA public key if --rsa is set)" in
|
||||
Arg.(required & pos 0 (some string) None & info [] ~doc)
|
||||
in
|
||||
Cmd.make (Cmd.info "revoke-denom" ~doc)
|
||||
@@
|
||||
let+ output = output and+ master_key = master_key and+ h_denom = h_denom in
|
||||
revoke_denom ~output ~master_key ~h_denom
|
||||
let+ output = output
|
||||
and+ master_key = master_key
|
||||
and+ is_rsa_pub = is_rsa_pub
|
||||
and+ v = v in
|
||||
let res =
|
||||
match is_rsa_pub with
|
||||
| false -> Ok v
|
||||
| true -> (
|
||||
match B32.decode v with
|
||||
| Error e -> Error e
|
||||
| Ok s ->
|
||||
let h = Hash.DenominationHash.hash s in
|
||||
let s = B32.encode (Hash.DenominationHash.to_octets h) in
|
||||
Ok s)
|
||||
in
|
||||
match res with
|
||||
| Error e -> Error e
|
||||
| Ok h_denom -> revoke_denom ~output ~master_key ~h_denom
|
||||
|
||||
(* just for tests... *)
|
||||
let test_hash64_cmd =
|
||||
let doc =
|
||||
"Compute SHA-512, print output to stdout, input and output are \
|
||||
Crockford-base32 encoded"
|
||||
in
|
||||
let s = Arg.(required & pos 0 (some string) None & info []) in
|
||||
Cmd.make (Cmd.info "hash64" ~doc)
|
||||
@@
|
||||
let+ s = s in
|
||||
match B32.decode s with
|
||||
| Error e -> Error e
|
||||
| Ok s ->
|
||||
let h = Hash.DenominationHash.hash s in
|
||||
let s = B32.encode (Hash.DenominationHash.to_octets h) in
|
||||
Fmt.pr "%s@." s; Ok ()
|
||||
|
||||
let revoke_signkey_cmd =
|
||||
let doc = "Revoke signkey." in
|
||||
|
|
@ -159,35 +192,26 @@ let enable_auditor_cmd =
|
|||
let auditor_pub =
|
||||
Arg.(required & opt (some eddsa_pub) None & info [ "auditor_pub" ])
|
||||
in
|
||||
let validity_start =
|
||||
Arg.(required & opt (some timestamp) None & info [ "validity_start" ])
|
||||
in
|
||||
Cmd.make (Cmd.info "enable-auditor" ~doc)
|
||||
@@
|
||||
let+ output = output
|
||||
and+ master_key = master_key
|
||||
and+ auditor_url = auditor_url
|
||||
and+ auditor_name = auditor_name
|
||||
and+ auditor_pub = auditor_pub
|
||||
and+ validity_start = validity_start in
|
||||
and+ auditor_pub = auditor_pub in
|
||||
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
|
||||
and+ auditor_pub = auditor_pub in
|
||||
disable_auditor ~output ~master_key ~auditor_pub
|
||||
|
||||
let wire_fee_cmd =
|
||||
let doc = "Provides wire fee configuration." in
|
||||
|
|
@ -261,6 +285,36 @@ let global_fees_cmd =
|
|||
~account_fee ~purse_fee ~history_expiration ~purse_account_limit
|
||||
~purse_timeout
|
||||
|
||||
let enable_wire_cmd =
|
||||
let doc = "Enable wire method." in
|
||||
let payto_uri =
|
||||
Arg.(required & opt (some string) None & info [ "payto_uri" ])
|
||||
in
|
||||
let bank_label =
|
||||
Arg.(value & opt (some string) None & info [ "bank_label" ])
|
||||
in
|
||||
let priority = Arg.(value & opt (some int) None & info [ "priority" ]) in
|
||||
Cmd.make (Cmd.info "enable-wire" ~doc)
|
||||
@@
|
||||
let+ output = output
|
||||
and+ master_key = master_key
|
||||
and+ payto_uri = payto_uri
|
||||
and+ bank_label = bank_label
|
||||
and+ priority = priority in
|
||||
enable_wire ~output ~master_key ~payto_uri ~bank_label ~priority
|
||||
|
||||
let disable_wire_cmd =
|
||||
let doc = "Disable wire method." in
|
||||
let payto_uri =
|
||||
Arg.(required & opt (some string) None & info [ "payto_uri" ])
|
||||
in
|
||||
Cmd.make (Cmd.info "disable-wire" ~doc)
|
||||
@@
|
||||
let+ output = output
|
||||
and+ master_key = master_key
|
||||
and+ payto_uri = payto_uri in
|
||||
disable_wire ~output ~master_key ~payto_uri
|
||||
|
||||
let drain_cmd =
|
||||
let doc =
|
||||
"Drain profits from the exchange. The actual drain requires running the \
|
||||
|
|
@ -304,7 +358,11 @@ let cli =
|
|||
disable_auditor_cmd;
|
||||
wire_fee_cmd;
|
||||
global_fees_cmd;
|
||||
enable_wire_cmd;
|
||||
disable_wire_cmd;
|
||||
drain_cmd;
|
||||
(* - *)
|
||||
test_hash64_cmd;
|
||||
]
|
||||
|
||||
let main () = Cmd.eval_result cli
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue