Initialize transaction history if empty
This commit is contained in:
parent
85f5e73d9c
commit
db3282cdf0
|
@ -79,6 +79,9 @@ std::vector<TransactionInfo *> TransactionHistoryImpl::getAll() const
|
|||
|
||||
void TransactionHistoryImpl::refresh()
|
||||
{
|
||||
// multithreaded access:
|
||||
boost::lock_guard<boost::mutex> guarg(m_refreshMutex);
|
||||
|
||||
// TODO: configurable values;
|
||||
uint64_t min_height = 0;
|
||||
uint64_t max_height = (uint64_t)-1;
|
||||
|
@ -88,8 +91,6 @@ void TransactionHistoryImpl::refresh()
|
|||
delete t;
|
||||
m_history.clear();
|
||||
|
||||
|
||||
|
||||
// transactions are stored in wallet2:
|
||||
// - confirmed_transfer_details - out transfers
|
||||
// - unconfirmed_transfer_details - pending out transfers
|
||||
|
|
|
@ -29,6 +29,7 @@
|
|||
// Parts of this file are originally copyright (c) 2012-2013 The Cryptonote developers
|
||||
|
||||
#include "wallet/wallet2_api.h"
|
||||
#include <boost/thread/mutex.hpp>
|
||||
|
||||
namespace Bitmonero {
|
||||
|
||||
|
@ -51,6 +52,7 @@ private:
|
|||
// TransactionHistory is responsible of memory management
|
||||
std::vector<TransactionInfo*> m_history;
|
||||
WalletImpl *m_wallet;
|
||||
boost::mutex m_refreshMutex;
|
||||
};
|
||||
|
||||
}
|
||||
|
|
|
@ -723,6 +723,12 @@ void WalletImpl::doRefresh()
|
|||
boost::lock_guard<boost::mutex> guarg(m_refreshMutex2);
|
||||
try {
|
||||
m_wallet->refresh();
|
||||
// assuming if we have empty history, it wasn't initialized yet
|
||||
// for futher history changes client need to update history in
|
||||
// "on_money_received" and "on_money_sent" callbacks
|
||||
if (m_history->count() == 0) {
|
||||
m_history->refresh();
|
||||
}
|
||||
} catch (const std::exception &e) {
|
||||
m_status = Status_Error;
|
||||
m_errorString = e.what();
|
||||
|
|
Loading…
Reference in New Issue