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>()*/)
{
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);
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)
{
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::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;
}
/*!
* \brief Gets the seed language
*/
const std::string wallet2::get_seed_language()
{
return seed_language;
}
/*!
* \brief Sets the seed language
* \param language Seed language to set to

View File

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