[wallet] Remove ResendWalletTransactionsBefore
This is only called from ResendWalletTransactions(), so bring it inline.
This commit is contained in:
parent
f5162458cd
commit
ea1a2d8794
2 changed files with 21 additions and 39 deletions
|
@ -2112,53 +2112,37 @@ bool CWalletTx::IsEquivalentTo(const CWalletTx& _tx) const
|
||||||
return CTransaction(tx1) == CTransaction(tx2);
|
return CTransaction(tx1) == CTransaction(tx2);
|
||||||
}
|
}
|
||||||
|
|
||||||
std::vector<uint256> CWallet::ResendWalletTransactionsBefore(interfaces::Chain::Lock& locked_chain, int64_t nTime)
|
|
||||||
{
|
|
||||||
std::vector<uint256> result;
|
|
||||||
|
|
||||||
LOCK(cs_wallet);
|
|
||||||
|
|
||||||
// Sort them in chronological order
|
|
||||||
std::multimap<unsigned int, CWalletTx*> mapSorted;
|
|
||||||
for (std::pair<const uint256, CWalletTx>& item : mapWallet)
|
|
||||||
{
|
|
||||||
CWalletTx& wtx = item.second;
|
|
||||||
// Don't rebroadcast if newer than nTime:
|
|
||||||
if (wtx.nTimeReceived > nTime)
|
|
||||||
continue;
|
|
||||||
mapSorted.insert(std::make_pair(wtx.nTimeReceived, &wtx));
|
|
||||||
}
|
|
||||||
for (const std::pair<const unsigned int, CWalletTx*>& item : mapSorted)
|
|
||||||
{
|
|
||||||
CWalletTx& wtx = *item.second;
|
|
||||||
if (wtx.RelayWalletTransaction(locked_chain)) {
|
|
||||||
result.push_back(wtx.GetHash());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
void CWallet::ResendWalletTransactions(interfaces::Chain::Lock& locked_chain, int64_t nBestBlockTime)
|
void CWallet::ResendWalletTransactions(interfaces::Chain::Lock& locked_chain, int64_t nBestBlockTime)
|
||||||
{
|
{
|
||||||
// Do this infrequently and randomly to avoid giving away
|
// Do this infrequently and randomly to avoid giving away
|
||||||
// that these are our transactions.
|
// that these are our transactions.
|
||||||
if (GetTime() < nNextResend || !fBroadcastTransactions)
|
if (GetTime() < nNextResend || !fBroadcastTransactions) return;
|
||||||
return;
|
|
||||||
bool fFirst = (nNextResend == 0);
|
bool fFirst = (nNextResend == 0);
|
||||||
nNextResend = GetTime() + GetRand(30 * 60);
|
nNextResend = GetTime() + GetRand(30 * 60);
|
||||||
if (fFirst)
|
if (fFirst) return;
|
||||||
return;
|
|
||||||
|
|
||||||
// Only do it if there's been a new block since last time
|
// Only do it if there's been a new block since last time
|
||||||
if (nBestBlockTime < nLastResend)
|
if (nBestBlockTime < nLastResend) return;
|
||||||
return;
|
|
||||||
nLastResend = GetTime();
|
nLastResend = GetTime();
|
||||||
|
|
||||||
// Rebroadcast unconfirmed txes older than 5 minutes before the last
|
int relayed_tx_count = 0;
|
||||||
// block was found:
|
|
||||||
std::vector<uint256> relayed = ResendWalletTransactionsBefore(locked_chain, nBestBlockTime-5*60);
|
{ // cs_wallet scope
|
||||||
if (!relayed.empty())
|
LOCK(cs_wallet);
|
||||||
WalletLogPrintf("%s: rebroadcast %u unconfirmed transactions\n", __func__, relayed.size());
|
|
||||||
|
// Relay transactions
|
||||||
|
for (std::pair<const uint256, CWalletTx>& item : mapWallet) {
|
||||||
|
CWalletTx& wtx = item.second;
|
||||||
|
// only rebroadcast unconfirmed txes older than 5 minutes before the
|
||||||
|
// last block was found
|
||||||
|
if (wtx.nTimeReceived > nBestBlockTime - 5 * 60) continue;
|
||||||
|
relayed_tx_count += wtx.RelayWalletTransaction(locked_chain) ? 1 : 0;
|
||||||
|
}
|
||||||
|
} // cs_wallet
|
||||||
|
|
||||||
|
if (relayed_tx_count > 0) {
|
||||||
|
WalletLogPrintf("%s: rebroadcast %u unconfirmed transactions\n", __func__, relayed_tx_count);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/** @} */ // end of mapWallet
|
/** @} */ // end of mapWallet
|
||||||
|
|
|
@ -947,8 +947,6 @@ public:
|
||||||
void TransactionRemovedFromMempool(const CTransactionRef &ptx) override;
|
void TransactionRemovedFromMempool(const CTransactionRef &ptx) override;
|
||||||
void ReacceptWalletTransactions();
|
void ReacceptWalletTransactions();
|
||||||
void ResendWalletTransactions(interfaces::Chain::Lock& locked_chain, int64_t nBestBlockTime) override;
|
void ResendWalletTransactions(interfaces::Chain::Lock& locked_chain, int64_t nBestBlockTime) override;
|
||||||
// ResendWalletTransactionsBefore may only be called if fBroadcastTransactions!
|
|
||||||
std::vector<uint256> ResendWalletTransactionsBefore(interfaces::Chain::Lock& locked_chain, int64_t nTime);
|
|
||||||
CAmount GetBalance(const isminefilter& filter=ISMINE_SPENDABLE, const int min_depth=0) const;
|
CAmount GetBalance(const isminefilter& filter=ISMINE_SPENDABLE, const int min_depth=0) const;
|
||||||
CAmount GetUnconfirmedBalance() const;
|
CAmount GetUnconfirmedBalance() const;
|
||||||
CAmount GetImmatureBalance() const;
|
CAmount GetImmatureBalance() const;
|
||||||
|
|
Loading…
Reference in a new issue