@subwallet/extension-base 1.3.70-2 → 1.3.72-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 (237) hide show
  1. package/background/KoniTypes.d.ts +13 -2
  2. package/background/KoniTypes.js +68 -9
  3. package/cjs/background/KoniTypes.js +68 -9
  4. package/cjs/constants/blocked-actions.js +3 -0
  5. package/cjs/core/logic-validation/recipientAddress.js +1 -1
  6. package/cjs/core/logic-validation/swap.js +0 -3
  7. package/cjs/core/logic-validation/transfer.js +33 -10
  8. package/cjs/core/substrate/system-pallet.js +0 -2
  9. package/cjs/core/types.js +1 -0
  10. package/cjs/koni/api/nft/wasm_nft/index.js +0 -1
  11. package/cjs/koni/api/staking/bonding/astar.js +0 -2
  12. package/cjs/koni/api/staking/bonding/paraChain.js +0 -3
  13. package/cjs/koni/api/staking/bonding/relayChain.js +2 -4
  14. package/cjs/koni/api/staking/bonding/utils.js +0 -4
  15. package/cjs/koni/background/cron.js +0 -1
  16. package/cjs/koni/background/handlers/Extension.js +235 -166
  17. package/cjs/koni/background/handlers/State.js +56 -52
  18. package/cjs/koni/background/handlers/Tabs.js +39 -34
  19. package/cjs/packageInfo.js +1 -1
  20. package/cjs/page/index.js +7 -0
  21. package/cjs/page/substrate/PostMessageProvider.js +3 -0
  22. package/cjs/services/balance-service/helpers/subscribe/cardano/utils.js +0 -1
  23. package/cjs/services/balance-service/helpers/subscribe/substrate/gear.js +0 -2
  24. package/cjs/services/balance-service/helpers/subscribe/substrate/index.js +48 -5
  25. package/cjs/services/balance-service/helpers/subscribe/ton/utils.js +0 -3
  26. package/cjs/services/balance-service/index.js +103 -7
  27. package/cjs/services/balance-service/transfer/bitcoin-transfer.js +0 -1
  28. package/cjs/services/balance-service/transfer/cardano-transfer.js +1 -2
  29. package/cjs/services/balance-service/transfer/smart-contract.js +0 -1
  30. package/cjs/services/balance-service/transfer/token.js +13 -37
  31. package/cjs/services/balance-service/transfer/ton-transfer.js +0 -1
  32. package/cjs/services/balance-service/transfer/xcm/index.js +3 -8
  33. package/cjs/services/balance-service/transfer/xcm/snowBridge.js +0 -1
  34. package/cjs/services/balance-service/transfer/xcm/utils.js +1 -1
  35. package/cjs/services/chain-service/constants.js +6 -5
  36. package/cjs/services/chain-service/handler/CardanoApi.js +3 -1
  37. package/cjs/services/chain-service/handler/SubstrateApi.js +0 -2
  38. package/cjs/services/chain-service/handler/light-client/index.js +1 -2
  39. package/cjs/services/chain-service/health-check/index.js +0 -1
  40. package/cjs/services/chain-service/health-check/utils/new-utils/chain-asset-validate.js +0 -1
  41. package/cjs/services/chain-service/index.js +19 -26
  42. package/cjs/services/chain-service/utils/index.js +21 -25
  43. package/cjs/services/chain-service/utils/patch.js +1 -1
  44. package/cjs/services/earning-service/handlers/base.js +32 -0
  45. package/cjs/services/earning-service/handlers/lending/base.js +0 -2
  46. package/cjs/services/earning-service/handlers/liquid-staking/acala.js +0 -1
  47. package/cjs/services/earning-service/handlers/liquid-staking/base.js +0 -2
  48. package/cjs/services/earning-service/handlers/liquid-staking/bifrost.js +0 -2
  49. package/cjs/services/earning-service/handlers/liquid-staking/parallel.js +0 -1
  50. package/cjs/services/earning-service/handlers/native-staking/astar.js +0 -2
  51. package/cjs/services/earning-service/handlers/native-staking/dtao.js +43 -2
  52. package/cjs/services/earning-service/handlers/native-staking/energy.js +0 -1
  53. package/cjs/services/earning-service/handlers/native-staking/mythos.js +0 -2
  54. package/cjs/services/earning-service/handlers/native-staking/para-chain.js +0 -2
  55. package/cjs/services/earning-service/handlers/native-staking/relay-chain.js +8 -9
  56. package/cjs/services/earning-service/handlers/special.js +7 -0
  57. package/cjs/services/history-service/subsquid-multi-chain-history.js +0 -1
  58. package/cjs/services/keyring-service/context/handlers/Derive.js +1 -1
  59. package/cjs/services/keyring-service/context/handlers/Migration.js +11 -9
  60. package/cjs/services/keyring-service/context/handlers/Mnemonic.js +18 -13
  61. package/cjs/services/keyring-service/context/state.js +21 -3
  62. package/cjs/services/keyring-service/utils.js +12 -2
  63. package/cjs/services/migration-service/index.js +1 -2
  64. package/cjs/services/migration-service/scripts/MigrateTransactionHistoryBySymbol20251223.js +55 -0
  65. package/cjs/services/migration-service/scripts/databases/MigrateAssetSetting20251223.js +41 -0
  66. package/cjs/services/migration-service/scripts/index.js +17 -13
  67. package/cjs/services/mint-campaign-service/campaigns/UnlockDotCampaign.js +0 -1
  68. package/cjs/services/nft-service/index.js +5 -0
  69. package/cjs/services/open-gov/handler.js +0 -2
  70. package/cjs/services/open-gov/interface.js +4 -1
  71. package/cjs/services/request-service/handler/BitcoinRequestHandler.js +1 -2
  72. package/cjs/services/request-service/handler/CardanoRequestHandler.js +0 -1
  73. package/cjs/services/request-service/handler/EvmRequestHandler.js +0 -1
  74. package/cjs/services/request-service/handler/TonRequestHandler.js +0 -1
  75. package/cjs/services/request-service/helper/index.js +1 -2
  76. package/cjs/services/storage-service/DatabaseService.js +0 -2
  77. package/cjs/services/storage-service/databases/index.js +2 -0
  78. package/cjs/services/substrate-proxy-service/constant.js +26 -0
  79. package/cjs/services/substrate-proxy-service/index.js +170 -0
  80. package/cjs/services/swap-service/handler/asset-hub/handler.js +0 -1
  81. package/cjs/services/swap-service/handler/asset-hub/router.js +0 -1
  82. package/cjs/services/swap-service/handler/chainflip-handler.js +1 -4
  83. package/cjs/services/swap-service/handler/hydradx-handler.js +0 -1
  84. package/cjs/services/swap-service/handler/kyber-handler.js +0 -1
  85. package/cjs/services/swap-service/handler/optimex-handler.js +1 -2
  86. package/cjs/services/swap-service/handler/simpleswap-handler.js +1 -3
  87. package/cjs/services/swap-service/handler/uniswap-handler.js +0 -3
  88. package/cjs/services/transaction-service/event-parser/index.js +6 -6
  89. package/cjs/services/transaction-service/index.js +105 -37
  90. package/cjs/services/transaction-service/utils.js +8 -5
  91. package/cjs/services/wallet-connect-service/index.js +21 -18
  92. package/cjs/services/wallet-connect-service/types.js +1 -1
  93. package/cjs/types/account/info/keyring.js +9 -1
  94. package/cjs/types/balance/index.js +5 -1
  95. package/cjs/types/index.js +11 -0
  96. package/cjs/types/substrateProxyAccount/actions/index.js +1 -0
  97. package/cjs/types/substrateProxyAccount/index.js +16 -0
  98. package/cjs/types/swap/index.js +2 -1
  99. package/cjs/types/transaction/process.js +2 -0
  100. package/cjs/types/yield/actions/join/step.js +17 -1
  101. package/cjs/utils/account/common.js +0 -26
  102. package/cjs/utils/account/derive/info/solo.js +7 -4
  103. package/cjs/utils/account/derive/validate.js +1 -1
  104. package/cjs/utils/account/transform.js +10 -5
  105. package/cjs/utils/auth.js +1 -1
  106. package/cjs/utils/bitcoin/utxo-management.js +0 -1
  107. package/cjs/utils/environment.js +2 -1
  108. package/cjs/utils/fee/transfer.js +5 -4
  109. package/cjs/utils/index.js +1 -2
  110. package/constants/blocked-actions.js +3 -0
  111. package/core/logic-validation/recipientAddress.js +1 -1
  112. package/core/logic-validation/swap.js +0 -3
  113. package/core/logic-validation/transfer.d.ts +3 -3
  114. package/core/logic-validation/transfer.js +34 -11
  115. package/core/substrate/system-pallet.js +0 -2
  116. package/core/types.d.ts +2 -1
  117. package/core/types.js +1 -0
  118. package/koni/api/nft/wasm_nft/index.js +0 -1
  119. package/koni/api/staking/bonding/astar.js +0 -2
  120. package/koni/api/staking/bonding/paraChain.js +0 -3
  121. package/koni/api/staking/bonding/relayChain.js +2 -4
  122. package/koni/api/staking/bonding/utils.js +0 -4
  123. package/koni/background/cron.js +0 -1
  124. package/koni/background/handlers/Extension.d.ts +3 -0
  125. package/koni/background/handlers/Extension.js +89 -19
  126. package/koni/background/handlers/State.d.ts +2 -0
  127. package/koni/background/handlers/State.js +43 -38
  128. package/koni/background/handlers/Tabs.js +9 -3
  129. package/package.json +50 -21
  130. package/packageInfo.js +1 -1
  131. package/page/substrate/PostMessageProvider.js +3 -0
  132. package/services/balance-service/helpers/subscribe/cardano/utils.js +0 -1
  133. package/services/balance-service/helpers/subscribe/substrate/gear.js +0 -2
  134. package/services/balance-service/helpers/subscribe/substrate/index.js +47 -4
  135. package/services/balance-service/helpers/subscribe/ton/utils.js +0 -3
  136. package/services/balance-service/index.d.ts +8 -0
  137. package/services/balance-service/index.js +105 -9
  138. package/services/balance-service/transfer/bitcoin-transfer.js +0 -1
  139. package/services/balance-service/transfer/smart-contract.js +0 -1
  140. package/services/balance-service/transfer/token.d.ts +0 -4
  141. package/services/balance-service/transfer/token.js +12 -35
  142. package/services/balance-service/transfer/ton-transfer.js +0 -1
  143. package/services/balance-service/transfer/xcm/index.js +3 -8
  144. package/services/balance-service/transfer/xcm/snowBridge.js +0 -1
  145. package/services/balance-service/transfer/xcm/utils.d.ts +0 -2
  146. package/services/balance-service/transfer/xcm/utils.js +1 -1
  147. package/services/chain-service/constants.d.ts +1 -1
  148. package/services/chain-service/constants.js +4 -4
  149. package/services/chain-service/handler/CardanoApi.js +3 -1
  150. package/services/chain-service/handler/SubstrateApi.js +0 -2
  151. package/services/chain-service/health-check/index.js +0 -1
  152. package/services/chain-service/health-check/utils/new-utils/chain-asset-validate.js +0 -1
  153. package/services/chain-service/index.d.ts +0 -1
  154. package/services/chain-service/index.js +16 -23
  155. package/services/chain-service/utils/index.js +22 -26
  156. package/services/chain-service/utils/patch.d.ts +1 -1
  157. package/services/chain-service/utils/patch.js +1 -1
  158. package/services/earning-service/handlers/base.js +32 -0
  159. package/services/earning-service/handlers/lending/base.js +0 -2
  160. package/services/earning-service/handlers/liquid-staking/acala.js +0 -1
  161. package/services/earning-service/handlers/liquid-staking/base.js +0 -2
  162. package/services/earning-service/handlers/liquid-staking/bifrost.js +0 -2
  163. package/services/earning-service/handlers/liquid-staking/parallel.js +0 -1
  164. package/services/earning-service/handlers/native-staking/astar.js +0 -2
  165. package/services/earning-service/handlers/native-staking/dtao.js +43 -0
  166. package/services/earning-service/handlers/native-staking/energy.js +0 -1
  167. package/services/earning-service/handlers/native-staking/mythos.js +0 -2
  168. package/services/earning-service/handlers/native-staking/para-chain.js +0 -2
  169. package/services/earning-service/handlers/native-staking/relay-chain.js +8 -9
  170. package/services/earning-service/handlers/special.js +7 -0
  171. package/services/history-service/subsquid-multi-chain-history.js +0 -1
  172. package/services/keyring-service/context/handlers/Derive.js +2 -2
  173. package/services/keyring-service/context/handlers/Migration.js +3 -1
  174. package/services/keyring-service/context/handlers/Mnemonic.d.ts +1 -1
  175. package/services/keyring-service/context/handlers/Mnemonic.js +16 -10
  176. package/services/keyring-service/context/state.d.ts +3 -0
  177. package/services/keyring-service/context/state.js +21 -3
  178. package/services/keyring-service/utils.d.ts +1 -0
  179. package/services/keyring-service/utils.js +9 -0
  180. package/services/migration-service/scripts/MigrateTransactionHistoryBySymbol20251223.d.ts +4 -0
  181. package/services/migration-service/scripts/MigrateTransactionHistoryBySymbol20251223.js +46 -0
  182. package/services/migration-service/scripts/databases/MigrateAssetSetting20251223.d.ts +4 -0
  183. package/services/migration-service/scripts/databases/MigrateAssetSetting20251223.js +33 -0
  184. package/services/migration-service/scripts/index.js +8 -4
  185. package/services/mint-campaign-service/campaigns/UnlockDotCampaign.js +0 -1
  186. package/services/nft-service/index.js +6 -0
  187. package/services/open-gov/handler.js +0 -2
  188. package/services/open-gov/interface.d.ts +4 -3
  189. package/services/open-gov/interface.js +4 -1
  190. package/services/request-service/handler/CardanoRequestHandler.js +0 -1
  191. package/services/request-service/handler/EvmRequestHandler.js +0 -1
  192. package/services/request-service/handler/TonRequestHandler.js +0 -1
  193. package/services/setting-service/constants.js +0 -1
  194. package/services/storage-service/DatabaseService.js +0 -2
  195. package/services/storage-service/databases/index.js +3 -0
  196. package/services/substrate-proxy-service/constant.d.ts +3 -0
  197. package/services/substrate-proxy-service/constant.js +19 -0
  198. package/services/substrate-proxy-service/index.d.ts +13 -0
  199. package/services/substrate-proxy-service/index.js +159 -0
  200. package/services/swap-service/handler/asset-hub/handler.js +0 -1
  201. package/services/swap-service/handler/asset-hub/router.js +0 -1
  202. package/services/swap-service/handler/chainflip-handler.js +0 -2
  203. package/services/swap-service/handler/hydradx-handler.js +0 -1
  204. package/services/swap-service/handler/kyber-handler.js +0 -1
  205. package/services/swap-service/handler/simpleswap-handler.js +0 -1
  206. package/services/swap-service/handler/uniswap-handler.js +0 -3
  207. package/services/transaction-service/event-parser/index.js +6 -6
  208. package/services/transaction-service/index.js +79 -11
  209. package/services/transaction-service/types.d.ts +2 -2
  210. package/services/transaction-service/utils.js +8 -5
  211. package/services/wallet-connect-service/index.js +21 -18
  212. package/services/wallet-connect-service/types.js +1 -1
  213. package/types/account/action/add/mnemonic.d.ts +3 -2
  214. package/types/account/info/keyring.js +9 -1
  215. package/types/balance/index.js +5 -1
  216. package/types/balance/transfer.d.ts +1 -0
  217. package/types/index.d.ts +1 -0
  218. package/types/index.js +1 -0
  219. package/types/substrateProxyAccount/actions/index.d.ts +17 -0
  220. package/types/substrateProxyAccount/actions/index.js +1 -0
  221. package/types/substrateProxyAccount/index.d.ts +23 -0
  222. package/types/substrateProxyAccount/index.js +8 -0
  223. package/types/swap/index.js +2 -1
  224. package/types/transaction/process.js +3 -1
  225. package/types/transaction/request.d.ts +1 -0
  226. package/types/yield/actions/join/step.js +17 -1
  227. package/types/yield/actions/join/submit.d.ts +1 -1
  228. package/utils/account/common.d.ts +0 -3
  229. package/utils/account/common.js +0 -24
  230. package/utils/account/derive/info/solo.js +8 -5
  231. package/utils/account/derive/validate.d.ts +2 -2
  232. package/utils/account/derive/validate.js +1 -1
  233. package/utils/account/transform.js +10 -5
  234. package/utils/auth.js +2 -2
  235. package/utils/bitcoin/utxo-management.js +0 -1
  236. package/utils/fee/transfer.js +4 -2
  237. package/utils/index.js +2 -5
@@ -290,15 +290,19 @@ class AccountState {
290
290
  const belongsTo = this.belongUnifiedAccount(address);
291
291
  if (belongsTo) {
292
292
  const accountProxy = this.accountProxies[belongsTo];
293
+ const allAccountTypes = this.getDecodedAccountTypes(belongsTo); // get allAccountTypes of unified account of the account address
294
+
293
295
  return {
294
296
  address,
295
- name: accountProxy.name
297
+ name: accountProxy.name,
298
+ relatedAccountTypes: allAccountTypes
296
299
  };
297
300
  } else {
298
301
  var _pair$meta;
299
302
  return {
300
303
  address,
301
- name: ((_pair$meta = pair.meta) === null || _pair$meta === void 0 ? void 0 : _pair$meta.name) || address
304
+ name: ((_pair$meta = pair.meta) === null || _pair$meta === void 0 ? void 0 : _pair$meta.name) || address,
305
+ relatedAccountTypes: [pair.type]
302
306
  };
303
307
  }
304
308
  }
@@ -462,6 +466,20 @@ class AccountState {
462
466
  return accountProxies[proxyId].accounts.map(account => account.address);
463
467
  }
464
468
  }
469
+ getDecodedAccountTypes(accountProxyId) {
470
+ if (!accountProxyId) {
471
+ return [];
472
+ }
473
+ if (accountProxyId === _constants.ALL_ACCOUNT_KEY) {
474
+ return []; // todo
475
+ }
476
+ const accountProxies = this.accounts;
477
+ if (!accountProxies[accountProxyId]) {
478
+ return [];
479
+ } else {
480
+ return accountProxies[accountProxyId].accounts.map(account => account.type);
481
+ }
482
+ }
465
483
 
466
484
  /* Get address for another service */
467
485
 
@@ -582,7 +600,7 @@ class AccountState {
582
600
  metadata.suri = _parentSuri;
583
601
  needUpdateSet.add(address);
584
602
  }
585
- const hasSuri = ('suri' in metadata);
603
+ const hasSuri = 'suri' in metadata;
586
604
  const lacksDerivationPath = !('derivationPath' in metadata);
587
605
  const isEthereumType = _types2.EthereumKeypairTypes.includes(pair.type);
588
606
  const isTonType = pair.type === 'ton';
@@ -3,7 +3,8 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.hasAnyAccountForMigration = void 0;
6
+ exports.isTWAccount = exports.hasAnyAccountForMigration = void 0;
7
+ var _types = require("@subwallet/extension-base/types");
7
8
  // Copyright 2019-2022 @subwallet/extension-base
8
9
  // SPDX-License-Identifier: Apache-2.0
9
10
 
@@ -15,4 +16,13 @@ const hasAnyAccountForMigration = allAccountProxies => {
15
16
  }
16
17
  return false;
17
18
  };
18
- exports.hasAnyAccountForMigration = hasAnyAccountForMigration;
19
+
20
+ // Check if account is TrustWallet account
21
+ exports.hasAnyAccountForMigration = hasAnyAccountForMigration;
22
+ const isTWAccount = account => {
23
+ const isTWDerivation = account.suri === "m/44'/354'/0'/0'/0'";
24
+ const isTWSolo = account.accountType === _types.AccountProxyType.SOLO;
25
+ const isTWKeyPairType = account.accounts[0].type === 'ed25519-tw';
26
+ return isTWDerivation && isTWSolo && isTWKeyPairType;
27
+ };
28
+ exports.isTWAccount = isTWAccount;
@@ -6,8 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.default = void 0;
7
7
  var _util = require("@polkadot/util");
8
8
  var _scripts = _interopRequireWildcard(require("./scripts"));
9
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
10
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
9
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
11
10
  // Copyright 2019-2022 @subwallet/extension-koni authors & contributors
12
11
  // SPDX-License-Identifier: Apache-2.0
13
12
 
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ var _Base = _interopRequireDefault(require("@subwallet/extension-base/services/migration-service/Base"));
9
+ // Copyright 2019-2022 @subwallet/extension-koni authors & contributors
10
+ // SPDX-License-Identifier: Apache-2.0
11
+
12
+ class MigrateTransactionHistoryBySymbol20251223 extends _Base.default {
13
+ async run() {
14
+ const state = this.state;
15
+ try {
16
+ const changeSlugsMap = {
17
+ 'gnosis-NATIVE-xDAI': 'gnosis-NATIVE-XDAI',
18
+ 'stable-ERC20-USD₮0-0x779Ded0c9e1022225f8E0630b35a9b54bE713736': 'stable-ERC20-USDT0-0x779Ded0c9e1022225f8E0630b35a9b54bE713736',
19
+ 'polygon-ERC20-USD₮0-0xc2132D05D31c914a87C6611C10748AEb04B58e8F': 'polygon-ERC20-USDT0-0xc2132D05D31c914a87C6611C10748AEb04B58e8F',
20
+ 'ethereum-ERC20-TON-0x582d872A1B094FC48F5DE31D3B73F2D9bE47def1': 'ethereum-ERC20-TONCOIN-0x582d872A1B094FC48F5DE31D3B73F2D9bE47def1',
21
+ 'moonbeam-ERC20-USDC.axl-0xCa01a1D0993565291051daFF390892518ACfAD3A': 'moonbeam-ERC20-axlUSDC-0xCa01a1D0993565291051daFF390892518ACfAD3A'
22
+ };
23
+ const allTxs = [];
24
+ await Promise.all(Object.entries(changeSlugsMap).map(async (_ref, i) => {
25
+ let [oldSlug, newSlug] = _ref;
26
+ const oldSlugSplit = oldSlug.split('-');
27
+ const oldChainSlug = oldSlugSplit[0];
28
+ const oldSymbolSlug = oldSlugSplit[2];
29
+ const newSlugSplit = newSlug.split('-');
30
+ const newSymbolSlug = newSlugSplit[2];
31
+ const filterTransactions = await state.dbService.stores.transaction.table.where({
32
+ chain: oldChainSlug
33
+ }).and(tx => {
34
+ var _tx$amount;
35
+ return ((_tx$amount = tx.amount) === null || _tx$amount === void 0 ? void 0 : _tx$amount.symbol) === oldSymbolSlug;
36
+ }).toArray();
37
+ if (filterTransactions.length > 0) {
38
+ for (const transaction of filterTransactions) {
39
+ if (transaction.amount && transaction.amount.symbol === oldSymbolSlug) {
40
+ transaction.amount.symbol = newSymbolSlug;
41
+ }
42
+ if (transaction.fee && transaction.fee.symbol === oldSymbolSlug) {
43
+ transaction.fee.symbol = newSymbolSlug;
44
+ }
45
+ }
46
+ }
47
+ allTxs.push(...filterTransactions);
48
+ }));
49
+ await state.dbService.stores.transaction.table.bulkPut(allTxs);
50
+ } catch (e) {
51
+ this.logger.error(e);
52
+ }
53
+ }
54
+ }
55
+ exports.default = MigrateTransactionHistoryBySymbol20251223;
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ var _Base = _interopRequireDefault(require("@subwallet/extension-base/services/migration-service/Base"));
9
+ // Copyright 2019-2022 @subwallet/extension-koni authors & contributors
10
+ // SPDX-License-Identifier: Apache-2.0
11
+
12
+ class MigrateAssetSetting20251223 extends _Base.default {
13
+ async run() {
14
+ try {
15
+ const changeSlugsMap = {
16
+ 'gnosis-NATIVE-xDAI': 'gnosis-NATIVE-XDAI',
17
+ 'stable-ERC20-USD₮0-0x779Ded0c9e1022225f8E0630b35a9b54bE713736': 'stable-ERC20-USDT0-0x779Ded0c9e1022225f8E0630b35a9b54bE713736',
18
+ 'polygon-ERC20-USD₮0-0xc2132D05D31c914a87C6611C10748AEb04B58e8F': 'polygon-ERC20-USDT0-0xc2132D05D31c914a87C6611C10748AEb04B58e8F',
19
+ 'ethereum-ERC20-TON-0x582d872A1B094FC48F5DE31D3B73F2D9bE47def1': 'ethereum-ERC20-TONCOIN-0x582d872A1B094FC48F5DE31D3B73F2D9bE47def1',
20
+ 'moonbeam-ERC20-USDC.axl-0xCa01a1D0993565291051daFF390892518ACfAD3A': 'moonbeam-ERC20-axlUSDC-0xCa01a1D0993565291051daFF390892518ACfAD3A'
21
+ };
22
+ const assetSetting = await this.state.chainService.getAssetSettings();
23
+ const migratedAssetSetting = {};
24
+ for (const [oldSlug, newSlug] of Object.entries(changeSlugsMap)) {
25
+ if (Object.keys(assetSetting).includes(oldSlug)) {
26
+ const isVisible = assetSetting[oldSlug].visible;
27
+ migratedAssetSetting[newSlug] = {
28
+ visible: isVisible
29
+ };
30
+ }
31
+ }
32
+ this.state.chainService.setAssetSettings({
33
+ ...assetSetting,
34
+ ...migratedAssetSetting
35
+ });
36
+ } catch (e) {
37
+ console.error(e);
38
+ }
39
+ }
40
+ }
41
+ exports.default = MigrateAssetSetting20251223;
@@ -5,13 +5,12 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.default = exports.MYTHOS_MIGRATION_KEY = exports.EVERYTIME = void 0;
8
- var _MigrateAssetSetting = _interopRequireDefault(require("@subwallet/extension-base/services/migration-service/scripts/databases/MigrateAssetSetting20251107"));
9
- var _MigrateChainPatrol = _interopRequireDefault(require("@subwallet/extension-base/services/migration-service/scripts/MigrateChainPatrol"));
10
- var _MigrateTransactionHistoryBySymbol = _interopRequireDefault(require("@subwallet/extension-base/services/migration-service/scripts/MigrateTransactionHistoryBySymbol20251107"));
11
8
  var _ClearMetadataDatabase = _interopRequireDefault(require("./databases/ClearMetadataDatabase"));
12
9
  var _ClearMetadataForMythos = _interopRequireDefault(require("./databases/ClearMetadataForMythos"));
13
- var _MigrateAssetSetting2 = _interopRequireDefault(require("./databases/MigrateAssetSetting"));
14
- var _MigrateAssetSetting3 = _interopRequireDefault(require("./databases/MigrateAssetSetting20251027"));
10
+ var _MigrateAssetSetting = _interopRequireDefault(require("./databases/MigrateAssetSetting"));
11
+ var _MigrateAssetSetting2 = _interopRequireDefault(require("./databases/MigrateAssetSetting20251027"));
12
+ var _MigrateAssetSetting3 = _interopRequireDefault(require("./databases/MigrateAssetSetting20251107"));
13
+ var _MigrateAssetSetting4 = _interopRequireDefault(require("./databases/MigrateAssetSetting20251223"));
15
14
  var _MigrateEarningVersion = _interopRequireDefault(require("./databases/MigrateEarningVersion"));
16
15
  var _ReloadMetadata = _interopRequireDefault(require("./databases/ReloadMetadata"));
17
16
  var _MigrateLedgerAccount = _interopRequireDefault(require("./keyring/MigrateLedgerAccount"));
@@ -30,14 +29,17 @@ var _DeleteEarningData3 = _interopRequireDefault(require("./DeleteEarningData202
30
29
  var _DisableZeroBalanceTokens = _interopRequireDefault(require("./DisableZeroBalanceTokens"));
31
30
  var _EnableVaraChain = _interopRequireDefault(require("./EnableVaraChain"));
32
31
  var _MigrateAuthUrls = _interopRequireDefault(require("./MigrateAuthUrls"));
32
+ var _MigrateChainPatrol = _interopRequireDefault(require("./MigrateChainPatrol"));
33
33
  var _MigrateImportedToken = _interopRequireDefault(require("./MigrateImportedToken"));
34
34
  var _MigrateNetworkSettings = _interopRequireDefault(require("./MigrateNetworkSettings"));
35
35
  var _MigrateNewUnifiedAccount = _interopRequireDefault(require("./MigrateNewUnifiedAccount"));
36
36
  var _MigrateTokenDecimals = _interopRequireDefault(require("./MigrateTokenDecimals"));
37
37
  var _MigrateTransactionHistory = _interopRequireDefault(require("./MigrateTransactionHistory"));
38
38
  var _MigrateTransactionHistoryBridge = _interopRequireDefault(require("./MigrateTransactionHistoryBridge"));
39
- var _MigrateTransactionHistoryBySymbol2 = _interopRequireDefault(require("./MigrateTransactionHistoryBySymbol"));
40
- var _MigrateTransactionHistoryBySymbol3 = _interopRequireDefault(require("./MigrateTransactionHistoryBySymbol20251027"));
39
+ var _MigrateTransactionHistoryBySymbol = _interopRequireDefault(require("./MigrateTransactionHistoryBySymbol"));
40
+ var _MigrateTransactionHistoryBySymbol2 = _interopRequireDefault(require("./MigrateTransactionHistoryBySymbol20251027"));
41
+ var _MigrateTransactionHistoryBySymbol3 = _interopRequireDefault(require("./MigrateTransactionHistoryBySymbol20251107"));
42
+ var _MigrateTransactionHistoryBySymbol4 = _interopRequireDefault(require("./MigrateTransactionHistoryBySymbol20251223"));
41
43
  var _MigrateWalletReference = _interopRequireDefault(require("./MigrateWalletReference"));
42
44
  var _OptimizeEnableToken = _interopRequireDefault(require("./OptimizeEnableToken"));
43
45
  // Copyright 2019-2022 @subwallet/extension-koni authors & contributors
@@ -71,8 +73,8 @@ var _default = {
71
73
  '1.1.33-01': _MigrateLedgerAccountV.default,
72
74
  '1.1.41-01': _DeleteChainStaking.default,
73
75
  // '1.1.46-01': AutoEnableSomeTokens,
74
- '1.3.55-01': _MigrateAssetSetting2.default,
75
- '1.3.55-02': _MigrateTransactionHistoryBySymbol2.default,
76
+ '1.3.55-01': _MigrateAssetSetting.default,
77
+ '1.3.55-02': _MigrateTransactionHistoryBySymbol.default,
76
78
  '1.2.69-01': _MigrateRemoveGenesisHash.default,
77
79
  '1.2.13-01': _ReloadMetadata.default,
78
80
  '1.2.32-01': _MigratePairData.default,
@@ -86,10 +88,12 @@ var _default = {
86
88
  '1.3.54-01': _MigrateChainPatrol.default,
87
89
  '1.3.62-01': _DeleteEarningData2.default,
88
90
  '1.3.58-01': _OptimizeEnableToken.default,
89
- '1.3.64-01': _MigrateAssetSetting3.default,
90
- '1.3.64-02': _MigrateTransactionHistoryBySymbol3.default,
91
+ '1.3.64-01': _MigrateAssetSetting2.default,
92
+ '1.3.64-02': _MigrateTransactionHistoryBySymbol2.default,
91
93
  '1.3.65-01': _DeleteEarningData3.default,
92
- '1.3.66-01': _MigrateAssetSetting.default,
93
- '1.3.66-02': _MigrateTransactionHistoryBySymbol.default
94
+ '1.3.66-01': _MigrateAssetSetting3.default,
95
+ '1.3.66-02': _MigrateTransactionHistoryBySymbol3.default,
96
+ '1.3.72-01': _MigrateAssetSetting4.default,
97
+ '1.3.72-02': _MigrateTransactionHistoryBySymbol4.default
94
98
  };
95
99
  exports.default = _default;
@@ -43,7 +43,6 @@ class UnlockDotCampaign {
43
43
  // } else {
44
44
  // result = await this.getMinted(address, slug);
45
45
  }
46
-
47
46
  this.#transactionNftState[transactionId] = (_result = result) !== null && _result !== void 0 ? _result : {
48
47
  nftImage: ''
49
48
  };
@@ -14,6 +14,11 @@ var _subwalletServicesSdk = _interopRequireDefault(require("@subwallet-monorepos
14
14
  // Copyright 2019-2022 @subwallet/extension-base authors & contributors
15
15
  // SPDX-License-Identifier: Apache-2.0
16
16
 
17
+ /**
18
+ * NFT detection service
19
+ * Responsible for managing NFT detection jobs per address
20
+ */
21
+
17
22
  function mapSdkToNftItem(rawInstance, chain, collectionId, owner) {
18
23
  var _rawInstance$token_ty, _rawInstance$token_ty2, _rawInstance$id;
19
24
  const metadata = rawInstance.metadata || {};
@@ -185,7 +185,6 @@ class BaseOpenGovHandler {
185
185
  const decimals = Number((0, _utils._getAssetDecimals)(this.nativeToken));
186
186
  estimatedFee = new _bignumber.default(0.001).multipliedBy(new _bignumber.default(10).pow(decimals)); // fallback 0.001
187
187
  }
188
-
189
188
  const availableBalance = new _bignumber.default(totalBalance.value).minus(estimatedFee);
190
189
  if (availableBalance.lte(0)) {
191
190
  return new _TransactionError.TransactionError(_types.BasicTxErrorType.NOT_ENOUGH_BALANCE, "You don't have enough tokens to proceed");
@@ -236,7 +235,6 @@ class BaseOpenGovHandler {
236
235
  estimatedFee = new _bignumber.default(0.001 * 10 ** (0, _utils._getAssetDecimals)(this.nativeToken)); // fallback 0.001
237
236
  }
238
237
  }
239
-
240
238
  const availableBalance = new _bignumber.default(totalBalance.value).minus(estimatedFee);
241
239
  if (availableBalance.lte(0)) {
242
240
  return new _TransactionError.TransactionError(_types.BasicTxErrorType.NOT_ENOUGH_BALANCE, "You don't have enough tokens to proceed");
@@ -25,4 +25,7 @@ exports.Conviction = Conviction;
25
25
  Conviction["Locked4x"] = "Locked4x";
26
26
  Conviction["Locked5x"] = "Locked5x";
27
27
  Conviction["Locked6x"] = "Locked6x";
28
- })(Conviction || (exports.Conviction = Conviction = {}));
28
+ })(Conviction || (exports.Conviction = Conviction = {})); // ----- Casting -----
29
+ // ----- Delegating -----
30
+ // ----- VotingFor -----
31
+ // Unlock Vote
@@ -16,8 +16,7 @@ var bitcoin = _interopRequireWildcard(require("bitcoinjs-lib"));
16
16
  var _i18next = require("i18next");
17
17
  var _rxjs = require("rxjs");
18
18
  var _util = require("@polkadot/util");
19
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
20
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
19
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
21
20
  // Copyright 2019-2022 @subwallet/extension-base authors & contributors
22
21
  // SPDX-License-Identifier: Apache-2.0
23
22
 
@@ -56,7 +56,6 @@ class CardanoRequestHandler {
56
56
  if (duplicated) {
57
57
  throw new Error('Cardano duplicate request'); // update this message.
58
58
  }
59
-
60
59
  confirmationType[id] = {
61
60
  id,
62
61
  url,
@@ -212,7 +212,6 @@ class EvmRequestHandler {
212
212
  maxPriorityFeePerGas: (0, _eth.anyNumberToBN)(maxPriorityFeePerGas).toNumber()
213
213
  // nonce: await web3.eth.getTransactionCount(from) // Todo: fill this value from transaction service
214
214
  };
215
-
216
215
  const tx = this.configToTransaction(params);
217
216
  await Promise.resolve();
218
217
  if (pair.isLocked) {
@@ -56,7 +56,6 @@ class TonRequestHandler {
56
56
  if (duplicated) {
57
57
  throw new Error('Ton duplicate request'); // update this message.
58
58
  }
59
-
60
59
  confirmationType[id] = {
61
60
  id,
62
61
  url,
@@ -15,8 +15,7 @@ exports.hasSufficientCardanoValue = hasSufficientCardanoValue;
15
15
  var CardanoWasm = _interopRequireWildcard(require("@emurgo/cardano-serialization-lib-nodejs"));
16
16
  var _extensionChains = require("@subwallet/extension-chains");
17
17
  var _defaults = require("@polkadot/networks/defaults");
18
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
19
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
18
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
20
19
  // Copyright 2019-2022 @subwallet/extension-base authors & contributors
21
20
  // SPDX-License-Identifier: Apache-2.0
22
21
 
@@ -473,11 +473,9 @@ class DatabaseService {
473
473
  async setMantaPayData(data) {
474
474
  await this._db.mantaPay.put(data); // just override if exist
475
475
  }
476
-
477
476
  async updateMantaPayData(key, data) {
478
477
  await this._db.mantaPay.update(key, data); // just override if exist
479
478
  }
480
-
481
479
  async getMantaPayData(key) {
482
480
  return this._db.mantaPay.get({
483
481
  key
@@ -10,6 +10,8 @@ var _dexie = _interopRequireDefault(require("dexie"));
10
10
  // SPDX-License-Identifier: Apache-2.0
11
11
 
12
12
  const DEFAULT_DATABASE = 'SubWalletDB_v2';
13
+
14
+ // TODO: refactor this
13
15
  exports.DEFAULT_DATABASE = DEFAULT_DATABASE;
14
16
  class KoniDatabase extends _dexie.default {
15
17
  constructor() {
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.txTypeToSubstrateProxyMap = void 0;
7
+ var _KoniTypes = require("@subwallet/extension-base/background/KoniTypes");
8
+ // Copyright 2019-2022 @subwallet/extension-base
9
+ // SPDX-License-Identifier: Apache-2.0
10
+
11
+ const SUBSTRATE_PROXY_ACCOUNT_EXTRINSIC_GROUPS = {
12
+ STAKING: [_KoniTypes.ExtrinsicType.STAKING_BOND, _KoniTypes.ExtrinsicType.STAKING_UNBOND, _KoniTypes.ExtrinsicType.STAKING_WITHDRAW, _KoniTypes.ExtrinsicType.STAKING_JOIN_POOL, _KoniTypes.ExtrinsicType.STAKING_LEAVE_POOL, _KoniTypes.ExtrinsicType.CHANGE_EARNING_VALIDATOR, _KoniTypes.ExtrinsicType.STAKING_CANCEL_UNSTAKE, _KoniTypes.ExtrinsicType.STAKING_CLAIM_REWARD],
13
+ GOV: [_KoniTypes.ExtrinsicType.GOV_VOTE, _KoniTypes.ExtrinsicType.GOV_UNVOTE, _KoniTypes.ExtrinsicType.GOV_UNLOCK_VOTE],
14
+ PROXY: [
15
+ // only type any can add proxy
16
+ _KoniTypes.ExtrinsicType.REMOVE_SUBSTRATE_PROXY_ACCOUNT]
17
+ };
18
+
19
+ // Map extrinsic type to possible substrate proxy types that can be used
20
+ // The governance proxy type will be support later
21
+ const txTypeToSubstrateProxyMap = {
22
+ ...Object.fromEntries(SUBSTRATE_PROXY_ACCOUNT_EXTRINSIC_GROUPS.STAKING.map(t => [t, ['Staking', 'NonTransfer']])),
23
+ ...Object.fromEntries(SUBSTRATE_PROXY_ACCOUNT_EXTRINSIC_GROUPS.GOV.map(t => [t, ['Governance', 'NonTransfer']])),
24
+ ...Object.fromEntries(SUBSTRATE_PROXY_ACCOUNT_EXTRINSIC_GROUPS.PROXY.map(t => [t, ['NonTransfer']]))
25
+ };
26
+ exports.txTypeToSubstrateProxyMap = txTypeToSubstrateProxyMap;
@@ -0,0 +1,170 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ var _TransactionError = require("@subwallet/extension-base/background/errors/TransactionError");
9
+ var _types = require("@subwallet/extension-base/types");
10
+ var _utils = require("@subwallet/extension-base/utils");
11
+ var _bignumber = _interopRequireDefault(require("bignumber.js"));
12
+ var _constant = require("./constant");
13
+ // Copyright 2019-2022 @subwallet/extension-base
14
+ // SPDX-License-Identifier: Apache-2.0
15
+
16
+ class SubstrateProxyAccountService {
17
+ constructor(state) {
18
+ this.state = state;
19
+ }
20
+ getSubstrateApi(chain) {
21
+ return this.state.getSubstrateApi(chain);
22
+ }
23
+
24
+ // Get proxied accounts for a main account
25
+ // Get when view details or perform transaction
26
+ async getSubstrateProxyAccountGroup(request) {
27
+ var _substrateApi$api$con, _substrateApi$api$con2;
28
+ const {
29
+ address,
30
+ chain,
31
+ excludedSubstrateProxyAccounts,
32
+ type
33
+ } = request;
34
+ const substrateApi = this.getSubstrateApi(chain);
35
+ await substrateApi.isReady;
36
+
37
+ // Get proxied accounts from on-chain data
38
+ const result = await substrateApi.api.query.proxy.proxies(address);
39
+ const baseDeposit = ((_substrateApi$api$con = substrateApi.api.consts.proxy.proxyDepositBase) === null || _substrateApi$api$con === void 0 ? void 0 : _substrateApi$api$con.toString()) || '0';
40
+ const factorDeposit = ((_substrateApi$api$con2 = substrateApi.api.consts.proxy.proxyDepositFactor) === null || _substrateApi$api$con2 === void 0 ? void 0 : _substrateApi$api$con2.toString()) || '0';
41
+ const deposit = new _bignumber.default(baseDeposit).plus(factorDeposit);
42
+ const [_substrateProxyAccounts, currentSubstrateProxyDeposit] = result.toPrimitive();
43
+
44
+ // Mapping on-chain data to our defined type
45
+ let substrateProxyAccounts = (_substrateProxyAccounts || []).map(account => {
46
+ const proxyId = this.state.keyringService.context.belongUnifiedAccount(account.delegate) || (0, _utils.reformatAddress)(account.delegate);
47
+ return {
48
+ substrateProxyAddress: account.delegate,
49
+ substrateProxyType: account.proxyType,
50
+ delay: account.delay,
51
+ proxyId
52
+ };
53
+ });
54
+ if (type) {
55
+ const allowedSet = new Set([...(_constant.txTypeToSubstrateProxyMap[type] || []), 'Any']);
56
+ substrateProxyAccounts = substrateProxyAccounts.filter(p => allowedSet.has(p.substrateProxyType));
57
+ }
58
+ if (excludedSubstrateProxyAccounts && excludedSubstrateProxyAccounts.length > 0) {
59
+ substrateProxyAccounts = substrateProxyAccounts.filter(p => {
60
+ return !excludedSubstrateProxyAccounts.some(excluded => excluded.address === p.substrateProxyAddress && excluded.substrateProxyType === p.substrateProxyType);
61
+ });
62
+ }
63
+ const estimateSubstrateProxyDeposit = new _bignumber.default(currentSubstrateProxyDeposit).plus(factorDeposit);
64
+ return {
65
+ substrateProxyAccounts,
66
+ substrateProxyDeposit: new _bignumber.default(currentSubstrateProxyDeposit).gt(0) ? estimateSubstrateProxyDeposit.toFixed() : deposit.toFixed()
67
+ };
68
+ }
69
+
70
+ // Linking proxy account with main account
71
+ async addSubstrateProxyAccounts(data) {
72
+ const {
73
+ address,
74
+ chain,
75
+ substrateProxyAddress,
76
+ substrateProxyType
77
+ } = data;
78
+ if (address === substrateProxyAddress) {
79
+ return Promise.reject(new _TransactionError.TransactionError(_types.BasicTxErrorType.INVALID_PARAMS));
80
+ }
81
+ const substrateApi = this.getSubstrateApi(chain);
82
+ await substrateApi.isReady;
83
+
84
+ // Currently we not support delay time
85
+ return substrateApi.api.tx.proxy.addProxy(substrateProxyAddress, substrateProxyType, 0);
86
+ }
87
+
88
+ // Validate adding proxy account
89
+ async validateAddSubstrateProxyAccount(params, signerSubstrateProxyAddress) {
90
+ var _substrateApi$api$con3, _substrateApi$api$con4, _substrateApi$api$con5, _substrateApi$api$con6;
91
+ const {
92
+ address,
93
+ chain,
94
+ substrateProxyType
95
+ } = params;
96
+ const substrateApi = this.getSubstrateApi(chain);
97
+ await substrateApi.isReady;
98
+ const addProxyTx = substrateApi.api.tx.proxy.addProxy;
99
+ const proxyTypeArg = addProxyTx.meta.args.find(arg => arg.name.toString() === 'proxyType');
100
+ if (proxyTypeArg) {
101
+ const typeName = proxyTypeArg.type.toString();
102
+ const proxyTypeEnum = substrateApi.api.registry.createType(typeName);
103
+ const variants = proxyTypeEnum.defKeys;
104
+ if (!variants.includes(substrateProxyType)) {
105
+ return [new _TransactionError.TransactionError(_types.BasicTxErrorType.UNSUPPORTED, 'This proxy type is not supported on the chosen network. Select another one and try again')];
106
+ }
107
+ }
108
+ if (!substrateApi.api.tx.proxy || !substrateApi.api.tx.proxy.addProxy) {
109
+ return [new _TransactionError.TransactionError(_types.BasicTxErrorType.UNSUPPORTED)];
110
+ }
111
+
112
+ // Validate max proxies accounts limit
113
+ const maxSubstrateProxies = ((_substrateApi$api$con3 = substrateApi.api.consts.proxy.maxProxies) === null || _substrateApi$api$con3 === void 0 ? void 0 : (_substrateApi$api$con4 = _substrateApi$api$con3.toNumber) === null || _substrateApi$api$con4 === void 0 ? void 0 : _substrateApi$api$con4.call(_substrateApi$api$con3)) || 0;
114
+ const currentProxiesRaw = await substrateApi.api.query.proxy.proxies(address);
115
+ const [proxyList] = currentProxiesRaw.toPrimitive();
116
+ if (proxyList.length >= maxSubstrateProxies) {
117
+ return [new _TransactionError.TransactionError(_types.BasicTxErrorType.INVALID_PARAMS, `Maximum number of proxies reached: ${maxSubstrateProxies}`)];
118
+ }
119
+
120
+ // Ensure enough balance for deposit + fee
121
+ const transferableBalance = await this.state.balanceService.getTransferableBalance(address, chain);
122
+ const bnTransferableBalance = new _bignumber.default(transferableBalance.value);
123
+ const feeInfo = await substrateApi.api.tx.proxy.addProxy(params.substrateProxyAddress, params.substrateProxyType, 0).paymentInfo(address);
124
+ const estimatedFee = new _bignumber.default(feeInfo.partialFee.toString());
125
+ const baseDeposit = ((_substrateApi$api$con5 = substrateApi.api.consts.proxy.proxyDepositBase) === null || _substrateApi$api$con5 === void 0 ? void 0 : _substrateApi$api$con5.toString()) || '0';
126
+ const factorDeposit = ((_substrateApi$api$con6 = substrateApi.api.consts.proxy.proxyDepositFactor) === null || _substrateApi$api$con6 === void 0 ? void 0 : _substrateApi$api$con6.toString()) || '0';
127
+ const requiredDeposit = proxyList.length === 0 ? new _bignumber.default(baseDeposit).plus(factorDeposit) : new _bignumber.default(factorDeposit);
128
+ const totalRequired = new _bignumber.default(requiredDeposit).plus(!signerSubstrateProxyAddress ? estimatedFee : 0);
129
+ if (bnTransferableBalance.lt(totalRequired)) {
130
+ return [new _TransactionError.TransactionError(_types.BasicTxErrorType.NOT_ENOUGH_BALANCE)];
131
+ }
132
+ return [];
133
+ }
134
+
135
+ // Removing linked proxy accounts from main account
136
+ async removeSubstrateProxyAccounts(data) {
137
+ const {
138
+ chain,
139
+ isRemoveAll,
140
+ selectedSubstrateProxyAccounts
141
+ } = data;
142
+ const substrateApi = this.getSubstrateApi(chain);
143
+ await substrateApi.isReady;
144
+ const api = substrateApi.api;
145
+ if (isRemoveAll) {
146
+ return api.tx.proxy.removeProxies();
147
+ }
148
+ if (!selectedSubstrateProxyAccounts.length) {
149
+ return Promise.reject(new _TransactionError.TransactionError(_types.BasicTxErrorType.INVALID_PARAMS));
150
+ }
151
+ if (selectedSubstrateProxyAccounts.length === 1) {
152
+ const {
153
+ delay,
154
+ substrateProxyAddress,
155
+ substrateProxyType
156
+ } = selectedSubstrateProxyAccounts[0];
157
+ return api.tx.proxy.removeProxy(substrateProxyAddress, substrateProxyType, delay);
158
+ }
159
+ const removeProxies = selectedSubstrateProxyAccounts.map(_ref => {
160
+ let {
161
+ delay,
162
+ substrateProxyAddress,
163
+ substrateProxyType
164
+ } = _ref;
165
+ return api.tx.proxy.removeProxy(substrateProxyAddress, substrateProxyType, delay);
166
+ });
167
+ return api.tx.utility.batchAll(removeProxies);
168
+ }
169
+ }
170
+ exports.default = SubstrateProxyAccountService;
@@ -193,7 +193,6 @@ class AssetHubSwapHandler {
193
193
  if (swap) {
194
194
  return this.swapBaseHandler.validateSwapOnlyProcess(params, 1); // todo: create interface for input request
195
195
  }
196
-
197
196
  if (swapXcm) {
198
197
  return this.swapBaseHandler.validateSwapXcmProcess(params, 1, 2);
199
198
  }
@@ -36,7 +36,6 @@ class AssetHubRouter {
36
36
  // return [assetFrom, nativeToken, assetTo];
37
37
  // }
38
38
  }
39
-
40
39
  async earlyValidateSwapValidation(request) {
41
40
  const substrateApi = await this.substrateApi.isReady;
42
41
  const paths = this.buildPath(request.pair);
@@ -18,8 +18,7 @@ var _utils2 = require("@subwallet/extension-base/utils");
18
18
  var _getId = require("@subwallet/extension-base/utils/getId");
19
19
  var _bignumber = _interopRequireDefault(require("bignumber.js"));
20
20
  var bitcoin = _interopRequireWildcard(require("bitcoinjs-lib"));
21
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
22
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
21
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
23
22
  // Copyright 2019-2022 @subwallet/extension-base
24
23
  // SPDX-License-Identifier: Apache-2.0
25
24
 
@@ -97,7 +96,6 @@ class ChainflipSwapHandler {
97
96
  // address to which assets are refunded
98
97
  retryDurationInBlocks: '100' // 100 blocks * 6 seconds = 10 minutes before deposits are refunded
99
98
  };
100
-
101
99
  const path = `/swap?${new URLSearchParams(depositParams).toString()}`;
102
100
  const response = await (0, _utils2.fetchFromProxyService)(_environment.ProxyServiceRoute.CHAINFLIP, path, {
103
101
  method: 'GET'
@@ -265,7 +263,6 @@ class ChainflipSwapHandler {
265
263
  if (swap) {
266
264
  return this.swapBaseHandler.validateSwapOnlyProcess(params, swapIndex); // todo: create interface for input request
267
265
  }
268
-
269
266
  if (swapXcm) {
270
267
  return [new _TransactionError.TransactionError(_types.BasicTxErrorType.INTERNAL_ERROR)];
271
268
  }
@@ -321,7 +321,6 @@ class HydradxHandler {
321
321
  if (swap) {
322
322
  return this.swapBaseHandler.validateSwapOnlyProcess(params, 1); // todo: create interface for input request
323
323
  }
324
-
325
324
  if (swapXcm) {
326
325
  return this.swapBaseHandler.validateSwapXcmProcess(params, 1, 2);
327
326
  }