diff options
author | Murch <murch@murch.one> | 2023-12-08 13:53:46 -0500 |
---|---|---|
committer | Murch <murch@murch.one> | 2023-12-09 09:33:45 -0500 |
commit | 1553c8078698df1058b62e8fdadaf74160977b30 (patch) | |
tree | 7c90f7466cadf128acc1d58056e26a49c3ac06bd | |
parent | 2e8ec6b338a825a7155fff1be83993e3834ab655 (diff) |
Add multiplication operator to CFeeRate
-rw-r--r-- | src/policy/feerate.h | 2 | ||||
-rw-r--r-- | src/test/amount_tests.cpp | 6 |
2 files changed, 8 insertions, 0 deletions
diff --git a/src/policy/feerate.h b/src/policy/feerate.h index 41f4a4d06b..2e50172914 100644 --- a/src/policy/feerate.h +++ b/src/policy/feerate.h @@ -71,6 +71,8 @@ public: friend bool operator!=(const CFeeRate& a, const CFeeRate& b) { return a.nSatoshisPerK != b.nSatoshisPerK; } CFeeRate& operator+=(const CFeeRate& a) { nSatoshisPerK += a.nSatoshisPerK; return *this; } std::string ToString(const FeeEstimateMode& fee_estimate_mode = FeeEstimateMode::BTC_KVB) const; + friend CFeeRate operator*(const CFeeRate& f, int a) { return CFeeRate(a * f.nSatoshisPerK); } + friend CFeeRate operator*(int a, const CFeeRate& f) { return CFeeRate(a * f.nSatoshisPerK); } SERIALIZE_METHODS(CFeeRate, obj) { READWRITE(obj.nSatoshisPerK); } }; diff --git a/src/test/amount_tests.cpp b/src/test/amount_tests.cpp index 3815a5bba6..1a9c63a876 100644 --- a/src/test/amount_tests.cpp +++ b/src/test/amount_tests.cpp @@ -85,6 +85,12 @@ BOOST_AUTO_TEST_CASE(GetFeeTest) BOOST_CHECK(CFeeRate(CAmount(27), 789) == CFeeRate(34)); // Maximum size in bytes, should not crash CFeeRate(MAX_MONEY, std::numeric_limits<uint32_t>::max()).GetFeePerK(); + + // check multiplication operator + feeRate = CFeeRate(1000); + BOOST_CHECK(0 * feeRate == CFeeRate(0)); + BOOST_CHECK(3 * feeRate == CFeeRate(3000)); + BOOST_CHECK(-3 * feeRate == CFeeRate(-3000)); } BOOST_AUTO_TEST_CASE(BinaryOperatorTest) |