diff --git a/ant-cli/src/wallet/error.rs b/ant-cli/src/wallet/error.rs index 1dd8fa6c91..26ca97bcbe 100644 --- a/ant-cli/src/wallet/error.rs +++ b/ant-cli/src/wallet/error.rs @@ -24,8 +24,8 @@ pub enum Error { FailedToCreateWalletsFolder, #[error("Could not find private key file")] PrivateKeyFileNotFound, - #[error("No wallets found and No secret Keys found in ENV, create one using `wallet create`")] - NoWalletsFoundAndNoSecretKeysInEnv, + #[error("No wallets found. Create one using `wallet create` or supply a private key using the `SECRET_KEY` environment variable")] + NoWalletsFound, #[error("Invalid wallet selection input")] InvalidSelection, } diff --git a/ant-cli/src/wallet/fs.rs b/ant-cli/src/wallet/fs.rs index 1cf4bb3284..3d19614b0b 100644 --- a/ant-cli/src/wallet/fs.rs +++ b/ant-cli/src/wallet/fs.rs @@ -6,7 +6,7 @@ // KIND, either express or implied. Please review the Licences for the specific language governing // permissions and limitations relating to use of the SAFE Network Software. -use crate::keys::get_secret_key_from_env; +use crate::keys::load_evm_wallet_from_env; use crate::wallet::encryption::{decrypt_private_key, encrypt_private_key}; use crate::wallet::error::Error; use crate::wallet::input::{get_password_input, get_wallet_selection_input}; @@ -118,6 +118,11 @@ pub(crate) fn load_wallet_from_address(wallet_address: &str) -> Result Result { + // try if there is a wallet set in the ENV first + if let Ok(env_wallet) = load_evm_wallet_from_env() { + return Ok(env_wallet); + } + let wallet_address = select_wallet_address()?; load_wallet_from_address(&wallet_address) } @@ -137,11 +142,7 @@ pub(crate) fn select_wallet_address() -> Result { let wallet_files = get_wallet_files(&wallets_folder)?; let wallet_address = match wallet_files.len() { - 0 => { - let secret_key = - get_secret_key_from_env().map_err(|_| Error::NoWalletsFoundAndNoSecretKeysInEnv)?; - Ok(secret_key) - } + 0 => Err(Error::NoWalletsFound), 1 => Ok(filter_wallet_file_extension(&wallet_files[0])), _ => get_wallet_selection(wallet_files), }?;