prompt for seed language and error handling

- "seed" simplewallet command was only displaying seed if wallet was newly generated
This commit is contained in:
warptangent 2014-11-06 14:36:36 -08:00
parent e1555fdf8b
commit 3dd19c4cd4
3 changed files with 24 additions and 0 deletions

View File

@ -207,6 +207,13 @@ bool simple_wallet::viewkey(const std::vector<std::string> &args/* = std::vector
bool simple_wallet::seed(const std::vector<std::string> &args/* = std::vector<std::string>()*/) bool simple_wallet::seed(const std::vector<std::string> &args/* = std::vector<std::string>()*/)
{ {
std::string electrum_words; std::string electrum_words;
if (m_wallet->get_seed_language().empty())
{
std::string mnemonic_language = get_mnemonic_language();
m_wallet->set_seed_language(mnemonic_language);
}
bool success = m_wallet->get_seed(electrum_words); bool success = m_wallet->get_seed(electrum_words);
if (success) if (success)

View File

@ -91,6 +91,12 @@ void wallet2::init(const std::string& daemon_address, uint64_t upper_transaction
//---------------------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------------------
bool wallet2::get_seed(std::string& electrum_words) bool wallet2::get_seed(std::string& electrum_words)
{ {
if (seed_language.empty())
{
std::cout << "seed_language not set" << std::endl;
return false;
}
crypto::ElectrumWords::bytes_to_words(get_account().get_keys().m_spend_secret_key, electrum_words, seed_language); crypto::ElectrumWords::bytes_to_words(get_account().get_keys().m_spend_secret_key, electrum_words, seed_language);
crypto::secret_key second; crypto::secret_key second;
@ -100,6 +106,13 @@ bool wallet2::get_seed(std::string& electrum_words)
return memcmp(second.data,get_account().get_keys().m_view_secret_key.data, sizeof(crypto::secret_key)) == 0; return memcmp(second.data,get_account().get_keys().m_view_secret_key.data, sizeof(crypto::secret_key)) == 0;
} }
/*!
* \brief Gets the seed language
*/
const std::string wallet2::get_seed_language()
{
return seed_language;
}
/*! /*!
* \brief Sets the seed language * \brief Sets the seed language
* \param language Seed language to set to * \param language Seed language to set to

View File

@ -169,6 +169,10 @@ namespace tools
void callback(i_wallet2_callback* callback) { m_callback = callback; } void callback(i_wallet2_callback* callback) { m_callback = callback; }
bool get_seed(std::string& electrum_words); bool get_seed(std::string& electrum_words);
/*!
* \brief Gets the seed language
*/
const std::string get_seed_language();
/*! /*!
* \brief Sets the seed language * \brief Sets the seed language
*/ */