1
- // Copyright 2019-2024 @polkadot/extension-polkagate authors & contributors
1
+ // Copyright 2019-2025 @polkadot/extension-polkagate authors & contributors
2
2
// SPDX-License-Identifier: Apache-2.0
3
3
4
4
// @ts -nocheck
@@ -13,18 +13,24 @@ import { useCallback, useEffect, useMemo, useState } from 'react';
13
13
14
14
import { BN_ZERO } from '@polkadot/util' ;
15
15
16
- import { PROXY_CHAINS } from '../util/constants' ;
16
+ import { MIGRATED_NOMINATION_POOLS_CHAINS , PROXY_CHAINS } from '../util/constants' ;
17
17
import useActiveRecoveries from './useActiveRecoveries' ;
18
- import { useInfo } from '.' ;
18
+ import { useAccountAssets , useInfo } from '.' ;
19
19
20
- type Item = 'identity' | 'proxy' | 'bounty' | 'recovery' | 'referenda' | 'index' | 'society' | 'multisig' | 'preimage' ;
20
+ type Item = 'identity' | 'proxy' | 'bounty' | 'recovery' | 'referenda' | 'index' | 'society' | 'multisig' | 'preimage' | 'pooledBalance' ;
21
21
export type Reserved = { [ key in Item ] ?: Balance } ;
22
22
23
23
export default function useReservedDetails ( address : string | undefined ) : Reserved {
24
24
const { api, formatted, genesisHash } = useInfo ( address ) ;
25
25
const activeRecoveries = useActiveRecoveries ( api ) ;
26
+ const accountAssets = useAccountAssets ( address ) ;
27
+
26
28
const [ reserved , setReserved ] = useState < Reserved > ( { } ) ;
27
29
30
+ const maybePooledBalance = useMemo ( ( ) =>
31
+ accountAssets ?. find ( ( balance ) => balance . genesisHash === genesisHash ) ?. pooledBalance
32
+ , [ accountAssets , genesisHash ] ) ;
33
+
28
34
const activeLost = useMemo ( ( ) =>
29
35
activeRecoveries && formatted
30
36
? activeRecoveries . filter ( ( active ) => active . lost === String ( formatted ) ) . at ( - 1 ) ?? null
@@ -274,10 +280,21 @@ export default function useReservedDetails (address: string | undefined): Reserv
274
280
}
275
281
} ) . catch ( console . error ) ;
276
282
}
283
+
284
+ /** handle pooleBalance as reserved */
285
+ if ( maybePooledBalance && MIGRATED_NOMINATION_POOLS_CHAINS . includes ( genesisHash ) ) {
286
+ if ( ! maybePooledBalance . isZero ( ) ) {
287
+ setReserved ( ( prev ) => {
288
+ prev . pooledBalance = toBalance ( maybePooledBalance ) ;
289
+
290
+ return prev ;
291
+ } ) ;
292
+ }
293
+ }
277
294
} catch ( e ) {
278
- console . error ( 'Fatal error while fetching reserved details:' , e )
295
+ console . error ( 'Fatal error while fetching reserved details:' , e ) ;
279
296
}
280
- } , [ activeLost ?. deposit , api , formatted , genesisHash , toBalance ] ) ;
297
+ } , [ activeLost ?. deposit , api , formatted , genesisHash , maybePooledBalance , toBalance ] ) ;
281
298
282
299
useEffect ( ( ) => {
283
300
setReserved ( { } ) ;
0 commit comments