From fafac16742c125d8b93efd3449f4f17fc3e95c5d Mon Sep 17 00:00:00 2001 From: Josh Harvey Date: Wed, 12 Jul 2017 20:38:20 +0300 Subject: [PATCH] better handling of ticker errors --- lib/plugins.js | 2 ++ lib/ticker.js | 13 +++++++++++++ 2 files changed, 15 insertions(+) diff --git a/lib/plugins.js b/lib/plugins.js index b7f10484..d72f2691 100644 --- a/lib/plugins.js +++ b/lib/plugins.js @@ -38,6 +38,8 @@ function plugins (settings, deviceId) { const cryptoConfig = configManager.scoped(cryptoCode, deviceId, settings.config) const rateRec = tickers[i] + if (!rateRec) return + const cashInCommission = BN(1).add(BN(cryptoConfig.cashInCommission).div(100)) const cashOutCommission = _.isNil(cryptoConfig.cashOutCommission) diff --git a/lib/ticker.js b/lib/ticker.js index 50d79e3d..3e9e6d3e 100644 --- a/lib/ticker.js +++ b/lib/ticker.js @@ -1,6 +1,9 @@ const mem = require('mem') const configManager = require('./config-manager') const ph = require('./plugin-helper') +const logger = require('./logger') + +const lastRate = {} const FETCH_INTERVAL = 10000 function getRates (settings, fiatCode, cryptoCode) { @@ -12,11 +15,21 @@ function getRates (settings, fiatCode, cryptoCode) { const account = settings.accounts[plugin] const ticker = ph.load(ph.TICKER, plugin) + const market = [cryptoCode, fiatCode].join('-') + return ticker.ticker(account, fiatCode, cryptoCode) .then(r => ({ rates: r.rates, timestamp: Date.now() })) + .then(r => { + lastRate[market] = r + return r + }) + .catch(err => { + logger.error(err) + return lastRate[market] + }) }) }