mirror of
https://github.com/dashpay/dash.git
synced 2024-12-24 19:42:46 +01:00
[v0.14.0.x] Make sure mempool txes are properly processed by CChainLocksHandler despite node restarts (#3230)
This commit is contained in:
parent
dc07a0c5e1
commit
20d4a27778
@ -347,15 +347,23 @@ void CChainLocksHandler::TrySignChainTip()
|
|||||||
|
|
||||||
void CChainLocksHandler::SyncTransaction(const CTransaction& tx, const CBlockIndex* pindex, int posInBlock)
|
void CChainLocksHandler::SyncTransaction(const CTransaction& tx, const CBlockIndex* pindex, int posInBlock)
|
||||||
{
|
{
|
||||||
if (!masternodeSync.IsBlockchainSynced()) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool handleTx = true;
|
bool handleTx = true;
|
||||||
if (tx.IsCoinBase() || tx.vin.empty()) {
|
if (tx.IsCoinBase() || tx.vin.empty()) {
|
||||||
handleTx = false;
|
handleTx = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!masternodeSync.IsBlockchainSynced()) {
|
||||||
|
if (handleTx && posInBlock == CMainSignals::SYNC_TRANSACTION_NOT_IN_BLOCK) {
|
||||||
|
auto info = mempool.info(tx.GetHash());
|
||||||
|
if (!info.tx) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
LOCK(cs);
|
||||||
|
txFirstSeenTime.emplace(tx.GetHash(), info.nTime);
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
LOCK(cs);
|
LOCK(cs);
|
||||||
|
|
||||||
if (handleTx) {
|
if (handleTx) {
|
||||||
|
Loading…
Reference in New Issue
Block a user