Asi la funcion tiene mas sentido:
FeeRateEstimatorResult FeeRateEstimatorManager::GetFeeRateEstimate(int target, bool conservative) const
{
FeeRateEstimatorResult selected_estimate;
std::vector<std::string> errors;
auto block_policy_estimate = m_block_policy_estimator->EstimateFeeRate(target, conservative);
errors.insert(errors.end(), block_policy_estimate.errors.begin(), block_policy_estimate.errors.end());
if (block_policy_estimate.feerate.IsEmpty()) {
return block_policy_estimate;
}
selected_estimate = block_policy_estimate;
auto mempool_estimate = m_mempool_estimator->EstimateFeeRate(conservative);
errors.insert(errors.end(), mempool_estimate.errors.begin(), mempool_estimate.errors.end());
if (!mempool_estimate.feerate.IsEmpty()) {
selected_estimate = std::min(selected_estimate, mempool_estimate);
}
LogDebug(BCLog::ESTIMATEFEE, "Fee rate estimated using %s: for target %s, fee rate %s %s/kvB.\n",
FeeRateEstimatorTypeToString(selected_estimate.feerate_estimator),
selected_estimate.returned_target,
CFeeRate(selected_estimate.feerate.fee, selected_estimate.feerate.size).GetFeePerK(),
CURRENCY_ATOM);
selected_estimate.errors = errors;
return selected_estimate;
}