---
# System prepended metadata

title: Mempool Fee Estimator

---

# Mempool Fee Estimator

- This is part of the PR resurrection [PR #11775](https://github.com/bitcoin/bitcoin/pull/11775).
- There's an alternative PR [PR #28368](https://github.com/bitcoin/bitcoin/pull/28368), but it seems it doesn't include the mempool split.

## Splitting the Interface: CValidatorInterface

Following the commits:
- [Docs update](https://github.com/bitcoin/bitcoin/pull/11775/commits/bad68e9a5052fb98ab469c7e74a748791d4591d0)
- [Interface split with MempoolInterface](https://github.com/bitcoin/bitcoin/pull/11775/commits/ae5e07196cd2693fbac601b68038cabc072eceac)

Draft PR can be found [here](https://github.com/vincenzopalazzo/bitcoin/pulls).

## Issue

In Matt's PR, the signaling code utilizes `boost`. In contrast, the following codebase has its signaling code coupled with the `CValidatorInterface`.

My solution in the current PR is to duplicate the signal for the mempool. I believe this approach is the most straightforward way to achieve this.

Another method I attempted, which seemed a tad messy, was to place the signal under a proxy interface, like a `CSignal`, that would then execute the subsequent code.


```cpp!
class AB: public A, public B
{
private:
      std::shared_ptr<A> a;
      std::shared_ptr<B> b;

protected: 
      void foot() override {
          if (a) a->foo();
      }

      void doo() override {
         if (b) b->doo();
      }
}
```