From f7328fc4cee8fd8d8e68e6a2125f54fc47bb26ba Mon Sep 17 00:00:00 2001 From: Ivan Socolsky Date: Mon, 1 Feb 2016 09:58:26 -0300 Subject: [PATCH] check fee xor feePerKb --- lib/server.js | 2 ++ test/integration/server.js | 18 ++++++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/lib/server.js b/lib/server.js index 06a270c..41ff170 100644 --- a/lib/server.js +++ b/lib/server.js @@ -1553,6 +1553,8 @@ WalletService.prototype.createTx = function(opts, cb) { return cb(new ClientError('Required argument missing')); if (_.isNumber(opts.fee)) { + if (_.isNumber(opts.feePerKb)) + return cb(new ClientError('Cannot sepcify both fee and feePerKb arguments')); opts.feePerKb = null; if (opts.fee < Defaults.MIN_TX_FEE || opts.fee > Defaults.MAX_TX_FEE) return cb(new ClientError('Invalid fee')); diff --git a/test/integration/server.js b/test/integration/server.js index c6d801b..4fb0cb8 100644 --- a/test/integration/server.js +++ b/test/integration/server.js @@ -2742,6 +2742,24 @@ describe('Wallet service', function() { }); }); + it('should not be able to specify both final fee & fee per kb', function(done) { + helpers.stubUtxos(server, wallet, [1, 2], function() { + var txOpts = { + outputs: [{ + toAddress: '18PzpUFkFZE8zKWUPvfykkTxmB9oMR8qP7', + amount: 0.8 * 1e8, + }], + fee: 123400, + feePerKb: 123400, + }; + server.createTx(txOpts, function(err, tx) { + should.exist(err); + err.message.should.contain('fee'); + done(); + }); + }); + }); + it('should check explicit fee to be below max', function(done) { helpers.stubUtxos(server, wallet, [1, 2], function() { var txOpts = {