CLI: Cleanup authority arg usage inconsistencies (#7922)

automerge
This commit is contained in:
Trent Nelson 2020-01-22 12:19:07 -07:00 committed by Grimes
parent f9323c5273
commit 3a0d13aa77
4 changed files with 181 additions and 207 deletions

View File

@ -352,15 +352,20 @@ FLAGS:
-v, --verbose Show extra information header -v, --verbose Show extra information header
OPTIONS: OPTIONS:
--ask-seed-phrase <KEYPAIR NAME> Recover a keypair using a seed phrase and optional passphrase [possible --ask-seed-phrase <KEYPAIR NAME>
values: keypair] Recover a keypair using a seed phrase and optional passphrase [possible values: keypair]
-C, --config <PATH> Configuration file to use [default:
~/.config/solana/cli/config.yml] -C, --config <PATH>
-u, --url <URL> JSON RPC URL for the solana cluster Configuration file to use [default: ~/.config/solana/cli/config.yml]
-k, --keypair <PATH> /path/to/id.json
--nonce-authority <KEYPAIR> Specify nonce authority if different from account -u, --url <URL> JSON RPC URL for the solana cluster
--seed <SEED STRING> Seed for address generation; if specified, the resulting account will be at -k, --keypair <PATH> /path/to/id.json
a derived address of the NONCE_ACCOUNT pubkey --nonce-authority <KEYPAIR or PUBKEY>
Provide the nonce authority keypair to use when signing a nonced transaction
--seed <SEED STRING>
Seed for address generation; if specified, the resulting account will be at a derived address of the
NONCE_ACCOUNT pubkey
ARGS: ARGS:
<NONCE_ACCOUNT> Address of the nonce account <NONCE_ACCOUNT> Address of the nonce account
@ -813,21 +818,25 @@ FLAGS:
-v, --verbose Show extra information header -v, --verbose Show extra information header
OPTIONS: OPTIONS:
--ask-seed-phrase <KEYPAIR NAME> Recover a keypair using a seed phrase and optional passphrase [possible --ask-seed-phrase <KEYPAIR NAME>
values: keypair] Recover a keypair using a seed phrase and optional passphrase [possible values: keypair]
--blockhash <BLOCKHASH> Use the supplied blockhash
-C, --config <PATH> Configuration file to use [default: --blockhash <BLOCKHASH> Use the supplied blockhash
~/.config/solana/cli/config.yml] -C, --config <PATH>
-u, --url <URL> JSON RPC URL for the solana cluster Configuration file to use [default: ~/.config/solana/cli/config.yml]
-k, --keypair <PATH> /path/to/id.json
--nonce <PUBKEY> Provide the nonce account to use when creating a nonced -u, --url <URL> JSON RPC URL for the solana cluster
transaction. Nonced transactions are useful when a transaction -k, --keypair <PATH> /path/to/id.json
requires a lengthy signing process. Learn more about nonced --nonce <PUBKEY>
transactions at https://docs.solana.com/offline-signing/durable-nonce Provide the nonce account to use when creating a nonced
--nonce-authority <nonce_authority> Provide the nonce authority keypair to use when signing a nonced transaction. Nonced transactions are useful when a transaction
transaction requires a lengthy signing process. Learn more about nonced
--signer <PUBKEY=BASE58_SIG>... Provide a public-key/signature pair for the transaction transactions at https://docs.solana.com/offline-signing/durable-nonce
--stake-authority <KEYPAIR> Public key of authorized staker (defaults to cli config pubkey) --nonce-authority <KEYPAIR or PUBKEY>
Provide the nonce authority keypair to use when signing a nonced transaction
--signer <PUBKEY=BASE58_SIG>... Provide a public-key/signature pair for the transaction
--stake-authority <KEYPAIR of PUBKEY> Public key of authorized staker (defaults to cli config pubkey)
ARGS: ARGS:
<STAKE ACCOUNT> Stake account to be deactivated. <STAKE ACCOUNT> Stake account to be deactivated.
@ -850,21 +859,25 @@ FLAGS:
-v, --verbose Show extra information header -v, --verbose Show extra information header
OPTIONS: OPTIONS:
--ask-seed-phrase <KEYPAIR NAME> Recover a keypair using a seed phrase and optional passphrase [possible --ask-seed-phrase <KEYPAIR NAME>
values: keypair] Recover a keypair using a seed phrase and optional passphrase [possible values: keypair]
--blockhash <BLOCKHASH> Use the supplied blockhash
-C, --config <PATH> Configuration file to use [default: --blockhash <BLOCKHASH> Use the supplied blockhash
~/.config/solana/cli/config.yml] -C, --config <PATH>
-u, --url <URL> JSON RPC URL for the solana cluster Configuration file to use [default: ~/.config/solana/cli/config.yml]
-k, --keypair <PATH> /path/to/id.json
--nonce <PUBKEY> Provide the nonce account to use when creating a nonced -u, --url <URL> JSON RPC URL for the solana cluster
transaction. Nonced transactions are useful when a transaction -k, --keypair <PATH> /path/to/id.json
requires a lengthy signing process. Learn more about nonced --nonce <PUBKEY>
transactions at https://docs.solana.com/offline-signing/durable-nonce Provide the nonce account to use when creating a nonced
--nonce-authority <nonce_authority> Provide the nonce authority keypair to use when signing a nonced transaction. Nonced transactions are useful when a transaction
transaction requires a lengthy signing process. Learn more about nonced
--signer <PUBKEY=BASE58_SIG>... Provide a public-key/signature pair for the transaction transactions at https://docs.solana.com/offline-signing/durable-nonce
--stake-authority <KEYPAIR> Public key of authorized staker (defaults to cli config pubkey) --nonce-authority <KEYPAIR or PUBKEY>
Provide the nonce authority keypair to use when signing a nonced transaction
--signer <PUBKEY=BASE58_SIG>... Provide a public-key/signature pair for the transaction
--stake-authority <KEYPAIR of PUBKEY> Public key of authorized staker (defaults to cli config pubkey)
ARGS: ARGS:
<STAKE ACCOUNT> Stake account to delegate <STAKE ACCOUNT> Stake account to delegate
@ -1023,13 +1036,17 @@ FLAGS:
-v, --verbose Show extra information header -v, --verbose Show extra information header
OPTIONS: OPTIONS:
--ask-seed-phrase <KEYPAIR NAME> Recover a keypair using a seed phrase and optional passphrase [possible --ask-seed-phrase <KEYPAIR NAME>
values: keypair] Recover a keypair using a seed phrase and optional passphrase [possible values: keypair]
-C, --config <PATH> Configuration file to use [default:
~/.config/solana/cli/config.yml] -C, --config <PATH>
-u, --url <URL> JSON RPC URL for the solana cluster Configuration file to use [default: ~/.config/solana/cli/config.yml]
-k, --keypair <PATH> /path/to/id.json
--nonce-authority <KEYPAIR> Specify nonce authority if different from account -u, --url <URL> JSON RPC URL for the solana cluster
-k, --keypair <PATH> /path/to/id.json
--nonce-authority <KEYPAIR or PUBKEY>
Provide the nonce authority keypair to use when signing a nonced transaction
ARGS: ARGS:
<NONCE ACCOUNT> Address of the nonce account <NONCE ACCOUNT> Address of the nonce account
@ -1108,23 +1125,27 @@ FLAGS:
-v, --verbose Show extra information header -v, --verbose Show extra information header
OPTIONS: OPTIONS:
--ask-seed-phrase <KEYPAIR NAME> Recover a keypair using a seed phrase and optional passphrase [possible --ask-seed-phrase <KEYPAIR NAME>
values: keypair] Recover a keypair using a seed phrase and optional passphrase [possible values: keypair]
--blockhash <BLOCKHASH> Use the supplied blockhash
-C, --config <PATH> Configuration file to use [default: --blockhash <BLOCKHASH> Use the supplied blockhash
~/.config/solana/cli/config.yml] -C, --config <PATH>
-u, --url <URL> JSON RPC URL for the solana cluster Configuration file to use [default: ~/.config/solana/cli/config.yml]
-k, --keypair <PATH> /path/to/id.json
--nonce <PUBKEY> Provide the nonce account to use when creating a nonced -u, --url <URL> JSON RPC URL for the solana cluster
transaction. Nonced transactions are useful when a transaction -k, --keypair <PATH> /path/to/id.json
requires a lengthy signing process. Learn more about nonced --nonce <PUBKEY>
transactions at https://docs.solana.com/offline-signing/durable-nonce Provide the nonce account to use when creating a nonced
--nonce-authority <nonce_authority> Provide the nonce authority keypair to use when signing a nonced transaction. Nonced transactions are useful when a transaction
transaction requires a lengthy signing process. Learn more about nonced
--signer <PUBKEY=BASE58_SIG>... Provide a public-key/signature pair for the transaction transactions at https://docs.solana.com/offline-signing/durable-nonce
--after <DATETIME> A timestamp after which transaction will execute --nonce-authority <KEYPAIR or PUBKEY>
--require-timestamp-from <PUBKEY> Require timestamp from this third party Provide the nonce authority keypair to use when signing a nonced transaction
--require-signature-from <PUBKEY>... Any third party signatures required to unlock the lamports
--signer <PUBKEY=BASE58_SIG>... Provide a public-key/signature pair for the transaction
--after <DATETIME> A timestamp after which transaction will execute
--require-timestamp-from <PUBKEY> Require timestamp from this third party
--require-signature-from <PUBKEY>... Any third party signatures required to unlock the lamports
ARGS: ARGS:
<TO PUBKEY> The pubkey of recipient <TO PUBKEY> The pubkey of recipient
@ -1316,21 +1337,25 @@ FLAGS:
-v, --verbose Show extra information header -v, --verbose Show extra information header
OPTIONS: OPTIONS:
--ask-seed-phrase <KEYPAIR NAME> Recover a keypair using a seed phrase and optional passphrase [possible --ask-seed-phrase <KEYPAIR NAME>
values: keypair] Recover a keypair using a seed phrase and optional passphrase [possible values: keypair]
--blockhash <BLOCKHASH> Use the supplied blockhash
-C, --config <PATH> Configuration file to use [default: --blockhash <BLOCKHASH> Use the supplied blockhash
~/.config/solana/cli/config.yml] -C, --config <PATH>
-u, --url <URL> JSON RPC URL for the solana cluster Configuration file to use [default: ~/.config/solana/cli/config.yml]
-k, --keypair <PATH> /path/to/id.json
--nonce <PUBKEY> Provide the nonce account to use when creating a nonced -u, --url <URL> JSON RPC URL for the solana cluster
transaction. Nonced transactions are useful when a transaction -k, --keypair <PATH> /path/to/id.json
requires a lengthy signing process. Learn more about nonced --nonce <PUBKEY>
transactions at https://docs.solana.com/offline-signing/durable-nonce Provide the nonce account to use when creating a nonced
--nonce-authority <nonce_authority> Provide the nonce authority keypair to use when signing a nonced transaction. Nonced transactions are useful when a transaction
transaction requires a lengthy signing process. Learn more about nonced
--signer <PUBKEY=BASE58_SIG>... Provide a public-key/signature pair for the transaction transactions at https://docs.solana.com/offline-signing/durable-nonce
--stake-authority <KEYPAIR> Public key of authorized staker (defaults to cli config pubkey) --nonce-authority <KEYPAIR or PUBKEY>
Provide the nonce authority keypair to use when signing a nonced transaction
--signer <PUBKEY=BASE58_SIG>... Provide a public-key/signature pair for the transaction
--stake-authority <KEYPAIR of PUBKEY> Public key of authorized staker (defaults to cli config pubkey)
ARGS: ARGS:
<STAKE ACCOUNT> Stake account in which to set the authorized staker <STAKE ACCOUNT> Stake account in which to set the authorized staker
@ -1354,21 +1379,25 @@ FLAGS:
-v, --verbose Show extra information header -v, --verbose Show extra information header
OPTIONS: OPTIONS:
--ask-seed-phrase <KEYPAIR NAME> Recover a keypair using a seed phrase and optional passphrase [possible --ask-seed-phrase <KEYPAIR NAME>
values: keypair] Recover a keypair using a seed phrase and optional passphrase [possible values: keypair]
--blockhash <BLOCKHASH> Use the supplied blockhash
-C, --config <PATH> Configuration file to use [default: --blockhash <BLOCKHASH> Use the supplied blockhash
~/.config/solana/cli/config.yml] -C, --config <PATH>
-u, --url <URL> JSON RPC URL for the solana cluster Configuration file to use [default: ~/.config/solana/cli/config.yml]
-k, --keypair <PATH> /path/to/id.json
--nonce <PUBKEY> Provide the nonce account to use when creating a nonced -u, --url <URL> JSON RPC URL for the solana cluster
transaction. Nonced transactions are useful when a transaction -k, --keypair <PATH> /path/to/id.json
requires a lengthy signing process. Learn more about nonced --nonce <PUBKEY>
transactions at https://docs.solana.com/offline-signing/durable-nonce Provide the nonce account to use when creating a nonced
--nonce-authority <nonce_authority> Provide the nonce authority keypair to use when signing a nonced transaction. Nonced transactions are useful when a transaction
transaction requires a lengthy signing process. Learn more about nonced
--signer <PUBKEY=BASE58_SIG>... Provide a public-key/signature pair for the transaction transactions at https://docs.solana.com/offline-signing/durable-nonce
--withdraw-authority <KEYPAIR> Public key of authorized withdrawer (defaults to cli config pubkey) --nonce-authority <KEYPAIR or PUBKEY>
Provide the nonce authority keypair to use when signing a nonced transaction
--signer <PUBKEY=BASE58_SIG>... Provide a public-key/signature pair for the transaction
--withdraw-authority <KEYPAIR or PUBKEY> Public key of authorized withdrawer (defaults to cli config pubkey)
ARGS: ARGS:
<STAKE ACCOUNT> Stake account in which to set the authorized withdrawer <STAKE ACCOUNT> Stake account in which to set the authorized withdrawer
@ -1692,13 +1721,17 @@ FLAGS:
-v, --verbose Show extra information header -v, --verbose Show extra information header
OPTIONS: OPTIONS:
--ask-seed-phrase <KEYPAIR NAME> Recover a keypair using a seed phrase and optional passphrase [possible --ask-seed-phrase <KEYPAIR NAME>
values: keypair] Recover a keypair using a seed phrase and optional passphrase [possible values: keypair]
-C, --config <PATH> Configuration file to use [default:
~/.config/solana/cli/config.yml] -C, --config <PATH>
-u, --url <URL> JSON RPC URL for the solana cluster Configuration file to use [default: ~/.config/solana/cli/config.yml]
-k, --keypair <PATH> /path/to/id.json
--nonce-authority <KEYPAIR> Specify nonce authority if different from account -u, --url <URL> JSON RPC URL for the solana cluster
-k, --keypair <PATH> /path/to/id.json
--nonce-authority <KEYPAIR or PUBKEY>
Provide the nonce authority keypair to use when signing a nonced transaction
ARGS: ARGS:
<NONCE ACCOUNT> Nonce account from to withdraw from <NONCE ACCOUNT> Nonce account from to withdraw from
@ -1723,13 +1756,15 @@ FLAGS:
-v, --verbose Show extra information header -v, --verbose Show extra information header
OPTIONS: OPTIONS:
--ask-seed-phrase <KEYPAIR NAME> Recover a keypair using a seed phrase and optional passphrase [possible --ask-seed-phrase <KEYPAIR NAME>
values: keypair] Recover a keypair using a seed phrase and optional passphrase [possible values: keypair]
-C, --config <PATH> Configuration file to use [default:
~/.config/solana/cli/config.yml] -C, --config <PATH>
-u, --url <URL> JSON RPC URL for the solana cluster Configuration file to use [default: ~/.config/solana/cli/config.yml]
-k, --keypair <PATH> /path/to/id.json
--withdraw-authority <KEYPAIR> Public key of authorized withdrawer (defaults to cli config pubkey) -u, --url <URL> JSON RPC URL for the solana cluster
-k, --keypair <PATH> /path/to/id.json
--withdraw-authority <KEYPAIR or PUBKEY> Public key of authorized withdrawer (defaults to cli config pubkey)
ARGS: ARGS:
<STAKE ACCOUNT> Stake account from which to withdraw <STAKE ACCOUNT> Stake account from which to withdraw

View File

@ -1,7 +1,7 @@
use crate::{ use crate::{
cluster_query::*, cluster_query::*,
display::{println_name_value, println_signers}, display::{println_name_value, println_signers},
nonce::*, nonce::{self, *},
stake::*, stake::*,
storage::*, storage::*,
validator_info::*, validator_info::*,
@ -146,6 +146,10 @@ impl PartialEq for SigningAuthority {
} }
} }
pub fn nonce_authority_arg<'a, 'b>() -> Arg<'a, 'b> {
nonce::nonce_authority_arg().requires(NONCE_ARG.name)
}
#[derive(Default, Debug, PartialEq)] #[derive(Default, Debug, PartialEq)]
pub struct PayCommand { pub struct PayCommand {
pub lamports: u64, pub lamports: u64,
@ -1985,23 +1989,8 @@ pub fn app<'ab, 'v>(name: &str, about: &'ab str, version: &'v str) -> App<'ab, '
.takes_value(false) .takes_value(false)
.help("Sign the transaction offline"), .help("Sign the transaction offline"),
) )
.arg( .arg(nonce_arg())
Arg::with_name(NONCE_ARG.name) .arg(nonce_authority_arg())
.long(NONCE_ARG.long)
.takes_value(true)
.value_name("PUBKEY")
.requires("blockhash")
.validator(is_pubkey_or_keypair)
.help(NONCE_ARG.help),
)
.arg(
Arg::with_name(NONCE_AUTHORITY_ARG.name)
.long(NONCE_AUTHORITY_ARG.long)
.takes_value(true)
.requires(NONCE_ARG.name)
.validator(is_pubkey_or_keypair_or_ask_keyword)
.help(NONCE_AUTHORITY_ARG.help),
)
.arg( .arg(
Arg::with_name("signer") Arg::with_name("signer")
.long("signer") .long("signer")

View File

@ -49,13 +49,23 @@ pub trait NonceSubCommands {
fn nonce_subcommands(self) -> Self; fn nonce_subcommands(self) -> Self;
} }
fn nonce_authority_arg<'a, 'b>() -> Arg<'a, 'b> { pub fn nonce_arg<'a, 'b>() -> Arg<'a, 'b> {
Arg::with_name("nonce_authority") Arg::with_name(NONCE_ARG.name)
.long("nonce-authority") .long(NONCE_ARG.long)
.takes_value(true) .takes_value(true)
.value_name("KEYPAIR") .value_name("PUBKEY")
.requires("blockhash")
.validator(is_pubkey)
.help(NONCE_ARG.help)
}
pub fn nonce_authority_arg<'a, 'b>() -> Arg<'a, 'b> {
Arg::with_name(NONCE_AUTHORITY_ARG.name)
.long(NONCE_AUTHORITY_ARG.long)
.takes_value(true)
.value_name("KEYPAIR or PUBKEY")
.validator(is_pubkey_or_keypair_or_ask_keyword) .validator(is_pubkey_or_keypair_or_ask_keyword)
.help("Specify nonce authority if different from account") .help(NONCE_AUTHORITY_ARG.help)
} }
impl NonceSubCommands for App<'_, '_> { impl NonceSubCommands for App<'_, '_> {
@ -120,8 +130,8 @@ impl NonceSubCommands for App<'_, '_> {
.help("Specify unit to use for request"), .help("Specify unit to use for request"),
) )
.arg( .arg(
Arg::with_name("nonce_authority") Arg::with_name(NONCE_AUTHORITY_ARG.name)
.long("nonce-authority") .long(NONCE_AUTHORITY_ARG.long)
.takes_value(true) .takes_value(true)
.value_name("BASE58_PUBKEY") .value_name("BASE58_PUBKEY")
.validator(is_pubkey_or_keypair) .validator(is_pubkey_or_keypair)
@ -246,7 +256,7 @@ pub fn parse_nonce_create_account(matches: &ArgMatches<'_>) -> Result<CliCommand
let nonce_account = keypair_of(matches, "nonce_account_keypair").unwrap(); let nonce_account = keypair_of(matches, "nonce_account_keypair").unwrap();
let seed = matches.value_of("seed").map(|s| s.to_string()); let seed = matches.value_of("seed").map(|s| s.to_string());
let lamports = required_lamports_from(matches, "amount", "unit")?; let lamports = required_lamports_from(matches, "amount", "unit")?;
let nonce_authority = pubkey_of(matches, "nonce_authority"); let nonce_authority = pubkey_of(matches, NONCE_AUTHORITY_ARG.name);
Ok(CliCommandInfo { Ok(CliCommandInfo {
command: CliCommand::CreateNonceAccount { command: CliCommand::CreateNonceAccount {

View File

@ -1,11 +1,11 @@
use crate::{ use crate::{
cli::{ cli::{
build_balance_message, check_account_for_fee, check_unique_pubkeys, build_balance_message, check_account_for_fee, check_unique_pubkeys,
get_blockhash_fee_calculator, log_instruction_custom_error, replace_signatures, get_blockhash_fee_calculator, log_instruction_custom_error, nonce_authority_arg,
required_lamports_from, return_signers, CliCommand, CliCommandInfo, CliConfig, CliError, replace_signatures, required_lamports_from, return_signers, CliCommand, CliCommandInfo,
ProcessResult, SigningAuthority, CliConfig, CliError, ProcessResult, SigningAuthority,
}, },
nonce::{check_nonce_account, NONCE_ARG, NONCE_AUTHORITY_ARG}, nonce::{check_nonce_account, nonce_arg, NONCE_ARG, NONCE_AUTHORITY_ARG},
}; };
use clap::{App, Arg, ArgMatches, SubCommand}; use clap::{App, Arg, ArgMatches, SubCommand};
use console::style; use console::style;
@ -47,7 +47,7 @@ fn stake_authority_arg<'a, 'b>() -> Arg<'a, 'b> {
Arg::with_name(STAKE_AUTHORITY_ARG.name) Arg::with_name(STAKE_AUTHORITY_ARG.name)
.long(STAKE_AUTHORITY_ARG.long) .long(STAKE_AUTHORITY_ARG.long)
.takes_value(true) .takes_value(true)
.value_name("KEYPAIR") .value_name("KEYPAIR of PUBKEY")
.validator(is_pubkey_or_keypair_or_ask_keyword) .validator(is_pubkey_or_keypair_or_ask_keyword)
.help(STAKE_AUTHORITY_ARG.help) .help(STAKE_AUTHORITY_ARG.help)
} }
@ -56,7 +56,7 @@ fn withdraw_authority_arg<'a, 'b>() -> Arg<'a, 'b> {
Arg::with_name(WITHDRAW_AUTHORITY_ARG.name) Arg::with_name(WITHDRAW_AUTHORITY_ARG.name)
.long(WITHDRAW_AUTHORITY_ARG.long) .long(WITHDRAW_AUTHORITY_ARG.long)
.takes_value(true) .takes_value(true)
.value_name("KEYPAIR") .value_name("KEYPAIR or PUBKEY")
.validator(is_pubkey_or_keypair_or_ask_keyword) .validator(is_pubkey_or_keypair_or_ask_keyword)
.help(WITHDRAW_AUTHORITY_ARG.help) .help(WITHDRAW_AUTHORITY_ARG.help)
} }
@ -195,23 +195,8 @@ impl StakeSubCommands for App<'_, '_> {
.validator(is_hash) .validator(is_hash)
.help("Use the supplied blockhash"), .help("Use the supplied blockhash"),
) )
.arg( .arg(nonce_arg())
Arg::with_name(NONCE_ARG.name) .arg(nonce_authority_arg())
.long(NONCE_ARG.long)
.takes_value(true)
.value_name("PUBKEY")
.requires("blockhash")
.validator(is_pubkey)
.help(NONCE_ARG.help)
)
.arg(
Arg::with_name(NONCE_AUTHORITY_ARG.name)
.long(NONCE_AUTHORITY_ARG.long)
.takes_value(true)
.requires(NONCE_ARG.name)
.validator(is_keypair_or_ask_keyword)
.help(NONCE_AUTHORITY_ARG.help)
),
) )
.subcommand( .subcommand(
SubCommand::with_name("stake-authorize-staker") SubCommand::with_name("stake-authorize-staker")
@ -258,23 +243,8 @@ impl StakeSubCommands for App<'_, '_> {
.validator(is_hash) .validator(is_hash)
.help("Use the supplied blockhash"), .help("Use the supplied blockhash"),
) )
.arg( .arg(nonce_arg())
Arg::with_name(NONCE_ARG.name) .arg(nonce_authority_arg())
.long(NONCE_ARG.long)
.takes_value(true)
.value_name("PUBKEY")
.requires("blockhash")
.validator(is_pubkey)
.help(NONCE_ARG.help)
)
.arg(
Arg::with_name(NONCE_AUTHORITY_ARG.name)
.long(NONCE_AUTHORITY_ARG.long)
.takes_value(true)
.requires(NONCE_ARG.name)
.validator(is_keypair_or_ask_keyword)
.help(NONCE_AUTHORITY_ARG.help)
),
) )
.subcommand( .subcommand(
SubCommand::with_name("stake-authorize-withdrawer") SubCommand::with_name("stake-authorize-withdrawer")
@ -321,23 +291,8 @@ impl StakeSubCommands for App<'_, '_> {
.validator(is_hash) .validator(is_hash)
.help("Use the supplied blockhash"), .help("Use the supplied blockhash"),
) )
.arg( .arg(nonce_arg())
Arg::with_name(NONCE_ARG.name) .arg(nonce_authority_arg())
.long(NONCE_ARG.long)
.takes_value(true)
.value_name("PUBKEY")
.requires("blockhash")
.validator(is_pubkey)
.help(NONCE_ARG.help)
)
.arg(
Arg::with_name(NONCE_AUTHORITY_ARG.name)
.long(NONCE_AUTHORITY_ARG.long)
.takes_value(true)
.requires(NONCE_ARG.name)
.validator(is_keypair_or_ask_keyword)
.help(NONCE_AUTHORITY_ARG.help)
),
) )
.subcommand( .subcommand(
SubCommand::with_name("deactivate-stake") SubCommand::with_name("deactivate-stake")
@ -374,23 +329,8 @@ impl StakeSubCommands for App<'_, '_> {
.validator(is_hash) .validator(is_hash)
.help("Use the supplied blockhash"), .help("Use the supplied blockhash"),
) )
.arg( .arg(nonce_arg())
Arg::with_name(NONCE_ARG.name) .arg(nonce_authority_arg())
.long(NONCE_ARG.long)
.takes_value(true)
.value_name("PUBKEY")
.requires("blockhash")
.validator(is_pubkey)
.help(NONCE_ARG.help)
)
.arg(
Arg::with_name(NONCE_AUTHORITY_ARG.name)
.long(NONCE_AUTHORITY_ARG.long)
.takes_value(true)
.requires(NONCE_ARG.name)
.validator(is_keypair_or_ask_keyword)
.help(NONCE_AUTHORITY_ARG.help)
),
) )
.subcommand( .subcommand(
SubCommand::with_name("withdraw-stake") SubCommand::with_name("withdraw-stake")