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

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 (169) hide show
  1. package/background/KoniTypes.d.ts +37 -16
  2. package/background/KoniTypes.js +2 -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 +2 -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/amplitude.js +9 -2
  30. package/cjs/koni/api/staking/bonding/astar.js +37 -13
  31. package/cjs/koni/api/staking/bonding/paraChain.js +10 -2
  32. package/cjs/koni/api/staking/bonding/relayChain.js +21 -4
  33. package/cjs/koni/api/staking/bonding/utils.js +4 -0
  34. package/cjs/koni/api/staking/relayChain.js +0 -1
  35. package/cjs/koni/api/staking/subsquidStaking.js +0 -2
  36. package/cjs/koni/api/tokens/wasm/index.js +0 -1
  37. package/cjs/koni/api/tokens/wasm/utils.js +0 -1
  38. package/cjs/koni/api/xcm/index.js +0 -1
  39. package/cjs/koni/background/cron.js +0 -45
  40. package/cjs/koni/background/handlers/Extension.js +204 -132
  41. package/cjs/koni/background/handlers/State.js +30 -3
  42. package/cjs/koni/background/handlers/Tabs.js +34 -2
  43. package/cjs/koni/background/handlers/index.js +3 -2
  44. package/cjs/koni/background/subscription.js +0 -26
  45. package/cjs/packageInfo.js +1 -1
  46. package/cjs/services/chain-service/constants.js +1 -1
  47. package/cjs/services/chain-service/handler/EvmChainHandler.js +1 -1
  48. package/cjs/services/chain-service/handler/SubstrateChainHandler.js +3 -10
  49. package/cjs/services/chain-service/handler/light-client/index.js +9 -6
  50. package/cjs/services/chain-service/index.js +75 -28
  51. package/cjs/services/chain-service/utils.js +3 -0
  52. package/cjs/services/history-service/helpers/recoverHistoryStatus.js +108 -0
  53. package/cjs/services/history-service/index.js +60 -5
  54. package/cjs/services/history-service/subsquid-multi-chain-history.js +3 -2
  55. package/cjs/services/history-service/testChainMap.js +724 -0
  56. package/cjs/services/keyring-service/index.js +9 -2
  57. package/cjs/services/migration-service/index.js +7 -7
  58. package/cjs/services/migration-service/scripts/MigrateAuthUrls.js +39 -0
  59. package/cjs/services/migration-service/scripts/MigrateAutoLock.js +30 -0
  60. package/cjs/services/migration-service/scripts/MigrateChainPatrol.js +30 -0
  61. package/cjs/services/migration-service/scripts/index.js +7 -1
  62. package/cjs/services/price-service/coingecko.js +1 -1
  63. package/cjs/services/price-service/index.js +0 -4
  64. package/cjs/services/request-service/handler/AuthRequestHandler.js +8 -1
  65. package/cjs/services/request-service/handler/EvmRequestHandler.js +21 -0
  66. package/cjs/services/request-service/handler/MetadataRequestHandler.js +6 -0
  67. package/cjs/services/request-service/handler/SubstrateRequestHandler.js +6 -0
  68. package/cjs/services/request-service/index.js +6 -0
  69. package/cjs/services/setting-service/SettingService.js +4 -9
  70. package/cjs/services/setting-service/constants.js +18 -2
  71. package/cjs/services/storage-service/DatabaseService.js +16 -44
  72. package/cjs/services/storage-service/databases/index.js +1 -1
  73. package/cjs/services/storage-service/db-stores/BaseStore.js +3 -0
  74. package/cjs/services/transaction-service/constants.js +11 -0
  75. package/cjs/services/transaction-service/index.js +31 -9
  76. package/cjs/services/transaction-service/utils.js +25 -14
  77. package/constants/index.d.ts +1 -1
  78. package/constants/index.js +1 -1
  79. package/koni/api/coingecko.js +1 -4
  80. package/koni/api/dotsama/balance.js +7 -5
  81. package/koni/api/dotsama/crowdloan.js +0 -4
  82. package/koni/api/dotsama/transfer.js +0 -4
  83. package/koni/api/nft/acala_nft/index.js +1 -1
  84. package/koni/api/nft/bit.country/index.js +1 -1
  85. package/koni/api/nft/evm_nft/index.js +2 -3
  86. package/koni/api/nft/index.js +1 -2
  87. package/koni/api/nft/karura_nft/index.js +1 -1
  88. package/koni/api/nft/quartz_nft/index.js +1 -1
  89. package/koni/api/nft/rmrk_nft/index.js +2 -3
  90. package/koni/api/nft/statemine_nft/index.js +1 -1
  91. package/koni/api/nft/transfer.js +5 -5
  92. package/koni/api/nft/unique_nft/index.js +1 -1
  93. package/koni/api/nft/unique_nft/uniqueNftV2.js +0 -1
  94. package/koni/api/nft/wasm_nft/index.js +1 -2
  95. package/koni/api/staking/bonding/amplitude.js +9 -2
  96. package/koni/api/staking/bonding/astar.d.ts +2 -1
  97. package/koni/api/staking/bonding/astar.js +36 -13
  98. package/koni/api/staking/bonding/paraChain.js +10 -2
  99. package/koni/api/staking/bonding/relayChain.js +21 -4
  100. package/koni/api/staking/bonding/utils.js +4 -0
  101. package/koni/api/staking/relayChain.js +0 -1
  102. package/koni/api/staking/subsquidStaking.js +0 -2
  103. package/koni/api/tokens/wasm/index.js +0 -1
  104. package/koni/api/tokens/wasm/utils.js +0 -1
  105. package/koni/api/xcm/index.js +0 -1
  106. package/koni/background/cron.js +0 -45
  107. package/koni/background/handlers/Extension.d.ts +3 -0
  108. package/koni/background/handlers/Extension.js +120 -51
  109. package/koni/background/handlers/State.d.ts +4 -1
  110. package/koni/background/handlers/State.js +30 -3
  111. package/koni/background/handlers/Tabs.d.ts +1 -0
  112. package/koni/background/handlers/Tabs.js +32 -1
  113. package/koni/background/handlers/index.js +3 -2
  114. package/koni/background/subscription.d.ts +0 -1
  115. package/koni/background/subscription.js +0 -26
  116. package/package.json +65 -39
  117. package/packageInfo.js +1 -1
  118. package/services/chain-service/constants.js +1 -1
  119. package/services/chain-service/handler/EvmChainHandler.js +1 -1
  120. package/services/chain-service/handler/SubstrateChainHandler.js +3 -10
  121. package/services/chain-service/handler/light-client/index.js +8 -6
  122. package/services/chain-service/helper/api-helper/spec/acala.d.ts +3 -3
  123. package/services/chain-service/index.d.ts +2 -1
  124. package/services/chain-service/index.js +75 -28
  125. package/services/chain-service/utils.js +3 -0
  126. package/services/history-service/helpers/recoverHistoryStatus.d.ts +11 -0
  127. package/services/history-service/helpers/recoverHistoryStatus.js +98 -0
  128. package/services/history-service/index.d.ts +6 -0
  129. package/services/history-service/index.js +61 -6
  130. package/services/history-service/subsquid-multi-chain-history.js +3 -2
  131. package/services/history-service/testChainMap.d.ts +3 -0
  132. package/services/history-service/testChainMap.js +716 -0
  133. package/services/keyring-service/index.d.ts +1 -0
  134. package/services/keyring-service/index.js +9 -2
  135. package/services/migration-service/index.js +7 -7
  136. package/services/migration-service/scripts/MigrateAuthUrls.d.ts +4 -0
  137. package/services/migration-service/scripts/MigrateAuthUrls.js +31 -0
  138. package/services/migration-service/scripts/MigrateAutoLock.d.ts +4 -0
  139. package/services/migration-service/scripts/MigrateAutoLock.js +22 -0
  140. package/services/migration-service/scripts/MigrateChainPatrol.d.ts +4 -0
  141. package/services/migration-service/scripts/MigrateChainPatrol.js +22 -0
  142. package/services/migration-service/scripts/index.js +7 -1
  143. package/services/price-service/coingecko.js +1 -1
  144. package/services/price-service/index.js +0 -4
  145. package/services/request-service/handler/AuthRequestHandler.d.ts +1 -0
  146. package/services/request-service/handler/AuthRequestHandler.js +8 -1
  147. package/services/request-service/handler/EvmRequestHandler.d.ts +1 -0
  148. package/services/request-service/handler/EvmRequestHandler.js +21 -0
  149. package/services/request-service/handler/MetadataRequestHandler.d.ts +1 -0
  150. package/services/request-service/handler/MetadataRequestHandler.js +6 -0
  151. package/services/request-service/handler/SubstrateRequestHandler.d.ts +1 -0
  152. package/services/request-service/handler/SubstrateRequestHandler.js +6 -0
  153. package/services/request-service/index.d.ts +1 -0
  154. package/services/request-service/index.js +6 -0
  155. package/services/setting-service/SettingService.d.ts +1 -0
  156. package/services/setting-service/SettingService.js +5 -10
  157. package/services/setting-service/constants.d.ts +4 -1
  158. package/services/setting-service/constants.js +14 -1
  159. package/services/storage-service/DatabaseService.d.ts +1 -0
  160. package/services/storage-service/DatabaseService.js +16 -44
  161. package/services/storage-service/databases/index.js +1 -1
  162. package/services/storage-service/db-stores/BaseStore.d.ts +1 -0
  163. package/services/storage-service/db-stores/BaseStore.js +3 -0
  164. package/services/transaction-service/constants.d.ts +1 -0
  165. package/services/transaction-service/constants.js +4 -0
  166. package/services/transaction-service/index.d.ts +2 -0
  167. package/services/transaction-service/index.js +32 -10
  168. package/services/transaction-service/utils.d.ts +1 -1
  169. package/services/transaction-service/utils.js +24 -13
@@ -4,6 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.KeyringService = void 0;
7
+ var _constants = require("@subwallet/extension-base/constants");
7
8
  var _stores = require("@subwallet/extension-base/stores");
8
9
  var _uiKeyring = require("@subwallet/ui-keyring");
9
10
  var _rxjs = require("rxjs");
@@ -46,7 +47,6 @@ class KeyringService {
46
47
 
47
48
  // Remove account
48
49
  removedAddresses.forEach(address => {
49
- console.log('account.remove', address);
50
50
  this.eventService.emit('account.remove', address);
51
51
  });
52
52
  } else if (beforeAddresses.length < afterAddresses.length) {
@@ -54,7 +54,6 @@ class KeyringService {
54
54
 
55
55
  // Add account
56
56
  addedAddresses.forEach(address => {
57
- console.log('account.add', address);
58
57
  this.eventService.emit('account.add', address);
59
58
  });
60
59
  } else {
@@ -95,5 +94,13 @@ class KeyringService {
95
94
  this.eventService.emit('account.updateCurrent', currentAccountData);
96
95
  this.currentAccountStore.set('CurrentAccountInfo', currentAccountData);
97
96
  }
97
+ resetWallet(resetAll) {
98
+ _uiKeyring.keyring.resetWallet(resetAll);
99
+ this.updateKeyringState();
100
+ this.currentAccountSubject.next({
101
+ address: _constants.ALL_ACCOUNT_KEY,
102
+ currentGenesisHash: null
103
+ });
104
+ }
98
105
  }
99
106
  exports.KeyringService = KeyringService;
@@ -17,10 +17,12 @@ class MigrationService {
17
17
  this.logger = (0, _util.logger)('Migration');
18
18
  }
19
19
  async run() {
20
- this.logger.log('Migrating...');
21
20
  const keys = Object.keys(_scripts.default).sort((a, b) => a.localeCompare(b));
22
- try {
23
- for (let i = 0; i < keys.length; i++) {
21
+
22
+ // Await timeout 2s
23
+ await new Promise(resolve => setTimeout(resolve, 2000));
24
+ for (let i = 0; i < keys.length; i++) {
25
+ try {
24
26
  const JobClass = _scripts.default[keys[i]];
25
27
  const key = keys[i];
26
28
  const name = JobClass.name;
@@ -29,7 +31,6 @@ class MigrationService {
29
31
  key
30
32
  }).first();
31
33
  if (!check || key.startsWith(_scripts.EVERYTIME)) {
32
- this.logger.log('Running script: ', JobClass.name);
33
34
  const job = new JobClass(this.state);
34
35
  await job.run();
35
36
  await this.state.dbService.stores.migration.table.put({
@@ -38,11 +39,10 @@ class MigrationService {
38
39
  timestamp: new Date().getTime()
39
40
  });
40
41
  }
42
+ } catch (error) {
43
+ this.logger.error('Migration error: ', _scripts.default[keys[i]].name, error);
41
44
  }
42
- } catch (error) {
43
- this.logger.error('Migration error: ', error);
44
45
  }
45
- this.logger.log('Migration done.');
46
46
  }
47
47
  }
48
48
  exports.default = MigrationService;
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ var _Base = _interopRequireDefault(require("@subwallet/extension-base/services/migration-service/Base"));
9
+ // Copyright 2019-2022 @subwallet/extension-koni authors & contributors
10
+ // SPDX-License-Identifier: Apache-2.0
11
+
12
+ class MigrateSettings extends _Base.default {
13
+ async run() {
14
+ try {
15
+ return new Promise(resolve => {
16
+ this.state.getAuthorize(value => {
17
+ if (value) {
18
+ const key = 'app.stellaswap.com';
19
+ const stellaSwap = value[key];
20
+ if (stellaSwap) {
21
+ stellaSwap.currentEvmNetworkKey = 'moonbeam';
22
+ value[key] = stellaSwap;
23
+ this.state.setAuthorize(value, () => {
24
+ resolve();
25
+ });
26
+ } else {
27
+ resolve();
28
+ }
29
+ } else {
30
+ resolve();
31
+ }
32
+ });
33
+ });
34
+ } catch (e) {
35
+ console.error(e);
36
+ }
37
+ }
38
+ }
39
+ exports.default = MigrateSettings;
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ var _Base = _interopRequireDefault(require("@subwallet/extension-base/services/migration-service/Base"));
9
+ var _constants = require("@subwallet/extension-base/services/setting-service/constants");
10
+ // Copyright 2019-2022 @subwallet/extension-koni authors & contributors
11
+ // SPDX-License-Identifier: Apache-2.0
12
+
13
+ class MigrateAutoLock extends _Base.default {
14
+ async run() {
15
+ try {
16
+ return new Promise(resolve => {
17
+ this.state.settingService.getSettings(currentSettings => {
18
+ this.state.settingService.setSettings({
19
+ ...currentSettings,
20
+ timeAutoLock: _constants.DEFAULT_AUTO_LOCK_TIME
21
+ });
22
+ resolve();
23
+ });
24
+ });
25
+ } catch (e) {
26
+ console.error(e);
27
+ }
28
+ }
29
+ }
30
+ exports.default = MigrateAutoLock;
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ var _Base = _interopRequireDefault(require("@subwallet/extension-base/services/migration-service/Base"));
9
+ var _constants = require("@subwallet/extension-base/services/setting-service/constants");
10
+ // Copyright 2019-2022 @subwallet/extension-koni authors & contributors
11
+ // SPDX-License-Identifier: Apache-2.0
12
+
13
+ class MigrateChainPatrol extends _Base.default {
14
+ async run() {
15
+ try {
16
+ return new Promise(resolve => {
17
+ this.state.settingService.getSettings(currentSettings => {
18
+ this.state.settingService.setSettings({
19
+ ...currentSettings,
20
+ enableChainPatrol: _constants.DEFAULT_CHAIN_PATROL_ENABLE
21
+ });
22
+ resolve();
23
+ });
24
+ });
25
+ } catch (e) {
26
+ console.error(e);
27
+ }
28
+ }
29
+ }
30
+ exports.default = MigrateChainPatrol;
@@ -6,6 +6,9 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.default = exports.EVERYTIME = void 0;
8
8
  var _AutoEnableChainsTokens = _interopRequireDefault(require("@subwallet/extension-base/services/migration-service/scripts/AutoEnableChainsTokens"));
9
+ var _MigrateAuthUrls = _interopRequireDefault(require("@subwallet/extension-base/services/migration-service/scripts/MigrateAuthUrls"));
10
+ var _MigrateAutoLock = _interopRequireDefault(require("@subwallet/extension-base/services/migration-service/scripts/MigrateAutoLock"));
11
+ var _MigrateChainPatrol = _interopRequireDefault(require("@subwallet/extension-base/services/migration-service/scripts/MigrateChainPatrol"));
9
12
  var _MigrateImportedToken = _interopRequireDefault(require("@subwallet/extension-base/services/migration-service/scripts/MigrateImportedToken"));
10
13
  var _MigrateNetworkSettings = _interopRequireDefault(require("@subwallet/extension-base/services/migration-service/scripts/MigrateNetworkSettings"));
11
14
  var _MigrateSettings = _interopRequireDefault(require("@subwallet/extension-base/services/migration-service/scripts/MigrateSettings"));
@@ -20,7 +23,10 @@ var _default = {
20
23
  '1.0.1-20': _MigrateImportedToken.default,
21
24
  '1.0.1-30': _MigrateTransactionHistory.default,
22
25
  '1.0.1-40': _AutoEnableChainsTokens.default,
23
- '1.0.1-50': _MigrateSettings.default
26
+ '1.0.1-50': _MigrateSettings.default,
27
+ '1.0.1-60': _MigrateAuthUrls.default,
28
+ '1.0.3-01': _MigrateAutoLock.default,
29
+ '1.0.3-02': _MigrateChainPatrol.default
24
30
  // [`${EVERYTIME}-1`]: AutoEnableChainsTokens
25
31
  };
26
32
  exports.default = _default;
@@ -45,7 +45,7 @@ const getTokenPrice = async function (priceIds) {
45
45
  price24hMap
46
46
  };
47
47
  } catch (err) {
48
- console.error('Failed to get token price', err);
48
+ console.error(err);
49
49
  throw err;
50
50
  }
51
51
  };
@@ -40,7 +40,6 @@ class PriceService {
40
40
  }
41
41
  refreshPriceData(priceIds) {
42
42
  clearTimeout(this.refreshTimeout);
43
- console.log('Refresh Price Data');
44
43
  this.priceIds = priceIds || this.getPriceIds();
45
44
 
46
45
  // Update for tokens price
@@ -69,7 +68,6 @@ class PriceService {
69
68
  await this.eventService.waitAssetReady;
70
69
  this.status = _types.ServiceStatus.INITIALIZED;
71
70
  this.eventService.on('asset.updateState', eventHandler);
72
- this.eventService.on('asset.updateState', eventHandler);
73
71
  }
74
72
  async loadData() {
75
73
  const data = await this.dbService.getPriceStore();
@@ -80,7 +78,6 @@ class PriceService {
80
78
  }
81
79
  startPromiseHandler = (0, _promise.createPromiseHandler)();
82
80
  async start() {
83
- console.debug('Start price service');
84
81
  try {
85
82
  this.startPromiseHandler = (0, _promise.createPromiseHandler)();
86
83
  this.status = _types.ServiceStatus.STARTING;
@@ -97,7 +94,6 @@ class PriceService {
97
94
  }
98
95
  stopPromiseHandler = (0, _promise.createPromiseHandler)();
99
96
  async stop() {
100
- console.debug('Stop price service');
101
97
  try {
102
98
  this.status = _types.ServiceStatus.STOPPING;
103
99
  this.stopPromiseHandler = (0, _promise.createPromiseHandler)();
@@ -79,7 +79,7 @@ class AuthRequestHandler {
79
79
  update(this.authorizeCached);
80
80
  } else {
81
81
  this.authorizeStore.get('authUrls', data => {
82
- this.authorizeCached = data;
82
+ this.authorizeCached = data || {};
83
83
  update(this.authorizeCached);
84
84
  });
85
85
  }
@@ -298,5 +298,12 @@ class AuthRequestHandler {
298
298
  });
299
299
  });
300
300
  }
301
+ resetWallet() {
302
+ for (const request of Object.values(this.#authRequestsV2)) {
303
+ request.reject(new Error('Reset wallet'));
304
+ }
305
+ this.authSubjectV2.next([]);
306
+ this.setAuthorize({});
307
+ }
301
308
  }
302
309
  exports.default = AuthRequestHandler;
@@ -209,5 +209,26 @@ class EvmRequestHandler {
209
209
  }
210
210
  return true;
211
211
  }
212
+ resetWallet() {
213
+ const confirmations = this.confirmationsQueueSubject.getValue();
214
+ for (const [type, requests] of Object.entries(confirmations)) {
215
+ for (const confirmation of Object.values(requests)) {
216
+ const {
217
+ id
218
+ } = confirmation;
219
+ const {
220
+ resolver
221
+ } = this.confirmationsPromiseMap[id];
222
+ if (!resolver || !confirmation) {
223
+ console.error('Not found confirmation', type, id);
224
+ } else {
225
+ resolver.reject(new Error('Reset wallet'));
226
+ }
227
+ delete this.confirmationsPromiseMap[id];
228
+ delete confirmations[type][id];
229
+ }
230
+ }
231
+ this.confirmationsQueueSubject.next(confirmations);
232
+ }
212
233
  }
213
234
  exports.default = EvmRequestHandler;
@@ -81,5 +81,11 @@ class MetadataRequestHandler {
81
81
  this.#requestService.popupOpen();
82
82
  });
83
83
  }
84
+ resetWallet() {
85
+ for (const request of Object.values(this.#metaRequests)) {
86
+ request.reject(new Error('Reset wallet'));
87
+ }
88
+ this.metaSubject.next([]);
89
+ }
84
90
  }
85
91
  exports.default = MetadataRequestHandler;
@@ -101,5 +101,11 @@ class SubstrateRequestHandler {
101
101
  }
102
102
  });
103
103
  }
104
+ resetWallet() {
105
+ for (const request of Object.values(this.#substrateRequests)) {
106
+ request.reject(new Error('Reset wallet'));
107
+ }
108
+ this.signSubject.next([]);
109
+ }
104
110
  }
105
111
  exports.default = SubstrateRequestHandler;
@@ -166,5 +166,11 @@ class RequestService {
166
166
  get numRequests() {
167
167
  return this.numMetaRequests + this.numAuthRequests + this.numSubstrateRequests + this.numEvmRequests;
168
168
  }
169
+ resetWallet() {
170
+ this.#authRequestHandler.resetWallet();
171
+ this.#substrateRequestHandler.resetWallet();
172
+ this.#evmRequestHandler.resetWallet();
173
+ this.#metadataRequestHandler.resetWallet();
174
+ }
169
175
  }
170
176
  exports.default = RequestService;
@@ -18,15 +18,7 @@ class SettingService {
18
18
  getSettings(update) {
19
19
  this.settingsStore.get('Settings', value => {
20
20
  if (!value) {
21
- update({
22
- // language: 'en',
23
- browserConfirmationType: _constants.DEFAULT_NOTIFICATION_TYPE,
24
- // isShowZeroBalance: true,
25
- isShowBalance: false,
26
- accountAllLogo: '',
27
- theme: _constants.DEFAULT_THEME,
28
- camera: false
29
- });
21
+ update(_constants.DEFAULT_SETTING);
30
22
  } else {
31
23
  update(value);
32
24
  }
@@ -35,5 +27,8 @@ class SettingService {
35
27
  setSettings(data, callback) {
36
28
  this.settingsStore.set('Settings', data, callback);
37
29
  }
30
+ resetWallet() {
31
+ this.settingsStore.set('Settings', _constants.DEFAULT_SETTING);
32
+ }
38
33
  }
39
34
  exports.default = SettingService;
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.DEFAULT_THEME = exports.DEFAULT_NOTIFICATION_TYPE = void 0;
6
+ exports.DEFAULT_THEME = exports.DEFAULT_SETTING = exports.DEFAULT_NOTIFICATION_TYPE = exports.DEFAULT_CHAIN_PATROL_ENABLE = exports.DEFAULT_AUTO_LOCK_TIME = void 0;
7
7
  var _KoniTypes = require("@subwallet/extension-base/background/KoniTypes");
8
8
  // Copyright 2019-2022 @subwallet/extension-koni authors & contributors
9
9
  // SPDX-License-Identifier: Apache-2.0
@@ -11,4 +11,20 @@ var _KoniTypes = require("@subwallet/extension-base/background/KoniTypes");
11
11
  const DEFAULT_THEME = _KoniTypes.ThemeNames.DARK;
12
12
  exports.DEFAULT_THEME = DEFAULT_THEME;
13
13
  const DEFAULT_NOTIFICATION_TYPE = 'popup';
14
- exports.DEFAULT_NOTIFICATION_TYPE = DEFAULT_NOTIFICATION_TYPE;
14
+ exports.DEFAULT_NOTIFICATION_TYPE = DEFAULT_NOTIFICATION_TYPE;
15
+ const DEFAULT_AUTO_LOCK_TIME = 15;
16
+ exports.DEFAULT_AUTO_LOCK_TIME = DEFAULT_AUTO_LOCK_TIME;
17
+ const DEFAULT_CHAIN_PATROL_ENABLE = false;
18
+ exports.DEFAULT_CHAIN_PATROL_ENABLE = DEFAULT_CHAIN_PATROL_ENABLE;
19
+ const DEFAULT_SETTING = {
20
+ // language: 'en',
21
+ browserConfirmationType: DEFAULT_NOTIFICATION_TYPE,
22
+ // isShowZeroBalance: true,
23
+ isShowBalance: false,
24
+ accountAllLogo: '',
25
+ theme: DEFAULT_THEME,
26
+ camera: false,
27
+ timeAutoLock: DEFAULT_AUTO_LOCK_TIME,
28
+ enableChainPatrol: DEFAULT_CHAIN_PATROL_ENABLE
29
+ };
30
+ exports.DEFAULT_SETTING = DEFAULT_SETTING;
@@ -45,6 +45,7 @@ class DatabaseService {
45
45
  const rs = await this.stores.price.table.get('usd');
46
46
  return rs;
47
47
  } catch (e) {
48
+ this.logger.error(e);
48
49
  return undefined;
49
50
  }
50
51
  }
@@ -55,8 +56,6 @@ class DatabaseService {
55
56
  }
56
57
  async updateBalanceStore(address, item) {
57
58
  if (item.state === _KoniTypes.APIItemState.READY) {
58
- // this.logger.log(`Updating balance for [${item.tokenSlug}]`);
59
-
60
59
  return this.stores.balance.upsert({
61
60
  address,
62
61
  ...item
@@ -64,23 +63,18 @@ class DatabaseService {
64
63
  }
65
64
  }
66
65
  async removeFromBalanceStore(assets) {
67
- this.logger.log('Bulk removing AssetStore');
68
66
  return this.stores.balance.removeBySlugs(assets);
69
67
  }
70
68
 
71
69
  // Crowdloan
72
70
  async updateCrowdloanStore(chain, address, item) {
73
71
  if (item.state === _KoniTypes.APIItemState.READY && item.contribute !== '0') {
74
- // this.logger.log(`Updating crowdloan for [${chain}]`);
75
-
76
72
  return this.stores.crowdloan.upsert({
77
73
  chain,
78
74
  address,
79
75
  ...item
80
76
  });
81
77
  } else {
82
- // this.logger.debug(`Removing crowdloan for [${chain}]`);
83
-
84
78
  return this.stores.crowdloan.deleteByChainAndAddress(chain, address);
85
79
  }
86
80
  }
@@ -88,22 +82,16 @@ class DatabaseService {
88
82
  // Staking
89
83
  async updateStaking(chain, address, item) {
90
84
  if (item.state === _KoniTypes.APIItemState.READY) {
91
- // this.logger.log(`Updating staking for [${chain}]`);
92
-
93
85
  return this.stores.staking.upsert(item);
94
86
  }
95
87
  }
96
88
  async getStakings(addresses, chains) {
97
- // this.logger.log('Get Stakings: ', stakings);
98
-
99
89
  return this.stores.staking.getStakings(addresses, chains);
100
90
  }
101
91
  async getStakingsByChains(chains) {
102
92
  return this.stores.staking.getStakingsByChains(chains);
103
93
  }
104
94
  async getPooledStakings(addresses, chainHashes) {
105
- // this.logger.log('Get Pooled Stakings: ', stakings);
106
-
107
95
  return this.stores.staking.getPooledStakings(addresses, chainHashes);
108
96
  }
109
97
  subscribeStaking(addresses, chainList, callback) {
@@ -129,12 +117,10 @@ class DatabaseService {
129
117
  return this.stores.transaction.queryHistory(query);
130
118
  }
131
119
  async upsertHistory(histories) {
132
- // this.logger.log('Updating transaction histories');
133
120
  const cleanedHistory = histories.filter(x => x && x.address && x.chain && x.extrinsicHash);
134
121
  return this.stores.transaction.bulkUpsert(cleanedHistory);
135
122
  }
136
123
  async updateHistoryByNewExtrinsicHash(extrinsicHash, updateData) {
137
- // this.logger.log('Updating transaction histories');
138
124
  const canUpdate = updateData && extrinsicHash;
139
125
  if (!canUpdate) {
140
126
  return;
@@ -146,8 +132,6 @@ class DatabaseService {
146
132
 
147
133
  // NFT Collection
148
134
  async addNftCollection(collection) {
149
- // this.logger.log(`Updating NFT collection for [${collection.chain}]`);
150
-
151
135
  return this.stores.nftCollection.upsert(collection);
152
136
  }
153
137
  async deleteNftCollection(chain, collectionId) {
@@ -170,18 +154,12 @@ class DatabaseService {
170
154
  if (ownNothing) {
171
155
  return this.stores.nft.deleteNftsByChainAndOwner(chain, (0, _utils.reformatAddress)(owner, 42));
172
156
  }
173
- const result = await this.stores.nft.cleanUpNfts(chain, (0, _utils.reformatAddress)(owner, 42), collectionIds, nftIds);
174
- result > 0 && console.debug(`Cleaned up ${result} NFTs on chain ${chain} for owner ${(0, _utils.reformatAddress)(owner, 42)}`, collectionIds, nftIds);
175
- return result;
157
+ return this.stores.nft.cleanUpNfts(chain, (0, _utils.reformatAddress)(owner, 42), collectionIds, nftIds);
176
158
  }
177
159
  async getNft(addresses, chainHashes) {
178
- // this.logger.log('Get NFTs: ', nfts);
179
-
180
160
  return this.stores.nft.getNft(addresses, chainHashes);
181
161
  }
182
162
  async addNft(address, nft) {
183
- // this.logger.log(`Updating NFT for [${nft.chain}]`);
184
-
185
163
  return this.stores.nft.upsert({
186
164
  ...nft,
187
165
  address
@@ -191,54 +169,36 @@ class DatabaseService {
191
169
  return this.stores.nft.deleteNftItem(chain, addresses, nftItem);
192
170
  }
193
171
  removeNfts(chain, address, collectionId, nftIds) {
194
- // this.logger.log(`Remove NFTs [${nftIds.join(', ')}]`);
195
-
196
172
  return this.stores.nft.removeNfts(chain, address, collectionId, nftIds);
197
173
  }
198
174
 
199
175
  // Chain
200
176
  async updateChainStore(item) {
201
- // this.logger.log(`Updating storageInfo for chain [${item.slug}]`);
202
-
203
177
  return this.stores.chain.upsert(item);
204
178
  }
205
179
  async bulkUpdateChainStore(data) {
206
- // this.logger.log('Bulk updating ChainStore');
207
-
208
180
  return this.stores.chain.bulkUpsert(data);
209
181
  }
210
182
  async removeFromChainStore(chains) {
211
- // this.logger.log('Bulk removing ChainStore');
212
-
213
183
  return this.stores.chain.removeChains(chains);
214
184
  }
215
185
  async getAllChainStore() {
216
- // this.logger.log('Get all chains: ', allChains);
217
-
218
186
  return this.stores.chain.getAll();
219
187
  }
220
188
 
221
189
  // Asset
222
190
  async updateAssetStore(item) {
223
- // this.logger.log(`Updating storageInfo for chainAsset [${item.originChain}]`);
224
-
225
191
  return this.stores.asset.upsert(item);
226
192
  }
227
193
  async getAllAssetStore() {
228
- // this.logger.log('Get all stored assets: ', allAssets);
229
-
230
194
  return this.stores.asset.getAll();
231
195
  }
232
196
  async removeFromAssetStore(items) {
233
- // this.logger.log('Bulk removing AssetStore');
234
-
235
197
  return this.stores.asset.removeAssets(items);
236
198
  }
237
199
 
238
200
  // Staking
239
201
  async updateChainStakingMetadata(item) {
240
- // this.logger.log('Update ChainStakingMetadata: ', item.chain);
241
-
242
202
  return this.stores.chainStakingMetadata.upsert(item);
243
203
  }
244
204
  async getChainStakingMetadata() {
@@ -249,12 +209,24 @@ class DatabaseService {
249
209
  return this.stores.chainStakingMetadata.getByChainAndType(chain, type);
250
210
  }
251
211
  async updateNominatorMetadata(item) {
252
- // this.logger.log('Update NominatorMetadata: ', item.address, item.chain);
253
-
254
212
  return this.stores.nominatorMetadata.upsert(item);
255
213
  }
256
214
  async getNominatorMetadata() {
257
215
  return this.stores.nominatorMetadata.getAll();
258
216
  }
217
+ async resetWallet(resetAll) {
218
+ return new Promise((resolve, reject) => {
219
+ const stores = [this.stores.balance, this.stores.nft, this.stores.nftCollection, this.stores.crowdloan, this.stores.staking, this.stores.transaction, this.stores.nominatorMetadata];
220
+ if (resetAll) {
221
+ stores.push(this.stores.chain, this.stores.asset);
222
+ }
223
+ const promises = stores.map(store => store.clear());
224
+ Promise.all(promises).then(() => {
225
+ resolve();
226
+ }).catch(e => {
227
+ reject(e);
228
+ });
229
+ });
230
+ }
259
231
  }
260
232
  exports.default = DatabaseService;
@@ -13,7 +13,7 @@ const DEFAULT_DATABASE = 'SubWalletDB_v2';
13
13
  class KoniDatabase extends _dexie.default {
14
14
  constructor() {
15
15
  let name = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : DEFAULT_DATABASE;
16
- let schemaVersion = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 10;
16
+ let schemaVersion = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 11;
17
17
  super(name);
18
18
  this.schemaVersion = schemaVersion;
19
19
  this.conditionalVersion(1, {
@@ -25,5 +25,8 @@ class BaseStore {
25
25
  remove(record) {
26
26
  return this.table.delete(record);
27
27
  }
28
+ clear() {
29
+ return this.table.clear();
30
+ }
28
31
  }
29
32
  exports.default = BaseStore;
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.TRANSACTION_TIMEOUT = void 0;
7
+ // Copyright 2019-2022 @subwallet/extension-base authors & contributors
8
+ // SPDX-License-Identifier: Apache-2.0
9
+
10
+ const TRANSACTION_TIMEOUT = 2 * 60 * 1000;
11
+ exports.TRANSACTION_TIMEOUT = TRANSACTION_TIMEOUT;