From 952a5b11c1854ed71a3b9278f853523287a8f3b5 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Fri, 22 Jan 2021 19:50:50 +0000 Subject: [PATCH] CLI: Strive for at least one signer (bp #14767) (#14779) * 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 332ddfeb97..e183ca35bb 100644 --- a/cli/src/cli.rs +++ b/cli/src/cli.rs @@ -1165,7 +1165,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 54f1959a81..65c5da474b 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 @@ -235,7 +245,6 @@ pub fn parse_args<'a>( } fn main() -> Result<(), Box> { - solana_logger::setup(); let matches = app( crate_name!(), crate_description!(),