@@ -577,33 +577,42 @@ export const enhanceHistory = ({
577
577
txids,
578
578
} ) ;
579
579
580
- export const getAccountTokensFiatBalance = (
580
+ export const areTokenFiatRatesLoading = (
581
581
account : Account ,
582
582
localCurrency : string ,
583
- rates ?: RatesByKey ,
584
- tokens ?: Account [ 'tokens' ] ,
585
- ) => {
586
- let totalBalance = new BigNumber ( 0 ) ;
587
-
588
- // sum fiat value of all tokens
589
- tokens ?. forEach ( t => {
583
+ rates : RatesByKey ,
584
+ ) =>
585
+ ( account . tokens ?? [ ] ) . some ( token => {
590
586
const tokenFiatRateKey = getFiatRateKey (
591
587
account . symbol ,
592
588
localCurrency as FiatCurrencyCode ,
593
- t . contract as TokenAddress ,
589
+ token . contract as TokenAddress ,
594
590
) ;
595
591
596
- const tokenFiatRate = rates ?. [ tokenFiatRateKey ] ;
597
- if ( tokenFiatRate ?. rate && t . balance ) {
598
- const tokenBalance = toFiatCurrency ( t . balance , tokenFiatRate . rate , 2 ) ;
599
- if ( tokenBalance ) {
600
- totalBalance = totalBalance . plus ( tokenBalance ) ;
601
- }
602
- }
592
+ return rates ?. [ tokenFiatRateKey ] ?. isLoading ;
603
593
} ) ;
604
594
605
- return totalBalance . toFixed ( ) ;
606
- } ;
595
+ export const getAccountTokensFiatBalance = (
596
+ account : Account ,
597
+ localCurrency : string ,
598
+ rates ?: RatesByKey ,
599
+ tokens ?: Account [ 'tokens' ] ,
600
+ ) =>
601
+ ( tokens ?? [ ] )
602
+ . reduce ( ( total , token ) => {
603
+ const tokenFiatRateKey = getFiatRateKey (
604
+ account . symbol ,
605
+ localCurrency as FiatCurrencyCode ,
606
+ token . contract as TokenAddress ,
607
+ ) ;
608
+
609
+ const tokenFiatRate = rates ?. [ tokenFiatRateKey ] ;
610
+
611
+ return tokenFiatRate ?. rate && token . balance
612
+ ? total . plus ( toFiatCurrency ( token . balance , tokenFiatRate . rate , 2 ) ?? 0 )
613
+ : total ;
614
+ } , new BigNumber ( 0 ) )
615
+ . toFixed ( ) ;
607
616
608
617
export const getAssetTokensFiatBalance = (
609
618
accounts : Account [ ] ,
0 commit comments