diff options
author | Jakob Lind <karl.jakob.lind@gmail.com> | 2014-08-01 10:17:50 +0200 |
---|---|---|
committer | Jakob Lind <karl.jakob.lind@gmail.com> | 2014-08-01 10:17:50 +0200 |
commit | e4273f24153ca5222ab0af6ea6d84b7761e31f05 (patch) | |
tree | 30c2413ec7c761d9326d6131bcbcbb0bc61dcb5a /src/wallet | |
parent | Merge pull request #72 from fluffypony/master (diff) | |
download | monero-e4273f24153ca5222ab0af6ea6d84b7761e31f05.tar.xz |
#36 simplewallet refresh include optional height param
height param is used optionally in refresh command
TODO: This should also be the default behaviour
when generating a new wallet.
Diffstat (limited to 'src/wallet')
-rw-r--r-- | src/wallet/wallet2.cpp | 16 | ||||
-rw-r--r-- | src/wallet/wallet2.h | 6 |
2 files changed, 10 insertions, 12 deletions
diff --git a/src/wallet/wallet2.cpp b/src/wallet/wallet2.cpp index 85cf97398..f3e3a665d 100644 --- a/src/wallet/wallet2.cpp +++ b/src/wallet/wallet2.cpp @@ -192,9 +192,7 @@ void wallet2::process_unconfirmed(const cryptonote::transaction& tx) void wallet2::process_new_blockchain_entry(const cryptonote::block& b, cryptonote::block_complete_entry& bche, crypto::hash& bl_id, uint64_t height) { //handle transactions from new block - THROW_WALLET_EXCEPTION_IF(height != m_blockchain.size(), error::wallet_internal_error, - "current_index=" + std::to_string(height) + ", m_blockchain.size()=" + std::to_string(m_blockchain.size())); - + //optimization: seeking only for blocks that are not older then the wallet creation time plus 1 day. 1 day is for possible user incorrect time setup if(b.timestamp + 60*60*24 > m_account.get_createtime()) { @@ -300,16 +298,16 @@ void wallet2::pull_blocks(size_t& blocks_added) void wallet2::refresh() { size_t blocks_fetched = 0; - refresh(blocks_fetched); + refresh(0, blocks_fetched); } //---------------------------------------------------------------------------------------------------- -void wallet2::refresh(size_t & blocks_fetched) +void wallet2::refresh(uint64_t start_height, size_t & blocks_fetched) { bool received_money = false; - refresh(blocks_fetched, received_money); + refresh(start_height, blocks_fetched, received_money); } //---------------------------------------------------------------------------------------------------- -void wallet2::refresh(size_t & blocks_fetched, bool& received_money) +void wallet2::refresh(uint64_t start_height, size_t & blocks_fetched, bool& received_money) { received_money = false; blocks_fetched = 0; @@ -321,7 +319,7 @@ void wallet2::refresh(size_t & blocks_fetched, bool& received_money) { try { - pull_blocks(added_blocks); + pull_blocks(start_height, added_blocks); blocks_fetched += added_blocks; if(!added_blocks) break; @@ -351,7 +349,7 @@ bool wallet2::refresh(size_t & blocks_fetched, bool& received_money, bool& ok) { try { - refresh(blocks_fetched, received_money); + refresh(0, blocks_fetched, received_money); ok = true; } catch (...) diff --git a/src/wallet/wallet2.h b/src/wallet/wallet2.h index d607dd306..4323404d3 100644 --- a/src/wallet/wallet2.h +++ b/src/wallet/wallet2.h @@ -152,8 +152,8 @@ namespace tools void callback(i_wallet2_callback* callback) { m_callback = callback; } void refresh(); - void refresh(size_t & blocks_fetched); - void refresh(size_t & blocks_fetched, bool& received_money); + void refresh(uint64_t start_height, size_t & blocks_fetched); + void refresh(uint64_t start_height, size_t & blocks_fetched, bool& received_money); bool refresh(size_t & blocks_fetched, bool& received_money, bool& ok); uint64_t balance(); @@ -202,7 +202,7 @@ namespace tools bool is_tx_spendtime_unlocked(uint64_t unlock_time) const; bool is_transfer_unlocked(const transfer_details& td) const; bool clear(); - void pull_blocks(size_t& blocks_added); + void pull_blocks(uint64_t start_height, size_t& blocks_added); uint64_t select_transfers(uint64_t needed_money, bool add_dust, uint64_t dust, std::list<transfer_container::iterator>& selected_transfers); bool prepare_file_names(const std::string& file_path); void process_unconfirmed(const cryptonote::transaction& tx); |