@subwallet/extension-base 1.3.46-0 → 1.3.48-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/background/KoniTypes.js +1 -0
- package/background/errors/TransactionError.js +4 -0
- package/cjs/background/KoniTypes.js +1 -0
- package/cjs/background/errors/TransactionError.js +4 -0
- package/cjs/core/logic-validation/transfer.js +7 -0
- package/cjs/koni/api/nft/config.js +1 -1
- package/cjs/koni/api/nft/ordinal_nft/index.js +3 -2
- package/cjs/koni/background/handlers/Extension.js +21 -1
- package/cjs/koni/background/handlers/State.js +3 -0
- package/cjs/packageInfo.js +1 -1
- package/cjs/services/balance-service/helpers/subscribe/substrate/index.js +8 -14
- package/cjs/services/buy-service/index.js +2 -0
- package/cjs/services/chain-service/index.js +7 -2
- package/cjs/services/chain-service/utils/index.js +3 -0
- package/cjs/services/chain-service/utils/patch.js +1 -1
- package/cjs/services/earning-service/constants/chains.js +4 -2
- package/cjs/services/earning-service/handlers/lending/interlay.js +2 -1
- package/cjs/services/earning-service/handlers/liquid-staking/acala.js +2 -1
- package/cjs/services/earning-service/handlers/liquid-staking/bifrost.js +2 -1
- package/cjs/services/earning-service/handlers/liquid-staking/parallel.js +2 -1
- package/cjs/services/earning-service/handlers/liquid-staking/stella-swap.js +2 -1
- package/cjs/services/earning-service/handlers/native-staking/amplitude.js +32 -0
- package/cjs/services/earning-service/handlers/native-staking/astar.js +20 -1
- package/cjs/services/earning-service/handlers/native-staking/base.js +42 -30
- package/cjs/services/earning-service/handlers/native-staking/dtao.js +79 -21
- package/cjs/services/earning-service/handlers/native-staking/mythos.js +30 -1
- package/cjs/services/earning-service/handlers/native-staking/para-chain.js +17 -0
- package/cjs/services/earning-service/handlers/native-staking/relay-chain.js +49 -6
- package/cjs/services/earning-service/handlers/native-staking/tao.js +98 -32
- package/cjs/services/earning-service/handlers/nomination-pool/index.js +5 -2
- package/cjs/services/earning-service/handlers/special.js +3 -1
- package/cjs/services/earning-service/service.js +52 -7
- package/cjs/services/history-service/index.js +12 -7
- package/cjs/services/subscan-service/index.js +35 -104
- package/cjs/services/transaction-service/helpers/index.js +2 -0
- package/cjs/services/transaction-service/index.js +15 -0
- package/cjs/services/transaction-service/utils.js +10 -1
- package/cjs/strategy/api-request-strategy/index.js +1 -0
- package/cjs/strategy/api-request-strategy/utils/index.js +2 -2
- package/cjs/strategy/api-request-strategy-v2/index.js +138 -0
- package/cjs/strategy/api-request-strategy-v2/types.js +1 -0
- package/cjs/types/transaction/error.js +1 -0
- package/cjs/utils/account/transform.js +3 -2
- package/cjs/utils/gear/combine.js +4 -3
- package/cjs/utils/gear/vft.js +104 -135
- package/core/logic-validation/transfer.js +7 -0
- package/koni/api/nft/config.d.ts +1 -1
- package/koni/api/nft/config.js +1 -1
- package/koni/api/nft/ordinal_nft/index.js +3 -2
- package/koni/background/handlers/Extension.d.ts +1 -0
- package/koni/background/handlers/Extension.js +21 -1
- package/koni/background/handlers/State.js +4 -1
- package/package.json +20 -9
- package/packageInfo.js +1 -1
- package/services/balance-service/helpers/subscribe/substrate/index.js +8 -14
- package/services/buy-service/index.js +2 -0
- package/services/chain-service/index.js +7 -2
- package/services/chain-service/utils/index.js +3 -0
- package/services/chain-service/utils/patch.js +1 -1
- package/services/earning-service/constants/chains.d.ts +1 -0
- package/services/earning-service/constants/chains.js +2 -1
- package/services/earning-service/handlers/base.d.ts +5 -3
- package/services/earning-service/handlers/lending/interlay.d.ts +1 -1
- package/services/earning-service/handlers/lending/interlay.js +2 -1
- package/services/earning-service/handlers/liquid-staking/acala.d.ts +1 -1
- package/services/earning-service/handlers/liquid-staking/acala.js +2 -1
- package/services/earning-service/handlers/liquid-staking/bifrost.d.ts +1 -1
- package/services/earning-service/handlers/liquid-staking/bifrost.js +2 -1
- package/services/earning-service/handlers/liquid-staking/parallel.d.ts +1 -1
- package/services/earning-service/handlers/liquid-staking/parallel.js +2 -1
- package/services/earning-service/handlers/liquid-staking/stella-swap.d.ts +1 -1
- package/services/earning-service/handlers/liquid-staking/stella-swap.js +2 -1
- package/services/earning-service/handlers/native-staking/amplitude.d.ts +1 -0
- package/services/earning-service/handlers/native-staking/amplitude.js +32 -0
- package/services/earning-service/handlers/native-staking/astar.d.ts +2 -1
- package/services/earning-service/handlers/native-staking/astar.js +20 -1
- package/services/earning-service/handlers/native-staking/base.d.ts +4 -2
- package/services/earning-service/handlers/native-staking/base.js +42 -30
- package/services/earning-service/handlers/native-staking/dtao.d.ts +5 -3
- package/services/earning-service/handlers/native-staking/dtao.js +80 -22
- package/services/earning-service/handlers/native-staking/mythos.d.ts +2 -1
- package/services/earning-service/handlers/native-staking/mythos.js +30 -1
- package/services/earning-service/handlers/native-staking/para-chain.d.ts +1 -0
- package/services/earning-service/handlers/native-staking/para-chain.js +17 -0
- package/services/earning-service/handlers/native-staking/relay-chain.d.ts +6 -1
- package/services/earning-service/handlers/native-staking/relay-chain.js +50 -7
- package/services/earning-service/handlers/native-staking/tao.d.ts +23 -4
- package/services/earning-service/handlers/native-staking/tao.js +99 -33
- package/services/earning-service/handlers/nomination-pool/index.d.ts +3 -2
- package/services/earning-service/handlers/nomination-pool/index.js +5 -2
- package/services/earning-service/handlers/special.d.ts +2 -1
- package/services/earning-service/handlers/special.js +3 -1
- package/services/earning-service/service.d.ts +3 -1
- package/services/earning-service/service.js +52 -7
- package/services/history-service/index.js +12 -7
- package/services/subscan-service/index.d.ts +13 -27
- package/services/subscan-service/index.js +26 -95
- package/services/transaction-service/helpers/index.js +2 -0
- package/services/transaction-service/index.js +15 -0
- package/services/transaction-service/utils.js +11 -2
- package/strategy/api-request-strategy/context/base.d.ts +2 -6
- package/strategy/api-request-strategy/index.js +1 -0
- package/strategy/api-request-strategy/types.d.ts +4 -2
- package/strategy/api-request-strategy/utils/index.js +2 -2
- package/strategy/api-request-strategy-v2/index.d.ts +22 -0
- package/strategy/api-request-strategy-v2/index.js +128 -0
- package/strategy/api-request-strategy-v2/types.d.ts +11 -0
- package/strategy/api-request-strategy-v2/types.js +1 -0
- package/types/buy.d.ts +1 -1
- package/types/transaction/error.d.ts +2 -1
- package/types/transaction/error.js +1 -0
- package/types/yield/actions/join/submit.d.ts +10 -1
- package/types/yield/info/chain/info.d.ts +2 -0
- package/utils/account/transform.js +3 -2
- package/utils/gear/combine.d.ts +2 -1
- package/utils/gear/combine.js +4 -4
- package/utils/gear/vft.d.ts +20 -9
- package/utils/gear/vft.js +104 -135
|
@@ -16,7 +16,7 @@ import { AuthUrls } from '@subwallet/extension-base/services/request-service/typ
|
|
|
16
16
|
import { CrowdloanContributionsResponse } from '@subwallet/extension-base/services/subscan-service/types';
|
|
17
17
|
import { BitcoinTransactionData, SWTransactionResponse, SWTransactionResult } from '@subwallet/extension-base/services/transaction-service/types';
|
|
18
18
|
import { WalletConnectNotSupportRequest, WalletConnectSessionRequest } from '@subwallet/extension-base/services/wallet-connect-service/types';
|
|
19
|
-
import { AccountChainType, AccountJson, AccountsWithCurrentAddress, AddressJson, BalanceJson, BaseRequestSign, BuyServiceInfo, BuyTokenInfo, CommonOptimalTransferPath, CurrentAccountInfo, EarningRewardHistoryItem, EarningRewardJson, EarningStatus, HandleYieldStepParams, InternalRequestSign, LeavePoolAdditionalData, NominationPoolInfo, 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, SwapRequestV2, SwapSubmitParams, SwapTxData, TokenSpendingApprovalParams, UnlockDotTransactionNft, UnstakingStatus, ValidateSwapProcessParams, ValidateYieldProcessParams, YieldPoolInfo, YieldPoolType, YieldPositionInfo } from '@subwallet/extension-base/types';
|
|
19
|
+
import { AccountChainType, AccountJson, AccountsWithCurrentAddress, AddressJson, BalanceJson, BaseRequestSign, BuyServiceInfo, BuyTokenInfo, CommonOptimalTransferPath, CurrentAccountInfo, EarningRewardHistoryItem, EarningRewardJson, EarningStatus, HandleYieldStepParams, InternalRequestSign, LeavePoolAdditionalData, NominationPoolInfo, 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, SubmitChangeValidatorStaking, SubmitYieldJoinData, SubmitYieldStepData, SubnetYieldPositionInfo, SwapPair, SwapQuoteResponse, SwapRequest, SwapRequestResult, SwapRequestV2, SwapSubmitParams, SwapTxData, TokenSpendingApprovalParams, UnlockDotTransactionNft, UnstakingStatus, ValidateSwapProcessParams, ValidateYieldProcessParams, YieldPoolInfo, YieldPoolType, YieldPositionInfo } from '@subwallet/extension-base/types';
|
|
20
20
|
import { RequestSubmitSignPsbtTransfer, RequestSubmitTransfer, RequestSubmitTransferWithId, RequestSubscribeTransfer, ResponseSubscribeTransfer, ResponseSubscribeTransferConfirmation } from '@subwallet/extension-base/types/balance/transfer';
|
|
21
21
|
import { RequestClaimBridge } from '@subwallet/extension-base/types/bridge';
|
|
22
22
|
import { GetNotificationParams, RequestIsClaimedPolygonBridge, RequestSwitchStatusParams } from '@subwallet/extension-base/types/notification';
|
|
@@ -425,6 +425,7 @@ export declare enum ExtrinsicType {
|
|
|
425
425
|
STAKING_CANCEL_COMPOUNDING = "staking.cancel_compounding",
|
|
426
426
|
STAKING_CANCEL_UNSTAKE = "staking.cancel_unstake",
|
|
427
427
|
JOIN_YIELD_POOL = "earn.join_pool",
|
|
428
|
+
CHANGE_EARNING_VALIDATOR = "earn.nominate",
|
|
428
429
|
MINT_VDOT = "earn.mint_vdot",
|
|
429
430
|
MINT_LDOT = "earn.mint_ldot",
|
|
430
431
|
MINT_SDOT = "earn.mint_sdot",
|
|
@@ -458,6 +459,7 @@ export interface ExtrinsicDataTypeMap {
|
|
|
458
459
|
[ExtrinsicType.STAKING_LEAVE_POOL]: RequestYieldLeave;
|
|
459
460
|
[ExtrinsicType.STAKING_BOND]: RequestStakePoolingBonding;
|
|
460
461
|
[ExtrinsicType.STAKING_UNBOND]: RequestUnbondingSubmit;
|
|
462
|
+
[ExtrinsicType.CHANGE_EARNING_VALIDATOR]: SubmitChangeValidatorStaking;
|
|
461
463
|
[ExtrinsicType.STAKING_CLAIM_REWARD]: RequestStakeClaimReward;
|
|
462
464
|
[ExtrinsicType.STAKING_WITHDRAW]: RequestYieldWithdrawal;
|
|
463
465
|
[ExtrinsicType.STAKING_COMPOUNDING]: RequestTuringStakeCompound;
|
|
@@ -1336,6 +1338,9 @@ export interface NominationInfo {
|
|
|
1336
1338
|
validatorMinStake?: string;
|
|
1337
1339
|
status: EarningStatus;
|
|
1338
1340
|
originActiveStake?: string;
|
|
1341
|
+
commission?: number;
|
|
1342
|
+
expectedReturn?: number;
|
|
1343
|
+
eraRewardPoint?: string;
|
|
1339
1344
|
}
|
|
1340
1345
|
export interface UnstakingInfo {
|
|
1341
1346
|
chain: string;
|
|
@@ -1931,6 +1936,7 @@ export interface KoniRequestSignatures {
|
|
|
1931
1936
|
'pri(yield.cancelWithdrawal.submit)': [RequestStakeCancelWithdrawal, SWTransactionResponse];
|
|
1932
1937
|
'pri(yield.claimReward.submit)': [RequestStakeClaimReward, SWTransactionResponse];
|
|
1933
1938
|
'pri(yield.getEarningSlippage)': [RequestEarningSlippage, EarningSlippageResult];
|
|
1939
|
+
'pri(yield.changeValidator.submit)': [SubmitYieldJoinData, SWTransactionResponse];
|
|
1934
1940
|
'pri(transaction.history.getSubscription)': [null, TransactionHistoryItem[], TransactionHistoryItem[]];
|
|
1935
1941
|
'pri(transaction.history.subscribe)': [RequestSubscribeHistory, ResponseSubscribeHistory, TransactionHistoryItem[]];
|
|
1936
1942
|
'pri(transfer.getMaxTransferable)': [RequestMaxTransferable, AmountData];
|
package/background/KoniTypes.js
CHANGED
|
@@ -84,6 +84,7 @@ export let ExtrinsicType;
|
|
|
84
84
|
ExtrinsicType["STAKING_CANCEL_COMPOUNDING"] = "staking.cancel_compounding";
|
|
85
85
|
ExtrinsicType["STAKING_CANCEL_UNSTAKE"] = "staking.cancel_unstake";
|
|
86
86
|
ExtrinsicType["JOIN_YIELD_POOL"] = "earn.join_pool";
|
|
87
|
+
ExtrinsicType["CHANGE_EARNING_VALIDATOR"] = "earn.nominate";
|
|
87
88
|
ExtrinsicType["MINT_VDOT"] = "earn.mint_vdot";
|
|
88
89
|
ExtrinsicType["MINT_LDOT"] = "earn.mint_ldot";
|
|
89
90
|
ExtrinsicType["MINT_SDOT"] = "earn.mint_sdot";
|
|
@@ -87,6 +87,10 @@ const defaultErrorMap = {
|
|
|
87
87
|
message: detectTranslate('Unable to fetch staking data. Re-enable current network and try again'),
|
|
88
88
|
code: undefined
|
|
89
89
|
},
|
|
90
|
+
[StakingTxErrorType.REMAINING_AMOUNT_TOO_LOW]: {
|
|
91
|
+
message: detectTranslate('Remaining amount too low'),
|
|
92
|
+
code: undefined
|
|
93
|
+
},
|
|
90
94
|
[TransferTxErrorType.RECEIVER_NOT_ENOUGH_EXISTENTIAL_DEPOSIT]: {
|
|
91
95
|
message: detectTranslate('Receiver is not enough existential deposit'),
|
|
92
96
|
code: undefined
|
|
@@ -99,6 +99,7 @@ exports.ExtrinsicType = ExtrinsicType;
|
|
|
99
99
|
ExtrinsicType["STAKING_CANCEL_COMPOUNDING"] = "staking.cancel_compounding";
|
|
100
100
|
ExtrinsicType["STAKING_CANCEL_UNSTAKE"] = "staking.cancel_unstake";
|
|
101
101
|
ExtrinsicType["JOIN_YIELD_POOL"] = "earn.join_pool";
|
|
102
|
+
ExtrinsicType["CHANGE_EARNING_VALIDATOR"] = "earn.nominate";
|
|
102
103
|
ExtrinsicType["MINT_VDOT"] = "earn.mint_vdot";
|
|
103
104
|
ExtrinsicType["MINT_LDOT"] = "earn.mint_ldot";
|
|
104
105
|
ExtrinsicType["MINT_SDOT"] = "earn.mint_sdot";
|
|
@@ -92,6 +92,10 @@ const defaultErrorMap = {
|
|
|
92
92
|
message: (0, _utils.detectTranslate)('Unable to fetch staking data. Re-enable current network and try again'),
|
|
93
93
|
code: undefined
|
|
94
94
|
},
|
|
95
|
+
[_types.StakingTxErrorType.REMAINING_AMOUNT_TOO_LOW]: {
|
|
96
|
+
message: (0, _utils.detectTranslate)('Remaining amount too low'),
|
|
97
|
+
code: undefined
|
|
98
|
+
},
|
|
95
99
|
[_types.TransferTxErrorType.RECEIVER_NOT_ENOUGH_EXISTENTIAL_DEPOSIT]: {
|
|
96
100
|
message: (0, _utils.detectTranslate)('Receiver is not enough existential deposit'),
|
|
97
101
|
code: undefined
|
|
@@ -204,6 +204,13 @@ function checkSupportForAction(validationResponse, blockedActionsMap) {
|
|
|
204
204
|
currentAction = `${extrinsicType}___${chain}`;
|
|
205
205
|
break;
|
|
206
206
|
}
|
|
207
|
+
case _KoniTypes.ExtrinsicType.CHANGE_EARNING_VALIDATOR:
|
|
208
|
+
{
|
|
209
|
+
const data = validationResponse.data;
|
|
210
|
+
const slug = data.slug;
|
|
211
|
+
currentAction = `${extrinsicType}___${slug}`;
|
|
212
|
+
break;
|
|
213
|
+
}
|
|
207
214
|
case _KoniTypes.ExtrinsicType.STAKING_CLAIM_REWARD:
|
|
208
215
|
{
|
|
209
216
|
const data = validationResponse.data;
|
|
@@ -100,7 +100,7 @@ const IPFS2_RMRK = 'https://ipfs2.rmrk.link/ipfs/'; // ????
|
|
|
100
100
|
exports.IPFS2_RMRK = IPFS2_RMRK;
|
|
101
101
|
const IPFS_ETH_ARAGON = 'https://ipfs.eth.aragon.network/ipfs/'; // 400
|
|
102
102
|
exports.IPFS_ETH_ARAGON = IPFS_ETH_ARAGON;
|
|
103
|
-
const SUBWALLET_IPFS = 'https://ipfs.subwallet.app/ipfs/'; // ???
|
|
103
|
+
const SUBWALLET_IPFS = 'https://ipfs-files.subwallet.app/ipfs/'; // ???
|
|
104
104
|
exports.SUBWALLET_IPFS = SUBWALLET_IPFS;
|
|
105
105
|
let SUPPORTED_NFT_NETWORKS;
|
|
106
106
|
exports.SUPPORTED_NFT_NETWORKS = SUPPORTED_NFT_NETWORKS;
|
|
@@ -52,10 +52,11 @@ class OrdinalNftApi extends _nft.BaseNftApi {
|
|
|
52
52
|
this.subscanService = _subscanService.SubscanService.getInstance();
|
|
53
53
|
}
|
|
54
54
|
async handleNft(address, handleNftParams) {
|
|
55
|
-
const
|
|
55
|
+
const groupId = this.subscanService.getGroupId();
|
|
56
|
+
const events = await this.subscanService.getAccountRemarkEvents(groupId, this.subscanChain, address);
|
|
56
57
|
if (events && events.length) {
|
|
57
58
|
const extrinsicIds = events.map(data => data.extrinsic_index);
|
|
58
|
-
const extrinsicParams = await this.subscanService.getExtrinsicParams(this.subscanChain, extrinsicIds);
|
|
59
|
+
const extrinsicParams = await this.subscanService.getExtrinsicParams(groupId, this.subscanChain, extrinsicIds);
|
|
59
60
|
const items = [];
|
|
60
61
|
for (const data of extrinsicParams) {
|
|
61
62
|
const {
|
|
@@ -4061,6 +4061,25 @@ class KoniExtension {
|
|
|
4061
4061
|
const slippage = await this.#koniState.earningService.yieldGetEarningSlippage(params);
|
|
4062
4062
|
return slippage;
|
|
4063
4063
|
}
|
|
4064
|
+
async handleYieldChangeValidator(params) {
|
|
4065
|
+
const {
|
|
4066
|
+
address,
|
|
4067
|
+
slug
|
|
4068
|
+
} = params;
|
|
4069
|
+
const poolHandler = this.#koniState.earningService.getPoolHandler(slug);
|
|
4070
|
+
if (!poolHandler) {
|
|
4071
|
+
return this.#koniState.transactionService.generateBeforeHandleResponseErrors([new _TransactionError.TransactionError(_types4.BasicTxErrorType.INVALID_PARAMS)]);
|
|
4072
|
+
}
|
|
4073
|
+
const extrinsic = await this.#koniState.earningService.handleYieldChangeValidator(params);
|
|
4074
|
+
return await this.#koniState.transactionService.handleTransaction({
|
|
4075
|
+
address,
|
|
4076
|
+
chain: poolHandler.chain,
|
|
4077
|
+
transaction: extrinsic,
|
|
4078
|
+
data: params,
|
|
4079
|
+
extrinsicType: _KoniTypes.ExtrinsicType.CHANGE_EARNING_VALIDATOR,
|
|
4080
|
+
chainType: _KoniTypes.ChainType.SUBSTRATE
|
|
4081
|
+
});
|
|
4082
|
+
}
|
|
4064
4083
|
|
|
4065
4084
|
/* Campaign */
|
|
4066
4085
|
|
|
@@ -4935,7 +4954,8 @@ class KoniExtension {
|
|
|
4935
4954
|
return await this.yieldSubmitClaimReward(request);
|
|
4936
4955
|
case 'pri(yield.getEarningSlippage)':
|
|
4937
4956
|
return await this.yieldGetEarningSlippage(request);
|
|
4938
|
-
|
|
4957
|
+
case 'pri(yield.changeValidator.submit)':
|
|
4958
|
+
return await this.handleYieldChangeValidator(request);
|
|
4939
4959
|
/* Others */
|
|
4940
4960
|
|
|
4941
4961
|
/* Actions */
|
package/cjs/packageInfo.js
CHANGED
|
@@ -338,17 +338,15 @@ const subscribeTokensAccountsPallet = async _ref6 => {
|
|
|
338
338
|
const tokensAccountsKey = 'query_tokens_accounts';
|
|
339
339
|
const tokenTypes = includeNativeToken ? [_types._AssetType.NATIVE, _types._AssetType.LOCAL] : [_types._AssetType.LOCAL];
|
|
340
340
|
const tokenMap = (0, _utils3.filterAssetsByChainAndType)(assetMap, chainInfo.slug, tokenTypes);
|
|
341
|
-
|
|
342
|
-
// Hotfix balance for gdot
|
|
343
|
-
const getGdotBalance = async () => {
|
|
344
|
-
const gdotBalances = await queryGdotBalance(substrateApi, addresses, assetMap[gdotSlug], extrinsicType);
|
|
345
|
-
callback(gdotBalances);
|
|
346
|
-
};
|
|
347
341
|
const unsubList = await Promise.all(Object.values(tokenMap).map(tokenInfo => {
|
|
348
|
-
|
|
349
|
-
if (tokenInfo.
|
|
342
|
+
var _tokenInfo$metadata;
|
|
343
|
+
if ((_tokenInfo$metadata = tokenInfo.metadata) !== null && _tokenInfo$metadata !== void 0 && _tokenInfo$metadata.isGigaToken) {
|
|
350
344
|
return (0, _rxjs.timer)(0, _constants.CRON_REFRESH_PRICE_INTERVAL).subscribe(() => {
|
|
351
|
-
|
|
345
|
+
const getGigaTokenBalance = async () => {
|
|
346
|
+
const gigaTokenBalances = await queryGigaTokenBalance(substrateApi, addresses, assetMap[tokenInfo.slug], extrinsicType);
|
|
347
|
+
callback(gigaTokenBalances);
|
|
348
|
+
};
|
|
349
|
+
getGigaTokenBalance().catch(console.error);
|
|
352
350
|
});
|
|
353
351
|
}
|
|
354
352
|
try {
|
|
@@ -561,11 +559,7 @@ const subscribeSubnetAlphaPallet = async _ref9 => {
|
|
|
561
559
|
clearInterval(interval);
|
|
562
560
|
};
|
|
563
561
|
};
|
|
564
|
-
|
|
565
|
-
// Hot fix for gdot balance
|
|
566
|
-
|
|
567
|
-
const gdotSlug = 'hydradx_main-LOCAL-GDOT';
|
|
568
|
-
async function queryGdotBalance(substrateApi, addresses, tokenInfo, extrinsicType) {
|
|
562
|
+
async function queryGigaTokenBalance(substrateApi, addresses, tokenInfo, extrinsicType) {
|
|
569
563
|
return await Promise.all(addresses.map(async address => {
|
|
570
564
|
const _balanceInfo = await substrateApi.api.call.currenciesApi.account((0, _utils2._getTokenOnChainAssetId)(tokenInfo), address);
|
|
571
565
|
const balanceInfo = _balanceInfo.toPrimitive();
|
|
@@ -689,15 +689,20 @@ class ChainService {
|
|
|
689
689
|
const priorityTokensMap = this.priorityTokensSubject.value || {};
|
|
690
690
|
const priorityTokensList = priorityTokensMap.token && typeof priorityTokensMap.token === 'object' ? Object.keys(priorityTokensMap.token) : [];
|
|
691
691
|
for (const assetSlug of priorityTokensList) {
|
|
692
|
-
const assetState = assetSettings[assetSlug];
|
|
693
692
|
const assetInfo = this.getAssetBySlug(assetSlug);
|
|
693
|
+
|
|
694
|
+
// This can occur if the assetSlug is not present in the current chainlist version
|
|
695
|
+
if (!assetInfo) {
|
|
696
|
+
continue;
|
|
697
|
+
}
|
|
698
|
+
const assetState = assetSettings[assetSlug];
|
|
694
699
|
const chainState = chainStateMap[assetInfo.originChain];
|
|
695
700
|
if (!assetState) {
|
|
696
701
|
// If this asset not has asset setting, this token is not enabled before (not turned off before)
|
|
697
702
|
if (!chainState || !chainState.manualTurnOff) {
|
|
698
703
|
await this.updateAssetSetting(assetSlug, {
|
|
699
704
|
visible: true
|
|
700
|
-
},
|
|
705
|
+
}, false);
|
|
701
706
|
}
|
|
702
707
|
}
|
|
703
708
|
}
|
|
@@ -655,6 +655,9 @@ function _getBlockExplorerFromChain(chainInfo) {
|
|
|
655
655
|
} else if (_isPureBitcoinChain(chainInfo)) {
|
|
656
656
|
var _chainInfo$bitcoinInf;
|
|
657
657
|
blockExplorer = chainInfo === null || chainInfo === void 0 ? void 0 : (_chainInfo$bitcoinInf = chainInfo.bitcoinInfo) === null || _chainInfo$bitcoinInf === void 0 ? void 0 : _chainInfo$bitcoinInf.blockExplorer;
|
|
658
|
+
} else if (_isPureTonChain(chainInfo)) {
|
|
659
|
+
var _chainInfo$tonInfo;
|
|
660
|
+
blockExplorer = chainInfo === null || chainInfo === void 0 ? void 0 : (_chainInfo$tonInfo = chainInfo.tonInfo) === null || _chainInfo$tonInfo === void 0 ? void 0 : _chainInfo$tonInfo.blockExplorer;
|
|
658
661
|
} else {
|
|
659
662
|
var _chainInfo$substrateI18;
|
|
660
663
|
blockExplorer = chainInfo === null || chainInfo === void 0 ? void 0 : (_chainInfo$substrateI18 = chainInfo.substrateInfo) === null || _chainInfo$substrateI18 === void 0 ? void 0 : _chainInfo$substrateI18.blockExplorer;
|
|
@@ -11,7 +11,7 @@ const PRODUCTION_BRANCHES = ['master', 'webapp', 'webapp-dev'];
|
|
|
11
11
|
const branchName = process.env.BRANCH_NAME || 'subwallet-dev';
|
|
12
12
|
const fetchDomain = PRODUCTION_BRANCHES.indexOf(branchName) > -1 ? 'https://chain-list-assets.subwallet.app' : 'https://dev.sw-chain-list-assets.pages.dev';
|
|
13
13
|
const fetchFile = PRODUCTION_BRANCHES.indexOf(branchName) > -1 ? 'list.json' : 'preview.json';
|
|
14
|
-
const ChainListVersion = '0.2.
|
|
14
|
+
const ChainListVersion = '0.2.109'; // update this when build chainlist
|
|
15
15
|
|
|
16
16
|
// todo: move this interface to chainlist
|
|
17
17
|
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports._STAKING_CHAIN_GROUP = exports.TON_CHAINS = exports.ST_LIQUID_TOKEN_ABI = exports.MaxEraRewardPointsEras = exports.MANTA_VALIDATOR_POINTS_PER_BLOCK = exports.MANTA_MIN_DELEGATION = exports.CHANNEL_ID = void 0;
|
|
6
|
+
exports._SUPPORT_CHANGE_VALIDATOR_CHAIN = exports._STAKING_CHAIN_GROUP = exports.TON_CHAINS = exports.ST_LIQUID_TOKEN_ABI = exports.MaxEraRewardPointsEras = exports.MANTA_VALIDATOR_POINTS_PER_BLOCK = exports.MANTA_MIN_DELEGATION = exports.CHANNEL_ID = void 0;
|
|
7
7
|
// Copyright 2019-2022 @subwallet/extension-base
|
|
8
8
|
// SPDX-License-Identifier: Apache-2.0
|
|
9
9
|
|
|
@@ -41,4 +41,6 @@ exports.MANTA_VALIDATOR_POINTS_PER_BLOCK = MANTA_VALIDATOR_POINTS_PER_BLOCK;
|
|
|
41
41
|
const MANTA_MIN_DELEGATION = 500;
|
|
42
42
|
exports.MANTA_MIN_DELEGATION = MANTA_MIN_DELEGATION;
|
|
43
43
|
const CHANNEL_ID = 7;
|
|
44
|
-
exports.CHANNEL_ID = CHANNEL_ID;
|
|
44
|
+
exports.CHANNEL_ID = CHANNEL_ID;
|
|
45
|
+
const _SUPPORT_CHANGE_VALIDATOR_CHAIN = ['polkadot', 'kusama'];
|
|
46
|
+
exports._SUPPORT_CHANGE_VALIDATOR_CHAIN = _SUPPORT_CHANGE_VALIDATOR_CHAIN;
|
|
@@ -29,7 +29,8 @@ class ParallelLiquidStakingPoolHandler extends _base.default {
|
|
|
29
29
|
fastUnstake: true,
|
|
30
30
|
cancelUnstake: false,
|
|
31
31
|
withdraw: false,
|
|
32
|
-
claimReward: false
|
|
32
|
+
claimReward: false,
|
|
33
|
+
changeValidator: false
|
|
33
34
|
};
|
|
34
35
|
constructor(state, chain) {
|
|
35
36
|
super(state, chain);
|
|
@@ -42,7 +42,8 @@ class StellaSwapLiquidStakingPoolHandler extends _base.default {
|
|
|
42
42
|
fastUnstake: false,
|
|
43
43
|
cancelUnstake: false,
|
|
44
44
|
withdraw: true,
|
|
45
|
-
claimReward: false
|
|
45
|
+
claimReward: false,
|
|
46
|
+
changeValidator: false
|
|
46
47
|
};
|
|
47
48
|
constructor(state, chain) {
|
|
48
49
|
super(state, chain);
|
|
@@ -178,6 +178,38 @@ class AmplitudeNativeStakingPoolHandler extends _basePara.default {
|
|
|
178
178
|
unstakings: unstakingList
|
|
179
179
|
};
|
|
180
180
|
}
|
|
181
|
+
async checkAccountHaveStake(useAddresses) {
|
|
182
|
+
var _substrateApi$api$que, _substrateApi$api$que2, _substrateApi$api$que3, _substrateApi$api$que4, _substrateApi$api$que5, _substrateApi$api$que6;
|
|
183
|
+
const result = [];
|
|
184
|
+
const substrateApi = await this.substrateApi.isReady;
|
|
185
|
+
const ledgers = await ((_substrateApi$api$que = substrateApi.api.query.parachainStaking) === null || _substrateApi$api$que === void 0 ? void 0 : (_substrateApi$api$que2 = _substrateApi$api$que.delegatorState) === null || _substrateApi$api$que2 === void 0 ? void 0 : (_substrateApi$api$que3 = _substrateApi$api$que2.multi) === null || _substrateApi$api$que3 === void 0 ? void 0 : _substrateApi$api$que3.call(_substrateApi$api$que2, useAddresses));
|
|
186
|
+
const _unstakingStates = await ((_substrateApi$api$que4 = substrateApi.api.query.parachainStaking) === null || _substrateApi$api$que4 === void 0 ? void 0 : (_substrateApi$api$que5 = _substrateApi$api$que4.unstaking) === null || _substrateApi$api$que5 === void 0 ? void 0 : (_substrateApi$api$que6 = _substrateApi$api$que5.multi) === null || _substrateApi$api$que6 === void 0 ? void 0 : _substrateApi$api$que6.call(_substrateApi$api$que5, useAddresses));
|
|
187
|
+
if (!ledgers || !_unstakingStates) {
|
|
188
|
+
return [];
|
|
189
|
+
}
|
|
190
|
+
for (let i = 0; i < useAddresses.length; i++) {
|
|
191
|
+
const owner = useAddresses[i];
|
|
192
|
+
const _delegatorState = ledgers[i];
|
|
193
|
+
let delegatorState = [];
|
|
194
|
+
const unstakingInfo = _unstakingStates[i].toPrimitive();
|
|
195
|
+
if (_constants2._STAKING_CHAIN_GROUP.krest_network.includes(this.chain)) {
|
|
196
|
+
const krestDelegatorState = _delegatorState.toPrimitive();
|
|
197
|
+
const delegates = krestDelegatorState === null || krestDelegatorState === void 0 ? void 0 : krestDelegatorState.delegations;
|
|
198
|
+
if (delegates) {
|
|
199
|
+
delegatorState = delegatorState.concat(delegates);
|
|
200
|
+
}
|
|
201
|
+
} else {
|
|
202
|
+
const delegate = _delegatorState.toPrimitive();
|
|
203
|
+
if (delegate) {
|
|
204
|
+
delegatorState.push(delegate);
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
if (delegatorState.length || unstakingInfo && Object.keys(unstakingInfo).length) {
|
|
208
|
+
result.push(owner);
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
return Promise.resolve(result);
|
|
212
|
+
}
|
|
181
213
|
async subscribePoolPosition(useAddresses, resultCallback) {
|
|
182
214
|
let cancel = false;
|
|
183
215
|
const substrateApi = await this.substrateApi.isReady;
|
|
@@ -47,7 +47,8 @@ class AstarNativeStakingPoolHandler extends _basePara.default {
|
|
|
47
47
|
fastUnstake: false,
|
|
48
48
|
cancelUnstake: false,
|
|
49
49
|
withdraw: true,
|
|
50
|
-
claimReward: true
|
|
50
|
+
claimReward: true,
|
|
51
|
+
changeValidator: false
|
|
51
52
|
};
|
|
52
53
|
|
|
53
54
|
/* Subscribe pool info */
|
|
@@ -294,6 +295,24 @@ class AstarNativeStakingPoolHandler extends _basePara.default {
|
|
|
294
295
|
unsub && unsub();
|
|
295
296
|
};
|
|
296
297
|
}
|
|
298
|
+
async checkAccountHaveStake(useAddresses) {
|
|
299
|
+
var _substrateApi$api$que2, _substrateApi$api$que3, _substrateApi$api$que4;
|
|
300
|
+
const result = [];
|
|
301
|
+
const substrateApi = await this.substrateApi.isReady;
|
|
302
|
+
const ledgers = await ((_substrateApi$api$que2 = substrateApi.api.query.dappsStaking) === null || _substrateApi$api$que2 === void 0 ? void 0 : (_substrateApi$api$que3 = _substrateApi$api$que2.ledger) === null || _substrateApi$api$que3 === void 0 ? void 0 : (_substrateApi$api$que4 = _substrateApi$api$que3.multi) === null || _substrateApi$api$que4 === void 0 ? void 0 : _substrateApi$api$que4.call(_substrateApi$api$que3, useAddresses));
|
|
303
|
+
if (!ledgers) {
|
|
304
|
+
return [];
|
|
305
|
+
}
|
|
306
|
+
for (let i = 0; i < useAddresses.length; i++) {
|
|
307
|
+
const owner = useAddresses[i];
|
|
308
|
+
const _ledger = ledgers[i];
|
|
309
|
+
const ledger = _ledger.toPrimitive();
|
|
310
|
+
if (ledger && ledger.locked > 0) {
|
|
311
|
+
result.push(owner);
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
return result;
|
|
315
|
+
}
|
|
297
316
|
|
|
298
317
|
/* Subscribe pool position */
|
|
299
318
|
|
|
@@ -21,7 +21,8 @@ class BaseNativeStakingPoolHandler extends _base.default {
|
|
|
21
21
|
fastUnstake: false,
|
|
22
22
|
cancelUnstake: true,
|
|
23
23
|
withdraw: true,
|
|
24
|
-
claimReward: false
|
|
24
|
+
claimReward: false,
|
|
25
|
+
changeValidator: false
|
|
25
26
|
};
|
|
26
27
|
static generateSlug(symbol, chain) {
|
|
27
28
|
return `${symbol}___native_staking___${chain}`;
|
|
@@ -50,40 +51,48 @@ class BaseNativeStakingPoolHandler extends _base.default {
|
|
|
50
51
|
async getPoolRewardHistory(useAddresses, callBack) {
|
|
51
52
|
let cancel = false;
|
|
52
53
|
const haveSubscanService = this.state.subscanService.checkSupportedSubscanChain(this.chain);
|
|
54
|
+
const requestGroupId = this.state.subscanService.getGroupId();
|
|
53
55
|
if (haveSubscanService) {
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
if (items) {
|
|
62
|
-
for (const item of items) {
|
|
63
|
-
const now = new Date();
|
|
64
|
-
const isMillisecond = now.getTime().toString().length === item.block_timestamp.toString().length;
|
|
65
|
-
const timeStamp = isMillisecond ? item.block_timestamp : item.block_timestamp * 1000;
|
|
66
|
-
const data = {
|
|
67
|
-
slug: this.slug,
|
|
68
|
-
type: this.type,
|
|
69
|
-
chain: this.chain,
|
|
70
|
-
address: address,
|
|
71
|
-
group: this.group,
|
|
72
|
-
blockTimestamp: timeStamp,
|
|
73
|
-
amount: item.amount,
|
|
74
|
-
eventIndex: item.event_index
|
|
75
|
-
};
|
|
76
|
-
callBack(data);
|
|
77
|
-
}
|
|
56
|
+
this.checkAccountHaveStake(useAddresses).then(activeAddresses => {
|
|
57
|
+
for (const address of useAddresses) {
|
|
58
|
+
if (cancel) {
|
|
59
|
+
break;
|
|
60
|
+
}
|
|
61
|
+
if (!activeAddresses.includes(address)) {
|
|
62
|
+
continue;
|
|
78
63
|
}
|
|
79
|
-
|
|
80
|
-
|
|
64
|
+
this.state.subscanService.getRewardHistoryList(requestGroupId, this.chain, address).then(rs => {
|
|
65
|
+
const items = rs === null || rs === void 0 ? void 0 : rs.list;
|
|
66
|
+
if (cancel) {
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
if (items) {
|
|
70
|
+
for (const item of items) {
|
|
71
|
+
const now = new Date();
|
|
72
|
+
const isMillisecond = now.getTime().toString().length === item.block_timestamp.toString().length;
|
|
73
|
+
const timeStamp = isMillisecond ? item.block_timestamp : item.block_timestamp * 1000;
|
|
74
|
+
const data = {
|
|
75
|
+
slug: this.slug,
|
|
76
|
+
type: this.type,
|
|
77
|
+
chain: this.chain,
|
|
78
|
+
address: address,
|
|
79
|
+
group: this.group,
|
|
80
|
+
blockTimestamp: timeStamp,
|
|
81
|
+
amount: item.amount,
|
|
82
|
+
eventIndex: item.event_index
|
|
83
|
+
};
|
|
84
|
+
callBack(data);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}).catch(console.error);
|
|
81
88
|
}
|
|
82
|
-
}
|
|
89
|
+
}).catch(console.error);
|
|
83
90
|
}
|
|
84
|
-
return () => {
|
|
91
|
+
return Promise.resolve(() => {
|
|
92
|
+
console.log('Cancel get pool reward history', requestGroupId);
|
|
85
93
|
cancel = false;
|
|
86
|
-
|
|
94
|
+
this.state.subscanService.cancelGroupRequest(requestGroupId);
|
|
95
|
+
});
|
|
87
96
|
}
|
|
88
97
|
|
|
89
98
|
/* Get pool reward */
|
|
@@ -164,6 +173,9 @@ class BaseNativeStakingPoolHandler extends _base.default {
|
|
|
164
173
|
async handleYieldClaimReward(address, bondReward) {
|
|
165
174
|
return Promise.reject(new _TransactionError.TransactionError(_types.BasicTxErrorType.UNSUPPORTED));
|
|
166
175
|
}
|
|
176
|
+
async handleChangeEarningValidator(_data) {
|
|
177
|
+
return Promise.reject(new _TransactionError.TransactionError(_types.BasicTxErrorType.UNSUPPORTED));
|
|
178
|
+
}
|
|
167
179
|
|
|
168
180
|
/* Other actions */
|
|
169
181
|
}
|