@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
@@ -356,7 +356,6 @@ const subscribePSP22Balance = _ref4 => {
356
356
  }
357
357
  });
358
358
  };
359
-
360
359
  getTokenBalances();
361
360
  const interval = setInterval(getTokenBalances, _constants.SUB_TOKEN_REFRESH_BALANCE_INTERVAL);
362
361
  return () => {
@@ -438,16 +437,27 @@ const subscribeAssetsAccountPallet = async _ref7 => {
438
437
  }
439
438
  });
440
439
  const unsubList = await Promise.all(Object.values(tokenMap).map(tokenInfo => {
440
+ if (tokenInfo.slug === 'energy_web_x-LOCAL-stEWT') {
441
+ return (0, _rxjs.timer)(0, _constants.CRON_REFRESH_PRICE_INTERVAL).subscribe(() => {
442
+ const getEwtFrozenBalance = async () => {
443
+ const ewtTokenBalances = await queryEwtFrozenBalance(substrateApi, addresses, assetMap[tokenInfo.slug], extrinsicType);
444
+ callback(ewtTokenBalances);
445
+ };
446
+ getEwtFrozenBalance().catch(console.error);
447
+ });
448
+ }
441
449
  try {
442
450
  const assetIndex = (0, _utils2._getTokenOnChainAssetId)(tokenInfo);
443
- if (assetIndex === '-1') {
451
+ if (assetIndex === '-1' && !_constants2.USE_MULTILOCATION_INDEX.includes(chainInfo.slug)) {
444
452
  return undefined;
445
453
  }
454
+ const version = ['statemint', 'statemine', 'westend_assethub'].includes(chainInfo.slug) ? 4 : 3;
455
+ const index = _constants2.USE_MULTILOCATION_INDEX.includes(chainInfo.slug) ? (0, _xcmParser._adaptX1Interior)((0, _utils2._getXcmAssetMultilocation)(tokenInfo), version) : assetIndex;
446
456
  const params = [{
447
457
  section: 'query',
448
458
  module: assetsAccountKey.split('_')[1],
449
459
  method: assetsAccountKey.split('_')[2],
450
- args: addresses.map(address => [assetIndex, address])
460
+ args: addresses.map(address => [index, address])
451
461
  }];
452
462
 
453
463
  // Get Token Balance
@@ -572,8 +582,8 @@ const subscribeSubnetAlphaPallet = async _ref9 => {
572
582
  }
573
583
  for (const chainAsset of Object.values(tokenMap)) {
574
584
  const netuid = (0, _utils2._getAssetNetuid)(chainAsset);
575
- const items = Object.entries(converted).map(_ref10 => {
576
- let [address, stakeMap] = _ref10;
585
+ const items = Object.entries(converted).map(_ref0 => {
586
+ let [address, stakeMap] = _ref0;
577
587
  const value = stakeMap[netuid] || (0, _bignumber.default)(0);
578
588
  return {
579
589
  address: address,
@@ -611,4 +621,37 @@ async function queryGigaTokenBalance(substrateApi, addresses, tokenInfo, extrins
611
621
  locked: totalLockedFromTransfer.toString()
612
622
  };
613
623
  }));
624
+ }
625
+ async function queryEwtFrozenBalance(substrateApi, addresses, tokenInfo, extrinsicType) {
626
+ const multilocation = (0, _utils2._getXcmAssetMultilocation)(tokenInfo);
627
+ return await Promise.all(addresses.map(async address => {
628
+ const [_frozenBalance, _balanceInfo] = await Promise.all([substrateApi.api.query.assetsFreezer.frozenBalances(multilocation, address), substrateApi.api.query.assets.account(multilocation, address)]);
629
+ const balanceInfo = _balanceInfo.toPrimitive();
630
+ if (!balanceInfo) {
631
+ // no balance info response
632
+ return {
633
+ address: address,
634
+ tokenSlug: tokenInfo.slug,
635
+ free: '0',
636
+ locked: '0',
637
+ state: _KoniTypes.APIItemState.READY
638
+ };
639
+ }
640
+ const transferableBalance = (0, _assetsPallet._getAssetsPalletTransferable)(balanceInfo, (0, _utils2._getAssetExistentialDeposit)(tokenInfo), extrinsicType);
641
+ const totalLockedFromTransfer = (0, _assetsPallet._getAssetsPalletLocked)(balanceInfo);
642
+ let freeBalance = transferableBalance;
643
+ let lockedBalance = totalLockedFromTransfer;
644
+ const frozenBalance = _frozenBalance.toPrimitive();
645
+ if (frozenBalance) {
646
+ freeBalance = transferableBalance - BigInt(frozenBalance);
647
+ lockedBalance = totalLockedFromTransfer + BigInt(frozenBalance);
648
+ }
649
+ return {
650
+ address: address,
651
+ tokenSlug: tokenInfo.slug,
652
+ free: freeBalance.toString(),
653
+ locked: lockedBalance.toString(),
654
+ state: _KoniTypes.APIItemState.READY
655
+ };
656
+ }));
614
657
  }
@@ -57,10 +57,8 @@ async function retryTonTxStatus(fn, options) {
57
57
  await new Promise(resolve => setTimeout(resolve, options.delay)); // wait for delay period, then recall the fn()
58
58
  }
59
59
  }
60
-
61
60
  throw lastError; // throw only last error, in case no successful result from fn()
62
61
  }
63
-
64
62
  function getMessageTxStatus(txByMsgInfo) {
65
63
  var _txDetailInfo$descrip, _txDetailInfo$descrip2, _txDetailInfo$descrip3, _txDetailInfo$descrip4, _txDetailInfo$descrip5, _txDetailInfo$descrip6, _txDetailInfo$out_msg, _txDetailInfo$out_msg2;
66
64
  const txDetailInfo = txByMsgInfo.transactions[0];
@@ -86,7 +84,6 @@ async function getJettonTxStatus(tonApi, jettonTransferMsgHash) {
86
84
  const jettonInternalTransferTxInfoRaw = await tonApi.getTxByInMsg(jettonInternalTransferHash);
87
85
  return getMessageTxStatus(jettonInternalTransferTxInfoRaw); // Jetton Internal Transfer success -> Receiver successfully receiver fund!
88
86
  }
89
-
90
87
  return false;
91
88
  }
92
89
  async function estimateTonTxFee(tonApi, messages, walletContract, _seqno) {
@@ -472,7 +472,7 @@ class BalanceService {
472
472
  const assetMap = this.state.chainService.getAssetRegistry();
473
473
  const promiseList = addresses.map(address => {
474
474
  const type = (0, _keyring.getKeypairTypeByAddress)(address);
475
- const typeValid = [..._types3.SubstrateKeypairTypes, ..._types3.EthereumKeypairTypes].includes(type);
475
+ const typeValid = [..._types3.AllSubstrateKeypairTypes, ..._types3.EthereumKeypairTypes].includes(type);
476
476
  if (typeValid) {
477
477
  return this.state.subscanService.getMultiChainBalance(address).catch(e => {
478
478
  console.error(e);
@@ -553,12 +553,10 @@ class BalanceService {
553
553
  var _currentAssetSettings2;
554
554
  const chainSlug = tokenSlug.split('-')[0];
555
555
  const chainState = this.state.chainService.getChainStateByKey(chainSlug);
556
- const existedKey = Object.keys(assetMap).find(v => v.toLowerCase() === tokenSlug.toLowerCase());
557
-
558
- // Cancel if chain is turned off by user
559
- if (chainState && chainState.manualTurnOff) {
556
+ if (chainState !== null && chainState !== void 0 && chainState.manualTurnOff) {
560
557
  continue;
561
558
  }
559
+ const existedKey = Object.keys(assetMap).find(v => v.toLowerCase() === tokenSlug.toLowerCase());
562
560
  if (existedKey && !((_currentAssetSettings2 = currentAssetSettings[existedKey]) !== null && _currentAssetSettings2 !== void 0 && _currentAssetSettings2.visible)) {
563
561
  needEnableChains.push(chainSlug);
564
562
  needActiveTokens.push(existedKey);
@@ -774,7 +772,7 @@ class BalanceService {
774
772
  const assetMap = this.state.chainService.getAssetRegistry();
775
773
  const addresses = _uiKeyring.default.getPairs().map(account => account.address);
776
774
  const evmAddresses = addresses.filter(address => [..._types3.EthereumKeypairTypes].includes((0, _keyring.getKeypairTypeByAddress)(address)));
777
- const substrateAddresses = addresses.filter(address => [..._types3.SubstrateKeypairTypes].includes((0, _keyring.getKeypairTypeByAddress)(address)));
775
+ const substrateAddresses = addresses.filter(address => [..._types3.AllSubstrateKeypairTypes].includes((0, _keyring.getKeypairTypeByAddress)(address)));
778
776
  const [nonZeroBalanceEvmToken, nonZeroBalanceSubstrateToken] = await Promise.all([this.evmDetectBalanceToken(evmAddresses), this.substrateDetectBalanceToken(substrateAddresses)]);
779
777
  const substrateDetectChain = this.substrateDetectBalanceChain();
780
778
  const evmDetectChain = await this.evmDetectBalanceChain();
@@ -803,6 +801,104 @@ class BalanceService {
803
801
  }
804
802
  }
805
803
 
806
- /** optimize token area **/
804
+ /** Return token slugs with balance in evm chain - only work with evm addresses & pure evm chains **/
805
+ async getEvmTokensBalanceByChain(address, chainSlug) {
806
+ const tokenBalanceSlugs = await _subwalletServicesSdk.default.balanceDetectionApi.getSwEvmTokenBalanceByChain(address, chainSlug);
807
+ return tokenBalanceSlugs;
808
+ }
809
+
810
+ /** Return token slugs with balance in substrate chain - only work with substrate chains that have subscanSlug **/
811
+ async getSubstrateTokensBalanceByChain(address, chainSlug, assetsByChain) {
812
+ const tokenBalanceSlugs = [];
813
+ const balanceData = await this.state.subscanService.getMultiChainBalance(address);
814
+ if (!balanceData) {
815
+ return [];
816
+ }
817
+ for (const datum of balanceData) {
818
+ const {
819
+ balance,
820
+ bonded,
821
+ category,
822
+ locked,
823
+ network,
824
+ symbol
825
+ } = datum;
826
+ const chain = this.state.chainService.detectBalanceChainSlugMap[network];
827
+ if (chain !== chainSlug) {
828
+ continue;
829
+ }
830
+ const isBalanceEmpty = (!balance || balance === '0') && (!locked || locked === '0') && (!bonded || bonded === '0');
831
+ if (isBalanceEmpty) {
832
+ continue;
833
+ }
834
+ const tokenKey = `${chain}-${category === 'native' ? 'NATIVE' : 'LOCAL'}-${symbol.toUpperCase()}`;
835
+ const existedKey = Object.keys(assetsByChain).find(v => v.toLowerCase() === tokenKey.toLowerCase());
836
+ if (existedKey) {
837
+ tokenBalanceSlugs.push(existedKey);
838
+ }
839
+ }
840
+ return tokenBalanceSlugs;
841
+ }
842
+ getCurrentAccountAddressByChain(chainInfo) {
843
+ const proxyId = this.state.keyringService.context.currentAccount.proxyId;
844
+ const addresses = this.state.keyringService.context.addressesByProxyId(proxyId);
845
+ if ((0, _utils._isPureEvmChain)(chainInfo)) {
846
+ const evmAddress = addresses.find(address => {
847
+ const type = (0, _keyring.getKeypairTypeByAddress)(address);
848
+ return [..._types3.EthereumKeypairTypes].includes(type);
849
+ });
850
+ if (evmAddress) {
851
+ return evmAddress;
852
+ }
853
+ }
854
+ if ((0, _utils._isChainSubstrateCompatible)(chainInfo)) {
855
+ const substrateAddress = addresses.find(address => {
856
+ const type = (0, _keyring.getKeypairTypeByAddress)(address);
857
+ return [..._types3.AllSubstrateKeypairTypes, ..._types3.EthereumKeypairTypes].includes(type);
858
+ });
859
+ if (substrateAddress) {
860
+ return substrateAddress;
861
+ }
862
+ }
863
+ return undefined;
864
+ }
865
+
866
+ /** re-detect balance & enable custom, priority tokens when enabling chain again **/
867
+ async updatePriorityAssetsByChain(chainSlug, visible) {
868
+ const currentAssetSettings = await this.state.chainService.getAssetSettings();
869
+ const assetsByChain = this.state.chainService.getFungibleTokensByChain(chainSlug);
870
+ const priorityTokensMap = this.state.chainService.value.priorityTokens || {};
871
+ const chainInfo = this.state.chainService.getChainInfoByKey(chainSlug);
872
+ const address = this.getCurrentAccountAddressByChain(chainInfo);
873
+ const tokenSlugsWithBalance = [];
874
+ if (address && !(0, _utils._isCustomChain)(chainInfo.slug)) {
875
+ if ((0, _utils._isPureEvmChain)(chainInfo)) {
876
+ tokenSlugsWithBalance.push(...(await this.getEvmTokensBalanceByChain(address, chainSlug)));
877
+ } else if ((0, _utils._isChainSubstrateCompatible)(chainInfo)) {
878
+ tokenSlugsWithBalance.push(...(await this.getSubstrateTokensBalanceByChain(address, chainSlug, assetsByChain)));
879
+ }
880
+ }
881
+ tokenSlugsWithBalance.forEach(tokenSlug => {
882
+ currentAssetSettings[tokenSlug] = {
883
+ visible: true
884
+ };
885
+ });
886
+ const priorityTokensList = priorityTokensMap.token && typeof priorityTokensMap.token === 'object' ? Object.keys(priorityTokensMap.token) : [];
887
+ for (const asset of Object.values(assetsByChain)) {
888
+ if (visible) {
889
+ const isPriorityToken = priorityTokensList.includes(asset.slug) || (0, _utils._isCustomAsset)(asset.slug);
890
+ if (isPriorityToken || (0, _utils._isNativeToken)(asset)) {
891
+ currentAssetSettings[asset.slug] = {
892
+ visible: true
893
+ };
894
+ }
895
+ } else {
896
+ currentAssetSettings[asset.slug] = {
897
+ visible: false
898
+ };
899
+ }
900
+ }
901
+ this.state.chainService.setAssetSettings(currentAssetSettings);
902
+ }
807
903
  }
808
904
  exports.BalanceService = BalanceService;
@@ -83,7 +83,6 @@ async function createBitcoinTransaction(params) {
83
83
  script: pair.bitcoin.output,
84
84
  value: input.value // UTXO value in satoshis
85
85
  },
86
-
87
86
  tapInternalKey: pair.bitcoin.internalPubkey // X-only public key (32 bytes)
88
87
  });
89
88
  } else {
@@ -10,8 +10,7 @@ var _types = require("@subwallet/chain-list/types");
10
10
  var _utils = require("@subwallet/extension-base/services/balance-service/helpers/subscribe/cardano/utils");
11
11
  var _utils2 = require("@subwallet/extension-base/utils");
12
12
  var _subwalletServicesSdk = _interopRequireDefault(require("@subwallet-monorepos/subwallet-services-sdk"));
13
- 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); }
14
- 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; }
13
+ 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); }
15
14
  // Copyright 2019-2022 @subwallet/extension-base
16
15
  // SPDX-License-Identifier: Apache-2.0
17
16
  var POPULAR_CARDANO_ERROR_PHRASE;
@@ -74,7 +74,6 @@ async function getEVMTransactionObject(props) {
74
74
  });
75
75
  gasLimit = Math.floor(gasEstimate * 1.1); // 10% buffer for fluctuations
76
76
  }
77
-
78
77
  transactionObject.gas = gasLimit;
79
78
  let estimateFee;
80
79
  if (feeCombine.maxFeePerGas) {
@@ -4,9 +4,10 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.getTransferMockTxFee = exports.getAccountNetuidTokenInfo = exports.createSubstrateExtrinsic = void 0;
7
+ exports.getTransferMockTxFee = exports.createSubstrateExtrinsic = void 0;
8
8
  var _api = require("@gear-js/api");
9
9
  var _types = require("@subwallet/chain-list/types");
10
+ var _xcmParser = require("@subwallet/extension-base/core/substrate/xcm-parser");
10
11
  var _wasm = require("@subwallet/extension-base/koni/api/contract-handler/wasm");
11
12
  var _utils = require("@subwallet/extension-base/koni/api/contract-handler/wasm/utils");
12
13
  var _utils2 = require("@subwallet/extension-base/services/balance-service/helpers/subscribe/ton/utils");
@@ -24,7 +25,7 @@ var _utilCrypto = require("@polkadot/util-crypto");
24
25
  // SPDX-License-Identifier: Apache-2.0
25
26
 
26
27
  const createSubstrateExtrinsic = async _ref => {
27
- var _tokenInfo$metadata, _tokenInfo$metadata2;
28
+ var _tokenInfo$metadata;
28
29
  let {
29
30
  from,
30
31
  networkKey,
@@ -102,7 +103,15 @@ const createSubstrateExtrinsic = async _ref => {
102
103
  } else if (_constants._TRANSFER_CHAIN_GROUP.bitcountry.includes(networkKey) && !(0, _utils3._isNativeToken)(tokenInfo)) {
103
104
  transfer = api.tx.currencies.transfer(to, (0, _utils3._getTokenOnChainInfo)(tokenInfo), value);
104
105
  } else if (_constants._TRANSFER_CHAIN_GROUP.statemine.includes(networkKey) && !(0, _utils3._isNativeToken)(tokenInfo)) {
105
- transfer = api.tx.assets.transfer((0, _utils3._getTokenOnChainAssetId)(tokenInfo), to, value);
106
+ if (_constants.USE_MULTILOCATION_INDEX.includes(networkKey)) {
107
+ const version = ['statemint', 'statemine', 'westend_assethub'].includes(networkKey) ? 4 : 3;
108
+ const multilocationIndex = (0, _xcmParser._adaptX1Interior)((0, _utils3._getXcmAssetMultilocation)(tokenInfo), version);
109
+
110
+ // @ts-ignore
111
+ transfer = api.tx.assets.transfer(multilocationIndex, to, value);
112
+ } else {
113
+ transfer = api.tx.assets.transfer((0, _utils3._getTokenOnChainAssetId)(tokenInfo), to, value);
114
+ }
106
115
  } else if (_constants._TRANSFER_CHAIN_GROUP.sora_substrate.includes(networkKey) && isTxAssetsSupported) {
107
116
  transfer = api.tx.assets.transfer((0, _utils3._getTokenOnChainAssetId)(tokenInfo), to, value);
108
117
  } else if (isTxBalancesSupported && (0, _utils3._isNativeToken)(tokenInfo)) {
@@ -120,18 +129,6 @@ const createSubstrateExtrinsic = async _ref => {
120
129
  }
121
130
  } else if (_constants._TRANSFER_CHAIN_GROUP.truth.includes(networkKey)) {
122
131
  transfer = api.tx.assetManager.transfer(to, (0, _utils3._getTokenOnChainInfo)(tokenInfo), value);
123
- } else if (_constants._TRANSFER_CHAIN_GROUP.bittensor.includes(networkKey) && (_tokenInfo$metadata2 = tokenInfo.metadata) !== null && _tokenInfo$metadata2 !== void 0 && _tokenInfo$metadata2.netuid) {
124
- var _tokenInfo$metadata3;
125
- const {
126
- accountHotKey,
127
- isEnableTransferSubnet
128
- } = await getAccountNetuidTokenInfo(from, tokenInfo, substrateApi);
129
- const tokenNetuid = (_tokenInfo$metadata3 = tokenInfo.metadata) === null || _tokenInfo$metadata3 === void 0 ? void 0 : _tokenInfo$metadata3.netuid;
130
- if (isEnableTransferSubnet && accountHotKey) {
131
- transfer = api.tx.subtensorModule.transferStake(from, accountHotKey, tokenNetuid, tokenNetuid, value);
132
- } else {
133
- return [null, value];
134
- }
135
132
  }
136
133
  return [transfer, transferAmount || value];
137
134
  };
@@ -167,7 +164,6 @@ const getTransferMockTxFee = async (address, chainInfo, tokenInfo, api) => {
167
164
  // estimate value
168
165
  bounce: false // anyMode
169
166
  });
170
-
171
167
  estimatedFee = new _bignumber.default((await (0, _utils2.estimateTonTxFee)(tonApi, [mockMessage], mockWalletContract)).toString());
172
168
  } else {
173
169
  var _paymentInfo$partialF;
@@ -185,30 +181,10 @@ const getTransferMockTxFee = async (address, chainInfo, tokenInfo, api) => {
185
181
  const paymentInfo = await (mockTx === null || mockTx === void 0 ? void 0 : mockTx.paymentInfo(address));
186
182
  estimatedFee = new _bignumber.default((paymentInfo === null || paymentInfo === void 0 ? void 0 : (_paymentInfo$partialF = paymentInfo.partialFee) === null || _paymentInfo$partialF === void 0 ? void 0 : _paymentInfo$partialF.toString()) || '0'); // todo: should handle error case instead of setting fee to 0
187
183
  }
188
-
189
184
  return estimatedFee;
190
185
  } catch (e) {
191
186
  console.error('error mocking tx fee', e);
192
187
  return new _bignumber.default(0);
193
188
  }
194
189
  };
195
- exports.getTransferMockTxFee = getTransferMockTxFee;
196
- const getAccountNetuidTokenInfo = async (address, tokenInfo, substrateApi) => {
197
- var _tokenInfo$metadata4;
198
- const tokenNetuid = (_tokenInfo$metadata4 = tokenInfo.metadata) === null || _tokenInfo$metadata4 === void 0 ? void 0 : _tokenInfo$metadata4.netuid;
199
- if (!tokenNetuid) {
200
- return {
201
- isEnableTransferSubnet: false,
202
- accountHotKey: undefined
203
- };
204
- }
205
- const [isTransferToggle, rawStakeInfoForColdKey] = await Promise.all([substrateApi.api.query.subtensorModule.transferToggle(tokenNetuid), substrateApi.api.call.stakeInfoRuntimeApi.getStakeInfoForColdkey(address)]);
206
- const isEnableTransferSubnet = isTransferToggle.toPrimitive();
207
- const taoStakeInfos = rawStakeInfoForColdKey.toPrimitive();
208
- const accountHotKey = taoStakeInfos.find(value => value.netuid === tokenNetuid);
209
- return {
210
- isEnableTransferSubnet,
211
- accountHotKey: accountHotKey === null || accountHotKey === void 0 ? void 0 : accountHotKey.hotkey
212
- };
213
- };
214
- exports.getAccountNetuidTokenInfo = getAccountNetuidTokenInfo;
190
+ exports.getTransferMockTxFee = getTransferMockTxFee;
@@ -64,7 +64,6 @@ async function createTonNativeTransaction(_ref2) {
64
64
  value: (0, _core.fromNano)(value),
65
65
  bounce: false // todo: check and update the send bounced logic
66
66
  });
67
-
68
67
  const messagePayload = (0, _utils.cellToBase64Str)((0, _utils.messageRelaxedToCell)(messages));
69
68
  const estimateExternalFee = await (0, _utils.estimateTonTxFee)(tonApi, [messages], walletContract);
70
69
  const transactionObject = {
@@ -119,8 +119,6 @@ const dryRunXcmExtrinsicV2 = async function (request) {
119
119
  const originDryRunRs = dryRunResult.origin;
120
120
  if (originDryRunRs.success) {
121
121
  const {
122
- assetHub,
123
- bridgeHub,
124
122
  destination,
125
123
  hops
126
124
  } = dryRunResult;
@@ -129,12 +127,9 @@ const dryRunXcmExtrinsicV2 = async function (request) {
129
127
  return false;
130
128
  }
131
129
  }
132
- if ((assetHub === null || assetHub === void 0 ? void 0 : assetHub.success) === false || (bridgeHub === null || bridgeHub === void 0 ? void 0 : bridgeHub.success) === false || (destination === null || destination === void 0 ? void 0 : destination.success) === false) {
133
- if ((destination === null || destination === void 0 ? void 0 : destination.success) === false) {
134
- // pass dry-run in these cases
135
- return (0, _utils.isChainNotSupportDryRun)(destination.failureReason) || (0, _utils.isChainNotSupportPolkadotApi)(destination.failureReason);
136
- }
137
- return false;
130
+ if ((destination === null || destination === void 0 ? void 0 : destination.success) === false) {
131
+ // pass dry-run in these cases
132
+ return (0, _utils.isChainNotSupportDryRun)(destination.failureReason) || (0, _utils.isChainNotSupportPolkadotApi)(destination.failureReason);
138
133
  }
139
134
  return true;
140
135
  }
@@ -63,7 +63,6 @@ async function getSnowBridgeEvmTransfer(tokenInfo, originChainInfo, destinationC
63
63
  } catch (e) {
64
64
  gasLimit = 200000; // todo: handle this better
65
65
  }
66
-
67
66
  transactionConfig.gas = gasLimit;
68
67
  return transactionConfig;
69
68
  }
@@ -18,7 +18,7 @@ var _util = require("@polkadot/util");
18
18
  // Copyright 2019-2022 @subwallet/extension-base
19
19
  // SPDX-License-Identifier: Apache-2.0
20
20
 
21
- const version = '/v4';
21
+ const version = '/v5';
22
22
  const paraSpellApi = {
23
23
  buildXcm: `${version}/x-transfer`,
24
24
  feeXcm: `${version}/xcm-fee`,
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports._ZK_ASSET_PREFIX = exports._TRANSFER_CHAIN_GROUP = exports._SUBSTRATE_DEFAULT_INFLATION_PARAMS = exports._STAKING_ERA_LENGTH_MAP = exports._PURE_EVM_CHAINS = exports._PREDEFINED_SINGLE_MODES = exports._PARACHAIN_INFLATION_DISTRIBUTION = exports._NFT_CHAIN_GROUP = exports._MANTA_ZK_CHAIN_GROUP = exports._KNOWN_CHAIN_INFLATION_PARAMS = exports._GOVERNANCE_CHAIN_GROUP = exports._EXPECTED_BLOCK_TIME = exports._DEFAULT_MANTA_ZK_CHAIN = exports._DEFAULT_ACTIVE_CHAINS = exports._BTC_SERVICE_TOKEN = exports._BITCOIN_TESTNET_NAME = exports._BITCOIN_TESTNET_CHAIN_SLUG = exports._BITCOIN_NAME = exports._BITCOIN_CHAIN_SLUG = exports._BALANCE_LOCKED_ID_GROUP = exports._BALANCE_CHAIN_GROUP = exports._API_OPTIONS_CHAIN_GROUP = exports.LATEST_CHAIN_DATA_FETCHING_INTERVAL = exports.EVM_REFORMAT_DECIMALS = exports.EVM_PASS_CONNECT_STATUS = exports.API_CONNECT_TIMEOUT = exports.API_AUTO_CONNECT_MS = void 0;
6
+ exports._ZK_ASSET_PREFIX = exports._TRANSFER_CHAIN_GROUP = exports._SUBSTRATE_DEFAULT_INFLATION_PARAMS = exports._STAKING_ERA_LENGTH_MAP = exports._PURE_EVM_CHAINS = exports._PREDEFINED_SINGLE_MODES = exports._PARACHAIN_INFLATION_DISTRIBUTION = exports._NFT_CHAIN_GROUP = exports._MANTA_ZK_CHAIN_GROUP = exports._KNOWN_CHAIN_INFLATION_PARAMS = exports._GOVERNANCE_CHAIN_GROUP = exports._EXPECTED_BLOCK_TIME = exports._DEFAULT_MANTA_ZK_CHAIN = exports._DEFAULT_ACTIVE_CHAINS = exports._BTC_SERVICE_TOKEN = exports._BITCOIN_TESTNET_NAME = exports._BITCOIN_TESTNET_CHAIN_SLUG = exports._BITCOIN_NAME = exports._BITCOIN_CHAIN_SLUG = exports._BALANCE_LOCKED_ID_GROUP = exports._BALANCE_CHAIN_GROUP = exports._API_OPTIONS_CHAIN_GROUP = exports.USE_MULTILOCATION_INDEX = exports.LATEST_CHAIN_DATA_FETCHING_INTERVAL = exports.EVM_REFORMAT_DECIMALS = exports.EVM_PASS_CONNECT_STATUS = exports.API_CONNECT_TIMEOUT = exports.API_AUTO_CONNECT_MS = void 0;
7
7
  var _chainList = require("@subwallet/chain-list");
8
8
  var _KoniTypes = require("@subwallet/extension-base/background/KoniTypes");
9
9
  // Copyright 2019-2022 @subwallet/extension-base
@@ -47,7 +47,7 @@ const _BALANCE_CHAIN_GROUP = {
47
47
  genshiro: ['genshiro_testnet', 'genshiro'],
48
48
  equilibrium_parachain: ['equilibrium_parachain'],
49
49
  bifrost: ['bifrost', 'acala', 'karura', 'acala_testnet', 'pioneer', 'bitcountry', 'bifrost_dot', 'hydradx_main', 'hydradx_rococo', 'pendulum', 'amplitude', 'continuum_network', 'truth_network', 'jamton', 'hydradx_hollarnet'],
50
- statemine: ['statemine', 'astar', 'shiden', 'statemint', 'crabParachain', 'darwinia2', 'parallel', 'calamari', 'manta_network', 'rococo_assethub', 'liberlandTest', 'liberland', 'dentnet', 'pangolin', 'crust', 'phala', 'shibuya', 'dbcchain', 'westend_assethub', 'chainflip_assethub', 'origintrail', 'xode', 'paseo_assethub'],
50
+ statemine: ['statemine', 'astar', 'shiden', 'statemint', 'crabParachain', 'darwinia2', 'parallel', 'calamari', 'manta_network', 'rococo_assethub', 'liberlandTest', 'liberland', 'dentnet', 'pangolin', 'crust', 'phala', 'shibuya', 'dbcchain', 'westend_assethub', 'chainflip_assethub', 'origintrail', 'xode', 'paseo_assethub', 'energy_web_x'],
51
51
  kusama: ['kusama', 'kintsugi', 'kintsugi_test', 'interlay', 'acala', 'statemint', 'karura', 'bifrost'],
52
52
  // perhaps there are some runtime updates
53
53
  centrifuge: ['centrifuge'],
@@ -306,17 +306,18 @@ const _TRANSFER_CHAIN_GROUP = {
306
306
  kintsugi: ['kintsugi', 'kintsugi_test', 'interlay', 'mangatax_para'],
307
307
  genshiro: ['genshiro_testnet', 'genshiro', 'equilibrium_parachain'],
308
308
  bitcountry: ['pioneer', 'bitcountry'],
309
- statemine: ['statemint', 'statemine', 'darwinia2', 'astar', 'shiden', 'shibuya', 'parallel', 'liberland', 'liberlandTest', 'dentnet', 'dbcchain', 'westend_assethub', 'chainflip_assethub', 'origintrail', 'xode', 'paseo_assethub'],
309
+ statemine: ['statemint', 'statemine', 'darwinia2', 'astar', 'shiden', 'shibuya', 'parallel', 'liberland', 'liberlandTest', 'dentnet', 'dbcchain', 'westend_assethub', 'chainflip_assethub', 'origintrail', 'xode', 'paseo_assethub', 'energy_web_x'],
310
310
  riochain: ['riochain'],
311
311
  sora_substrate: ['sora_substrate'],
312
312
  avail: ['kate', 'goldberg_testnet'],
313
313
  pendulum: ['pendulum', 'amplitude', 'amplitude_test', 'hydradx_main', 'bifrost', 'bifrost_dot', 'jamton', 'hydradx_hollarnet'],
314
314
  centrifuge: ['centrifuge'],
315
315
  disable_transfer: ['crab', 'pangolin'],
316
- truth: ['truth_network'],
317
- bittensor: ['bittensor']
316
+ truth: ['truth_network']
318
317
  };
319
318
  exports._TRANSFER_CHAIN_GROUP = _TRANSFER_CHAIN_GROUP;
319
+ const USE_MULTILOCATION_INDEX = ['energy_web_x'];
320
+ exports.USE_MULTILOCATION_INDEX = USE_MULTILOCATION_INDEX;
320
321
  const _MANTA_ZK_CHAIN_GROUP = ['calamari'];
321
322
  exports._MANTA_ZK_CHAIN_GROUP = _MANTA_ZK_CHAIN_GROUP;
322
323
  const _ZK_ASSET_PREFIX = 'zk';
@@ -26,6 +26,9 @@ class CardanoApi {
26
26
  connectionStatusSubject = new _rxjs.BehaviorSubject(_types._ChainConnectionStatus.DISCONNECTED);
27
27
  isApiReady = false;
28
28
  isApiReadyOnce = false;
29
+
30
+ // todo: add api with interface BlockFrostAPI to remove isTestnet check
31
+
29
32
  constructor(chainSlug, apiUrl, _ref) {
30
33
  let {
31
34
  isTestnet,
@@ -68,7 +71,6 @@ class CardanoApi {
68
71
  this.apiUrl = apiUrl;
69
72
  // this.api = this.createProvider();
70
73
  }
71
-
72
74
  async recoverConnect() {
73
75
  await this.disconnect();
74
76
  this.connect();
@@ -288,7 +288,6 @@ class SubstrateApi {
288
288
  // this.apiDefaultTx = api.tx[defaultSection][defaultMethod];
289
289
  // this.apiDefaultTxSudo = (api.tx.system && api.tx.system.setCode) || this.apiDefaultTx;
290
290
  }
291
-
292
291
  async makeRpcQuery(_ref) {
293
292
  let {
294
293
  args,
@@ -330,7 +329,6 @@ class SubstrateApi {
330
329
  // eslint-disable-next-line @typescript-eslint/no-unsafe-call,@typescript-eslint/no-unsafe-member-access
331
330
  return (await this.api[section][module][method]()).toPrimitive(); // todo: improve this
332
331
  }
333
-
334
332
  if (isStateQuery) {
335
333
  if (!this.api[section][module]) {
336
334
  return undefined;
@@ -7,8 +7,7 @@ exports.getSubstrateConnectProvider = getSubstrateConnectProvider;
7
7
  exports.relayChainSpecs = exports.paraChainSpecs = void 0;
8
8
  var Sc = _interopRequireWildcard(require("@substrate/connect"));
9
9
  var _rpcProvider = require("@polkadot/rpc-provider");
10
- 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); }
11
- 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; }
10
+ 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); }
12
11
  // Copyright 2019-2022 @subwallet/extension-base authors & contributors
13
12
  // SPDX-License-Identifier: Apache-2.0
14
13
 
@@ -30,7 +30,6 @@ async function checkSubstrateEndpoint(endpoint, timeout) {
30
30
  await wsProvider.disconnect(); // disconnect from the endpoint after the health check is complete
31
31
  }
32
32
  }
33
-
34
33
  async function checkEvmEndpoint(endpoint, timeout) {
35
34
  try {
36
35
  const web3 = new _web.default(endpoint);
@@ -20,7 +20,6 @@ function validateTokenHasValueByChain(chainAsset) {
20
20
  }
21
21
  return isTestnet !== chainAsset.hasValue; // todo: also check multichainAsset hasValue if has.
22
22
  }
23
-
24
23
  function validateNativeInfoByChain(chainAsset) {
25
24
  var _chainInfo$evmInfo, _chainInfo$substrateI, _chainInfo$bitcoinInf, _chainInfo$evmInfo2, _chainInfo$substrateI2, _chainInfo$bitcoinInf2, _chainInfo$evmInfo3, _chainInfo$substrateI3, _chainInfo$bitcoinInf3;
26
25
  const chainInfo = _chainList.ChainInfoMap[chainAsset.originChain];
@@ -55,6 +55,9 @@ class ChainService {
55
55
  assetRegistry: {},
56
56
  assetRefMap: {}
57
57
  };
58
+
59
+ // to save chain, token settings from user
60
+
58
61
  lockChainInfoMap = false; // prevent unwanted changes (edit, enable, disable) to chainInfoMap
59
62
 
60
63
  get mantaPay() {
@@ -730,7 +733,6 @@ class ChainService {
730
733
  .catch(e => console.error('Error enabling popular tokens:', e)); // Log error if enabling fails
731
734
  }
732
735
  }
733
-
734
736
  handleLatestSufficientChains(latestSufficientChains) {
735
737
  this.sufficientChainsSubject.next(latestSufficientChains);
736
738
  this.logger.log('Finished updating latest supported sufficient chains');
@@ -1234,8 +1236,8 @@ class ChainService {
1234
1236
  }
1235
1237
 
1236
1238
  // Fill in the missing chainState and storageData (new chains never before seen)
1237
- Object.entries(mergedChainInfoMap).forEach(_ref10 => {
1238
- let [slug, chainInfo] = _ref10;
1239
+ Object.entries(mergedChainInfoMap).forEach(_ref0 => {
1240
+ let [slug, chainInfo] = _ref0;
1239
1241
  if (!(slug in this.dataMap.chainStateMap)) {
1240
1242
  this.dataMap.chainStateMap[slug] = {
1241
1243
  currentProvider: Object.keys(chainInfo.providers)[0],
@@ -1346,8 +1348,8 @@ class ChainService {
1346
1348
  // Fill out zk assets from finalAssetRegistry if not supported
1347
1349
  if (!_utils2.MODULE_SUPPORT.MANTA_ZK) {
1348
1350
  const zkAssets = [];
1349
- Object.entries(finalAssetRegistry).forEach(_ref11 => {
1350
- let [slug, assets] = _ref11;
1351
+ Object.entries(finalAssetRegistry).forEach(_ref1 => {
1352
+ let [slug, assets] = _ref1;
1351
1353
  if ((0, _utils._isMantaZkAsset)(assets)) {
1352
1354
  zkAssets.push(slug);
1353
1355
  delete finalAssetRegistry[slug];
@@ -1380,7 +1382,18 @@ class ChainService {
1380
1382
 
1381
1383
  // Enable chain if not before
1382
1384
  if (!targetChainState.active) {
1385
+ var _currentAssetSettings;
1383
1386
  targetChainState.active = true;
1387
+
1388
+ // enable native token
1389
+ const nativeAsset = this.getNativeTokenInfo(chainSlug);
1390
+ const currentAssetSettings = await this.getAssetSettings();
1391
+ if (!((_currentAssetSettings = currentAssetSettings[nativeAsset.slug]) !== null && _currentAssetSettings !== void 0 && _currentAssetSettings.visible)) {
1392
+ currentAssetSettings[nativeAsset.slug] = {
1393
+ visible: true
1394
+ };
1395
+ this.setAssetSettings(currentAssetSettings);
1396
+ }
1384
1397
  }
1385
1398
 
1386
1399
  // It auto detects the change of api url to create new instance or reuse existed one
@@ -1436,6 +1449,7 @@ class ChainService {
1436
1449
  relaySlug: null,
1437
1450
  hasNativeNft: false,
1438
1451
  supportStaking: params.chainSpec.paraId === null,
1452
+ supportProxy: false,
1439
1453
  supportSmartContract: null
1440
1454
  };
1441
1455
  } else if (params.chainSpec.evmChainId !== null) {
@@ -1884,27 +1898,6 @@ class ChainService {
1884
1898
  });
1885
1899
  this.setAssetSettings(assetSettings);
1886
1900
  }
1887
- async updatePriorityAssetsByChain(chainSlug, visible) {
1888
- const currentAssetSettings = await this.getAssetSettings();
1889
- const assetsByChain = this.getFungibleTokensByChain(chainSlug);
1890
- const priorityTokensMap = this.priorityTokensSubject.value || {};
1891
- const priorityTokensList = priorityTokensMap.token && typeof priorityTokensMap.token === 'object' ? Object.keys(priorityTokensMap.token) : [];
1892
- for (const asset of Object.values(assetsByChain)) {
1893
- if (visible) {
1894
- const isPriorityToken = priorityTokensList.includes(asset.slug);
1895
- if (isPriorityToken || (0, _utils._isNativeToken)(asset)) {
1896
- currentAssetSettings[asset.slug] = {
1897
- visible: true
1898
- };
1899
- }
1900
- } else {
1901
- currentAssetSettings[asset.slug] = {
1902
- visible: false
1903
- };
1904
- }
1905
- }
1906
- this.setAssetSettings(currentAssetSettings);
1907
- }
1908
1901
  subscribeAssetSettings() {
1909
1902
  return this.assetSettingSubject;
1910
1903
  }