fix: forex on EUR default exchanges

This commit is contained in:
Rafael Taranto 2025-05-06 09:45:39 +01:00
parent 8c6c3b258a
commit 297a3d76fb
2 changed files with 7 additions and 7 deletions

View file

@ -11,19 +11,19 @@ const API_QUEUE = [
{ api: getCoinCapFxRate, name: 'coincap', fiatCodeProperty: 'symbol', rateProperty: 'rateUsd' }
]
function getBitPayFxRate (fiatCode, fiatCodeProperty, rateProperty) {
function getBitPayFxRate (fiatCode, defaultFiatMarket, fiatCodeProperty, rateProperty) {
return axios.get('https://bitpay.com/rates')
.then(response => {
const fxRates = response.data.data
const usdRate = findCurrencyRates(fxRates, 'USD', fiatCodeProperty, rateProperty)
const fxRate = findCurrencyRates(fxRates, fiatCode, fiatCodeProperty, rateProperty).div(usdRate)
const defaultFiatRate = findCurrencyRates(fxRates, defaultFiatMarket, fiatCodeProperty, rateProperty)
const fxRate = findCurrencyRates(fxRates, fiatCode, fiatCodeProperty, rateProperty).div(defaultFiatRate)
return {
fxRate
}
})
}
function getCoinCapFxRate (fiatCode, fiatCodeProperty, rateProperty) {
function getCoinCapFxRate (fiatCode, defaultFiatMarket, fiatCodeProperty, rateProperty) {
return axios.get('https://api.coincap.io/v2/rates')
.then(response => {
const fxRates = response.data.data
@ -40,7 +40,7 @@ function findCurrencyRates (fxRates, fiatCode, fiatCodeProperty, rateProperty) {
return new BN(rates[rateProperty].toString())
}
const getRate = (retries = 1, fiatCode) => {
const getRate = (retries = 1, fiatCode, defaultFiatMarket) => {
const selected = _.first(API_QUEUE).name
const activeAPI = _.first(API_QUEUE).api
const fiatCodeProperty = _.first(API_QUEUE).fiatCodeProperty
@ -48,7 +48,7 @@ const getRate = (retries = 1, fiatCode) => {
if (!activeAPI) throw new Error(`FOREX api ${selected} does not exist.`)
return activeAPI(fiatCode, fiatCodeProperty, rateProperty)
return activeAPI(fiatCode, defaultFiatMarket, fiatCodeProperty, rateProperty)
.catch(() => {
// Switch service
const erroredService = API_QUEUE.shift()

View file

@ -30,7 +30,7 @@ function ticker (fiatCode, cryptoCode, tickerName) {
return getCurrencyRates(ticker, fiatCode, cryptoCode)
}
return getRate(RETRIES, fiatCode)
return getRate(RETRIES, tickerName, defaultFiatMarket(tickerName))
.then(({ fxRate }) => {
try {
return getCurrencyRates(ticker, defaultFiatMarket(tickerName), cryptoCode)