Skip to content

Commit 53d4129

Browse files
committed
Remove exchange rate retry
With the cache, and periodic looping, this isn't really necessary and can actually slow down rate updates
1 parent 39363b3 commit 53d4129

File tree

1 file changed

+87
-89
lines changed

1 file changed

+87
-89
lines changed

src/actions/ExchangeRateActions.ts

Lines changed: 87 additions & 89 deletions
Original file line numberDiff line numberDiff line change
@@ -310,103 +310,101 @@ async function fetchExchangeRates(
310310

311311
const requests = convertToRatesParams(cryptoPairMap, fiatPairMap)
312312
for (const query of requests) {
313-
for (let attempt = 0; attempt < 5; ++attempt) {
314-
const options = {
315-
method: 'POST',
316-
headers: { 'Content-Type': 'application/json' },
317-
body: JSON.stringify(query)
318-
}
319-
try {
320-
const response = await fetchRates('v3/rates', options)
321-
if (response.ok) {
322-
const json = await response.json()
323-
const cleanedRates = asRatesParams(json)
324-
const targetFiat = fixFiatCurrencyCode(cleanedRates.targetFiat)
325-
326-
for (const cryptoRate of cleanedRates.crypto) {
327-
const { asset, isoDate, rate } = cryptoRate
328-
if (rate == null) continue
329-
330-
const { pluginId, tokenId } = asset
331-
const safeTokenId = tokenId ?? ''
332-
333-
rates.crypto[pluginId] ??= {}
334-
rates.crypto[pluginId][safeTokenId] ??= {}
335-
rates.crypto[pluginId][safeTokenId][targetFiat] ??= {
336-
current: 0,
337-
yesterday: 0,
338-
yesterdayTimestamp: 0,
339-
expiration: 0
340-
}
313+
const options = {
314+
method: 'POST',
315+
headers: { 'Content-Type': 'application/json' },
316+
body: JSON.stringify(query)
317+
}
318+
try {
319+
const response = await fetchRates('v3/rates', options)
320+
if (response.ok) {
321+
const json = await response.json()
322+
const cleanedRates = asRatesParams(json)
323+
const targetFiat = fixFiatCurrencyCode(cleanedRates.targetFiat)
324+
325+
for (const cryptoRate of cleanedRates.crypto) {
326+
const { asset, isoDate, rate } = cryptoRate
327+
if (rate == null) continue
328+
329+
const { pluginId, tokenId } = asset
330+
const safeTokenId = tokenId ?? ''
331+
332+
rates.crypto[pluginId] ??= {}
333+
rates.crypto[pluginId][safeTokenId] ??= {}
334+
rates.crypto[pluginId][safeTokenId][targetFiat] ??= {
335+
current: 0,
336+
yesterday: 0,
337+
yesterdayTimestamp: 0,
338+
expiration: 0
339+
}
341340

342-
const rateObj = rates.crypto[pluginId][safeTokenId][targetFiat]
343-
344-
const isHistorical =
345-
isoDate != null && isoDate.getTime() < now - ONE_HOUR
346-
if (isHistorical) {
347-
const dateTimestamp = isoDate.getTime()
348-
const yesterdayTargetTimestamp = Date.parse(yesterday)
349-
const yesterdayRateTimestamp = rateObj.yesterdayTimestamp
350-
351-
// update yesterday rate if we find one closer than we have
352-
if (
353-
Math.abs(yesterdayTargetTimestamp - dateTimestamp) <
354-
Math.abs(yesterdayTargetTimestamp - yesterdayRateTimestamp)
355-
) {
356-
rates.crypto[pluginId][safeTokenId][
357-
targetFiat
358-
].yesterdayTimestamp = yesterdayTimestamp
359-
rateObj.yesterday = rate
360-
}
361-
} else {
362-
rateObj.current = rate
341+
const rateObj = rates.crypto[pluginId][safeTokenId][targetFiat]
342+
343+
const isHistorical =
344+
isoDate != null && isoDate.getTime() < now - ONE_HOUR
345+
if (isHistorical) {
346+
const dateTimestamp = isoDate.getTime()
347+
const yesterdayTargetTimestamp = Date.parse(yesterday)
348+
const yesterdayRateTimestamp = rateObj.yesterdayTimestamp
349+
350+
// update yesterday rate if we find one closer than we have
351+
if (
352+
Math.abs(yesterdayTargetTimestamp - dateTimestamp) <
353+
Math.abs(yesterdayTargetTimestamp - yesterdayRateTimestamp)
354+
) {
355+
rates.crypto[pluginId][safeTokenId][
356+
targetFiat
357+
].yesterdayTimestamp = yesterdayTimestamp
358+
rateObj.yesterday = rate
363359
}
360+
} else {
361+
rateObj.current = rate
362+
}
364363

365-
rateObj.expiration = rateExpiration
364+
rateObj.expiration = rateExpiration
365+
}
366+
for (const fiatRate of cleanedRates.fiat) {
367+
const { isoDate, rate } = fiatRate
368+
const fiatCode = fixFiatCurrencyCode(fiatRate.fiatCode)
369+
if (rate == null) continue
370+
371+
rates.fiat[fiatCode] ??= {}
372+
rates.fiat[fiatCode][targetFiat] ??= {
373+
current: 0,
374+
yesterday: 0,
375+
yesterdayTimestamp: 0,
376+
expiration: 0
366377
}
367-
for (const fiatRate of cleanedRates.fiat) {
368-
const { isoDate, rate } = fiatRate
369-
const fiatCode = fixFiatCurrencyCode(fiatRate.fiatCode)
370-
if (rate == null) continue
371-
372-
rates.fiat[fiatCode] ??= {}
373-
rates.fiat[fiatCode][targetFiat] ??= {
374-
current: 0,
375-
yesterday: 0,
376-
yesterdayTimestamp: 0,
377-
expiration: 0
378-
}
379-
const rateObj = rates.fiat[fiatCode][targetFiat]
380-
381-
const isHistorical =
382-
isoDate != null && isoDate.getTime() < now - ONE_HOUR
383-
if (isHistorical) {
384-
const dateTimestamp = isoDate.getTime()
385-
const yesterdayTargetTimestamp = Date.parse(yesterday)
386-
const yesterdayRateTimestamp = rateObj.yesterdayTimestamp
387-
388-
// update yesterday rate if we find one closer than we have
389-
if (
390-
Math.abs(yesterdayTargetTimestamp - dateTimestamp) <
391-
Math.abs(yesterdayTargetTimestamp - yesterdayRateTimestamp)
392-
) {
393-
rates.fiat[fiatCode][targetFiat].yesterdayTimestamp =
394-
yesterdayTimestamp
395-
rateObj.yesterday = rate
396-
}
397-
} else {
398-
rateObj.current = rate
378+
const rateObj = rates.fiat[fiatCode][targetFiat]
379+
380+
const isHistorical =
381+
isoDate != null && isoDate.getTime() < now - ONE_HOUR
382+
if (isHistorical) {
383+
const dateTimestamp = isoDate.getTime()
384+
const yesterdayTargetTimestamp = Date.parse(yesterday)
385+
const yesterdayRateTimestamp = rateObj.yesterdayTimestamp
386+
387+
// update yesterday rate if we find one closer than we have
388+
if (
389+
Math.abs(yesterdayTargetTimestamp - dateTimestamp) <
390+
Math.abs(yesterdayTargetTimestamp - yesterdayRateTimestamp)
391+
) {
392+
rates.fiat[fiatCode][targetFiat].yesterdayTimestamp =
393+
yesterdayTimestamp
394+
rateObj.yesterday = rate
399395
}
400-
401-
rateObj.expiration = rateExpiration
396+
} else {
397+
rateObj.current = rate
402398
}
403-
break
399+
400+
rateObj.expiration = rateExpiration
404401
}
405-
} catch (error: unknown) {
406-
console.log(
407-
`buildExchangeRates error querying rates server ${String(error)}`
408-
)
402+
break
409403
}
404+
} catch (error: unknown) {
405+
console.log(
406+
`buildExchangeRates error querying rates server ${String(error)}`
407+
)
410408
}
411409
}
412410

0 commit comments

Comments
 (0)