Merge pull request #392 from isocolsky/feat/get-main-addresses-params
Add params to getMainAddresses
This commit is contained in:
commit
3425f9ec57
|
@ -282,7 +282,7 @@ ExpressApp.prototype.start = function(opts, cb) {
|
|||
|
||||
router.get('/v1/addresses/', function(req, res) {
|
||||
getServerWithAuth(req, res, function(server) {
|
||||
server.getMainAddresses({}, function(err, addresses) {
|
||||
server.getMainAddresses(req.body, function(err, addresses) {
|
||||
if (err) return returnError(err, res, req);
|
||||
res.json(addresses);
|
||||
});
|
||||
|
|
|
@ -769,17 +769,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);
|
||||
});
|
||||
};
|
||||
|
|
|
@ -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));
|
||||
});
|
||||
};
|
||||
|
@ -1777,6 +1779,54 @@ describe('Wallet service', function() {
|
|||
});
|
||||
});
|
||||
|
||||
describe('#getMainAddresses', function() {
|
||||
var server, wallet;
|
||||
|
||||
beforeEach(function(done) {
|
||||
helpers.createAndJoinWallet(2, 2, {}, function(s, w) {
|
||||
server = s;
|
||||
wallet = w;
|
||||
helpers.createAddresses(server, wallet, 5, 0, function() {
|
||||
done();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
it('should get all addresses', function(done) {
|
||||
server.getMainAddresses({}, function(err, addresses) {
|
||||
should.not.exist(err);
|
||||
addresses.length.should.equal(5);
|
||||
addresses[0].path.should.equal('m/0/0');
|
||||
addresses[4].path.should.equal('m/0/4');
|
||||
done();
|
||||
});
|
||||
});
|
||||
it('should get first N addresses', function(done) {
|
||||
server.getMainAddresses({
|
||||
limit: 3
|
||||
}, function(err, addresses) {
|
||||
should.not.exist(err);
|
||||
addresses.length.should.equal(3);
|
||||
addresses[0].path.should.equal('m/0/0');
|
||||
addresses[2].path.should.equal('m/0/2');
|
||||
done();
|
||||
});
|
||||
});
|
||||
it('should get last N addresses in reverse order', function(done) {
|
||||
server.getMainAddresses({
|
||||
limit: 3,
|
||||
reverse: true,
|
||||
}, function(err, addresses) {
|
||||
should.not.exist(err);
|
||||
addresses.length.should.equal(3);
|
||||
addresses[0].path.should.equal('m/0/4');
|
||||
addresses[2].path.should.equal('m/0/2');
|
||||
done();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
describe('Preferences', function() {
|
||||
var server, wallet;
|
||||
beforeEach(function(done) {
|
||||
|
|
Loading…
Reference in New Issue