diff options
author | MarcoFalke <falke.marco@gmail.com> | 2016-03-09 12:54:55 +0100 |
---|---|---|
committer | MarcoFalke <falke.marco@gmail.com> | 2016-03-17 17:00:45 +0100 |
commit | faf756ae4ed63a31f073c09f3d0f25c13971cb98 (patch) | |
tree | 39d6d41cbaed35d85872b5135c19be913bf7dee5 | |
parent | fab688049402a111b32df6ca0765d3bcbb2d6ab5 (diff) |
[amount] Make GetFee() monotonic
This reverts the hard-to-read and buggy code introduced in
d88af560111863c3e9c1ae855dcc287f04dffb02 and adds documentation
-rw-r--r-- | src/amount.cpp | 6 | ||||
-rw-r--r-- | src/amount.h | 12 |
2 files changed, 11 insertions, 7 deletions
diff --git a/src/amount.cpp b/src/amount.cpp index a3abd8cd83..d03ed5cfad 100644 --- a/src/amount.cpp +++ b/src/amount.cpp @@ -19,10 +19,10 @@ CFeeRate::CFeeRate(const CAmount& nFeePaid, size_t nSize) CAmount CFeeRate::GetFee(size_t nSize) const { - CAmount nFee = nSatoshisPerK*nSize / 1000; + CAmount nFee = nSatoshisPerK * nSize / 1000; - if (nFee == 0 && nSatoshisPerK > 0) - nFee = nSatoshisPerK; + if (nFee == 0 && nSize != 0 && nSatoshisPerK != 0) + nFee = CAmount(1); return nFee; } diff --git a/src/amount.h b/src/amount.h index a48b17d514..9aba6525c7 100644 --- a/src/amount.h +++ b/src/amount.h @@ -42,10 +42,14 @@ public: explicit CFeeRate(const CAmount& _nSatoshisPerK): nSatoshisPerK(_nSatoshisPerK) { } CFeeRate(const CAmount& nFeePaid, size_t nSize); CFeeRate(const CFeeRate& other) { nSatoshisPerK = other.nSatoshisPerK; } - - CAmount GetFee(size_t size) const; // unit returned is satoshis - CAmount GetFeePerK() const { return GetFee(1000); } // satoshis-per-1000-bytes - + /** + * Return the fee in satoshis for the given size in bytes. + */ + CAmount GetFee(size_t size) const; + /** + * Return the fee in satoshis for a size of 1000 bytes + */ + CAmount GetFeePerK() const { return GetFee(1000); } friend bool operator<(const CFeeRate& a, const CFeeRate& b) { return a.nSatoshisPerK < b.nSatoshisPerK; } friend bool operator>(const CFeeRate& a, const CFeeRate& b) { return a.nSatoshisPerK > b.nSatoshisPerK; } friend bool operator==(const CFeeRate& a, const CFeeRate& b) { return a.nSatoshisPerK == b.nSatoshisPerK; } |