Chainstate::MaybeUpdateMempoolForReorg

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

NameDescription
disconnectpoolTransactions from disconnected blocks to re-add or erase.
fAddToMempoolWhether to try re-adding the disconnected transactions.