From 2290eff6d61db63b93d38d4fad15ab0524afd926 Mon Sep 17 00:00:00 2001 From: warptangent Date: Sat, 6 Dec 2014 01:46:41 -0800 Subject: replace lines with call to recently added print_seed() --- src/simplewallet/simplewallet.cpp | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) (limited to 'src/simplewallet') diff --git a/src/simplewallet/simplewallet.cpp b/src/simplewallet/simplewallet.cpp index e1e2a198b..64b1e1da4 100644 --- a/src/simplewallet/simplewallet.cpp +++ b/src/simplewallet/simplewallet.cpp @@ -218,10 +218,7 @@ bool simple_wallet::seed(const std::vector &args/* = std::vector Date: Sat, 6 Dec 2014 01:47:54 -0800 Subject: indentation --- src/simplewallet/simplewallet.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/simplewallet') diff --git a/src/simplewallet/simplewallet.cpp b/src/simplewallet/simplewallet.cpp index 64b1e1da4..ec51bd49d 100644 --- a/src/simplewallet/simplewallet.cpp +++ b/src/simplewallet/simplewallet.cpp @@ -222,7 +222,7 @@ bool simple_wallet::seed(const std::vector &args/* = std::vector Date: Sat, 6 Dec 2014 01:48:33 -0800 Subject: Checking and handling for deterministic vs non-deterministic wallet simple_wallet::seed() - Check that wallet is deterministic. simple_wallet::new_wallet() - Prompt for seed language only if it's a non-deterministic wallet, along with previous conditions. simple_wallet::open_wallet() - Fixed check for deterministic wallet (flag based on command line non-deterministic argument was used before, but it's inapplicable to opening an existing wallet). - As with deterministic wallet, non-deterministic also included to be rewritten to new JSON format file. That's what's done for newly generated non-deterministic wallets, so old versions should be updated to same format. --- src/simplewallet/simplewallet.cpp | 54 +++++++++++++++++++++++++-------------- 1 file changed, 35 insertions(+), 19 deletions(-) (limited to 'src/simplewallet') diff --git a/src/simplewallet/simplewallet.cpp b/src/simplewallet/simplewallet.cpp index ec51bd49d..4f7df2d3a 100644 --- a/src/simplewallet/simplewallet.cpp +++ b/src/simplewallet/simplewallet.cpp @@ -206,16 +206,20 @@ bool simple_wallet::viewkey(const std::vector &args/* = std::vector bool simple_wallet::seed(const std::vector &args/* = std::vector()*/) { + bool success = false; std::string electrum_words; - if (m_wallet->get_seed_language().empty()) + if (m_wallet->is_deterministic()) { - std::string mnemonic_language = get_mnemonic_language(); - m_wallet->set_seed_language(mnemonic_language); + if (m_wallet->get_seed_language().empty()) + { + std::string mnemonic_language = get_mnemonic_language(); + m_wallet->set_seed_language(mnemonic_language); + } + + success = m_wallet->get_seed(electrum_words); } - bool success = m_wallet->get_seed(electrum_words); - if (success) { print_seed(electrum_words); @@ -508,9 +512,11 @@ bool simple_wallet::new_wallet(const std::string &wallet_file, const std::string crypto::ElectrumWords::get_is_old_style_seed(m_electrum_seed)); std::string mnemonic_language = old_language; - // Ask for seed language if it is not a wallet restore or if it was a deprecated wallet - // that was earlier used before this restore. - if (!m_restore_deterministic_wallet || was_deprecated_wallet) + // Ask for seed language if: + // it's a deterministic wallet AND + // (it is not a wallet restore OR if it was a deprecated wallet + // that was earlier used before this restore) + if ((!two_random) && (!m_restore_deterministic_wallet || was_deprecated_wallet)) { if (was_deprecated_wallet) { @@ -580,18 +586,28 @@ bool simple_wallet::open_wallet(const string &wallet_file, const std::string& pa << m_wallet->get_account().get_public_address_str(m_wallet->testnet()); // If the wallet file is deprecated, we should ask for mnemonic language again and store // everything in the new format. - if (!m_non_deterministic && m_wallet->is_deprecated()) + // NOTE: this is_deprecated() refers to the wallet file format before becoming JSON. It does not refer to the "old english" seed words form of "deprecated" used elsewhere. + if (m_wallet->is_deprecated()) { - message_writer(epee::log_space::console_color_green, false) << "\nYou had been using " << - "a deprecated version of the wallet. Please proceed to upgrade your wallet.\n"; - std::string mnemonic_language = get_mnemonic_language(); - m_wallet->set_seed_language(mnemonic_language); - m_wallet->rewrite(m_wallet_file, password); - - // Display the seed - std::string seed; - m_wallet->get_seed(seed); - print_seed(seed); + if (m_wallet->is_deterministic()) + { + message_writer(epee::log_space::console_color_green, false) << "\nYou had been using " << + "a deprecated version of the wallet. Please proceed to upgrade your wallet.\n"; + std::string mnemonic_language = get_mnemonic_language(); + m_wallet->set_seed_language(mnemonic_language); + m_wallet->rewrite(m_wallet_file, password); + + // Display the seed + std::string seed; + m_wallet->get_seed(seed); + print_seed(seed); + } + else + { + message_writer(epee::log_space::console_color_green, false) << "\nYou had been using " << + "a deprecated version of the wallet. Your wallet file format is being upgraded now.\n"; + m_wallet->rewrite(m_wallet_file, password); + } } } catch (const std::exception& e) -- cgit v1.2.3