@@ -90,6 +90,7 @@ export class AccountsBalanceInfoService extends AbstractService {
9090 miscFrozen : 'miscFrozen does not exist for this runtime' ,
9191 feeFrozen : 'feeFrozen does not exist for this runtime' ,
9292 frozen : 'frozen does not exist for this runtime' ,
93+ transferable : 'transferable formula not supported for this runtime' ,
9394 locks : this . inDenominationLocks ( denominate , locks , decimal ) ,
9495 } ;
9596 } else {
@@ -106,11 +107,15 @@ export class AccountsBalanceInfoService extends AbstractService {
106107
107108 const { data, nonce } = accountInfo ;
108109
109- let free , reserved , feeFrozen , miscFrozen , frozen ;
110+ let free , reserved , feeFrozen , miscFrozen , frozen , transferable ;
110111 if ( accountInfo . data ?. frozen ) {
112+ const deriveData = await this . api . derive . balances . all ( address ) ;
111113 free = data . free ;
112114 reserved = data . reserved ;
113115 frozen = data . frozen ;
116+ transferable = deriveData . transferable
117+ ? deriveData . transferable
118+ : 'transferable formula not supported for this runtime' ;
114119 miscFrozen = 'miscFrozen does not exist for this runtime' ;
115120 feeFrozen = 'feeFrozen does not exist for this runtime' ;
116121 } else {
@@ -119,6 +124,7 @@ export class AccountsBalanceInfoService extends AbstractService {
119124 reserved = tmpData . reserved ;
120125 feeFrozen = tmpData . feeFrozen ;
121126 miscFrozen = tmpData . miscFrozen ;
127+ transferable = 'transferable formula not supported for this runtime' ;
122128 frozen = 'frozen does not exist for this runtime' ;
123129 }
124130
@@ -138,6 +144,8 @@ export class AccountsBalanceInfoService extends AbstractService {
138144 typeof miscFrozen === 'string' ? miscFrozen : this . inDenominationBal ( denominate , miscFrozen , decimal ) ,
139145 feeFrozen : typeof feeFrozen === 'string' ? feeFrozen : this . inDenominationBal ( denominate , feeFrozen , decimal ) ,
140146 frozen : typeof frozen === 'string' ? frozen : this . inDenominationBal ( denominate , frozen , decimal ) ,
147+ transferable :
148+ typeof transferable === 'string' ? transferable : this . inDenominationBal ( denominate , transferable , decimal ) ,
141149 locks : this . inDenominationLocks ( denominate , locks , decimal ) ,
142150 } ;
143151 } else {
@@ -188,19 +196,24 @@ export class AccountsBalanceInfoService extends AbstractService {
188196
189197 if ( accountData && locks && accountInfo ) {
190198 const { nonce } = accountInfo ;
191- let free , reserved , feeFrozen , miscFrozen , frozen ;
199+ let free , reserved , feeFrozen , miscFrozen , frozen , transferable ;
192200 if ( ( accountData as AccountData ) . miscFrozen ) {
193201 const tmpData = accountData as AccountData ;
194202 free = tmpData . free ;
195203 reserved = tmpData . reserved ;
196204 feeFrozen = tmpData . feeFrozen ;
197205 miscFrozen = tmpData . miscFrozen ;
198206 frozen = 'frozen does not exist for this runtime' ;
207+ transferable = 'transferable formula not supported for this runtime' ;
199208 } else {
209+ const deriveData = await this . api . derive . balances . all ( address ) ;
200210 const tmpData = accountData as PalletBalancesAccountData ;
201211 free = tmpData . free ;
202212 reserved = tmpData . reserved ;
203213 frozen = tmpData . frozen ;
214+ transferable = deriveData . transferable
215+ ? deriveData . transferable
216+ : 'transferable formula not supported for this runtime' ;
204217 feeFrozen = 'feeFrozen does not exist for this runtime' ;
205218 miscFrozen = 'miscFrozen does not exist for this runtime' ;
206219 }
@@ -215,6 +228,8 @@ export class AccountsBalanceInfoService extends AbstractService {
215228 typeof miscFrozen === 'string' ? miscFrozen : this . inDenominationBal ( denominate , miscFrozen , decimal ) ,
216229 feeFrozen : typeof feeFrozen === 'string' ? feeFrozen : this . inDenominationBal ( denominate , feeFrozen , decimal ) ,
217230 frozen : typeof frozen === 'string' ? frozen : this . inDenominationBal ( denominate , frozen , decimal ) ,
231+ transferable :
232+ typeof transferable === 'string' ? transferable : this . inDenominationBal ( denominate , transferable , decimal ) ,
218233 locks : this . inDenominationLocks ( denominate , locks , decimal ) ,
219234 } ;
220235 } else {
0 commit comments