@subwallet/extension-base 1.3.2-0 → 1.3.4-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 (124) hide show
  1. package/background/KoniTypes.d.ts +13 -0
  2. package/background/KoniTypes.js +1 -0
  3. package/cjs/background/KoniTypes.js +1 -0
  4. package/cjs/constants/blocked-actions-list.js +1 -2
  5. package/cjs/constants/index.js +16 -1
  6. package/cjs/constants/remind-notification-time.js +14 -0
  7. package/cjs/core/logic-validation/transfer.js +12 -6
  8. package/cjs/core/substrate/xcm-parser.js +13 -1
  9. package/cjs/koni/api/contract-handler/utils/index.js +20 -1
  10. package/cjs/koni/api/nft/assethub_nft/index.js +30 -7
  11. package/cjs/koni/background/handlers/Extension.js +110 -23
  12. package/cjs/koni/background/handlers/State.js +5 -2
  13. package/cjs/packageInfo.js +1 -1
  14. package/cjs/services/balance-service/helpers/process.js +2 -1
  15. package/cjs/services/balance-service/helpers/subscribe/substrate/index.js +11 -12
  16. package/cjs/services/balance-service/transfer/xcm/availBridge.js +198 -0
  17. package/cjs/services/balance-service/transfer/xcm/index.js +50 -5
  18. package/cjs/services/chain-service/handler/EvmApi.js +12 -21
  19. package/cjs/services/chain-service/handler/SubstrateChainHandler.js +29 -0
  20. package/cjs/services/chain-service/index.js +44 -13
  21. package/cjs/services/chain-service/utils/index.js +20 -0
  22. package/cjs/services/earning-service/handlers/base.js +14 -4
  23. package/cjs/services/earning-service/handlers/native-staking/amplitude.js +10 -2
  24. package/cjs/services/earning-service/handlers/native-staking/para-chain.js +2 -0
  25. package/cjs/services/earning-service/handlers/native-staking/relay-chain.js +2 -0
  26. package/cjs/services/earning-service/handlers/native-staking/tao.js +25 -38
  27. package/cjs/services/earning-service/handlers/nomination-pool/index.js +9 -4
  28. package/cjs/services/earning-service/service.js +5 -0
  29. package/cjs/services/earning-service/utils/index.js +0 -11
  30. package/cjs/services/inapp-notification-service/consts.js +31 -0
  31. package/cjs/services/inapp-notification-service/index.js +260 -0
  32. package/cjs/services/inapp-notification-service/interfaces.js +32 -0
  33. package/cjs/services/inapp-notification-service/utils.js +197 -0
  34. package/cjs/services/keyring-service/context/account-context.js +9 -0
  35. package/cjs/services/keyring-service/context/state.js +4 -0
  36. package/cjs/services/setting-service/SettingService.js +9 -1
  37. package/cjs/services/setting-service/constants.js +16 -1
  38. package/cjs/services/storage-service/DatabaseService.js +42 -3
  39. package/cjs/services/storage-service/databases/index.js +3 -0
  40. package/cjs/services/storage-service/db-stores/InappNotification.js +81 -0
  41. package/cjs/services/transaction-service/index.js +13 -0
  42. package/cjs/services/transaction-service/utils.js +3 -0
  43. package/cjs/types/avail-bridge/index.js +1 -0
  44. package/cjs/types/notification/index.js +1 -0
  45. package/cjs/utils/account/transform.js +9 -5
  46. package/cjs/utils/staticData/index.js +7 -2
  47. package/constants/blocked-actions-list.js +1 -2
  48. package/constants/index.d.ts +2 -0
  49. package/constants/index.js +3 -1
  50. package/constants/remind-notification-time.d.ts +2 -0
  51. package/constants/remind-notification-time.js +7 -0
  52. package/core/logic-validation/transfer.js +12 -6
  53. package/core/substrate/xcm-parser.d.ts +1 -0
  54. package/core/substrate/xcm-parser.js +12 -1
  55. package/koni/api/contract-handler/utils/avail_bridge_abi.json +1659 -0
  56. package/koni/api/contract-handler/utils/avail_test_bridge_abi.json +1692 -0
  57. package/koni/api/contract-handler/utils/index.d.ts +4 -0
  58. package/koni/api/contract-handler/utils/index.js +15 -0
  59. package/koni/api/nft/assethub_nft/index.d.ts +2 -0
  60. package/koni/api/nft/assethub_nft/index.js +30 -7
  61. package/koni/background/handlers/Extension.d.ts +7 -0
  62. package/koni/background/handlers/Extension.js +112 -25
  63. package/koni/background/handlers/State.d.ts +2 -0
  64. package/koni/background/handlers/State.js +5 -2
  65. package/package.json +54 -6
  66. package/packageInfo.js +1 -1
  67. package/services/balance-service/helpers/process.js +2 -1
  68. package/services/balance-service/helpers/subscribe/substrate/index.js +5 -6
  69. package/services/balance-service/transfer/xcm/availBridge.d.ts +45 -0
  70. package/services/balance-service/transfer/xcm/availBridge.js +186 -0
  71. package/services/balance-service/transfer/xcm/index.d.ts +8 -8
  72. package/services/balance-service/transfer/xcm/index.js +46 -5
  73. package/services/chain-service/handler/EvmApi.js +12 -21
  74. package/services/chain-service/handler/SubstrateChainHandler.d.ts +2 -0
  75. package/services/chain-service/handler/SubstrateChainHandler.js +29 -0
  76. package/services/chain-service/index.d.ts +2 -0
  77. package/services/chain-service/index.js +45 -14
  78. package/services/chain-service/types.d.ts +2 -1
  79. package/services/chain-service/utils/index.d.ts +3 -0
  80. package/services/chain-service/utils/index.js +14 -0
  81. package/services/earning-service/handlers/base.d.ts +2 -0
  82. package/services/earning-service/handlers/base.js +11 -1
  83. package/services/earning-service/handlers/native-staking/amplitude.js +10 -2
  84. package/services/earning-service/handlers/native-staking/para-chain.js +2 -0
  85. package/services/earning-service/handlers/native-staking/relay-chain.js +2 -0
  86. package/services/earning-service/handlers/native-staking/tao.d.ts +15 -11
  87. package/services/earning-service/handlers/native-staking/tao.js +21 -38
  88. package/services/earning-service/handlers/nomination-pool/index.d.ts +1 -1
  89. package/services/earning-service/handlers/nomination-pool/index.js +9 -4
  90. package/services/earning-service/service.d.ts +2 -0
  91. package/services/earning-service/service.js +5 -0
  92. package/services/earning-service/utils/index.d.ts +0 -2
  93. package/services/earning-service/utils/index.js +0 -10
  94. package/services/inapp-notification-service/consts.d.ts +18 -0
  95. package/services/inapp-notification-service/consts.js +22 -0
  96. package/services/inapp-notification-service/index.d.ts +37 -0
  97. package/services/inapp-notification-service/index.js +252 -0
  98. package/services/inapp-notification-service/interfaces.d.ts +77 -0
  99. package/services/inapp-notification-service/interfaces.js +24 -0
  100. package/services/inapp-notification-service/utils.d.ts +55 -0
  101. package/services/inapp-notification-service/utils.js +173 -0
  102. package/services/keyring-service/context/account-context.d.ts +3 -0
  103. package/services/keyring-service/context/account-context.js +9 -0
  104. package/services/keyring-service/context/state.d.ts +1 -0
  105. package/services/keyring-service/context/state.js +4 -0
  106. package/services/setting-service/SettingService.js +9 -1
  107. package/services/setting-service/constants.d.ts +2 -0
  108. package/services/setting-service/constants.js +15 -0
  109. package/services/storage-service/DatabaseService.d.ts +15 -0
  110. package/services/storage-service/DatabaseService.js +42 -3
  111. package/services/storage-service/databases/index.d.ts +2 -0
  112. package/services/storage-service/databases/index.js +3 -0
  113. package/services/storage-service/db-stores/InappNotification.d.ts +14 -0
  114. package/services/storage-service/db-stores/InappNotification.js +73 -0
  115. package/services/transaction-service/index.js +13 -0
  116. package/services/transaction-service/utils.js +3 -0
  117. package/types/avail-bridge/index.d.ts +6 -0
  118. package/types/avail-bridge/index.js +1 -0
  119. package/types/notification/index.d.ts +9 -0
  120. package/types/notification/index.js +1 -0
  121. package/utils/account/transform.js +9 -5
  122. package/utils/staticData/index.d.ts +5 -1
  123. package/utils/staticData/index.js +5 -2
  124. package/utils/staticData/remindNotificationTime.json +1 -0
@@ -342,14 +342,20 @@ export async function estimateFeeForTransaction(validationResponse, transaction,
342
342
  } else if (isTonTransaction(transaction)) {
343
343
  estimateFee.value = transaction.estimateFee; // todo: might need to update logic estimate fee inside for future actions excluding normal transfer Ton and Jetton
344
344
  } else {
345
- const gasLimit = await evmApi.api.eth.estimateGas(transaction);
345
+ const gasLimit = transaction.gas || (await evmApi.api.eth.estimateGas(transaction));
346
346
  const priority = await calculateGasFeeParams(evmApi, chainInfo.slug);
347
- if (priority.baseGasFee) {
348
- const maxFee = priority.maxFeePerGas; // TODO: Need review
349
-
350
- estimateFee.value = maxFee.multipliedBy(gasLimit).toFixed(0);
347
+ if (transaction.maxFeePerGas) {
348
+ estimateFee.value = new BigN(transaction.maxFeePerGas.toString()).multipliedBy(gasLimit).toFixed(0);
349
+ } else if (transaction.gasPrice) {
350
+ estimateFee.value = new BigN((transaction.gasPrice || 0).toString()).multipliedBy(gasLimit).toFixed(0);
351
351
  } else {
352
- estimateFee.value = new BigN(priority.gasPrice).multipliedBy(gasLimit).toFixed(0);
352
+ if (priority.baseGasFee) {
353
+ const maxFee = priority.maxFeePerGas; // TODO: Need review
354
+
355
+ estimateFee.value = maxFee.multipliedBy(gasLimit).toFixed(0);
356
+ } else {
357
+ estimateFee.value = new BigN(priority.gasPrice).multipliedBy(gasLimit).toFixed(0);
358
+ }
353
359
  }
354
360
  estimateFee.tooHigh = priority.busyNetwork;
355
361
  }
@@ -51,5 +51,6 @@ export declare function _isXcmTransferUnstable(originChainInfo: _ChainInfo, dest
51
51
  export declare function _getXcmUnstableWarning(originChainInfo: _ChainInfo, destChainInfo: _ChainInfo, assetSlug: string): string;
52
52
  export declare function _isXcmWithinSameConsensus(originChainInfo: _ChainInfo, destChainInfo: _ChainInfo): boolean;
53
53
  export declare function _isSnowBridgeXcm(originChainInfo: _ChainInfo, destChainInfo: _ChainInfo): boolean;
54
+ export declare function _isAvailBridgeXcm(originChainInfo: _ChainInfo, destChainInfo: _ChainInfo): boolean;
54
55
  export declare function _isMythosFromHydrationToMythos(originChainInfo: _ChainInfo, destChainInfo: _ChainInfo, assetSlug: string): boolean;
55
56
  export declare function _adaptX1Interior(assetIdentifier: Record<string, any>, version: number): Record<string, any>;
@@ -2,6 +2,7 @@
2
2
  // SPDX-License-Identifier: Apache-2.0
3
3
 
4
4
  import { COMMON_CHAIN_SLUGS } from '@subwallet/chain-list';
5
+ import { isAvailChainBridge } from '@subwallet/extension-base/services/balance-service/transfer/xcm/availBridge';
5
6
  import { _getChainSubstrateAddressPrefix, _getEvmChainId, _getSubstrateParaId, _getSubstrateRelayParent, _getXcmAssetMultilocation, _isChainEvmCompatible, _isPureEvmChain, _isSubstrateParaChain } from '@subwallet/extension-base/services/chain-service/utils';
6
7
  import { decodeAddress, evmToAddress } from '@polkadot/util-crypto';
7
8
  const FOUR_INSTRUCTIONS_WEIGHT = 5000000000;
@@ -72,8 +73,13 @@ function getSnowBridgeUnstableWarning(originChainInfo) {
72
73
  function getMythosFromHydrationToMythosWarning() {
73
74
  return 'Cross-chain transfer of this token requires a high transaction fee. Do you want to continue?';
74
75
  }
76
+ function getAvailBridgeWarning() {
77
+ return 'Cross-chain transfer of this token may take up to 90 minutes, and you’ll need to manually claim the funds on the destination network to complete the transfer. Do you still want to continue?';
78
+ }
75
79
  export function _getXcmUnstableWarning(originChainInfo, destChainInfo, assetSlug) {
76
- if (_isSnowBridgeXcm(originChainInfo, destChainInfo)) {
80
+ if (_isAvailBridgeXcm(originChainInfo, destChainInfo)) {
81
+ return getAvailBridgeWarning();
82
+ } else if (_isSnowBridgeXcm(originChainInfo, destChainInfo)) {
77
83
  return getSnowBridgeUnstableWarning(originChainInfo);
78
84
  } else if (_isMythosFromHydrationToMythos(originChainInfo, destChainInfo, assetSlug)) {
79
85
  return getMythosFromHydrationToMythosWarning();
@@ -87,6 +93,11 @@ export function _isXcmWithinSameConsensus(originChainInfo, destChainInfo) {
87
93
  export function _isSnowBridgeXcm(originChainInfo, destChainInfo) {
88
94
  return !_isXcmWithinSameConsensus(originChainInfo, destChainInfo) && (_isPureEvmChain(originChainInfo) || _isPureEvmChain(destChainInfo));
89
95
  }
96
+ export function _isAvailBridgeXcm(originChainInfo, destChainInfo) {
97
+ const isAvailBridgeFromEvm = _isPureEvmChain(originChainInfo) && isAvailChainBridge(destChainInfo.slug);
98
+ const isAvailBridgeFromAvail = isAvailChainBridge(originChainInfo.slug) && _isPureEvmChain(destChainInfo);
99
+ return isAvailBridgeFromEvm || isAvailBridgeFromAvail;
100
+ }
90
101
  export function _isMythosFromHydrationToMythos(originChainInfo, destChainInfo, assetSlug) {
91
102
  return originChainInfo.slug === 'hydradx_main' && destChainInfo.slug === 'mythos' && assetSlug === 'hydradx_main-LOCAL-MYTH';
92
103
  }