@subwallet/extension-base 1.3.23-0 → 1.3.25-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 +11 -3
- package/background/KoniTypes.js +1 -0
- package/background/errors/EvmProviderError.js +4 -0
- package/background/errors/ProviderError.d.ts +1 -1
- package/background/errors/ProviderError.js +2 -2
- package/cjs/background/KoniTypes.js +1 -0
- package/cjs/background/errors/EvmProviderError.js +4 -0
- package/cjs/background/errors/ProviderError.js +2 -2
- package/cjs/constants/environment.js +1 -1
- package/cjs/constants/index.js +21 -4
- package/cjs/core/logic-validation/transfer.js +23 -8
- package/cjs/koni/background/handlers/Extension.js +109 -89
- package/cjs/koni/background/handlers/State.js +2 -2
- package/cjs/koni/background/handlers/Tabs.js +4 -3
- package/cjs/packageInfo.js +1 -1
- package/cjs/page/index.js +1 -1
- package/cjs/services/balance-service/helpers/subscribe/substrate/index.js +3 -3
- package/cjs/services/balance-service/transfer/smart-contract.js +24 -3
- package/cjs/services/buy-service/constants/token.js +3 -0
- package/cjs/services/chain-service/index.js +11 -0
- package/cjs/services/earning-service/constants/chains.js +1 -1
- package/cjs/services/earning-service/handlers/base.js +11 -5
- package/cjs/services/earning-service/handlers/native-staking/base-para.js +7 -6
- package/cjs/services/earning-service/handlers/native-staking/base.js +6 -3
- package/cjs/services/earning-service/handlers/native-staking/dtao.js +444 -0
- package/cjs/services/earning-service/handlers/native-staking/index.js +8 -1
- package/cjs/services/earning-service/handlers/native-staking/tao.js +138 -125
- package/cjs/services/earning-service/service.js +14 -4
- package/cjs/services/fee-service/utils/tokenPayFee.js +151 -0
- package/cjs/services/inapp-notification-service/index.js +3 -0
- package/cjs/services/request-service/handler/MetadataRequestHandler.js +5 -13
- package/cjs/services/request-service/index.js +2 -2
- package/cjs/services/transaction-service/index.js +14 -5
- package/cjs/types/yield/info/base.js +1 -0
- package/cjs/utils/fee/transfer.js +47 -14
- package/cjs/utils/fetchEvmChainInfo.js +10 -5
- package/constants/environment.js +1 -1
- package/constants/index.d.ts +6 -1
- package/constants/index.js +14 -1
- package/core/logic-validation/transfer.d.ts +1 -1
- package/core/logic-validation/transfer.js +25 -10
- package/koni/background/handlers/Extension.js +82 -62
- package/koni/background/handlers/State.d.ts +1 -1
- package/koni/background/handlers/State.js +2 -2
- package/koni/background/handlers/Tabs.js +4 -3
- package/package.json +16 -6
- package/packageInfo.js +1 -1
- package/page/index.js +1 -1
- package/services/balance-service/helpers/subscribe/substrate/index.js +2 -2
- package/services/balance-service/transfer/smart-contract.d.ts +4 -2
- package/services/balance-service/transfer/smart-contract.js +24 -3
- package/services/buy-service/constants/token.js +3 -0
- package/services/chain-service/index.d.ts +1 -0
- package/services/chain-service/index.js +12 -1
- package/services/earning-service/constants/chains.js +1 -1
- package/services/earning-service/handlers/base.d.ts +7 -5
- package/services/earning-service/handlers/base.js +11 -7
- package/services/earning-service/handlers/native-staking/base-para.d.ts +1 -1
- package/services/earning-service/handlers/native-staking/base-para.js +7 -6
- package/services/earning-service/handlers/native-staking/base.d.ts +1 -1
- package/services/earning-service/handlers/native-staking/base.js +6 -3
- package/services/earning-service/handlers/native-staking/dtao.d.ts +64 -0
- package/services/earning-service/handlers/native-staking/dtao.js +434 -0
- package/services/earning-service/handlers/native-staking/index.d.ts +1 -0
- package/services/earning-service/handlers/native-staking/index.js +2 -1
- package/services/earning-service/handlers/native-staking/tao.d.ts +16 -4
- package/services/earning-service/handlers/native-staking/tao.js +136 -121
- package/services/earning-service/service.d.ts +1 -0
- package/services/earning-service/service.js +15 -5
- package/services/fee-service/interfaces.d.ts +25 -0
- package/services/fee-service/utils/tokenPayFee.d.ts +8 -0
- package/services/fee-service/utils/tokenPayFee.js +141 -0
- package/services/inapp-notification-service/index.js +3 -0
- package/services/request-service/handler/MetadataRequestHandler.d.ts +1 -1
- package/services/request-service/handler/MetadataRequestHandler.js +5 -13
- package/services/request-service/index.d.ts +1 -1
- package/services/request-service/index.js +2 -2
- package/services/transaction-service/index.js +16 -7
- package/types/bridge/index.d.ts +1 -0
- package/types/buy.d.ts +1 -1
- package/types/fee/option.d.ts +1 -1
- package/types/yield/actions/join/step.d.ts +1 -0
- package/types/yield/actions/join/submit.d.ts +1 -0
- package/types/yield/info/account/info.d.ts +14 -1
- package/types/yield/info/base.d.ts +3 -1
- package/types/yield/info/base.js +1 -0
- package/types/yield/info/chain/info.d.ts +5 -1
- package/utils/fee/transfer.d.ts +1 -1
- package/utils/fee/transfer.js +46 -13
- package/utils/fetchEvmChainInfo.d.ts +1 -1
- package/utils/fetchEvmChainInfo.js +10 -5
|
@@ -8,14 +8,14 @@ import { CardanoTransactionConfig } from '@subwallet/extension-base/services/bal
|
|
|
8
8
|
import { TonTransactionConfig } from '@subwallet/extension-base/services/balance-service/transfer/ton-transfer';
|
|
9
9
|
import { _CHAIN_VALIDATION_ERROR } from '@subwallet/extension-base/services/chain-service/handler/types';
|
|
10
10
|
import { _ChainState, _EvmApi, _NetworkUpsertParams, _SubstrateApi, _ValidateCustomAssetRequest, _ValidateCustomAssetResponse, EnableChainParams, EnableMultiChainParams } from '@subwallet/extension-base/services/chain-service/types';
|
|
11
|
-
import {
|
|
11
|
+
import { TokenPayFeeInfo } from '@subwallet/extension-base/services/fee-service/interfaces';
|
|
12
12
|
import { _NotificationInfo, NotificationSetup } from '@subwallet/extension-base/services/inapp-notification-service/interfaces';
|
|
13
13
|
import { AppBannerData, AppConfirmationData, AppPopupData } from '@subwallet/extension-base/services/mkt-campaign-service/types';
|
|
14
14
|
import { AuthUrls } from '@subwallet/extension-base/services/request-service/types';
|
|
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, CommonOptimalPath, CurrentAccountInfo, EarningRewardHistoryItem, EarningRewardJson, EarningStatus, HandleYieldStepParams, InternalRequestSign, LeavePoolAdditionalData, NominationPoolInfo, OptimalSwapPathParams, 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, 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, CommonOptimalPath, CurrentAccountInfo, EarningRewardHistoryItem, EarningRewardJson, EarningStatus, HandleYieldStepParams, InternalRequestSign, LeavePoolAdditionalData, NominationPoolInfo, OptimalSwapPathParams, 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';
|
|
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';
|
|
@@ -821,6 +821,7 @@ export declare enum EvmProviderErrorType {
|
|
|
821
821
|
UNSUPPORTED_METHOD = "UNSUPPORTED_METHOD",
|
|
822
822
|
DISCONNECTED = "DISCONNECTED",
|
|
823
823
|
CHAIN_DISCONNECTED = "CHAIN_DISCONNECTED",
|
|
824
|
+
NETWORK_NOT_SUPPORTED = "NETWORK_NOT_SUPPORTED",
|
|
824
825
|
INVALID_PARAMS = "INVALID_PARAMS",
|
|
825
826
|
INTERNAL_ERROR = "INTERNAL_ERROR"
|
|
826
827
|
}
|
|
@@ -1120,6 +1121,7 @@ export interface NominationInfo {
|
|
|
1120
1121
|
hasUnstaking?: boolean;
|
|
1121
1122
|
validatorMinStake?: string;
|
|
1122
1123
|
status: EarningStatus;
|
|
1124
|
+
originActiveStake?: string;
|
|
1123
1125
|
}
|
|
1124
1126
|
export interface UnstakingInfo {
|
|
1125
1127
|
chain: string;
|
|
@@ -1163,6 +1165,9 @@ export interface BondingSubmitParams extends BaseRequestSign {
|
|
|
1163
1165
|
address: string;
|
|
1164
1166
|
selectedValidators: ValidatorInfo[];
|
|
1165
1167
|
lockPeriod?: number;
|
|
1168
|
+
poolInfo?: {
|
|
1169
|
+
metadata: SubnetYieldPositionInfo;
|
|
1170
|
+
};
|
|
1166
1171
|
}
|
|
1167
1172
|
export declare type RequestBondingSubmit = InternalRequestSign<BondingSubmitParams>;
|
|
1168
1173
|
export interface UnbondingSubmitParams extends BaseRequestSign {
|
|
@@ -1175,6 +1180,9 @@ export interface UnbondingSubmitParams extends BaseRequestSign {
|
|
|
1175
1180
|
exchangeRate?: number;
|
|
1176
1181
|
inputTokenInfo?: _ChainAsset;
|
|
1177
1182
|
isFastUnbond: boolean;
|
|
1183
|
+
poolInfo?: {
|
|
1184
|
+
metadata: SubnetYieldPositionInfo;
|
|
1185
|
+
};
|
|
1178
1186
|
}
|
|
1179
1187
|
export declare type RequestUnbondingSubmit = InternalRequestSign<UnbondingSubmitParams>;
|
|
1180
1188
|
export interface StakePoolingBondingParams extends BaseRequestSign {
|
|
@@ -1692,7 +1700,7 @@ export interface KoniRequestSignatures {
|
|
|
1692
1700
|
'pri(accounts.approveSpending)': [TokenSpendingApprovalParams, SWTransactionResponse];
|
|
1693
1701
|
'pri(accounts.checkCrossChainTransfer)': [RequestCheckCrossChainTransfer, ValidateTransactionResponse];
|
|
1694
1702
|
'pri(accounts.crossChainTransfer)': [RequestCrossChainTransfer, SWTransactionResponse];
|
|
1695
|
-
'pri(customFee.getTokensCanPayFee)': [RequestGetTokensCanPayFee,
|
|
1703
|
+
'pri(customFee.getTokensCanPayFee)': [RequestGetTokensCanPayFee, TokenPayFeeInfo];
|
|
1696
1704
|
'pri(customFee.getAmountForPair)': [RequestGetAmountForPair, string];
|
|
1697
1705
|
'pri(confirmations.subscribe)': [RequestConfirmationsSubscribe, ConfirmationsQueue, ConfirmationsQueue];
|
|
1698
1706
|
'pri(confirmationsTon.subscribe)': [RequestConfirmationsSubscribeTon, ConfirmationsQueueTon, ConfirmationsQueueTon];
|
package/background/KoniTypes.js
CHANGED
|
@@ -181,6 +181,7 @@ export let EvmProviderErrorType;
|
|
|
181
181
|
EvmProviderErrorType["UNSUPPORTED_METHOD"] = "UNSUPPORTED_METHOD";
|
|
182
182
|
EvmProviderErrorType["DISCONNECTED"] = "DISCONNECTED";
|
|
183
183
|
EvmProviderErrorType["CHAIN_DISCONNECTED"] = "CHAIN_DISCONNECTED";
|
|
184
|
+
EvmProviderErrorType["NETWORK_NOT_SUPPORTED"] = "NETWORK_NOT_SUPPORTED";
|
|
184
185
|
EvmProviderErrorType["INVALID_PARAMS"] = "INVALID_PARAMS";
|
|
185
186
|
EvmProviderErrorType["INTERNAL_ERROR"] = "INTERNAL_ERROR";
|
|
186
187
|
})(EvmProviderErrorType || (EvmProviderErrorType = {}));
|
|
@@ -25,6 +25,10 @@ const defaultErrorMap = {
|
|
|
25
25
|
message: detectTranslate('Network is disconnected'),
|
|
26
26
|
code: 4901
|
|
27
27
|
},
|
|
28
|
+
NETWORK_NOT_SUPPORTED: {
|
|
29
|
+
message: detectTranslate('This network is currently not supported'),
|
|
30
|
+
code: 4902
|
|
31
|
+
},
|
|
28
32
|
INVALID_PARAMS: {
|
|
29
33
|
message: detectTranslate('Undefined error. Please contact SubWallet support'),
|
|
30
34
|
code: -32602
|
|
@@ -2,5 +2,5 @@ import { SWError } from '@subwallet/extension-base/background/errors/SWError';
|
|
|
2
2
|
import { ProviderErrorType } from '@subwallet/extension-base/background/KoniTypes';
|
|
3
3
|
export declare class ProviderError extends SWError {
|
|
4
4
|
errorType: ProviderErrorType;
|
|
5
|
-
constructor(errorType: ProviderErrorType, errMessage?: string, data?: unknown);
|
|
5
|
+
constructor(errorType: ProviderErrorType, errMessage?: string, data?: unknown, errorCode?: number);
|
|
6
6
|
}
|
|
@@ -22,12 +22,12 @@ const defaultErrorMap = {
|
|
|
22
22
|
}
|
|
23
23
|
};
|
|
24
24
|
export class ProviderError extends SWError {
|
|
25
|
-
constructor(errorType, errMessage, data) {
|
|
25
|
+
constructor(errorType, errMessage, data, errorCode) {
|
|
26
26
|
const {
|
|
27
27
|
code,
|
|
28
28
|
message
|
|
29
29
|
} = defaultErrorMap[errorType];
|
|
30
|
-
super(errorType, errMessage || message, code, data);
|
|
30
|
+
super(errorType, errMessage || message, errorCode || code, data);
|
|
31
31
|
this.errorType = errorType;
|
|
32
32
|
}
|
|
33
33
|
}
|
|
@@ -195,6 +195,7 @@ exports.EvmProviderErrorType = EvmProviderErrorType;
|
|
|
195
195
|
EvmProviderErrorType["UNSUPPORTED_METHOD"] = "UNSUPPORTED_METHOD";
|
|
196
196
|
EvmProviderErrorType["DISCONNECTED"] = "DISCONNECTED";
|
|
197
197
|
EvmProviderErrorType["CHAIN_DISCONNECTED"] = "CHAIN_DISCONNECTED";
|
|
198
|
+
EvmProviderErrorType["NETWORK_NOT_SUPPORTED"] = "NETWORK_NOT_SUPPORTED";
|
|
198
199
|
EvmProviderErrorType["INVALID_PARAMS"] = "INVALID_PARAMS";
|
|
199
200
|
EvmProviderErrorType["INTERNAL_ERROR"] = "INTERNAL_ERROR";
|
|
200
201
|
})(EvmProviderErrorType || (exports.EvmProviderErrorType = EvmProviderErrorType = {}));
|
|
@@ -31,6 +31,10 @@ const defaultErrorMap = {
|
|
|
31
31
|
message: (0, _utils.detectTranslate)('Network is disconnected'),
|
|
32
32
|
code: 4901
|
|
33
33
|
},
|
|
34
|
+
NETWORK_NOT_SUPPORTED: {
|
|
35
|
+
message: (0, _utils.detectTranslate)('This network is currently not supported'),
|
|
36
|
+
code: 4902
|
|
37
|
+
},
|
|
34
38
|
INVALID_PARAMS: {
|
|
35
39
|
message: (0, _utils.detectTranslate)('Undefined error. Please contact SubWallet support'),
|
|
36
40
|
code: -32602
|
|
@@ -28,12 +28,12 @@ const defaultErrorMap = {
|
|
|
28
28
|
}
|
|
29
29
|
};
|
|
30
30
|
class ProviderError extends _SWError.SWError {
|
|
31
|
-
constructor(errorType, errMessage, data) {
|
|
31
|
+
constructor(errorType, errMessage, data, errorCode) {
|
|
32
32
|
const {
|
|
33
33
|
code,
|
|
34
34
|
message
|
|
35
35
|
} = defaultErrorMap[errorType];
|
|
36
|
-
super(errorType, errMessage || message, code, data);
|
|
36
|
+
super(errorType, errMessage || message, errorCode || code, data);
|
|
37
37
|
this.errorType = errorType;
|
|
38
38
|
}
|
|
39
39
|
}
|
|
@@ -11,5 +11,5 @@ const PRODUCTION_BRANCHES = ['master', 'webapp', 'webapp-dev'];
|
|
|
11
11
|
const branchName = process.env.BRANCH_NAME || 'subwallet-dev';
|
|
12
12
|
const isProductionMode = PRODUCTION_BRANCHES.indexOf(branchName) > -1;
|
|
13
13
|
exports.isProductionMode = isProductionMode;
|
|
14
|
-
const BACKEND_API_URL = process.env.SUBWALLET_API || (isProductionMode ? 'https://sw-services.subwallet.app/api' : 'https://
|
|
14
|
+
const BACKEND_API_URL = process.env.SUBWALLET_API || (isProductionMode ? 'https://sw-services.subwallet.app/api' : 'https://be-dev.subwallet.app/api');
|
|
15
15
|
exports.BACKEND_API_URL = BACKEND_API_URL;
|
package/cjs/constants/index.js
CHANGED
|
@@ -40,9 +40,11 @@ var _exportNames = {
|
|
|
40
40
|
ORDINAL_COLLECTION: true,
|
|
41
41
|
ORDINAL_METHODS: true,
|
|
42
42
|
PERMISSIONS_TO_REVOKE: true,
|
|
43
|
-
|
|
43
|
+
_SUPPORT_TOKEN_PAY_FEE_GROUP: true,
|
|
44
|
+
getSupportTokenPayFeeChain: true,
|
|
45
|
+
isChainSupportTokenPayFee: true
|
|
44
46
|
};
|
|
45
|
-
exports.XCM_MIN_AMOUNT_RATIO = exports.XCM_FEE_RATIO = exports.SUB_TOKEN_REFRESH_BALANCE_INTERVAL = exports.PERMISSIONS_TO_REVOKE = exports.ORDINAL_METHODS = exports.ORDINAL_COLLECTION = exports.NETWORK_MULTI_GAS_FEE = exports.MANTA_PAY_BALANCE_INTERVAL = exports.IGNORE_QR_SIGNER = exports.IGNORE_GET_SUBSTRATE_FEATURES_LIST = exports.GAS_PRICE_RATIO = exports.CRON_SYNC_MANTA_PAY = exports.CRON_REFRESH_STAKING_REWARD_INTERVAL = exports.CRON_REFRESH_STAKING_REWARD_FAST_INTERVAL = exports.CRON_REFRESH_PRICE_INTERVAL = exports.CRON_REFRESH_NFT_INTERVAL = exports.CRON_REFRESH_MKT_CAMPAIGN_INTERVAL = exports.CRON_REFRESH_HISTORY_INTERVAL = exports.CRON_REFRESH_EARNING_REWARD_HISTORY_INTERVAL = exports.CRON_REFRESH_CHAIN_STAKING_METADATA = exports.CRON_REFRESH_CHAIN_NOMINATOR_METADATA = exports.CRON_RECOVER_HISTORY_INTERVAL = exports.CRON_LISTEN_AVAIL_BRIDGE_CLAIM = exports.CRON_GET_API_MAP_STATUS = exports.CRON_AUTO_RECOVER_WEB3_INTERVAL = exports.CRON_AUTO_RECOVER_DOTSAMA_INTERVAL = exports.BITTENSOR_REFRESH_STAKE_INFO = exports.BITTENSOR_REFRESH_STAKE_APY = exports.BASE_SECOND_INTERVAL = exports.BASE_MINUTE_INTERVAL = exports.ASTAR_REFRESH_BALANCE_INTERVAL = exports.
|
|
47
|
+
exports.isChainSupportTokenPayFee = exports.getSupportTokenPayFeeChain = exports._SUPPORT_TOKEN_PAY_FEE_GROUP = exports.XCM_MIN_AMOUNT_RATIO = exports.XCM_FEE_RATIO = exports.SUB_TOKEN_REFRESH_BALANCE_INTERVAL = exports.PERMISSIONS_TO_REVOKE = exports.ORDINAL_METHODS = exports.ORDINAL_COLLECTION = exports.NETWORK_MULTI_GAS_FEE = exports.MANTA_PAY_BALANCE_INTERVAL = exports.IGNORE_QR_SIGNER = exports.IGNORE_GET_SUBSTRATE_FEATURES_LIST = exports.GAS_PRICE_RATIO = exports.CRON_SYNC_MANTA_PAY = exports.CRON_REFRESH_STAKING_REWARD_INTERVAL = exports.CRON_REFRESH_STAKING_REWARD_FAST_INTERVAL = exports.CRON_REFRESH_PRICE_INTERVAL = exports.CRON_REFRESH_NFT_INTERVAL = exports.CRON_REFRESH_MKT_CAMPAIGN_INTERVAL = exports.CRON_REFRESH_HISTORY_INTERVAL = exports.CRON_REFRESH_EARNING_REWARD_HISTORY_INTERVAL = exports.CRON_REFRESH_CHAIN_STAKING_METADATA = exports.CRON_REFRESH_CHAIN_NOMINATOR_METADATA = exports.CRON_RECOVER_HISTORY_INTERVAL = exports.CRON_LISTEN_AVAIL_BRIDGE_CLAIM = exports.CRON_GET_API_MAP_STATUS = exports.CRON_AUTO_RECOVER_WEB3_INTERVAL = exports.CRON_AUTO_RECOVER_DOTSAMA_INTERVAL = exports.BITTENSOR_REFRESH_STAKE_INFO = exports.BITTENSOR_REFRESH_STAKE_APY = exports.BASE_SECOND_INTERVAL = exports.BASE_MINUTE_INTERVAL = exports.ASTAR_REFRESH_BALANCE_INTERVAL = exports.ALL_NETWORK_KEY = exports.ALL_GENESIS_HASH = exports.ALL_ACCOUNT_KEY = exports.ALL_ACCOUNT_AUTH_TYPES = exports.ACALA_REFRESH_CROWDLOAN_INTERVAL = void 0;
|
|
46
48
|
var _blockedActions = require("./blocked-actions");
|
|
47
49
|
Object.keys(_blockedActions).forEach(function (key) {
|
|
48
50
|
if (key === "default" || key === "__esModule") return;
|
|
@@ -190,5 +192,20 @@ const ORDINAL_METHODS = ['drc-20', 'pol-20'];
|
|
|
190
192
|
exports.ORDINAL_METHODS = ORDINAL_METHODS;
|
|
191
193
|
const PERMISSIONS_TO_REVOKE = ['eth_accounts'];
|
|
192
194
|
exports.PERMISSIONS_TO_REVOKE = PERMISSIONS_TO_REVOKE;
|
|
193
|
-
const
|
|
194
|
-
|
|
195
|
+
const _SUPPORT_TOKEN_PAY_FEE_GROUP = {
|
|
196
|
+
assetHub: ['paseo_assethub', 'westend_assethub', 'rococo_assethub', 'statemine', 'statemint'],
|
|
197
|
+
hydration: ['hydradx_main', 'hydradx_rococo']
|
|
198
|
+
};
|
|
199
|
+
exports._SUPPORT_TOKEN_PAY_FEE_GROUP = _SUPPORT_TOKEN_PAY_FEE_GROUP;
|
|
200
|
+
const getSupportTokenPayFeeChain = () => {
|
|
201
|
+
return Object.values(_SUPPORT_TOKEN_PAY_FEE_GROUP).flat();
|
|
202
|
+
};
|
|
203
|
+
exports.getSupportTokenPayFeeChain = getSupportTokenPayFeeChain;
|
|
204
|
+
const isChainSupportTokenPayFee = chainSlug => {
|
|
205
|
+
if (!chainSlug) {
|
|
206
|
+
console.error('You must provide chain slug!');
|
|
207
|
+
return false;
|
|
208
|
+
}
|
|
209
|
+
return getSupportTokenPayFeeChain().includes(chainSlug);
|
|
210
|
+
};
|
|
211
|
+
exports.isChainSupportTokenPayFee = isChainSupportTokenPayFee;
|
|
@@ -348,7 +348,7 @@ function checkSupportForTransaction(validationResponse, transaction) {
|
|
|
348
348
|
}
|
|
349
349
|
}
|
|
350
350
|
}
|
|
351
|
-
async function estimateFeeForTransaction(validationResponse, transaction, chainInfo, evmApi, substrateApi, feeInfo, nativeTokenInfo,
|
|
351
|
+
async function estimateFeeForTransaction(validationResponse, transaction, chainInfo, evmApi, substrateApi, priceMap, feeInfo, nativeTokenInfo, nonNativeTokenPayFeeInfo, isTransferLocalTokenAndPayThatTokenAsFee) {
|
|
352
352
|
const estimateFee = {
|
|
353
353
|
symbol: '',
|
|
354
354
|
decimals: 0,
|
|
@@ -394,11 +394,25 @@ async function estimateFeeForTransaction(validationResponse, transaction, chainI
|
|
|
394
394
|
}
|
|
395
395
|
}
|
|
396
396
|
}
|
|
397
|
-
|
|
397
|
+
const isCustomTokenPayFeeAssetHub = !!nonNativeTokenPayFeeInfo && _constants._SUPPORT_TOKEN_PAY_FEE_GROUP.assetHub.includes(nonNativeTokenPayFeeInfo.originChain);
|
|
398
|
+
const isCustomTokenPayFeeHydration = !!nonNativeTokenPayFeeInfo && _constants._SUPPORT_TOKEN_PAY_FEE_GROUP.hydration.includes(nonNativeTokenPayFeeInfo.originChain);
|
|
399
|
+
if (isCustomTokenPayFeeAssetHub) {
|
|
398
400
|
const estimatedFeeAmount = isTransferLocalTokenAndPayThatTokenAsFee ? (BigInt(estimateFee.value) * BigInt(_utils4.FEE_COVERAGE_PERCENTAGE_SPECIAL_CASE) / BigInt(100)).toString() : estimateFee.value;
|
|
399
|
-
estimateFee.decimals =
|
|
400
|
-
estimateFee.symbol =
|
|
401
|
-
estimateFee.value = await (0, _utils4.calculateToAmountByReservePool)(substrateApi.api, nativeTokenInfo,
|
|
401
|
+
estimateFee.decimals = (0, _utils3._getAssetDecimals)(nonNativeTokenPayFeeInfo);
|
|
402
|
+
estimateFee.symbol = (0, _utils3._getAssetSymbol)(nonNativeTokenPayFeeInfo);
|
|
403
|
+
estimateFee.value = await (0, _utils4.calculateToAmountByReservePool)(substrateApi.api, nativeTokenInfo, nonNativeTokenPayFeeInfo, estimatedFeeAmount);
|
|
404
|
+
}
|
|
405
|
+
if (isCustomTokenPayFeeHydration) {
|
|
406
|
+
const nativePriceId = (0, _utils3._getAssetPriceId)(nativeTokenInfo);
|
|
407
|
+
const nativeDecimals = (0, _utils3._getAssetDecimals)(nativeTokenInfo);
|
|
408
|
+
const nativePrice = priceMap[nativePriceId];
|
|
409
|
+
const tokenPriceId = (0, _utils3._getAssetPriceId)(nonNativeTokenPayFeeInfo);
|
|
410
|
+
const tokenDecimals = (0, _utils3._getAssetDecimals)(nonNativeTokenPayFeeInfo);
|
|
411
|
+
const tokenPrice = priceMap[tokenPriceId];
|
|
412
|
+
const rate = new _bignumber.default(nativePrice).div(tokenPrice).multipliedBy(10 ** (tokenDecimals - nativeDecimals)).toFixed();
|
|
413
|
+
estimateFee.decimals = (0, _utils3._getAssetDecimals)(nonNativeTokenPayFeeInfo);
|
|
414
|
+
estimateFee.symbol = (0, _utils3._getAssetSymbol)(nonNativeTokenPayFeeInfo);
|
|
415
|
+
estimateFee.value = new _bignumber.default(estimateFee.value).multipliedBy(rate).toFixed(0);
|
|
402
416
|
}
|
|
403
417
|
return estimateFee;
|
|
404
418
|
}
|
|
@@ -438,10 +452,11 @@ function checkBalanceWithTransactionFee(validationResponse, transactionInput, na
|
|
|
438
452
|
edAsWarning,
|
|
439
453
|
extrinsicType,
|
|
440
454
|
isTransferAll,
|
|
441
|
-
|
|
442
|
-
|
|
455
|
+
skipFeeValidation,
|
|
456
|
+
tokenPayFeeSlug
|
|
443
457
|
} = transactionInput;
|
|
444
|
-
if (skipFeeValidation ||
|
|
458
|
+
if (skipFeeValidation || tokenPayFeeSlug && !(0, _utils3._isNativeTokenBySlug)(tokenPayFeeSlug)) {
|
|
459
|
+
// todo: need improve: input should be balance of fee token and check this again
|
|
445
460
|
return;
|
|
446
461
|
}
|
|
447
462
|
const bnFee = new _bignumber.default(validationResponse.estimateFee.value);
|