diff --git a/src/common/messages.cpp b/src/common/messages.cpp index 123db93cf61..4dfee3a52e1 100644 --- a/src/common/messages.cpp +++ b/src/common/messages.cpp @@ -4,11 +4,11 @@ // file COPYING or http://www.opensource.org/licenses/mit-license.php. #include - #include -#include #include +#include #include +#include #include #include #include @@ -68,7 +68,6 @@ std::string FeeModeInfo(const std::pair& mode, std "less responsive to short-term drops in the prevailing fee market. This mode\n" "potentially returns a higher fee rate estimate.\n", mode.first); default: - // Other modes apart from the ones handled are fee rate units; they should not be clarified. assert(false); } } diff --git a/src/policy/feerate.cpp b/src/policy/feerate.cpp index f74da8a7e22..f62835acbcf 100644 --- a/src/policy/feerate.cpp +++ b/src/policy/feerate.cpp @@ -26,11 +26,12 @@ CAmount CFeeRate::GetFee(int32_t virtual_bytes) const return nFee; } -std::string CFeeRate::ToString(const FeeEstimateMode& fee_estimate_mode) const +std::string CFeeRate::ToString(FeeRateFormat fee_rate_format) const { - const CAmount feerate_per_kvb = GetFeePerK(); - switch (fee_estimate_mode) { - case FeeEstimateMode::SAT_VB: return strprintf("%d.%03d %s/vB", feerate_per_kvb / 1000, feerate_per_kvb % 1000, CURRENCY_ATOM); - default: return strprintf("%d.%08d %s/kvB", feerate_per_kvb / COIN, feerate_per_kvb % COIN, CURRENCY_UNIT); - } + const CAmount feerate_per_kvb{GetFeePerK()}; + switch (fee_rate_format) { + case FeeRateFormat::BTC_KVB: return strprintf("%d.%08d %s/kvB", feerate_per_kvb / COIN, feerate_per_kvb % COIN, CURRENCY_UNIT); + case FeeRateFormat::SAT_VB: return strprintf("%d.%03d %s/vB", feerate_per_kvb / 1000, feerate_per_kvb % 1000, CURRENCY_ATOM); + } // no default case, so the compiler can warn about missing cases + assert(false); } diff --git a/src/policy/feerate.h b/src/policy/feerate.h index b89f2e1e3ba..f6b49a1465b 100644 --- a/src/policy/feerate.h +++ b/src/policy/feerate.h @@ -18,6 +18,12 @@ const std::string CURRENCY_UNIT = "BTC"; // One formatted unit const std::string CURRENCY_ATOM = "sat"; // One indivisible minimum value unit + +enum class FeeRateFormat { + BTC_KVB, //!< Use BTC/kvB fee rate unit + SAT_VB, //!< Use sat/vB fee rate unit +}; + /** * Fee rate in satoshis per virtualbyte: CAmount / vB * the feerate is represented internally as FeeFrac @@ -66,7 +72,7 @@ public: m_feerate = FeePerVSize(GetFeePerK() + a.GetFeePerK(), 1000); return *this; } - std::string ToString(const FeeEstimateMode& fee_estimate_mode = FeeEstimateMode::BTC_KVB) const; + std::string ToString(FeeRateFormat fee_rate_format = FeeRateFormat::BTC_KVB) const; friend CFeeRate operator*(const CFeeRate& f, int a) { return CFeeRate(a * f.m_feerate.fee, f.m_feerate.size); } friend CFeeRate operator*(int a, const CFeeRate& f) { return CFeeRate(a * f.m_feerate.fee, f.m_feerate.size); } diff --git a/src/rpc/fees.cpp b/src/rpc/fees.cpp index 174217fc0c1..9bad6f4a597 100644 --- a/src/rpc/fees.cpp +++ b/src/rpc/fees.cpp @@ -15,6 +15,7 @@ #include #include #include +#include #include #include diff --git a/src/test/amount_tests.cpp b/src/test/amount_tests.cpp index b500c9686d7..e1630b41948 100644 --- a/src/test/amount_tests.cpp +++ b/src/test/amount_tests.cpp @@ -138,8 +138,8 @@ BOOST_AUTO_TEST_CASE(ToStringTest) CFeeRate feeRate; feeRate = CFeeRate(1); BOOST_CHECK_EQUAL(feeRate.ToString(), "0.00000001 BTC/kvB"); - BOOST_CHECK_EQUAL(feeRate.ToString(FeeEstimateMode::BTC_KVB), "0.00000001 BTC/kvB"); - BOOST_CHECK_EQUAL(feeRate.ToString(FeeEstimateMode::SAT_VB), "0.001 sat/vB"); + BOOST_CHECK_EQUAL(feeRate.ToString(FeeRateFormat::BTC_KVB), "0.00000001 BTC/kvB"); + BOOST_CHECK_EQUAL(feeRate.ToString(FeeRateFormat::SAT_VB), "0.001 sat/vB"); } BOOST_AUTO_TEST_SUITE_END() diff --git a/src/test/fuzz/string.cpp b/src/test/fuzz/string.cpp index 5d59eb34084..d3156336973 100644 --- a/src/test/fuzz/string.cpp +++ b/src/test/fuzz/string.cpp @@ -22,6 +22,7 @@ #include #include #include +#include #include #include #include @@ -34,8 +35,6 @@ #include #include -enum class FeeEstimateMode; - using common::AmountErrMsg; using common::AmountHighWarn; using common::FeeModeFromString; diff --git a/src/util/fees.h b/src/util/fees.h index 25ca246e28c..6edcb772d24 100644 --- a/src/util/fees.h +++ b/src/util/fees.h @@ -10,8 +10,6 @@ enum class FeeEstimateMode { UNSET, //!< Use default settings based on other criteria ECONOMICAL, //!< Force estimateSmartFee to use non-conservative estimates CONSERVATIVE, //!< Force estimateSmartFee to use conservative estimates - BTC_KVB, //!< Use BTC/kvB fee rate unit - SAT_VB, //!< Use sat/vB fee rate unit }; #endif // BITCOIN_UTIL_FEES_H diff --git a/src/wallet/coincontrol.h b/src/wallet/coincontrol.h index ead3307a0f9..27cbd3878d6 100644 --- a/src/wallet/coincontrol.h +++ b/src/wallet/coincontrol.h @@ -11,6 +11,7 @@ #include #include