Skip to content

Commit

Permalink
cli: Add filename to 'Unable to read keypair file' errors (#2932)
Browse files Browse the repository at this point in the history
Use named placeholders in formatting

Co-authored-by: acheron <[email protected]>
  • Loading branch information
mikemaccana and acheroncrypto authored May 1, 2024
1 parent 645ab6d commit 940de79
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 24 deletions.
3 changes: 2 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,8 @@ The minor version will be incremented upon a breaking change and the patch versi

- lang: Eliminate variable allocations that build up stack space for token extension code generation ([#2913](https://github.com/coral-xyz/anchor/pull/2913)).
- ts: Fix incorrect `maxSupportedTransactionVersion` in `AnchorProvider.send*()` methods ([#2922](https://github.com/coral-xyz/anchor/pull/2922)).
- cli: Use npm's configured default license for new projects make with `anchor init` ([#2929](https://github.com/coral-xyz/anchor/pull/2929)).
- cli: Use npm's configured default license for new projects made with `anchor init` ([#2929](https://github.com/coral-xyz/anchor/pull/2929)).
- cli: add filename to 'Unable to read keypair file' errors ([#2932](https://github.com/coral-xyz/anchor/pull/2932)).

### Breaking

Expand Down
8 changes: 3 additions & 5 deletions cli/src/config.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
use crate::is_hidden;
use crate::{get_keypair, is_hidden};
use anchor_client::Cluster;
use anchor_lang_idl::types::Idl;
use anyhow::{anyhow, bail, Context, Error, Result};
Expand Down Expand Up @@ -531,8 +531,7 @@ impl Config {
}

pub fn wallet_kp(&self) -> Result<Keypair> {
solana_sdk::signature::read_keypair_file(&self.provider.wallet.to_string())
.map_err(|_| anyhow!("Unable to read keypair file"))
get_keypair(&self.provider.wallet.to_string())
}
}

Expand Down Expand Up @@ -1265,8 +1264,7 @@ impl Program {

pub fn keypair(&self) -> Result<Keypair> {
let file = self.keypair_file()?;
solana_sdk::signature::read_keypair_file(file.path())
.map_err(|_| anyhow!("failed to read keypair for program: {}", self.lib_name))
get_keypair(file.path().to_str().unwrap())
}

// Lazily initializes the keypair file with a new key if it doesn't exist.
Expand Down
30 changes: 12 additions & 18 deletions cli/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -490,6 +490,11 @@ pub enum ClusterCommand {
List,
}

fn get_keypair(path: &str) -> Result<Keypair> {
solana_sdk::signature::read_keypair_file(path)
.map_err(|_| anyhow!("Unable to read keypair file ({path})"))
}

pub fn entry(opts: Opts) -> Result<()> {
let restore_cbs = override_toolchain(&opts.cfg_override)?;
let result = process_command(opts);
Expand Down Expand Up @@ -2285,8 +2290,7 @@ fn idl_set_buffer(
priority_fee: Option<u64>,
) -> Result<Pubkey> {
with_workspace(cfg_override, |cfg| {
let keypair = solana_sdk::signature::read_keypair_file(&cfg.provider.wallet.to_string())
.map_err(|_| anyhow!("Unable to read keypair file"))?;
let keypair = get_keypair(&cfg.provider.wallet.to_string())?;
let url = cluster_url(cfg, &cfg.test_validator);
let client = create_client(url);

Expand Down Expand Up @@ -2404,8 +2408,7 @@ fn idl_set_authority(
None => IdlAccount::address(&program_id),
Some(addr) => addr,
};
let keypair = solana_sdk::signature::read_keypair_file(&cfg.provider.wallet.to_string())
.map_err(|_| anyhow!("Unable to read keypair file"))?;
let keypair = get_keypair(&cfg.provider.wallet.to_string())?;
let url = cluster_url(cfg, &cfg.test_validator);
let client = create_client(url);

Expand Down Expand Up @@ -2488,8 +2491,7 @@ fn idl_close_account(
print_only: bool,
priority_fee: Option<u64>,
) -> Result<()> {
let keypair = solana_sdk::signature::read_keypair_file(&cfg.provider.wallet.to_string())
.map_err(|_| anyhow!("Unable to read keypair file"))?;
let keypair = get_keypair(&cfg.provider.wallet.to_string())?;
let url = cluster_url(cfg, &cfg.test_validator);
let client = create_client(url);

Expand Down Expand Up @@ -2541,8 +2543,7 @@ fn idl_write(
priority_fee: Option<u64>,
) -> Result<()> {
// Misc.
let keypair = solana_sdk::signature::read_keypair_file(&cfg.provider.wallet.to_string())
.map_err(|_| anyhow!("Unable to read keypair file"))?;
let keypair = get_keypair(&cfg.provider.wallet.to_string())?;
let url = cluster_url(cfg, &cfg.test_validator);
let client = create_client(url);

Expand Down Expand Up @@ -3631,12 +3632,7 @@ fn deploy(
println!("Program path: {}...", binary_path);

let (program_keypair_filepath, program_id) = match &program_keypair {
Some(path) => (
path.clone(),
solana_sdk::signature::read_keypair_file(path)
.map_err(|_| anyhow!("Unable to read keypair file"))?
.pubkey(),
),
Some(path) => (path.clone(), get_keypair(path)?.pubkey()),
None => (
program.keypair_file()?.path().display().to_string(),
program.pubkey()?,
Expand Down Expand Up @@ -3725,8 +3721,7 @@ fn create_idl_account(
) -> Result<Pubkey> {
// Misc.
let idl_address = IdlAccount::address(program_id);
let keypair = solana_sdk::signature::read_keypair_file(keypair_path)
.map_err(|_| anyhow!("Unable to read keypair file"))?;
let keypair = get_keypair(keypair_path)?;
let url = cluster_url(cfg, &cfg.test_validator);
let client = create_client(url);
let idl_data = serialize_idl(idl)?;
Expand Down Expand Up @@ -3807,8 +3802,7 @@ fn create_idl_buffer(
idl: &Idl,
priority_fee: Option<u64>,
) -> Result<Pubkey> {
let keypair = solana_sdk::signature::read_keypair_file(keypair_path)
.map_err(|_| anyhow!("Unable to read keypair file"))?;
let keypair = get_keypair(keypair_path)?;
let url = cluster_url(cfg, &cfg.test_validator);
let client = create_client(url);

Expand Down

0 comments on commit 940de79

Please sign in to comment.