@subwallet/extension-base 1.1.51-2 → 1.1.53-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.
- package/cjs/koni/api/tokens/evm/balance.js +1 -2
- package/cjs/koni/api/tokens/evm/transfer.js +3 -5
- package/cjs/koni/api/tokens/evm/web3.js +3 -3
- package/cjs/koni/background/handlers/Extension.js +5 -4
- package/cjs/koni/background/handlers/State.js +8 -71
- package/cjs/koni/background/subscription.js +3 -63
- package/cjs/packageInfo.js +1 -1
- package/cjs/services/balance-service/BalanceMapImpl.js +2 -2
- package/cjs/services/balance-service/helpers/index.js +27 -0
- package/cjs/services/balance-service/helpers/subscribe/evm.js +33 -15
- package/cjs/services/balance-service/helpers/subscribe/{balance.js → index.js} +46 -29
- package/cjs/services/balance-service/helpers/subscribe/substrate/equilibrium.js +34 -15
- package/cjs/services/balance-service/helpers/subscribe/substrate/index.js +157 -72
- package/cjs/services/balance-service/index.js +277 -75
- package/cjs/services/chain-service/constants.js +2 -1
- package/cjs/services/chain-service/health-check/utils/asset-info.js +1 -3
- package/cjs/services/chain-service/index.js +1 -9
- package/cjs/services/chain-service/utils/patch.js +1 -1
- package/cjs/services/earning-service/handlers/liquid-staking/stella-swap.js +2 -2
- package/cjs/services/request-service/handler/ConnectWCRequestHandler.js +0 -1
- package/cjs/services/storage-service/DatabaseService.js +10 -1
- package/cjs/services/wallet-connect-service/helpers.js +1 -1
- package/cjs/services/wallet-connect-service/index.js +19 -0
- package/cjs/utils/asset.js +19 -0
- package/cjs/utils/eth/parseTransaction/index.js +1 -1
- package/cjs/utils/index.js +12 -0
- package/koni/api/tokens/evm/balance.d.ts +1 -1
- package/koni/api/tokens/evm/balance.js +1 -2
- package/koni/api/tokens/evm/transfer.d.ts +2 -2
- package/koni/api/tokens/evm/transfer.js +3 -5
- package/koni/api/tokens/evm/web3.d.ts +1 -1
- package/koni/api/tokens/evm/web3.js +2 -2
- package/koni/background/handlers/Extension.js +5 -4
- package/koni/background/handlers/State.d.ts +1 -12
- package/koni/background/handlers/State.js +9 -72
- package/koni/background/subscription.d.ts +1 -5
- package/koni/background/subscription.js +1 -60
- package/package.json +23 -13
- package/packageInfo.js +1 -1
- package/services/balance-service/BalanceMapImpl.js +1 -1
- package/services/balance-service/helpers/index.d.ts +2 -0
- package/services/balance-service/helpers/index.js +5 -0
- package/services/balance-service/helpers/subscribe/evm.d.ts +3 -5
- package/services/balance-service/helpers/subscribe/evm.js +31 -14
- package/services/balance-service/helpers/subscribe/{balance.d.ts → index.d.ts} +2 -2
- package/services/balance-service/helpers/subscribe/{balance.js → index.js} +41 -28
- package/services/balance-service/helpers/subscribe/substrate/equilibrium.d.ts +3 -4
- package/services/balance-service/helpers/subscribe/substrate/equilibrium.js +29 -13
- package/services/balance-service/helpers/subscribe/substrate/index.d.ts +2 -2
- package/services/balance-service/helpers/subscribe/substrate/index.js +144 -67
- package/services/balance-service/index.d.ts +64 -6
- package/services/balance-service/index.js +279 -77
- package/services/chain-service/constants.js +2 -1
- package/services/chain-service/health-check/utils/asset-info.js +1 -3
- package/services/chain-service/index.js +2 -10
- package/services/chain-service/utils/patch.js +1 -1
- package/services/earning-service/handlers/liquid-staking/stella-swap.js +2 -2
- package/services/request-service/handler/ConnectWCRequestHandler.js +0 -1
- package/services/storage-service/DatabaseService.js +7 -1
- package/services/wallet-connect-service/helpers.js +1 -1
- package/services/wallet-connect-service/index.d.ts +1 -0
- package/services/wallet-connect-service/index.js +19 -1
- package/types/{balance.d.ts → balance/index.d.ts} +16 -0
- package/types/index.js +1 -1
- package/utils/asset.d.ts +2 -0
- package/utils/asset.js +12 -0
- package/utils/eth/parseTransaction/index.js +1 -1
- package/utils/index.d.ts +1 -0
- package/utils/index.js +1 -0
- /package/cjs/types/{balance.js → balance/index.js} +0 -0
- /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 =
|
|
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
|
-
|
|
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 =
|
|
28
|
+
const tokenMap = (0, _utils2.filterAssetsByChainAndType)(assetMap, chain, tokenTypes);
|
|
21
29
|
try {
|
|
22
|
-
const unsub = await
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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 =
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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 =
|
|
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
|
|
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(
|
|
44
|
+
unsubLocalToken = await subscribeTokensAccountsPallet(substrateParams);
|
|
33
45
|
} else if (_constants2._BALANCE_CHAIN_GROUP.kintsugi.includes(chain)) {
|
|
34
|
-
unsubLocalToken = await subscribeTokensAccountsPallet(
|
|
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(
|
|
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)(
|
|
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(
|
|
58
|
+
unsubLocalToken = await subscribeOrmlTokensPallet(substrateParams);
|
|
41
59
|
}
|
|
42
60
|
if (_constants2._BALANCE_CHAIN_GROUP.supportBridged.includes(chain)) {
|
|
43
|
-
unsubBridgedToken = await subscribeBridgedBalance(
|
|
61
|
+
unsubBridgedToken = await subscribeBridgedBalance(substrateParams);
|
|
44
62
|
}
|
|
45
63
|
if ((0, _utils2._isChainEvmCompatible)(chainInfo)) {
|
|
46
|
-
unsubEvmContractToken = (0, _evm.subscribeERC20Interval)(
|
|
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(
|
|
71
|
+
unsubWasmContractToken = subscribePSP22Balance(substrateParams);
|
|
51
72
|
}
|
|
52
73
|
} catch (err) {
|
|
53
74
|
console.warn(err);
|
|
@@ -59,32 +80,55 @@ 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
|
-
|
|
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
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
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
|
+
}
|
|
102
|
+
if (!poolSubscribe) {
|
|
103
|
+
poolSubscribe = new _rxjs.Observable(subscriber => {
|
|
104
|
+
subscriber.next(addresses.map(() => ({
|
|
105
|
+
toPrimitive() {
|
|
106
|
+
return null;
|
|
87
107
|
}
|
|
108
|
+
})));
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
const subscription = (0, _rxjs.combineLatest)({
|
|
112
|
+
balances: balanceSubscribe,
|
|
113
|
+
pools: poolSubscribe
|
|
114
|
+
}).subscribe(_ref2 => {
|
|
115
|
+
let {
|
|
116
|
+
balances: _balances,
|
|
117
|
+
pools: poolMemberDatas
|
|
118
|
+
} = _ref2;
|
|
119
|
+
const balances = _balances;
|
|
120
|
+
const pooledStakingBalances = [];
|
|
121
|
+
for (const _poolMemberData of poolMemberDatas) {
|
|
122
|
+
const poolMemberData = _poolMemberData.toPrimitive();
|
|
123
|
+
if (poolMemberData) {
|
|
124
|
+
let pooled = new _util.BN(poolMemberData.points.toString());
|
|
125
|
+
Object.entries(poolMemberData.unbondingEras).forEach(_ref3 => {
|
|
126
|
+
let [, amount] = _ref3;
|
|
127
|
+
pooled = pooled.add(new _util.BN(amount));
|
|
128
|
+
});
|
|
129
|
+
pooledStakingBalances.push(pooled);
|
|
130
|
+
} else {
|
|
131
|
+
pooledStakingBalances.push(_util.BN_ZERO);
|
|
88
132
|
}
|
|
89
133
|
}
|
|
90
134
|
const items = balances.map((balance, index) => {
|
|
@@ -116,14 +160,22 @@ async function subscribeWithSystemAccountPallet(addresses, chainInfo, networkAPI
|
|
|
116
160
|
}
|
|
117
161
|
};
|
|
118
162
|
});
|
|
119
|
-
|
|
163
|
+
callback(items);
|
|
120
164
|
});
|
|
121
165
|
return () => {
|
|
122
|
-
|
|
166
|
+
subscription.unsubscribe();
|
|
123
167
|
};
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
|
|
168
|
+
};
|
|
169
|
+
const subscribeBridgedBalance = async _ref4 => {
|
|
170
|
+
let {
|
|
171
|
+
addresses,
|
|
172
|
+
assetMap,
|
|
173
|
+
callback,
|
|
174
|
+
chainInfo,
|
|
175
|
+
substrateApi
|
|
176
|
+
} = _ref4;
|
|
177
|
+
const chain = chainInfo.slug;
|
|
178
|
+
const tokenMap = (0, _utils3.filterAssetsByChainAndType)(assetMap, chain, [_types._AssetType.LOCAL]);
|
|
127
179
|
|
|
128
180
|
// @ts-ignore
|
|
129
181
|
const unsubList = await Promise.all(Object.values(tokenMap).map(async tokenInfo => {
|
|
@@ -131,7 +183,7 @@ async function subscribeBridgedBalance(addresses, chain, api, callBack) {
|
|
|
131
183
|
const isBridgedToken = (0, _utils2._isBridgedToken)(tokenInfo);
|
|
132
184
|
if (isBridgedToken) {
|
|
133
185
|
const multiLocation = (0, _utils2._getXcmAssetMultilocation)(tokenInfo);
|
|
134
|
-
return await
|
|
186
|
+
return await substrateApi.query.foreignAssets.account.multi(addresses.map(address => [multiLocation, address]), balances => {
|
|
135
187
|
const items = balances.map((balance, index) => {
|
|
136
188
|
const bdata = balance === null || balance === void 0 ? void 0 : balance.toHuman();
|
|
137
189
|
let frozen = _util.BN_ZERO;
|
|
@@ -161,7 +213,7 @@ async function subscribeBridgedBalance(addresses, chain, api, callBack) {
|
|
|
161
213
|
}
|
|
162
214
|
};
|
|
163
215
|
});
|
|
164
|
-
|
|
216
|
+
callback(items);
|
|
165
217
|
});
|
|
166
218
|
}
|
|
167
219
|
} catch (err) {
|
|
@@ -174,25 +226,37 @@ async function subscribeBridgedBalance(addresses, chain, api, callBack) {
|
|
|
174
226
|
unsub && unsub();
|
|
175
227
|
});
|
|
176
228
|
};
|
|
177
|
-
}
|
|
178
|
-
|
|
179
|
-
let
|
|
229
|
+
};
|
|
230
|
+
const subscribePSP22Balance = _ref5 => {
|
|
231
|
+
let {
|
|
232
|
+
addresses,
|
|
233
|
+
assetMap,
|
|
234
|
+
callback,
|
|
235
|
+
chainInfo,
|
|
236
|
+
substrateApi
|
|
237
|
+
} = _ref5;
|
|
238
|
+
const chain = chainInfo.slug;
|
|
180
239
|
const psp22ContractMap = {};
|
|
240
|
+
const tokenList = (0, _utils3.filterAssetsByChainAndType)(assetMap, chain, [_types._AssetType.PSP22]);
|
|
241
|
+
Object.entries(tokenList).forEach(_ref6 => {
|
|
242
|
+
let [slug, tokenInfo] = _ref6;
|
|
243
|
+
psp22ContractMap[slug] = (0, _wasm.getPSP22ContractPromise)(substrateApi, (0, _utils2._getContractAddressOfToken)(tokenInfo));
|
|
244
|
+
});
|
|
181
245
|
const getTokenBalances = () => {
|
|
182
246
|
Object.values(tokenList).map(async tokenInfo => {
|
|
183
247
|
try {
|
|
184
248
|
const contract = psp22ContractMap[tokenInfo.slug];
|
|
185
249
|
const balances = await Promise.all(addresses.map(async address => {
|
|
186
250
|
try {
|
|
187
|
-
var _balanceOf$output,
|
|
251
|
+
var _balanceOf$output, _ref7;
|
|
188
252
|
const _balanceOf = await contract.query['psp22::balanceOf'](address, {
|
|
189
|
-
gasLimit: (0, _utils.getDefaultWeightV2)(
|
|
253
|
+
gasLimit: (0, _utils.getDefaultWeightV2)(substrateApi)
|
|
190
254
|
}, address);
|
|
191
255
|
const balanceObj = _balanceOf === null || _balanceOf === void 0 ? void 0 : (_balanceOf$output = _balanceOf.output) === null || _balanceOf$output === void 0 ? void 0 : _balanceOf$output.toPrimitive();
|
|
192
256
|
return {
|
|
193
257
|
address: address,
|
|
194
258
|
tokenSlug: tokenInfo.slug,
|
|
195
|
-
free: _balanceOf.output ? (
|
|
259
|
+
free: _balanceOf.output ? (_ref7 = balanceObj.ok) !== null && _ref7 !== void 0 ? _ref7 : balanceObj.Ok : '0',
|
|
196
260
|
locked: '0',
|
|
197
261
|
state: _KoniTypes.APIItemState.READY
|
|
198
262
|
};
|
|
@@ -207,27 +271,31 @@ function subscribePSP22Balance(addresses, chain, api, callBack) {
|
|
|
207
271
|
};
|
|
208
272
|
}
|
|
209
273
|
}));
|
|
210
|
-
|
|
274
|
+
callback(balances);
|
|
211
275
|
} catch (err) {
|
|
212
276
|
console.warn(tokenInfo.slug, err); // TODO: error createType
|
|
213
277
|
}
|
|
214
278
|
});
|
|
215
279
|
};
|
|
216
280
|
|
|
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
281
|
getTokenBalances();
|
|
223
282
|
const interval = setInterval(getTokenBalances, _constants.SUB_TOKEN_REFRESH_BALANCE_INTERVAL);
|
|
224
283
|
return () => {
|
|
225
284
|
clearInterval(interval);
|
|
226
285
|
};
|
|
227
|
-
}
|
|
228
|
-
|
|
286
|
+
};
|
|
287
|
+
const subscribeTokensAccountsPallet = async _ref8 => {
|
|
288
|
+
let {
|
|
289
|
+
addresses,
|
|
290
|
+
assetMap,
|
|
291
|
+
callback,
|
|
292
|
+
chainInfo,
|
|
293
|
+
includeNativeToken,
|
|
294
|
+
substrateApi
|
|
295
|
+
} = _ref8;
|
|
296
|
+
const chain = chainInfo.slug;
|
|
229
297
|
const tokenTypes = includeNativeToken ? [_types._AssetType.NATIVE, _types._AssetType.LOCAL] : [_types._AssetType.LOCAL];
|
|
230
|
-
const tokenMap =
|
|
298
|
+
const tokenMap = (0, _utils3.filterAssetsByChainAndType)(assetMap, chain, tokenTypes);
|
|
231
299
|
const unsubList = await Promise.all(Object.values(tokenMap).map(async tokenInfo => {
|
|
232
300
|
try {
|
|
233
301
|
const onChainInfo = (0, _utils2._getTokenOnChainInfo)(tokenInfo);
|
|
@@ -235,7 +303,7 @@ async function subscribeTokensAccountsPallet(addresses, chain, api, callBack, in
|
|
|
235
303
|
|
|
236
304
|
// Get Token Balance
|
|
237
305
|
// @ts-ignore
|
|
238
|
-
return await
|
|
306
|
+
return await substrateApi.query.tokens.accounts.multi(addresses.map(address => [address, onChainInfo || assetId]), balances => {
|
|
239
307
|
const items = balances.map((balance, index) => {
|
|
240
308
|
const tokenBalance = {
|
|
241
309
|
reserved: balance.reserved || new _util.BN(0),
|
|
@@ -257,7 +325,7 @@ async function subscribeTokensAccountsPallet(addresses, chain, api, callBack, in
|
|
|
257
325
|
}
|
|
258
326
|
};
|
|
259
327
|
});
|
|
260
|
-
|
|
328
|
+
callback(items);
|
|
261
329
|
});
|
|
262
330
|
} catch (err) {
|
|
263
331
|
console.warn(err);
|
|
@@ -269,9 +337,18 @@ async function subscribeTokensAccountsPallet(addresses, chain, api, callBack, in
|
|
|
269
337
|
unsub && unsub();
|
|
270
338
|
});
|
|
271
339
|
};
|
|
272
|
-
}
|
|
273
|
-
|
|
274
|
-
|
|
340
|
+
};
|
|
341
|
+
const subscribeAssetsAccountPallet = async _ref9 => {
|
|
342
|
+
let {
|
|
343
|
+
addresses,
|
|
344
|
+
assetMap,
|
|
345
|
+
callback,
|
|
346
|
+
chainInfo,
|
|
347
|
+
includeNativeToken,
|
|
348
|
+
substrateApi
|
|
349
|
+
} = _ref9;
|
|
350
|
+
const chain = chainInfo.slug;
|
|
351
|
+
const tokenMap = (0, _utils3.filterAssetsByChainAndType)(assetMap, chain, [_types._AssetType.LOCAL]);
|
|
275
352
|
Object.values(tokenMap).forEach(token => {
|
|
276
353
|
if (_constants2._MANTA_ZK_CHAIN_GROUP.includes(token.originChain) && token.symbol.startsWith(_constants2._ZK_ASSET_PREFIX)) {
|
|
277
354
|
delete tokenMap[token.slug];
|
|
@@ -282,7 +359,7 @@ async function subscribeAssetsAccountPallet(addresses, chain, api, callBack) {
|
|
|
282
359
|
const assetIndex = (0, _utils2._getTokenOnChainAssetId)(tokenInfo);
|
|
283
360
|
|
|
284
361
|
// Get Token Balance
|
|
285
|
-
return await
|
|
362
|
+
return await substrateApi.query.assets.account.multi(addresses.map(address => [assetIndex, address]), balances => {
|
|
286
363
|
const items = balances.map((balance, index) => {
|
|
287
364
|
const bdata = balance === null || balance === void 0 ? void 0 : balance.toPrimitive();
|
|
288
365
|
let frozen = _util.BN_ZERO;
|
|
@@ -311,7 +388,7 @@ async function subscribeAssetsAccountPallet(addresses, chain, api, callBack) {
|
|
|
311
388
|
}
|
|
312
389
|
};
|
|
313
390
|
});
|
|
314
|
-
|
|
391
|
+
callback(items);
|
|
315
392
|
});
|
|
316
393
|
} catch (err) {
|
|
317
394
|
console.warn(err);
|
|
@@ -323,19 +400,27 @@ async function subscribeAssetsAccountPallet(addresses, chain, api, callBack) {
|
|
|
323
400
|
unsub && unsub();
|
|
324
401
|
});
|
|
325
402
|
};
|
|
326
|
-
}
|
|
403
|
+
};
|
|
327
404
|
|
|
328
405
|
// eslint-disable-next-line @typescript-eslint/require-await
|
|
329
|
-
|
|
406
|
+
const subscribeOrmlTokensPallet = async _ref10 => {
|
|
407
|
+
let {
|
|
408
|
+
addresses,
|
|
409
|
+
assetMap,
|
|
410
|
+
callback,
|
|
411
|
+
chainInfo,
|
|
412
|
+
substrateApi
|
|
413
|
+
} = _ref10;
|
|
414
|
+
const chain = chainInfo.slug;
|
|
330
415
|
const tokenTypes = [_types._AssetType.LOCAL];
|
|
331
|
-
const tokenMap =
|
|
416
|
+
const tokenMap = (0, _utils3.filterAssetsByChainAndType)(assetMap, chain, tokenTypes);
|
|
332
417
|
const unsubList = Object.values(tokenMap).map(async tokenInfo => {
|
|
333
418
|
try {
|
|
334
419
|
const onChainInfo = (0, _utils2._getTokenOnChainInfo)(tokenInfo);
|
|
335
420
|
|
|
336
421
|
// Get Token Balance
|
|
337
422
|
// @ts-ignore
|
|
338
|
-
const unsub = await
|
|
423
|
+
const unsub = await substrateApi.query.ormlTokens.accounts.multi(addresses.map(address => [address, onChainInfo]), balances => {
|
|
339
424
|
const items = balances.map((balance, index) => {
|
|
340
425
|
const tokenBalance = {
|
|
341
426
|
reserved: balance.reserved || new _util.BN(0),
|
|
@@ -359,7 +444,7 @@ async function subscribeOrmlTokensPallet(addresses, chain, api, callBack) {
|
|
|
359
444
|
}
|
|
360
445
|
};
|
|
361
446
|
});
|
|
362
|
-
|
|
447
|
+
callback(items);
|
|
363
448
|
});
|
|
364
449
|
return unsub;
|
|
365
450
|
} catch (err) {
|
|
@@ -374,4 +459,4 @@ async function subscribeOrmlTokensPallet(addresses, chain, api, callBack) {
|
|
|
374
459
|
}).catch(console.error);
|
|
375
460
|
});
|
|
376
461
|
};
|
|
377
|
-
}
|
|
462
|
+
};
|