@subwallet/extension-base 1.3.69-0 → 1.3.71-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 (208) hide show
  1. package/background/KoniTypes.d.ts +11 -0
  2. package/background/KoniTypes.js +68 -8
  3. package/cjs/background/KoniTypes.js +68 -8
  4. package/cjs/constants/blocked-actions.js +3 -0
  5. package/cjs/core/logic-validation/swap.js +0 -3
  6. package/cjs/core/substrate/system-pallet.js +0 -2
  7. package/cjs/koni/api/nft/wasm_nft/index.js +0 -1
  8. package/cjs/koni/api/staking/bonding/astar.js +0 -2
  9. package/cjs/koni/api/staking/bonding/paraChain.js +0 -3
  10. package/cjs/koni/api/staking/bonding/relayChain.js +2 -4
  11. package/cjs/koni/api/staking/bonding/utils.js +0 -4
  12. package/cjs/koni/background/cron.js +0 -1
  13. package/cjs/koni/background/handlers/Extension.js +216 -158
  14. package/cjs/koni/background/handlers/State.js +59 -54
  15. package/cjs/koni/background/handlers/Tabs.js +39 -34
  16. package/cjs/packageInfo.js +1 -1
  17. package/cjs/page/index.js +7 -0
  18. package/cjs/page/substrate/PostMessageProvider.js +3 -0
  19. package/cjs/services/balance-service/helpers/subscribe/cardano/utils.js +0 -1
  20. package/cjs/services/balance-service/helpers/subscribe/substrate/gear.js +0 -2
  21. package/cjs/services/balance-service/helpers/subscribe/substrate/index.js +2 -3
  22. package/cjs/services/balance-service/helpers/subscribe/ton/utils.js +0 -3
  23. package/cjs/services/balance-service/index.js +103 -7
  24. package/cjs/services/balance-service/transfer/bitcoin-transfer.js +0 -1
  25. package/cjs/services/balance-service/transfer/cardano-transfer.js +1 -2
  26. package/cjs/services/balance-service/transfer/smart-contract.js +0 -1
  27. package/cjs/services/balance-service/transfer/token.js +0 -2
  28. package/cjs/services/balance-service/transfer/ton-transfer.js +0 -1
  29. package/cjs/services/balance-service/transfer/xcm/snowBridge.js +0 -1
  30. package/cjs/services/chain-service/constants.js +15 -4
  31. package/cjs/services/chain-service/handler/CardanoApi.js +3 -1
  32. package/cjs/services/chain-service/handler/SubstrateApi.js +0 -2
  33. package/cjs/services/chain-service/handler/light-client/index.js +1 -2
  34. package/cjs/services/chain-service/health-check/index.js +0 -1
  35. package/cjs/services/chain-service/health-check/utils/new-utils/chain-asset-validate.js +0 -1
  36. package/cjs/services/chain-service/index.js +18 -26
  37. package/cjs/services/chain-service/utils/index.js +34 -30
  38. package/cjs/services/earning-service/handlers/base.js +32 -0
  39. package/cjs/services/earning-service/handlers/lending/base.js +0 -2
  40. package/cjs/services/earning-service/handlers/liquid-staking/acala.js +0 -1
  41. package/cjs/services/earning-service/handlers/liquid-staking/base.js +0 -2
  42. package/cjs/services/earning-service/handlers/liquid-staking/bifrost.js +0 -2
  43. package/cjs/services/earning-service/handlers/liquid-staking/parallel.js +0 -1
  44. package/cjs/services/earning-service/handlers/native-staking/astar.js +0 -2
  45. package/cjs/services/earning-service/handlers/native-staking/dtao.js +43 -2
  46. package/cjs/services/earning-service/handlers/native-staking/energy.js +0 -1
  47. package/cjs/services/earning-service/handlers/native-staking/mythos.js +0 -2
  48. package/cjs/services/earning-service/handlers/native-staking/para-chain.js +0 -2
  49. package/cjs/services/earning-service/handlers/native-staking/relay-chain.js +8 -9
  50. package/cjs/services/earning-service/handlers/special.js +7 -0
  51. package/cjs/services/event-service/index.js +1 -0
  52. package/cjs/services/history-service/subsquid-multi-chain-history.js +0 -1
  53. package/cjs/services/keyring-service/context/handlers/Derive.js +1 -1
  54. package/cjs/services/keyring-service/context/handlers/Migration.js +11 -9
  55. package/cjs/services/keyring-service/context/handlers/Mnemonic.js +18 -13
  56. package/cjs/services/keyring-service/context/state.js +21 -3
  57. package/cjs/services/keyring-service/utils.js +12 -2
  58. package/cjs/services/migration-service/index.js +1 -2
  59. package/cjs/services/mint-campaign-service/campaigns/UnlockDotCampaign.js +0 -1
  60. package/cjs/services/nft-service/index.js +5 -0
  61. package/cjs/services/open-gov/handler.js +561 -0
  62. package/cjs/services/open-gov/index.js +273 -0
  63. package/cjs/services/open-gov/interface.js +31 -0
  64. package/cjs/services/open-gov/utils.js +66 -0
  65. package/cjs/services/request-service/handler/BitcoinRequestHandler.js +1 -2
  66. package/cjs/services/request-service/handler/CardanoRequestHandler.js +0 -1
  67. package/cjs/services/request-service/handler/EvmRequestHandler.js +0 -1
  68. package/cjs/services/request-service/handler/TonRequestHandler.js +0 -1
  69. package/cjs/services/request-service/helper/index.js +1 -2
  70. package/cjs/services/storage-service/DatabaseService.js +19 -3
  71. package/cjs/services/storage-service/databases/index.js +5 -0
  72. package/cjs/services/storage-service/db-stores/GovLockedInfoStore.js +35 -0
  73. package/cjs/services/swap-service/handler/asset-hub/handler.js +0 -1
  74. package/cjs/services/swap-service/handler/asset-hub/router.js +0 -1
  75. package/cjs/services/swap-service/handler/chainflip-handler.js +1 -4
  76. package/cjs/services/swap-service/handler/hydradx-handler.js +0 -1
  77. package/cjs/services/swap-service/handler/kyber-handler.js +0 -1
  78. package/cjs/services/swap-service/handler/optimex-handler.js +1 -2
  79. package/cjs/services/swap-service/handler/simpleswap-handler.js +1 -3
  80. package/cjs/services/swap-service/handler/uniswap-handler.js +0 -3
  81. package/cjs/services/transaction-service/event-parser/index.js +6 -6
  82. package/cjs/services/transaction-service/helpers/index.js +6 -0
  83. package/cjs/services/transaction-service/index.js +71 -28
  84. package/cjs/services/wallet-connect-service/index.js +21 -18
  85. package/cjs/services/wallet-connect-service/types.js +1 -1
  86. package/cjs/types/account/info/keyring.js +9 -1
  87. package/cjs/types/balance/index.js +5 -1
  88. package/cjs/types/swap/index.js +2 -1
  89. package/cjs/types/transaction/process.js +2 -0
  90. package/cjs/types/yield/actions/join/step.js +17 -1
  91. package/cjs/utils/account/common.js +0 -26
  92. package/cjs/utils/account/derive/info/solo.js +7 -4
  93. package/cjs/utils/account/derive/validate.js +1 -1
  94. package/cjs/utils/account/transform.js +10 -5
  95. package/cjs/utils/auth.js +1 -1
  96. package/cjs/utils/bitcoin/utxo-management.js +0 -1
  97. package/cjs/utils/environment.js +2 -1
  98. package/cjs/utils/fee/transfer.js +1 -2
  99. package/cjs/utils/index.js +1 -2
  100. package/constants/blocked-actions.js +3 -0
  101. package/core/logic-validation/swap.js +0 -3
  102. package/core/substrate/system-pallet.js +0 -2
  103. package/koni/api/nft/wasm_nft/index.js +0 -1
  104. package/koni/api/staking/bonding/astar.js +0 -2
  105. package/koni/api/staking/bonding/paraChain.js +0 -3
  106. package/koni/api/staking/bonding/relayChain.js +2 -4
  107. package/koni/api/staking/bonding/utils.js +0 -4
  108. package/koni/background/cron.js +0 -1
  109. package/koni/background/handlers/Extension.d.ts +4 -0
  110. package/koni/background/handlers/Extension.js +70 -11
  111. package/koni/background/handlers/State.d.ts +2 -0
  112. package/koni/background/handlers/State.js +46 -40
  113. package/koni/background/handlers/Tabs.js +9 -3
  114. package/package.json +44 -20
  115. package/packageInfo.js +1 -1
  116. package/page/substrate/PostMessageProvider.js +3 -0
  117. package/services/balance-service/helpers/subscribe/cardano/utils.js +0 -1
  118. package/services/balance-service/helpers/subscribe/substrate/gear.js +0 -2
  119. package/services/balance-service/helpers/subscribe/substrate/index.js +0 -1
  120. package/services/balance-service/helpers/subscribe/ton/utils.js +0 -3
  121. package/services/balance-service/index.d.ts +8 -0
  122. package/services/balance-service/index.js +105 -9
  123. package/services/balance-service/transfer/bitcoin-transfer.js +0 -1
  124. package/services/balance-service/transfer/smart-contract.js +0 -1
  125. package/services/balance-service/transfer/token.js +0 -2
  126. package/services/balance-service/transfer/ton-transfer.js +0 -1
  127. package/services/balance-service/transfer/xcm/snowBridge.js +0 -1
  128. package/services/chain-service/constants.d.ts +8 -0
  129. package/services/chain-service/constants.js +12 -2
  130. package/services/chain-service/handler/CardanoApi.js +3 -1
  131. package/services/chain-service/handler/SubstrateApi.js +0 -2
  132. package/services/chain-service/health-check/index.js +0 -1
  133. package/services/chain-service/health-check/utils/new-utils/chain-asset-validate.js +0 -1
  134. package/services/chain-service/index.d.ts +0 -1
  135. package/services/chain-service/index.js +15 -23
  136. package/services/chain-service/utils/index.js +35 -31
  137. package/services/earning-service/handlers/base.js +32 -0
  138. package/services/earning-service/handlers/lending/base.js +0 -2
  139. package/services/earning-service/handlers/liquid-staking/acala.js +0 -1
  140. package/services/earning-service/handlers/liquid-staking/base.js +0 -2
  141. package/services/earning-service/handlers/liquid-staking/bifrost.js +0 -2
  142. package/services/earning-service/handlers/liquid-staking/parallel.js +0 -1
  143. package/services/earning-service/handlers/native-staking/astar.js +0 -2
  144. package/services/earning-service/handlers/native-staking/dtao.js +43 -0
  145. package/services/earning-service/handlers/native-staking/energy.js +0 -1
  146. package/services/earning-service/handlers/native-staking/mythos.js +0 -2
  147. package/services/earning-service/handlers/native-staking/para-chain.js +0 -2
  148. package/services/earning-service/handlers/native-staking/relay-chain.js +8 -9
  149. package/services/earning-service/handlers/special.js +7 -0
  150. package/services/event-service/index.d.ts +1 -0
  151. package/services/event-service/index.js +1 -0
  152. package/services/event-service/types.d.ts +1 -0
  153. package/services/history-service/subsquid-multi-chain-history.js +0 -1
  154. package/services/keyring-service/context/handlers/Derive.js +2 -2
  155. package/services/keyring-service/context/handlers/Migration.js +3 -1
  156. package/services/keyring-service/context/handlers/Mnemonic.d.ts +1 -1
  157. package/services/keyring-service/context/handlers/Mnemonic.js +16 -10
  158. package/services/keyring-service/context/state.d.ts +3 -0
  159. package/services/keyring-service/context/state.js +21 -3
  160. package/services/keyring-service/utils.d.ts +1 -0
  161. package/services/keyring-service/utils.js +9 -0
  162. package/services/mint-campaign-service/campaigns/UnlockDotCampaign.js +0 -1
  163. package/services/nft-service/index.js +6 -0
  164. package/services/open-gov/handler.d.ts +27 -0
  165. package/services/open-gov/handler.js +545 -0
  166. package/services/open-gov/index.d.ts +45 -0
  167. package/services/open-gov/index.js +265 -0
  168. package/services/open-gov/interface.d.ts +141 -0
  169. package/services/open-gov/interface.js +24 -0
  170. package/services/open-gov/utils.d.ts +14 -0
  171. package/services/open-gov/utils.js +52 -0
  172. package/services/request-service/handler/CardanoRequestHandler.js +0 -1
  173. package/services/request-service/handler/EvmRequestHandler.js +0 -1
  174. package/services/request-service/handler/TonRequestHandler.js +0 -1
  175. package/services/setting-service/constants.js +0 -1
  176. package/services/storage-service/DatabaseService.d.ts +7 -0
  177. package/services/storage-service/DatabaseService.js +19 -3
  178. package/services/storage-service/databases/index.d.ts +2 -0
  179. package/services/storage-service/databases/index.js +6 -0
  180. package/services/storage-service/db-stores/GovLockedInfoStore.d.ts +10 -0
  181. package/services/storage-service/db-stores/GovLockedInfoStore.js +27 -0
  182. package/services/swap-service/handler/asset-hub/handler.js +0 -1
  183. package/services/swap-service/handler/asset-hub/router.js +0 -1
  184. package/services/swap-service/handler/chainflip-handler.js +0 -2
  185. package/services/swap-service/handler/hydradx-handler.js +0 -1
  186. package/services/swap-service/handler/kyber-handler.js +0 -1
  187. package/services/swap-service/handler/simpleswap-handler.js +0 -1
  188. package/services/swap-service/handler/uniswap-handler.js +0 -3
  189. package/services/transaction-service/event-parser/index.js +6 -6
  190. package/services/transaction-service/helpers/index.js +6 -0
  191. package/services/transaction-service/index.js +43 -0
  192. package/services/wallet-connect-service/index.js +21 -18
  193. package/services/wallet-connect-service/types.js +1 -1
  194. package/types/account/action/add/mnemonic.d.ts +3 -2
  195. package/types/account/info/keyring.js +9 -1
  196. package/types/balance/index.js +5 -1
  197. package/types/swap/index.js +2 -1
  198. package/types/transaction/process.js +3 -1
  199. package/types/yield/actions/join/step.js +17 -1
  200. package/utils/account/common.d.ts +0 -3
  201. package/utils/account/common.js +0 -24
  202. package/utils/account/derive/info/solo.js +8 -5
  203. package/utils/account/derive/validate.d.ts +2 -2
  204. package/utils/account/derive/validate.js +1 -1
  205. package/utils/account/transform.js +10 -5
  206. package/utils/auth.js +2 -2
  207. package/utils/bitcoin/utxo-management.js +0 -1
  208. 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 () => {
@@ -572,8 +571,8 @@ const subscribeSubnetAlphaPallet = async _ref9 => {
572
571
  }
573
572
  for (const chainAsset of Object.values(tokenMap)) {
574
573
  const netuid = (0, _utils2._getAssetNetuid)(chainAsset);
575
- const items = Object.entries(converted).map(_ref10 => {
576
- let [address, stakeMap] = _ref10;
574
+ const items = Object.entries(converted).map(_ref0 => {
575
+ let [address, stakeMap] = _ref0;
577
576
  const value = stakeMap[netuid] || (0, _bignumber.default)(0);
578
577
  return {
579
578
  address: address,
@@ -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) {
@@ -167,7 +167,6 @@ const getTransferMockTxFee = async (address, chainInfo, tokenInfo, api) => {
167
167
  // estimate value
168
168
  bounce: false // anyMode
169
169
  });
170
-
171
170
  estimatedFee = new _bignumber.default((await (0, _utils2.estimateTonTxFee)(tonApi, [mockMessage], mockWalletContract)).toString());
172
171
  } else {
173
172
  var _paymentInfo$partialF;
@@ -185,7 +184,6 @@ const getTransferMockTxFee = async (address, chainInfo, tokenInfo, api) => {
185
184
  const paymentInfo = await (mockTx === null || mockTx === void 0 ? void 0 : mockTx.paymentInfo(address));
186
185
  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
186
  }
188
-
189
187
  return estimatedFee;
190
188
  } catch (e) {
191
189
  console.error('error mocking tx fee', e);
@@ -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 = {
@@ -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
  }
@@ -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._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.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
@@ -30,9 +30,18 @@ const _PREDEFINED_SINGLE_MODES = {
30
30
  };
31
31
  exports._PREDEFINED_SINGLE_MODES = _PREDEFINED_SINGLE_MODES;
32
32
  const _PURE_EVM_CHAINS = ['binance', 'binance_test', 'ethereum', 'ethereum_goerli', 'astarEvm', 'shidenEvm', 'shibuyaEvm', 'crabEvm', 'pangolinEvm', 'cloverEvm', 'boba_rinkeby', 'boba', 'bobabase', 'bobabeam', 'watr_network_evm'];
33
+ exports._PURE_EVM_CHAINS = _PURE_EVM_CHAINS;
34
+ const _GOVERNANCE_CHAIN_GROUP = {
35
+ polkadot: ['statemint', 'bifrost_dot', 'hydradx_main', 'ajunaPolkadot', 'astar', 'phala', 'litentry', 'acala', 'centrifuge', 'interlay', 'laos_network'],
36
+ kusama: ['statemine', 'bifrost', 'basilisk', 'karura', 'kintsugi'],
37
+ westend_assethub: ['westend_assethub'],
38
+ paseo: ['paseo_assethub'],
39
+ solo: ['vara_network', 'zkverify'],
40
+ testnet: ['zkverify_testnet']
41
+ };
33
42
 
34
43
  // Get balance----------------------------------------------------------------------------------------------------------
35
- exports._PURE_EVM_CHAINS = _PURE_EVM_CHAINS;
44
+ exports._GOVERNANCE_CHAIN_GROUP = _GOVERNANCE_CHAIN_GROUP;
36
45
  const _BALANCE_CHAIN_GROUP = {
37
46
  kintsugi: ['kintsugi', 'interlay', 'kintsugi_test', 'mangatax_para'],
38
47
  genshiro: ['genshiro_testnet', 'genshiro'],
@@ -139,6 +148,8 @@ const _EXPECTED_BLOCK_TIME = {
139
148
  statemint: 6,
140
149
  statemine: 6,
141
150
  polkadex: 12,
151
+ westend_assethub: 6,
152
+ paseo_assethub: 6,
142
153
  ternoa: 6,
143
154
  ternoa_alphanet: 6,
144
155
  westend: 6,
@@ -149,8 +160,8 @@ const _EXPECTED_BLOCK_TIME = {
149
160
  vara_testnet: 3,
150
161
  goldberg_testnet: 20,
151
162
  polimec: 12,
152
- bifrost: 13,
153
- // expect 12 but actual 13
163
+ bifrost: 6,
164
+ // bifrost kusama
154
165
  moonbeam: 12,
155
166
  moonriver: 12,
156
167
  moonbase: 6,
@@ -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
@@ -1884,27 +1897,6 @@ class ChainService {
1884
1897
  });
1885
1898
  this.setAssetSettings(assetSettings);
1886
1899
  }
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
1900
  subscribeAssetSettings() {
1909
1901
  return this.assetSettingSubject;
1910
1902
  }
@@ -259,7 +259,6 @@ function _isEqualContractAddress(address1, address2) {
259
259
  if ((0, _utilCrypto.isEthereumAddress)(address1) && (0, _utilCrypto.isEthereumAddress)(address2)) {
260
260
  return address1.toLowerCase() === address2.toLowerCase(); // EVM address is case-insensitive
261
261
  }
262
-
263
262
  return address2 === address1;
264
263
  }
265
264
  function _isEqualSmartContractAsset(asset1, asset2) {
@@ -399,12 +398,10 @@ function _isSmartContractToken(tokenInfo) {
399
398
  function _isChainSubstrateCompatible(chainInfo) {
400
399
  return !!chainInfo.substrateInfo; // fallback to Ethereum
401
400
  }
402
-
403
401
  function _getEvmChainId(chainInfo) {
404
402
  var _chainInfo$evmInfo;
405
403
  return (_chainInfo$evmInfo = chainInfo.evmInfo) === null || _chainInfo$evmInfo === void 0 ? void 0 : _chainInfo$evmInfo.evmChainId; // fallback to Ethereum
406
404
  }
407
-
408
405
  function _getSubstrateParaId(chainInfo) {
409
406
  var _chainInfo$substrateI;
410
407
  return ((_chainInfo$substrateI = chainInfo.substrateInfo) === null || _chainInfo$substrateI === void 0 ? void 0 : _chainInfo$substrateI.paraId) || -1;
@@ -445,8 +442,8 @@ function _isChainSupportEvmERC20(chainInfo) {
445
442
  return ((_chainInfo$evmInfo3 = chainInfo.evmInfo) === null || _chainInfo$evmInfo3 === void 0 ? void 0 : (_chainInfo$evmInfo3$s = _chainInfo$evmInfo3.supportSmartContract) === null || _chainInfo$evmInfo3$s === void 0 ? void 0 : _chainInfo$evmInfo3$s.includes(_types._AssetType.ERC20)) || false;
446
443
  }
447
444
  function _isChainSupportWasmPSP22(chainInfo) {
448
- var _chainInfo$substrateI10, _chainInfo$substrateI11;
449
- return ((_chainInfo$substrateI10 = chainInfo.substrateInfo) === null || _chainInfo$substrateI10 === void 0 ? void 0 : (_chainInfo$substrateI11 = _chainInfo$substrateI10.supportSmartContract) === null || _chainInfo$substrateI11 === void 0 ? void 0 : _chainInfo$substrateI11.includes(_types._AssetType.PSP22)) || false;
445
+ var _chainInfo$substrateI0, _chainInfo$substrateI1;
446
+ return ((_chainInfo$substrateI0 = chainInfo.substrateInfo) === null || _chainInfo$substrateI0 === void 0 ? void 0 : (_chainInfo$substrateI1 = _chainInfo$substrateI0.supportSmartContract) === null || _chainInfo$substrateI1 === void 0 ? void 0 : _chainInfo$substrateI1.includes(_types._AssetType.PSP22)) || false;
450
447
  }
451
448
  function _isAssetHubChain(chainInfo) {
452
449
  return ['statemint', 'statemine'].includes(chainInfo.slug);
@@ -455,12 +452,12 @@ function _isAssetHubToken(token) {
455
452
  return ['statemint', 'statemine'].includes(token.originChain);
456
453
  }
457
454
  function _isChainSupportGRC20(chainInfo) {
458
- var _chainInfo$substrateI12, _chainInfo$substrateI13;
459
- return ((_chainInfo$substrateI12 = chainInfo.substrateInfo) === null || _chainInfo$substrateI12 === void 0 ? void 0 : (_chainInfo$substrateI13 = _chainInfo$substrateI12.supportSmartContract) === null || _chainInfo$substrateI13 === void 0 ? void 0 : _chainInfo$substrateI13.includes(_types._AssetType.GRC20)) || false;
455
+ var _chainInfo$substrateI10, _chainInfo$substrateI11;
456
+ return ((_chainInfo$substrateI10 = chainInfo.substrateInfo) === null || _chainInfo$substrateI10 === void 0 ? void 0 : (_chainInfo$substrateI11 = _chainInfo$substrateI10.supportSmartContract) === null || _chainInfo$substrateI11 === void 0 ? void 0 : _chainInfo$substrateI11.includes(_types._AssetType.GRC20)) || false;
460
457
  }
461
458
  function _isChainSupportVFT(chainInfo) {
462
- var _chainInfo$substrateI14, _chainInfo$substrateI15;
463
- return ((_chainInfo$substrateI14 = chainInfo.substrateInfo) === null || _chainInfo$substrateI14 === void 0 ? void 0 : (_chainInfo$substrateI15 = _chainInfo$substrateI14.supportSmartContract) === null || _chainInfo$substrateI15 === void 0 ? void 0 : _chainInfo$substrateI15.includes(_types._AssetType.VFT)) || false;
459
+ var _chainInfo$substrateI12, _chainInfo$substrateI13;
460
+ return ((_chainInfo$substrateI12 = chainInfo.substrateInfo) === null || _chainInfo$substrateI12 === void 0 ? void 0 : (_chainInfo$substrateI13 = _chainInfo$substrateI12.supportSmartContract) === null || _chainInfo$substrateI13 === void 0 ? void 0 : _chainInfo$substrateI13.includes(_types._AssetType.VFT)) || false;
464
461
  }
465
462
  const _isSupportOrdinal = chain => {
466
463
  const chains = ['polkadot', 'astar', 'bifrost_dot', 'moonbeam'];
@@ -515,28 +512,36 @@ function _getChainNativeTokenBasicInfo(chainInfo) {
515
512
  return defaultTokenInfo;
516
513
  }
517
514
  if (chainInfo.substrateInfo) {
518
- // substrate by default
519
515
  return {
516
+ ...defaultTokenInfo,
520
517
  symbol: chainInfo.substrateInfo.symbol,
521
518
  decimals: chainInfo.substrateInfo.decimals
522
519
  };
523
- } else if (chainInfo.evmInfo) {
520
+ }
521
+ if (chainInfo.evmInfo) {
524
522
  return {
523
+ ...defaultTokenInfo,
525
524
  symbol: chainInfo.evmInfo.symbol,
526
525
  decimals: chainInfo.evmInfo.decimals
527
526
  };
528
- } else if (chainInfo.tonInfo) {
527
+ }
528
+ if (chainInfo.tonInfo) {
529
529
  return {
530
+ ...defaultTokenInfo,
530
531
  symbol: chainInfo.tonInfo.symbol,
531
532
  decimals: chainInfo.tonInfo.decimals
532
533
  };
533
- } else if (chainInfo.cardanoInfo) {
534
+ }
535
+ if (chainInfo.cardanoInfo) {
534
536
  return {
537
+ ...defaultTokenInfo,
535
538
  symbol: chainInfo.cardanoInfo.symbol,
536
539
  decimals: chainInfo.cardanoInfo.decimals
537
540
  };
538
- } else if (chainInfo.bitcoinInfo) {
541
+ }
542
+ if (chainInfo.bitcoinInfo) {
539
543
  return {
544
+ ...defaultTokenInfo,
540
545
  symbol: chainInfo.bitcoinInfo.symbol,
541
546
  decimals: chainInfo.bitcoinInfo.decimals
542
547
  };
@@ -565,7 +570,6 @@ function _isTokenEvmSmartContract(tokenInfo) {
565
570
  function _isTokenTonSmartContract(tokenInfo) {
566
571
  return [_types._AssetType.TEP74].includes(tokenInfo.assetType); // add TEP-62 when supporting
567
572
  }
568
-
569
573
  function _isCIP26Token(tokenInfo) {
570
574
  return [_types._AssetType.CIP26].includes(tokenInfo.assetType);
571
575
  }
@@ -593,12 +597,12 @@ function _getXcmAssetType(tokenInfo) {
593
597
  return ((_tokenInfo$metadata9 = tokenInfo.metadata) === null || _tokenInfo$metadata9 === void 0 ? void 0 : _tokenInfo$metadata9.assetType) || '';
594
598
  }
595
599
  function _getXcmAssetId(tokenInfo) {
596
- var _tokenInfo$metadata10;
597
- return ((_tokenInfo$metadata10 = tokenInfo.metadata) === null || _tokenInfo$metadata10 === void 0 ? void 0 : _tokenInfo$metadata10.assetId) || '-1';
600
+ var _tokenInfo$metadata0;
601
+ return ((_tokenInfo$metadata0 = tokenInfo.metadata) === null || _tokenInfo$metadata0 === void 0 ? void 0 : _tokenInfo$metadata0.assetId) || '-1';
598
602
  }
599
603
  function _getXcmAssetMultilocation(tokenInfo) {
600
- var _tokenInfo$metadata11;
601
- return (_tokenInfo$metadata11 = tokenInfo.metadata) === null || _tokenInfo$metadata11 === void 0 ? void 0 : _tokenInfo$metadata11.multilocation;
604
+ var _tokenInfo$metadata1;
605
+ return (_tokenInfo$metadata1 = tokenInfo.metadata) === null || _tokenInfo$metadata1 === void 0 ? void 0 : _tokenInfo$metadata1.multilocation;
602
606
  }
603
607
  function _getXcmTransferType(originChainInfo, destinationChainInfo) {
604
608
  var _originChainInfo$subs, _destinationChainInfo;
@@ -608,12 +612,12 @@ function _isRelayChain(chainInfo) {
608
612
  return _isSubstrateRelayChain(chainInfo) || _isPureEvmChain(chainInfo);
609
613
  }
610
614
  function _isSubstrateRelayChain(chainInfo) {
611
- var _chainInfo$substrateI16;
612
- return ((_chainInfo$substrateI16 = chainInfo.substrateInfo) === null || _chainInfo$substrateI16 === void 0 ? void 0 : _chainInfo$substrateI16.chainType) === _types._SubstrateChainType.RELAYCHAIN;
615
+ var _chainInfo$substrateI14;
616
+ return ((_chainInfo$substrateI14 = chainInfo.substrateInfo) === null || _chainInfo$substrateI14 === void 0 ? void 0 : _chainInfo$substrateI14.chainType) === _types._SubstrateChainType.RELAYCHAIN;
613
617
  }
614
618
  function _isSubstrateParaChain(chainInfo) {
615
- var _chainInfo$substrateI17;
616
- return chainInfo.substrateInfo !== null && chainInfo.substrateInfo.paraId !== null && ((_chainInfo$substrateI17 = chainInfo.substrateInfo) === null || _chainInfo$substrateI17 === void 0 ? void 0 : _chainInfo$substrateI17.chainType) === _types._SubstrateChainType.PARACHAIN;
619
+ var _chainInfo$substrateI15;
620
+ return chainInfo.substrateInfo !== null && chainInfo.substrateInfo.paraId !== null && ((_chainInfo$substrateI15 = chainInfo.substrateInfo) === null || _chainInfo$substrateI15 === void 0 ? void 0 : _chainInfo$substrateI15.chainType) === _types._SubstrateChainType.PARACHAIN;
617
621
  }
618
622
  function _getEvmAbiExplorer(chainInfo) {
619
623
  var _chainInfo$evmInfo4;
@@ -667,8 +671,8 @@ function _getBlockExplorerFromChain(chainInfo) {
667
671
  var _chainInfo$tonInfo;
668
672
  blockExplorer = chainInfo === null || chainInfo === void 0 ? void 0 : (_chainInfo$tonInfo = chainInfo.tonInfo) === null || _chainInfo$tonInfo === void 0 ? void 0 : _chainInfo$tonInfo.blockExplorer;
669
673
  } else {
670
- var _chainInfo$substrateI18;
671
- blockExplorer = chainInfo === null || chainInfo === void 0 ? void 0 : (_chainInfo$substrateI18 = chainInfo.substrateInfo) === null || _chainInfo$substrateI18 === void 0 ? void 0 : _chainInfo$substrateI18.blockExplorer;
674
+ var _chainInfo$substrateI16;
675
+ blockExplorer = chainInfo === null || chainInfo === void 0 ? void 0 : (_chainInfo$substrateI16 = chainInfo.substrateInfo) === null || _chainInfo$substrateI16 === void 0 ? void 0 : _chainInfo$substrateI16.blockExplorer;
672
676
  }
673
677
  if (!blockExplorer) {
674
678
  return undefined;
@@ -700,8 +704,8 @@ const _isAssetAutoEnable = chainAsset => {
700
704
  };
701
705
  exports._isAssetAutoEnable = _isAssetAutoEnable;
702
706
  function _getCrowdloanUrlFromChain(chainInfo) {
703
- var _chainInfo$substrateI19;
704
- return (chainInfo === null || chainInfo === void 0 ? void 0 : (_chainInfo$substrateI19 = chainInfo.substrateInfo) === null || _chainInfo$substrateI19 === void 0 ? void 0 : _chainInfo$substrateI19.crowdloanUrl) || '';
707
+ var _chainInfo$substrateI17;
708
+ return (chainInfo === null || chainInfo === void 0 ? void 0 : (_chainInfo$substrateI17 = chainInfo.substrateInfo) === null || _chainInfo$substrateI17 === void 0 ? void 0 : _chainInfo$substrateI17.crowdloanUrl) || '';
705
709
  }
706
710
  function _isCustomProvider(providerKey) {
707
711
  return providerKey.startsWith(_types2._CUSTOM_PREFIX);
@@ -739,8 +743,8 @@ function _isMantaZkAsset(chainAsset) {
739
743
  return _constants._MANTA_ZK_CHAIN_GROUP.includes(chainAsset.originChain) && chainAsset.symbol.startsWith(_constants._ZK_ASSET_PREFIX);
740
744
  }
741
745
  function _getChainExistentialDeposit(chainInfo) {
742
- var _chainInfo$substrateI20;
743
- return (chainInfo === null || chainInfo === void 0 ? void 0 : (_chainInfo$substrateI20 = chainInfo.substrateInfo) === null || _chainInfo$substrateI20 === void 0 ? void 0 : _chainInfo$substrateI20.existentialDeposit) || '0';
746
+ var _chainInfo$substrateI18;
747
+ return (chainInfo === null || chainInfo === void 0 ? void 0 : (_chainInfo$substrateI18 = chainInfo.substrateInfo) === null || _chainInfo$substrateI18 === void 0 ? void 0 : _chainInfo$substrateI18.existentialDeposit) || '0';
744
748
  }
745
749
  function _getAssetExistentialDeposit(chainAsset) {
746
750
  return (chainAsset === null || chainAsset === void 0 ? void 0 : chainAsset.minAmount) || '0';
@@ -872,7 +876,7 @@ const _isChainInfoCompatibleWithAccountInfo = (chainInfo, accountInfo) => {
872
876
  type: accountType
873
877
  } = accountInfo;
874
878
  if (accountChainType === _types3.AccountChainType.SUBSTRATE) {
875
- return _isPureSubstrateChain(chainInfo) && _types4.SubstrateKeypairTypes.includes(accountType);
879
+ return _isPureSubstrateChain(chainInfo) && _types4.AllSubstrateKeypairTypes.includes(accountType);
876
880
  }
877
881
  if (accountChainType === _types3.AccountChainType.ETHEREUM) {
878
882
  if (accountSignMode === _types3.AccountSignMode.ECDSA_SUBSTRATE_LEDGER) {