[#FeeRateEstimatorManager]
= FeeRateEstimatorManager
:mrdocs:

Tracks fee&hyphen;rate estimates derived from observed transactions&period;

== Synopsis

Declared in `&lt;policy&sol;fees&sol;estimator&lowbar;man&period;h&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
class FeeRateEstimatorManager
    : public xref:CValidationInterface.adoc[CValidationInterface]
----

== Base Classes

[cols="1,4"]
|===
| Name| Description
| `xref:CValidationInterface.adoc[CValidationInterface]`
| Implement this to subscribe to events generated in validation and mempool
|===

== Member Functions

[cols="1,4"]
|===
| Name| Description
| xref:FeeRateEstimatorManager/2constructor.adoc[`FeeRateEstimatorManager`]         [.small]#[constructor]#
| Construct the manager and its underlying fee rate estimators&period;
| xref:FeeRateEstimatorManager/2destructor.adoc[`&#126;FeeRateEstimatorManager`] [.small]#[destructor]# [.small]#[virtual]#
| Destroy the manager and release its estimators&period;
| xref:FeeRateEstimatorManager/BlockPolicyEstimateRawFee.adoc[`BlockPolicyEstimateRawFee`] 
| Delegate to the block policy estimator&apos;s estimateRawFee (used by the estimaterawfee RPC)&period;
| xref:FeeRateEstimatorManager/BlockPolicyHighestTargetTracked.adoc[`BlockPolicyHighestTargetTracked`] 
| Returns the maximum supported confirmation target of block policy estimator&period;
| xref:FeeRateEstimatorManager/GetFeeRateEstimate-06.adoc[`GetFeeRateEstimate`] 
| `GetFeeRateEstimate` overloads
| xref:FeeRateEstimatorManager/IntervalFlush.adoc[`IntervalFlush`] 
| Flush recorded data to disk&period;
| xref:FeeRateEstimatorManager/MaximumTarget.adoc[`MaximumTarget`]  [.small]#[virtual]#
| Returns the maximum supported confirmation target from all fee rate estimators&period;
| xref:FeeRateEstimatorManager/MempoolPolicyEstimatorBlocksStats.adoc[`MempoolPolicyEstimatorBlocksStats`] 
| Returns per&hyphen;block weight statistics for the last MEMPOOL&lowbar;HEALTH&lowbar;WINDOW&lowbar;BLOCKS mined blocks&period;
| xref:FeeRateEstimatorManager/ShutdownFlush.adoc[`ShutdownFlush`] 
| Flush recorded data to disk as part of shutdown sequence&period;
|===


== Protected Member Functions

[cols="1,4"]
|===
| Name| Description
| xref:CValidationInterface/ActiveTipChange.adoc[`ActiveTipChange`]  [.small]#[virtual]#
| Notifies listeners any time the block chain tip changes, synchronously&period;
| xref:CValidationInterface/BlockChecked.adoc[`BlockChecked`]  [.small]#[virtual]#
| Notifies listeners of a block validation result&period; If the provided BlockValidationState IsValid, the provided block is guaranteed to be the current best block at the time the callback was generated (not necessarily now)&period;
| xref:CValidationInterface/BlockConnected.adoc[`BlockConnected`]  [.small]#[virtual]#
| Notifies listeners of a block being connected&period;
| xref:CValidationInterface/BlockDisconnected.adoc[`BlockDisconnected`]  [.small]#[virtual]#
| Notifies listeners of a block being disconnected Provides the block that was disconnected&period;
| xref:CValidationInterface/ChainStateFlushed.adoc[`ChainStateFlushed`]  [.small]#[virtual]#
| Notifies listeners of the new active block chain on&hyphen;disk&period;
| xref:FeeRateEstimatorManager/MempoolTransactionsRemovedForBlock.adoc[`MempoolTransactionsRemovedForBlock`]  [.small]#[virtual]#
| Record mempool transactions that were removed because a block was connected&period;
| xref:CValidationInterface/NewPoWValidBlock.adoc[`NewPoWValidBlock`]  [.small]#[virtual]#
| Notifies listeners that a block which builds directly on our current tip has been received and connected to the headers tree, though not validated yet&period;
| xref:FeeRateEstimatorManager/TransactionAddedToMempool.adoc[`TransactionAddedToMempool`]  [.small]#[virtual]#
| Record a transaction as it enters the mempool&period;
| xref:FeeRateEstimatorManager/TransactionRemovedFromMempool.adoc[`TransactionRemovedFromMempool`]  [.small]#[virtual]#
| Record a transaction as it leaves the mempool&period;
| xref:CValidationInterface/UpdatedBlockTip.adoc[`UpdatedBlockTip`]  [.small]#[virtual]#
| Notifies listeners when the block chain tip advances&period;
|===


== Non-Member Functions

[cols="1,4"]
|===
| Name| Description
| xref:EnsureAnyFeeEstimatorMan.adoc[`EnsureAnyFeeEstimatorMan`]
| Get the fee estimator from an opaque RPC context, asserting it is present&period;
| xref:EnsureFeeEstimatorMan.adoc[`EnsureFeeEstimatorMan`]
| Get the fee estimator from a node context, asserting it is present&period;
|===


[.small]#Created with https://www.mrdocs.com[MrDocs]#
