[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);
|
||||
}
|
||||
|
||||
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)
|
||||
{
|
||||
// Do this infrequently and randomly to avoid giving away
|
||||
// that these are our transactions.
|
||||
if (GetTime() < nNextResend || !fBroadcastTransactions)
|
||||
return;
|
||||
if (GetTime() < nNextResend || !fBroadcastTransactions) return;
|
||||
bool fFirst = (nNextResend == 0);
|
||||
nNextResend = GetTime() + GetRand(30 * 60);
|
||||
if (fFirst)
|
||||
return;
|
||||
if (fFirst) return;
|
||||
|
||||
// Only do it if there's been a new block since last time
|
||||
if (nBestBlockTime < nLastResend)
|
||||
return;
|
||||
if (nBestBlockTime < nLastResend) return;
|
||||
nLastResend = GetTime();
|
||||
|
||||
// Rebroadcast unconfirmed txes older than 5 minutes before the last
|
||||
// block was found:
|
||||
std::vector<uint256> relayed = ResendWalletTransactionsBefore(locked_chain, nBestBlockTime-5*60);
|
||||
if (!relayed.empty())
|
||||
WalletLogPrintf("%s: rebroadcast %u unconfirmed transactions\n", __func__, relayed.size());
|
||||
int relayed_tx_count = 0;
|
||||
|
||||
{ // cs_wallet scope
|
||||
LOCK(cs_wallet);
|
||||
|
||||
// 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
|
||||
|
|
|
@ -947,8 +947,6 @@ public:
|
|||
void TransactionRemovedFromMempool(const CTransactionRef &ptx) override;
|
||||
void ReacceptWalletTransactions();
|
||||
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 GetUnconfirmedBalance() const;
|
||||
CAmount GetImmatureBalance() const;
|
||||
|
|
Loading…
Reference in a new issue