policy: add some safety measures

This commit is contained in:
Christopher Jeffrey 2017-03-05 17:29:20 -08:00
parent 545eb77cdb
commit a7ab25a078
No known key found for this signature in database
GPG Key ID: 8962AB9DE6666BBD

View File

@ -11,6 +11,7 @@
* @module protocol/policy
*/
var assert = require('assert');
var consensus = require('./consensus');
/**
@ -221,6 +222,12 @@ exports.getMinFee = function getMinFee(size, rate) {
if (rate == null)
rate = exports.MIN_RELAY;
assert(size >= 0);
assert(rate >= 0);
if (size === 0)
return 0;
fee = Math.floor(rate * size / 1000);
if (fee === 0 && rate > 0)
@ -244,6 +251,12 @@ exports.getRoundFee = function getRoundFee(size, rate) {
if (rate == null)
rate = exports.MIN_RELAY;
assert(size >= 0);
assert(rate >= 0);
if (size === 0)
return 0;
fee = rate * Math.ceil(size / 1000);
if (fee === 0 && rate > 0)
@ -260,5 +273,11 @@ exports.getRoundFee = function getRoundFee(size, rate) {
*/
exports.getRate = function getRate(size, fee) {
assert(size >= 0);
assert(fee >= 0);
if (size === 0)
return 0;
return Math.floor(fee * 1000 / size);
};