From feb27f0add599a6940b0097b988ad897a4e14c6d Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Fri, 22 Jan 2021 19:46:17 +0000 Subject: [PATCH] CLI: Strive for at least one signer (bp #14767) (#14778) * CLI: Strive for at least one signer (cherry picked from commit 8f8d5934575b87fa2bedadb2dfb5135ca554b13a) * CLI: Allow missing pubkey in `--verbose` config output (cherry picked from commit 90e1778cd207c56e7161f34d1f08dffc5cb3e63d) * CLI: Don't scare the users (cherry picked from commit e9c98f241648683fcf040e00f1d3b45c204b0b91) Co-authored-by: Trent Nelson --- cli/src/cli.rs | 6 +++++- cli/src/main.rs | 15 ++++++++++++--- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/cli/src/cli.rs b/cli/src/cli.rs index 05cc00f5c0..9d75d33685 100644 --- a/cli/src/cli.rs +++ b/cli/src/cli.rs @@ -1163,7 +1163,11 @@ pub fn process_command(config: &CliConfig) -> ProcessResult { println_name_value("RPC URL:", &config.json_rpc_url); println_name_value("Default Signer Path:", &config.keypair_path); if config.keypair_path.starts_with("usb://") { - println_name_value("Pubkey:", &format!("{:?}", config.pubkey()?)); + let pubkey = config + .pubkey() + .map(|pubkey| format!("{:?}", pubkey)) + .unwrap_or_else(|_| "Unavailable".to_string()); + println_name_value("Pubkey:", &pubkey); } println_name_value("Commitment:", &config.commitment.commitment.to_string()); } diff --git a/cli/src/main.rs b/cli/src/main.rs index 490e0e9a04..208291cd09 100644 --- a/cli/src/main.rs +++ b/cli/src/main.rs @@ -184,8 +184,18 @@ pub fn parse_args<'a>( path: default_signer_path.clone(), }; - let CliCommandInfo { command, signers } = - parse_command(&matches, &default_signer, &mut wallet_manager)?; + let CliCommandInfo { + command, + mut signers, + } = parse_command(&matches, &default_signer, &mut wallet_manager)?; + + if signers.is_empty() { + if let Ok(signer_info) = + default_signer.generate_unique_signers(vec![None], matches, &mut wallet_manager) + { + signers.extend(signer_info.signers); + } + } let verbose = matches.is_present("verbose"); let output_format = matches @@ -232,7 +242,6 @@ pub fn parse_args<'a>( } fn main() -> Result<(), Box> { - solana_logger::setup(); let matches = app( crate_name!(), crate_description!(),