mirror of
https://github.com/ElementsProject/elements.git
synced 2026-08-19 13:27:35 +02:00
Merge 6d81d7aa87 into merged_master (Bitcoin PR #20787)
This commit is contained in:
commit
07f78541bc
6 changed files with 19 additions and 16 deletions
|
|
@ -20,8 +20,6 @@ static const std::string OUTPUT_TYPE_STRING_P2SH_SEGWIT = "p2sh-segwit";
|
|||
static const std::string OUTPUT_TYPE_STRING_BECH32 = "bech32";
|
||||
static const std::string OUTPUT_TYPE_STRING_BLECH32 = "blech32";
|
||||
|
||||
const std::array<OutputType, 3> OUTPUT_TYPES = {OutputType::LEGACY, OutputType::P2SH_SEGWIT, OutputType::BECH32};
|
||||
|
||||
bool ParseOutputType(const std::string& type, OutputType& output_type)
|
||||
{
|
||||
if (type == OUTPUT_TYPE_STRING_LEGACY) {
|
||||
|
|
|
|||
|
|
@ -20,7 +20,11 @@ enum class OutputType {
|
|||
BECH32,
|
||||
};
|
||||
|
||||
extern const std::array<OutputType, 3> OUTPUT_TYPES;
|
||||
static constexpr auto OUTPUT_TYPES = std::array{
|
||||
OutputType::LEGACY,
|
||||
OutputType::P2SH_SEGWIT,
|
||||
OutputType::BECH32,
|
||||
};
|
||||
|
||||
[[nodiscard]] bool ParseOutputType(const std::string& str, OutputType& output_type);
|
||||
const std::string& FormatOutputType(OutputType type);
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@
|
|||
#include <random.h>
|
||||
#include <sync.h>
|
||||
|
||||
#include <array>
|
||||
#include <map>
|
||||
#include <memory>
|
||||
#include <string>
|
||||
|
|
@ -25,9 +26,15 @@ class TxConfirmStats;
|
|||
/* Identifier for each of the 3 different TxConfirmStats which will track
|
||||
* history over different time horizons. */
|
||||
enum class FeeEstimateHorizon {
|
||||
SHORT_HALFLIFE = 0,
|
||||
MED_HALFLIFE = 1,
|
||||
LONG_HALFLIFE = 2
|
||||
SHORT_HALFLIFE,
|
||||
MED_HALFLIFE,
|
||||
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);
|
||||
|
|
|
|||
|
|
@ -1182,7 +1182,7 @@ static RPCHelpMan estimaterawfee()
|
|||
|
||||
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;
|
||||
EstimationResult buckets;
|
||||
|
||||
|
|
|
|||
|
|
@ -28,12 +28,6 @@ constexpr TransactionError ALL_TRANSACTION_ERROR[] = {
|
|||
TransactionError::SIGHASH_MISMATCH,
|
||||
TransactionError::MAX_FEE_EXCEEDED,
|
||||
};
|
||||
|
||||
constexpr FeeEstimateHorizon ALL_FEE_EST_HORIZON[] = {
|
||||
FeeEstimateHorizon::SHORT_HALFLIFE,
|
||||
FeeEstimateHorizon::MED_HALFLIFE,
|
||||
FeeEstimateHorizon::LONG_HALFLIFE,
|
||||
};
|
||||
}; // namespace
|
||||
|
||||
// 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)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 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>());
|
||||
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;
|
||||
(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);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue