[amount] Make GetFee() monotonic
This reverts the hard-to-read and buggy code introduced in
d88af56011
and adds documentation
This commit is contained in:
parent
fab6880494
commit
faf756ae4e
2 changed files with 11 additions and 7 deletions
|
@ -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;
|
||||
}
|
||||
|
|
12
src/amount.h
12
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; }
|
||||
|
|
Loading…
Reference in a new issue