@subwallet/extension-base 1.1.51-2 → 1.1.52-0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. package/cjs/koni/api/tokens/evm/balance.js +1 -2
  2. package/cjs/koni/api/tokens/evm/transfer.js +3 -5
  3. package/cjs/koni/api/tokens/evm/web3.js +3 -3
  4. package/cjs/koni/background/handlers/Extension.js +5 -4
  5. package/cjs/koni/background/handlers/State.js +8 -71
  6. package/cjs/koni/background/subscription.js +3 -63
  7. package/cjs/packageInfo.js +1 -1
  8. package/cjs/services/balance-service/BalanceMapImpl.js +2 -2
  9. package/cjs/services/balance-service/helpers/index.js +27 -0
  10. package/cjs/services/balance-service/helpers/subscribe/evm.js +33 -15
  11. package/cjs/services/balance-service/helpers/subscribe/{balance.js → index.js} +46 -29
  12. package/cjs/services/balance-service/helpers/subscribe/substrate/equilibrium.js +34 -15
  13. package/cjs/services/balance-service/helpers/subscribe/substrate/index.js +156 -72
  14. package/cjs/services/balance-service/index.js +277 -75
  15. package/cjs/services/chain-service/constants.js +2 -1
  16. package/cjs/services/chain-service/health-check/utils/asset-info.js +1 -3
  17. package/cjs/services/chain-service/index.js +1 -9
  18. package/cjs/services/chain-service/utils/patch.js +1 -1
  19. package/cjs/services/earning-service/handlers/liquid-staking/stella-swap.js +2 -2
  20. package/cjs/services/storage-service/DatabaseService.js +10 -1
  21. package/cjs/utils/asset.js +19 -0
  22. package/cjs/utils/index.js +12 -0
  23. package/koni/api/tokens/evm/balance.d.ts +1 -1
  24. package/koni/api/tokens/evm/balance.js +1 -2
  25. package/koni/api/tokens/evm/transfer.d.ts +2 -2
  26. package/koni/api/tokens/evm/transfer.js +3 -5
  27. package/koni/api/tokens/evm/web3.d.ts +1 -1
  28. package/koni/api/tokens/evm/web3.js +2 -2
  29. package/koni/background/handlers/Extension.js +5 -4
  30. package/koni/background/handlers/State.d.ts +1 -12
  31. package/koni/background/handlers/State.js +9 -72
  32. package/koni/background/subscription.d.ts +1 -5
  33. package/koni/background/subscription.js +1 -60
  34. package/package.json +23 -13
  35. package/packageInfo.js +1 -1
  36. package/services/balance-service/BalanceMapImpl.js +1 -1
  37. package/services/balance-service/helpers/index.d.ts +2 -0
  38. package/services/balance-service/helpers/index.js +5 -0
  39. package/services/balance-service/helpers/subscribe/evm.d.ts +3 -5
  40. package/services/balance-service/helpers/subscribe/evm.js +31 -14
  41. package/services/balance-service/helpers/subscribe/{balance.d.ts → index.d.ts} +2 -2
  42. package/services/balance-service/helpers/subscribe/{balance.js → index.js} +41 -28
  43. package/services/balance-service/helpers/subscribe/substrate/equilibrium.d.ts +3 -4
  44. package/services/balance-service/helpers/subscribe/substrate/equilibrium.js +29 -13
  45. package/services/balance-service/helpers/subscribe/substrate/index.d.ts +2 -2
  46. package/services/balance-service/helpers/subscribe/substrate/index.js +143 -67
  47. package/services/balance-service/index.d.ts +64 -6
  48. package/services/balance-service/index.js +279 -77
  49. package/services/chain-service/constants.js +2 -1
  50. package/services/chain-service/health-check/utils/asset-info.js +1 -3
  51. package/services/chain-service/index.js +2 -10
  52. package/services/chain-service/utils/patch.js +1 -1
  53. package/services/earning-service/handlers/liquid-staking/stella-swap.js +2 -2
  54. package/services/storage-service/DatabaseService.js +7 -1
  55. package/types/{balance.d.ts → balance/index.d.ts} +16 -0
  56. package/types/index.js +1 -1
  57. package/utils/asset.d.ts +2 -0
  58. package/utils/asset.js +12 -0
  59. package/utils/index.d.ts +1 -0
  60. package/utils/index.js +1 -0
  61. /package/cjs/types/{balance.js → balance/index.js} +0 -0
  62. /package/types/{balance.js → balance/index.js} +0 -0
@@ -4,22 +4,30 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.subscribeEqBalanceAccountPallet = subscribeEqBalanceAccountPallet;
8
- exports.subscribeEquilibriumTokenBalance = subscribeEquilibriumTokenBalance;
7
+ exports.subscribeEquilibriumTokenBalance = exports.subscribeEqBalanceAccountPallet = void 0;
9
8
  var _types = require("@subwallet/chain-list/types");
10
9
  var _KoniTypes = require("@subwallet/extension-base/background/KoniTypes");
11
- var _handlers = require("@subwallet/extension-base/koni/background/handlers");
12
10
  var _utils = require("@subwallet/extension-base/services/chain-service/utils");
11
+ var _utils2 = require("@subwallet/extension-base/utils");
13
12
  var _bignumber = _interopRequireDefault(require("bignumber.js"));
14
13
  var _util = require("@polkadot/util");
15
14
  // Copyright 2019-2022 @subwallet/extension-base
16
15
  // SPDX-License-Identifier: Apache-2.0
17
16
 
18
- async function subscribeEquilibriumTokenBalance(addresses, chain, api, callBack, includeNativeToken) {
17
+ const subscribeEquilibriumTokenBalance = async _ref => {
18
+ let {
19
+ addresses,
20
+ assetMap,
21
+ callback,
22
+ chainInfo,
23
+ includeNativeToken,
24
+ substrateApi
25
+ } = _ref;
26
+ const chain = chainInfo.slug;
19
27
  const tokenTypes = includeNativeToken ? [_types._AssetType.NATIVE, _types._AssetType.LOCAL] : [_types._AssetType.LOCAL];
20
- const tokenMap = _handlers.state.getAssetByChainAndAsset(chain, tokenTypes);
28
+ const tokenMap = (0, _utils2.filterAssetsByChainAndType)(assetMap, chain, tokenTypes);
21
29
  try {
22
- const unsub = await api.query.system.account.multi(addresses, balances => {
30
+ const unsub = await substrateApi.query.system.account.multi(addresses, balances => {
23
31
  // Equilibrium customizes the SystemAccount pallet
24
32
  Object.values(tokenMap).forEach(tokenInfo => {
25
33
  const assetId = (0, _utils._getTokenOnChainAssetId)(tokenInfo);
@@ -40,7 +48,7 @@ async function subscribeEquilibriumTokenBalance(addresses, chain, api, callBack,
40
48
  tokenSlug: tokenInfo.slug
41
49
  };
42
50
  });
43
- callBack(items);
51
+ callback(items);
44
52
  });
45
53
  });
46
54
  return () => {
@@ -58,22 +66,32 @@ async function subscribeEquilibriumTokenBalance(addresses, chain, api, callBack,
58
66
  tokenSlug: tokenInfo.slug
59
67
  };
60
68
  });
61
- callBack(items);
69
+ callback(items);
62
70
  });
63
71
  return () => {
64
72
  // Empty
65
73
  };
66
74
  }
67
- }
75
+ };
68
76
 
69
77
  // eslint-disable-next-line @typescript-eslint/require-await
70
- async function subscribeEqBalanceAccountPallet(addresses, chain, api, callBack, includeNativeToken) {
78
+ exports.subscribeEquilibriumTokenBalance = subscribeEquilibriumTokenBalance;
79
+ const subscribeEqBalanceAccountPallet = async _ref2 => {
80
+ let {
81
+ addresses,
82
+ assetMap,
83
+ callback,
84
+ chainInfo,
85
+ includeNativeToken,
86
+ substrateApi
87
+ } = _ref2;
88
+ const chain = chainInfo.slug;
71
89
  const tokenTypes = includeNativeToken ? [_types._AssetType.NATIVE, _types._AssetType.LOCAL] : [_types._AssetType.LOCAL];
72
- const tokenMap = _handlers.state.getAssetByChainAndAsset(chain, tokenTypes);
90
+ const tokenMap = (0, _utils2.filterAssetsByChainAndType)(assetMap, chain, tokenTypes);
73
91
  const unsubList = Object.values(tokenMap).map(async tokenInfo => {
74
92
  try {
75
93
  const assetId = (0, _utils._getTokenOnChainAssetId)(tokenInfo);
76
- const unsub = await api.query.eqBalances.account.multi(addresses.map(address => [address, [assetId]]), balances => {
94
+ const unsub = await substrateApi.query.eqBalances.account.multi(addresses.map(address => [address, [assetId]]), balances => {
77
95
  const items = balances.map((balance, index) => {
78
96
  return {
79
97
  address: addresses[index],
@@ -84,7 +102,7 @@ async function subscribeEqBalanceAccountPallet(addresses, chain, api, callBack,
84
102
  tokenSlug: tokenInfo.slug
85
103
  };
86
104
  });
87
- callBack(items);
105
+ callback(items);
88
106
  });
89
107
  return unsub;
90
108
  } catch (err) {
@@ -99,7 +117,7 @@ async function subscribeEqBalanceAccountPallet(addresses, chain, api, callBack,
99
117
  tokenSlug: tokenInfo.slug
100
118
  };
101
119
  });
102
- callBack(items);
120
+ callback(items);
103
121
  return undefined;
104
122
  }
105
123
  });
@@ -110,4 +128,5 @@ async function subscribeEqBalanceAccountPallet(addresses, chain, api, callBack,
110
128
  }).catch(console.error);
111
129
  });
112
130
  };
113
- }
131
+ };
132
+ exports.subscribeEqBalanceAccountPallet = subscribeEqBalanceAccountPallet;
@@ -3,51 +3,72 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.subscribeSubstrateBalance = subscribeSubstrateBalance;
6
+ exports.subscribeSubstrateBalance = void 0;
7
7
  var _types = require("@subwallet/chain-list/types");
8
8
  var _KoniTypes = require("@subwallet/extension-base/background/KoniTypes");
9
9
  var _constants = require("@subwallet/extension-base/constants");
10
10
  var _wasm = require("@subwallet/extension-base/koni/api/tokens/wasm");
11
11
  var _utils = require("@subwallet/extension-base/koni/api/tokens/wasm/utils");
12
- var _handlers = require("@subwallet/extension-base/koni/background/handlers");
13
- var _evm = require("@subwallet/extension-base/services/balance-service/helpers/subscribe/evm");
14
12
  var _constants2 = require("@subwallet/extension-base/services/chain-service/constants");
15
13
  var _utils2 = require("@subwallet/extension-base/services/chain-service/utils");
14
+ var _utils3 = require("@subwallet/extension-base/utils");
15
+ var _rxjs = require("rxjs");
16
16
  var _util = require("@polkadot/util");
17
+ var _evm = require("../evm");
17
18
  var _equilibrium = require("./equilibrium");
18
19
  // Copyright 2019-2022 @subwallet/extension-base
19
20
  // SPDX-License-Identifier: Apache-2.0
20
21
 
21
- async function subscribeSubstrateBalance(addresses, chainInfo, chain, networkAPI, evmApiMap, callBack) {
22
+ const subscribeSubstrateBalance = async (addresses, chainInfo, assetMap, substrateApi, evmApi, callback) => {
22
23
  let unsubNativeToken;
23
- if (!_constants2._BALANCE_CHAIN_GROUP.kintsugi.includes(chain) && !_constants2._BALANCE_CHAIN_GROUP.genshiro.includes(chain) && !_constants2._BALANCE_CHAIN_GROUP.equilibrium_parachain.includes(chain)) {
24
- unsubNativeToken = await subscribeWithSystemAccountPallet(addresses, chainInfo, networkAPI.api, callBack);
25
- }
26
24
  let unsubLocalToken;
27
25
  let unsubEvmContractToken;
28
26
  let unsubWasmContractToken;
29
27
  let unsubBridgedToken;
28
+ const chain = chainInfo.slug;
29
+ const baseParams = {
30
+ addresses,
31
+ chainInfo,
32
+ assetMap,
33
+ callback
34
+ };
35
+ const substrateParams = {
36
+ ...baseParams,
37
+ substrateApi: substrateApi.api
38
+ };
39
+ if (!_constants2._BALANCE_CHAIN_GROUP.kintsugi.includes(chain) && !_constants2._BALANCE_CHAIN_GROUP.genshiro.includes(chain) && !_constants2._BALANCE_CHAIN_GROUP.equilibrium_parachain.includes(chain)) {
40
+ unsubNativeToken = await subscribeWithSystemAccountPallet(substrateParams);
41
+ }
30
42
  try {
31
43
  if (_constants2._BALANCE_CHAIN_GROUP.bifrost.includes(chain)) {
32
- unsubLocalToken = await subscribeTokensAccountsPallet(addresses, chain, networkAPI.api, callBack);
44
+ unsubLocalToken = await subscribeTokensAccountsPallet(substrateParams);
33
45
  } else if (_constants2._BALANCE_CHAIN_GROUP.kintsugi.includes(chain)) {
34
- unsubLocalToken = await subscribeTokensAccountsPallet(addresses, chain, networkAPI.api, callBack, true);
46
+ unsubLocalToken = await subscribeTokensAccountsPallet({
47
+ ...substrateParams,
48
+ includeNativeToken: true
49
+ });
35
50
  } else if (_constants2._BALANCE_CHAIN_GROUP.statemine.includes(chain)) {
36
- unsubLocalToken = await subscribeAssetsAccountPallet(addresses, chain, networkAPI.api, callBack);
51
+ unsubLocalToken = await subscribeAssetsAccountPallet(substrateParams);
37
52
  } else if (_constants2._BALANCE_CHAIN_GROUP.genshiro.includes(chain) || _constants2._BALANCE_CHAIN_GROUP.equilibrium_parachain.includes(chain)) {
38
- unsubLocalToken = await (0, _equilibrium.subscribeEquilibriumTokenBalance)(addresses, chain, networkAPI.api, callBack, true);
53
+ unsubLocalToken = await (0, _equilibrium.subscribeEquilibriumTokenBalance)({
54
+ ...substrateParams,
55
+ includeNativeToken: true
56
+ });
39
57
  } else if (_constants2._BALANCE_CHAIN_GROUP.centrifuge.includes(chain)) {
40
- unsubLocalToken = await subscribeOrmlTokensPallet(addresses, chain, networkAPI.api, callBack);
58
+ unsubLocalToken = await subscribeOrmlTokensPallet(substrateParams);
41
59
  }
42
60
  if (_constants2._BALANCE_CHAIN_GROUP.supportBridged.includes(chain)) {
43
- unsubBridgedToken = await subscribeBridgedBalance(addresses, chain, networkAPI.api, callBack);
61
+ unsubBridgedToken = await subscribeBridgedBalance(substrateParams);
44
62
  }
45
63
  if ((0, _utils2._isChainEvmCompatible)(chainInfo)) {
46
- unsubEvmContractToken = (0, _evm.subscribeERC20Interval)(addresses, chain, evmApiMap, callBack);
64
+ unsubEvmContractToken = (0, _evm.subscribeERC20Interval)({
65
+ ...baseParams,
66
+ evmApi: evmApi
67
+ });
47
68
  }
48
69
  if ((0, _utils2._checkSmartContractSupportByChain)(chainInfo, _types._AssetType.PSP22)) {
49
70
  // Get sub-token for substrate-based chains
50
- unsubWasmContractToken = subscribePSP22Balance(addresses, chain, networkAPI.api, callBack);
71
+ unsubWasmContractToken = subscribePSP22Balance(substrateParams);
51
72
  }
52
73
  } catch (err) {
53
74
  console.warn(err);
@@ -59,32 +80,54 @@ async function subscribeSubstrateBalance(addresses, chainInfo, chain, networkAPI
59
80
  unsubWasmContractToken && unsubWasmContractToken();
60
81
  unsubBridgedToken && unsubBridgedToken();
61
82
  };
62
- }
83
+ };
63
84
 
64
85
  // handler according to different logic
65
- async function subscribeWithSystemAccountPallet(addresses, chainInfo, networkAPI, callBack) {
86
+ // eslint-disable-next-line @typescript-eslint/require-await
87
+ exports.subscribeSubstrateBalance = subscribeSubstrateBalance;
88
+ const subscribeWithSystemAccountPallet = async _ref => {
89
+ let {
90
+ addresses,
91
+ callback,
92
+ chainInfo,
93
+ substrateApi
94
+ } = _ref;
66
95
  const chainNativeTokenSlug = (0, _utils2._getChainNativeTokenSlug)(chainInfo);
67
-
68
- // TODO: Need handle case error
69
- const unsub = await networkAPI.query.system.account.multi(addresses, async balances => {
70
- const pooledStakingBalances = [];
71
- if ((0, _utils2._isSubstrateRelayChain)(chainInfo) && networkAPI.query.nominationPools) {
72
- var _networkAPI$query$nom;
73
- const poolMemberDatas = await ((_networkAPI$query$nom = networkAPI.query.nominationPools.poolMembers) === null || _networkAPI$query$nom === void 0 ? void 0 : _networkAPI$query$nom.multi(addresses));
74
- if (poolMemberDatas) {
75
- for (const _poolMemberData of poolMemberDatas) {
76
- const poolMemberData = _poolMemberData.toPrimitive();
77
- if (poolMemberData) {
78
- let pooled = new _util.BN(poolMemberData.points.toString());
79
- Object.entries(poolMemberData.unbondingEras).forEach(_ref => {
80
- let [, amount] = _ref;
81
- pooled = pooled.add(new _util.BN(amount));
82
- });
83
- pooledStakingBalances.push(pooled);
84
- } else {
85
- pooledStakingBalances.push(_util.BN_ZERO);
86
- }
96
+ const balanceSubscribe = substrateApi.rx.query.system.account.multi(addresses);
97
+ let poolSubscribe;
98
+ if ((0, _utils2._isSubstrateRelayChain)(chainInfo) && substrateApi.query.nominationPools) {
99
+ var _substrateApi$rx$quer;
100
+ poolSubscribe = (_substrateApi$rx$quer = substrateApi.rx.query.nominationPools.poolMembers) === null || _substrateApi$rx$quer === void 0 ? void 0 : _substrateApi$rx$quer.multi(addresses);
101
+ } else {
102
+ poolSubscribe = new _rxjs.Observable(subscriber => {
103
+ subscriber.next(addresses.map(() => ({
104
+ toPrimitive() {
105
+ return null;
87
106
  }
107
+ })));
108
+ });
109
+ }
110
+ const subscription = (0, _rxjs.combineLatest)({
111
+ balances: balanceSubscribe,
112
+ pools: poolSubscribe
113
+ }).subscribe(_ref2 => {
114
+ let {
115
+ balances: _balances,
116
+ pools: poolMemberDatas
117
+ } = _ref2;
118
+ const balances = _balances;
119
+ const pooledStakingBalances = [];
120
+ for (const _poolMemberData of poolMemberDatas) {
121
+ const poolMemberData = _poolMemberData.toPrimitive();
122
+ if (poolMemberData) {
123
+ let pooled = new _util.BN(poolMemberData.points.toString());
124
+ Object.entries(poolMemberData.unbondingEras).forEach(_ref3 => {
125
+ let [, amount] = _ref3;
126
+ pooled = pooled.add(new _util.BN(amount));
127
+ });
128
+ pooledStakingBalances.push(pooled);
129
+ } else {
130
+ pooledStakingBalances.push(_util.BN_ZERO);
88
131
  }
89
132
  }
90
133
  const items = balances.map((balance, index) => {
@@ -116,14 +159,22 @@ async function subscribeWithSystemAccountPallet(addresses, chainInfo, networkAPI
116
159
  }
117
160
  };
118
161
  });
119
- callBack(items);
162
+ callback(items);
120
163
  });
121
164
  return () => {
122
- unsub();
165
+ subscription.unsubscribe();
123
166
  };
124
- }
125
- async function subscribeBridgedBalance(addresses, chain, api, callBack) {
126
- const tokenMap = _handlers.state.getAssetByChainAndAsset(chain, [_types._AssetType.LOCAL]);
167
+ };
168
+ const subscribeBridgedBalance = async _ref4 => {
169
+ let {
170
+ addresses,
171
+ assetMap,
172
+ callback,
173
+ chainInfo,
174
+ substrateApi
175
+ } = _ref4;
176
+ const chain = chainInfo.slug;
177
+ const tokenMap = (0, _utils3.filterAssetsByChainAndType)(assetMap, chain, [_types._AssetType.LOCAL]);
127
178
 
128
179
  // @ts-ignore
129
180
  const unsubList = await Promise.all(Object.values(tokenMap).map(async tokenInfo => {
@@ -131,7 +182,7 @@ async function subscribeBridgedBalance(addresses, chain, api, callBack) {
131
182
  const isBridgedToken = (0, _utils2._isBridgedToken)(tokenInfo);
132
183
  if (isBridgedToken) {
133
184
  const multiLocation = (0, _utils2._getXcmAssetMultilocation)(tokenInfo);
134
- return await api.query.foreignAssets.account.multi(addresses.map(address => [multiLocation, address]), balances => {
185
+ return await substrateApi.query.foreignAssets.account.multi(addresses.map(address => [multiLocation, address]), balances => {
135
186
  const items = balances.map((balance, index) => {
136
187
  const bdata = balance === null || balance === void 0 ? void 0 : balance.toHuman();
137
188
  let frozen = _util.BN_ZERO;
@@ -161,7 +212,7 @@ async function subscribeBridgedBalance(addresses, chain, api, callBack) {
161
212
  }
162
213
  };
163
214
  });
164
- callBack(items);
215
+ callback(items);
165
216
  });
166
217
  }
167
218
  } catch (err) {
@@ -174,25 +225,37 @@ async function subscribeBridgedBalance(addresses, chain, api, callBack) {
174
225
  unsub && unsub();
175
226
  });
176
227
  };
177
- }
178
- function subscribePSP22Balance(addresses, chain, api, callBack) {
179
- let tokenList = {};
228
+ };
229
+ const subscribePSP22Balance = _ref5 => {
230
+ let {
231
+ addresses,
232
+ assetMap,
233
+ callback,
234
+ chainInfo,
235
+ substrateApi
236
+ } = _ref5;
237
+ const chain = chainInfo.slug;
180
238
  const psp22ContractMap = {};
239
+ const tokenList = (0, _utils3.filterAssetsByChainAndType)(assetMap, chain, [_types._AssetType.PSP22]);
240
+ Object.entries(tokenList).forEach(_ref6 => {
241
+ let [slug, tokenInfo] = _ref6;
242
+ psp22ContractMap[slug] = (0, _wasm.getPSP22ContractPromise)(substrateApi, (0, _utils2._getContractAddressOfToken)(tokenInfo));
243
+ });
181
244
  const getTokenBalances = () => {
182
245
  Object.values(tokenList).map(async tokenInfo => {
183
246
  try {
184
247
  const contract = psp22ContractMap[tokenInfo.slug];
185
248
  const balances = await Promise.all(addresses.map(async address => {
186
249
  try {
187
- var _balanceOf$output, _ref2;
250
+ var _balanceOf$output, _ref7;
188
251
  const _balanceOf = await contract.query['psp22::balanceOf'](address, {
189
- gasLimit: (0, _utils.getDefaultWeightV2)(api)
252
+ gasLimit: (0, _utils.getDefaultWeightV2)(substrateApi)
190
253
  }, address);
191
254
  const balanceObj = _balanceOf === null || _balanceOf === void 0 ? void 0 : (_balanceOf$output = _balanceOf.output) === null || _balanceOf$output === void 0 ? void 0 : _balanceOf$output.toPrimitive();
192
255
  return {
193
256
  address: address,
194
257
  tokenSlug: tokenInfo.slug,
195
- free: _balanceOf.output ? (_ref2 = balanceObj.ok) !== null && _ref2 !== void 0 ? _ref2 : balanceObj.Ok : '0',
258
+ free: _balanceOf.output ? (_ref7 = balanceObj.ok) !== null && _ref7 !== void 0 ? _ref7 : balanceObj.Ok : '0',
196
259
  locked: '0',
197
260
  state: _KoniTypes.APIItemState.READY
198
261
  };
@@ -207,27 +270,31 @@ function subscribePSP22Balance(addresses, chain, api, callBack) {
207
270
  };
208
271
  }
209
272
  }));
210
- callBack(balances);
273
+ callback(balances);
211
274
  } catch (err) {
212
275
  console.warn(tokenInfo.slug, err); // TODO: error createType
213
276
  }
214
277
  });
215
278
  };
216
279
 
217
- tokenList = _handlers.state.getAssetByChainAndAsset(chain, [_types._AssetType.PSP22]);
218
- Object.entries(tokenList).forEach(_ref3 => {
219
- let [slug, tokenInfo] = _ref3;
220
- psp22ContractMap[slug] = (0, _wasm.getPSP22ContractPromise)(api, (0, _utils2._getContractAddressOfToken)(tokenInfo));
221
- });
222
280
  getTokenBalances();
223
281
  const interval = setInterval(getTokenBalances, _constants.SUB_TOKEN_REFRESH_BALANCE_INTERVAL);
224
282
  return () => {
225
283
  clearInterval(interval);
226
284
  };
227
- }
228
- async function subscribeTokensAccountsPallet(addresses, chain, api, callBack, includeNativeToken) {
285
+ };
286
+ const subscribeTokensAccountsPallet = async _ref8 => {
287
+ let {
288
+ addresses,
289
+ assetMap,
290
+ callback,
291
+ chainInfo,
292
+ includeNativeToken,
293
+ substrateApi
294
+ } = _ref8;
295
+ const chain = chainInfo.slug;
229
296
  const tokenTypes = includeNativeToken ? [_types._AssetType.NATIVE, _types._AssetType.LOCAL] : [_types._AssetType.LOCAL];
230
- const tokenMap = _handlers.state.getAssetByChainAndAsset(chain, tokenTypes);
297
+ const tokenMap = (0, _utils3.filterAssetsByChainAndType)(assetMap, chain, tokenTypes);
231
298
  const unsubList = await Promise.all(Object.values(tokenMap).map(async tokenInfo => {
232
299
  try {
233
300
  const onChainInfo = (0, _utils2._getTokenOnChainInfo)(tokenInfo);
@@ -235,7 +302,7 @@ async function subscribeTokensAccountsPallet(addresses, chain, api, callBack, in
235
302
 
236
303
  // Get Token Balance
237
304
  // @ts-ignore
238
- return await api.query.tokens.accounts.multi(addresses.map(address => [address, onChainInfo || assetId]), balances => {
305
+ return await substrateApi.query.tokens.accounts.multi(addresses.map(address => [address, onChainInfo || assetId]), balances => {
239
306
  const items = balances.map((balance, index) => {
240
307
  const tokenBalance = {
241
308
  reserved: balance.reserved || new _util.BN(0),
@@ -257,7 +324,7 @@ async function subscribeTokensAccountsPallet(addresses, chain, api, callBack, in
257
324
  }
258
325
  };
259
326
  });
260
- callBack(items);
327
+ callback(items);
261
328
  });
262
329
  } catch (err) {
263
330
  console.warn(err);
@@ -269,9 +336,18 @@ async function subscribeTokensAccountsPallet(addresses, chain, api, callBack, in
269
336
  unsub && unsub();
270
337
  });
271
338
  };
272
- }
273
- async function subscribeAssetsAccountPallet(addresses, chain, api, callBack) {
274
- const tokenMap = _handlers.state.getAssetByChainAndAsset(chain, [_types._AssetType.LOCAL]);
339
+ };
340
+ const subscribeAssetsAccountPallet = async _ref9 => {
341
+ let {
342
+ addresses,
343
+ assetMap,
344
+ callback,
345
+ chainInfo,
346
+ includeNativeToken,
347
+ substrateApi
348
+ } = _ref9;
349
+ const chain = chainInfo.slug;
350
+ const tokenMap = (0, _utils3.filterAssetsByChainAndType)(assetMap, chain, [_types._AssetType.LOCAL]);
275
351
  Object.values(tokenMap).forEach(token => {
276
352
  if (_constants2._MANTA_ZK_CHAIN_GROUP.includes(token.originChain) && token.symbol.startsWith(_constants2._ZK_ASSET_PREFIX)) {
277
353
  delete tokenMap[token.slug];
@@ -282,7 +358,7 @@ async function subscribeAssetsAccountPallet(addresses, chain, api, callBack) {
282
358
  const assetIndex = (0, _utils2._getTokenOnChainAssetId)(tokenInfo);
283
359
 
284
360
  // Get Token Balance
285
- return await api.query.assets.account.multi(addresses.map(address => [assetIndex, address]), balances => {
361
+ return await substrateApi.query.assets.account.multi(addresses.map(address => [assetIndex, address]), balances => {
286
362
  const items = balances.map((balance, index) => {
287
363
  const bdata = balance === null || balance === void 0 ? void 0 : balance.toPrimitive();
288
364
  let frozen = _util.BN_ZERO;
@@ -311,7 +387,7 @@ async function subscribeAssetsAccountPallet(addresses, chain, api, callBack) {
311
387
  }
312
388
  };
313
389
  });
314
- callBack(items);
390
+ callback(items);
315
391
  });
316
392
  } catch (err) {
317
393
  console.warn(err);
@@ -323,19 +399,27 @@ async function subscribeAssetsAccountPallet(addresses, chain, api, callBack) {
323
399
  unsub && unsub();
324
400
  });
325
401
  };
326
- }
402
+ };
327
403
 
328
404
  // eslint-disable-next-line @typescript-eslint/require-await
329
- async function subscribeOrmlTokensPallet(addresses, chain, api, callBack) {
405
+ const subscribeOrmlTokensPallet = async _ref10 => {
406
+ let {
407
+ addresses,
408
+ assetMap,
409
+ callback,
410
+ chainInfo,
411
+ substrateApi
412
+ } = _ref10;
413
+ const chain = chainInfo.slug;
330
414
  const tokenTypes = [_types._AssetType.LOCAL];
331
- const tokenMap = _handlers.state.getAssetByChainAndAsset(chain, tokenTypes);
415
+ const tokenMap = (0, _utils3.filterAssetsByChainAndType)(assetMap, chain, tokenTypes);
332
416
  const unsubList = Object.values(tokenMap).map(async tokenInfo => {
333
417
  try {
334
418
  const onChainInfo = (0, _utils2._getTokenOnChainInfo)(tokenInfo);
335
419
 
336
420
  // Get Token Balance
337
421
  // @ts-ignore
338
- const unsub = await api.query.ormlTokens.accounts.multi(addresses.map(address => [address, onChainInfo]), balances => {
422
+ const unsub = await substrateApi.query.ormlTokens.accounts.multi(addresses.map(address => [address, onChainInfo]), balances => {
339
423
  const items = balances.map((balance, index) => {
340
424
  const tokenBalance = {
341
425
  reserved: balance.reserved || new _util.BN(0),
@@ -359,7 +443,7 @@ async function subscribeOrmlTokensPallet(addresses, chain, api, callBack) {
359
443
  }
360
444
  };
361
445
  });
362
- callBack(items);
446
+ callback(items);
363
447
  });
364
448
  return unsub;
365
449
  } catch (err) {
@@ -374,4 +458,4 @@ async function subscribeOrmlTokensPallet(addresses, chain, api, callBack) {
374
458
  }).catch(console.error);
375
459
  });
376
460
  };
377
- }
461
+ };