Merge pull request #251 from braydonf/bug/tx-count
Fix bug with address summary transaction count.
This commit is contained in:
commit
fa59000819
|
@ -570,6 +570,23 @@ describe('Node Functionality', function() {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('summary for an address (sending and receiving)', function(done) {
|
||||||
|
node.services.address.getAddressSummary(address, {}, function(err, results) {
|
||||||
|
if (err) {
|
||||||
|
throw err;
|
||||||
|
}
|
||||||
|
results.totalReceived.should.equal(2000000000);
|
||||||
|
results.totalSpent.should.equal(1999990000);
|
||||||
|
results.balance.should.equal(10000);
|
||||||
|
results.unconfirmedBalance.should.equal(10000);
|
||||||
|
results.appearances.should.equal(6);
|
||||||
|
results.unconfirmedAppearances.should.equal(0);
|
||||||
|
results.txids.length.should.equal(6);
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
it('total transaction count (sending and receiving)', function(done) {
|
it('total transaction count (sending and receiving)', function(done) {
|
||||||
var addresses = [
|
var addresses = [
|
||||||
address
|
address
|
||||||
|
|
|
@ -906,19 +906,14 @@ AddressService.prototype.getAddressSummary = function(address, options, callback
|
||||||
|
|
||||||
var outputs;
|
var outputs;
|
||||||
var inputs;
|
var inputs;
|
||||||
var mempoolInputs;
|
|
||||||
|
|
||||||
async.parallel(
|
async.parallel(
|
||||||
[
|
[
|
||||||
function(next) {
|
function(next) {
|
||||||
if(options.noTxList) {
|
self.getInputs(address, opt, function(err, ins) {
|
||||||
setImmediate(next);
|
inputs = ins;
|
||||||
} else {
|
next(err);
|
||||||
self.getInputs(address, opt, function(err, ins) {
|
});
|
||||||
inputs = ins;
|
|
||||||
next(err);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
function(next) {
|
function(next) {
|
||||||
self.getOutputs(address, opt, function(err, outs) {
|
self.getOutputs(address, opt, function(err, outs) {
|
||||||
|
@ -936,8 +931,8 @@ AddressService.prototype.getAddressSummary = function(address, options, callback
|
||||||
var totalSpent = 0;
|
var totalSpent = 0;
|
||||||
var balance = 0;
|
var balance = 0;
|
||||||
var unconfirmedBalance = 0;
|
var unconfirmedBalance = 0;
|
||||||
var appearances = 0;
|
var appearanceIds = {};
|
||||||
var unconfirmedAppearances = 0;
|
var unconfirmedAppearanceIds = {};
|
||||||
var txids = [];
|
var txids = [];
|
||||||
|
|
||||||
for(var i = 0; i < outputs.length; i++) {
|
for(var i = 0; i < outputs.length; i++) {
|
||||||
|
@ -951,9 +946,9 @@ AddressService.prototype.getAddressSummary = function(address, options, callback
|
||||||
if(outputs[i].confirmations) {
|
if(outputs[i].confirmations) {
|
||||||
totalReceived += outputs[i].satoshis;
|
totalReceived += outputs[i].satoshis;
|
||||||
balance += outputs[i].satoshis;
|
balance += outputs[i].satoshis;
|
||||||
appearances++;
|
appearanceIds[outputs[i].txid] = true;
|
||||||
} else {
|
} else {
|
||||||
unconfirmedAppearances++;
|
unconfirmedAppearanceIds[outputs[i].txid] = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(spentDB || spentMempool) {
|
if(spentDB || spentMempool) {
|
||||||
|
@ -961,23 +956,28 @@ AddressService.prototype.getAddressSummary = function(address, options, callback
|
||||||
if(spentDB) {
|
if(spentDB) {
|
||||||
totalSpent += outputs[i].satoshis;
|
totalSpent += outputs[i].satoshis;
|
||||||
balance -= outputs[i].satoshis;
|
balance -= outputs[i].satoshis;
|
||||||
appearances++;
|
|
||||||
} else {
|
|
||||||
unconfirmedAppearances++;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for(var j = 0; j < inputs.length; j++) {
|
||||||
|
if (inputs[j].confirmations) {
|
||||||
|
appearanceIds[inputs[j].txid] = true;
|
||||||
|
} else {
|
||||||
|
unconfirmedAppearanceIds[outputs[j].txid] = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
var summary = {
|
var summary = {
|
||||||
totalReceived: totalReceived,
|
totalReceived: totalReceived,
|
||||||
totalSpent: totalSpent,
|
totalSpent: totalSpent,
|
||||||
balance: balance,
|
balance: balance,
|
||||||
unconfirmedBalance: unconfirmedBalance,
|
unconfirmedBalance: unconfirmedBalance,
|
||||||
appearances: appearances,
|
appearances: Object.keys(appearanceIds).length,
|
||||||
unconfirmedAppearances: unconfirmedAppearances
|
unconfirmedAppearances: Object.keys(unconfirmedAppearanceIds).length
|
||||||
};
|
};
|
||||||
|
|
||||||
if(inputs) {
|
if(!options.noTxList) {
|
||||||
for(var i = 0; i < inputs.length; i++) {
|
for(var i = 0; i < inputs.length; i++) {
|
||||||
txids.push(inputs[i]);
|
txids.push(inputs[i]);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue