fix stale balance bug
This commit is contained in:
parent
4eff3eb9d2
commit
6c30c5e35e
2 changed files with 14 additions and 19 deletions
|
|
@ -376,7 +376,8 @@ exports.fiatBalance = function fiatBalance (cryptoCode) {
|
||||||
if (!deviceRate) return null
|
if (!deviceRate) return null
|
||||||
var rawRate = deviceRate.rates.ask
|
var rawRate = deviceRate.rates.ask
|
||||||
var commission = cachedConfig.exchanges.settings.commission
|
var commission = cachedConfig.exchanges.settings.commission
|
||||||
var lastBalance = lastBalances[cryptoCode]
|
var lastBalanceRec = lastBalances[cryptoCode]
|
||||||
|
var lastBalance = lastBalanceRec.balance
|
||||||
|
|
||||||
if (!rawRate || !lastBalance) return null
|
if (!rawRate || !lastBalance) return null
|
||||||
|
|
||||||
|
|
@ -390,7 +391,7 @@ exports.fiatBalance = function fiatBalance (cryptoCode) {
|
||||||
var unitScale = new BigNumber(10).pow(coins[cryptoCode].unitScale)
|
var unitScale = new BigNumber(10).pow(coins[cryptoCode].unitScale)
|
||||||
var fiatTransferBalance = lastBalance.div(unitScale).times(rate).div(lowBalanceMargin)
|
var fiatTransferBalance = lastBalance.div(unitScale).times(rate).div(lowBalanceMargin)
|
||||||
|
|
||||||
return fiatTransferBalance.round(3).toNumber()
|
return {timestamp: lastBalanceRec.timestamp, balance: fiatTransferBalance.round(3).toNumber()}
|
||||||
}
|
}
|
||||||
|
|
||||||
function processTxStatus (tx) {
|
function processTxStatus (tx) {
|
||||||
|
|
@ -508,8 +509,7 @@ function pollBalance (cryptoCode, cb) {
|
||||||
}
|
}
|
||||||
|
|
||||||
logger.debug('[%s] Balance update: %j', cryptoCode, balance)
|
logger.debug('[%s] Balance update: %j', cryptoCode, balance)
|
||||||
balance.timestamp = Date.now()
|
lastBalances[cryptoCode] = {timestamp: Date.now(), balance: new BigNumber(balance[cryptoCode])}
|
||||||
lastBalances[cryptoCode] = new BigNumber(balance[cryptoCode])
|
|
||||||
|
|
||||||
return cb && cb(null, lastBalances)
|
return cb && cb(null, lastBalances)
|
||||||
})
|
})
|
||||||
|
|
@ -557,12 +557,6 @@ exports.getDeviceRate = function getDeviceRate (cryptoCode) {
|
||||||
return lastRate[deviceCurrency]
|
return lastRate[deviceCurrency]
|
||||||
}
|
}
|
||||||
|
|
||||||
exports.getBalance = function getBalance (cryptoCode) {
|
|
||||||
var lastBalance = lastBalances[cryptoCode]
|
|
||||||
|
|
||||||
return lastBalance
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Trader functions
|
* Trader functions
|
||||||
*/
|
*/
|
||||||
|
|
@ -709,9 +703,10 @@ function checkBalances () {
|
||||||
|
|
||||||
var balances = []
|
var balances = []
|
||||||
cryptoCodes.forEach(function (cryptoCode) {
|
cryptoCodes.forEach(function (cryptoCode) {
|
||||||
var balance = exports.fiatBalance(cryptoCode)
|
var balanceRec = exports.fiatBalance(cryptoCode)
|
||||||
if (!balance) return
|
if (!balanceRec) return
|
||||||
var rec = {fiatBalance: balance, cryptoCode: cryptoCode, fiatCode: deviceCurrency}
|
var rec = {fiatBalance: balanceRec.balance, cryptoCode: cryptoCode,
|
||||||
|
fiatCode: deviceCurrency}
|
||||||
balances.push(rec)
|
balances.push(rec)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -13,8 +13,8 @@ module.exports = {
|
||||||
getFingerprint: getFingerprint
|
getFingerprint: getFingerprint
|
||||||
}
|
}
|
||||||
|
|
||||||
var STALE_TICKER = 10 * 60 * 1000
|
var STALE_TICKER = 3 * 60 * 1000
|
||||||
var STALE_BALANCE = 10 * 60 * 1000
|
var STALE_BALANCE = 3 * 60 * 1000
|
||||||
|
|
||||||
var pids = {}
|
var pids = {}
|
||||||
var reboots = {}
|
var reboots = {}
|
||||||
|
|
@ -47,10 +47,10 @@ function buildBalances () {
|
||||||
|
|
||||||
var _balances = {}
|
var _balances = {}
|
||||||
cryptoCodes.forEach(function (cryptoCode) {
|
cryptoCodes.forEach(function (cryptoCode) {
|
||||||
var balance = plugins.fiatBalance(cryptoCode)
|
var balanceRec = plugins.fiatBalance(cryptoCode)
|
||||||
if (!balance) return logger.warn('No balance for ' + cryptoCode + ' yet')
|
if (!balanceRec) return logger.warn('No balance for ' + cryptoCode + ' yet')
|
||||||
if (Date.now() - balance.timestamp > STALE_BALANCE) return logger.warn('Stale balance for ' + cryptoCode)
|
if (Date.now() - balanceRec.timestamp > STALE_BALANCE) return logger.warn('Stale balance for ' + cryptoCode)
|
||||||
_balances[cryptoCode] = balance
|
_balances[cryptoCode] = balanceRec.balance
|
||||||
})
|
})
|
||||||
|
|
||||||
return _balances
|
return _balances
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue