From 581a023a2a4ed2e49ae129704eeec09168ed6850 Mon Sep 17 00:00:00 2001 From: robhyrk Date: Tue, 13 Aug 2024 15:05:22 -0400 Subject: [PATCH] fix: portfolio balance calc, apply checks for undefined ffrozen balances --- lib/hooks/queries/useBalance.ts | 6 +++--- lib/hooks/queries/useCurrencyBalances.ts | 6 +++--- lib/util/calc-free-balance.ts | 5 ++++- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/lib/hooks/queries/useBalance.ts b/lib/hooks/queries/useBalance.ts index 7ef4eb370..c5c448961 100644 --- a/lib/hooks/queries/useBalance.ts +++ b/lib/hooks/queries/useBalance.ts @@ -49,9 +49,9 @@ export const fetchAssetBalance = async ( if (IOZtgAssetId.is(assetId)) { const { data } = await api.query.system.account(address); return calculateFreeBalance( - data.free.toString(), - data.miscFrozen.toString(), - data.feeFrozen.toString(), + data?.free?.toString(), + data?.miscFrozen?.toString(), + data?.feeFrozen?.toString(), ); } else if (IOCurrencyAsset.is(assetId)) { if ( diff --git a/lib/hooks/queries/useCurrencyBalances.ts b/lib/hooks/queries/useCurrencyBalances.ts index 9c77f8e14..66a738490 100644 --- a/lib/hooks/queries/useCurrencyBalances.ts +++ b/lib/hooks/queries/useCurrencyBalances.ts @@ -59,9 +59,9 @@ export const useCurrencyBalances = (address: string) => { const { data } = await sdk.api.query.system.account(address); const nativeBalance = calculateFreeBalance( - data.free.toString(), - data.miscFrozen.toString(), - data.feeFrozen.toString(), + data?.free?.toString(), + data?.miscFrozen?.toString(), + data?.feeFrozen?.toString(), ); const apisArray = Object.values(apis ?? {}); diff --git a/lib/util/calc-free-balance.ts b/lib/util/calc-free-balance.ts index fda26592c..c3f2fad4f 100644 --- a/lib/util/calc-free-balance.ts +++ b/lib/util/calc-free-balance.ts @@ -5,6 +5,9 @@ export const calculateFreeBalance = ( miscFrozen: string, feeFrozen: string, ) => { - const maxFrozen = Decimal.max(miscFrozen, feeFrozen); + const maxFrozen = Decimal.max( + miscFrozen ? miscFrozen : 0, + feeFrozen ? feeFrozen : 0, + ); return new Decimal(free).minus(maxFrozen); };