diff --git a/lib/services/address/index.js b/lib/services/address/index.js index 35829758..bdbfe342 100644 --- a/lib/services/address/index.js +++ b/lib/services/address/index.js @@ -276,14 +276,14 @@ AddressService.prototype.transactionHandler = function(txInfo, callback) { }; AddressService.prototype._updateAddressIndex = function(key, add) { - var currentValue = this.mempoolAddressIndex[key] || 0; if(add) { - if (currentValue > 0) + if (currentValue > 0) { this.mempoolAddressIndex[key] = currentValue + 1; - else + } else { this.mempoolAddressIndex[key] = 1; + } } else { if (currentValue < 1) { delete this.mempoolAddressIndex[key]; diff --git a/test/services/address/index.unit.js b/test/services/address/index.unit.js index d5632c8f..3c2b250b 100644 --- a/test/services/address/index.unit.js +++ b/test/services/address/index.unit.js @@ -2433,6 +2433,56 @@ describe('Address Service', function() { }); }); + + describe.only('#_updateAddressIndex', function() { + var as; + beforeEach(function(){ + var testnode = { + services: { + bitcoind: { + on: sinon.stub() + } + }, + datadir: 'testdir' + }; + as = new AddressService({ + mempoolMemoryIndex: true, + node: testnode + }); + }); + it('should add using 2 keys', function() { + _.values(as.mempoolAddressIndex).should.deep.equal([]); + as._updateAddressIndex('index1', true); + as._updateAddressIndex('index1', true); + as._updateAddressIndex('index1', true); + as._updateAddressIndex('index1', true); + as._updateAddressIndex('index2', true); + as._updateAddressIndex('index2', true); + as.mempoolAddressIndex.should.deep.equal({ + "index1": 4, + "index2": 2 + }); + }); + it('should add/remove using 2 keys', function() { + _.values(as.mempoolAddressIndex).should.deep.equal([]); + as._updateAddressIndex('index1', true); + as._updateAddressIndex('index1', true); + as._updateAddressIndex('index1', true); + as._updateAddressIndex('index1', true); + as._updateAddressIndex('index1', false); + + as._updateAddressIndex('index2', true); + as._updateAddressIndex('index2', true); + as._updateAddressIndex('index2', false); + as._updateAddressIndex('index2', false); + as._updateAddressIndex('index2', false); + as.mempoolAddressIndex.should.deep.equal({ + "index1": 3 + }); + }); + }); + + describe('#_getAddressMempoolSummary', function() { it('skip if options not enabled', function(done) { var testnode = {