jito_restaking_cli/
restaking.rs1use clap::{command, Subcommand};
2use solana_program::pubkey::Pubkey;
3
4#[derive(Subcommand)]
6pub enum RestakingCommands {
7 Config {
9 #[command(subcommand)]
10 action: ConfigActions,
11 },
12 Ncn {
13 #[command(subcommand)]
14 action: NcnActions,
15 },
16 Operator {
17 #[command(subcommand)]
18 action: OperatorActions,
19 },
20}
21
22#[derive(Subcommand)]
24pub enum ConfigActions {
25 Initialize,
27 Get,
29 SetAdmin {
31 new_admin: Pubkey,
33 },
34}
35
36#[derive(Subcommand)]
37pub enum NcnActions {
38 Initialize {
40 #[arg(long)]
41 path_to_base_keypair: Option<String>,
42 },
43 InitializeNcnOperatorState { ncn: String, operator: String },
45 NcnWarmupOperator { ncn: String, operator: String },
47 NcnCooldownOperator { ncn: String, operator: String },
49 InitializeNcnVaultTicket { ncn: String, vault: String },
51 WarmupNcnVaultTicket { ncn: String, vault: String },
53 CooldownNcnVaultTicket { ncn: String, vault: String },
55 NcnDelegateTokenAccount {
57 ncn: String,
58 delegate: String,
59 token_mint: String,
60 #[arg(long)]
61 should_create_token_account: bool,
62 },
63 Get { pubkey: String },
65 List,
67 ListNcnOperatorState { ncn: Pubkey },
69 ListNcnVaultTicket { ncn: Pubkey },
71 NcnSetAdmin {
73 ncn: Pubkey,
75
76 #[arg(long)]
78 old_admin_keypair: String,
79
80 #[arg(long)]
82 new_admin_keypair: String,
83 },
84 NcnSetSecondaryAdmin {
86 ncn: String,
88
89 new_admin: String,
91
92 #[arg(long)]
94 set_operator_admin: bool,
95
96 #[arg(long)]
98 set_vault_admin: bool,
99
100 #[arg(long)]
102 set_slasher_admin: bool,
103
104 #[arg(long)]
106 set_delegate_admin: bool,
107
108 #[arg(long)]
110 set_metadata_admin: bool,
111
112 #[arg(long)]
114 set_weight_table_admin: bool,
115
116 #[arg(long)]
118 set_ncn_program_admin: bool,
119 },
120}
121
122#[derive(Subcommand)]
123pub enum OperatorActions {
124 Initialize { operator_fee_bps: u16 },
126 InitializeOperatorVaultTicket { operator: String, vault: String },
128 WarmupOperatorVaultTicket { operator: String, vault: String },
130 CooldownOperatorVaultTicket { operator: String, vault: String },
132 OperatorWarmupNcn { operator: String, ncn: String },
134 OperatorCooldownNcn { operator: String, ncn: String },
136 OperatorSetAdmin {
138 operator: String,
140
141 #[arg(long)]
143 old_admin_keypair: String,
144
145 #[arg(long)]
147 new_admin_keypair: String,
148 },
149 OperatorSetSecondaryAdmin {
151 operator: String,
152 new_admin: String,
153 #[arg(long)]
154 set_ncn_admin: bool,
155 #[arg(long)]
156 set_vault_admin: bool,
157 #[arg(long)]
158 set_voter_admin: bool,
159 #[arg(long)]
160 set_delegate_admin: bool,
161 #[arg(long)]
162 set_metadata_admin: bool,
163 },
164 OperatorSetFees {
166 operator: String,
167 operator_fee_bps: u16,
168 },
169 OperatorDelegateTokenAccount {
171 operator: String,
172 delegate: String,
173 token_mint: String,
174 #[arg(long)]
175 should_create_token_account: bool,
176 },
177 Get { pubkey: String },
179 List,
181 ListOperatorVaultTicket { operator: Pubkey },
183 ListNcnOperatorState { operator: Pubkey },
185}