[#Chainstate-MaybeUpdateMempoolForReorg] = xref:Chainstate.adoc[Chainstate]::MaybeUpdateMempoolForReorg :relfileprefix: ../ :mrdocs: 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>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- [[requires_capability(0x7f2e1ba85a78, 0x7f2e1ba85af0), requires_capability(0x7f2e145656c8, 0x7f2e14565740), requires_capability(0x7f2e373be878, 0x7f2e373be8f0), requires_capability(0x7f2e36e354c8, 0x7f2e36e35540)]] void MaybeUpdateMempoolForReorg( xref:DisconnectedBlockTransactions.adoc[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 [cols="1,4"] |=== | Name| Description | *disconnectpool* | Transactions from disconnected blocks to re‐add or erase. | *fAddToMempool* | Whether to try re‐adding the disconnected transactions. |=== [.small]#Created with https://www.mrdocs.com[MrDocs]#