44import type { Observable } from 'rxjs' ;
55import type { ApiInterfaceRx , QueryableStorageMultiArg } from '@polkadot/api/types' ;
66import type { Option , Vec } from '@polkadot/types' ;
7- import type { AccountId , AccountIndex , Address , Balance , BalanceLock , BalanceLockTo212 , BlockNumber , VestingInfo , VestingSchedule } from '@polkadot/types/interfaces' ;
7+ import type { AccountId , AccountIndex , Address , Balance , BalanceLockTo212 , BlockNumber , VestingSchedule } from '@polkadot/types/interfaces' ;
8+ import type { PalletBalancesBalanceLock , PalletVestingVestingInfo } from '@polkadot/types/lookup' ;
89import type { DeriveBalancesAccount , DeriveBalancesAccountData , DeriveBalancesAll , DeriveBalancesAllAccountData } from '../types' ;
910
1011import { combineLatest , map , of , switchMap } from 'rxjs' ;
@@ -13,15 +14,15 @@ import { BN, bnMax, isFunction } from '@polkadot/util';
1314
1415import { memo } from '../util' ;
1516
16- type BalanceLocksEntry = Vec < BalanceLock | BalanceLockTo212 > ;
17+ type BalanceLocksEntry = Vec < PalletBalancesBalanceLock | BalanceLockTo212 > ;
1718type BalanceLocks = BalanceLocksEntry [ ] ;
18- type ResultBalance = [ VestingInfo | null , ( ( BalanceLock | BalanceLockTo212 ) [ ] ) [ ] ] ;
19+ type ResultBalance = [ PalletVestingVestingInfo | null , ( ( PalletBalancesBalanceLock | BalanceLockTo212 ) [ ] ) [ ] ] ;
1920type Result = [ DeriveBalancesAccount , BlockNumber , ResultBalance ] ;
2021
2122interface AllLocked {
2223 allLocked : boolean ,
2324 lockedBalance : Balance ,
24- lockedBreakdown : ( BalanceLock | BalanceLockTo212 ) [ ] ,
25+ lockedBreakdown : ( PalletBalancesBalanceLock | BalanceLockTo212 ) [ ] ,
2526 vestingLocked : Balance
2627}
2728
@@ -33,9 +34,9 @@ type DeriveCustomLocks = ApiInterfaceRx['derive'] & {
3334
3435const VESTING_ID = '0x76657374696e6720' ;
3536
36- function calcLocked ( api : ApiInterfaceRx , bestNumber : BlockNumber , locks : ( BalanceLock | BalanceLockTo212 ) [ ] ) : AllLocked {
37+ function calcLocked ( api : ApiInterfaceRx , bestNumber : BlockNumber , locks : ( PalletBalancesBalanceLock | BalanceLockTo212 ) [ ] ) : AllLocked {
3738 let lockedBalance = api . registry . createType ( 'Balance' ) ;
38- let lockedBreakdown : ( BalanceLock | BalanceLockTo212 ) [ ] = [ ] ;
39+ let lockedBreakdown : ( PalletBalancesBalanceLock | BalanceLockTo212 ) [ ] = [ ] ;
3940 let vestingLocked = api . registry . createType ( 'Balance' ) ;
4041 let allLocked = false ;
4142
@@ -56,7 +57,7 @@ function calcLocked (api: ApiInterfaceRx, bestNumber: BlockNumber, locks: (Balan
5657 return { allLocked, lockedBalance, lockedBreakdown, vestingLocked } ;
5758}
5859
59- function calcShared ( api : ApiInterfaceRx , bestNumber : BlockNumber , data : DeriveBalancesAccountData , locks : ( BalanceLock | BalanceLockTo212 ) [ ] ) : DeriveBalancesAllAccountData {
60+ function calcShared ( api : ApiInterfaceRx , bestNumber : BlockNumber , data : DeriveBalancesAccountData , locks : ( PalletBalancesBalanceLock | BalanceLockTo212 ) [ ] ) : DeriveBalancesAllAccountData {
6061 const { allLocked, lockedBalance, lockedBreakdown, vestingLocked } = calcLocked ( api , bestNumber , locks ) ;
6162
6263 return {
@@ -73,7 +74,7 @@ function calcBalances (api: ApiInterfaceRx, [data, bestNumber, [vesting, allLock
7374 // Calculate the vesting balances,
7475 // - offset = balance locked at startingBlock
7576 // - perBlock is the unlock amount
76- const emptyVest = api . registry . createType ( 'VestingInfo' ) ;
77+ const emptyVest = api . registry . createType < PalletVestingVestingInfo > ( 'VestingInfo' ) ;
7778 const { locked : vestingTotal , perBlock, startingBlock } = vesting || emptyVest ;
7879 const isStarted = bestNumber . gt ( startingBlock ) ;
7980 const vestedNow = isStarted ? perBlock . mul ( bestNumber . sub ( startingBlock ) ) : new BN ( 0 ) ;
@@ -96,7 +97,7 @@ function calcBalances (api: ApiInterfaceRx, [data, bestNumber, [vesting, allLock
9697
9798// old
9899function queryOld ( api : ApiInterfaceRx , accountId : AccountId ) : Observable < ResultBalance > {
99- return api . queryMulti < [ Vec < BalanceLock > , Option < VestingSchedule > ] > ( [
100+ return api . queryMulti < [ Vec < PalletBalancesBalanceLock > , Option < VestingSchedule > ] > ( [
100101 [ api . query . balances . locks , accountId ] ,
101102 [ api . query . balances . vesting , accountId ]
102103 ] ) . pipe (
@@ -106,7 +107,7 @@ function queryOld (api: ApiInterfaceRx, accountId: AccountId): Observable<Result
106107 if ( optVesting . isSome ) {
107108 const { offset : locked , perBlock, startingBlock } = optVesting . unwrap ( ) ;
108109
109- vestingNew = api . registry . createType ( 'VestingInfo' , { locked, perBlock, startingBlock } ) ;
110+ vestingNew = api . registry . createType < PalletVestingVestingInfo > ( 'VestingInfo' , { locked, perBlock, startingBlock } ) ;
110111 }
111112
112113 return [ vestingNew , [ locks ] ] ;
@@ -126,20 +127,20 @@ function queryCurrent (api: ApiInterfaceRx, accountId: AccountId, balanceInstanc
126127
127128 return (
128129 api . query . vesting ?. vesting
129- ? api . queryMulti < [ Option < VestingInfo > , ...BalanceLocks ] > ( [ [ api . query . vesting . vesting , accountId ] , ...queries ] )
130+ ? api . queryMulti < [ Option < PalletVestingVestingInfo > , ...BalanceLocks ] > ( [ [ api . query . vesting . vesting , accountId ] , ...queries ] )
130131 // TODO We need to check module instances here as well, not only the balances module
131132 : queries . length
132- ? api . queryMulti < [ ...( Vec < BalanceLock > ) [ ] ] > ( queries ) . pipe (
133- map ( ( r ) : [ Option < VestingInfo > , ...BalanceLocks ] => [ api . registry . createType ( 'Option<VestingInfo>' ) , ...r ] )
133+ ? api . queryMulti < [ ...( Vec < PalletBalancesBalanceLock > ) [ ] ] > ( queries ) . pipe (
134+ map ( ( r ) : [ Option < PalletVestingVestingInfo > , ...BalanceLocks ] => [ api . registry . createType ( 'Option<VestingInfo>' ) , ...r ] )
134135 )
135- : of ( [ api . registry . createType ( 'Option<VestingInfo>' ) ] as [ Option < VestingInfo > ] )
136+ : of ( [ api . registry . createType ( 'Option<VestingInfo>' ) ] as [ Option < PalletVestingVestingInfo > ] )
136137 ) . pipe (
137138 map ( ( [ opt , ...locks ] ) : ResultBalance => {
138139 let offset = - 1 ;
139140
140141 return [
141142 opt . unwrapOr ( null ) ,
142- lockEmpty . map ( ( e ) => e ? api . registry . createType ( 'Vec<BalanceLock>' ) : locks [ ++ offset ] )
143+ lockEmpty . map ( ( e ) => e ? api . registry . createType < Vec < PalletBalancesBalanceLock > > ( 'Vec<BalanceLock>' ) : locks [ ++ offset ] )
143144 ] ;
144145 } )
145146 ) ;
0 commit comments