@subwallet/extension-base 1.0.4-1 → 1.0.5-2

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 (140) hide show
  1. package/background/KoniTypes.d.ts +14 -1
  2. package/background/KoniTypes.js +1 -0
  3. package/background/errors/TransactionError.js +4 -0
  4. package/background/handlers/State.d.ts +1 -1
  5. package/background/handlers/State.js +2 -8
  6. package/background/handlers/subscriptions.js +0 -1
  7. package/background/types.d.ts +2 -2
  8. package/cjs/background/KoniTypes.js +1 -0
  9. package/cjs/background/errors/TransactionError.js +4 -0
  10. package/cjs/background/handlers/State.js +1 -7
  11. package/cjs/background/handlers/subscriptions.js +0 -1
  12. package/cjs/constants/index.js +6 -6
  13. package/cjs/koni/api/coingecko.js +1 -4
  14. package/cjs/koni/api/dotsama/balance.js +7 -5
  15. package/cjs/koni/api/dotsama/crowdloan.js +0 -4
  16. package/cjs/koni/api/dotsama/transfer.js +0 -4
  17. package/cjs/koni/api/nft/acala_nft/index.js +1 -1
  18. package/cjs/koni/api/nft/bit.country/index.js +1 -1
  19. package/cjs/koni/api/nft/evm_nft/index.js +2 -3
  20. package/cjs/koni/api/nft/index.js +1 -2
  21. package/cjs/koni/api/nft/karura_nft/index.js +1 -1
  22. package/cjs/koni/api/nft/quartz_nft/index.js +1 -1
  23. package/cjs/koni/api/nft/rmrk_nft/index.js +2 -3
  24. package/cjs/koni/api/nft/statemine_nft/index.js +1 -1
  25. package/cjs/koni/api/nft/transfer.js +5 -5
  26. package/cjs/koni/api/nft/unique_nft/index.js +1 -1
  27. package/cjs/koni/api/nft/unique_nft/uniqueNftV2.js +0 -1
  28. package/cjs/koni/api/nft/wasm_nft/index.js +1 -2
  29. package/cjs/koni/api/staking/bonding/astar.js +28 -12
  30. package/cjs/koni/api/staking/bonding/utils.js +4 -0
  31. package/cjs/koni/api/staking/relayChain.js +0 -1
  32. package/cjs/koni/api/staking/subsquidStaking.js +0 -2
  33. package/cjs/koni/api/tokens/wasm/index.js +0 -1
  34. package/cjs/koni/api/tokens/wasm/utils.js +0 -1
  35. package/cjs/koni/api/xcm/index.js +0 -1
  36. package/cjs/koni/background/cron.js +0 -45
  37. package/cjs/koni/background/handlers/Extension.js +164 -134
  38. package/cjs/koni/background/handlers/State.js +18 -3
  39. package/cjs/koni/background/handlers/Tabs.js +34 -2
  40. package/cjs/koni/background/handlers/index.js +3 -2
  41. package/cjs/koni/background/subscription.js +0 -26
  42. package/cjs/packageInfo.js +1 -1
  43. package/cjs/services/chain-service/handler/EvmChainHandler.js +1 -1
  44. package/cjs/services/chain-service/handler/SubstrateChainHandler.js +2 -9
  45. package/cjs/services/chain-service/handler/light-client/index.js +9 -6
  46. package/cjs/services/chain-service/index.js +0 -2
  47. package/cjs/services/chain-service/utils.js +3 -0
  48. package/cjs/services/history-service/helpers/recoverHistoryStatus.js +227 -0
  49. package/cjs/services/history-service/index.js +68 -6
  50. package/cjs/services/history-service/subsquid-multi-chain-history.js +3 -2
  51. package/cjs/services/history-service/testChainMap.js +724 -0
  52. package/cjs/services/keyring-service/index.js +0 -2
  53. package/cjs/services/migration-service/index.js +0 -3
  54. package/cjs/services/migration-service/scripts/MigrateAutoLock.js +30 -0
  55. package/cjs/services/migration-service/scripts/MigrateChainPatrol.js +30 -0
  56. package/cjs/services/migration-service/scripts/index.js +5 -1
  57. package/cjs/services/notification-service/NotificationService.js +1 -1
  58. package/cjs/services/price-service/coingecko.js +1 -1
  59. package/cjs/services/price-service/index.js +0 -3
  60. package/cjs/services/request-service/handler/AuthRequestHandler.js +1 -1
  61. package/cjs/services/setting-service/constants.js +8 -2
  62. package/cjs/services/storage-service/DatabaseService.js +3 -45
  63. package/cjs/services/transaction-service/constants.js +11 -0
  64. package/cjs/services/transaction-service/index.js +60 -20
  65. package/cjs/services/transaction-service/utils.js +25 -14
  66. package/cjs/utils/index.js +3 -0
  67. package/constants/index.d.ts +1 -1
  68. package/constants/index.js +1 -1
  69. package/koni/api/coingecko.js +1 -4
  70. package/koni/api/dotsama/balance.js +7 -5
  71. package/koni/api/dotsama/crowdloan.js +0 -4
  72. package/koni/api/dotsama/transfer.js +0 -4
  73. package/koni/api/nft/acala_nft/index.js +1 -1
  74. package/koni/api/nft/bit.country/index.js +1 -1
  75. package/koni/api/nft/evm_nft/index.js +2 -3
  76. package/koni/api/nft/index.js +1 -2
  77. package/koni/api/nft/karura_nft/index.js +1 -1
  78. package/koni/api/nft/quartz_nft/index.js +1 -1
  79. package/koni/api/nft/rmrk_nft/index.js +2 -3
  80. package/koni/api/nft/statemine_nft/index.js +1 -1
  81. package/koni/api/nft/transfer.js +5 -5
  82. package/koni/api/nft/unique_nft/index.js +1 -1
  83. package/koni/api/nft/unique_nft/uniqueNftV2.js +0 -1
  84. package/koni/api/nft/wasm_nft/index.js +1 -2
  85. package/koni/api/staking/bonding/astar.d.ts +2 -1
  86. package/koni/api/staking/bonding/astar.js +27 -12
  87. package/koni/api/staking/bonding/utils.js +4 -0
  88. package/koni/api/staking/relayChain.js +0 -1
  89. package/koni/api/staking/subsquidStaking.js +0 -2
  90. package/koni/api/tokens/wasm/index.js +0 -1
  91. package/koni/api/tokens/wasm/utils.js +0 -1
  92. package/koni/api/xcm/index.js +0 -1
  93. package/koni/background/cron.js +0 -45
  94. package/koni/background/handlers/Extension.d.ts +2 -0
  95. package/koni/background/handlers/Extension.js +79 -51
  96. package/koni/background/handlers/State.d.ts +3 -1
  97. package/koni/background/handlers/State.js +18 -3
  98. package/koni/background/handlers/Tabs.d.ts +1 -0
  99. package/koni/background/handlers/Tabs.js +32 -1
  100. package/koni/background/handlers/index.js +3 -2
  101. package/koni/background/subscription.d.ts +0 -1
  102. package/koni/background/subscription.js +0 -26
  103. package/package.json +55 -34
  104. package/packageInfo.js +1 -1
  105. package/services/chain-service/handler/EvmChainHandler.js +1 -1
  106. package/services/chain-service/handler/SubstrateChainHandler.js +2 -9
  107. package/services/chain-service/handler/light-client/index.js +8 -6
  108. package/services/chain-service/helper/api-helper/spec/acala.d.ts +3 -3
  109. package/services/chain-service/index.js +0 -2
  110. package/services/chain-service/utils.js +3 -0
  111. package/services/history-service/helpers/recoverHistoryStatus.d.ts +17 -0
  112. package/services/history-service/helpers/recoverHistoryStatus.js +214 -0
  113. package/services/history-service/index.d.ts +6 -0
  114. package/services/history-service/index.js +69 -7
  115. package/services/history-service/subsquid-multi-chain-history.js +3 -2
  116. package/services/history-service/testChainMap.d.ts +3 -0
  117. package/services/history-service/testChainMap.js +716 -0
  118. package/services/keyring-service/index.js +0 -2
  119. package/services/migration-service/index.js +0 -3
  120. package/services/migration-service/scripts/MigrateAutoLock.d.ts +4 -0
  121. package/services/migration-service/scripts/MigrateAutoLock.js +22 -0
  122. package/services/migration-service/scripts/MigrateChainPatrol.d.ts +4 -0
  123. package/services/migration-service/scripts/MigrateChainPatrol.js +22 -0
  124. package/services/migration-service/scripts/index.js +5 -1
  125. package/services/notification-service/NotificationService.js +1 -1
  126. package/services/price-service/coingecko.js +1 -1
  127. package/services/price-service/index.js +0 -3
  128. package/services/request-service/handler/AuthRequestHandler.js +1 -1
  129. package/services/setting-service/constants.d.ts +4 -2
  130. package/services/setting-service/constants.js +5 -1
  131. package/services/storage-service/DatabaseService.d.ts +1 -1
  132. package/services/storage-service/DatabaseService.js +3 -45
  133. package/services/transaction-service/constants.d.ts +1 -0
  134. package/services/transaction-service/constants.js +4 -0
  135. package/services/transaction-service/index.d.ts +1 -0
  136. package/services/transaction-service/index.js +61 -21
  137. package/services/transaction-service/types.d.ts +2 -0
  138. package/services/transaction-service/utils.d.ts +1 -1
  139. package/services/transaction-service/utils.js +24 -13
  140. package/utils/index.js +3 -0
@@ -290,11 +290,19 @@ export interface UiSettings {
290
290
  accountAllLogo: string;
291
291
  theme: ThemeNames;
292
292
  camera: boolean;
293
+ timeAutoLock: number;
294
+ enableChainPatrol: boolean;
293
295
  }
294
296
  export declare type RequestSettingsType = UiSettings;
295
297
  export declare type RequestCameraSettings = {
296
298
  camera: boolean;
297
299
  };
300
+ export declare type RequestChangeTimeAutoLock = {
301
+ autoLockTime: number;
302
+ };
303
+ export declare type RequestChangeEnableChainPatrol = {
304
+ enable: boolean;
305
+ };
298
306
  export interface RandomTestRequest {
299
307
  start: number;
300
308
  end: number;
@@ -411,6 +419,8 @@ export interface TransactionHistoryItem<ET extends ExtrinsicType = ExtrinsicType
411
419
  fee?: AmountData;
412
420
  explorerUrl?: string;
413
421
  additionalInfo?: TransactionAdditionalInfo<ET>;
422
+ startBlock?: number;
423
+ nonce?: number;
414
424
  }
415
425
  export interface SWError extends Error {
416
426
  code?: number;
@@ -434,6 +444,7 @@ export declare enum BasicTxErrorType {
434
444
  SEND_TRANSACTION_FAILED = "SEND_TRANSACTION_FAILED",
435
445
  INTERNAL_ERROR = "INTERNAL_ERROR",
436
446
  UNSUPPORTED = "UNSUPPORTED",
447
+ TIMEOUT = "TIMEOUT",
437
448
  NOT_ENOUGH_EXISTENTIAL_DEPOSIT = "NOT_ENOUGH_EXISTENTIAL_DEPOSIT"
438
449
  }
439
450
  export declare enum StakingTxErrorType {
@@ -1460,12 +1471,14 @@ export interface KoniRequestSignatures {
1460
1471
  'pri(accounts.subscribeAddresses)': [null, AddressBookInfo, AddressBookInfo];
1461
1472
  'pri(accounts.editContact)': [RequestEditContactAccount, boolean];
1462
1473
  'pri(accounts.deleteContact)': [RequestDeleteContactAccount, boolean];
1463
- 'pri(settings.changeBalancesVisibility)': [null, boolean, UiSettings];
1474
+ 'pri(settings.changeBalancesVisibility)': [null, boolean];
1464
1475
  'pri(settings.subscribe)': [null, UiSettings, UiSettings];
1465
1476
  'pri(settings.saveAccountAllLogo)': [string, boolean, UiSettings];
1466
1477
  'pri(settings.saveTheme)': [ThemeNames, boolean, UiSettings];
1467
1478
  'pri(settings.saveBrowserConfirmationType)': [BrowserConfirmationType, boolean, UiSettings];
1468
1479
  'pri(settings.saveCamera)': [RequestCameraSettings, boolean];
1480
+ 'pri(settings.saveAutoLockTime)': [RequestChangeTimeAutoLock, boolean];
1481
+ 'pri(settings.saveEnableChainPatrol)': [RequestChangeEnableChainPatrol, boolean];
1469
1482
  'pri(settings.getLogoMaps)': [null, AllLogoMap];
1470
1483
  'pri(transaction.history.getSubscription)': [null, TransactionHistoryItem[], TransactionHistoryItem[]];
1471
1484
  'pri(transfer.checkReferenceCount)': [RequestTransferCheckReferenceCount, boolean];
@@ -102,6 +102,7 @@ export let BasicTxErrorType;
102
102
  BasicTxErrorType["SEND_TRANSACTION_FAILED"] = "SEND_TRANSACTION_FAILED";
103
103
  BasicTxErrorType["INTERNAL_ERROR"] = "INTERNAL_ERROR";
104
104
  BasicTxErrorType["UNSUPPORTED"] = "UNSUPPORTED";
105
+ BasicTxErrorType["TIMEOUT"] = "TIMEOUT";
105
106
  BasicTxErrorType["NOT_ENOUGH_EXISTENTIAL_DEPOSIT"] = "NOT_ENOUGH_EXISTENTIAL_DEPOSIT";
106
107
  })(BasicTxErrorType || (BasicTxErrorType = {}));
107
108
  export let StakingTxErrorType;
@@ -50,6 +50,10 @@ const defaultErrorMap = {
50
50
  message: 'This transaction is not supported',
51
51
  code: undefined
52
52
  },
53
+ [BasicTxErrorType.TIMEOUT]: {
54
+ message: 'Transaction timeout',
55
+ code: undefined
56
+ },
53
57
  [StakingTxErrorType.NOT_ENOUGH_MIN_STAKE]: {
54
58
  message: 'Not enough min stake',
55
59
  code: undefined
@@ -83,7 +83,7 @@ export default class State {
83
83
  getMetaRequest(id: string): MetaRequest;
84
84
  getSignRequest(id: string): SignRequest;
85
85
  rpcListProviders(): Promise<ResponseRpcListProviders>;
86
- rpcSend(request: RequestRpcSend, port: chrome.runtime.Port): Promise<JsonRpcResponse>;
86
+ rpcSend(request: RequestRpcSend, port: chrome.runtime.Port): Promise<JsonRpcResponse<unknown>>;
87
87
  rpcStartProvider(key: string, port: chrome.runtime.Port): Promise<ProviderMeta>;
88
88
  rpcSubscribe({ method, params, type }: RequestRpcSubscribe, cb: ProviderInterfaceCallback, port: chrome.runtime.Port): Promise<number | string>;
89
89
  rpcSubscribeConnected(_request: null, cb: ProviderInterfaceCallback, port: chrome.runtime.Port): void;
@@ -1,7 +1,7 @@
1
1
  // Copyright 2019-2022 @polkadot/extension-bg authors & contributors
2
2
  // SPDX-License-Identifier: Apache-2.0
3
3
 
4
- import { DEFAULT_NOTIFICATION_TYPE, DEFAULT_THEME } from '@subwallet/extension-base/services/setting-service/constants';
4
+ import { DEFAULT_SETTING } from '@subwallet/extension-base/services/setting-service/constants';
5
5
  import SettingsStore from '@subwallet/extension-base/stores/Settings';
6
6
  import { getId } from '@subwallet/extension-base/utils/getId';
7
7
  import { addMetadata, knownMetadata } from '@subwallet/extension-chains';
@@ -156,13 +156,7 @@ export default class State {
156
156
  this.settingsStore.get('Settings', value => {
157
157
  if (!value) {
158
158
  update({
159
- // language: 'en',
160
- browserConfirmationType: DEFAULT_NOTIFICATION_TYPE,
161
- // isShowZeroBalance: true,
162
- isShowBalance: false,
163
- accountAllLogo: '',
164
- theme: DEFAULT_THEME,
165
- camera: false
159
+ ...DEFAULT_SETTING
166
160
  });
167
161
  } else {
168
162
  update(value);
@@ -22,7 +22,6 @@ export function isSubscriptionRunning(id) {
22
22
  // clear a previous subscriber
23
23
  export function unsubscribe(id) {
24
24
  if (subscriptions[id]) {
25
- console.log(`Unsubscribing from ${id}`);
26
25
  delete subscriptions[id];
27
26
  } else {
28
27
  console.error(`Unable to unsubscribe from ${id}`);
@@ -134,9 +134,9 @@ export interface RequestSignatures extends KoniRequestSignatures {
134
134
  'pub(metadata.provide)': [MetadataDef, boolean];
135
135
  'pub(phishing.redirectIfDenied)': [null, boolean];
136
136
  'pub(rpc.listProviders)': [void, ResponseRpcListProviders];
137
- 'pub(rpc.send)': [RequestRpcSend, JsonRpcResponse];
137
+ 'pub(rpc.send)': [RequestRpcSend, JsonRpcResponse<unknown>];
138
138
  'pub(rpc.startProvider)': [string, ProviderMeta];
139
- 'pub(rpc.subscribe)': [RequestRpcSubscribe, number, JsonRpcResponse];
139
+ 'pub(rpc.subscribe)': [RequestRpcSubscribe, number, JsonRpcResponse<unknown>];
140
140
  'pub(rpc.subscribeConnected)': [null, boolean, boolean];
141
141
  'pub(rpc.unsubscribe)': [RequestRpcUnsubscribe, boolean];
142
142
  }
@@ -107,6 +107,7 @@ exports.BasicTxErrorType = BasicTxErrorType;
107
107
  BasicTxErrorType["SEND_TRANSACTION_FAILED"] = "SEND_TRANSACTION_FAILED";
108
108
  BasicTxErrorType["INTERNAL_ERROR"] = "INTERNAL_ERROR";
109
109
  BasicTxErrorType["UNSUPPORTED"] = "UNSUPPORTED";
110
+ BasicTxErrorType["TIMEOUT"] = "TIMEOUT";
110
111
  BasicTxErrorType["NOT_ENOUGH_EXISTENTIAL_DEPOSIT"] = "NOT_ENOUGH_EXISTENTIAL_DEPOSIT";
111
112
  })(BasicTxErrorType || (exports.BasicTxErrorType = BasicTxErrorType = {}));
112
113
  let StakingTxErrorType;
@@ -55,6 +55,10 @@ const defaultErrorMap = {
55
55
  message: 'This transaction is not supported',
56
56
  code: undefined
57
57
  },
58
+ [_KoniTypes.BasicTxErrorType.TIMEOUT]: {
59
+ message: 'Transaction timeout',
60
+ code: undefined
61
+ },
58
62
  [_KoniTypes.StakingTxErrorType.NOT_ENOUGH_MIN_STAKE]: {
59
63
  message: 'Not enough min stake',
60
64
  code: undefined
@@ -181,13 +181,7 @@ class State {
181
181
  this.settingsStore.get('Settings', value => {
182
182
  if (!value) {
183
183
  update({
184
- // language: 'en',
185
- browserConfirmationType: _constants.DEFAULT_NOTIFICATION_TYPE,
186
- // isShowZeroBalance: true,
187
- isShowBalance: false,
188
- accountAllLogo: '',
189
- theme: _constants.DEFAULT_THEME,
190
- camera: false
184
+ ..._constants.DEFAULT_SETTING
191
185
  });
192
186
  } else {
193
187
  update(value);
@@ -30,7 +30,6 @@ function isSubscriptionRunning(id) {
30
30
  // clear a previous subscriber
31
31
  function unsubscribe(id) {
32
32
  if (subscriptions[id]) {
33
- console.log(`Unsubscribing from ${id}`);
34
33
  delete subscriptions[id];
35
34
  } else {
36
35
  console.error(`Unable to unsubscribe from ${id}`);
@@ -17,14 +17,14 @@ var _exportNames = {
17
17
  CRON_GET_API_MAP_STATUS: true,
18
18
  CRON_REFRESH_CHAIN_STAKING_METADATA: true,
19
19
  CRON_REFRESH_CHAIN_NOMINATOR_METADATA: true,
20
+ CRON_RECOVER_HISTORY_INTERVAL: true,
20
21
  ALL_ACCOUNT_KEY: true,
21
22
  ALL_NETWORK_KEY: true,
22
23
  ALL_GENESIS_HASH: true,
23
24
  IGNORE_GET_SUBSTRATE_FEATURES_LIST: true,
24
- IGNORE_QR_SIGNER: true,
25
- DEFAULT_TIME_AUTO_LOCK: true
25
+ IGNORE_QR_SIGNER: true
26
26
  };
27
- exports.SUB_TOKEN_REFRESH_BALANCE_INTERVAL = exports.IGNORE_QR_SIGNER = exports.IGNORE_GET_SUBSTRATE_FEATURES_LIST = exports.DEFAULT_TIME_AUTO_LOCK = exports.CRON_REFRESH_STAKING_REWARD_INTERVAL = exports.CRON_REFRESH_STAKING_REWARD_FAST_INTERVAL = exports.CRON_REFRESH_PRICE_INTERVAL = exports.CRON_REFRESH_NFT_INTERVAL = exports.CRON_REFRESH_HISTORY_INTERVAL = exports.CRON_REFRESH_CHAIN_STAKING_METADATA = exports.CRON_REFRESH_CHAIN_NOMINATOR_METADATA = exports.CRON_GET_API_MAP_STATUS = exports.CRON_AUTO_RECOVER_WEB3_INTERVAL = exports.CRON_AUTO_RECOVER_DOTSAMA_INTERVAL = exports.ASTAR_REFRESH_BALANCE_INTERVAL = exports.ALL_NETWORK_KEY = exports.ALL_GENESIS_HASH = exports.ALL_ACCOUNT_KEY = exports.ACALA_REFRESH_CROWDLOAN_INTERVAL = void 0;
27
+ exports.SUB_TOKEN_REFRESH_BALANCE_INTERVAL = exports.IGNORE_QR_SIGNER = exports.IGNORE_GET_SUBSTRATE_FEATURES_LIST = exports.CRON_REFRESH_STAKING_REWARD_INTERVAL = exports.CRON_REFRESH_STAKING_REWARD_FAST_INTERVAL = exports.CRON_REFRESH_PRICE_INTERVAL = exports.CRON_REFRESH_NFT_INTERVAL = exports.CRON_REFRESH_HISTORY_INTERVAL = exports.CRON_REFRESH_CHAIN_STAKING_METADATA = exports.CRON_REFRESH_CHAIN_NOMINATOR_METADATA = exports.CRON_RECOVER_HISTORY_INTERVAL = exports.CRON_GET_API_MAP_STATUS = exports.CRON_AUTO_RECOVER_WEB3_INTERVAL = exports.CRON_AUTO_RECOVER_DOTSAMA_INTERVAL = exports.ASTAR_REFRESH_BALANCE_INTERVAL = exports.ALL_NETWORK_KEY = exports.ALL_GENESIS_HASH = exports.ALL_ACCOUNT_KEY = exports.ACALA_REFRESH_CROWDLOAN_INTERVAL = void 0;
28
28
  var _staking = require("./staking");
29
29
  Object.keys(_staking).forEach(function (key) {
30
30
  if (key === "default" || key === "__esModule") return;
@@ -66,6 +66,8 @@ const CRON_REFRESH_CHAIN_STAKING_METADATA = 900000;
66
66
  exports.CRON_REFRESH_CHAIN_STAKING_METADATA = CRON_REFRESH_CHAIN_STAKING_METADATA;
67
67
  const CRON_REFRESH_CHAIN_NOMINATOR_METADATA = 1800000;
68
68
  exports.CRON_REFRESH_CHAIN_NOMINATOR_METADATA = CRON_REFRESH_CHAIN_NOMINATOR_METADATA;
69
+ const CRON_RECOVER_HISTORY_INTERVAL = 30000;
70
+ exports.CRON_RECOVER_HISTORY_INTERVAL = CRON_RECOVER_HISTORY_INTERVAL;
69
71
  const ALL_ACCOUNT_KEY = 'ALL';
70
72
  exports.ALL_ACCOUNT_KEY = ALL_ACCOUNT_KEY;
71
73
  const ALL_NETWORK_KEY = 'all';
@@ -75,6 +77,4 @@ exports.ALL_GENESIS_HASH = ALL_GENESIS_HASH;
75
77
  const IGNORE_GET_SUBSTRATE_FEATURES_LIST = ['astarEvm', 'ethereum', 'ethereum_goerli', 'binance', 'binance_test', 'boba_rinkeby', 'boba', 'bobabase', 'bobabeam'];
76
78
  exports.IGNORE_GET_SUBSTRATE_FEATURES_LIST = IGNORE_GET_SUBSTRATE_FEATURES_LIST;
77
79
  const IGNORE_QR_SIGNER = [];
78
- exports.IGNORE_QR_SIGNER = IGNORE_QR_SIGNER;
79
- const DEFAULT_TIME_AUTO_LOCK = 15 * 60 * 1000;
80
- exports.DEFAULT_TIME_AUTO_LOCK = DEFAULT_TIME_AUTO_LOCK;
80
+ exports.IGNORE_QR_SIGNER = IGNORE_QR_SIGNER;
@@ -15,9 +15,6 @@ const getTokenPrice = async function (priceIds) {
15
15
  // const inverseMap: Record<string, string> = {};
16
16
  const idStr = priceIds.join(',');
17
17
  const res = await _axios.default.get(`https://api.coingecko.com/api/v3/coins/markets?vs_currency=${currency}&per_page=1000&ids=${idStr}`);
18
- if (res.status !== 200) {
19
- console.warn('Failed to get token price');
20
- }
21
18
  const responseData = res.data;
22
19
  const priceMap = {};
23
20
  const price24hMap = {};
@@ -39,7 +36,7 @@ const getTokenPrice = async function (priceIds) {
39
36
  price24hMap
40
37
  };
41
38
  } catch (err) {
42
- console.error('Failed to get token price', err);
39
+ console.error(err);
43
40
  throw err;
44
41
  }
45
42
  };
@@ -119,11 +119,13 @@ async function subscribeWithSystemAccountPallet(addresses, chainInfo, networkAPI
119
119
  }
120
120
  }
121
121
  balances.forEach(balance => {
122
- var _balance$data, _balance$data$free, _balance$data2, _balance$data2$reserv, _balance$data3, _balance$data3$miscFr, _balance$data4, _balance$data4$feeFro;
122
+ var _balance$data, _balance$data$free, _balance$data2, _balance$data2$reserv, _balance$data3, _balance$data3$miscFr, _balance$data4, _balance$data4$frozen, _balance$data5, _balance$data5$feeFro;
123
123
  total = total.add(((_balance$data = balance.data) === null || _balance$data === void 0 ? void 0 : (_balance$data$free = _balance$data.free) === null || _balance$data$free === void 0 ? void 0 : _balance$data$free.toBn()) || new _util.BN(0)); // reserved is seperated
124
124
  reserved = reserved.add(((_balance$data2 = balance.data) === null || _balance$data2 === void 0 ? void 0 : (_balance$data2$reserv = _balance$data2.reserved) === null || _balance$data2$reserv === void 0 ? void 0 : _balance$data2$reserv.toBn()) || new _util.BN(0));
125
- miscFrozen = miscFrozen.add(((_balance$data3 = balance.data) === null || _balance$data3 === void 0 ? void 0 : (_balance$data3$miscFr = _balance$data3.miscFrozen) === null || _balance$data3$miscFr === void 0 ? void 0 : _balance$data3$miscFr.toBn()) || new _util.BN(0));
126
- feeFrozen = feeFrozen.add(((_balance$data4 = balance.data) === null || _balance$data4 === void 0 ? void 0 : (_balance$data4$feeFro = _balance$data4.feeFrozen) === null || _balance$data4$feeFro === void 0 ? void 0 : _balance$data4$feeFro.toBn()) || new _util.BN(0));
125
+ // @ts-ignore
126
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-call,@typescript-eslint/no-unsafe-member-access
127
+ miscFrozen = miscFrozen.add(((_balance$data3 = balance.data) === null || _balance$data3 === void 0 ? void 0 : (_balance$data3$miscFr = _balance$data3.miscFrozen) === null || _balance$data3$miscFr === void 0 ? void 0 : _balance$data3$miscFr.toBn()) || (balance === null || balance === void 0 ? void 0 : (_balance$data4 = balance.data) === null || _balance$data4 === void 0 ? void 0 : (_balance$data4$frozen = _balance$data4.frozen) === null || _balance$data4$frozen === void 0 ? void 0 : _balance$data4$frozen.toBn()) || new _util.BN(0)); // TODO: update frozen
128
+ feeFrozen = feeFrozen.add(((_balance$data5 = balance.data) === null || _balance$data5 === void 0 ? void 0 : (_balance$data5$feeFro = _balance$data5.feeFrozen) === null || _balance$data5$feeFro === void 0 ? void 0 : _balance$data5$feeFro.toBn()) || new _util.BN(0));
127
129
  });
128
130
  let locked = reserved.add(miscFrozen);
129
131
  total = total.add(reserved); // total = free + reserved
@@ -169,7 +171,7 @@ function subscribeERC20Interval(addresses, chain, evmApiMap, callBack) {
169
171
  state: _KoniTypes.APIItemState.READY
170
172
  });
171
173
  } catch (err) {
172
- console.log('There is a problem fetching ' + tokenInfo.slug + ' token balance', err);
174
+ console.log(tokenInfo.slug, err);
173
175
  }
174
176
  });
175
177
  };
@@ -208,7 +210,7 @@ function subscribePSP22Balance(addresses, chain, api, callBack) {
208
210
  state: _KoniTypes.APIItemState.READY
209
211
  });
210
212
  } catch (err) {
211
- console.warn('Problem fetching ' + tokenInfo.slug + ' PSP-22 token balance', err); // TODO: error createType
213
+ console.warn(tokenInfo.slug, err); // TODO: error createType
212
214
  }
213
215
  });
214
216
  };
@@ -46,10 +46,6 @@ const subscribeAcalaContributeInterval = (polkadotAddresses, paraState, callback
46
46
  let contribute = new _util.BN(0);
47
47
  resList.forEach(res => {
48
48
  var _res$data$data, _res$data$data$acala, _res$data$data$acala$;
49
- if (res.status !== 200) {
50
- console.warn('Failed to get Acala, Karura crowdloan contribute');
51
- }
52
-
53
49
  // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-argument
54
50
  contribute = contribute.add(new _util.BN(((_res$data$data = res.data.data) === null || _res$data$data === void 0 ? void 0 : (_res$data$data$acala = _res$data$data.acala) === null || _res$data$data$acala === void 0 ? void 0 : (_res$data$data$acala$ = _res$data$data$acala[0]) === null || _res$data$data$acala$ === void 0 ? void 0 : _res$data$data$acala$.totalDOTLocked) || '0'));
55
51
  });
@@ -94,7 +94,6 @@ async function checkSupportTransfer(networkKey, tokenInfo, substrateApiMap, chai
94
94
  return result;
95
95
  }
96
96
  const createTransferExtrinsic = async _ref => {
97
- var _transfer;
98
97
  let {
99
98
  from,
100
99
  networkKey,
@@ -151,9 +150,6 @@ const createTransferExtrinsic = async _ref => {
151
150
  transfer = api.tx.balances.transfer(to, new _util.BN(value));
152
151
  }
153
152
  }
154
-
155
- // eslint-disable-next-line @typescript-eslint/no-unsafe-call,@typescript-eslint/no-unsafe-member-access
156
- console.log('transfer extrinsic: ', (_transfer = transfer) === null || _transfer === void 0 ? void 0 : _transfer.toHex());
157
153
  return [transfer, transferAmount || value];
158
154
  };
159
155
  exports.createTransferExtrinsic = createTransferExtrinsic;
@@ -120,7 +120,7 @@ class AcalaNftApi extends _nft.BaseNftApi {
120
120
  }));
121
121
  params.cleanUpNfts(this.chain, address, collectionIds, nftIds);
122
122
  } catch (e) {
123
- console.error('Failed to fetch acala nft', e);
123
+ console.error(`${this.chain}`, e);
124
124
  }
125
125
  }
126
126
  async handleNfts(params) {
@@ -118,7 +118,7 @@ class BitCountryNftApi extends _nft.BaseNftApi {
118
118
  }));
119
119
  params.cleanUpNfts(this.chain, address, collectionIds, nftIds);
120
120
  } catch (e) {
121
- console.error('Failed to fetch bit.country nft', e);
121
+ console.error(`${this.chain}`, e);
122
122
  }
123
123
  }
124
124
  async handleNfts(params) {
@@ -113,7 +113,6 @@ class EvmNftApi extends _nft.BaseNftApi {
113
113
  const resp = await (0, _crossFetch.default)(detailUrl);
114
114
  const itemDetail = resp && resp.ok && (await resp.json());
115
115
  if (!itemDetail) {
116
- console.warn((resp === null || resp === void 0 ? void 0 : resp.statusText) || `Cannot fetch NFT id [${nftId}] from Web3.`);
117
116
  return;
118
117
  }
119
118
  const parsedItem = this.parseMetadata(itemDetail);
@@ -130,13 +129,13 @@ class EvmNftApi extends _nft.BaseNftApi {
130
129
  ownItem = true;
131
130
  }
132
131
  } catch (e) {
133
- console.error(`error parsing item for ${this.chain} nft`, e);
132
+ console.error(`${this.chain}`, e);
134
133
  }
135
134
  }
136
135
  }));
137
136
  nftOwnerMap[address] = nftIds;
138
137
  } catch (e) {
139
- console.error('EVM NFT error', e);
138
+ console.error(`${this.chain}`, e);
140
139
  }
141
140
  }));
142
141
  if (ownItem) {
@@ -126,10 +126,9 @@ class NftHandler {
126
126
  }
127
127
  });
128
128
  this.needSetupApi = false;
129
- // console.log(`${this.handlers.length} nft handlers connected`, this.handlers);
130
129
  }
131
130
  } catch (e) {
132
- console.error('error setting up nft handlers', e);
131
+ console.error(e);
133
132
  }
134
133
  }
135
134
  async handleNfts(nftContracts, updateItem, updateCollection, cleanUpNfts) {
@@ -126,7 +126,7 @@ class KaruraNftApi extends _nft.BaseNftApi {
126
126
  }));
127
127
  params.cleanUpNfts(this.chain, address, collectionIds, nftIds);
128
128
  } catch (e) {
129
- console.error('Failed to fetch karura nft', e);
129
+ console.error(`${this.chain}`, e);
130
130
  }
131
131
  }
132
132
  async handleNfts(params) {
@@ -188,7 +188,7 @@ class QuartzNftApi extends _nft.BaseNftApi {
188
188
  }
189
189
  }));
190
190
  } catch (e) {
191
- console.error('Failed to fetch quartz nft', e);
191
+ console.error(`${this.chain}`, e);
192
192
  }
193
193
  }
194
194
  async handleNfts(params) {
@@ -200,7 +200,6 @@ class RmrkNftApi extends _nft.BaseNftApi {
200
200
  return {};
201
201
  }
202
202
  } catch (e) {
203
- console.error('error fetching collection info', url);
204
203
  return {};
205
204
  }
206
205
  }));
@@ -227,7 +226,7 @@ class RmrkNftApi extends _nft.BaseNftApi {
227
226
  };
228
227
  }
229
228
  } catch (e) {
230
- console.error('error parsing JSON for RMRK ', item.url, e);
229
+ console.error(item.url, e);
231
230
  }
232
231
  }));
233
232
  allCollections.forEach(item => {
@@ -252,7 +251,7 @@ class RmrkNftApi extends _nft.BaseNftApi {
252
251
  const allNftIds = allNfts.map(nft => nft === null || nft === void 0 ? void 0 : nft.id);
253
252
  params.cleanUpNfts(this.chain, address, allCollectionIds, allNftIds);
254
253
  } catch (e) {
255
- console.error('Failed to fetch rmrk nft', e);
254
+ console.error(`${this.chain}`, e);
256
255
  }
257
256
  }
258
257
  async handleNfts(params) {
@@ -126,7 +126,7 @@ class StatemineNftApi extends _nft.BaseNftApi {
126
126
  }));
127
127
  params.cleanUpNfts(this.chain, address, collectionIds, nftIds);
128
128
  } catch (e) {
129
- console.error('Failed to fetch statemine nft', e);
129
+ console.error(`${this.chain}`, e);
130
130
  }
131
131
  }
132
132
  async handleNfts(params) {
@@ -24,7 +24,7 @@ function acalaGetExtrinsic(substrateApi, senderAddress, recipientAddress, params
24
24
  const collectionId = params.collectionId;
25
25
  return substrateApi.api.tx.nft.transfer(recipientAddress, [collectionId, itemId]);
26
26
  } catch (e) {
27
- console.error('error handling acala transfer nft', e);
27
+ console.error(e);
28
28
  return null;
29
29
  }
30
30
  }
@@ -37,7 +37,7 @@ function rmrkGetExtrinsic(substrateApi, senderAddress, recipientAddress, params)
37
37
  const parsedRemark = remark.concat(recipientAddress.replace(/\\s/g, ''));
38
38
  return substrateApi.api.tx.system.remark(parsedRemark);
39
39
  } catch (e) {
40
- console.error('error handling rmrk transfer nft', e);
40
+ console.error(e);
41
41
  return null;
42
42
  }
43
43
  }
@@ -49,7 +49,7 @@ function uniqueGetExtrinsic(substrateApi, senderAddress, recipientAddress, param
49
49
  Substrate: recipientAddress
50
50
  }, collectionId, itemId, 1);
51
51
  } catch (e) {
52
- console.error('error handling unique transfer nft', e);
52
+ console.error(e);
53
53
  return null;
54
54
  }
55
55
  }
@@ -61,7 +61,7 @@ function quartzGetExtrinsic(substrateApi, senderAddress, recipientAddress, param
61
61
  Substrate: recipientAddress
62
62
  }, collectionId, itemId, 1);
63
63
  } catch (e) {
64
- console.error('error handling quartz transfer nft', e);
64
+ console.error(e);
65
65
  return null;
66
66
  }
67
67
  }
@@ -71,7 +71,7 @@ function statemineGetExtrinsic(substrateApi, senderAddress, recipientAddress, pa
71
71
  const collectionId = params.collectionId;
72
72
  return substrateApi.api.tx.uniques.transfer(collectionId, itemId, recipientAddress);
73
73
  } catch (e) {
74
- console.error('error handling statemine transfer nft', e);
74
+ console.error(e);
75
75
  return null;
76
76
  }
77
77
  }
@@ -183,7 +183,7 @@ class UniqueNftApi extends _nft.BaseNftApi {
183
183
  }));
184
184
  params.cleanUpNfts(this.chain, address, collectionIds, allNftIds);
185
185
  } catch (e) {
186
- console.error('Failed to fetch unique nft', e);
186
+ console.error(`${this.chain}`, e);
187
187
  }
188
188
  }
189
189
  async handleNfts(params) {
@@ -53,7 +53,6 @@ class UniqueNftApiV2 extends _nft.BaseNftApi {
53
53
  const nfts = await this.getNftByAccount(address);
54
54
  allNfts = allNfts.concat(nfts);
55
55
  }));
56
- console.log('allNfts', allNfts);
57
56
  } catch (e) {
58
57
  console.error(`Failed to fetch ${this.chain} nft`, e);
59
58
  }
@@ -222,7 +222,6 @@ class WasmNftApi extends _nft.BaseNftApi {
222
222
  }
223
223
  }
224
224
  if (!itemDetail) {
225
- console.warn(`Cannot fetch NFT metadata [${tokenId}] from PSP-34 contract.`);
226
225
  return nftItem;
227
226
  }
228
227
  nftItem.name = itemDetail.name;
@@ -304,7 +303,7 @@ class WasmNftApi extends _nft.BaseNftApi {
304
303
 
305
304
  nftOwnerMap[address] = nftIds;
306
305
  } catch (e) {
307
- console.error(`error parsing item for ${this.chain} nft`, e);
306
+ console.error(`${this.chain}`, e);
308
307
  }
309
308
  }));
310
309
  if (isFeatured) {
@@ -10,6 +10,7 @@ exports.getAstarDappsInfo = getAstarDappsInfo;
10
10
  exports.getAstarNominatorMetadata = getAstarNominatorMetadata;
11
11
  exports.getAstarStakingMetadata = getAstarStakingMetadata;
12
12
  exports.getAstarUnbondingExtrinsic = getAstarUnbondingExtrinsic;
13
+ exports.getAstarWithdrawable = getAstarWithdrawable;
13
14
  exports.getAstarWithdrawalExtrinsic = getAstarWithdrawalExtrinsic;
14
15
  var _KoniTypes = require("@subwallet/extension-base/background/KoniTypes");
15
16
  var _utils = require("@subwallet/extension-base/koni/api/staking/bonding/utils");
@@ -109,17 +110,17 @@ async function getAstarNominatorMetadata(chainInfo, address, substrateApi) {
109
110
 
110
111
  const unlockingChunks = ledger.unbondingInfo.unlockingChunks;
111
112
  if (unlockingChunks.length > 0) {
112
- const nearestUnstaking = unlockingChunks[0]; // only handle 1 unstaking request at a time, might need to change
113
-
114
- const isClaimable = nearestUnstaking.unlockEra - parseInt(currentEra) <= 0;
115
- const remainingEra = nearestUnstaking.unlockEra - (parseInt(currentEra) + 1);
116
- const waitingTime = remainingEra * _constants._STAKING_ERA_LENGTH_MAP[chain];
117
- unstakingList.push({
118
- chain,
119
- status: isClaimable ? _KoniTypes.UnstakingStatus.CLAIMABLE : _KoniTypes.UnstakingStatus.UNLOCKING,
120
- claimable: nearestUnstaking.amount.toString(),
121
- waitingTime: waitingTime > 0 ? waitingTime : 0
122
- });
113
+ for (const unlockingChunk of unlockingChunks) {
114
+ const isClaimable = unlockingChunk.unlockEra - parseInt(currentEra) <= 0;
115
+ const remainingEra = unlockingChunk.unlockEra - (parseInt(currentEra) + 1);
116
+ const waitingTime = remainingEra * _constants._STAKING_ERA_LENGTH_MAP[chain];
117
+ unstakingList.push({
118
+ chain,
119
+ status: isClaimable ? _KoniTypes.UnstakingStatus.CLAIMABLE : _KoniTypes.UnstakingStatus.UNLOCKING,
120
+ claimable: unlockingChunk.amount.toString(),
121
+ waitingTime: waitingTime > 0 ? waitingTime : 0
122
+ });
123
+ }
123
124
  }
124
125
  if (nominationList.length === 0 && unstakingList.length === 0) {
125
126
  return {
@@ -260,6 +261,21 @@ async function getAstarClaimRewardExtrinsic(substrateApi, address) {
260
261
  transactions.push(tx);
261
262
  }
262
263
  }
263
- console.log('no of astar claim reward tx: ', transactions.length);
264
264
  return apiPromise.api.tx.utility.batch(transactions);
265
+ }
266
+ function getAstarWithdrawable(nominatorMetadata) {
267
+ const unstakingInfo = {
268
+ chain: nominatorMetadata.chain,
269
+ status: _KoniTypes.UnstakingStatus.CLAIMABLE,
270
+ claimable: '0',
271
+ waitingTime: 0
272
+ };
273
+ let bnWithdrawable = _util.BN_ZERO;
274
+ for (const unstaking of nominatorMetadata.unstakings) {
275
+ if (unstaking.status === _KoniTypes.UnstakingStatus.CLAIMABLE) {
276
+ bnWithdrawable = bnWithdrawable.add(new _util.BN(unstaking.claimable));
277
+ }
278
+ }
279
+ unstakingInfo.claimable = bnWithdrawable.toString();
280
+ return unstakingInfo;
265
281
  }
@@ -25,6 +25,7 @@ exports.parseIdentity = parseIdentity;
25
25
  exports.parsePoolStashAddress = parsePoolStashAddress;
26
26
  exports.transformPoolName = transformPoolName;
27
27
  var _KoniTypes = require("@subwallet/extension-base/background/KoniTypes");
28
+ var _astar = require("@subwallet/extension-base/koni/api/staking/bonding/astar");
28
29
  var _constants = require("@subwallet/extension-base/services/chain-service/constants");
29
30
  var _utils = require("@subwallet/extension-base/utils");
30
31
  var _util = require("@polkadot/util");
@@ -238,6 +239,9 @@ function isActionFromValidator(stakingType, chain) {
238
239
  function getWithdrawalInfo(nominatorMetadata) {
239
240
  const unstakings = nominatorMetadata.unstakings;
240
241
  let result;
242
+ if (_constants._STAKING_CHAIN_GROUP.astar.includes(nominatorMetadata.chain)) {
243
+ return (0, _astar.getAstarWithdrawable)(nominatorMetadata);
244
+ }
241
245
  for (const unstaking of unstakings) {
242
246
  if (unstaking.status === _KoniTypes.UnstakingStatus.CLAIMABLE) {
243
247
  result = unstaking; // only get the first withdrawal
@@ -164,7 +164,6 @@ async function getNominationPoolReward(addresses, chainInfoMap, substrateApiMap)
164
164
  }));
165
165
  }));
166
166
  } catch (e) {
167
- console.error('Error fetching unclaimed reward for nomination pool', e);
168
167
  return rewardList;
169
168
  }
170
169
  return rewardList;
@@ -83,7 +83,6 @@ const getSubsquidStaking = async (accounts, chain, chainInfoMap) => {
83
83
  }));
84
84
  return result;
85
85
  } catch (e) {
86
- console.error(`error getting ${chain} staking reward from subsquid`, e);
87
86
  return [];
88
87
  }
89
88
  };
@@ -101,7 +100,6 @@ const getAllSubsquidStaking = async (accounts, chainInfoMap) => {
101
100
  rewardList = rewardList.concat(rewardItems);
102
101
  }));
103
102
  } catch (e) {
104
- console.error('Error fetching staking reward from SubSquid', e);
105
103
  return rewardList;
106
104
  }
107
105
  return rewardList;
@@ -31,7 +31,6 @@ async function getPSP34TransferExtrinsic(networkKey, substrateApi, senderAddress
31
31
  gasLimit
32
32
  }, recipientAddress, onChainOption, {});
33
33
  } catch (e) {
34
- console.error('Error getting WASM NFT transfer extrinsic', e);
35
34
  return null;
36
35
  }
37
36
  }
@@ -16,7 +16,6 @@ const toContractAbiMessage = (contractPromise, message) => {
16
16
  if (!value) {
17
17
  const messages = contractPromise === null || contractPromise === void 0 ? void 0 : contractPromise.abi.messages.map(m => m.method).join(', ');
18
18
  const error = `"${message}" not found in metadata.spec.messages: [${messages}]`;
19
- console.error(error);
20
19
  return {
21
20
  ok: false,
22
21
  error
@@ -32,7 +32,6 @@ const createXcmExtrinsic = async _ref => {
32
32
  } else {
33
33
  extrinsic = (0, _xTokens.getExtrinsicByXtokensPallet)(originTokenInfo, originChainInfo, destinationChainInfo, recipient, sendingValue, api);
34
34
  }
35
- console.log('XCM extrinsic: ', extrinsic.toHex());
36
35
  return extrinsic;
37
36
  };
38
37
  exports.createXcmExtrinsic = createXcmExtrinsic;