@ -299,6 +299,7 @@ void CBlockPolicyEstimator::removeTx(uint256 hash)
CBlockPolicyEstimator : : CBlockPolicyEstimator ( const CFeeRate & _minRelayFee )
CBlockPolicyEstimator : : CBlockPolicyEstimator ( const CFeeRate & _minRelayFee )
: nBestSeenHeight ( 0 )
: nBestSeenHeight ( 0 )
{
{
static_assert ( MIN_FEERATE > 0 , " Min feerate must be nonzero " ) ;
minTrackedFee = _minRelayFee < CFeeRate ( MIN_FEERATE ) ? CFeeRate ( MIN_FEERATE ) : _minRelayFee ;
minTrackedFee = _minRelayFee < CFeeRate ( MIN_FEERATE ) ? CFeeRate ( MIN_FEERATE ) : _minRelayFee ;
std : : vector < double > vfeelist ;
std : : vector < double > vfeelist ;
for ( double bucketBoundary = minTrackedFee . GetFeePerK ( ) ; bucketBoundary < = MAX_FEERATE ; bucketBoundary * = FEE_SPACING ) {
for ( double bucketBoundary = minTrackedFee . GetFeePerK ( ) ; bucketBoundary < = MAX_FEERATE ; bucketBoundary * = FEE_SPACING ) {
@ -485,7 +486,7 @@ void CBlockPolicyEstimator::Read(CAutoFile& filein, int nFileVersion)
FeeFilterRounder : : FeeFilterRounder ( const CFeeRate & minIncrementalFee )
FeeFilterRounder : : FeeFilterRounder ( const CFeeRate & minIncrementalFee )
{
{
CAmount minFeeLimit = minIncrementalFee . GetFeePerK ( ) / 2 ;
CAmount minFeeLimit = std : : max ( CAmount ( 1 ) , minIncrementalFee . GetFeePerK ( ) / 2 ) ;
feeset . insert ( 0 ) ;
feeset . insert ( 0 ) ;
for ( double bucketBoundary = minFeeLimit ; bucketBoundary < = MAX_FEERATE ; bucketBoundary * = FEE_SPACING ) {
for ( double bucketBoundary = minFeeLimit ; bucketBoundary < = MAX_FEERATE ; bucketBoundary * = FEE_SPACING ) {
feeset . insert ( bucketBoundary ) ;
feeset . insert ( bucketBoundary ) ;