From c80f92c227cd659fd2b767e195f960a4e589486f Mon Sep 17 00:00:00 2001 From: Josh Harvey Date: Thu, 8 Dec 2016 00:13:59 +0200 Subject: [PATCH] don't trade if no exchange --- lib/exchange.js | 14 ++++++++++++-- lib/plugins.js | 8 +++++--- lib/ticker.js | 3 +++ 3 files changed, 20 insertions(+), 5 deletions(-) diff --git a/lib/exchange.js b/lib/exchange.js index 6005e08f..d396d863 100644 --- a/lib/exchange.js +++ b/lib/exchange.js @@ -8,11 +8,16 @@ function noExchangeError (cryptoCode) { return err } +function lookupExchange (cryptoCode) { + const settings = settingsLoader.settings() + return configManager.cryptoScoped(cryptoCode, settings.config).exchange +} + function fetchExchange (cryptoCode) { return Promise.resolve() .then(() => { const settings = settingsLoader.settings() - const plugin = configManager.cryptoScoped(cryptoCode, settings.config).exchange + const plugin = lookupExchange(cryptoCode) if (!plugin) throw noExchangeError(cryptoCode) const account = settings.accounts[plugin] const exchange = require('lamassu-' + plugin) @@ -31,7 +36,12 @@ function sell (cryptoAtoms, fiatCode, cryptoCode) { .then(r => r.exchange.sell(r.account, cryptoAtoms, fiatCode, cryptoCode)) } +function active (fiatCode, cryptoCode) { + return !!lookupExchange(cryptoCode) +} + module.exports = { buy, - sell + sell, + active } diff --git a/lib/plugins.js b/lib/plugins.js index a2fa6ed9..d0e1a730 100644 --- a/lib/plugins.js +++ b/lib/plugins.js @@ -162,6 +162,8 @@ function trade (deviceId, rawTrade) { .then(() => { const market = [fiatCode, cryptoCode].join('') + if (!exchange.active(cryptoCode)) return + logger.debug('[%s] Pushing trade: %d', market, cryptoAtoms) if (!tradesQueues[market]) tradesQueues[market] = [] tradesQueues[market].push({ @@ -409,6 +411,8 @@ function executeTrades () { } function executeTradesForMarket (settings, fiatCode, cryptoCode) { + if (!exchange.active(cryptoCode)) return + const market = [fiatCode, cryptoCode].join('') logger.debug('[%s] checking for trades', market) @@ -489,9 +493,7 @@ function checkNotification () { .then(results => { if (results && results.length > 0) logger.debug('Successfully sent alerts') }) - .catch(err => { - logger.error(err) - }) + .catch(logger.error) } function checkDeviceBalances (deviceId) { diff --git a/lib/ticker.js b/lib/ticker.js index deeab4da..446afc33 100644 --- a/lib/ticker.js +++ b/lib/ticker.js @@ -9,6 +9,9 @@ function getRates (fiatCode, cryptoCode) { const settings = settingsLoader.settings() const config = settings.config const plugin = configManager.cryptoScoped(cryptoCode, config).ticker + + if (!plugin) throw new Error('No ticker plugin defined') + const account = settings.accounts[plugin] const ticker = require('lamassu-' + plugin)