diff --git a/lib/btc/amount.js b/lib/btc/amount.js index f0df4f39..0e93a48d 100644 --- a/lib/btc/amount.js +++ b/lib/btc/amount.js @@ -488,7 +488,7 @@ Amount.parse = function parse(value, exp, num) { Amount.parseUnsafe = function parseUnsafe(value, exp, num) { if (typeof value === 'string') { assert(util.isFloat(value), 'Non-BTC value for conversion.'); - value = parseFloat(value, 10); + value = parseFloat(value); } else { assert(util.isNumber(value), 'Non-BTC value for conversion.'); assert(num, 'Cannot parse number.'); diff --git a/lib/utils/util.js b/lib/utils/util.js index 248e6e42..18fa796f 100644 --- a/lib/utils/util.js +++ b/lib/utils/util.js @@ -392,6 +392,11 @@ util.isHex256 = function isHex256(hash) { /** * Test whether a string qualifies as a float. + * + * This is stricter than checking if the result of parseFloat() is NaN + * as, e.g. parseFloat successfully parses the string '1.2.3' as 1.2, and + * we also check that the value is a string. + * * @param {String?} value * @returns {Boolean} */