@@ -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