aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormoneromooo-monero <moneromooo-monero@users.noreply.github.com>2017-05-28 13:17:32 +0100
committermoneromooo-monero <moneromooo-monero@users.noreply.github.com>2017-05-28 13:17:32 +0100
commit05f3dcf73850411fa71389ab5e2cb39364e9a4d7 (patch)
tree28e9246095f9e4eb6073253b032930f006d5cb0f
parentMerge pull request #2015 (diff)
downloadmonero-05f3dcf73850411fa71389ab5e2cb39364e9a4d7.tar.xz
simplewallet: fix refresh height for new wallets
With the recent change to wallet creation code, the code was calling to the daemon before the wallet's daemon address was initialized, and thus failing. This was causing all new wallets to refresh from 0 instead of just fetching early block hashes.
-rw-r--r--src/simplewallet/simplewallet.cpp23
1 files changed, 13 insertions, 10 deletions
diff --git a/src/simplewallet/simplewallet.cpp b/src/simplewallet/simplewallet.cpp
index 6c2df4b22..6c040207f 100644
--- a/src/simplewallet/simplewallet.cpp
+++ b/src/simplewallet/simplewallet.cpp
@@ -903,6 +903,8 @@ static bool might_be_partial_seed(std::string words)
//----------------------------------------------------------------------------------------------------
bool simple_wallet::init(const boost::program_options::variables_map& vm)
{
+ bool need_refresh_height = false;
+
if (!handle_command_line(vm))
return false;
@@ -1091,6 +1093,8 @@ bool simple_wallet::init(const boost::program_options::variables_map& vm)
m_wallet_file = m_generate_new;
bool r = new_wallet(vm, m_recovery_key, m_restore_deterministic_wallet, m_non_deterministic, old_language);
CHECK_AND_ASSERT_MES(r, false, tr("account creation failed"));
+ if (!m_restore_deterministic_wallet)
+ need_refresh_height = true;
}
if (!m_restore_height && m_restoring)
{
@@ -1178,6 +1182,15 @@ bool simple_wallet::init(const boost::program_options::variables_map& vm)
m_http_client.set_server(m_wallet->get_daemon_address(), m_wallet->get_daemon_login());
m_wallet->callback(this);
+
+ if (need_refresh_height)
+ {
+ // for a totally new account, we don't care about older blocks.
+ MDEBUG("Calling daemon to set refresh height");
+ std::string err;
+ m_wallet->set_refresh_from_block_height(get_daemon_blockchain_height(err));
+ }
+
return true;
}
//----------------------------------------------------------------------------------------------------
@@ -1321,16 +1334,6 @@ bool simple_wallet::new_wallet(const boost::program_options::variables_map& vm,
m_wallet->set_seed_language(mnemonic_language);
- // for a totally new account, we don't care about older blocks.
- if (!m_restoring)
- {
- std::string err;
- m_wallet->set_refresh_from_block_height(get_daemon_blockchain_height(err));
- } else if (m_restore_height)
- {
- m_wallet->set_refresh_from_block_height(m_restore_height);
- }
-
crypto::secret_key recovery_val;
try
{