fees: fix minimum fee for fee estimation.

This commit is contained in:
Christopher Jeffrey 2016-10-26 09:55:21 -07:00
parent 6696045f60
commit 001783b759
No known key found for this signature in database
GPG Key ID: 8962AB9DE6666BBD

View File

@ -656,13 +656,13 @@ PolicyEstimator.prototype.processBlock = function processBlock(height, entries,
/**
* Estimate a fee rate.
* @param {Number} target - Confirmation target.
* @param {Number} [target=1] - Confirmation target.
* @param {Boolean} [smart=true] - Smart estimation.
* @returns {Rate}
*/
PolicyEstimator.prototype.estimateFee = function estimateFee(target, smart) {
var rate, minPoolFee;
var rate;
if (!target)
target = 1;
@ -670,8 +670,9 @@ PolicyEstimator.prototype.estimateFee = function estimateFee(target, smart) {
if (smart == null)
smart = true;
if (!(target > 0) || target > this.feeStats.maxConfirms)
return 0;
assert(utils.isUInt32(target), 'Target must be a number.');
assert(target <= this.feeStats.maxConfirms,
'Too many confirmations for estimate.');
if (!smart) {
rate = this.feeStats.estimateMedian(
@ -693,9 +694,8 @@ PolicyEstimator.prototype.estimateFee = function estimateFee(target, smart) {
target -= 1;
minPoolFee = this.network.minRelay;
if (minPoolFee > 0 && minPoolFee > rate)
return minPoolFee;
if (rate < this.network.feeRate)
return this.network.feeRate;
if (rate < 0)
return 0;
@ -705,13 +705,13 @@ PolicyEstimator.prototype.estimateFee = function estimateFee(target, smart) {
/**
* Estimate a priority.
* @param {Number} target - Confirmation target.
* @param {Number} [target=1] - Confirmation target.
* @param {Boolean} [smart=true] - Smart estimation.
* @returns {Number}
*/
PolicyEstimator.prototype.estimatePriority = function estimatePriority(target, smart) {
var minPoolFee, priority;
var priority;
if (!target)
target = 1;
@ -719,8 +719,9 @@ PolicyEstimator.prototype.estimatePriority = function estimatePriority(target, s
if (smart == null)
smart = true;
if (!(target > 0) || target > this.priStats.maxConfirms)
return 0;
assert(utils.isUInt32(target), 'Target must be a number.');
assert(target <= this.priStats.maxConfirms,
'Too many confirmations for estimate.');
if (!smart) {
priority = this.priStats.estimateMedian(
@ -729,9 +730,8 @@ PolicyEstimator.prototype.estimatePriority = function estimatePriority(target, s
return Math.floor(priority);
}
minPoolFee = this.network.minRelay;
if (minPoolFee > 0)
return INF_PRIORITY;
// TODO: Add check for mempool limiting txs.
// Should return INF_PRIORITY.
priority = -1;
while (priority < 0 && target <= this.priStats.maxConfirms) {