@subwallet/extension-base 1.3.70-2 → 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 (182) hide show
  1. package/background/KoniTypes.js +65 -8
  2. package/cjs/background/KoniTypes.js +65 -8
  3. package/cjs/constants/blocked-actions.js +3 -0
  4. package/cjs/core/logic-validation/swap.js +0 -3
  5. package/cjs/core/substrate/system-pallet.js +0 -2
  6. package/cjs/koni/api/nft/wasm_nft/index.js +0 -1
  7. package/cjs/koni/api/staking/bonding/astar.js +0 -2
  8. package/cjs/koni/api/staking/bonding/paraChain.js +0 -3
  9. package/cjs/koni/api/staking/bonding/relayChain.js +2 -4
  10. package/cjs/koni/api/staking/bonding/utils.js +0 -4
  11. package/cjs/koni/background/cron.js +0 -1
  12. package/cjs/koni/background/handlers/Extension.js +154 -158
  13. package/cjs/koni/background/handlers/State.js +54 -52
  14. package/cjs/koni/background/handlers/Tabs.js +39 -34
  15. package/cjs/packageInfo.js +1 -1
  16. package/cjs/page/index.js +7 -0
  17. package/cjs/page/substrate/PostMessageProvider.js +3 -0
  18. package/cjs/services/balance-service/helpers/subscribe/cardano/utils.js +0 -1
  19. package/cjs/services/balance-service/helpers/subscribe/substrate/gear.js +0 -2
  20. package/cjs/services/balance-service/helpers/subscribe/substrate/index.js +2 -3
  21. package/cjs/services/balance-service/helpers/subscribe/ton/utils.js +0 -3
  22. package/cjs/services/balance-service/index.js +103 -7
  23. package/cjs/services/balance-service/transfer/bitcoin-transfer.js +0 -1
  24. package/cjs/services/balance-service/transfer/cardano-transfer.js +1 -2
  25. package/cjs/services/balance-service/transfer/smart-contract.js +0 -1
  26. package/cjs/services/balance-service/transfer/token.js +0 -2
  27. package/cjs/services/balance-service/transfer/ton-transfer.js +0 -1
  28. package/cjs/services/balance-service/transfer/xcm/snowBridge.js +0 -1
  29. package/cjs/services/chain-service/handler/CardanoApi.js +3 -1
  30. package/cjs/services/chain-service/handler/SubstrateApi.js +0 -2
  31. package/cjs/services/chain-service/handler/light-client/index.js +1 -2
  32. package/cjs/services/chain-service/health-check/index.js +0 -1
  33. package/cjs/services/chain-service/health-check/utils/new-utils/chain-asset-validate.js +0 -1
  34. package/cjs/services/chain-service/index.js +18 -26
  35. package/cjs/services/chain-service/utils/index.js +21 -25
  36. package/cjs/services/earning-service/handlers/base.js +32 -0
  37. package/cjs/services/earning-service/handlers/lending/base.js +0 -2
  38. package/cjs/services/earning-service/handlers/liquid-staking/acala.js +0 -1
  39. package/cjs/services/earning-service/handlers/liquid-staking/base.js +0 -2
  40. package/cjs/services/earning-service/handlers/liquid-staking/bifrost.js +0 -2
  41. package/cjs/services/earning-service/handlers/liquid-staking/parallel.js +0 -1
  42. package/cjs/services/earning-service/handlers/native-staking/astar.js +0 -2
  43. package/cjs/services/earning-service/handlers/native-staking/dtao.js +43 -2
  44. package/cjs/services/earning-service/handlers/native-staking/energy.js +0 -1
  45. package/cjs/services/earning-service/handlers/native-staking/mythos.js +0 -2
  46. package/cjs/services/earning-service/handlers/native-staking/para-chain.js +0 -2
  47. package/cjs/services/earning-service/handlers/native-staking/relay-chain.js +8 -9
  48. package/cjs/services/earning-service/handlers/special.js +7 -0
  49. package/cjs/services/history-service/subsquid-multi-chain-history.js +0 -1
  50. package/cjs/services/keyring-service/context/handlers/Derive.js +1 -1
  51. package/cjs/services/keyring-service/context/handlers/Migration.js +11 -9
  52. package/cjs/services/keyring-service/context/handlers/Mnemonic.js +18 -13
  53. package/cjs/services/keyring-service/context/state.js +21 -3
  54. package/cjs/services/keyring-service/utils.js +12 -2
  55. package/cjs/services/migration-service/index.js +1 -2
  56. package/cjs/services/mint-campaign-service/campaigns/UnlockDotCampaign.js +0 -1
  57. package/cjs/services/nft-service/index.js +5 -0
  58. package/cjs/services/open-gov/handler.js +0 -2
  59. package/cjs/services/open-gov/interface.js +4 -1
  60. package/cjs/services/request-service/handler/BitcoinRequestHandler.js +1 -2
  61. package/cjs/services/request-service/handler/CardanoRequestHandler.js +0 -1
  62. package/cjs/services/request-service/handler/EvmRequestHandler.js +0 -1
  63. package/cjs/services/request-service/handler/TonRequestHandler.js +0 -1
  64. package/cjs/services/request-service/helper/index.js +1 -2
  65. package/cjs/services/storage-service/DatabaseService.js +0 -2
  66. package/cjs/services/storage-service/databases/index.js +2 -0
  67. package/cjs/services/swap-service/handler/asset-hub/handler.js +0 -1
  68. package/cjs/services/swap-service/handler/asset-hub/router.js +0 -1
  69. package/cjs/services/swap-service/handler/chainflip-handler.js +1 -4
  70. package/cjs/services/swap-service/handler/hydradx-handler.js +0 -1
  71. package/cjs/services/swap-service/handler/kyber-handler.js +0 -1
  72. package/cjs/services/swap-service/handler/optimex-handler.js +1 -2
  73. package/cjs/services/swap-service/handler/simpleswap-handler.js +1 -3
  74. package/cjs/services/swap-service/handler/uniswap-handler.js +0 -3
  75. package/cjs/services/transaction-service/event-parser/index.js +6 -6
  76. package/cjs/services/transaction-service/index.js +28 -28
  77. package/cjs/services/wallet-connect-service/index.js +21 -18
  78. package/cjs/services/wallet-connect-service/types.js +1 -1
  79. package/cjs/types/account/info/keyring.js +9 -1
  80. package/cjs/types/balance/index.js +5 -1
  81. package/cjs/types/swap/index.js +2 -1
  82. package/cjs/types/transaction/process.js +2 -0
  83. package/cjs/types/yield/actions/join/step.js +17 -1
  84. package/cjs/utils/account/common.js +0 -26
  85. package/cjs/utils/account/derive/info/solo.js +7 -4
  86. package/cjs/utils/account/derive/validate.js +1 -1
  87. package/cjs/utils/account/transform.js +5 -1
  88. package/cjs/utils/auth.js +1 -1
  89. package/cjs/utils/bitcoin/utxo-management.js +0 -1
  90. package/cjs/utils/environment.js +2 -1
  91. package/cjs/utils/fee/transfer.js +1 -2
  92. package/cjs/utils/index.js +1 -2
  93. package/constants/blocked-actions.js +3 -0
  94. package/core/logic-validation/swap.js +0 -3
  95. package/core/substrate/system-pallet.js +0 -2
  96. package/koni/api/nft/wasm_nft/index.js +0 -1
  97. package/koni/api/staking/bonding/astar.js +0 -2
  98. package/koni/api/staking/bonding/paraChain.js +0 -3
  99. package/koni/api/staking/bonding/relayChain.js +2 -4
  100. package/koni/api/staking/bonding/utils.js +0 -4
  101. package/koni/background/cron.js +0 -1
  102. package/koni/background/handlers/Extension.js +8 -11
  103. package/koni/background/handlers/State.js +41 -38
  104. package/koni/background/handlers/Tabs.js +9 -3
  105. package/package.json +19 -20
  106. package/packageInfo.js +1 -1
  107. package/page/substrate/PostMessageProvider.js +3 -0
  108. package/services/balance-service/helpers/subscribe/cardano/utils.js +0 -1
  109. package/services/balance-service/helpers/subscribe/substrate/gear.js +0 -2
  110. package/services/balance-service/helpers/subscribe/substrate/index.js +0 -1
  111. package/services/balance-service/helpers/subscribe/ton/utils.js +0 -3
  112. package/services/balance-service/index.d.ts +8 -0
  113. package/services/balance-service/index.js +105 -9
  114. package/services/balance-service/transfer/bitcoin-transfer.js +0 -1
  115. package/services/balance-service/transfer/smart-contract.js +0 -1
  116. package/services/balance-service/transfer/token.js +0 -2
  117. package/services/balance-service/transfer/ton-transfer.js +0 -1
  118. package/services/balance-service/transfer/xcm/snowBridge.js +0 -1
  119. package/services/chain-service/handler/CardanoApi.js +3 -1
  120. package/services/chain-service/handler/SubstrateApi.js +0 -2
  121. package/services/chain-service/health-check/index.js +0 -1
  122. package/services/chain-service/health-check/utils/new-utils/chain-asset-validate.js +0 -1
  123. package/services/chain-service/index.d.ts +0 -1
  124. package/services/chain-service/index.js +15 -23
  125. package/services/chain-service/utils/index.js +22 -26
  126. package/services/earning-service/handlers/base.js +32 -0
  127. package/services/earning-service/handlers/lending/base.js +0 -2
  128. package/services/earning-service/handlers/liquid-staking/acala.js +0 -1
  129. package/services/earning-service/handlers/liquid-staking/base.js +0 -2
  130. package/services/earning-service/handlers/liquid-staking/bifrost.js +0 -2
  131. package/services/earning-service/handlers/liquid-staking/parallel.js +0 -1
  132. package/services/earning-service/handlers/native-staking/astar.js +0 -2
  133. package/services/earning-service/handlers/native-staking/dtao.js +43 -0
  134. package/services/earning-service/handlers/native-staking/energy.js +0 -1
  135. package/services/earning-service/handlers/native-staking/mythos.js +0 -2
  136. package/services/earning-service/handlers/native-staking/para-chain.js +0 -2
  137. package/services/earning-service/handlers/native-staking/relay-chain.js +8 -9
  138. package/services/earning-service/handlers/special.js +7 -0
  139. package/services/history-service/subsquid-multi-chain-history.js +0 -1
  140. package/services/keyring-service/context/handlers/Derive.js +2 -2
  141. package/services/keyring-service/context/handlers/Migration.js +3 -1
  142. package/services/keyring-service/context/handlers/Mnemonic.d.ts +1 -1
  143. package/services/keyring-service/context/handlers/Mnemonic.js +16 -10
  144. package/services/keyring-service/context/state.d.ts +3 -0
  145. package/services/keyring-service/context/state.js +21 -3
  146. package/services/keyring-service/utils.d.ts +1 -0
  147. package/services/keyring-service/utils.js +9 -0
  148. package/services/mint-campaign-service/campaigns/UnlockDotCampaign.js +0 -1
  149. package/services/nft-service/index.js +6 -0
  150. package/services/open-gov/handler.js +0 -2
  151. package/services/open-gov/interface.js +4 -1
  152. package/services/request-service/handler/CardanoRequestHandler.js +0 -1
  153. package/services/request-service/handler/EvmRequestHandler.js +0 -1
  154. package/services/request-service/handler/TonRequestHandler.js +0 -1
  155. package/services/setting-service/constants.js +0 -1
  156. package/services/storage-service/DatabaseService.js +0 -2
  157. package/services/storage-service/databases/index.js +3 -0
  158. package/services/swap-service/handler/asset-hub/handler.js +0 -1
  159. package/services/swap-service/handler/asset-hub/router.js +0 -1
  160. package/services/swap-service/handler/chainflip-handler.js +0 -2
  161. package/services/swap-service/handler/hydradx-handler.js +0 -1
  162. package/services/swap-service/handler/kyber-handler.js +0 -1
  163. package/services/swap-service/handler/simpleswap-handler.js +0 -1
  164. package/services/swap-service/handler/uniswap-handler.js +0 -3
  165. package/services/transaction-service/event-parser/index.js +6 -6
  166. package/services/wallet-connect-service/index.js +21 -18
  167. package/services/wallet-connect-service/types.js +1 -1
  168. package/types/account/action/add/mnemonic.d.ts +3 -2
  169. package/types/account/info/keyring.js +9 -1
  170. package/types/balance/index.js +5 -1
  171. package/types/swap/index.js +2 -1
  172. package/types/transaction/process.js +3 -1
  173. package/types/yield/actions/join/step.js +17 -1
  174. package/utils/account/common.d.ts +0 -3
  175. package/utils/account/common.js +0 -24
  176. package/utils/account/derive/info/solo.js +8 -5
  177. package/utils/account/derive/validate.d.ts +2 -2
  178. package/utils/account/derive/validate.js +1 -1
  179. package/utils/account/transform.js +5 -1
  180. package/utils/auth.js +2 -2
  181. package/utils/bitcoin/utxo-management.js +0 -1
  182. package/utils/index.js +2 -5
@@ -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
  }
@@ -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'];
@@ -573,7 +570,6 @@ function _isTokenEvmSmartContract(tokenInfo) {
573
570
  function _isTokenTonSmartContract(tokenInfo) {
574
571
  return [_types._AssetType.TEP74].includes(tokenInfo.assetType); // add TEP-62 when supporting
575
572
  }
576
-
577
573
  function _isCIP26Token(tokenInfo) {
578
574
  return [_types._AssetType.CIP26].includes(tokenInfo.assetType);
579
575
  }
@@ -601,12 +597,12 @@ function _getXcmAssetType(tokenInfo) {
601
597
  return ((_tokenInfo$metadata9 = tokenInfo.metadata) === null || _tokenInfo$metadata9 === void 0 ? void 0 : _tokenInfo$metadata9.assetType) || '';
602
598
  }
603
599
  function _getXcmAssetId(tokenInfo) {
604
- var _tokenInfo$metadata10;
605
- 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';
606
602
  }
607
603
  function _getXcmAssetMultilocation(tokenInfo) {
608
- var _tokenInfo$metadata11;
609
- 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;
610
606
  }
611
607
  function _getXcmTransferType(originChainInfo, destinationChainInfo) {
612
608
  var _originChainInfo$subs, _destinationChainInfo;
@@ -616,12 +612,12 @@ function _isRelayChain(chainInfo) {
616
612
  return _isSubstrateRelayChain(chainInfo) || _isPureEvmChain(chainInfo);
617
613
  }
618
614
  function _isSubstrateRelayChain(chainInfo) {
619
- var _chainInfo$substrateI16;
620
- 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;
621
617
  }
622
618
  function _isSubstrateParaChain(chainInfo) {
623
- var _chainInfo$substrateI17;
624
- 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;
625
621
  }
626
622
  function _getEvmAbiExplorer(chainInfo) {
627
623
  var _chainInfo$evmInfo4;
@@ -675,8 +671,8 @@ function _getBlockExplorerFromChain(chainInfo) {
675
671
  var _chainInfo$tonInfo;
676
672
  blockExplorer = chainInfo === null || chainInfo === void 0 ? void 0 : (_chainInfo$tonInfo = chainInfo.tonInfo) === null || _chainInfo$tonInfo === void 0 ? void 0 : _chainInfo$tonInfo.blockExplorer;
677
673
  } else {
678
- var _chainInfo$substrateI18;
679
- 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;
680
676
  }
681
677
  if (!blockExplorer) {
682
678
  return undefined;
@@ -708,8 +704,8 @@ const _isAssetAutoEnable = chainAsset => {
708
704
  };
709
705
  exports._isAssetAutoEnable = _isAssetAutoEnable;
710
706
  function _getCrowdloanUrlFromChain(chainInfo) {
711
- var _chainInfo$substrateI19;
712
- 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) || '';
713
709
  }
714
710
  function _isCustomProvider(providerKey) {
715
711
  return providerKey.startsWith(_types2._CUSTOM_PREFIX);
@@ -747,8 +743,8 @@ function _isMantaZkAsset(chainAsset) {
747
743
  return _constants._MANTA_ZK_CHAIN_GROUP.includes(chainAsset.originChain) && chainAsset.symbol.startsWith(_constants._ZK_ASSET_PREFIX);
748
744
  }
749
745
  function _getChainExistentialDeposit(chainInfo) {
750
- var _chainInfo$substrateI20;
751
- 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';
752
748
  }
753
749
  function _getAssetExistentialDeposit(chainAsset) {
754
750
  return (chainAsset === null || chainAsset === void 0 ? void 0 : chainAsset.minAmount) || '0';
@@ -880,7 +876,7 @@ const _isChainInfoCompatibleWithAccountInfo = (chainInfo, accountInfo) => {
880
876
  type: accountType
881
877
  } = accountInfo;
882
878
  if (accountChainType === _types3.AccountChainType.SUBSTRATE) {
883
- return _isPureSubstrateChain(chainInfo) && _types4.SubstrateKeypairTypes.includes(accountType);
879
+ return _isPureSubstrateChain(chainInfo) && _types4.AllSubstrateKeypairTypes.includes(accountType);
884
880
  }
885
881
  if (accountChainType === _types3.AccountChainType.ETHEREUM) {
886
882
  if (accountSignMode === _types3.AccountSignMode.ECDSA_SUBSTRATE_LEDGER) {
@@ -141,6 +141,14 @@ class BasePoolHandler {
141
141
 
142
142
  /** Subscribe pool info */
143
143
 
144
+ /** Subscribe pool position */
145
+
146
+ /** Get pool reward */
147
+
148
+ /** Get pool reward history */
149
+
150
+ /** Get pool target */
151
+
144
152
  /* Subscribe data */
145
153
 
146
154
  /* Join action */
@@ -276,6 +284,24 @@ class BasePoolHandler {
276
284
 
277
285
  /** Validate param to join the pool */
278
286
 
287
+ /* Validate */
288
+
289
+ /* Submit */
290
+
291
+ /** Create `transaction` to join the pool step-by-step */
292
+
293
+ /* Submit */
294
+
295
+ /* Join action */
296
+
297
+ /* Leave action */
298
+
299
+ /** Validate param to leave the pool */
300
+
301
+ /** Create `transaction` to leave the pool normal (default unstake) */
302
+
303
+ /** Create `transaction` to leave the pool fast (swap token) */
304
+
279
305
  /** Create `transaction` to leave the pool */
280
306
  async handleYieldLeave(fastLeave, amount, address, selectedTarget, netuid, slippage) {
281
307
  if (fastLeave) {
@@ -291,6 +317,12 @@ class BasePoolHandler {
291
317
 
292
318
  /** Create `transaction` to withdraw unstaked amount */
293
319
 
320
+ /** Create `transaction` to cancel unstake */
321
+
322
+ /** Create `transaction` to claim reward */
323
+
324
+ /** Change earning validator */
325
+
294
326
  /** Check handler can handle slug */
295
327
  canHandleSlug(slug) {
296
328
  return this.slug === slug;
@@ -59,7 +59,6 @@ class BaseLendingPoolHandler extends _special.default {
59
59
  if (!(bnRemainingStake.isZero() || bnRemainingStake.gte(minStake))) {
60
60
  errors.push(new _TransactionError.TransactionError(_types.StakingTxErrorType.INVALID_ACTIVE_STAKE)); // TODO
61
61
  }
62
-
63
62
  if (poolPosition.unstakings.length > maxUnstakeRequest) {
64
63
  errors.push(new _TransactionError.TransactionError(_types.StakingTxErrorType.EXCEED_MAX_UNSTAKING, (0, _i18next.t)('bg.EARNING.services.service.earning.lending.maxUnstakeTimes', {
65
64
  replace: {
@@ -71,7 +70,6 @@ class BaseLendingPoolHandler extends _special.default {
71
70
  if (bnRemainingStake.lt(0)) {
72
71
  errors.push(new _TransactionError.TransactionError(_types.StakingTxErrorType.INVALID_ACTIVE_STAKE)); // TODO
73
72
  }
74
-
75
73
  return Promise.resolve(errors);
76
74
  }
77
75
 
@@ -257,7 +257,6 @@ class AcalaLiquidStakingPoolHandler extends _base.default {
257
257
  // Min target amount
258
258
  weightedMinAmount // should always set a min target to prevent unexpected result
259
259
  );
260
-
261
260
  return [_KoniTypes.ExtrinsicType.REDEEM_LDOT, extrinsic];
262
261
  }
263
262
  async handleYieldUnstake(amount, address, selectedTarget) {
@@ -76,7 +76,6 @@ class BaseLiquidStakingPoolHandler extends _special.default {
76
76
  if (!(bnRemainingStake.isZero() || bnRemainingStake.gte(minStake))) {
77
77
  errors.push(new _TransactionError.TransactionError(_types.StakingTxErrorType.INVALID_ACTIVE_STAKE)); // TODO
78
78
  }
79
-
80
79
  if (poolPosition.unstakings.length > maxUnstakeRequest) {
81
80
  errors.push(new _TransactionError.TransactionError(_types.StakingTxErrorType.EXCEED_MAX_UNSTAKING, (0, _i18next.t)('bg.EARNING.services.service.earning.liquidStaking.maxUnstakeTimes', {
82
81
  replace: {
@@ -88,7 +87,6 @@ class BaseLiquidStakingPoolHandler extends _special.default {
88
87
  if (bnRemainingStake.lt(_util.BN_ZERO)) {
89
88
  errors.push(new _TransactionError.TransactionError(_types.StakingTxErrorType.INVALID_ACTIVE_STAKE)); // TODO
90
89
  }
91
-
92
90
  return Promise.resolve(errors);
93
91
  }
94
92
 
@@ -161,7 +161,6 @@ class BifrostLiquidStakingPoolHandler extends _base.default {
161
161
 
162
162
  // const bnTotalBalance = bnActiveBalance.add(bnUnstakingBalance);
163
163
  }
164
-
165
164
  const unlockingMap = {};
166
165
 
167
166
  // TODO: review unstaking info vtokenMinting.userUnlockLedger
@@ -213,7 +212,6 @@ class BifrostLiquidStakingPoolHandler extends _base.default {
213
212
  });
214
213
  });
215
214
  }
216
-
217
215
  const activeToTotalBalance = exchangeRate.multipliedBy(bnActiveBalance.toString());
218
216
  const totalBalance = activeToTotalBalance.plus(unlockBalance.toString());
219
217
  const result = {
@@ -138,7 +138,6 @@ class ParallelLiquidStakingPoolHandler extends _base.default {
138
138
  });
139
139
  }
140
140
  }
141
-
142
141
  const result = {
143
142
  ...this.baseInfo,
144
143
  type: this.type,
@@ -200,7 +200,6 @@ class AstarNativeStakingPoolHandler extends _basePara.default {
200
200
  }
201
201
  }
202
202
  }
203
-
204
203
  const unlockingChunks = ledger.unbondingInfo.unlockingChunks;
205
204
  if (unlockingChunks.length > 0) {
206
205
  for (const unlockingChunk of unlockingChunks) {
@@ -219,7 +218,6 @@ class AstarNativeStakingPoolHandler extends _basePara.default {
219
218
  });
220
219
  }
221
220
  }
222
-
223
221
  if (nominationList.length === 0 && unstakingList.length === 0) {
224
222
  return {
225
223
  balanceToken: this.nativeToken.slug,