@subwallet/extension-base 1.3.16-0 → 1.3.18-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 (137) hide show
  1. package/background/KoniTypes.d.ts +12 -2
  2. package/cjs/constants/index.js +6 -3
  3. package/cjs/core/logic-validation/request.js +26 -19
  4. package/cjs/core/logic-validation/transfer.js +18 -17
  5. package/cjs/koni/api/contract-handler/evm/web3.js +3 -3
  6. package/cjs/koni/api/staking/bonding/utils.js +1 -1
  7. package/cjs/koni/background/handlers/Extension.js +289 -124
  8. package/cjs/koni/background/handlers/State.js +1 -8
  9. package/cjs/packageInfo.js +1 -1
  10. package/cjs/services/balance-service/helpers/subscribe/substrate/index.js +14 -2
  11. package/cjs/services/balance-service/index.js +13 -0
  12. package/cjs/services/balance-service/transfer/smart-contract.js +47 -33
  13. package/cjs/services/balance-service/transfer/token.js +5 -4
  14. package/cjs/services/balance-service/transfer/xcm/availBridge.js +14 -18
  15. package/cjs/services/balance-service/transfer/xcm/index.js +30 -61
  16. package/cjs/services/balance-service/transfer/xcm/polygonBridge.js +13 -17
  17. package/cjs/services/balance-service/transfer/xcm/posBridge.js +20 -21
  18. package/cjs/services/balance-service/transfer/xcm/snowBridge.js +7 -7
  19. package/cjs/services/balance-service/transfer/xcm/utils.js +2 -2
  20. package/cjs/services/chain-service/constants.js +3 -3
  21. package/cjs/services/chain-service/index.js +22 -0
  22. package/cjs/services/earning-service/handlers/liquid-staking/stella-swap.js +7 -12
  23. package/cjs/services/earning-service/handlers/native-staking/tao.js +121 -30
  24. package/cjs/services/earning-service/handlers/nomination-pool/index.js +1 -1
  25. package/cjs/services/earning-service/handlers/special.js +34 -14
  26. package/cjs/services/fee-service/interfaces.js +1 -0
  27. package/cjs/services/fee-service/service.js +111 -0
  28. package/cjs/services/fee-service/utils/index.js +99 -113
  29. package/cjs/services/storage-service/db-stores/Balance.js +3 -0
  30. package/cjs/services/swap-service/handler/asset-hub/handler.js +21 -6
  31. package/cjs/services/swap-service/handler/asset-hub/router.js +1 -1
  32. package/cjs/services/swap-service/handler/asset-hub/utils.js +4 -4
  33. package/cjs/services/swap-service/handler/base-handler.js +2 -0
  34. package/cjs/services/swap-service/handler/chainflip-handler.js +25 -4
  35. package/cjs/services/swap-service/handler/hydradx-handler.js +20 -6
  36. package/cjs/services/swap-service/handler/simpleswap-handler.js +23 -3
  37. package/cjs/services/swap-service/index.js +8 -8
  38. package/cjs/services/transaction-service/index.js +23 -3
  39. package/cjs/types/balance/transfer.js +1 -0
  40. package/cjs/types/fee/base.js +1 -0
  41. package/cjs/types/fee/evm.js +16 -1
  42. package/cjs/types/fee/index.js +37 -4
  43. package/cjs/types/fee/option.js +1 -0
  44. package/cjs/types/fee/subscription.js +1 -0
  45. package/cjs/types/fee/substrate.js +1 -0
  46. package/cjs/types/fee/ton.js +1 -0
  47. package/cjs/utils/fee/combine.js +50 -0
  48. package/cjs/utils/fee/index.js +27 -0
  49. package/cjs/utils/fee/transfer.js +374 -0
  50. package/cjs/utils/index.js +12 -0
  51. package/constants/index.d.ts +1 -0
  52. package/constants/index.js +1 -0
  53. package/core/logic-validation/request.js +17 -10
  54. package/core/logic-validation/transfer.d.ts +5 -5
  55. package/core/logic-validation/transfer.js +20 -19
  56. package/core/substrate/xcm-parser.d.ts +1 -1
  57. package/koni/api/contract-handler/evm/web3.js +3 -3
  58. package/koni/api/staking/bonding/utils.js +1 -1
  59. package/koni/background/handlers/Extension.d.ts +4 -3
  60. package/koni/background/handlers/Extension.js +273 -108
  61. package/koni/background/handlers/State.js +1 -8
  62. package/package.json +55 -5
  63. package/packageInfo.js +1 -1
  64. package/services/balance-service/helpers/subscribe/substrate/index.js +14 -2
  65. package/services/balance-service/index.d.ts +1 -0
  66. package/services/balance-service/index.js +13 -0
  67. package/services/balance-service/transfer/smart-contract.d.ts +24 -4
  68. package/services/balance-service/transfer/smart-contract.js +45 -33
  69. package/services/balance-service/transfer/token.js +6 -5
  70. package/services/balance-service/transfer/xcm/availBridge.d.ts +3 -2
  71. package/services/balance-service/transfer/xcm/availBridge.js +11 -15
  72. package/services/balance-service/transfer/xcm/index.d.ts +12 -11
  73. package/services/balance-service/transfer/xcm/index.js +29 -58
  74. package/services/balance-service/transfer/xcm/polygonBridge.d.ts +4 -3
  75. package/services/balance-service/transfer/xcm/polygonBridge.js +13 -17
  76. package/services/balance-service/transfer/xcm/posBridge.d.ts +4 -3
  77. package/services/balance-service/transfer/xcm/posBridge.js +18 -19
  78. package/services/balance-service/transfer/xcm/snowBridge.d.ts +2 -1
  79. package/services/balance-service/transfer/xcm/snowBridge.js +7 -7
  80. package/services/balance-service/transfer/xcm/utils.js +2 -2
  81. package/services/chain-service/constants.js +3 -3
  82. package/services/chain-service/index.d.ts +6 -1
  83. package/services/chain-service/index.js +22 -0
  84. package/services/earning-service/handlers/liquid-staking/stella-swap.js +7 -12
  85. package/services/earning-service/handlers/native-staking/tao.d.ts +7 -2
  86. package/services/earning-service/handlers/native-staking/tao.js +119 -29
  87. package/services/earning-service/handlers/nomination-pool/index.js +1 -1
  88. package/services/earning-service/handlers/special.js +36 -16
  89. package/services/fee-service/interfaces.d.ts +5 -0
  90. package/services/fee-service/interfaces.js +1 -0
  91. package/services/fee-service/service.d.ts +4 -1
  92. package/services/fee-service/service.js +111 -0
  93. package/services/fee-service/utils/index.d.ts +8 -2
  94. package/services/fee-service/utils/index.js +92 -108
  95. package/services/storage-service/db-stores/Balance.d.ts +1 -0
  96. package/services/storage-service/db-stores/Balance.js +3 -0
  97. package/services/swap-service/handler/asset-hub/handler.d.ts +2 -1
  98. package/services/swap-service/handler/asset-hub/handler.js +21 -6
  99. package/services/swap-service/handler/asset-hub/router.js +2 -2
  100. package/services/swap-service/handler/asset-hub/utils.d.ts +1 -1
  101. package/services/swap-service/handler/asset-hub/utils.js +2 -2
  102. package/services/swap-service/handler/base-handler.d.ts +4 -1
  103. package/services/swap-service/handler/base-handler.js +2 -0
  104. package/services/swap-service/handler/chainflip-handler.d.ts +2 -1
  105. package/services/swap-service/handler/chainflip-handler.js +24 -3
  106. package/services/swap-service/handler/hydradx-handler.d.ts +2 -1
  107. package/services/swap-service/handler/hydradx-handler.js +19 -5
  108. package/services/swap-service/handler/simpleswap-handler.d.ts +2 -1
  109. package/services/swap-service/handler/simpleswap-handler.js +23 -3
  110. package/services/swap-service/index.js +8 -8
  111. package/services/transaction-service/index.js +23 -3
  112. package/services/transaction-service/types.d.ts +5 -4
  113. package/types/balance/transfer.d.ts +25 -0
  114. package/types/balance/transfer.js +1 -0
  115. package/types/fee/base.d.ts +8 -0
  116. package/types/fee/base.js +1 -0
  117. package/types/fee/evm.d.ts +46 -16
  118. package/types/fee/evm.js +10 -1
  119. package/types/fee/index.d.ts +4 -1
  120. package/types/fee/index.js +4 -1
  121. package/types/fee/option.d.ts +8 -0
  122. package/types/fee/option.js +1 -0
  123. package/types/fee/subscription.d.ts +12 -0
  124. package/types/fee/subscription.js +1 -0
  125. package/types/fee/substrate.d.ts +15 -0
  126. package/types/fee/substrate.js +1 -0
  127. package/types/fee/ton.d.ts +18 -0
  128. package/types/fee/ton.js +1 -0
  129. package/types/transaction/request.d.ts +13 -3
  130. package/utils/fee/combine.d.ts +12 -0
  131. package/utils/fee/combine.js +42 -0
  132. package/utils/fee/index.d.ts +2 -0
  133. package/utils/fee/index.js +5 -0
  134. package/utils/fee/transfer.d.ts +22 -0
  135. package/utils/fee/transfer.js +363 -0
  136. package/utils/index.d.ts +1 -0
  137. package/utils/index.js +1 -0
@@ -7,13 +7,15 @@ import { RequestOptimalTransferProcess } from '@subwallet/extension-base/service
7
7
  import { TonTransactionConfig } from '@subwallet/extension-base/services/balance-service/transfer/ton-transfer';
8
8
  import { _CHAIN_VALIDATION_ERROR } from '@subwallet/extension-base/services/chain-service/handler/types';
9
9
  import { _ChainState, _EvmApi, _NetworkUpsertParams, _SubstrateApi, _ValidateCustomAssetRequest, _ValidateCustomAssetResponse, EnableChainParams, EnableMultiChainParams } from '@subwallet/extension-base/services/chain-service/types';
10
+ import { TokenHasBalanceInfo } from '@subwallet/extension-base/services/fee-service/interfaces';
10
11
  import { _NotificationInfo, NotificationSetup } from '@subwallet/extension-base/services/inapp-notification-service/interfaces';
11
12
  import { AppBannerData, AppConfirmationData, AppPopupData } from '@subwallet/extension-base/services/mkt-campaign-service/types';
12
13
  import { AuthUrls } from '@subwallet/extension-base/services/request-service/types';
13
14
  import { CrowdloanContributionsResponse } from '@subwallet/extension-base/services/subscan-service/types';
14
15
  import { SWTransactionResponse, SWTransactionResult } from '@subwallet/extension-base/services/transaction-service/types';
15
16
  import { WalletConnectNotSupportRequest, WalletConnectSessionRequest } from '@subwallet/extension-base/services/wallet-connect-service/types';
16
- import { AccountJson, AccountsWithCurrentAddress, AddressJson, BalanceJson, BaseRequestSign, BuyServiceInfo, BuyTokenInfo, CommonOptimalPath, CurrentAccountInfo, EarningRewardHistoryItem, EarningRewardJson, EarningStatus, HandleYieldStepParams, InternalRequestSign, LeavePoolAdditionalData, NominationPoolInfo, OptimalYieldPath, OptimalYieldPathParams, RequestAccountBatchExportV2, RequestAccountCreateSuriV2, RequestAccountNameValidate, RequestAccountProxyEdit, RequestAccountProxyForget, RequestBatchJsonGetAccountInfo, RequestBatchRestoreV2, RequestBounceableValidate, RequestChangeTonWalletContractVersion, RequestCheckCrossChainTransfer, RequestCheckPublicAndSecretKey, RequestCheckTransfer, RequestCrossChainTransfer, RequestDeriveCreateMultiple, RequestDeriveCreateV3, RequestDeriveValidateV2, RequestEarlyValidateYield, RequestExportAccountProxyMnemonic, RequestGetAllTonWalletContractVersion, RequestGetDeriveAccounts, RequestGetDeriveSuggestion, RequestGetYieldPoolTargets, RequestInputAccountSubscribe, RequestJsonGetAccountInfo, RequestJsonRestoreV2, RequestMetadataHash, RequestMnemonicCreateV2, RequestMnemonicValidateV2, RequestPrivateKeyValidateV2, RequestShortenMetadata, RequestStakeCancelWithdrawal, RequestStakeClaimReward, 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, StorageDataInterface, SubmitYieldStepData, SwapPair, SwapQuoteResponse, SwapRequest, SwapRequestResult, SwapSubmitParams, SwapTxData, TokenSpendingApprovalParams, UnlockDotTransactionNft, UnstakingStatus, ValidateSwapProcessParams, ValidateYieldProcessParams, YieldPoolInfo, YieldPositionInfo } from '@subwallet/extension-base/types';
17
+ import { AccountJson, AccountsWithCurrentAddress, AddressJson, BalanceJson, BaseRequestSign, BuyServiceInfo, BuyTokenInfo, CommonOptimalPath, CurrentAccountInfo, EarningRewardHistoryItem, EarningRewardJson, EarningStatus, HandleYieldStepParams, InternalRequestSign, LeavePoolAdditionalData, NominationPoolInfo, OptimalYieldPath, OptimalYieldPathParams, RequestAccountBatchExportV2, RequestAccountCreateSuriV2, RequestAccountNameValidate, RequestAccountProxyEdit, RequestAccountProxyForget, RequestBatchJsonGetAccountInfo, RequestBatchRestoreV2, RequestBounceableValidate, 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, 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, StorageDataInterface, SubmitYieldStepData, SwapPair, SwapQuoteResponse, SwapRequest, SwapRequestResult, SwapSubmitParams, SwapTxData, TokenSpendingApprovalParams, UnlockDotTransactionNft, UnstakingStatus, ValidateSwapProcessParams, ValidateYieldProcessParams, YieldPoolInfo, YieldPositionInfo } from '@subwallet/extension-base/types';
18
+ import { RequestSubmitTransfer, RequestSubscribeTransfer, ResponseSubscribeTransfer } from '@subwallet/extension-base/types/balance/transfer';
17
19
  import { RequestClaimBridge } from '@subwallet/extension-base/types/bridge';
18
20
  import { GetNotificationParams, RequestIsClaimedPolygonBridge, RequestSwitchStatusParams } from '@subwallet/extension-base/types/notification';
19
21
  import { InjectedAccount, InjectedAccountWithMeta, MetadataDefBase } from '@subwallet/extension-inject/types';
@@ -1300,6 +1302,10 @@ export interface RequestAddPspToken {
1300
1302
  logo?: string;
1301
1303
  };
1302
1304
  }
1305
+ export interface TokenPriorityDetails {
1306
+ tokenGroup: Record<string, number>;
1307
+ token: Record<string, number>;
1308
+ }
1303
1309
  export interface RequestConnectWalletConnect {
1304
1310
  uri: string;
1305
1311
  }
@@ -1605,15 +1611,18 @@ export interface KoniRequestSignatures {
1605
1611
  'pri(transaction.history.getSubscription)': [null, TransactionHistoryItem[], TransactionHistoryItem[]];
1606
1612
  'pri(transaction.history.subscribe)': [RequestSubscribeHistory, ResponseSubscribeHistory, TransactionHistoryItem[]];
1607
1613
  'pri(transfer.getMaxTransferable)': [RequestMaxTransferable, AmountData];
1614
+ 'pri(transfer.subscribe)': [RequestSubscribeTransfer, ResponseSubscribeTransfer, ResponseSubscribeTransfer];
1608
1615
  'pri(subscription.cancel)': [string, boolean];
1609
1616
  'pri(freeBalance.get)': [RequestFreeBalance, AmountData];
1610
1617
  'pri(freeBalance.subscribe)': [RequestFreeBalance, AmountDataWithId, AmountDataWithId];
1611
1618
  'pri(accounts.checkTransfer)': [RequestCheckTransfer, ValidateTransactionResponse];
1612
- 'pri(accounts.transfer)': [RequestTransfer, SWTransactionResponse];
1619
+ 'pri(accounts.transfer)': [RequestSubmitTransfer, SWTransactionResponse];
1613
1620
  'pri(accounts.getOptimalTransferProcess)': [RequestOptimalTransferProcess, CommonOptimalPath];
1614
1621
  'pri(accounts.approveSpending)': [TokenSpendingApprovalParams, SWTransactionResponse];
1615
1622
  'pri(accounts.checkCrossChainTransfer)': [RequestCheckCrossChainTransfer, ValidateTransactionResponse];
1616
1623
  'pri(accounts.crossChainTransfer)': [RequestCrossChainTransfer, SWTransactionResponse];
1624
+ 'pri(customFee.getTokensCanPayFee)': [RequestGetTokensCanPayFee, TokenHasBalanceInfo[]];
1625
+ 'pri(customFee.getAmountForPair)': [RequestGetAmountForPair, string];
1617
1626
  'pri(confirmations.subscribe)': [RequestConfirmationsSubscribe, ConfirmationsQueue, ConfirmationsQueue];
1618
1627
  'pri(confirmationsTon.subscribe)': [RequestConfirmationsSubscribeTon, ConfirmationsQueueTon, ConfirmationsQueueTon];
1619
1628
  'pri(confirmations.complete)': [RequestConfirmationComplete, boolean];
@@ -1701,6 +1710,7 @@ export interface KoniRequestSignatures {
1701
1710
  'pri(availBridge.submitClaimAvailBridgeOnAvail)': [RequestClaimBridge, SWTransactionResponse];
1702
1711
  'pri(polygonBridge.submitClaimPolygonBridge)': [RequestClaimBridge, SWTransactionResponse];
1703
1712
  'pri(ledger.generic.allow)': [null, string[], string[]];
1713
+ 'pri(tokens.subscribePriority)': [null, TokenPriorityDetails, TokenPriorityDetails];
1704
1714
  }
1705
1715
  export interface ApplicationMetadataType {
1706
1716
  version: string;
@@ -39,9 +39,10 @@ var _exportNames = {
39
39
  NETWORK_MULTI_GAS_FEE: true,
40
40
  ORDINAL_COLLECTION: true,
41
41
  ORDINAL_METHODS: true,
42
- PERMISSIONS_TO_REVOKE: true
42
+ PERMISSIONS_TO_REVOKE: true,
43
+ ASSET_HUB_CHAIN_SLUGS: true
43
44
  };
44
- 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;
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;
45
46
  var _blockedActions = require("./blocked-actions");
46
47
  Object.keys(_blockedActions).forEach(function (key) {
47
48
  if (key === "default" || key === "__esModule") return;
@@ -188,4 +189,6 @@ exports.ORDINAL_COLLECTION = ORDINAL_COLLECTION;
188
189
  const ORDINAL_METHODS = ['drc-20', 'pol-20'];
189
190
  exports.ORDINAL_METHODS = ORDINAL_METHODS;
190
191
  const PERMISSIONS_TO_REVOKE = ['eth_accounts'];
191
- exports.PERMISSIONS_TO_REVOKE = PERMISSIONS_TO_REVOKE;
192
+ 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;
@@ -20,13 +20,13 @@ var _ethSigUtil = require("@metamask/eth-sig-util");
20
20
  var _EvmProviderError = require("@subwallet/extension-base/background/errors/EvmProviderError");
21
21
  var _TransactionError = require("@subwallet/extension-base/background/errors/TransactionError");
22
22
  var _KoniTypes = require("@subwallet/extension-base/background/KoniTypes");
23
- var _utils = require("@subwallet/extension-base/services/fee-service/utils");
24
23
  var _types = require("@subwallet/extension-base/types");
25
- var _utils2 = require("@subwallet/extension-base/utils");
24
+ var _utils = require("@subwallet/extension-base/utils");
26
25
  var _parseTransaction = require("@subwallet/extension-base/utils/eth/parseTransaction");
26
+ var _getId = require("@subwallet/extension-base/utils/getId");
27
27
  var _keyring = require("@subwallet/keyring");
28
28
  var _uiKeyring = require("@subwallet/ui-keyring");
29
- var _utils3 = require("@walletconnect/utils");
29
+ var _utils2 = require("@walletconnect/utils");
30
30
  var _bignumber = _interopRequireDefault(require("bignumber.js"));
31
31
  var _bn = _interopRequireDefault(require("bn.js"));
32
32
  var _i18next = require("i18next");
@@ -163,7 +163,7 @@ async function validationAuthMiddleware(koni, url, payload) {
163
163
  errors.push(new Error(message));
164
164
  } else {
165
165
  const authList = await koni.getAuthList();
166
- const authInfo = authList[(0, _utils2.stripUrl)(url)];
166
+ const authInfo = authList[(0, _utils.stripUrl)(url)];
167
167
  if (!authInfo || !authInfo.isAllowed || !authInfo.isAllowedMap[payload.pair.address]) {
168
168
  payload.errorPosition = 'dApp';
169
169
  const [message] = convertErrorMessage('Account not in allowed list', '');
@@ -234,7 +234,7 @@ async function validationConnectMiddleware(koni, url, payload) {
234
234
 
235
235
  // Calculate transaction data
236
236
  try {
237
- await Promise.race([checkProviderConnected(), (0, _utils2.wait)(3000).then(async () => {
237
+ await Promise.race([checkProviderConnected(), (0, _utils.wait)(3000).then(async () => {
238
238
  if (!currentProviderConnected) {
239
239
  await koni.chainService.initSingleApi(networkKey);
240
240
  await checkProviderConnected();
@@ -307,7 +307,7 @@ async function validationEvmDataTransactionMiddleware(koni, url, payload) {
307
307
  if (transaction.value) {
308
308
  try {
309
309
  const valueBn = new _bignumber.default(transaction.value.toString());
310
- if (!valueBn.eq(_utils2.BN_ZERO)) {
310
+ if (!valueBn.eq(_utils.BN_ZERO)) {
311
311
  handleError('Recipient address not found');
312
312
  }
313
313
  } catch (e) {
@@ -331,7 +331,7 @@ async function validationEvmDataTransactionMiddleware(koni, url, payload) {
331
331
 
332
332
  // Calculate transaction data
333
333
  try {
334
- await Promise.race([getTransactionGas(), (0, _utils2.wait)(3000).then(async () => {
334
+ await Promise.race([getTransactionGas(), (0, _utils.wait)(3000).then(async () => {
335
335
  if (!transaction.gas) {
336
336
  await koni.chainService.initSingleApi(networkKey || '');
337
337
  await getTransactionGas();
@@ -351,15 +351,22 @@ async function validationEvmDataTransactionMiddleware(koni, url, payload) {
351
351
  estimateGas = new _bignumber.default(transactionParams.gasPrice).multipliedBy(transaction.gas).toFixed(0);
352
352
  } else {
353
353
  try {
354
- const priority = await (0, _utils.calculateGasFeeParams)(evmApi, networkKey || '');
355
- if (priority.baseGasFee) {
356
- transaction.maxPriorityFeePerGas = priority.maxPriorityFeePerGas.toString();
357
- transaction.maxFeePerGas = priority.maxFeePerGas.toString();
358
- const maxFee = priority.maxFeePerGas;
359
- estimateGas = maxFee.multipliedBy(transaction.gas).toFixed(0);
354
+ const gasLimit = transaction.gas || (await evmApi.api.eth.estimateGas(transaction));
355
+ const id = (0, _getId.getId)();
356
+ const feeInfo = await koni.feeService.subscribeChainFee(id, transaction.chain || '', 'evm');
357
+ const feeCombine = (0, _utils.combineEthFee)(feeInfo);
358
+ if (transaction.maxFeePerGas) {
359
+ estimateGas = new _bignumber.default(transaction.maxFeePerGas.toString()).multipliedBy(gasLimit).toFixed(0);
360
+ } else if (transaction.gasPrice) {
361
+ estimateGas = new _bignumber.default(transaction.gasPrice.toString()).multipliedBy(gasLimit).toFixed(0);
360
362
  } else {
361
- transaction.gasPrice = priority.gasPrice;
362
- estimateGas = new _bignumber.default(priority.gasPrice).multipliedBy(transaction.gas).toFixed(0);
363
+ if (feeCombine.maxFeePerGas) {
364
+ const maxFee = new _bignumber.default(feeCombine.maxFeePerGas); // TODO: Need review
365
+
366
+ estimateGas = maxFee.multipliedBy(gasLimit).toFixed(0);
367
+ } else if (feeCombine.gasPrice) {
368
+ estimateGas = new _bignumber.default(feeCombine.gasPrice || 0).multipliedBy(gasLimit).toFixed(0);
369
+ }
363
370
  }
364
371
  } catch (e) {
365
372
  handleError(e.message);
@@ -419,7 +426,7 @@ async function validationEvmSignMessageMiddleware(koni, url, payload_) {
419
426
  const {
420
427
  promise,
421
428
  resolve
422
- } = (0, _utils2.createPromiseHandler)();
429
+ } = (0, _utils.createPromiseHandler)();
423
430
  let hashPayload = '';
424
431
  let canSign = false;
425
432
  const handleError = message_ => {
@@ -502,14 +509,14 @@ function validationAuthWCMiddleware(koni, url, payload, topic) {
502
509
  const {
503
510
  promise,
504
511
  resolve
505
- } = (0, _utils2.createPromiseHandler)();
512
+ } = (0, _utils.createPromiseHandler)();
506
513
  const {
507
514
  address,
508
515
  errors
509
516
  } = payload;
510
517
  if (!topic) {
511
518
  payload.errorPosition = 'dApp';
512
- errors.push(new Error((0, _utils3.getSdkError)('UNAUTHORIZED_EXTEND_REQUEST').message));
519
+ errors.push(new Error((0, _utils2.getSdkError)('UNAUTHORIZED_EXTEND_REQUEST').message));
513
520
  } else {
514
521
  const requestSession = koni.walletConnectService.getSession(topic);
515
522
  let sessionAccounts = [];
@@ -532,7 +539,7 @@ function validationAuthWCMiddleware(koni, url, payload, topic) {
532
539
  const [message] = convertErrorMessage('Unable to find account');
533
540
  errors.push(new Error(message));
534
541
  }
535
- const isExitsAccount = sessionAccounts.find(account => (0, _utils2.isSameAddress)(account, address));
542
+ const isExitsAccount = sessionAccounts.find(account => (0, _utils.isSameAddress)(account, address));
536
543
  if (!isExitsAccount) {
537
544
  payload.errorPosition = 'dApp';
538
545
  const [message] = convertErrorMessage('Account not in allowed list');
@@ -38,15 +38,10 @@ var _utilCrypto = require("@polkadot/util-crypto");
38
38
  // normal transfer
39
39
  function validateTransferRequest(tokenInfo, from, to, value, transferAll) {
40
40
  const errors = [];
41
- const keypair = _uiKeyring.keyring.getPair(from);
42
- let transferValue;
43
41
  if (!transferAll) {
44
42
  if (value === undefined) {
45
43
  errors.push(new _TransactionError.TransactionError(_types.BasicTxErrorType.INVALID_PARAMS, (0, _i18next.t)('Transfer amount is required')));
46
44
  }
47
- if (value) {
48
- transferValue = new _bignumber.default(value);
49
- }
50
45
  }
51
46
  if (!tokenInfo) {
52
47
  errors.push(new _TransactionError.TransactionError(_types.BasicTxErrorType.INVALID_PARAMS, (0, _i18next.t)('Not found token from registry')));
@@ -57,7 +52,7 @@ function validateTransferRequest(tokenInfo, from, to, value, transferAll) {
57
52
  if ((0, _keyring.isTonAddress)(from) && (0, _keyring.isTonAddress)(to) && (0, _utils2._isTokenTonSmartContract)(tokenInfo) && (0, _utils2._getContractAddressOfToken)(tokenInfo).length === 0) {
58
53
  errors.push(new _TransactionError.TransactionError(_types.BasicTxErrorType.INVALID_PARAMS, (0, _i18next.t)('Not found TEP74 address for this token')));
59
54
  }
60
- return [errors, keypair, transferValue];
55
+ return errors;
61
56
  }
62
57
  function additionalValidateTransferForRecipient(sendingTokenInfo, nativeTokenInfo, extrinsicType, receiverSendingTokenKeepAliveBalance, transferAmount, senderSendingTokenTransferable, receiverSystemAccountInfo, isSendingTokenSufficient) {
63
58
  const sendingTokenMinAmount = BigInt((0, _utils2._getTokenMinAmount)(sendingTokenInfo));
@@ -119,11 +114,10 @@ function additionalValidateTransferForRecipient(sendingTokenInfo, nativeTokenInf
119
114
  function validateXcmTransferRequest(destTokenInfo, sender, sendingValue) {
120
115
  const errors = [];
121
116
  const keypair = _uiKeyring.keyring.getPair(sender);
122
- const transferValue = new _bignumber.default(sendingValue);
123
117
  if (!destTokenInfo) {
124
118
  errors.push(new _TransactionError.TransactionError(_types.TransferTxErrorType.INVALID_TOKEN, (0, _i18next.t)('Not found token from registry')));
125
119
  }
126
- return [errors, keypair, transferValue];
120
+ return [errors, keypair];
127
121
  }
128
122
  function additionalValidateXcmTransfer(originTokenInfo, destinationTokenInfo, sendingAmount, senderTransferable, receiverNativeBalance, destChainInfo) {
129
123
  let isSnowBridge = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : false;
@@ -350,7 +344,7 @@ function checkSupportForTransaction(validationResponse, transaction) {
350
344
  }
351
345
  }
352
346
  }
353
- async function estimateFeeForTransaction(validationResponse, transaction, chainInfo, evmApi) {
347
+ async function estimateFeeForTransaction(validationResponse, transaction, chainInfo, evmApi, substrateApi, feeInfo, nativeTokenInfo, tokenPayFeeInfo, isTransferLocalTokenAndPayThatTokenAsFee) {
354
348
  const estimateFee = {
355
349
  symbol: '',
356
350
  decimals: 0,
@@ -371,21 +365,21 @@ async function estimateFeeForTransaction(validationResponse, transaction, chainI
371
365
  estimateFee.value = transaction.estimateFee; // todo: might need to update logic estimate fee inside for future actions excluding normal transfer Ton and Jetton
372
366
  } else {
373
367
  const gasLimit = transaction.gas || (await evmApi.api.eth.estimateGas(transaction));
374
- const priority = await (0, _utils3.calculateGasFeeParams)(evmApi, chainInfo.slug);
368
+ const feeCombine = (0, _utils4.combineEthFee)(feeInfo, validationResponse.feeOption, validationResponse.feeCustom);
375
369
  if (transaction.maxFeePerGas) {
376
370
  estimateFee.value = new _bignumber.default(transaction.maxFeePerGas.toString()).multipliedBy(gasLimit).toFixed(0);
377
371
  } else if (transaction.gasPrice) {
378
- estimateFee.value = new _bignumber.default((transaction.gasPrice || 0).toString()).multipliedBy(gasLimit).toFixed(0);
372
+ estimateFee.value = new _bignumber.default(transaction.gasPrice.toString()).multipliedBy(gasLimit).toFixed(0);
379
373
  } else {
380
- if (priority.baseGasFee) {
381
- const maxFee = priority.maxFeePerGas; // TODO: Need review
374
+ if (feeCombine.maxFeePerGas) {
375
+ const maxFee = new _bignumber.default(feeCombine.maxFeePerGas); // TODO: Need review
382
376
 
383
377
  estimateFee.value = maxFee.multipliedBy(gasLimit).toFixed(0);
384
- } else {
385
- estimateFee.value = new _bignumber.default(priority.gasPrice).multipliedBy(gasLimit).toFixed(0);
378
+ } else if (feeCombine.gasPrice) {
379
+ estimateFee.value = new _bignumber.default(feeCombine.gasPrice || 0).multipliedBy(gasLimit).toFixed(0);
386
380
  }
387
381
  }
388
- estimateFee.tooHigh = priority.busyNetwork;
382
+ estimateFee.tooHigh = feeInfo.busyNetwork;
389
383
  }
390
384
  } catch (e) {
391
385
  const error = e;
@@ -394,6 +388,12 @@ async function estimateFeeForTransaction(validationResponse, transaction, chainI
394
388
  }
395
389
  }
396
390
  }
391
+ if (tokenPayFeeInfo) {
392
+ const estimatedFeeAmount = isTransferLocalTokenAndPayThatTokenAsFee ? (BigInt(estimateFee.value) * BigInt(_utils3.FEE_COVERAGE_PERCENTAGE_SPECIAL_CASE) / BigInt(100)).toString() : estimateFee.value;
393
+ estimateFee.decimals = tokenPayFeeInfo.decimals || 0;
394
+ estimateFee.symbol = tokenPayFeeInfo.symbol;
395
+ estimateFee.value = await (0, _utils3.calculateToAmountByReservePool)(substrateApi.api, nativeTokenInfo, tokenPayFeeInfo, estimatedFeeAmount);
396
+ }
397
397
  return estimateFee;
398
398
  }
399
399
  function checkSigningAccountForTransaction(validationResponse, chainInfoMap) {
@@ -432,9 +432,10 @@ function checkBalanceWithTransactionFee(validationResponse, transactionInput, na
432
432
  edAsWarning,
433
433
  extrinsicType,
434
434
  isTransferAll,
435
+ nonNativeTokenPayFeeSlug,
435
436
  skipFeeValidation
436
437
  } = transactionInput;
437
- if (skipFeeValidation) {
438
+ if (skipFeeValidation || nonNativeTokenPayFeeSlug) {
438
439
  return;
439
440
  }
440
441
  const bnFee = new _bignumber.default(validationResponse.estimateFee.value);
@@ -9,6 +9,7 @@ exports.getERC20SpendingApprovalTx = getERC20SpendingApprovalTx;
9
9
  exports.getWeb3Contract = getWeb3Contract;
10
10
  var _utils = require("@subwallet/extension-base/koni/api/contract-handler/utils");
11
11
  var _utils2 = require("@subwallet/extension-base/services/fee-service/utils");
12
+ var _utils3 = require("@subwallet/extension-base/utils");
12
13
  // Copyright 2019-2022 @subwallet/extension-base
13
14
  // SPDX-License-Identifier: Apache-2.0
14
15
 
@@ -34,7 +35,6 @@ async function getERC20Allowance(spender, owner, contractAddress, evmApi) {
34
35
  return await allowanceCall.call();
35
36
  }
36
37
  async function getERC20SpendingApprovalTx(spender, owner, contractAddress, evmApi) {
37
- var _priority$maxFeePerGa, _priority$maxPriority;
38
38
  let amount = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : '115792089237316195423570985008687907853269984665640564039457584007913129639935';
39
39
  const tokenContract = getERC20Contract(contractAddress, evmApi);
40
40
  // eslint-disable-next-line @typescript-eslint/no-unsafe-call,@typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-assignment
@@ -46,13 +46,13 @@ async function getERC20SpendingApprovalTx(spender, owner, contractAddress, evmAp
46
46
  from: owner
47
47
  });
48
48
  const priority = await (0, _utils2.calculateGasFeeParams)(evmApi, evmApi.chainSlug);
49
+ const feeCombine = (0, _utils3.combineEthFee)(priority);
49
50
  return {
50
51
  from: owner,
51
52
  to: contractAddress,
52
53
  data: approveEncodedCall,
53
54
  gas: gasLimit,
54
55
  gasPrice: priority.gasPrice,
55
- maxFeePerGas: (_priority$maxFeePerGa = priority.maxFeePerGas) === null || _priority$maxFeePerGa === void 0 ? void 0 : _priority$maxFeePerGa.toString(),
56
- maxPriorityFeePerGas: (_priority$maxPriority = priority.maxPriorityFeePerGas) === null || _priority$maxPriority === void 0 ? void 0 : _priority$maxPriority.toString()
56
+ ...feeCombine
57
57
  };
58
58
  }
@@ -395,7 +395,7 @@ function getAvgValidatorEraReward(supportedDays, eraRewardHistory) {
395
395
  function getSupportedDaysByHistoryDepth(erasPerDay, maxSupportedEras, liveDay) {
396
396
  const maxSupportDay = Math.floor(maxSupportedEras / erasPerDay);
397
397
  if (liveDay && liveDay <= 30) {
398
- return Math.min(liveDay - 1, maxSupportDay);
398
+ return Math.min(Math.floor(liveDay - 1), maxSupportDay);
399
399
  }
400
400
  if (maxSupportDay > 30) {
401
401
  return 30;