@subwallet/extension-base 1.0.4-0 → 1.0.4-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 (71) hide show
  1. package/background/KoniTypes.d.ts +25 -15
  2. package/background/KoniTypes.js +1 -0
  3. package/cjs/background/KoniTypes.js +1 -0
  4. package/cjs/koni/api/staking/bonding/amplitude.js +9 -2
  5. package/cjs/koni/api/staking/bonding/astar.js +9 -1
  6. package/cjs/koni/api/staking/bonding/paraChain.js +10 -2
  7. package/cjs/koni/api/staking/bonding/relayChain.js +21 -4
  8. package/cjs/koni/background/handlers/Extension.js +61 -19
  9. package/cjs/koni/background/handlers/State.js +12 -0
  10. package/cjs/packageInfo.js +1 -1
  11. package/cjs/services/chain-service/constants.js +1 -1
  12. package/cjs/services/chain-service/handler/SubstrateChainHandler.js +1 -1
  13. package/cjs/services/chain-service/index.js +75 -26
  14. package/cjs/services/keyring-service/index.js +9 -0
  15. package/cjs/services/migration-service/index.js +7 -4
  16. package/cjs/services/migration-service/scripts/MigrateAuthUrls.js +39 -0
  17. package/cjs/services/migration-service/scripts/index.js +3 -1
  18. package/cjs/services/price-service/index.js +0 -1
  19. package/cjs/services/request-service/handler/AuthRequestHandler.js +7 -0
  20. package/cjs/services/request-service/handler/EvmRequestHandler.js +21 -0
  21. package/cjs/services/request-service/handler/MetadataRequestHandler.js +6 -0
  22. package/cjs/services/request-service/handler/SubstrateRequestHandler.js +6 -0
  23. package/cjs/services/request-service/index.js +6 -0
  24. package/cjs/services/setting-service/SettingService.js +4 -9
  25. package/cjs/services/setting-service/constants.js +12 -2
  26. package/cjs/services/storage-service/DatabaseService.js +14 -0
  27. package/cjs/services/storage-service/databases/index.js +1 -1
  28. package/cjs/services/storage-service/db-stores/BaseStore.js +3 -0
  29. package/cjs/services/transaction-service/index.js +3 -0
  30. package/koni/api/staking/bonding/amplitude.js +9 -2
  31. package/koni/api/staking/bonding/astar.js +9 -1
  32. package/koni/api/staking/bonding/paraChain.js +10 -2
  33. package/koni/api/staking/bonding/relayChain.js +21 -4
  34. package/koni/background/handlers/Extension.d.ts +1 -0
  35. package/koni/background/handlers/Extension.js +42 -1
  36. package/koni/background/handlers/State.d.ts +1 -0
  37. package/koni/background/handlers/State.js +12 -0
  38. package/package.json +16 -11
  39. package/packageInfo.js +1 -1
  40. package/services/chain-service/constants.js +1 -1
  41. package/services/chain-service/handler/SubstrateChainHandler.js +1 -1
  42. package/services/chain-service/index.d.ts +2 -1
  43. package/services/chain-service/index.js +75 -26
  44. package/services/keyring-service/index.d.ts +1 -0
  45. package/services/keyring-service/index.js +9 -0
  46. package/services/migration-service/index.js +7 -4
  47. package/services/migration-service/scripts/MigrateAuthUrls.d.ts +4 -0
  48. package/services/migration-service/scripts/MigrateAuthUrls.js +31 -0
  49. package/services/migration-service/scripts/index.js +3 -1
  50. package/services/price-service/index.js +0 -1
  51. package/services/request-service/handler/AuthRequestHandler.d.ts +1 -0
  52. package/services/request-service/handler/AuthRequestHandler.js +7 -0
  53. package/services/request-service/handler/EvmRequestHandler.d.ts +1 -0
  54. package/services/request-service/handler/EvmRequestHandler.js +21 -0
  55. package/services/request-service/handler/MetadataRequestHandler.d.ts +1 -0
  56. package/services/request-service/handler/MetadataRequestHandler.js +6 -0
  57. package/services/request-service/handler/SubstrateRequestHandler.d.ts +1 -0
  58. package/services/request-service/handler/SubstrateRequestHandler.js +6 -0
  59. package/services/request-service/index.d.ts +1 -0
  60. package/services/request-service/index.js +6 -0
  61. package/services/setting-service/SettingService.d.ts +1 -0
  62. package/services/setting-service/SettingService.js +5 -10
  63. package/services/setting-service/constants.d.ts +2 -1
  64. package/services/setting-service/constants.js +10 -1
  65. package/services/storage-service/DatabaseService.d.ts +1 -0
  66. package/services/storage-service/DatabaseService.js +14 -0
  67. package/services/storage-service/databases/index.js +1 -1
  68. package/services/storage-service/db-stores/BaseStore.d.ts +1 -0
  69. package/services/storage-service/db-stores/BaseStore.js +3 -0
  70. package/services/transaction-service/index.d.ts +1 -0
  71. package/services/transaction-service/index.js +3 -0
@@ -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;
@@ -6,6 +6,7 @@ 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"));
9
10
  var _MigrateImportedToken = _interopRequireDefault(require("@subwallet/extension-base/services/migration-service/scripts/MigrateImportedToken"));
10
11
  var _MigrateNetworkSettings = _interopRequireDefault(require("@subwallet/extension-base/services/migration-service/scripts/MigrateNetworkSettings"));
11
12
  var _MigrateSettings = _interopRequireDefault(require("@subwallet/extension-base/services/migration-service/scripts/MigrateSettings"));
@@ -20,7 +21,8 @@ var _default = {
20
21
  '1.0.1-20': _MigrateImportedToken.default,
21
22
  '1.0.1-30': _MigrateTransactionHistory.default,
22
23
  '1.0.1-40': _AutoEnableChainsTokens.default,
23
- '1.0.1-50': _MigrateSettings.default
24
+ '1.0.1-50': _MigrateSettings.default,
25
+ '1.0.1-60': _MigrateAuthUrls.default
24
26
  // [`${EVERYTIME}-1`]: AutoEnableChainsTokens
25
27
  };
26
28
  exports.default = _default;
@@ -69,7 +69,6 @@ class PriceService {
69
69
  await this.eventService.waitAssetReady;
70
70
  this.status = _types.ServiceStatus.INITIALIZED;
71
71
  this.eventService.on('asset.updateState', eventHandler);
72
- this.eventService.on('asset.updateState', eventHandler);
73
72
  }
74
73
  async loadData() {
75
74
  const data = await this.dbService.getPriceStore();
@@ -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 = 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,14 @@ 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_SETTING = {
16
+ // language: 'en',
17
+ browserConfirmationType: DEFAULT_NOTIFICATION_TYPE,
18
+ // isShowZeroBalance: true,
19
+ isShowBalance: false,
20
+ accountAllLogo: '',
21
+ theme: DEFAULT_THEME,
22
+ camera: false
23
+ };
24
+ exports.DEFAULT_SETTING = DEFAULT_SETTING;
@@ -256,5 +256,19 @@ class DatabaseService {
256
256
  async getNominatorMetadata() {
257
257
  return this.stores.nominatorMetadata.getAll();
258
258
  }
259
+ async resetWallet(resetAll) {
260
+ return new Promise((resolve, reject) => {
261
+ const stores = [this.stores.balance, this.stores.nft, this.stores.nftCollection, this.stores.crowdloan, this.stores.staking, this.stores.transaction, this.stores.nominatorMetadata];
262
+ if (resetAll) {
263
+ stores.push(this.stores.chain, this.stores.asset);
264
+ }
265
+ const promises = stores.map(store => store.clear());
266
+ Promise.all(promises).then(() => {
267
+ resolve();
268
+ }).catch(e => {
269
+ reject(e);
270
+ });
271
+ });
272
+ }
259
273
  }
260
274
  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;
@@ -798,5 +798,8 @@ class TransactionService {
798
798
  });
799
799
  return emitter;
800
800
  }
801
+ resetWallet() {
802
+ this.transactionSubject.next({});
803
+ }
801
804
  }
802
805
  exports.default = TransactionService;
@@ -42,9 +42,16 @@ export async function getAmplitudeNominatorMetadata(chainInfo, address, substrat
42
42
  const minDelegatorStake = chainApi.api.consts.parachainStaking.minDelegatorStake.toString();
43
43
  const delegatorState = _delegatorState.toPrimitive();
44
44
  const unstakingInfo = _unstakingInfo.toPrimitive();
45
- console.log('unstakingInfo ampe', unstakingInfo, !!unstakingInfo);
46
45
  if (!delegatorState && !unstakingInfo) {
47
- return;
46
+ return {
47
+ chain: chainInfo.slug,
48
+ type: StakingType.NOMINATED,
49
+ address,
50
+ status: StakingStatus.NOT_STAKING,
51
+ activeStake: '0',
52
+ nominations: [],
53
+ unstakings: []
54
+ };
48
55
  }
49
56
  let activeStake = '0';
50
57
  if (delegatorState) {
@@ -109,7 +109,15 @@ export async function getAstarNominatorMetadata(chainInfo, address, substrateApi
109
109
  });
110
110
  }
111
111
  if (nominationList.length === 0 && unstakingList.length === 0) {
112
- return;
112
+ return {
113
+ chain: chainInfo.slug,
114
+ type: StakingType.NOMINATED,
115
+ address,
116
+ status: StakingStatus.NOT_STAKING,
117
+ activeStake: '0',
118
+ nominations: [],
119
+ unstakings: []
120
+ };
113
121
  }
114
122
  const stakingStatus = getStakingStatusByNominations(bnTotalActiveStake, nominationList);
115
123
  return {
@@ -42,7 +42,7 @@ export function validateParaChainBondingCondition(chainInfo, amount, selectedCol
42
42
  const bnChainMinStake = new BN(chainStakingMetadata.minStake || '0');
43
43
  const bnCollatorMinStake = new BN(selectedCollator.minBond || '0');
44
44
  const bnMinStake = bnCollatorMinStake > bnChainMinStake ? bnCollatorMinStake : bnChainMinStake;
45
- if (!nominatorMetadata) {
45
+ if (!nominatorMetadata || nominatorMetadata.status === StakingStatus.NOT_STAKING) {
46
46
  if (!bnTotalStake.gte(bnMinStake)) {
47
47
  errors.push(new TransactionError(StakingTxErrorType.NOT_ENOUGH_MIN_STAKE));
48
48
  }
@@ -130,7 +130,15 @@ export async function getParaChainNominatorMetadata(chainInfo, address, substrat
130
130
  const _delegatorState = await chainApi.api.query.parachainStaking.delegatorState(address);
131
131
  const delegatorState = _delegatorState.toPrimitive();
132
132
  if (!delegatorState) {
133
- return;
133
+ return {
134
+ chain: chainInfo.slug,
135
+ type: StakingType.NOMINATED,
136
+ address,
137
+ status: StakingStatus.NOT_STAKING,
138
+ activeStake: '0',
139
+ nominations: [],
140
+ unstakings: []
141
+ };
134
142
  }
135
143
  let bnTotalActiveStake = BN_ZERO;
136
144
  await Promise.all(delegatorState.delegations.map(async delegation => {
@@ -34,7 +34,7 @@ export function validatePoolBondingCondition(chainInfo, amount, selectedPool, ad
34
34
  if (nominatorMetadata) {
35
35
  const bnCurrentActiveStake = new BN(nominatorMetadata.activeStake);
36
36
  bnTotalStake = bnTotalStake.add(bnCurrentActiveStake);
37
- if (!bnCurrentActiveStake.gt(BN_ZERO)) {
37
+ if (nominatorMetadata.unstakings.length > 0) {
38
38
  errors.push(new TransactionError(StakingTxErrorType.EXIST_UNSTAKING_REQUEST));
39
39
  }
40
40
  }
@@ -47,7 +47,7 @@ export function validateRelayBondingCondition(chainInfo, amount, selectedValidat
47
47
  const errors = [];
48
48
  let bnTotalStake = new BN(amount);
49
49
  const bnMinStake = new BN(chainStakingMetadata.minStake);
50
- if (!nominatorMetadata) {
50
+ if (!nominatorMetadata || nominatorMetadata.status === StakingStatus.NOT_STAKING) {
51
51
  if (!bnTotalStake.gte(bnMinStake)) {
52
52
  errors.push(new TransactionError(StakingTxErrorType.NOT_ENOUGH_MIN_STAKE));
53
53
  }
@@ -145,7 +145,15 @@ export async function getRelayChainNominatorMetadata(chainInfo, address, substra
145
145
  const currentEra = _currentEra.toString();
146
146
  const bonded = _bonded.toHuman();
147
147
  if (!ledger) {
148
- return;
148
+ return {
149
+ chain,
150
+ type: StakingType.NOMINATED,
151
+ status: StakingStatus.NOT_STAKING,
152
+ address: address,
153
+ activeStake: '0',
154
+ nominations: [],
155
+ unstakings: []
156
+ };
149
157
  }
150
158
  const activeStake = ledger.active.toString();
151
159
  const nominationList = [];
@@ -225,7 +233,16 @@ export async function getRelayChainPoolMemberMetadata(chainInfo, address, substr
225
233
  const poolMemberInfo = _poolMemberInfo.toPrimitive();
226
234
  const currentEra = _currentEra.toString();
227
235
  if (!poolMemberInfo) {
228
- return;
236
+ return {
237
+ chain: chainInfo.slug,
238
+ type: StakingType.POOLED,
239
+ address,
240
+ status: StakingStatus.NOT_STAKING,
241
+ activeStake: '0',
242
+ nominations: [],
243
+ // can only join 1 pool at a time
244
+ unstakings: []
245
+ };
229
246
  }
230
247
  let stakingStatus = StakingStatus.NOT_EARNING;
231
248
  const _poolMetadata = await chainApi.api.query.nominationPools.metadata(poolMemberInfo.poolId);
@@ -169,6 +169,7 @@ export default class KoniExtension {
169
169
  private keyringUnlock;
170
170
  private keyringLock;
171
171
  private keyringExportMnemonic;
172
+ private resetWallet;
172
173
  private signingApprovePasswordV2;
173
174
  private derivationCreateMultiple;
174
175
  private derivationCreateV3;
@@ -894,7 +894,7 @@ export default class KoniExtension {
894
894
  }
895
895
  async updateAssetSetting(params) {
896
896
  try {
897
- await this.#koniState.chainService.updateAssetSetting(params.tokenSlug, params.assetSetting);
897
+ await this.#koniState.chainService.updateAssetSetting(params.tokenSlug, params.assetSetting, params.autoEnableNativeToken);
898
898
  this.#koniState.eventService.emit('asset.updateState', params.tokenSlug);
899
899
  return true;
900
900
  } catch (e) {
@@ -2386,6 +2386,11 @@ export default class KoniExtension {
2386
2386
  chainType: ChainType.SUBSTRATE
2387
2387
  });
2388
2388
  }
2389
+
2390
+ /// Keyring state
2391
+
2392
+ // Subscribe keyring state
2393
+
2389
2394
  keyringStateSubscribe(id, port) {
2390
2395
  const cb = createSubscription(id, port);
2391
2396
  const keyringStateSubject = this.#koniState.keyringService.keyringStateSubject;
@@ -2396,6 +2401,9 @@ export default class KoniExtension {
2396
2401
  });
2397
2402
  return this.#koniState.keyringService.keyringState;
2398
2403
  }
2404
+
2405
+ // Change master password
2406
+
2399
2407
  keyringChangeMasterPassword({
2400
2408
  createNew,
2401
2409
  newPassword,
@@ -2431,6 +2439,9 @@ export default class KoniExtension {
2431
2439
  errors: []
2432
2440
  };
2433
2441
  }
2442
+
2443
+ // Migrate password
2444
+
2434
2445
  keyringMigrateMasterPassword({
2435
2446
  address,
2436
2447
  password
@@ -2449,6 +2460,9 @@ export default class KoniExtension {
2449
2460
  errors: []
2450
2461
  };
2451
2462
  }
2463
+
2464
+ // Unlock wallet
2465
+
2452
2466
  keyringUnlock({
2453
2467
  password
2454
2468
  }) {
@@ -2466,11 +2480,17 @@ export default class KoniExtension {
2466
2480
  errors: []
2467
2481
  };
2468
2482
  }
2483
+
2484
+ // Lock wallet
2485
+
2469
2486
  keyringLock() {
2470
2487
  keyring.lockAll();
2471
2488
  this.#koniState.updateKeyringState();
2472
2489
  clearTimeout(this.#lockTimeOut);
2473
2490
  }
2491
+
2492
+ // Export mnemonic
2493
+
2474
2494
  keyringExportMnemonic({
2475
2495
  address,
2476
2496
  password
@@ -2482,6 +2502,25 @@ export default class KoniExtension {
2482
2502
  };
2483
2503
  }
2484
2504
 
2505
+ // Reset wallet
2506
+
2507
+ async resetWallet({
2508
+ resetAll
2509
+ }) {
2510
+ try {
2511
+ await this.#koniState.resetWallet(resetAll);
2512
+ return {
2513
+ errors: [],
2514
+ status: true
2515
+ };
2516
+ } catch (e) {
2517
+ return {
2518
+ errors: [e.message],
2519
+ status: false
2520
+ };
2521
+ }
2522
+ }
2523
+
2485
2524
  /// Signing external request
2486
2525
  signingApprovePasswordV2({
2487
2526
  id
@@ -3154,6 +3193,8 @@ export default class KoniExtension {
3154
3193
  return this.keyringLock();
3155
3194
  case 'pri(keyring.export.mnemonic)':
3156
3195
  return this.keyringExportMnemonic(request);
3196
+ case 'pri(keyring.reset)':
3197
+ return await this.resetWallet(request);
3157
3198
 
3158
3199
  /// Signing external
3159
3200
  case 'pri(signing.approve.passwordV2)':
@@ -221,5 +221,6 @@ export default class KoniState {
221
221
  onAccountRemove(): void;
222
222
  reloadNft(): Promise<boolean>;
223
223
  reloadStaking(): Promise<boolean>;
224
+ resetWallet(resetAll: boolean): Promise<void>;
224
225
  }
225
226
  export {};
@@ -1426,4 +1426,16 @@ export default class KoniState {
1426
1426
  async reloadStaking() {
1427
1427
  return await this.cron.reloadStaking();
1428
1428
  }
1429
+ async resetWallet(resetAll) {
1430
+ this.keyringService.resetWallet(resetAll);
1431
+ this.requestService.resetWallet();
1432
+ this.transactionService.resetWallet();
1433
+ await this.dbService.resetWallet(resetAll);
1434
+ this.accountRefStore.set('refList', []);
1435
+ if (resetAll) {
1436
+ this.settingService.resetWallet();
1437
+ }
1438
+ this.chainService.resetWallet(resetAll);
1439
+ await this.chainService.init();
1440
+ }
1429
1441
  }
package/package.json CHANGED
@@ -17,7 +17,7 @@
17
17
  "./cjs/detectPackage.js"
18
18
  ],
19
19
  "type": "module",
20
- "version": "1.0.4-0",
20
+ "version": "1.0.4-1",
21
21
  "main": "./cjs/index.js",
22
22
  "module": "./index.js",
23
23
  "types": "./index.d.ts",
@@ -1225,6 +1225,11 @@
1225
1225
  "require": "./cjs/services/migration-service/scripts/ClearOldStorage.js",
1226
1226
  "default": "./services/migration-service/scripts/ClearOldStorage.js"
1227
1227
  },
1228
+ "./services/migration-service/scripts/MigrateAuthUrls": {
1229
+ "types": "./services/migration-service/scripts/MigrateAuthUrls.d.ts",
1230
+ "require": "./cjs/services/migration-service/scripts/MigrateAuthUrls.js",
1231
+ "default": "./services/migration-service/scripts/MigrateAuthUrls.js"
1232
+ },
1228
1233
  "./services/migration-service/scripts/MigrateImportedToken": {
1229
1234
  "types": "./services/migration-service/scripts/MigrateImportedToken.d.ts",
1230
1235
  "require": "./cjs/services/migration-service/scripts/MigrateImportedToken.js",
@@ -1667,12 +1672,12 @@
1667
1672
  "@subsocial/types": "^0.6.8",
1668
1673
  "@substrate/connect": "^0.7.18",
1669
1674
  "@subwallet/chain-list": "^0.1.2",
1670
- "@subwallet/extension-base": "^1.0.4-0",
1671
- "@subwallet/extension-chains": "^1.0.4-0",
1672
- "@subwallet/extension-dapp": "^1.0.4-0",
1673
- "@subwallet/extension-inject": "^1.0.4-0",
1675
+ "@subwallet/extension-base": "^1.0.4-1",
1676
+ "@subwallet/extension-chains": "^1.0.4-1",
1677
+ "@subwallet/extension-dapp": "^1.0.4-1",
1678
+ "@subwallet/extension-inject": "^1.0.4-1",
1674
1679
  "@subwallet/keyring": "^0.0.5",
1675
- "@subwallet/ui-keyring": "^0.0.3",
1680
+ "@subwallet/ui-keyring": "^0.0.7",
1676
1681
  "@unique-nft/types": "^0.6.0-4",
1677
1682
  "@zeitgeistpm/type-defs": "^0.10.0",
1678
1683
  "@zeroio/type-definitions": "^0.0.14",
@@ -1702,10 +1707,10 @@
1702
1707
  "protobufjs": "^7.1.2",
1703
1708
  "rlp": "^3.0.0",
1704
1709
  "rxjs": "^7.8.0",
1705
- "web3": "^1.9.0",
1706
- "web3-core": "^1.9.0",
1707
- "web3-core-helpers": "^1.9.0",
1708
- "web3-eth-contract": "^1.9.0",
1709
- "web3-utils": "^1.9.0"
1710
+ "web3": "^1.10.0",
1711
+ "web3-core": "^1.10.0",
1712
+ "web3-core-helpers": "^1.10.0",
1713
+ "web3-eth-contract": "^1.10.0",
1714
+ "web3-utils": "^1.10.0"
1710
1715
  }
1711
1716
  }
package/packageInfo.js CHANGED
@@ -7,5 +7,5 @@ export const packageInfo = {
7
7
  name: '@subwallet/extension-base',
8
8
  path: (import.meta && import.meta.url) ? new URL(import.meta.url).pathname.substring(0, new URL(import.meta.url).pathname.lastIndexOf('/') + 1) : 'auto',
9
9
  type: 'esm',
10
- version: '1.0.4-0'
10
+ version: '1.0.4-1'
11
11
  };
@@ -208,6 +208,6 @@ const TARGET_BRANCH = process.env.NODE_ENV !== 'production' ? 'koni-dev' : 'mast
208
208
  export const _CHAIN_INFO_SRC = `https://raw.githubusercontent.com/Koniverse/SubWallet-Chain/${TARGET_BRANCH}/packages/chain-list/src/data/ChainInfo.json`;
209
209
  export const _CHAIN_ASSET_SRC = `https://raw.githubusercontent.com/Koniverse/SubWallet-Chain/${TARGET_BRANCH}/packages/chain-list/src/data/ChainAsset.json`;
210
210
  export const _ASSET_REF_SRC = `https://raw.githubusercontent.com/Koniverse/SubWallet-Chain/${TARGET_BRANCH}/packages/chain-list/src/data/AssetRef.json`;
211
- export const _MULTI_CHAIN_ASSET_SRC = `https://raw.githubusercontent.com/Koniverse/SubWallet-Chain/${TARGET_BRANCH}/packages/chain-list/src/data/AssetRef.json`;
211
+ export const _MULTI_CHAIN_ASSET_SRC = `https://raw.githubusercontent.com/Koniverse/SubWallet-Chain/${TARGET_BRANCH}/packages/chain-list/src/data/MultiChainAsset.json`;
212
212
  export const _CHAIN_LOGO_MAP_SRC = `https://raw.githubusercontent.com/Koniverse/SubWallet-Chain/${TARGET_BRANCH}/packages/chain-list/src/data/ChainLogoMap.json`;
213
213
  export const _ASSET_LOGO_MAP_SRC = `https://raw.githubusercontent.com/Koniverse/SubWallet-Chain/${TARGET_BRANCH}/packages/chain-list/src/data/AssetLogoMap.json`;
@@ -112,7 +112,7 @@ export class SubstrateChainHandler {
112
112
  name = nameResp.output ? nameObj.Ok || nameObj.ok : '';
113
113
  decimals = decimalsResp.output ? new BN(decimalsObj.Ok || decimalsObj.ok).toNumber() : 0;
114
114
  symbol = decimalsResp.output ? symbolObj.Ok || symbolObj.ok : '';
115
- if (name === '' || symbol === '') {
115
+ if (!name || !symbol || typeof name === 'object' || typeof symbol === 'object') {
116
116
  contractError = true;
117
117
  }
118
118
  console.log('validate PSP22', name, symbol, decimals);
@@ -100,9 +100,10 @@ export declare class ChainService {
100
100
  setAssetSettings(assetSettings: Record<string, AssetSetting>, emitEvent?: boolean): void;
101
101
  getStoreAssetSettings(): Promise<Record<string, AssetSetting>>;
102
102
  getAssetSettings(): Promise<Record<string, AssetSetting>>;
103
- updateAssetSetting(assetSlug: string, assetSetting: AssetSetting): Promise<boolean | undefined>;
103
+ updateAssetSetting(assetSlug: string, assetSetting: AssetSetting, autoEnableNativeToken?: boolean): Promise<boolean | undefined>;
104
104
  updateAssetSettingByChain(chainSlug: string, visible: boolean): Promise<void>;
105
105
  subscribeAssetSettings(): BehaviorSubject<Record<string, AssetSetting>>;
106
106
  getChainLogoMap(): Promise<Record<string, string>>;
107
107
  getAssetLogoMap(): Promise<Record<string, string>>;
108
+ resetWallet(resetAll: boolean): void;
108
109
  }