From ed1ed7b8b999284fe7e57e1d452de30598346c21 Mon Sep 17 00:00:00 2001 From: Chris Kleeschulte Date: Wed, 27 Sep 2017 19:20:42 -0400 Subject: [PATCH] Fixed incoming req.addrs checking. --- lib/addresses.js | 40 ++++++++++++++++++++++++---------------- 1 file changed, 24 insertions(+), 16 deletions(-) diff --git a/lib/addresses.js b/lib/addresses.js index 2524b88..66f85cd 100644 --- a/lib/addresses.js +++ b/lib/addresses.js @@ -95,36 +95,43 @@ AddressController.prototype.checkAddr = function(req, res, next) { }; AddressController.prototype.checkAddrs = function(req, res, next) { + if(req.body.addrs) { - req.addrs = req.body.addrs; + req.addrs = req.body.addrs.split(','); } else { req.addrs = req.params.addrs.split(','); } - this.check(req, res, next, req.addrs); -}; - -AddressController.prototype.check = function(req, res, next, addresses) { - var self = this; - if(!addresses.length || !addresses[0]) { - return self.common.handleErrors({ + if(!_.isArray(req.addrs) || _.compact(req.addrs).length < 1) { + return this.common.handleErrors({ message: 'Must include address', code: 1 }, res); } + var inValid = this.check(req.addrs); + + if (inValid) { + return this.common.handleErrors({ + message: 'Invalid address: ' + inValid.message, + code: 1 + }, res); + } + + next(); + +}; + +AddressController.prototype.check = function(addresses) { + for(var i = 0; i < addresses.length; i++) { try { new bitcore.Address(addresses[i]); } catch(e) { - return self.common.handleErrors({ - message: 'Invalid address: ' + e.message, - code: 1 - }, res); + return addresses[i]; } } - next(); }; AddressController.prototype.utxo = function(req, res) { @@ -170,7 +177,8 @@ AddressController.prototype.multiutxo = function(req, res) { return self.common.handleErrors(err, res); } - res.jsonp(finalUtxos.map(self.transformUtxo.bind(self))); + var finalRes = finalUtxos.map(self.transformUtxo.bind(self)); + res.jsonp(finalRes); }); }; @@ -179,8 +187,8 @@ AddressController.prototype.transformUtxo = function(utxoArg) { var utxo = { address: utxoArg.address, txid: utxoArg.txid, - vout: utxoArg.outputIndex, - scriptPubKey: utxoArg.script, + vout: utxoArg.vout, + scriptPubKey: utxoArg.scriptPubKey, amount: utxoArg.satoshis / 1e8, satoshis: utxoArg.satoshis };