From f8fca0b3b0c86729e1b652838bc22c2584ca937e Mon Sep 17 00:00:00 2001 From: Nick Date: Tue, 2 Apr 2024 16:28:33 +0330 Subject: [PATCH] address #1071 --- .../accountDetailsFullScreen/index.tsx | 4 ++- .../src/hooks/useBalances.ts | 25 +++++++++++++++---- .../src/popup/account/util.ts | 10 +++----- .../extension-polkagate/src/util/types.ts | 1 + 4 files changed, 28 insertions(+), 12 deletions(-) diff --git a/packages/extension-polkagate/src/fullscreen/accountDetailsFullScreen/index.tsx b/packages/extension-polkagate/src/fullscreen/accountDetailsFullScreen/index.tsx index d309f3219..d79383dba 100644 --- a/packages/extension-polkagate/src/fullscreen/accountDetailsFullScreen/index.tsx +++ b/packages/extension-polkagate/src/fullscreen/accountDetailsFullScreen/index.tsx @@ -116,6 +116,8 @@ export default function AccountDetails (): React.ReactElement { } const totalBalance = getValue('total', balances); + console.log('balances:',balances && JSON.parse(JSON.stringify(balances))) + return parseFloat(amountToHuman(totalBalance, balances.decimal)) * currentPrice; }, [balances, currentPrice, pricesInCurrency]); @@ -227,7 +229,7 @@ export default function AccountDetails (): React.ReactElement { /> } { - setNewBalances({ ...b, ED, chainName, date: Date.now(), decimal, genesisHash: api.genesisHash.toString(), token }); - setRefresh && setRefresh(false); - isFetching.fetching[String(formatted)].balances = false; - isFetching.set(isFetching.fetching); + formatted && api.derive.balances?.all(formatted).then((allBalances) => { + api.query.system.account(formatted).then(({ data: systemBalance }) => { + const frozenBalance = systemBalance.frozen as BN; + + setNewBalances({ + ED, + ...allBalances, + chainName, + date: Date.now(), + decimal: api.registry.chainDecimals[0], + frozenBalance, + genesisHash: api.genesisHash.toString(), + token: api.registry.chainTokens[0] + }); + setRefresh && setRefresh(false); + isFetching.fetching[String(formatted)].balances = false; + isFetching.set(isFetching.fetching); + }).catch(console.error); }).catch(console.error); // eslint-disable-next-line react-hooks/exhaustive-deps }, [api, chain?.genesisHash, chainName, formatted, isFetching.fetching[String(formatted)]?.length, setRefresh]); @@ -190,6 +203,7 @@ export default function useBalances (address: string | undefined, refresh?: bool const balances = { availableBalance: overall.availableBalance.toString(), freeBalance: overall.freeBalance.toString(), + frozenBalance: overall.frozenBalance.toString(), lockedBalance: overall.lockedBalance.toString(), pooledBalance: overall.pooledBalance.toString(), reservedBalance: overall.reservedBalance.toString(), @@ -223,6 +237,7 @@ export default function useBalances (address: string | undefined, refresh?: bool date: savedBalances[chainName].date, decimal: savedBalances[chainName].decimal, freeBalance: new BN(sb.freeBalance), + frozenBalance: new BN(sb.frozenBalance), lockedBalance: new BN(sb.lockedBalance), pooledBalance: new BN(sb.pooledBalance), reservedBalance: new BN(sb.reservedBalance), diff --git a/packages/extension-polkagate/src/popup/account/util.ts b/packages/extension-polkagate/src/popup/account/util.ts index 2543b029f..a3d43c338 100644 --- a/packages/extension-polkagate/src/popup/account/util.ts +++ b/packages/extension-polkagate/src/popup/account/util.ts @@ -31,9 +31,12 @@ export const getValue = (type: string, balances: BalancesInfo | null | undefined return balances?.soloTotal ?? BN_ZERO; case ('balance'): case ('available'): - case ('transferable'): case ('available balance'): return balances.availableBalance; + case ('transferable'): + return balances.reservedBalance.gte(balances.frozenBalance) + ? balances.freeBalance + : balances.freeBalance.sub(balances.frozenBalance.sub(balances.reservedBalance)); case ('reserved'): return balances.reservedBalance; case ('others'): @@ -43,10 +46,6 @@ export const getValue = (type: string, balances: BalancesInfo | null | undefined return balances.freeBalance; case ('reserved balance'): return balances.reservedBalance; - // case ('frozen misc'): - // return balances.frozenMisc; - // case ('frozen fee'): - // return balances.frozenFee; case ('locked'): case ('locked balance'): return balances.lockedBalance; @@ -64,4 +63,3 @@ export const getValue = (type: string, balances: BalancesInfo | null | undefined return undefined; } }; - diff --git a/packages/extension-polkagate/src/util/types.ts b/packages/extension-polkagate/src/util/types.ts index f767e2a86..0e5f5701a 100644 --- a/packages/extension-polkagate/src/util/types.ts +++ b/packages/extension-polkagate/src/util/types.ts @@ -616,6 +616,7 @@ export interface BalancesInfo extends DeriveBalancesAll { token: string; date: number; pooledBalance?: BN; + frozenBalance: BN; soloTotal?: BN; genesisHash: string; ED: BN;