@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.
Files changed (91) hide show
  1. package/background/KoniTypes.d.ts +11 -3
  2. package/background/KoniTypes.js +1 -0
  3. package/background/errors/EvmProviderError.js +4 -0
  4. package/background/errors/ProviderError.d.ts +1 -1
  5. package/background/errors/ProviderError.js +2 -2
  6. package/cjs/background/KoniTypes.js +1 -0
  7. package/cjs/background/errors/EvmProviderError.js +4 -0
  8. package/cjs/background/errors/ProviderError.js +2 -2
  9. package/cjs/constants/environment.js +1 -1
  10. package/cjs/constants/index.js +21 -4
  11. package/cjs/core/logic-validation/transfer.js +23 -8
  12. package/cjs/koni/background/handlers/Extension.js +109 -89
  13. package/cjs/koni/background/handlers/State.js +2 -2
  14. package/cjs/koni/background/handlers/Tabs.js +4 -3
  15. package/cjs/packageInfo.js +1 -1
  16. package/cjs/page/index.js +1 -1
  17. package/cjs/services/balance-service/helpers/subscribe/substrate/index.js +3 -3
  18. package/cjs/services/balance-service/transfer/smart-contract.js +24 -3
  19. package/cjs/services/buy-service/constants/token.js +3 -0
  20. package/cjs/services/chain-service/index.js +11 -0
  21. package/cjs/services/earning-service/constants/chains.js +1 -1
  22. package/cjs/services/earning-service/handlers/base.js +11 -5
  23. package/cjs/services/earning-service/handlers/native-staking/base-para.js +7 -6
  24. package/cjs/services/earning-service/handlers/native-staking/base.js +6 -3
  25. package/cjs/services/earning-service/handlers/native-staking/dtao.js +444 -0
  26. package/cjs/services/earning-service/handlers/native-staking/index.js +8 -1
  27. package/cjs/services/earning-service/handlers/native-staking/tao.js +138 -125
  28. package/cjs/services/earning-service/service.js +14 -4
  29. package/cjs/services/fee-service/utils/tokenPayFee.js +151 -0
  30. package/cjs/services/inapp-notification-service/index.js +3 -0
  31. package/cjs/services/request-service/handler/MetadataRequestHandler.js +5 -13
  32. package/cjs/services/request-service/index.js +2 -2
  33. package/cjs/services/transaction-service/index.js +14 -5
  34. package/cjs/types/yield/info/base.js +1 -0
  35. package/cjs/utils/fee/transfer.js +47 -14
  36. package/cjs/utils/fetchEvmChainInfo.js +10 -5
  37. package/constants/environment.js +1 -1
  38. package/constants/index.d.ts +6 -1
  39. package/constants/index.js +14 -1
  40. package/core/logic-validation/transfer.d.ts +1 -1
  41. package/core/logic-validation/transfer.js +25 -10
  42. package/koni/background/handlers/Extension.js +82 -62
  43. package/koni/background/handlers/State.d.ts +1 -1
  44. package/koni/background/handlers/State.js +2 -2
  45. package/koni/background/handlers/Tabs.js +4 -3
  46. package/package.json +16 -6
  47. package/packageInfo.js +1 -1
  48. package/page/index.js +1 -1
  49. package/services/balance-service/helpers/subscribe/substrate/index.js +2 -2
  50. package/services/balance-service/transfer/smart-contract.d.ts +4 -2
  51. package/services/balance-service/transfer/smart-contract.js +24 -3
  52. package/services/buy-service/constants/token.js +3 -0
  53. package/services/chain-service/index.d.ts +1 -0
  54. package/services/chain-service/index.js +12 -1
  55. package/services/earning-service/constants/chains.js +1 -1
  56. package/services/earning-service/handlers/base.d.ts +7 -5
  57. package/services/earning-service/handlers/base.js +11 -7
  58. package/services/earning-service/handlers/native-staking/base-para.d.ts +1 -1
  59. package/services/earning-service/handlers/native-staking/base-para.js +7 -6
  60. package/services/earning-service/handlers/native-staking/base.d.ts +1 -1
  61. package/services/earning-service/handlers/native-staking/base.js +6 -3
  62. package/services/earning-service/handlers/native-staking/dtao.d.ts +64 -0
  63. package/services/earning-service/handlers/native-staking/dtao.js +434 -0
  64. package/services/earning-service/handlers/native-staking/index.d.ts +1 -0
  65. package/services/earning-service/handlers/native-staking/index.js +2 -1
  66. package/services/earning-service/handlers/native-staking/tao.d.ts +16 -4
  67. package/services/earning-service/handlers/native-staking/tao.js +136 -121
  68. package/services/earning-service/service.d.ts +1 -0
  69. package/services/earning-service/service.js +15 -5
  70. package/services/fee-service/interfaces.d.ts +25 -0
  71. package/services/fee-service/utils/tokenPayFee.d.ts +8 -0
  72. package/services/fee-service/utils/tokenPayFee.js +141 -0
  73. package/services/inapp-notification-service/index.js +3 -0
  74. package/services/request-service/handler/MetadataRequestHandler.d.ts +1 -1
  75. package/services/request-service/handler/MetadataRequestHandler.js +5 -13
  76. package/services/request-service/index.d.ts +1 -1
  77. package/services/request-service/index.js +2 -2
  78. package/services/transaction-service/index.js +16 -7
  79. package/types/bridge/index.d.ts +1 -0
  80. package/types/buy.d.ts +1 -1
  81. package/types/fee/option.d.ts +1 -1
  82. package/types/yield/actions/join/step.d.ts +1 -0
  83. package/types/yield/actions/join/submit.d.ts +1 -0
  84. package/types/yield/info/account/info.d.ts +14 -1
  85. package/types/yield/info/base.d.ts +3 -1
  86. package/types/yield/info/base.js +1 -0
  87. package/types/yield/info/chain/info.d.ts +5 -1
  88. package/utils/fee/transfer.d.ts +1 -1
  89. package/utils/fee/transfer.js +46 -13
  90. package/utils/fetchEvmChainInfo.d.ts +1 -1
  91. 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 { TokenHasBalanceInfo } from '@subwallet/extension-base/services/fee-service/interfaces';
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, TokenHasBalanceInfo[]];
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];
@@ -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://sw-services.subwallet.app/api'); // TODO: Rollback dev URL
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;
@@ -40,9 +40,11 @@ var _exportNames = {
40
40
  ORDINAL_COLLECTION: true,
41
41
  ORDINAL_METHODS: true,
42
42
  PERMISSIONS_TO_REVOKE: true,
43
- ASSET_HUB_CHAIN_SLUGS: true
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.ASSET_HUB_CHAIN_SLUGS = exports.ALL_NETWORK_KEY = exports.ALL_GENESIS_HASH = exports.ALL_ACCOUNT_KEY = exports.ALL_ACCOUNT_AUTH_TYPES = exports.ACALA_REFRESH_CROWDLOAN_INTERVAL = void 0;
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 ASSET_HUB_CHAIN_SLUGS = ['paseo_assethub', 'westend_assethub', 'rococo_assethub', 'statemine', 'statemint'];
194
- exports.ASSET_HUB_CHAIN_SLUGS = ASSET_HUB_CHAIN_SLUGS;
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, tokenPayFeeInfo, isTransferLocalTokenAndPayThatTokenAsFee) {
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
- if (tokenPayFeeInfo) {
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 = tokenPayFeeInfo.decimals || 0;
400
- estimateFee.symbol = tokenPayFeeInfo.symbol;
401
- estimateFee.value = await (0, _utils4.calculateToAmountByReservePool)(substrateApi.api, nativeTokenInfo, tokenPayFeeInfo, estimatedFeeAmount);
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
- nonNativeTokenPayFeeSlug,
442
- skipFeeValidation
455
+ skipFeeValidation,
456
+ tokenPayFeeSlug
443
457
  } = transactionInput;
444
- if (skipFeeValidation || nonNativeTokenPayFeeSlug) {
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);