Page MenuHomePhabricator

[mempool] Make DisconnectedBlockTransactions responsible for removing txs from the mempool after a block is connected
ClosedPublic

Authored by Fabien on Mar 26 2024, 10:52.

Details

Summary

Rather than having the mempool use the DisconnectedBlockTransactions class to remove the transactions, (CTxMemPool => DisconnectedBlockTransactions) we can reverse the logic and let the DisconnectedBlockTransactions manage the mempool (DisconnectedBlockTransactions => CTxMemPool). This is more consistent with the other pieces of code and will make it possible to break the circular dependency mempool.h -> validation.h (via DisconnectedBlockTransactions) -> mempool.h by changing it to validation.h -> disconnected_block_transactions.h -> mempool.h.

Test Plan
ninja all check-extended

Diff Detail

Repository
rABC Bitcoin ABC
Branch
disconnectblock_removeforblock
Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 28072
Build 55689: Build Difflint-circular-dependencies · build-without-wallet · build-diff · build-debug · build-clang-tidy · build-clang
Build 55688: arc lint + arc unit