diff --git a/src/status_im/contexts/wallet/common/utils.cljs b/src/status_im/contexts/wallet/common/utils.cljs index 37c0bc325e..63fc0f139e 100644 --- a/src/status_im/contexts/wallet/common/utils.cljs +++ b/src/status_im/contexts/wallet/common/utils.cljs @@ -90,10 +90,13 @@ (defn total-token-fiat-value "Returns the total token fiat value taking into account all token's chains." [currency {:keys [market-values-per-currency] :as token}] - (let [price (get-in market-values-per-currency - [currency :price] - (get-in market-values-per-currency - [constants/profile-default-currency :price])) + (let [price (or (get-in market-values-per-currency + [currency :price]) + (get-in market-values-per-currency + [constants/profile-default-currency :price]) + ;; NOTE: adding fallback value (zero) in case prices are + ;; unavailable and to prevent crash on calculating fiat value + 0) total-units-in-all-chains (total-token-units-in-all-chains token)] (money/crypto->fiat total-units-in-all-chains price))) diff --git a/src/status_im/contexts/wallet/data_store.cljs b/src/status_im/contexts/wallet/data_store.cljs index 6c61eb911f..fe582d0c07 100644 --- a/src/status_im/contexts/wallet/data_store.cljs +++ b/src/status_im/contexts/wallet/data_store.cljs @@ -57,11 +57,18 @@ (update :balances-per-chain update-vals #(update % :raw-balance money/bignumber)) (update :balances-per-chain update-keys (comp utils.number/parse-int name)))) +(defn- remove-tokens-with-empty-values + [tokens] + (remove + #(or (string/blank? (:symbol %)) (string/blank? (:name %))) + tokens)) + (defn rpc->tokens [tokens] (-> tokens (update-keys name) (update-vals #(cske/transform-keys csk/->kebab-case %)) + (update-vals remove-tokens-with-empty-values) (update-vals #(mapv rpc->balances-per-chain %)))) (defn rpc->network