@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
@@ -0,0 +1,27 @@
1
+ // Copyright 2019-2022 @subwallet/extension-base authors & contributors
2
+ // SPDX-License-Identifier: Apache-2.0
3
+
4
+ import BaseStore from "./BaseStore.js";
5
+ export default class GovLockedInfoStore extends BaseStore {
6
+ async getAll() {
7
+ return this.table.toArray();
8
+ }
9
+ async getByAddresses(addresses) {
10
+ if (addresses.length === 0) {
11
+ return this.getAll();
12
+ }
13
+ return this.table.where('address').anyOfIgnoreCase(addresses).toArray();
14
+ }
15
+ async getByAddressesAndChains(addresses, chains) {
16
+ return this.table.where('address').anyOfIgnoreCase(addresses).filter(item => chains.includes(item.chain)).toArray();
17
+ }
18
+ async upsertMany(infos) {
19
+ return this.table.bulkPut(infos);
20
+ }
21
+ removeByAddresses(addresses) {
22
+ return this.table.where('address').anyOf(addresses).delete();
23
+ }
24
+ removeByChains(chains) {
25
+ return this.table.where('chain').anyOf(chains).delete();
26
+ }
27
+ }
@@ -186,7 +186,6 @@ export class AssetHubSwapHandler {
186
186
  if (swap) {
187
187
  return this.swapBaseHandler.validateSwapOnlyProcess(params, 1); // todo: create interface for input request
188
188
  }
189
-
190
189
  if (swapXcm) {
191
190
  return this.swapBaseHandler.validateSwapXcmProcess(params, 1, 2);
192
191
  }
@@ -29,7 +29,6 @@ export class AssetHubRouter {
29
29
  // return [assetFrom, nativeToken, assetTo];
30
30
  // }
31
31
  }
32
-
33
32
  async earlyValidateSwapValidation(request) {
34
33
  const substrateApi = await this.substrateApi.isReady;
35
34
  const paths = this.buildPath(request.pair);
@@ -87,7 +87,6 @@ export class ChainflipSwapHandler {
87
87
  // address to which assets are refunded
88
88
  retryDurationInBlocks: '100' // 100 blocks * 6 seconds = 10 minutes before deposits are refunded
89
89
  };
90
-
91
90
  const path = `/swap?${new URLSearchParams(depositParams).toString()}`;
92
91
  const response = await fetchFromProxyService(ProxyServiceRoute.CHAINFLIP, path, {
93
92
  method: 'GET'
@@ -255,7 +254,6 @@ export class ChainflipSwapHandler {
255
254
  if (swap) {
256
255
  return this.swapBaseHandler.validateSwapOnlyProcess(params, swapIndex); // todo: create interface for input request
257
256
  }
258
-
259
257
  if (swapXcm) {
260
258
  return [new TransactionError(BasicTxErrorType.INTERNAL_ERROR)];
261
259
  }
@@ -313,7 +313,6 @@ export class HydradxHandler {
313
313
  if (swap) {
314
314
  return this.swapBaseHandler.validateSwapOnlyProcess(params, 1); // todo: create interface for input request
315
315
  }
316
-
317
316
  if (swapXcm) {
318
317
  return this.swapBaseHandler.validateSwapXcmProcess(params, 1, 2);
319
318
  }
@@ -344,7 +344,6 @@ export class KyberHandler {
344
344
  if (swap) {
345
345
  return this.swapBaseHandler.validateSwapOnlyProcess(params, swapIndex); // todo: create interface for input request
346
346
  }
347
-
348
347
  if (swapXcm) {
349
348
  return [new TransactionError(BasicTxErrorType.INTERNAL_ERROR)];
350
349
  }
@@ -285,7 +285,6 @@ export class SimpleSwapHandler {
285
285
  if (swap) {
286
286
  return this.swapBaseHandler.validateSwapOnlyProcess(params, swapIndex); // todo: create interface for input request
287
287
  }
288
-
289
288
  if (swapXcm) {
290
289
  return [new TransactionError(BasicTxErrorType.INTERNAL_ERROR)];
291
290
  }
@@ -39,7 +39,6 @@ async function fetchCheckApproval(request) {
39
39
  if (!output) {
40
40
  return undefined; // todo: recheck
41
41
  }
42
-
43
42
  chainId = dutchQuote.orderInfo.chainId;
44
43
  tokenIn = dutchQuote.orderInfo.input.token;
45
44
  tokenOut = output.token;
@@ -60,7 +59,6 @@ async function fetchCheckApproval(request) {
60
59
  tokenOutChainId: chainId // swap in-chain
61
60
  })
62
61
  });
63
-
64
62
  return await response.json();
65
63
  }
66
64
  export class UniswapHandler {
@@ -802,7 +800,6 @@ export class UniswapHandler {
802
800
  if (swap) {
803
801
  return this.swapBaseHandler.validateSwapOnlyProcess(params, swapIndex); // todo: create interface for input request
804
802
  }
805
-
806
803
  if (swapXcm) {
807
804
  return this.swapBaseHandler.validateSwapXcmProcess(params, swapIndex, bridgeIndex);
808
805
  }
@@ -87,10 +87,10 @@ export function parseLiquidStakingEvents(historyItem, eventLogs, inputTokenInfo,
87
87
  if (record.event.section === section && record.event.method.toLowerCase() === eventMethod) {
88
88
  var _record$event$data$9;
89
89
  if ((_record$event$data$9 = record.event.data[2]) !== null && _record$event$data$9 !== void 0 && _record$event$data$9.toString()) {
90
- var _record$event$data$10;
90
+ var _record$event$data$0;
91
91
  // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
92
92
  historyItem.fee = {
93
- value: ((_record$event$data$10 = record.event.data[2]) === null || _record$event$data$10 === void 0 ? void 0 : _record$event$data$10.toString()) || '0',
93
+ value: ((_record$event$data$0 = record.event.data[2]) === null || _record$event$data$0 === void 0 ? void 0 : _record$event$data$0.toString()) || '0',
94
94
  symbol: nativeSymbol,
95
95
  decimals: nativeDecimals
96
96
  };
@@ -109,12 +109,12 @@ export function parseLiquidStakingFastUnstakeEvents(historyItem, eventLogs, chai
109
109
  const section = extrinsicType === ExtrinsicType.REDEEM_QDOT ? 'tokens' : 'balances';
110
110
  const eventMethod = extrinsicType === ExtrinsicType.REDEEM_QDOT ? 'withdrawn' : 'withdraw';
111
111
  if (record.event.section === section && record.event.method.toLowerCase() === eventMethod) {
112
- var _record$event$data$11;
113
- if ((_record$event$data$11 = record.event.data[2]) !== null && _record$event$data$11 !== void 0 && _record$event$data$11.toString()) {
114
- var _record$event$data$12;
112
+ var _record$event$data$1;
113
+ if ((_record$event$data$1 = record.event.data[2]) !== null && _record$event$data$1 !== void 0 && _record$event$data$1.toString()) {
114
+ var _record$event$data$10;
115
115
  // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
116
116
  historyItem.fee = {
117
- value: ((_record$event$data$12 = record.event.data[2]) === null || _record$event$data$12 === void 0 ? void 0 : _record$event$data$12.toString()) || '0',
117
+ value: ((_record$event$data$10 = record.event.data[2]) === null || _record$event$data$10 === void 0 ? void 0 : _record$event$data$10.toString()) || '0',
118
118
  symbol: nativeSymbol,
119
119
  decimals: nativeDecimals
120
120
  };
@@ -61,6 +61,12 @@ const typeName = type => {
61
61
  return 'Withdraw pool';
62
62
  case ExtrinsicType.JOIN_YIELD_POOL:
63
63
  return 'Start earning';
64
+ case ExtrinsicType.GOV_VOTE:
65
+ return 'Vote';
66
+ case ExtrinsicType.GOV_UNVOTE:
67
+ return 'Remove vote';
68
+ case ExtrinsicType.GOV_UNLOCK_VOTE:
69
+ return 'Unlock votes';
64
70
  case ExtrinsicType.CHANGE_EARNING_VALIDATOR:
65
71
  return 'Change validator';
66
72
  case ExtrinsicType.UNKNOWN:
@@ -28,6 +28,7 @@ import EventEmitter from 'eventemitter3';
28
28
  import { t } from 'i18next';
29
29
  import { BehaviorSubject, interval as rxjsInterval, map as rxjsMap } from 'rxjs';
30
30
  import { hexToU8a, isHex } from '@polkadot/util';
31
+ import { GovVoteType } from "../open-gov/interface.js";
31
32
  export default class TransactionService {
32
33
  watchTransactionSubscribes = {};
33
34
  aliveProcessMap = new Map();
@@ -1071,6 +1072,48 @@ export default class TransactionService {
1071
1072
  historyItem.additionalInfo = data;
1072
1073
  break;
1073
1074
  }
1075
+ case ExtrinsicType.GOV_VOTE:
1076
+ {
1077
+ const data = parseTransactionData(transaction.data);
1078
+ let totalAmount = new BigN(0);
1079
+ switch (data.type) {
1080
+ case GovVoteType.AYE:
1081
+ case GovVoteType.NAY:
1082
+ totalAmount = new BigN(data.amount || '0');
1083
+ break;
1084
+ case GovVoteType.SPLIT:
1085
+ totalAmount = new BigN(data.ayeAmount || '0').plus(data.nayAmount || '0');
1086
+ break;
1087
+ case GovVoteType.ABSTAIN:
1088
+ totalAmount = new BigN(data.ayeAmount || '0').plus(data.nayAmount || '0').plus(data.abstainAmount || '0');
1089
+ break;
1090
+ }
1091
+ historyItem.amount = {
1092
+ ...baseNativeAmount,
1093
+ value: totalAmount.toString()
1094
+ };
1095
+ historyItem.additionalInfo = data;
1096
+ break;
1097
+ }
1098
+ case ExtrinsicType.GOV_UNVOTE:
1099
+ {
1100
+ const data = parseTransactionData(transaction.data);
1101
+ historyItem.amount = {
1102
+ ...baseNativeAmount,
1103
+ value: new BigN(data.ayeAmount || '0').plus(data.nayAmount || '0').plus(data.abstainAmount || '0').plus(data.amount || 0).toString()
1104
+ };
1105
+ historyItem.additionalInfo = data;
1106
+ break;
1107
+ }
1108
+ case ExtrinsicType.GOV_UNLOCK_VOTE:
1109
+ {
1110
+ const data = parseTransactionData(transaction.data);
1111
+ historyItem.amount = {
1112
+ ...baseNativeAmount,
1113
+ value: data.amount
1114
+ };
1115
+ break;
1116
+ }
1074
1117
  case ExtrinsicType.UNKNOWN:
1075
1118
  break;
1076
1119
  }
@@ -138,6 +138,9 @@ export default class WalletConnectService {
138
138
  var _classPrivateFieldLoo;
139
139
  return ((_classPrivateFieldLoo = _classPrivateFieldLooseBase(this, _client)[_client]) === null || _classPrivateFieldLoo === void 0 ? void 0 : _classPrivateFieldLoo.session.values) || [];
140
140
  }
141
+
142
+ // Remove old listener
143
+
141
144
  getSession(topic) {
142
145
  var _classPrivateFieldLoo2;
143
146
  const session = (_classPrivateFieldLoo2 = _classPrivateFieldLooseBase(this, _client)[_client]) === null || _classPrivateFieldLoo2 === void 0 ? void 0 : _classPrivateFieldLoo2.session.get(topic);
@@ -191,7 +194,7 @@ export default class WalletConnectService {
191
194
  await ((_classPrivateFieldLoo7 = _classPrivateFieldLooseBase(this, _client)[_client]) === null || _classPrivateFieldLoo7 === void 0 ? void 0 : _classPrivateFieldLoo7.respond(response));
192
195
  }
193
196
  async resetWallet(resetAll) {
194
- var _classPrivateFieldLoo8, _classPrivateFieldLoo10, _classPrivateFieldLoo12;
197
+ var _classPrivateFieldLoo8, _classPrivateFieldLoo0, _classPrivateFieldLoo10;
195
198
  _classPrivateFieldLooseBase(this, _removeListener)[_removeListener]();
196
199
 
197
200
  // Disconnect session
@@ -209,11 +212,11 @@ export default class WalletConnectService {
209
212
  }
210
213
 
211
214
  // Disconnect pair
212
- const pairs = ((_classPrivateFieldLoo10 = _classPrivateFieldLooseBase(this, _client)[_client]) === null || _classPrivateFieldLoo10 === void 0 ? void 0 : _classPrivateFieldLoo10.pairing.values) || [];
215
+ const pairs = ((_classPrivateFieldLoo0 = _classPrivateFieldLooseBase(this, _client)[_client]) === null || _classPrivateFieldLoo0 === void 0 ? void 0 : _classPrivateFieldLoo0.pairing.values) || [];
213
216
  for (const pair of pairs) {
214
217
  try {
215
- var _classPrivateFieldLoo11;
216
- await ((_classPrivateFieldLoo11 = _classPrivateFieldLooseBase(this, _client)[_client]) === null || _classPrivateFieldLoo11 === void 0 ? void 0 : _classPrivateFieldLoo11.disconnect({
218
+ var _classPrivateFieldLoo1;
219
+ await ((_classPrivateFieldLoo1 = _classPrivateFieldLooseBase(this, _client)[_client]) === null || _classPrivateFieldLoo1 === void 0 ? void 0 : _classPrivateFieldLoo1.disconnect({
217
220
  topic: pair.topic,
218
221
  reason: getSdkError('USER_DISCONNECTED')
219
222
  }));
@@ -221,12 +224,12 @@ export default class WalletConnectService {
221
224
  console.error(e);
222
225
  }
223
226
  }
224
- const keys = (await ((_classPrivateFieldLoo12 = _classPrivateFieldLooseBase(this, _client)[_client]) === null || _classPrivateFieldLoo12 === void 0 ? void 0 : _classPrivateFieldLoo12.core.storage.getKeys())) || [];
227
+ const keys = (await ((_classPrivateFieldLoo10 = _classPrivateFieldLooseBase(this, _client)[_client]) === null || _classPrivateFieldLoo10 === void 0 ? void 0 : _classPrivateFieldLoo10.core.storage.getKeys())) || [];
225
228
  const deleteKeys = resetAll ? keys : keys.filter(key => key.startsWith('wc@'));
226
229
  for (const key of deleteKeys) {
227
230
  try {
228
- var _classPrivateFieldLoo13;
229
- await ((_classPrivateFieldLoo13 = _classPrivateFieldLooseBase(this, _client)[_client]) === null || _classPrivateFieldLoo13 === void 0 ? void 0 : _classPrivateFieldLoo13.core.storage.removeItem(key));
231
+ var _classPrivateFieldLoo11;
232
+ await ((_classPrivateFieldLoo11 = _classPrivateFieldLooseBase(this, _client)[_client]) === null || _classPrivateFieldLoo11 === void 0 ? void 0 : _classPrivateFieldLoo11.core.storage.removeItem(key));
230
233
  } catch (e) {
231
234
  console.error(e);
232
235
  }
@@ -235,8 +238,8 @@ export default class WalletConnectService {
235
238
  _classPrivateFieldLooseBase(this, _updateSessions)[_updateSessions]();
236
239
  }
237
240
  async disconnect(topic) {
238
- var _classPrivateFieldLoo14;
239
- await ((_classPrivateFieldLoo14 = _classPrivateFieldLooseBase(this, _client)[_client]) === null || _classPrivateFieldLoo14 === void 0 ? void 0 : _classPrivateFieldLoo14.disconnect({
241
+ var _classPrivateFieldLoo12;
242
+ await ((_classPrivateFieldLoo12 = _classPrivateFieldLooseBase(this, _client)[_client]) === null || _classPrivateFieldLoo12 === void 0 ? void 0 : _classPrivateFieldLoo12.disconnect({
240
243
  topic: topic,
241
244
  reason: getSdkError('USER_DISCONNECTED')
242
245
  }));
@@ -343,18 +346,18 @@ async function _onPingReply2({
343
346
  }
344
347
  }
345
348
  function _createListener2() {
346
- var _classPrivateFieldLoo15, _classPrivateFieldLoo16, _classPrivateFieldLoo17, _classPrivateFieldLoo18, _classPrivateFieldLoo19, _classPrivateFieldLoo20;
347
- (_classPrivateFieldLoo15 = _classPrivateFieldLooseBase(this, _client)[_client]) === null || _classPrivateFieldLoo15 === void 0 ? void 0 : _classPrivateFieldLoo15.on('session_proposal', _classPrivateFieldLooseBase(this, _onSessionProposal)[_onSessionProposal].bind(this));
348
- (_classPrivateFieldLoo16 = _classPrivateFieldLooseBase(this, _client)[_client]) === null || _classPrivateFieldLoo16 === void 0 ? void 0 : _classPrivateFieldLoo16.on('session_request', _classPrivateFieldLooseBase(this, _onSessionRequest)[_onSessionRequest].bind(this));
349
- (_classPrivateFieldLoo17 = _classPrivateFieldLooseBase(this, _client)[_client]) === null || _classPrivateFieldLoo17 === void 0 ? void 0 : _classPrivateFieldLoo17.on('session_ping', _classPrivateFieldLooseBase(this, _onPingReply)[_onPingReply].bind(this));
350
- (_classPrivateFieldLoo18 = _classPrivateFieldLooseBase(this, _client)[_client]) === null || _classPrivateFieldLoo18 === void 0 ? void 0 : _classPrivateFieldLoo18.on('session_event', data => console.log('event', data));
351
- (_classPrivateFieldLoo19 = _classPrivateFieldLooseBase(this, _client)[_client]) === null || _classPrivateFieldLoo19 === void 0 ? void 0 : _classPrivateFieldLoo19.on('session_update', data => console.log('update', data));
352
- (_classPrivateFieldLoo20 = _classPrivateFieldLooseBase(this, _client)[_client]) === null || _classPrivateFieldLoo20 === void 0 ? void 0 : _classPrivateFieldLoo20.on('session_delete', _classPrivateFieldLooseBase(this, _updateSessions)[_updateSessions].bind(this));
349
+ var _classPrivateFieldLoo13, _classPrivateFieldLoo14, _classPrivateFieldLoo15, _classPrivateFieldLoo16, _classPrivateFieldLoo17, _classPrivateFieldLoo18;
350
+ (_classPrivateFieldLoo13 = _classPrivateFieldLooseBase(this, _client)[_client]) === null || _classPrivateFieldLoo13 === void 0 ? void 0 : _classPrivateFieldLoo13.on('session_proposal', _classPrivateFieldLooseBase(this, _onSessionProposal)[_onSessionProposal].bind(this));
351
+ (_classPrivateFieldLoo14 = _classPrivateFieldLooseBase(this, _client)[_client]) === null || _classPrivateFieldLoo14 === void 0 ? void 0 : _classPrivateFieldLoo14.on('session_request', _classPrivateFieldLooseBase(this, _onSessionRequest)[_onSessionRequest].bind(this));
352
+ (_classPrivateFieldLoo15 = _classPrivateFieldLooseBase(this, _client)[_client]) === null || _classPrivateFieldLoo15 === void 0 ? void 0 : _classPrivateFieldLoo15.on('session_ping', _classPrivateFieldLooseBase(this, _onPingReply)[_onPingReply].bind(this));
353
+ (_classPrivateFieldLoo16 = _classPrivateFieldLooseBase(this, _client)[_client]) === null || _classPrivateFieldLoo16 === void 0 ? void 0 : _classPrivateFieldLoo16.on('session_event', data => console.log('event', data));
354
+ (_classPrivateFieldLoo17 = _classPrivateFieldLooseBase(this, _client)[_client]) === null || _classPrivateFieldLoo17 === void 0 ? void 0 : _classPrivateFieldLoo17.on('session_update', data => console.log('update', data));
355
+ (_classPrivateFieldLoo18 = _classPrivateFieldLooseBase(this, _client)[_client]) === null || _classPrivateFieldLoo18 === void 0 ? void 0 : _classPrivateFieldLoo18.on('session_delete', _classPrivateFieldLooseBase(this, _updateSessions)[_updateSessions].bind(this));
353
356
  }
354
357
  function _removeListener2() {
355
358
  ALL_WALLET_CONNECT_EVENT.forEach(event => {
356
- var _classPrivateFieldLoo21;
357
- (_classPrivateFieldLoo21 = _classPrivateFieldLooseBase(this, _client)[_client]) === null || _classPrivateFieldLoo21 === void 0 ? void 0 : _classPrivateFieldLoo21.removeAllListeners(event);
359
+ var _classPrivateFieldLoo19;
360
+ (_classPrivateFieldLoo19 = _classPrivateFieldLooseBase(this, _client)[_client]) === null || _classPrivateFieldLoo19 === void 0 ? void 0 : _classPrivateFieldLoo19.removeAllListeners(event);
358
361
  });
359
362
  }
360
363
  function _checkClient2() {
@@ -17,4 +17,4 @@ export let POLKADOT_SIGNING_METHODS;
17
17
  (function (POLKADOT_SIGNING_METHODS) {
18
18
  POLKADOT_SIGNING_METHODS["POLKADOT_SIGN_TRANSACTION"] = "polkadot_signTransaction";
19
19
  POLKADOT_SIGNING_METHODS["POLKADOT_SIGN_MESSAGE"] = "polkadot_signMessage";
20
- })(POLKADOT_SIGNING_METHODS || (POLKADOT_SIGNING_METHODS = {}));
20
+ })(POLKADOT_SIGNING_METHODS || (POLKADOT_SIGNING_METHODS = {})); // payload and address
@@ -1,6 +1,6 @@
1
1
  import { SeedLengths } from '@subwallet/extension-base/background/types';
2
2
  import { KeypairType } from '@subwallet/keyring/types';
3
- export declare type MnemonicType = 'general' | 'ton';
3
+ export declare type MnemonicType = 'general' | 'trust-wallet' | 'ton';
4
4
  /**
5
5
  * @interface RequestMnemonicCreateV2
6
6
  * @description Represents a request to create a new mnemonic phrase.
@@ -36,6 +36,7 @@ export interface ResponseMnemonicCreateV2 {
36
36
  */
37
37
  export interface RequestMnemonicValidateV2 {
38
38
  mnemonic: string;
39
+ mnemonicType: MnemonicType;
39
40
  }
40
41
  /**
41
42
  * @interface ResponseMnemonicValidateV2
@@ -67,7 +68,7 @@ export interface RequestAccountCreateSuriV2 {
67
68
  name: string;
68
69
  password?: string;
69
70
  suri: string;
70
- type?: KeypairType;
71
+ types: KeypairType[];
71
72
  isAllowed: boolean;
72
73
  }
73
74
  /**
@@ -95,4 +95,12 @@ export let AccountActions;
95
95
  AccountActions["EXPORT_JSON"] = "EXPORT_JSON";
96
96
  AccountActions["EXPORT_QR"] = "EXPORT_QR";
97
97
  AccountActions["TON_CHANGE_WALLET_CONTRACT_VERSION"] = "TON_CHANGE_WALLET_CONTRACT_VERSION";
98
- })(AccountActions || (AccountActions = {}));
98
+ })(AccountActions || (AccountActions = {}));
99
+ /**
100
+ * @interface AccountJson
101
+ * @extends AbstractAddressJson
102
+ * @extends AccountMetadataData
103
+ * @extends AccountActionData
104
+ * @prop {boolean} [isSubWallet] - Import from SubWallet
105
+ * @prop {boolean} [pendingMigrate] - Pending migrate password
106
+ * */
@@ -18,4 +18,8 @@ export let BalanceType;
18
18
  BalanceType["TOTAL"] = "total";
19
19
  BalanceType["TOTAL_MINUS_RESERVED"] = "totalMinusReserved";
20
20
  BalanceType["KEEP_ALIVE"] = "keepAlive";
21
- })(BalanceType || (BalanceType = {}));
21
+ })(BalanceType || (BalanceType = {}));
22
+ /** Balance info of all tokens on an address */
23
+ // Key is tokenSlug
24
+ /** Balance info of all addresses */
25
+ // Key is address
@@ -50,7 +50,8 @@ export let SwapFeeType;
50
50
  SwapFeeType["PLATFORM_FEE"] = "PLATFORM_FEE";
51
51
  SwapFeeType["NETWORK_FEE"] = "NETWORK_FEE";
52
52
  SwapFeeType["WALLET_FEE"] = "WALLET_FEE";
53
- })(SwapFeeType || (SwapFeeType = {}));
53
+ })(SwapFeeType || (SwapFeeType = {})); // todo: will be more
54
+ // parameters & responses
54
55
  export let DynamicSwapType;
55
56
  (function (DynamicSwapType) {
56
57
  DynamicSwapType["SWAP"] = "SWAP";
@@ -17,4 +17,6 @@ export let StepStatus;
17
17
  StepStatus["CANCELLED"] = "CANCELLED";
18
18
  StepStatus["TIMEOUT"] = "TIMEOUT";
19
19
  })(StepStatus || (StepStatus = {}));
20
- export const PROCESSING_STEP_STATUS = [StepStatus.PREPARE, StepStatus.SUBMITTING, StepStatus.PROCESSING];
20
+ export const PROCESSING_STEP_STATUS = [StepStatus.PREPARE, StepStatus.SUBMITTING, StepStatus.PROCESSING];
21
+
22
+ // temp for avoid conflict // todo: recheck to refactor BriefXcmStepV2 and BriefSwapStepV2 later;
@@ -44,4 +44,20 @@ export let YieldStepType;
44
44
  YieldStepType["MINT_SDOT"] = "MINT_SDOT";
45
45
  YieldStepType["MINT_STDOT"] = "MINT_STDOT";
46
46
  YieldStepType["TOKEN_APPROVAL"] = "TOKEN_APPROVAL";
47
- })(YieldStepType || (YieldStepType = {}));
47
+ })(YieldStepType || (YieldStepType = {}));
48
+ /**
49
+ * @interface YieldStepDetail
50
+ * @extends BaseYieldStepDetail
51
+ * @description Detail of a step
52
+ * @prop {number} id - Step's id
53
+ * */
54
+ /**
55
+ * @interface YieldTokenBaseInfo
56
+ * @prop {string} slug - Token's slug
57
+ * @prop {string} [amount] - Token's amount
58
+ * */
59
+ /** Base info and fee of a step */
60
+ /**
61
+ * @interface OptimalYieldPath
62
+ * @description Result after generate steps
63
+ * */
@@ -1,7 +1,6 @@
1
1
  import { _ChainInfo } from '@subwallet/chain-list/types';
2
2
  import { ChainType } from '@subwallet/extension-base/background/KoniTypes';
3
3
  import { AccountChainType, AccountJson } from '@subwallet/extension-base/types';
4
- import { KeypairType } from '@subwallet/keyring/types';
5
4
  export declare function isAccountAll(address?: string): boolean;
6
5
  export declare function reformatAddress(address: string, networkPrefix?: number, isEthereum?: boolean, ignoreError?: boolean): string;
7
6
  export declare const _reformatAddressWithChain: (address: string, chainInfo: _ChainInfo) => string;
@@ -15,8 +14,6 @@ interface ExtendAddressesByChainType extends AddressesByChainType {
15
14
  export declare function getAddressesByChainType(addresses: string[], chainTypes: ChainType[], chainInfo?: _ChainInfo): string[];
16
15
  export declare function getAddressesByChainTypeMap(addresses: string[], chainInfo?: _ChainInfo): ExtendAddressesByChainType;
17
16
  export declare function quickFormatAddressToCompare(address?: string): string | undefined;
18
- /** @deprecated */
19
- export declare const modifyAccountName: (type: KeypairType, name: string, modify: boolean) => string;
20
17
  /**
21
18
  * @function getAccountJsonByAddress
22
19
  * @desc Get account info by address
@@ -63,7 +63,6 @@ export function getAddressesByChainType(addresses, chainTypes, chainInfo) {
63
63
  return addressByChainTypeMap[chainType];
64
64
  }).flat(); // todo: recheck
65
65
  }
66
-
67
66
  export function getAddressesByChainTypeMap(addresses, chainInfo) {
68
67
  const addressByChainType = {
69
68
  substrate: [],
@@ -103,29 +102,6 @@ export function quickFormatAddressToCompare(address) {
103
102
  return reformatAddress(address, 42).toLowerCase();
104
103
  }
105
104
 
106
- /** @deprecated */
107
- export const modifyAccountName = (type, name, modify) => {
108
- if (!modify) {
109
- return name;
110
- }
111
- let network = '';
112
- switch (type) {
113
- case 'sr25519':
114
- case 'ed25519':
115
- case 'ecdsa':
116
- network = 'Substrate';
117
- break;
118
- case 'ethereum':
119
- network = 'EVM';
120
- break;
121
- case 'ton':
122
- case 'ton-native':
123
- network = 'Ton';
124
- break;
125
- }
126
- return network ? [name, network].join(' - ') : name;
127
- };
128
-
129
105
  /**
130
106
  * @function getAccountJsonByAddress
131
107
  * @desc Get account info by address
@@ -2,7 +2,7 @@
2
2
  // SPDX-License-Identifier: Apache-2.0
3
3
 
4
4
  import { getDerivePath } from '@subwallet/keyring';
5
- import { BitcoinKeypairTypes, EthereumKeypairTypes, SubstrateKeypairTypes } from '@subwallet/keyring/types';
5
+ import { BitcoinKeypairTypes, DefaultSubstrateKeypairTypes, EthereumKeypairTypes } from '@subwallet/keyring/types';
6
6
  import { keyring } from '@subwallet/ui-keyring';
7
7
  import { t } from 'i18next';
8
8
  import { assert } from '@polkadot/util';
@@ -53,7 +53,7 @@ export const parseUnifiedSuriToDerivationPath = (suri, type) => {
53
53
  return path.replace('{firstIndex}', firstIndex);
54
54
  }
55
55
  }
56
- if (SubstrateKeypairTypes.includes(type)) {
56
+ if (DefaultSubstrateKeypairTypes.includes(type)) {
57
57
  return suri;
58
58
  }
59
59
  }
@@ -112,7 +112,7 @@ export const getSoloDerivationInfo = (type, metadata = {}) => {
112
112
  };
113
113
  }
114
114
  } else {
115
- if (SubstrateKeypairTypes.includes(type)) {
115
+ if (DefaultSubstrateKeypairTypes.includes(type)) {
116
116
  const _type = type;
117
117
  const validateTypeFunc = _type === 'sr25519' ? validateSr25519DerivationPath : raw => validateOtherSubstrateDerivationPath(raw, _type);
118
118
  const validateTypeRs = validateTypeFunc(suri);
@@ -243,7 +243,7 @@ export const findSoloNextDerive = parentAddress => {
243
243
  break;
244
244
  }
245
245
  }
246
- const isSubstrate = SubstrateKeypairTypes.includes(parentPair.type);
246
+ const isSubstrate = DefaultSubstrateKeypairTypes.includes(parentPair.type);
247
247
  const indexes = currentDepth > 0 ? deriveInfo.autoIndexes || [] : [];
248
248
  indexes.push(index);
249
249
  const suri = isSubstrate ? [deriveInfo.suri || '', index].join('//') : '//'.concat(indexes.join('//'));
@@ -281,6 +281,9 @@ export const derivePair = (parentPair, name, suri, derivationPath) => {
281
281
  }
282
282
  };
283
283
  export const getSuri = (seed, type) => {
284
- const extraPath = type ? getDerivePath(type)(0) : '';
284
+ if (!type) {
285
+ return seed;
286
+ }
287
+ const extraPath = getDerivePath(type)(0);
285
288
  return seed + (extraPath ? '/' + extraPath : '');
286
289
  };
@@ -1,10 +1,10 @@
1
1
  import { DerivePathInfo, IDerivePathInfo_ } from '@subwallet/extension-base/types';
2
- import { KeypairType, SubstrateKeypairType } from '@subwallet/keyring/types';
2
+ import { DefaultSubstrateKeypairType, KeypairType, TrustWalletSubstrateKeypairType } from '@subwallet/keyring/types';
3
3
  export declare const validateUnifiedDerivationPath: (raw: string) => DerivePathInfo | undefined;
4
4
  export declare const validateEvmDerivationPath: (raw: string) => IDerivePathInfo_ | undefined;
5
5
  export declare const validateTonDerivationPath: (raw: string) => IDerivePathInfo_ | undefined;
6
6
  export declare const validateBitcoinDerivationPath: (raw: string) => IDerivePathInfo_ | undefined;
7
7
  export declare const validateCardanoDerivationPath: (raw: string) => IDerivePathInfo_ | undefined;
8
8
  export declare const validateSr25519DerivationPath: (raw: string) => IDerivePathInfo_ | undefined;
9
- export declare const validateOtherSubstrateDerivationPath: (raw: string, type: Exclude<SubstrateKeypairType, 'sr25519'>) => IDerivePathInfo_ | undefined;
9
+ export declare const validateOtherSubstrateDerivationPath: (raw: string, type: Exclude<DefaultSubstrateKeypairType | TrustWalletSubstrateKeypairType, 'sr25519'>) => IDerivePathInfo_ | undefined;
10
10
  export declare const validateDerivationPath: (raw: string, type?: KeypairType) => DerivePathInfo | undefined;
@@ -246,7 +246,7 @@ export const validateDerivationPath = (raw, type) => {
246
246
  return validateTonDerivationPath(raw);
247
247
  } else if (type === 'sr25519') {
248
248
  return validateSr25519DerivationPath(raw);
249
- } else if (type === 'ed25519' || type === 'ecdsa') {
249
+ } else if (type === 'ed25519' || type === 'ed25519-tw' || type === 'ecdsa') {
250
250
  return validateOtherSubstrateDerivationPath(raw, type);
251
251
  } else if (type === 'cardano') {
252
252
  return validateCardanoDerivationPath(raw);
@@ -105,7 +105,10 @@ export const getAccountActions = (signMode, networkType, type, _meta, parentAcco
105
105
  // QR
106
106
  if (signMode === AccountSignMode.PASSWORD) {
107
107
  if (networkType === AccountChainType.ETHEREUM || networkType === AccountChainType.SUBSTRATE) {
108
- result.push(AccountActions.EXPORT_QR);
108
+ if (type !== 'ed25519-tw') {
109
+ // todo: recheck if can export this account type
110
+ result.push(AccountActions.EXPORT_QR);
111
+ }
109
112
  }
110
113
  }
111
114
 
@@ -153,12 +156,13 @@ const EARN_STDOT_ACTIONS = [ExtrinsicType.MINT_STDOT, ExtrinsicType.REDEEM_STDOT
153
156
  const EARN_VMANTA_ACTIONS = [ExtrinsicType.MINT_VMANTA, ExtrinsicType.REDEEM_VMANTA, ExtrinsicType.UNSTAKE_VMANTA];
154
157
  const EVM_ACTIONS = [ExtrinsicType.TOKEN_SPENDING_APPROVAL, ExtrinsicType.EVM_EXECUTE];
155
158
  const CLAIM_AVAIL_BRIDGE = [ExtrinsicType.CLAIM_BRIDGE];
159
+ const OPEN_GOV_ACTIONS = [ExtrinsicType.GOV_VOTE, ExtrinsicType.GOV_UNVOTE, ExtrinsicType.GOV_UNLOCK_VOTE];
156
160
  const OTHER_ACTIONS = [ExtrinsicType.TRANSFER_XCM, ExtrinsicType.SEND_NFT, ExtrinsicType.SWAP, ExtrinsicType.CROWDLOAN];
157
161
  export const getAccountTransactionActions = (signMode, networkType, type, _meta, _specialNetwork) => {
158
162
  if ([AccountSignMode.PASSWORD, AccountSignMode.INJECTED].includes(signMode)) {
159
163
  switch (networkType) {
160
164
  case AccountChainType.SUBSTRATE:
161
- return [...BASE_TRANSFER_ACTIONS, ...NATIVE_STAKE_ACTIONS, ...POOL_STAKE_ACTIONS, ...EARN_VDOT_ACTIONS, ...EARN_LDOT_ACTIONS, ...EARN_SDOT_ACTIONS, ...EARN_QDOT_ACTIONS, ...EARN_VMANTA_ACTIONS, ...CLAIM_AVAIL_BRIDGE, ...OTHER_ACTIONS];
165
+ return [...BASE_TRANSFER_ACTIONS, ...NATIVE_STAKE_ACTIONS, ...POOL_STAKE_ACTIONS, ...EARN_VDOT_ACTIONS, ...EARN_LDOT_ACTIONS, ...EARN_SDOT_ACTIONS, ...EARN_QDOT_ACTIONS, ...EARN_VMANTA_ACTIONS, ...CLAIM_AVAIL_BRIDGE, ...OPEN_GOV_ACTIONS, ...OTHER_ACTIONS];
162
166
  case AccountChainType.ETHEREUM:
163
167
  return [...BASE_TRANSFER_ACTIONS, ...NATIVE_STAKE_ACTIONS, ...POOL_STAKE_ACTIONS, ...EARN_STDOT_ACTIONS, ...OTHER_ACTIONS, ...CLAIM_AVAIL_BRIDGE, ...EVM_ACTIONS];
164
168
  case AccountChainType.TON:
@@ -171,7 +175,7 @@ export const getAccountTransactionActions = (signMode, networkType, type, _meta,
171
175
  } else if (signMode === AccountSignMode.QR) {
172
176
  switch (networkType) {
173
177
  case AccountChainType.SUBSTRATE:
174
- return [...BASE_TRANSFER_ACTIONS, ...NATIVE_STAKE_ACTIONS, ...POOL_STAKE_ACTIONS, ...EARN_VDOT_ACTIONS, ...EARN_LDOT_ACTIONS, ...EARN_SDOT_ACTIONS, ...EARN_QDOT_ACTIONS, ...EARN_VMANTA_ACTIONS, ...CLAIM_AVAIL_BRIDGE, ...OTHER_ACTIONS];
178
+ return [...BASE_TRANSFER_ACTIONS, ...NATIVE_STAKE_ACTIONS, ...POOL_STAKE_ACTIONS, ...EARN_VDOT_ACTIONS, ...EARN_LDOT_ACTIONS, ...EARN_SDOT_ACTIONS, ...EARN_QDOT_ACTIONS, ...EARN_VMANTA_ACTIONS, ...CLAIM_AVAIL_BRIDGE, ...OPEN_GOV_ACTIONS, ...OTHER_ACTIONS];
175
179
  case AccountChainType.ETHEREUM:
176
180
  return [...(isProductionMode ? [] : [...BASE_TRANSFER_ACTIONS, ...NATIVE_STAKE_ACTIONS, ...POOL_STAKE_ACTIONS, ...EARN_STDOT_ACTIONS, ...CLAIM_AVAIL_BRIDGE, ...OTHER_ACTIONS, ...EVM_ACTIONS])];
177
181
  case AccountChainType.TON:
@@ -186,7 +190,7 @@ export const getAccountTransactionActions = (signMode, networkType, type, _meta,
186
190
  case AccountChainType.SUBSTRATE:
187
191
  return [...BASE_TRANSFER_ACTIONS, ...NATIVE_STAKE_ACTIONS, ...POOL_STAKE_ACTIONS, ...EARN_VDOT_ACTIONS, ...EARN_VMANTA_ACTIONS, ...EARN_LDOT_ACTIONS, ...EARN_SDOT_ACTIONS,
188
192
  // ...EARN_QDOT_ACTIONS,
189
- ...OTHER_ACTIONS];
193
+ ...OPEN_GOV_ACTIONS, ...OTHER_ACTIONS];
190
194
  case AccountChainType.ETHEREUM:
191
195
  return [...BASE_TRANSFER_ACTIONS, ...EARN_STDOT_ACTIONS, ...EVM_ACTIONS, ...CLAIM_AVAIL_BRIDGE, ExtrinsicType.STAKING_WITHDRAW,
192
196
  // For liquid staking
@@ -235,7 +239,7 @@ export const getAccountTransactionActions = (signMode, networkType, type, _meta,
235
239
  } else if (signMode === AccountSignMode.ECDSA_SUBSTRATE_LEDGER) {
236
240
  // Only for account substrate with ECDSA scheme format
237
241
  const result = [];
238
- result.push(...BASE_TRANSFER_ACTIONS, ...NATIVE_STAKE_ACTIONS, ...POOL_STAKE_ACTIONS, ExtrinsicType.TRANSFER_XCM, ExtrinsicType.SWAP, ExtrinsicType.CROWDLOAN);
242
+ result.push(...BASE_TRANSFER_ACTIONS, ...NATIVE_STAKE_ACTIONS, ...POOL_STAKE_ACTIONS, ...OPEN_GOV_ACTIONS, ExtrinsicType.TRANSFER_XCM, ExtrinsicType.SWAP, ExtrinsicType.CROWDLOAN);
239
243
  return result;
240
244
  }
241
245
  return [];
@@ -246,6 +250,7 @@ export const getAccountTokenTypes = type => {
246
250
  return [_AssetType.NATIVE, _AssetType.LOCAL, _AssetType.ERC20, _AssetType.ERC721];
247
251
  case 'sr25519':
248
252
  case 'ed25519':
253
+ case 'ed25519-tw':
249
254
  case 'ecdsa':
250
255
  return [_AssetType.NATIVE, _AssetType.LOCAL, _AssetType.PSP22, _AssetType.PSP34, _AssetType.GRC20, _AssetType.ERC721, _AssetType.VFT];
251
256
  case 'ton':
package/utils/auth.js CHANGED
@@ -2,12 +2,12 @@
2
2
  // SPDX-License-Identifier: Apache-2.0
3
3
 
4
4
  import { getKeypairTypeByAddress } from '@subwallet/keyring';
5
- import { BitcoinKeypairTypes, CardanoKeypairTypes, EthereumKeypairTypes, SubstrateKeypairTypes, TonKeypairTypes } from '@subwallet/keyring/types';
5
+ import { AllSubstrateKeypairTypes, BitcoinKeypairTypes, CardanoKeypairTypes, EthereumKeypairTypes, TonKeypairTypes } from '@subwallet/keyring/types';
6
6
  export const isAddressValidWithAuthType = (address, accountAuthTypes) => {
7
7
  const keypairType = getKeypairTypeByAddress(address);
8
8
  const validTypes = {
9
9
  evm: EthereumKeypairTypes,
10
- substrate: SubstrateKeypairTypes,
10
+ substrate: AllSubstrateKeypairTypes,
11
11
  ton: TonKeypairTypes,
12
12
  cardano: CardanoKeypairTypes,
13
13
  bitcoin: BitcoinKeypairTypes
@@ -234,7 +234,6 @@ export async function getRuneUtxos(bitcoinApi, address) {
234
234
  status: {
235
235
  confirmed: true // not use in filter out rune utxos
236
236
  },
237
-
238
237
  value: utxoValue
239
238
  };
240
239
  runeUtxos.push(item);