add total balance.

This commit is contained in:
Christopher Jeffrey 2016-04-08 18:15:50 -07:00
parent 6a75900952
commit 044d54e12e
No known key found for this signature in database
GPG Key ID: 8962AB9DE6666BBD
7 changed files with 33 additions and 21 deletions

View File

@ -171,6 +171,7 @@ function getBalance(callback) {
return callback(err);
utils.print('Confirmed: %s', utils.btc(balance.confirmed));
utils.print('Unconfirmed: %s', utils.btc(balance.unconfirmed));
utils.print('Total: %s', utils.btc(balance.total));
callback();
});
}

View File

@ -92,7 +92,8 @@ Client.prototype._init = function _init() {
self.socket.on('balance', function(balance, id) {
self.emit('balance', {
confirmed: utils.satoshi(balance.confirmed),
unconfirmed: utils.satoshi(balance.unconfirmed)
unconfirmed: utils.satoshi(balance.unconfirmed),
total: utils.satoshi(balance.total)
}, id);
});
@ -101,7 +102,8 @@ Client.prototype._init = function _init() {
Object.keys(json).forEach(function(id) {
balances[id] = {
confirmed: utils.satoshi(json[id].confirmed),
unconfirmed: utils.satoshi(json[id].unconfirmed)
unconfirmed: utils.satoshi(json[id].unconfirmed),
total: utils.satoshi(json[id].total)
};
});
self.emit('balances', balances);
@ -331,7 +333,8 @@ Client.prototype.getWalletBalance = function getBalance(id, callback) {
return callback(null, {
confirmed: utils.satoshi(body.confirmed),
unconfirmed: utils.satoshi(body.unconfirmed)
unconfirmed: utils.satoshi(body.unconfirmed),
total: utils.satoshi(body.total)
});
});
};

View File

@ -389,7 +389,8 @@ NodeServer.prototype._init = function _init() {
send(200, {
confirmed: utils.btc(balance.confirmed),
unconfirmed: utils.btc(balance.unconfirmed)
unconfirmed: utils.btc(balance.unconfirmed),
total: utils.btc(balance.total)
});
});
});
@ -594,7 +595,8 @@ NodeServer.prototype._initIO = function _initIO() {
this.walletdb.on('balance', function(balance, id) {
var json = {
confirmed: utils.btc(balance.confirmed),
unconfirmed: utils.btc(balance.unconfirmed)
unconfirmed: utils.btc(balance.unconfirmed),
total: utils.btc(balance.total)
};
self.server.io.to(id).emit('balance', json);
self.server.io.to('!all').emit('balance', json, id);
@ -605,7 +607,8 @@ NodeServer.prototype._initIO = function _initIO() {
Object.keys(balances).forEach(function(id) {
json[id] = {
confirmed: utils.btc(balances[id].confirmed),
unconfirmed: utils.btc(balances[id].unconfirmed)
unconfirmed: utils.btc(balances[id].unconfirmed),
total: utils.btc(balances[id].total)
};
});
self.server.io.to('!all').emit('balances', json);

View File

@ -1594,12 +1594,17 @@ TXPool.prototype.getBalance = function getBalance(address, callback) {
return callback(err);
for (i = 0; i < coins.length; i++) {
if (coins[i].height !== -1)
if (coins[i].height === -1)
unconfirmed.iadd(coins[i].value);
else
confirmed.iadd(coins[i].value);
unconfirmed.iadd(coins[i].value);
}
return callback(null, { confirmed: confirmed, unconfirmed: unconfirmed });
return callback(null, {
confirmed: confirmed,
unconfirmed: unconfirmed,
total: confirmed.add(unconfirmed)
});
});
};

View File

@ -9,7 +9,7 @@
},
"preferGlobal": false,
"scripts": {
"test": "mocha --reporter spec test/*-test.js"
"test": "BCOIN_NETWORK=main mocha --reporter spec test/*-test.js"
},
"repository": "git://github.com/bcoin-org/bcoin.git",
"keywords": [

View File

@ -99,27 +99,27 @@ describe('Wallet', function() {
assert.noError(err);
node.mempool.getBalance(function(err, balance) {
assert.noError(err);
assert.equal(balance.unconfirmed.toString(10), '0');
assert.equal(balance.total.toString(10), '0');
node.mempool.addTX(t1, function(err) {
assert.noError(err);
node.mempool.getBalance(function(err, balance) {
assert.noError(err);
assert.equal(balance.unconfirmed.toString(10), '60000');
assert.equal(balance.total.toString(10), '60000');
node.mempool.addTX(t2, function(err) {
assert.noError(err);
node.mempool.getBalance(function(err, balance) {
assert.noError(err);
assert.equal(balance.unconfirmed.toString(10), '50000');
assert.equal(balance.total.toString(10), '50000');
node.mempool.addTX(t3, function(err) {
assert.noError(err);
node.mempool.getBalance(function(err, balance) {
assert.noError(err);
assert.equal(balance.unconfirmed.toString(10), '22000');
assert.equal(balance.total.toString(10), '22000');
node.mempool.addTX(f1, function(err) {
assert.noError(err);
node.mempool.getBalance(function(err, balance) {
assert.noError(err);
assert.equal(balance.unconfirmed.toString(10), '20000');
assert.equal(balance.total.toString(10), '20000');
node.mempool.getAll(function(err, txs) {
assert(txs.some(function(tx) {
return tx.hash('hex') === f1.hash('hex');

View File

@ -193,26 +193,26 @@ describe('Wallet', function() {
assert.noError(err);
w.getBalance(function(err, balance) {
assert.noError(err);
assert.equal(balance.unconfirmed.toString(10), '22500');
assert.equal(balance.total.toString(10), '22500');
wdb.addTX(t1, function(err) {
w.getBalance(function(err, balance) {
assert.noError(err);
assert.equal(balance.unconfirmed.toString(10), '73000');
assert.equal(balance.total.toString(10), '73000');
wdb.addTX(t2, function(err) {
assert.noError(err);
w.getBalance(function(err, balance) {
assert.noError(err);
assert.equal(balance.unconfirmed.toString(10), '47000');
assert.equal(balance.total.toString(10), '47000');
wdb.addTX(t3, function(err) {
assert.noError(err);
w.getBalance(function(err, balance) {
assert.noError(err);
assert.equal(balance.unconfirmed.toString(10), '22000');
assert.equal(balance.total.toString(10), '22000');
wdb.addTX(f1, function(err) {
assert.noError(err);
w.getBalance(function(err, balance) {
assert.noError(err);
assert.equal(balance.unconfirmed.toString(10), '11000');
assert.equal(balance.total.toString(10), '11000');
w.getAll(function(err, txs) {
assert(txs.some(function(tx) {
return tx.hash('hex') === f1.hash('hex');
@ -247,7 +247,7 @@ describe('Wallet', function() {
assert.noError(err);
dw.getBalance(function(err, balance) {
assert.noError(err);
assert.equal(balance.unconfirmed.toString(10), '11000');
assert.equal(balance.total.toString(10), '11000');
cb();
});
});