@subwallet/extension-base 1.3.21-0 → 1.3.22-0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/cjs/packageInfo.js +1 -1
  2. package/cjs/services/chain-service/constants.js +8 -3
  3. package/cjs/services/chain-service/handler/SubstrateChainHandler.js +3 -2
  4. package/cjs/services/chain-service/index.js +9 -0
  5. package/cjs/services/earning-service/constants/chains.js +2 -1
  6. package/cjs/services/earning-service/handlers/native-staking/mythos.js +337 -0
  7. package/cjs/services/earning-service/service.js +4 -0
  8. package/cjs/services/earning-service/utils/index.js +2 -0
  9. package/cjs/services/migration-service/scripts/databases/ClearMetadataDatabase.js +3 -23
  10. package/cjs/services/migration-service/scripts/databases/ClearMetadataForChains.js +40 -0
  11. package/cjs/services/migration-service/scripts/databases/ClearMetadataForMythos.js +15 -0
  12. package/cjs/services/migration-service/scripts/index.js +6 -2
  13. package/cjs/services/storage-service/DatabaseService.js +3 -0
  14. package/cjs/services/storage-service/db-stores/Metadata.js +3 -0
  15. package/cjs/services/storage-service/db-stores/Migration.js +6 -1
  16. package/package.json +36 -21
  17. package/packageInfo.js +1 -1
  18. package/services/chain-service/constants.js +8 -3
  19. package/services/chain-service/handler/SubstrateChainHandler.js +3 -2
  20. package/services/chain-service/index.d.ts +1 -0
  21. package/services/chain-service/index.js +9 -0
  22. package/services/earning-service/constants/chains.d.ts +1 -0
  23. package/services/earning-service/constants/chains.js +2 -1
  24. package/services/earning-service/handlers/native-staking/mythos.d.ts +35 -0
  25. package/services/earning-service/handlers/native-staking/mythos.js +329 -0
  26. package/services/earning-service/service.js +4 -0
  27. package/services/earning-service/utils/index.js +2 -0
  28. package/services/migration-service/scripts/databases/ClearMetadataDatabase.d.ts +3 -3
  29. package/services/migration-service/scripts/databases/ClearMetadataDatabase.js +3 -23
  30. package/services/migration-service/scripts/databases/ClearMetadataForChains.d.ts +5 -0
  31. package/services/migration-service/scripts/databases/ClearMetadataForChains.js +32 -0
  32. package/services/migration-service/scripts/databases/ClearMetadataForMythos.d.ts +4 -0
  33. package/services/migration-service/scripts/databases/ClearMetadataForMythos.js +7 -0
  34. package/services/migration-service/scripts/index.d.ts +1 -0
  35. package/services/migration-service/scripts/index.js +4 -1
  36. package/services/storage-service/DatabaseService.d.ts +1 -0
  37. package/services/storage-service/DatabaseService.js +3 -0
  38. package/services/storage-service/db-stores/Metadata.d.ts +1 -0
  39. package/services/storage-service/db-stores/Metadata.js +3 -0
  40. package/services/storage-service/db-stores/Migration.d.ts +1 -0
  41. package/services/storage-service/db-stores/Migration.js +6 -1
@@ -0,0 +1,32 @@
1
+ // Copyright 2019-2022 @subwallet/extension-koni authors & contributors
2
+ // SPDX-License-Identifier: Apache-2.0
3
+
4
+ import BaseMigrationJob from '@subwallet/extension-base/services/migration-service/Base';
5
+ import { cacheMetadata, waitTimeout } from '@subwallet/extension-base/utils';
6
+ export default class ClearMetadataForChains extends BaseMigrationJob {
7
+ async run() {
8
+ const isClearAll = this.chains.length === 0;
9
+ if (isClearAll) {
10
+ // Clear all old metadata data
11
+ await this.state.dbService.stores.metadata.clear();
12
+ } else {
13
+ await this.state.dbService.stores.metadata.clearByChains(this.chains);
14
+ }
15
+ const activeChains = this.state.chainService.getActiveChains();
16
+ const chainInfoMap = this.state.chainService.getChainInfoMap();
17
+ const reloadChains = activeChains.filter(chain => {
18
+ var _chainInfoMap$chain$s;
19
+ return !!((_chainInfoMap$chain$s = chainInfoMap[chain].substrateInfo) !== null && _chainInfoMap$chain$s !== void 0 && _chainInfoMap$chain$s.genesisHash) && (isClearAll || this.chains.includes(chain));
20
+ });
21
+ for (const chain of reloadChains) {
22
+ const substrateApi = this.state.chainService.getSubstrateApi(chain);
23
+ const callback = substrateApi => {
24
+ cacheMetadata(chain, substrateApi, this.state.chainService);
25
+ };
26
+ Promise.race([substrateApi.isReady, waitTimeout(2000)]).finally(() => {
27
+ substrateApi === null || substrateApi === void 0 ? void 0 : substrateApi.connect(callback);
28
+ });
29
+ }
30
+ return Promise.resolve();
31
+ }
32
+ }
@@ -0,0 +1,4 @@
1
+ import ClearMetadataForChains from './ClearMetadataForChains';
2
+ export default class ClearMetadataForMythos extends ClearMetadataForChains {
3
+ chains: string[];
4
+ }
@@ -0,0 +1,7 @@
1
+ // Copyright 2019-2022 @subwallet/extension-koni authors & contributors
2
+ // SPDX-License-Identifier: Apache-2.0
3
+
4
+ import ClearMetadataForChains from "./ClearMetadataForChains.js";
5
+ export default class ClearMetadataForMythos extends ClearMetadataForChains {
6
+ chains = ['mythos', 'muse_testnet'];
7
+ }
@@ -1,4 +1,5 @@
1
1
  import BaseMigrationJob from '../Base';
2
2
  export declare const EVERYTIME = "__everytime__";
3
+ export declare const MYTHOS_MIGRATION_KEY = "1.3.21-01";
3
4
  declare const _default: Record<string, typeof BaseMigrationJob>;
4
5
  export default _default;
@@ -3,6 +3,7 @@
3
3
 
4
4
  import AutoEnableSomeTokens from "./databases/AutoEnableSomeTokens.js";
5
5
  import ClearMetadataDatabase from "./databases/ClearMetadataDatabase.js";
6
+ import ClearMetadataForMythos from "./databases/ClearMetadataForMythos.js";
6
7
  import MigrateAssetSetting from "./databases/MigrateAssetSetting.js";
7
8
  import MigrateEarningVersion from "./databases/MigrateEarningVersion.js";
8
9
  import ReloadMetadata from "./databases/ReloadMetadata.js";
@@ -31,6 +32,7 @@ import MigrateTransactionHistoryBridge from "./MigrateTransactionHistoryBridge.j
31
32
  import MigrateTransactionHistoryBySymbol from "./MigrateTransactionHistoryBySymbol.js";
32
33
  import MigrateWalletReference from "./MigrateWalletReference.js";
33
34
  export const EVERYTIME = '__everytime__';
35
+ export const MYTHOS_MIGRATION_KEY = '1.3.21-01';
34
36
  export default {
35
37
  '1.0.1-11': MigrateNetworkSettings,
36
38
  '1.0.1-20': MigrateImportedToken,
@@ -61,7 +63,8 @@ export default {
61
63
  '1.2.13-01': ReloadMetadata,
62
64
  '1.2.32-01': MigratePairData,
63
65
  '1.3.6-01': MigrateTransactionHistoryBridge,
64
- '1.3.10-01': ClearMetadataDatabase
66
+ '1.3.10-01': ClearMetadataDatabase,
67
+ [MYTHOS_MIGRATION_KEY]: ClearMetadataForMythos
65
68
  // [`${EVERYTIME}-1.1.42-02`]: MigrateTransactionHistoryBySymbol
66
69
  // [`${EVERYTIME}-1`]: AutoEnableChainsTokens
67
70
  };
@@ -143,4 +143,5 @@ export default class DatabaseService {
143
143
  getProcessTransactionById(processId: string): Promise<ProcessTransactionData | undefined>;
144
144
  observableProcessTransactionById(processId: string): import("dexie").Observable<ProcessTransactionData | undefined>;
145
145
  deleteProcessTransactionById(processId: string): Promise<void>;
146
+ hasRunScript(key: string): Promise<boolean>;
146
147
  }
@@ -639,6 +639,9 @@ export default class DatabaseService {
639
639
  deleteProcessTransactionById(processId) {
640
640
  return this.stores.processTransactions.delete(processId);
641
641
  }
642
+ hasRunScript(key) {
643
+ return this.stores.migration.hasRunScript(key);
644
+ }
642
645
 
643
646
  // public setAssetRef (assetRef: Record<string, _AssetRef>) {
644
647
  // const assetRefList = Object.entries(assetRef).map(([slug, item]) => {
@@ -5,4 +5,5 @@ export default class MetadataStore extends BaseStoreWithChain<IMetadataItem> {
5
5
  upsertMetadata(chain: string, metadata: IMetadataItem): import("dexie").PromiseExtended<unknown>;
6
6
  getMetadataByGenesisHash(genesisHash: string): import("dexie").PromiseExtended<IMetadataItem | undefined>;
7
7
  updateMetadataByGenesisHash(genesisHash: string, metadata: IMetadataItem): import("dexie").PromiseExtended<unknown>;
8
+ clearByChains(chains: string[]): import("dexie").PromiseExtended<number>;
8
9
  }
@@ -15,4 +15,7 @@ export default class MetadataStore extends BaseStoreWithChain {
15
15
  updateMetadataByGenesisHash(genesisHash, metadata) {
16
16
  return this.table.put(metadata, genesisHash);
17
17
  }
18
+ clearByChains(chains) {
19
+ return this.table.where('chain').anyOf(chains).delete();
20
+ }
18
21
  }
@@ -1,4 +1,5 @@
1
1
  import { IMigration } from '../databases';
2
2
  import BaseStore from './BaseStore';
3
3
  export default class MigrationStore extends BaseStore<IMigration> {
4
+ hasRunScript(key: string): Promise<boolean>;
4
5
  }
@@ -2,4 +2,9 @@
2
2
  // SPDX-License-Identifier: Apache-2.0
3
3
 
4
4
  import BaseStore from "./BaseStore.js";
5
- export default class MigrationStore extends BaseStore {}
5
+ export default class MigrationStore extends BaseStore {
6
+ async hasRunScript(key) {
7
+ const rs = await this.table.where('key').equals(key).first();
8
+ return !!rs;
9
+ }
10
+ }