handle limit & reverse params

This commit is contained in:
Ivan Socolsky 2015-10-29 15:17:39 -03:00
parent ea8db8bb19
commit ef18c786fb
2 changed files with 10 additions and 2 deletions

View File

@ -721,17 +721,23 @@ WalletService.prototype.createAddress = function(opts, cb) {
/**
* Get all addresses.
* @param {Object} opts
* @param {Numeric} opts.limit (optional) - Limit the resultset. Return all addresses by default.
* @param {Boolean} [opts.reverse=false] (optional) - Reverse the order of returned addresses.
* @returns {Address[]}
*/
WalletService.prototype.getMainAddresses = function(opts, cb) {
var self = this;
opts = opts || {};
self.storage.fetchAddresses(self.walletId, function(err, addresses) {
if (err) return cb(err);
var onlyMain = _.reject(addresses, {
isChange: true
});
if (opts.reverse) onlyMain.reverse();
if (opts.limit > 0) onlyMain = _.take(onlyMain, opts.limit);
return cb(null, onlyMain);
});
};

View File

@ -315,14 +315,16 @@ helpers.createProposalOpts = function(type, outputs, signingKey, moreOpts) {
};
helpers.createAddresses = function(server, wallet, main, change, cb) {
var clock = sinon.useFakeTimers(Date.now(), 'Date');
async.map(_.range(main + change), function(i, next) {
clock.tick(1000);
var address = wallet.createAddress(i >= main);
server.storage.storeAddressAndWallet(wallet, address, function(err) {
if (err) return next(err);
next(null, address);
next(err, address);
});
}, function(err, addresses) {
if (err) throw new Error('Could not generate addresses');
clock.restore();
return cb(_.take(addresses, main), _.takeRight(addresses, change));
});
};