policy: add some safety measures
This commit is contained in:
parent
545eb77cdb
commit
a7ab25a078
@ -11,6 +11,7 @@
|
|||||||
* @module protocol/policy
|
* @module protocol/policy
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
var assert = require('assert');
|
||||||
var consensus = require('./consensus');
|
var consensus = require('./consensus');
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -221,6 +222,12 @@ exports.getMinFee = function getMinFee(size, rate) {
|
|||||||
if (rate == null)
|
if (rate == null)
|
||||||
rate = exports.MIN_RELAY;
|
rate = exports.MIN_RELAY;
|
||||||
|
|
||||||
|
assert(size >= 0);
|
||||||
|
assert(rate >= 0);
|
||||||
|
|
||||||
|
if (size === 0)
|
||||||
|
return 0;
|
||||||
|
|
||||||
fee = Math.floor(rate * size / 1000);
|
fee = Math.floor(rate * size / 1000);
|
||||||
|
|
||||||
if (fee === 0 && rate > 0)
|
if (fee === 0 && rate > 0)
|
||||||
@ -244,6 +251,12 @@ exports.getRoundFee = function getRoundFee(size, rate) {
|
|||||||
if (rate == null)
|
if (rate == null)
|
||||||
rate = exports.MIN_RELAY;
|
rate = exports.MIN_RELAY;
|
||||||
|
|
||||||
|
assert(size >= 0);
|
||||||
|
assert(rate >= 0);
|
||||||
|
|
||||||
|
if (size === 0)
|
||||||
|
return 0;
|
||||||
|
|
||||||
fee = rate * Math.ceil(size / 1000);
|
fee = rate * Math.ceil(size / 1000);
|
||||||
|
|
||||||
if (fee === 0 && rate > 0)
|
if (fee === 0 && rate > 0)
|
||||||
@ -260,5 +273,11 @@ exports.getRoundFee = function getRoundFee(size, rate) {
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
exports.getRate = function getRate(size, fee) {
|
exports.getRate = function getRate(size, fee) {
|
||||||
|
assert(size >= 0);
|
||||||
|
assert(fee >= 0);
|
||||||
|
|
||||||
|
if (size === 0)
|
||||||
|
return 0;
|
||||||
|
|
||||||
return Math.floor(fee * 1000 / size);
|
return Math.floor(fee * 1000 / size);
|
||||||
};
|
};
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user