#include "key.h"
#include "keystore.h"
#include "script.h"
-#include "ui_interface.h"
+#include "interface.h"
#include "util.h"
#include "walletdb.h"
#include "base58.h"
// the maximum wallet format version: memory-only variable that specifies to what version this wallet may be upgraded
int nWalletMaxVersion;
+ int64_t nNextResend;
+ int64_t nLastResend;
+
// stake mining statistics
uint64_t nKernelsTried;
uint64_t nCoinDaysTried;
nMasterKeyMaxID = 0;
pwalletdbEncryption = NULL;
pwalletdbDecryption = NULL;
+ nNextResend = 0;
+ nLastResend = 0;
nOrderPosNext = 0;
nKernelsTried = 0;
nCoinDaysTried = 0;
bool DecryptWallet(const SecureString& strWalletPassphrase);
void GetAddresses(std::map<CBitcoinAddress, int64_t> &mapAddresses) const;
- bool GetPEM(const CKeyID &keyID, const std::string &fileName, const SecureString &strPassPhrase) const;
/** Increment the next transaction order id
int ScanForWalletTransactions(CBlockIndex* pindexStart, bool fUpdate = false);
int ScanForWalletTransaction(const uint256& hashTx);
void ReacceptWalletTransactions();
- void ResendWalletTransactions(bool fForceResend=false);
+ void ResendWalletTransactions(int64_t nBestBlockTime);
+ std::vector<uint256> ResendWalletTransactionsBefore(int64_t nTime);
int64_t GetBalance() const;
int64_t GetWatchOnlyBalance() const;
int64_t GetUnconfirmedBalance() const;
pthis->mapValue["fromaccount"] = pthis->strFromAccount;
std::string str;
- BOOST_FOREACH(char f, vfSpent)
+ for (char f : vfSpent)
{
str += (f ? '1' : '0');
if (f)
pthis->strFromAccount = pthis->mapValue["fromaccount"];
if (mapValue.count("spent"))
- BOOST_FOREACH(char c, pthis->mapValue["spent"])
+ for (char c : pthis->mapValue["spent"])
pthis->vfSpent.push_back(c != '0');
else
pthis->vfSpent.assign(vout.size(), fSpent);
// marks certain txout's as spent
// returns true if any update took place
- bool UpdateSpent(const std::vector<char>& vfNewSpent)
- {
- bool fReturn = false;
- for (unsigned int i = 0; i < vfNewSpent.size(); i++)
- {
- if (i == vfSpent.size())
- break;
-
- if (vfNewSpent[i] && !vfSpent[i])
- {
- vfSpent[i] = true;
- fReturn = true;
- fAvailableCreditCached = fAvailableWatchCreditCached = false;
- }
- }
- return fReturn;
- }
+ bool UpdateSpent(const std::vector<char>& vfNewSpent);
// make sure balances are recalculated
- void MarkDirty()
- {
- fCreditCached = false;
- fAvailableCreditCached = fAvailableWatchCreditCached = false;
- fDebitCached = fWatchDebitCached = false;
- fChangeCached = false;
- }
-
- void BindWallet(CWallet *pwalletIn)
- {
- pwallet = pwalletIn;
- MarkDirty();
- }
-
- void MarkSpent(unsigned int nOut)
- {
- if (nOut >= vout.size())
- throw std::runtime_error("CWalletTx::MarkSpent() : nOut out of range");
- vfSpent.resize(vout.size());
- if (!vfSpent[nOut])
- {
- vfSpent[nOut] = true;
- fAvailableCreditCached = fAvailableWatchCreditCached = false;
- }
- }
-
- void MarkUnspent(unsigned int nOut)
- {
- if (nOut >= vout.size())
- throw std::runtime_error("CWalletTx::MarkUnspent() : nOut out of range");
- vfSpent.resize(vout.size());
- if (vfSpent[nOut])
- {
- vfSpent[nOut] = false;
- fAvailableCreditCached = fAvailableWatchCreditCached = false;
- }
- }
-
- bool IsSpent(unsigned int nOut) const
- {
- if (nOut >= vout.size())
- throw std::runtime_error("CWalletTx::IsSpent() : nOut out of range");
- if (nOut >= vfSpent.size())
- return false;
- return (!!vfSpent[nOut]);
- }
+ void MarkDirty();
+ void BindWallet(CWallet *pwalletIn);
+ void MarkSpent(unsigned int nOut);
+ void MarkUnspent(unsigned int nOut);
+ bool IsSpent(unsigned int nOut) const;
int64_t GetDebit(const isminefilter& filter) const;
int64_t GetCredit(const isminefilter& filter) const;
bool AcceptWalletTransaction(CTxDB& txdb, bool fCheckInputs=true);
bool AcceptWalletTransaction();
- void RelayWalletTransaction(CTxDB& txdb);
- void RelayWalletTransaction();
+ bool RelayWalletTransaction(CTxDB& txdb);
+ bool RelayWalletTransaction();
};