mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-02-22 06:52:36 +01:00
refactor: Use C++17 std::array deduction for ALL_FEE_ESTIMATE_HORIZONS
This commit is contained in:
parent
fa39cdd072
commit
aaaa987840
4 changed files with 14 additions and 13 deletions
|
@ -11,6 +11,7 @@
|
||||||
#include <random.h>
|
#include <random.h>
|
||||||
#include <sync.h>
|
#include <sync.h>
|
||||||
|
|
||||||
|
#include <array>
|
||||||
#include <map>
|
#include <map>
|
||||||
#include <memory>
|
#include <memory>
|
||||||
#include <string>
|
#include <string>
|
||||||
|
@ -25,9 +26,15 @@ class TxConfirmStats;
|
||||||
/* Identifier for each of the 3 different TxConfirmStats which will track
|
/* Identifier for each of the 3 different TxConfirmStats which will track
|
||||||
* history over different time horizons. */
|
* history over different time horizons. */
|
||||||
enum class FeeEstimateHorizon {
|
enum class FeeEstimateHorizon {
|
||||||
SHORT_HALFLIFE = 0,
|
SHORT_HALFLIFE,
|
||||||
MED_HALFLIFE = 1,
|
MED_HALFLIFE,
|
||||||
LONG_HALFLIFE = 2
|
LONG_HALFLIFE,
|
||||||
|
};
|
||||||
|
|
||||||
|
static constexpr auto ALL_FEE_ESTIMATE_HORIZONS = std::array{
|
||||||
|
FeeEstimateHorizon::SHORT_HALFLIFE,
|
||||||
|
FeeEstimateHorizon::MED_HALFLIFE,
|
||||||
|
FeeEstimateHorizon::LONG_HALFLIFE,
|
||||||
};
|
};
|
||||||
|
|
||||||
std::string StringForFeeEstimateHorizon(FeeEstimateHorizon horizon);
|
std::string StringForFeeEstimateHorizon(FeeEstimateHorizon horizon);
|
||||||
|
|
|
@ -1160,7 +1160,7 @@ static RPCHelpMan estimaterawfee()
|
||||||
|
|
||||||
UniValue result(UniValue::VOBJ);
|
UniValue result(UniValue::VOBJ);
|
||||||
|
|
||||||
for (const FeeEstimateHorizon horizon : {FeeEstimateHorizon::SHORT_HALFLIFE, FeeEstimateHorizon::MED_HALFLIFE, FeeEstimateHorizon::LONG_HALFLIFE}) {
|
for (const FeeEstimateHorizon horizon : ALL_FEE_ESTIMATE_HORIZONS) {
|
||||||
CFeeRate feeRate;
|
CFeeRate feeRate;
|
||||||
EstimationResult buckets;
|
EstimationResult buckets;
|
||||||
|
|
||||||
|
|
|
@ -28,12 +28,6 @@ constexpr TransactionError ALL_TRANSACTION_ERROR[] = {
|
||||||
TransactionError::SIGHASH_MISMATCH,
|
TransactionError::SIGHASH_MISMATCH,
|
||||||
TransactionError::MAX_FEE_EXCEEDED,
|
TransactionError::MAX_FEE_EXCEEDED,
|
||||||
};
|
};
|
||||||
|
|
||||||
constexpr FeeEstimateHorizon ALL_FEE_EST_HORIZON[] = {
|
|
||||||
FeeEstimateHorizon::SHORT_HALFLIFE,
|
|
||||||
FeeEstimateHorizon::MED_HALFLIFE,
|
|
||||||
FeeEstimateHorizon::LONG_HALFLIFE,
|
|
||||||
};
|
|
||||||
}; // namespace
|
}; // namespace
|
||||||
|
|
||||||
// The fuzzing kitchen sink: Fuzzing harness for functions that need to be
|
// The fuzzing kitchen sink: Fuzzing harness for functions that need to be
|
||||||
|
@ -48,7 +42,7 @@ FUZZ_TARGET(kitchen_sink)
|
||||||
(void)RPCErrorFromTransactionError(transaction_error);
|
(void)RPCErrorFromTransactionError(transaction_error);
|
||||||
(void)TransactionErrorString(transaction_error);
|
(void)TransactionErrorString(transaction_error);
|
||||||
|
|
||||||
(void)StringForFeeEstimateHorizon(fuzzed_data_provider.PickValueInArray(ALL_FEE_EST_HORIZON));
|
(void)StringForFeeEstimateHorizon(fuzzed_data_provider.PickValueInArray(ALL_FEE_ESTIMATE_HORIZONS));
|
||||||
|
|
||||||
const OutputType output_type = fuzzed_data_provider.PickValueInArray(OUTPUT_TYPES);
|
const OutputType output_type = fuzzed_data_provider.PickValueInArray(OUTPUT_TYPES);
|
||||||
const std::string& output_type_string = FormatOutputType(output_type);
|
const std::string& output_type_string = FormatOutputType(output_type);
|
||||||
|
|
|
@ -66,10 +66,10 @@ FUZZ_TARGET_INIT(policy_estimator, initialize_policy_estimator)
|
||||||
}
|
}
|
||||||
(void)block_policy_estimator.estimateFee(fuzzed_data_provider.ConsumeIntegral<int>());
|
(void)block_policy_estimator.estimateFee(fuzzed_data_provider.ConsumeIntegral<int>());
|
||||||
EstimationResult result;
|
EstimationResult result;
|
||||||
(void)block_policy_estimator.estimateRawFee(fuzzed_data_provider.ConsumeIntegral<int>(), fuzzed_data_provider.ConsumeFloatingPoint<double>(), fuzzed_data_provider.PickValueInArray({FeeEstimateHorizon::SHORT_HALFLIFE, FeeEstimateHorizon::MED_HALFLIFE, FeeEstimateHorizon::LONG_HALFLIFE}), fuzzed_data_provider.ConsumeBool() ? &result : nullptr);
|
(void)block_policy_estimator.estimateRawFee(fuzzed_data_provider.ConsumeIntegral<int>(), fuzzed_data_provider.ConsumeFloatingPoint<double>(), fuzzed_data_provider.PickValueInArray(ALL_FEE_ESTIMATE_HORIZONS), fuzzed_data_provider.ConsumeBool() ? &result : nullptr);
|
||||||
FeeCalculation fee_calculation;
|
FeeCalculation fee_calculation;
|
||||||
(void)block_policy_estimator.estimateSmartFee(fuzzed_data_provider.ConsumeIntegral<int>(), fuzzed_data_provider.ConsumeBool() ? &fee_calculation : nullptr, fuzzed_data_provider.ConsumeBool());
|
(void)block_policy_estimator.estimateSmartFee(fuzzed_data_provider.ConsumeIntegral<int>(), fuzzed_data_provider.ConsumeBool() ? &fee_calculation : nullptr, fuzzed_data_provider.ConsumeBool());
|
||||||
(void)block_policy_estimator.HighestTargetTracked(fuzzed_data_provider.PickValueInArray({FeeEstimateHorizon::SHORT_HALFLIFE, FeeEstimateHorizon::MED_HALFLIFE, FeeEstimateHorizon::LONG_HALFLIFE}));
|
(void)block_policy_estimator.HighestTargetTracked(fuzzed_data_provider.PickValueInArray(ALL_FEE_ESTIMATE_HORIZONS));
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
FuzzedAutoFileProvider fuzzed_auto_file_provider = ConsumeAutoFile(fuzzed_data_provider);
|
FuzzedAutoFileProvider fuzzed_auto_file_provider = ConsumeAutoFile(fuzzed_data_provider);
|
||||||
|
|
Loading…
Add table
Reference in a new issue