Source file client_smart_rollup_commands.ml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
let group =
{
Tezos_clic.name = "smart rollup";
title = "Commands for managing the record of known smart rollup";
}
let commands () =
let open Tezos_clic in
[
command
~group
~desc:"Add a smart rollup to the wallet."
(args1 (Smart_rollup_alias.Address.force_switch ()))
(prefixes ["remember"; "smart"; "rollup"]
@@ Smart_rollup_alias.Address.fresh_alias_param
@@ Smart_rollup_alias.Address.source_param @@ stop)
(fun force name hash cctxt ->
let open Lwt_result_syntax in
let* name = Smart_rollup_alias.Address.of_fresh cctxt force name in
Smart_rollup_alias.Address.add ~force cctxt name hash);
command
~group
~desc:"Remove a smart rollup from the wallet."
no_options
(prefixes ["forget"; "smart"; "rollup"]
@@ Smart_rollup_alias.Address.alias_param @@ stop)
(fun () (name, _) cctxt -> Smart_rollup_alias.Address.del cctxt name);
command
~group
~desc:"Lists all known smart rollup in the wallet."
no_options
(fixed ["list"; "known"; "smart"; "rollups"])
(fun () (cctxt : Client_context.full) ->
let open Lwt_result_syntax in
let* smart_rollups = Smart_rollup_alias.Address.load cctxt in
let*! () =
List.iter_s
(fun (alias, rollup) ->
cctxt#message
"%s: %a"
alias
Tezos_crypto.Hashed.Smart_rollup_address.pp
rollup)
smart_rollups
in
return_unit);
command
~group
~desc:"Forget the entire wallet of known smart rollups."
(args1 (Smart_rollup_alias.Address.force_switch ()))
(fixed ["forget"; "all"; "smart"; "rollups"])
(fun force cctxt ->
let open Lwt_result_syntax in
let* () =
fail_unless
force
(error_of_fmt "this can only be used with option --force")
in
Smart_rollup_alias.Address.set cctxt []);
command
~group
~desc:"Display a smart rollup from the wallet."
no_options
(prefixes ["show"; "known"; "smart"; "rollup"]
@@ Smart_rollup_alias.Address.alias_param @@ stop)
(fun () (_, rollup) (cctxt : Client_context.full) ->
let open Lwt_result_syntax in
let*! () =
cctxt#message
"%a\n%!"
Tezos_crypto.Hashed.Smart_rollup_address.pp
rollup
in
return_unit);
]