Make mempool consistent after a reorg, by re‐adding or recursively erasing disconnected block transactions from the mempool, and also removing any other transactions from the mempool that are no longer valid given the new tip/height.

Synopsis

Declared in <validation.h>

[[requires_capability(0x7f2e1ba85a78, 0x7f2e1ba85af0), requires_capability(0x7f2e145656c8, 0x7f2e14565740), requires_capability(0x7f2e373be878, 0x7f2e373be8f0), requires_capability(0x7f2e36e354c8, 0x7f2e36e35540)]]
void
MaybeUpdateMempoolForReorg(
    DisconnectedBlockTransactions& disconnectpool,
    bool fAddToMempool);

Description

Note: we assume that disconnectpool only contains transactions that are NOT confirmed in the current chain nor already in the mempool (otherwise, in‐mempool descendants of such transactions would be removed).

Passing fAddToMempool=false will skip trying to add the transactions back, and instead just erase from the mempool as needed.

Parameters

Name

Description

disconnectpool

Transactions from disconnected blocks to re‐add or erase.

fAddToMempool

Whether to try re‐adding the disconnected transactions.

Created with MrDocs