mirror of
https://github.com/dashpay/dash.git
synced 2024-12-26 04:22:55 +01:00
[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
@ -19,10 +19,10 @@ CFeeRate::CFeeRate(const CAmount& nFeePaid, size_t nSize)
|
|||||||
|
|
||||||
CAmount CFeeRate::GetFee(size_t nSize) const
|
CAmount CFeeRate::GetFee(size_t nSize) const
|
||||||
{
|
{
|
||||||
CAmount nFee = nSatoshisPerK*nSize / 1000;
|
CAmount nFee = nSatoshisPerK * nSize / 1000;
|
||||||
|
|
||||||
if (nFee == 0 && nSatoshisPerK > 0)
|
if (nFee == 0 && nSize != 0 && nSatoshisPerK != 0)
|
||||||
nFee = nSatoshisPerK;
|
nFee = CAmount(1);
|
||||||
|
|
||||||
return nFee;
|
return nFee;
|
||||||
}
|
}
|
||||||
|
12
src/amount.h
12
src/amount.h
@ -42,10 +42,14 @@ public:
|
|||||||
explicit CFeeRate(const CAmount& _nSatoshisPerK): nSatoshisPerK(_nSatoshisPerK) { }
|
explicit CFeeRate(const CAmount& _nSatoshisPerK): nSatoshisPerK(_nSatoshisPerK) { }
|
||||||
CFeeRate(const CAmount& nFeePaid, size_t nSize);
|
CFeeRate(const CAmount& nFeePaid, size_t nSize);
|
||||||
CFeeRate(const CFeeRate& other) { nSatoshisPerK = other.nSatoshisPerK; }
|
CFeeRate(const CFeeRate& other) { nSatoshisPerK = other.nSatoshisPerK; }
|
||||||
|
/**
|
||||||
CAmount GetFee(size_t size) const; // unit returned is satoshis
|
* Return the fee in satoshis for the given size in bytes.
|
||||||
CAmount GetFeePerK() const { return GetFee(1000); } // satoshis-per-1000-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; }
|
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 New Issue
Block a user