diff --git a/ant-cli/src/wallet/error.rs b/ant-cli/src/wallet/error.rs index b32455566d..a2f49b6498 100644 --- a/ant-cli/src/wallet/error.rs +++ b/ant-cli/src/wallet/error.rs @@ -26,6 +26,8 @@ pub enum Error { PrivateKeyFileNotFound, #[error("No wallets found. Create one using `wallet create`")] NoWalletsFound, + #[error("No wallets found and No secret Keys found in ENV, create one using `wallet create`")] + NoWalletsFoundAndNoSecretKeysInEnv, #[error("Invalid wallet selection input")] InvalidSelection, } diff --git a/ant-cli/src/wallet/fs.rs b/ant-cli/src/wallet/fs.rs index 39426bf5a1..bb2e6cf88e 100644 --- a/ant-cli/src/wallet/fs.rs +++ b/ant-cli/src/wallet/fs.rs @@ -6,6 +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::wallet::encryption::{decrypt_private_key, encrypt_private_key}; use crate::wallet::error::Error; use crate::wallet::input::{get_password_input, get_wallet_selection_input}; @@ -133,7 +134,10 @@ pub(crate) fn select_wallet_address() -> Result { let wallet_files = get_wallet_files(&wallets_folder)?; let wallet_address = match wallet_files.len() { - 0 => Err(Error::NoWalletsFound), + 0 => { + let secret_key = get_secret_key_from_env().map_err(|_| Error::NoWalletsFoundAndNoSecretKeysInEnv)?; + Ok(secret_key) + }, 1 => Ok(filter_wallet_file_extension(&wallet_files[0])), _ => get_wallet_selection(wallet_files), }?;