diff --git a/lib/walletutils.js b/lib/walletutils.js index c46210a..dabd89c 100644 --- a/lib/walletutils.js +++ b/lib/walletutils.js @@ -121,7 +121,10 @@ WalletUtils.parseAmount = function(text) { var rate = WalletUtils.UNITS[unit]; if (!rate) throw new Error('Invalid unit') - return Utils.strip(amount * rate); + var amountSat = Utils.strip(amount * rate); + if (amountSat != Math.round(amountSat)) throw new Error('Invalid amount'); + + return amountSat; }; module.exports = WalletUtils; diff --git a/test/walletutils.js b/test/walletutils.js index d4ef888..d8695eb 100644 --- a/test/walletutils.js +++ b/test/walletutils.js @@ -80,6 +80,7 @@ describe('WalletUtils', function() { var texts = { '1': 1, '0': 0, + '1.': 1, '000000.0000': 0, '123': 123, '123sat': 123, @@ -113,8 +114,12 @@ describe('WalletUtils', function() { '-3', '1 b t c', 'btc1', + 'btc 1', '1,234', '0.000000001btc', + '0.1sat', + '0.123bit', + '2.000000009btc', ]; _.each(texts, function(text) { var valid = true;