@subwallet/extension-base 1.0.3-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 (75) 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 +17 -2
  12. package/cjs/services/chain-service/handler/SubstrateChainHandler.js +1 -1
  13. package/cjs/services/chain-service/index.js +96 -18
  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 +21 -16
  39. package/packageInfo.js +1 -1
  40. package/services/chain-service/constants.d.ts +6 -0
  41. package/services/chain-service/constants.js +10 -1
  42. package/services/chain-service/handler/SubstrateChainHandler.js +1 -1
  43. package/services/chain-service/index.d.ts +3 -1
  44. package/services/chain-service/index.js +97 -19
  45. package/services/keyring-service/index.d.ts +1 -0
  46. package/services/keyring-service/index.js +9 -0
  47. package/services/migration-service/index.js +7 -4
  48. package/services/migration-service/scripts/MigrateAuthUrls.d.ts +4 -0
  49. package/services/migration-service/scripts/MigrateAuthUrls.js +31 -0
  50. package/services/migration-service/scripts/index.js +3 -1
  51. package/services/price-service/index.js +0 -1
  52. package/services/request-service/handler/AuthRequestHandler.d.ts +1 -0
  53. package/services/request-service/handler/AuthRequestHandler.js +7 -0
  54. package/services/request-service/handler/EvmRequestHandler.d.ts +1 -0
  55. package/services/request-service/handler/EvmRequestHandler.js +21 -0
  56. package/services/request-service/handler/MetadataRequestHandler.d.ts +1 -0
  57. package/services/request-service/handler/MetadataRequestHandler.js +6 -0
  58. package/services/request-service/handler/SubstrateRequestHandler.d.ts +1 -0
  59. package/services/request-service/handler/SubstrateRequestHandler.js +6 -0
  60. package/services/request-service/index.d.ts +1 -0
  61. package/services/request-service/index.js +6 -0
  62. package/services/setting-service/SettingService.d.ts +1 -0
  63. package/services/setting-service/SettingService.js +5 -10
  64. package/services/setting-service/constants.d.ts +2 -1
  65. package/services/setting-service/constants.js +10 -1
  66. package/services/storage-service/DatabaseService.d.ts +1 -0
  67. package/services/storage-service/DatabaseService.js +14 -0
  68. package/services/storage-service/databases/index.js +1 -1
  69. package/services/storage-service/db-stores/BaseStore.d.ts +1 -0
  70. package/services/storage-service/db-stores/BaseStore.js +3 -0
  71. package/services/transaction-service/index.d.ts +1 -0
  72. package/services/transaction-service/index.js +3 -0
  73. /package/cjs/services/chain-service/{heath-check → health-check}/index.js +0 -0
  74. /package/services/chain-service/{heath-check → health-check}/index.d.ts +0 -0
  75. /package/services/chain-service/{heath-check → health-check}/index.js +0 -0
@@ -200,4 +200,25 @@ export default class EvmRequestHandler {
200
200
  }
201
201
  return true;
202
202
  }
203
+ resetWallet() {
204
+ const confirmations = this.confirmationsQueueSubject.getValue();
205
+ for (const [type, requests] of Object.entries(confirmations)) {
206
+ for (const confirmation of Object.values(requests)) {
207
+ const {
208
+ id
209
+ } = confirmation;
210
+ const {
211
+ resolver
212
+ } = this.confirmationsPromiseMap[id];
213
+ if (!resolver || !confirmation) {
214
+ console.error('Not found confirmation', type, id);
215
+ } else {
216
+ resolver.reject(new Error('Reset wallet'));
217
+ }
218
+ delete this.confirmationsPromiseMap[id];
219
+ delete confirmations[type][id];
220
+ }
221
+ }
222
+ this.confirmationsQueueSubject.next(confirmations);
223
+ }
203
224
  }
@@ -15,4 +15,5 @@ export default class MetadataRequestHandler {
15
15
  private updateIconMeta;
16
16
  private metaComplete;
17
17
  injectMetadata(url: string, request: MetadataDef): Promise<boolean>;
18
+ resetWallet(): void;
18
19
  }
@@ -72,4 +72,10 @@ export default class MetadataRequestHandler {
72
72
  this.#requestService.popupOpen();
73
73
  });
74
74
  }
75
+ resetWallet() {
76
+ for (const request of Object.values(this.#metaRequests)) {
77
+ request.reject(new Error('Reset wallet'));
78
+ }
79
+ this.metaSubject.next([]);
80
+ }
75
81
  }
@@ -14,4 +14,5 @@ export default class SubstrateRequestHandler {
14
14
  get numSubstrateRequests(): number;
15
15
  sign(url: string, request: RequestSign, account: AccountJson): Promise<ResponseSigning>;
16
16
  signTransaction(id: string, address: string, url: string, payload: SignerPayloadJSON): Promise<ResponseSigning>;
17
+ resetWallet(): void;
17
18
  }
@@ -91,4 +91,10 @@ export default class SubstrateRequestHandler {
91
91
  }
92
92
  });
93
93
  }
94
+ resetWallet() {
95
+ for (const request of Object.values(this.#substrateRequests)) {
96
+ request.reject(new Error('Reset wallet'));
97
+ }
98
+ this.signSubject.next([]);
99
+ }
94
100
  }
@@ -51,4 +51,5 @@ export default class RequestService {
51
51
  addConfirmation<CT extends ConfirmationType>(id: string, url: string, type: CT, payload: ConfirmationDefinitions[CT][0]['payload'], options?: ConfirmationsQueueItemOptions, validator?: (input: ConfirmationDefinitions[CT][1]) => Error | undefined): Promise<ConfirmationDefinitions[CT][1]>;
52
52
  completeConfirmation(request: RequestConfirmationComplete): Promise<boolean>;
53
53
  get numRequests(): number;
54
+ resetWallet(): void;
54
55
  }
@@ -156,4 +156,10 @@ export default class RequestService {
156
156
  get numRequests() {
157
157
  return this.numMetaRequests + this.numAuthRequests + this.numSubstrateRequests + this.numEvmRequests;
158
158
  }
159
+ resetWallet() {
160
+ this.#authRequestHandler.resetWallet();
161
+ this.#substrateRequestHandler.resetWallet();
162
+ this.#evmRequestHandler.resetWallet();
163
+ this.#metadataRequestHandler.resetWallet();
164
+ }
159
165
  }
@@ -5,4 +5,5 @@ export default class SettingService {
5
5
  getSubject(): Subject<RequestSettingsType>;
6
6
  getSettings(update: (value: RequestSettingsType) => void): void;
7
7
  setSettings(data: RequestSettingsType, callback?: () => void): void;
8
+ resetWallet(): void;
8
9
  }
@@ -2,7 +2,7 @@
2
2
  // SPDX-License-Identifier: Apache-2.0
3
3
 
4
4
  import SettingsStore from '@subwallet/extension-base/stores/Settings';
5
- import { DEFAULT_NOTIFICATION_TYPE, DEFAULT_THEME } from "./constants.js";
5
+ import { DEFAULT_SETTING } from "./constants.js";
6
6
  export default class SettingService {
7
7
  settingsStore = new SettingsStore();
8
8
  getSubject() {
@@ -11,15 +11,7 @@ export default class SettingService {
11
11
  getSettings(update) {
12
12
  this.settingsStore.get('Settings', value => {
13
13
  if (!value) {
14
- update({
15
- // language: 'en',
16
- browserConfirmationType: DEFAULT_NOTIFICATION_TYPE,
17
- // isShowZeroBalance: true,
18
- isShowBalance: false,
19
- accountAllLogo: '',
20
- theme: DEFAULT_THEME,
21
- camera: false
22
- });
14
+ update(DEFAULT_SETTING);
23
15
  } else {
24
16
  update(value);
25
17
  }
@@ -28,4 +20,7 @@ export default class SettingService {
28
20
  setSettings(data, callback) {
29
21
  this.settingsStore.set('Settings', data, callback);
30
22
  }
23
+ resetWallet() {
24
+ this.settingsStore.set('Settings', DEFAULT_SETTING);
25
+ }
31
26
  }
@@ -1,3 +1,4 @@
1
- import { BrowserConfirmationType, ThemeNames } from '@subwallet/extension-base/background/KoniTypes';
1
+ import { BrowserConfirmationType, RequestSettingsType, ThemeNames } from '@subwallet/extension-base/background/KoniTypes';
2
2
  export declare const DEFAULT_THEME: ThemeNames;
3
3
  export declare const DEFAULT_NOTIFICATION_TYPE: BrowserConfirmationType;
4
+ export declare const DEFAULT_SETTING: RequestSettingsType;
@@ -3,4 +3,13 @@
3
3
 
4
4
  import { ThemeNames } from '@subwallet/extension-base/background/KoniTypes';
5
5
  export const DEFAULT_THEME = ThemeNames.DARK;
6
- export const DEFAULT_NOTIFICATION_TYPE = 'popup';
6
+ export const DEFAULT_NOTIFICATION_TYPE = 'popup';
7
+ export const DEFAULT_SETTING = {
8
+ // language: 'en',
9
+ browserConfirmationType: DEFAULT_NOTIFICATION_TYPE,
10
+ // isShowZeroBalance: true,
11
+ isShowBalance: false,
12
+ accountAllLogo: '',
13
+ theme: DEFAULT_THEME,
14
+ camera: false
15
+ };
@@ -63,4 +63,5 @@ export default class DatabaseService {
63
63
  getStakingMetadataByChain(chain: string, type?: StakingType): Promise<ChainStakingMetadata | undefined>;
64
64
  updateNominatorMetadata(item: NominatorMetadata): Promise<unknown>;
65
65
  getNominatorMetadata(): Promise<NominatorMetadata[]>;
66
+ resetWallet(resetAll: boolean): Promise<void>;
66
67
  }
@@ -248,4 +248,18 @@ export default class DatabaseService {
248
248
  async getNominatorMetadata() {
249
249
  return this.stores.nominatorMetadata.getAll();
250
250
  }
251
+ async resetWallet(resetAll) {
252
+ return new Promise((resolve, reject) => {
253
+ const stores = [this.stores.balance, this.stores.nft, this.stores.nftCollection, this.stores.crowdloan, this.stores.staking, this.stores.transaction, this.stores.nominatorMetadata];
254
+ if (resetAll) {
255
+ stores.push(this.stores.chain, this.stores.asset);
256
+ }
257
+ const promises = stores.map(store => store.clear());
258
+ Promise.all(promises).then(() => {
259
+ resolve();
260
+ }).catch(e => {
261
+ reject(e);
262
+ });
263
+ });
264
+ }
251
265
  }
@@ -4,7 +4,7 @@
4
4
  import Dexie from 'dexie';
5
5
  const DEFAULT_DATABASE = 'SubWalletDB_v2';
6
6
  export default class KoniDatabase extends Dexie {
7
- constructor(name = DEFAULT_DATABASE, schemaVersion = 10) {
7
+ constructor(name = DEFAULT_DATABASE, schemaVersion = 11) {
8
8
  super(name);
9
9
  this.schemaVersion = schemaVersion;
10
10
  this.conditionalVersion(1, {
@@ -8,4 +8,5 @@ export default class BaseStore<T> {
8
8
  upsert(record: T): Promise<unknown>;
9
9
  bulkUpsert(records: T[]): Promise<unknown>;
10
10
  remove(record: T): Promise<void>;
11
+ clear(): Promise<void>;
11
12
  }
@@ -19,4 +19,7 @@ export default class BaseStore {
19
19
  remove(record) {
20
20
  return this.table.delete(record);
21
21
  }
22
+ clear() {
23
+ return this.table.clear();
24
+ }
22
25
  }
@@ -45,4 +45,5 @@ export default class TransactionService {
45
45
  generateHashPayload(chain: string, transaction: TransactionConfig): HexString;
46
46
  private signAndSendEvmTransaction;
47
47
  private signAndSendSubstrateTransaction;
48
+ resetWallet(): void;
48
49
  }
@@ -779,4 +779,7 @@ export default class TransactionService {
779
779
  });
780
780
  return emitter;
781
781
  }
782
+ resetWallet() {
783
+ this.transactionSubject.next({});
784
+ }
782
785
  }