@subwallet/extension-base 1.3.27-1 → 1.3.28-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/background/KoniTypes.d.ts +7 -1
- package/cjs/constants/index.js +1 -1
- package/cjs/koni/background/handlers/Extension.js +13 -0
- package/cjs/packageInfo.js +1 -1
- package/cjs/services/balance-service/helpers/subscribe/substrate/index.js +89 -33
- package/cjs/services/chain-service/constants.js +2 -1
- package/cjs/services/chain-service/utils/index.js +11 -2
- package/cjs/services/earning-service/handlers/base.js +3 -0
- package/cjs/services/earning-service/handlers/native-staking/dtao.js +97 -36
- package/cjs/services/earning-service/handlers/native-staking/tao.js +34 -4
- package/cjs/services/earning-service/service.js +13 -1
- package/cjs/services/migration-service/index.js +2 -5
- package/cjs/services/migration-service/scripts/index.js +4 -8
- package/cjs/services/price-service/coingecko.js +49 -0
- package/cjs/utils/asset.js +17 -2
- package/constants/index.d.ts +1 -1
- package/constants/index.js +1 -1
- package/koni/background/handlers/Extension.d.ts +1 -0
- package/koni/background/handlers/Extension.js +13 -0
- package/package.json +7 -7
- package/packageInfo.js +1 -1
- package/services/balance-service/helpers/subscribe/substrate/index.js +76 -23
- package/services/chain-service/constants.d.ts +1 -0
- package/services/chain-service/constants.js +2 -1
- package/services/chain-service/utils/index.d.ts +1 -0
- package/services/chain-service/utils/index.js +6 -0
- package/services/earning-service/handlers/base.d.ts +3 -2
- package/services/earning-service/handlers/base.js +3 -0
- package/services/earning-service/handlers/native-staking/dtao.d.ts +7 -2
- package/services/earning-service/handlers/native-staking/dtao.js +89 -31
- package/services/earning-service/handlers/native-staking/tao.d.ts +4 -1
- package/services/earning-service/handlers/native-staking/tao.js +31 -1
- package/services/earning-service/service.d.ts +2 -1
- package/services/earning-service/service.js +13 -1
- package/services/migration-service/index.js +2 -5
- package/services/migration-service/scripts/index.js +4 -8
- package/services/price-service/coingecko.js +48 -0
- package/types/yield/actions/join/submit.d.ts +3 -0
- package/types/yield/actions/others.d.ts +7 -0
- package/utils/asset.d.ts +1 -0
- package/utils/asset.js +14 -0
|
@@ -15,7 +15,7 @@ import { AuthUrls } from '@subwallet/extension-base/services/request-service/typ
|
|
|
15
15
|
import { CrowdloanContributionsResponse } from '@subwallet/extension-base/services/subscan-service/types';
|
|
16
16
|
import { SWTransactionResponse, SWTransactionResult } from '@subwallet/extension-base/services/transaction-service/types';
|
|
17
17
|
import { WalletConnectNotSupportRequest, WalletConnectSessionRequest } from '@subwallet/extension-base/services/wallet-connect-service/types';
|
|
18
|
-
import { AccountChainType, AccountJson, AccountsWithCurrentAddress, AddressJson, BalanceJson, BaseRequestSign, BuyServiceInfo, BuyTokenInfo, CommonOptimalSwapPath, CommonOptimalTransferPath, CurrentAccountInfo, EarningRewardHistoryItem, EarningRewardJson, EarningStatus, HandleYieldStepParams, InternalRequestSign, LeavePoolAdditionalData, NominationPoolInfo, OptimalSwapPathParamsV2, OptimalYieldPath, OptimalYieldPathParams, RequestAccountBatchExportV2, RequestAccountCreateSuriV2, RequestAccountNameValidate, RequestAccountProxyEdit, RequestAccountProxyForget, RequestBatchJsonGetAccountInfo, RequestBatchRestoreV2, RequestBounceableValidate, RequestChangeAllowOneSign, RequestChangeTonWalletContractVersion, RequestCheckCrossChainTransfer, RequestCheckPublicAndSecretKey, RequestCheckTransfer, RequestCrossChainTransfer, RequestDeriveCreateMultiple, RequestDeriveCreateV3, RequestDeriveValidateV2, RequestEarlyValidateYield, RequestExportAccountProxyMnemonic, RequestGetAllTonWalletContractVersion, RequestGetAmountForPair, RequestGetDeriveAccounts, RequestGetDeriveSuggestion, RequestGetTokensCanPayFee, RequestGetYieldPoolTargets, RequestInputAccountSubscribe, RequestJsonGetAccountInfo, RequestJsonRestoreV2, RequestMetadataHash, RequestMnemonicCreateV2, RequestMnemonicValidateV2, RequestPrivateKeyValidateV2, RequestShortenMetadata, RequestStakeCancelWithdrawal, RequestStakeClaimReward, RequestSubmitProcessTransaction, RequestSubscribeProcessById, RequestTransfer, RequestUnlockDotCheckCanMint, RequestUnlockDotSubscribeMintedData, RequestYieldLeave, RequestYieldStepSubmit, RequestYieldWithdrawal, ResponseAccountBatchExportV2, ResponseAccountCreateSuriV2, ResponseAccountNameValidate, ResponseBatchJsonGetAccountInfo, ResponseCheckPublicAndSecretKey, ResponseDeriveValidateV2, ResponseEarlyValidateYield, ResponseExportAccountProxyMnemonic, ResponseGetAllTonWalletContractVersion, ResponseGetDeriveAccounts, ResponseGetDeriveSuggestion, ResponseGetYieldPoolTargets, ResponseInputAccountSubscribe, ResponseJsonGetAccountInfo, ResponseMetadataHash, ResponseMnemonicCreateV2, ResponseMnemonicValidateV2, ResponsePrivateKeyValidateV2, ResponseShortenMetadata, ResponseSubscribeProcessAlive, ResponseSubscribeProcessById, StorageDataInterface, SubmitYieldStepData, SubnetYieldPositionInfo, SwapPair, SwapQuoteResponse, SwapRequest, SwapRequestResult, SwapSubmitParams, SwapTxData, TokenSpendingApprovalParams, UnlockDotTransactionNft, UnstakingStatus, ValidateSwapProcessParams, ValidateYieldProcessParams, YieldPoolInfo, YieldPositionInfo } from '@subwallet/extension-base/types';
|
|
18
|
+
import { AccountChainType, AccountJson, AccountsWithCurrentAddress, AddressJson, BalanceJson, BaseRequestSign, BuyServiceInfo, BuyTokenInfo, CommonOptimalSwapPath, CommonOptimalTransferPath, CurrentAccountInfo, EarningRewardHistoryItem, EarningRewardJson, EarningStatus, HandleYieldStepParams, InternalRequestSign, LeavePoolAdditionalData, NominationPoolInfo, OptimalSwapPathParamsV2, OptimalYieldPath, OptimalYieldPathParams, RequestAccountBatchExportV2, RequestAccountCreateSuriV2, RequestAccountNameValidate, RequestAccountProxyEdit, RequestAccountProxyForget, RequestBatchJsonGetAccountInfo, RequestBatchRestoreV2, RequestBounceableValidate, RequestChangeAllowOneSign, RequestChangeTonWalletContractVersion, RequestCheckCrossChainTransfer, RequestCheckPublicAndSecretKey, RequestCheckTransfer, RequestCrossChainTransfer, RequestDeriveCreateMultiple, RequestDeriveCreateV3, RequestDeriveValidateV2, RequestEarlyValidateYield, RequestEarningSlippage, RequestExportAccountProxyMnemonic, RequestGetAllTonWalletContractVersion, RequestGetAmountForPair, RequestGetDeriveAccounts, RequestGetDeriveSuggestion, RequestGetTokensCanPayFee, RequestGetYieldPoolTargets, RequestInputAccountSubscribe, RequestJsonGetAccountInfo, RequestJsonRestoreV2, RequestMetadataHash, RequestMnemonicCreateV2, RequestMnemonicValidateV2, RequestPrivateKeyValidateV2, RequestShortenMetadata, RequestStakeCancelWithdrawal, RequestStakeClaimReward, RequestSubmitProcessTransaction, RequestSubscribeProcessById, RequestTransfer, RequestUnlockDotCheckCanMint, RequestUnlockDotSubscribeMintedData, RequestYieldLeave, RequestYieldStepSubmit, RequestYieldWithdrawal, ResponseAccountBatchExportV2, ResponseAccountCreateSuriV2, ResponseAccountNameValidate, ResponseBatchJsonGetAccountInfo, ResponseCheckPublicAndSecretKey, ResponseDeriveValidateV2, ResponseEarlyValidateYield, ResponseExportAccountProxyMnemonic, ResponseGetAllTonWalletContractVersion, ResponseGetDeriveAccounts, ResponseGetDeriveSuggestion, ResponseGetYieldPoolTargets, ResponseInputAccountSubscribe, ResponseJsonGetAccountInfo, ResponseMetadataHash, ResponseMnemonicCreateV2, ResponseMnemonicValidateV2, ResponsePrivateKeyValidateV2, ResponseShortenMetadata, ResponseSubscribeProcessAlive, ResponseSubscribeProcessById, StorageDataInterface, SubmitYieldStepData, SubnetYieldPositionInfo, SwapPair, SwapQuoteResponse, SwapRequest, SwapRequestResult, SwapSubmitParams, SwapTxData, TokenSpendingApprovalParams, UnlockDotTransactionNft, UnstakingStatus, ValidateSwapProcessParams, ValidateYieldProcessParams, YieldPoolInfo, YieldPoolType, YieldPositionInfo } from '@subwallet/extension-base/types';
|
|
19
19
|
import { RequestSubmitTransfer, RequestSubscribeTransfer, ResponseSubscribeTransfer } from '@subwallet/extension-base/types/balance/transfer';
|
|
20
20
|
import { RequestClaimBridge } from '@subwallet/extension-base/types/bridge';
|
|
21
21
|
import { GetNotificationParams, RequestIsClaimedPolygonBridge, RequestSwitchStatusParams } from '@subwallet/extension-base/types/notification';
|
|
@@ -1167,6 +1167,11 @@ export interface BondingSubmitParams extends BaseRequestSign {
|
|
|
1167
1167
|
lockPeriod?: number;
|
|
1168
1168
|
poolInfo?: {
|
|
1169
1169
|
metadata: SubnetYieldPositionInfo;
|
|
1170
|
+
type: YieldPoolType;
|
|
1171
|
+
chain: string;
|
|
1172
|
+
};
|
|
1173
|
+
poolPosition?: {
|
|
1174
|
+
chain: string;
|
|
1170
1175
|
};
|
|
1171
1176
|
}
|
|
1172
1177
|
export declare type RequestBondingSubmit = InternalRequestSign<BondingSubmitParams>;
|
|
@@ -1687,6 +1692,7 @@ export interface KoniRequestSignatures {
|
|
|
1687
1692
|
'pri(yield.withdraw.submit)': [RequestYieldWithdrawal, SWTransactionResponse];
|
|
1688
1693
|
'pri(yield.cancelWithdrawal.submit)': [RequestStakeCancelWithdrawal, SWTransactionResponse];
|
|
1689
1694
|
'pri(yield.claimReward.submit)': [RequestStakeClaimReward, SWTransactionResponse];
|
|
1695
|
+
'pri(yield.getEarningSlippage)': [RequestEarningSlippage, number];
|
|
1690
1696
|
'pri(transaction.history.getSubscription)': [null, TransactionHistoryItem[], TransactionHistoryItem[]];
|
|
1691
1697
|
'pri(transaction.history.subscribe)': [RequestSubscribeHistory, ResponseSubscribeHistory, TransactionHistoryItem[]];
|
|
1692
1698
|
'pri(transfer.getMaxTransferable)': [RequestMaxTransferable, AmountData];
|
package/cjs/constants/index.js
CHANGED
|
@@ -160,7 +160,7 @@ const MANTA_PAY_BALANCE_INTERVAL = 30000;
|
|
|
160
160
|
exports.MANTA_PAY_BALANCE_INTERVAL = MANTA_PAY_BALANCE_INTERVAL;
|
|
161
161
|
const BITTENSOR_REFRESH_STAKE_INFO = 30000;
|
|
162
162
|
exports.BITTENSOR_REFRESH_STAKE_INFO = BITTENSOR_REFRESH_STAKE_INFO;
|
|
163
|
-
const BITTENSOR_REFRESH_STAKE_APY =
|
|
163
|
+
const BITTENSOR_REFRESH_STAKE_APY = 30000;
|
|
164
164
|
exports.BITTENSOR_REFRESH_STAKE_APY = BITTENSOR_REFRESH_STAKE_APY;
|
|
165
165
|
const CRON_REFRESH_EARNING_REWARD_HISTORY_INTERVAL = 15 * BASE_MINUTE_INTERVAL;
|
|
166
166
|
exports.CRON_REFRESH_EARNING_REWARD_HISTORY_INTERVAL = CRON_REFRESH_EARNING_REWARD_HISTORY_INTERVAL;
|
|
@@ -3485,6 +3485,17 @@ class KoniExtension {
|
|
|
3485
3485
|
chainType: (poolHandler === null || poolHandler === void 0 ? void 0 : poolHandler.transactionChainType) || _KoniTypes.ChainType.SUBSTRATE
|
|
3486
3486
|
});
|
|
3487
3487
|
}
|
|
3488
|
+
async yieldGetEarningSlippage(params) {
|
|
3489
|
+
const {
|
|
3490
|
+
slug
|
|
3491
|
+
} = params;
|
|
3492
|
+
const poolHandler = this.#koniState.earningService.getPoolHandler(slug);
|
|
3493
|
+
if (!poolHandler) {
|
|
3494
|
+
return this.#koniState.transactionService.generateBeforeHandleResponseErrors([new _TransactionError.TransactionError(_types3.BasicTxErrorType.INVALID_PARAMS)]);
|
|
3495
|
+
}
|
|
3496
|
+
const slippage = await this.#koniState.earningService.yieldGetEarningSlippage(params);
|
|
3497
|
+
return slippage;
|
|
3498
|
+
}
|
|
3488
3499
|
|
|
3489
3500
|
/* Campaign */
|
|
3490
3501
|
|
|
@@ -4404,6 +4415,8 @@ class KoniExtension {
|
|
|
4404
4415
|
return await this.yieldSubmitCancelWithdrawal(request);
|
|
4405
4416
|
case 'pri(yield.claimReward.submit)':
|
|
4406
4417
|
return await this.yieldSubmitClaimReward(request);
|
|
4418
|
+
case 'pri(yield.getEarningSlippage)':
|
|
4419
|
+
return await this.yieldGetEarningSlippage(request);
|
|
4407
4420
|
|
|
4408
4421
|
/* Others */
|
|
4409
4422
|
|
package/cjs/packageInfo.js
CHANGED
|
@@ -19,7 +19,6 @@ var _wasm = require("@subwallet/extension-base/koni/api/contract-handler/wasm");
|
|
|
19
19
|
var _utils = require("@subwallet/extension-base/koni/api/contract-handler/wasm/utils");
|
|
20
20
|
var _constants2 = require("@subwallet/extension-base/services/chain-service/constants");
|
|
21
21
|
var _utils2 = require("@subwallet/extension-base/services/chain-service/utils");
|
|
22
|
-
var _dtao = require("@subwallet/extension-base/services/earning-service/handlers/native-staking/dtao");
|
|
23
22
|
var _utils3 = require("@subwallet/extension-base/utils");
|
|
24
23
|
var _bignumber = _interopRequireDefault(require("bignumber.js"));
|
|
25
24
|
var _evm = require("../evm");
|
|
@@ -36,6 +35,7 @@ const subscribeSubstrateBalance = async (addresses, chainInfo, assetMap, substra
|
|
|
36
35
|
let unsubBridgedToken;
|
|
37
36
|
let unsubGrcToken;
|
|
38
37
|
let unsubVftToken;
|
|
38
|
+
let unsubSubnetAlphaToken;
|
|
39
39
|
const chain = chainInfo.slug;
|
|
40
40
|
const baseParams = {
|
|
41
41
|
addresses,
|
|
@@ -72,6 +72,9 @@ const subscribeSubstrateBalance = async (addresses, chainInfo, assetMap, substra
|
|
|
72
72
|
if (_constants2._BALANCE_CHAIN_GROUP.supportBridged.includes(chain)) {
|
|
73
73
|
unsubBridgedToken = await subscribeForeignAssetBalance(substrateParams);
|
|
74
74
|
}
|
|
75
|
+
if (_constants2._BALANCE_CHAIN_GROUP.bittensor.includes(chain)) {
|
|
76
|
+
unsubSubnetAlphaToken = await subscribeSubnetAlphaPallet(substrateParams);
|
|
77
|
+
}
|
|
75
78
|
|
|
76
79
|
/**
|
|
77
80
|
* Some substrate chain use evm account format but not have evm connection and support ERC20 contract,
|
|
@@ -100,7 +103,7 @@ const subscribeSubstrateBalance = async (addresses, chainInfo, assetMap, substra
|
|
|
100
103
|
console.warn(err);
|
|
101
104
|
}
|
|
102
105
|
return () => {
|
|
103
|
-
var _unsubGrcToken, _unsubVftToken;
|
|
106
|
+
var _unsubGrcToken, _unsubVftToken, _unsubSubnetAlphaToke;
|
|
104
107
|
unsubNativeToken && unsubNativeToken();
|
|
105
108
|
unsubLocalToken && unsubLocalToken();
|
|
106
109
|
unsubEvmContractToken && unsubEvmContractToken();
|
|
@@ -108,6 +111,7 @@ const subscribeSubstrateBalance = async (addresses, chainInfo, assetMap, substra
|
|
|
108
111
|
unsubBridgedToken && unsubBridgedToken();
|
|
109
112
|
(_unsubGrcToken = unsubGrcToken) === null || _unsubGrcToken === void 0 ? void 0 : _unsubGrcToken();
|
|
110
113
|
(_unsubVftToken = unsubVftToken) === null || _unsubVftToken === void 0 ? void 0 : _unsubVftToken();
|
|
114
|
+
(_unsubSubnetAlphaToke = unsubSubnetAlphaToken) === null || _unsubSubnetAlphaToke === void 0 ? void 0 : _unsubSubnetAlphaToke();
|
|
111
115
|
};
|
|
112
116
|
};
|
|
113
117
|
|
|
@@ -139,27 +143,20 @@ const subscribeWithSystemAccountPallet = async _ref => {
|
|
|
139
143
|
args: addresses
|
|
140
144
|
});
|
|
141
145
|
}
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
const stakeInfo = (await substrateApi.api.call.stakeInfoRuntimeApi.getStakeInfoForColdkey(address)).toJSON();
|
|
146
|
-
const price = await (0, _dtao.getTaoToAlphaMapping)(substrateApi);
|
|
147
|
-
let TaoTotalStake = new _bignumber.default(0);
|
|
148
|
-
if (stakeInfo) {
|
|
149
|
-
for (const validator of Object.values(stakeInfo)) {
|
|
150
|
-
const stake = new _bignumber.default(validator.stake);
|
|
151
|
-
const netuid = validator.netuid;
|
|
152
|
-
const taoToAlphaPrice = price[netuid] ? new _bignumber.default(price[netuid]) : new _bignumber.default(1);
|
|
153
|
-
const taoStake = stake.multipliedBy(taoToAlphaPrice).toFixed(0).toString();
|
|
154
|
-
TaoTotalStake = TaoTotalStake.plus(taoStake);
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
return new _bignumber.default(TaoTotalStake.toString());
|
|
158
|
-
}));
|
|
159
|
-
}
|
|
160
|
-
const subscription = substrateApi.subscribeDataWithMulti(params, rs => {
|
|
146
|
+
|
|
147
|
+
// eslint-disable-next-line @typescript-eslint/no-misused-promises
|
|
148
|
+
const subscription = substrateApi.subscribeDataWithMulti(params, async rs => {
|
|
161
149
|
const balances = rs[systemAccountKey];
|
|
162
150
|
const poolMemberInfos = rs[poolMembersKey];
|
|
151
|
+
let bittensorStakingBalances = new Array(addresses.length).fill(new _bignumber.default(0));
|
|
152
|
+
if (_constants2._BALANCE_CHAIN_GROUP.bittensor.includes(chainInfo.slug)) {
|
|
153
|
+
const rawData = await substrateApi.api.call.stakeInfoRuntimeApi.getStakeInfoForColdkeys(addresses);
|
|
154
|
+
const values = rawData.toPrimitive();
|
|
155
|
+
bittensorStakingBalances = values.map(_ref2 => {
|
|
156
|
+
let [, stakes] = _ref2;
|
|
157
|
+
return stakes.filter(i => i.netuid === 0).reduce((previousValue, currentValue) => previousValue.plus(currentValue.stake), (0, _bignumber.default)(0));
|
|
158
|
+
});
|
|
159
|
+
}
|
|
163
160
|
const items = balances.map((_balance, index) => {
|
|
164
161
|
const balanceInfo = _balance;
|
|
165
162
|
const transferableBalance = (0, _systemPallet._getSystemPalletTransferable)(balanceInfo, (0, _utils2._getChainExistentialDeposit)(chainInfo), extrinsicType);
|
|
@@ -200,7 +197,7 @@ const checkNominationPoolCompleteMigrated = async substrateApi => {
|
|
|
200
197
|
const nominationPoolInfoLength = nominationPoolInfoRaw.length;
|
|
201
198
|
return nominationPoolCounter !== 0 && nominationPoolInfoLength !== 0;
|
|
202
199
|
};
|
|
203
|
-
const subscribeForeignAssetBalance = async
|
|
200
|
+
const subscribeForeignAssetBalance = async _ref3 => {
|
|
204
201
|
let {
|
|
205
202
|
addresses,
|
|
206
203
|
assetMap,
|
|
@@ -208,7 +205,7 @@ const subscribeForeignAssetBalance = async _ref2 => {
|
|
|
208
205
|
chainInfo,
|
|
209
206
|
extrinsicType,
|
|
210
207
|
substrateApi
|
|
211
|
-
} =
|
|
208
|
+
} = _ref3;
|
|
212
209
|
const foreignAssetsAccountKey = 'query_foreignAssets_account';
|
|
213
210
|
const tokenMap = (0, _utils3.filterAssetsByChainAndType)(assetMap, chainInfo.slug, [_types._AssetType.LOCAL]);
|
|
214
211
|
const unsubList = await Promise.all(Object.values(tokenMap).map(tokenInfo => {
|
|
@@ -268,19 +265,19 @@ function extractOkResponse(response) {
|
|
|
268
265
|
}
|
|
269
266
|
return undefined;
|
|
270
267
|
}
|
|
271
|
-
const subscribePSP22Balance =
|
|
268
|
+
const subscribePSP22Balance = _ref4 => {
|
|
272
269
|
let {
|
|
273
270
|
addresses,
|
|
274
271
|
assetMap,
|
|
275
272
|
callback,
|
|
276
273
|
chainInfo,
|
|
277
274
|
substrateApi
|
|
278
|
-
} =
|
|
275
|
+
} = _ref4;
|
|
279
276
|
const chain = chainInfo.slug;
|
|
280
277
|
const psp22ContractMap = {};
|
|
281
278
|
const tokenList = (0, _utils3.filterAssetsByChainAndType)(assetMap, chain, [_types._AssetType.PSP22]);
|
|
282
|
-
Object.entries(tokenList).forEach(
|
|
283
|
-
let [slug, tokenInfo] =
|
|
279
|
+
Object.entries(tokenList).forEach(_ref5 => {
|
|
280
|
+
let [slug, tokenInfo] = _ref5;
|
|
284
281
|
psp22ContractMap[slug] = (0, _wasm.getPSP22ContractPromise)(substrateApi.api, (0, _utils2._getContractAddressOfToken)(tokenInfo));
|
|
285
282
|
});
|
|
286
283
|
const getTokenBalances = () => {
|
|
@@ -327,7 +324,7 @@ const subscribePSP22Balance = _ref3 => {
|
|
|
327
324
|
clearInterval(interval);
|
|
328
325
|
};
|
|
329
326
|
};
|
|
330
|
-
const subscribeTokensAccountsPallet = async
|
|
327
|
+
const subscribeTokensAccountsPallet = async _ref6 => {
|
|
331
328
|
let {
|
|
332
329
|
addresses,
|
|
333
330
|
assetMap,
|
|
@@ -336,7 +333,7 @@ const subscribeTokensAccountsPallet = async _ref5 => {
|
|
|
336
333
|
extrinsicType,
|
|
337
334
|
includeNativeToken,
|
|
338
335
|
substrateApi
|
|
339
|
-
} =
|
|
336
|
+
} = _ref6;
|
|
340
337
|
const tokensAccountsKey = 'query_tokens_accounts';
|
|
341
338
|
const tokenTypes = includeNativeToken ? [_types._AssetType.NATIVE, _types._AssetType.LOCAL] : [_types._AssetType.LOCAL];
|
|
342
339
|
const tokenMap = (0, _utils3.filterAssetsByChainAndType)(assetMap, chainInfo.slug, tokenTypes);
|
|
@@ -375,7 +372,7 @@ const subscribeTokensAccountsPallet = async _ref5 => {
|
|
|
375
372
|
});
|
|
376
373
|
};
|
|
377
374
|
};
|
|
378
|
-
const subscribeAssetsAccountPallet = async
|
|
375
|
+
const subscribeAssetsAccountPallet = async _ref7 => {
|
|
379
376
|
let {
|
|
380
377
|
addresses,
|
|
381
378
|
assetMap,
|
|
@@ -383,7 +380,7 @@ const subscribeAssetsAccountPallet = async _ref6 => {
|
|
|
383
380
|
chainInfo,
|
|
384
381
|
extrinsicType,
|
|
385
382
|
substrateApi
|
|
386
|
-
} =
|
|
383
|
+
} = _ref7;
|
|
387
384
|
const assetsAccountKey = 'query_assets_account';
|
|
388
385
|
const tokenMap = (0, _utils3.filterAssetsByChainAndType)(assetMap, chainInfo.slug, [_types._AssetType.LOCAL]);
|
|
389
386
|
Object.values(tokenMap).forEach(token => {
|
|
@@ -444,7 +441,7 @@ const subscribeAssetsAccountPallet = async _ref6 => {
|
|
|
444
441
|
};
|
|
445
442
|
|
|
446
443
|
// eslint-disable-next-line @typescript-eslint/require-await
|
|
447
|
-
const subscribeOrmlTokensPallet = async
|
|
444
|
+
const subscribeOrmlTokensPallet = async _ref8 => {
|
|
448
445
|
let {
|
|
449
446
|
addresses,
|
|
450
447
|
assetMap,
|
|
@@ -452,7 +449,7 @@ const subscribeOrmlTokensPallet = async _ref7 => {
|
|
|
452
449
|
chainInfo,
|
|
453
450
|
extrinsicType,
|
|
454
451
|
substrateApi
|
|
455
|
-
} =
|
|
452
|
+
} = _ref8;
|
|
456
453
|
const ormlTokensAccountsKey = 'query_ormlTokens_accounts';
|
|
457
454
|
const tokenMap = (0, _utils3.filterAssetsByChainAndType)(assetMap, chainInfo.slug, [_types._AssetType.LOCAL]);
|
|
458
455
|
const unsubList = Object.values(tokenMap).map(tokenInfo => {
|
|
@@ -491,4 +488,63 @@ const subscribeOrmlTokensPallet = async _ref7 => {
|
|
|
491
488
|
unsub && unsub.unsubscribe();
|
|
492
489
|
});
|
|
493
490
|
};
|
|
491
|
+
};
|
|
492
|
+
|
|
493
|
+
// eslint-disable-next-line @typescript-eslint/require-await
|
|
494
|
+
const subscribeSubnetAlphaPallet = async _ref9 => {
|
|
495
|
+
let {
|
|
496
|
+
addresses,
|
|
497
|
+
assetMap,
|
|
498
|
+
callback,
|
|
499
|
+
chainInfo,
|
|
500
|
+
substrateApi
|
|
501
|
+
} = _ref9;
|
|
502
|
+
let cancel = false;
|
|
503
|
+
const tokenMap = (0, _utils3.filterAlphaAssetsByChain)(assetMap, chainInfo.slug);
|
|
504
|
+
const getTokenBalances = async () => {
|
|
505
|
+
if (cancel) {
|
|
506
|
+
return;
|
|
507
|
+
}
|
|
508
|
+
const rawData = await substrateApi.api.call.stakeInfoRuntimeApi.getStakeInfoForColdkeys(addresses);
|
|
509
|
+
const values = rawData.toPrimitive();
|
|
510
|
+
const converted = {};
|
|
511
|
+
for (let i = 0; i < values.length; i++) {
|
|
512
|
+
const [, stakes] = values[i];
|
|
513
|
+
const address = addresses[i];
|
|
514
|
+
converted[address] = {};
|
|
515
|
+
stakes.forEach(stakeInfo => {
|
|
516
|
+
const {
|
|
517
|
+
netuid,
|
|
518
|
+
stake
|
|
519
|
+
} = stakeInfo;
|
|
520
|
+
const currentValue = converted[address][netuid] || (0, _bignumber.default)(0);
|
|
521
|
+
converted[address][netuid] = currentValue.plus(stake);
|
|
522
|
+
});
|
|
523
|
+
}
|
|
524
|
+
for (const chainAsset of Object.values(tokenMap)) {
|
|
525
|
+
const netuid = (0, _utils2._getAssetNetuid)(chainAsset);
|
|
526
|
+
const items = Object.entries(converted).map(_ref10 => {
|
|
527
|
+
let [address, stakeMap] = _ref10;
|
|
528
|
+
const value = stakeMap[netuid] || (0, _bignumber.default)(0);
|
|
529
|
+
return {
|
|
530
|
+
address: address,
|
|
531
|
+
tokenSlug: chainAsset.slug,
|
|
532
|
+
state: _KoniTypes.APIItemState.READY,
|
|
533
|
+
free: value.toFixed(0),
|
|
534
|
+
locked: '0'
|
|
535
|
+
};
|
|
536
|
+
});
|
|
537
|
+
if (!cancel) {
|
|
538
|
+
callback(items);
|
|
539
|
+
}
|
|
540
|
+
}
|
|
541
|
+
};
|
|
542
|
+
getTokenBalances().catch(console.error);
|
|
543
|
+
const interval = setInterval(() => {
|
|
544
|
+
getTokenBalances().catch(console.error);
|
|
545
|
+
}, _constants.SUB_TOKEN_REFRESH_BALANCE_INTERVAL);
|
|
546
|
+
return () => {
|
|
547
|
+
cancel = true;
|
|
548
|
+
clearInterval(interval);
|
|
549
|
+
};
|
|
494
550
|
};
|
|
@@ -45,7 +45,8 @@ const _BALANCE_CHAIN_GROUP = {
|
|
|
45
45
|
kusama: ['kusama', 'kintsugi', 'kintsugi_test', 'interlay', 'acala', 'statemint', 'karura', 'bifrost'],
|
|
46
46
|
// perhaps there are some runtime updates
|
|
47
47
|
centrifuge: ['centrifuge'],
|
|
48
|
-
supportBridged: ['rococo_assethub', 'statemint', 'statemine', 'polimec']
|
|
48
|
+
supportBridged: ['rococo_assethub', 'statemint', 'statemine', 'polimec'],
|
|
49
|
+
bittensor: ['bittensor', 'bittensor_testnet']
|
|
49
50
|
};
|
|
50
51
|
exports._BALANCE_CHAIN_GROUP = _BALANCE_CHAIN_GROUP;
|
|
51
52
|
const _BALANCE_TOKEN_GROUP = {
|
|
@@ -98,7 +98,8 @@ var _exportNames = {
|
|
|
98
98
|
randomizeProvider: true,
|
|
99
99
|
_isAssetCanPayTxFee: true,
|
|
100
100
|
updateLatestChainInfo: true,
|
|
101
|
-
_chainInfoToChainType: true
|
|
101
|
+
_chainInfoToChainType: true,
|
|
102
|
+
_getAssetNetuid: true
|
|
102
103
|
};
|
|
103
104
|
exports._chainInfoToChainType = void 0;
|
|
104
105
|
exports._checkSmartContractSupportByChain = _checkSmartContractSupportByChain;
|
|
@@ -106,6 +107,7 @@ exports._generateCustomProviderKey = _generateCustomProviderKey;
|
|
|
106
107
|
exports._getAssetDecimals = _getAssetDecimals;
|
|
107
108
|
exports._getAssetExistentialDeposit = _getAssetExistentialDeposit;
|
|
108
109
|
exports._getAssetName = _getAssetName;
|
|
110
|
+
exports._getAssetNetuid = void 0;
|
|
109
111
|
exports._getAssetOriginChain = _getAssetOriginChain;
|
|
110
112
|
exports._getAssetPriceId = _getAssetPriceId;
|
|
111
113
|
exports._getAssetSymbol = _getAssetSymbol;
|
|
@@ -790,4 +792,11 @@ const _chainInfoToChainType = chainInfo => {
|
|
|
790
792
|
}
|
|
791
793
|
return _types3.AccountChainType.SUBSTRATE;
|
|
792
794
|
};
|
|
793
|
-
exports._chainInfoToChainType = _chainInfoToChainType;
|
|
795
|
+
exports._chainInfoToChainType = _chainInfoToChainType;
|
|
796
|
+
const _getAssetNetuid = assetInfo => {
|
|
797
|
+
var _assetInfo$metadata$n, _assetInfo$metadata;
|
|
798
|
+
// @ts-ignore
|
|
799
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-return
|
|
800
|
+
return (_assetInfo$metadata$n = (_assetInfo$metadata = assetInfo.metadata) === null || _assetInfo$metadata === void 0 ? void 0 : _assetInfo$metadata.netuid) !== null && _assetInfo$metadata$n !== void 0 ? _assetInfo$metadata$n : -1;
|
|
801
|
+
};
|
|
802
|
+
exports._getAssetNetuid = _getAssetNetuid;
|