/Users/eugenesiegel/btc/bitcoin/src/policy/feerate.cpp
Line | Count | Source (jump to first uncovered line) |
1 | | // Copyright (c) 2009-2010 Satoshi Nakamoto |
2 | | // Copyright (c) 2009-present The Bitcoin Core developers |
3 | | // Distributed under the MIT software license, see the accompanying |
4 | | // file COPYING or http://www.opensource.org/licenses/mit-license.php. |
5 | | |
6 | | #include <consensus/amount.h> |
7 | | #include <policy/feerate.h> |
8 | | #include <tinyformat.h> |
9 | | |
10 | | |
11 | | CFeeRate::CFeeRate(const CAmount& nFeePaid, int32_t virtual_bytes) |
12 | 606k | { |
13 | 606k | if (virtual_bytes > 0) { |
14 | 606k | m_feerate = FeePerVSize(nFeePaid, virtual_bytes); |
15 | 606k | } else { |
16 | 0 | m_feerate = FeePerVSize(); |
17 | 0 | } |
18 | 606k | } |
19 | | |
20 | | CAmount CFeeRate::GetFee(int32_t virtual_bytes) const |
21 | 2.43M | { |
22 | 2.43M | Assume(virtual_bytes >= 0); Line | Count | Source | 118 | 2.43M | #define Assume(val) inline_assertion_check<false>(val, __FILE__, __LINE__, __func__, #val) |
|
23 | 2.43M | if (m_feerate.IsEmpty()) { return CAmount(0);}0 |
24 | 2.43M | CAmount nFee = CAmount(m_feerate.EvaluateFeeUp(virtual_bytes)); |
25 | 2.43M | if (nFee == 0 && virtual_bytes != 0478k && m_feerate.fee < 0478k ) return CAmount(-1)0 ; |
26 | 2.43M | return nFee; |
27 | 2.43M | } |
28 | | |
29 | | std::string CFeeRate::ToString(const FeeEstimateMode& fee_estimate_mode) const |
30 | 177k | { |
31 | 177k | const CAmount feerate_per_kvb = GetFeePerK(); |
32 | 177k | switch (fee_estimate_mode) { |
33 | 0 | case FeeEstimateMode::SAT_VB: return strprintf("%d.%03d %s/vB", feerate_per_kvb / 1000, feerate_per_kvb % 1000, CURRENCY_ATOM); Line | Count | Source | 1172 | 0 | #define strprintf tfm::format |
|
34 | 177k | default: return strprintf("%d.%08d %s/kvB", feerate_per_kvb / COIN, feerate_per_kvb % COIN, CURRENCY_UNIT); Line | Count | Source | 1172 | 177k | #define strprintf tfm::format |
|
35 | 177k | } |
36 | 177k | } |