feat: add more fallback tickers

This commit is contained in:
siiky 2023-12-06 16:34:44 +00:00
parent 30dffce655
commit 4318fa5a86

View file

@ -14,7 +14,8 @@ const FETCH_INTERVAL = 58000
const PEGGED_FIAT_CURRENCIES = { NAD: 'ZAR' } const PEGGED_FIAT_CURRENCIES = { NAD: 'ZAR' }
const FALLBACK_TICKER = 'bitpay' const getFallbackTicker = ticker =>
_.difference(['bitpay', 'kraken', 'bitstamp'], [ticker])[0]
const hasRatesOrReject = emsg => r => _.get(['rates'], r) ? const hasRatesOrReject = emsg => r => _.get(['rates'], r) ?
r : r :
@ -31,16 +32,16 @@ const _getRates = (settings, fiatCode, cryptoCode) => Promise.resolve()
.then(() => { .then(() => {
const ticker = configManager.getWalletSettings(cryptoCode, settings.config).ticker const ticker = configManager.getWalletSettings(cryptoCode, settings.config).ticker
const market = [cryptoCode, fiatCode].join('-') const market = [cryptoCode, fiatCode].join('-')
const isMainFallback = ticker === FALLBACK_TICKER const fallbackTicker = getFallbackTicker(ticker)
const emsg = isMainFallback ? const emsg = fallbackTicker ?
"Failed to get ticker rates" : "Failed to get rates with configured ticker, trying fallback" :
"Failed to get rates with configured ticker, trying fallback" "Failed to get ticker rates"
return get1(market, fiatCode, cryptoCode, ticker, emsg) return get1(market, fiatCode, cryptoCode, ticker, emsg)
.catch(err => { .catch(err => {
logger.error(err) logger.error(err)
return isMainFallback ? return fallbackTicker ?
lastRate[market] : get1(market, fiatCode, cryptoCode, fallbackTicker, "Failed to get rates with fallback ticker") :
get1(market, fiatCode, cryptoCode, FALLBACK_TICKER, "Failed to get rates with fallback ticker") lastRate[market]
}) })
.then(hasRatesOrReject("Failed to get ticker rates")) .then(hasRatesOrReject("Failed to get ticker rates"))
}) })