@subwallet/extension-base 1.1.25-1 → 1.1.27-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 (76) hide show
  1. package/background/KoniTypes.d.ts +3 -3
  2. package/background/handlers/State.js +3 -2
  3. package/cjs/background/handlers/State.js +3 -2
  4. package/cjs/constants/staking.js +4 -2
  5. package/cjs/koni/api/dotsama/transfer.js +2 -2
  6. package/cjs/koni/api/nft/config.js +2 -1
  7. package/cjs/koni/api/staking/bonding/astar.js +15 -24
  8. package/cjs/koni/api/staking/bonding/relayChain.js +48 -25
  9. package/cjs/koni/api/xcm/xTokens.js +1 -1
  10. package/cjs/koni/background/handlers/Extension.js +15 -8
  11. package/cjs/koni/background/handlers/Mobile.js +81 -5
  12. package/cjs/koni/background/handlers/State.js +54 -118
  13. package/cjs/koni/background/handlers/index.js +1 -1
  14. package/cjs/koni/background/subscription.js +34 -11
  15. package/cjs/packageInfo.js +1 -1
  16. package/cjs/services/balance-service/BalanceMapImpl.js +111 -0
  17. package/cjs/services/campaign-service/index.js +2 -0
  18. package/cjs/services/chain-service/constants.js +20 -3
  19. package/cjs/services/event-service/index.js +7 -7
  20. package/cjs/services/event-service/types.js +1 -1
  21. package/cjs/services/history-service/index.js +1 -0
  22. package/cjs/services/keyring-service/index.js +10 -6
  23. package/cjs/services/migration-service/scripts/index.js +3 -1
  24. package/cjs/services/migration-service/scripts/tokens/MigratePolygonUSDCProvider.js +16 -0
  25. package/cjs/services/migration-service/scripts/tokens/MigrateToken.js +33 -0
  26. package/cjs/services/setting-service/SettingService.js +2 -1
  27. package/cjs/services/setting-service/i18n/i18n.js +2 -1
  28. package/cjs/services/storage-service/DatabaseService.js +8 -19
  29. package/cjs/services/storage-service/db-stores/Balance.js +4 -13
  30. package/cjs/services/wallet-connect-service/index.js +6 -3
  31. package/cjs/storage/index.js +59 -0
  32. package/cjs/utils/array.js +27 -1
  33. package/constants/staking.d.ts +1 -0
  34. package/constants/staking.js +2 -1
  35. package/koni/api/dotsama/transfer.js +2 -2
  36. package/koni/api/nft/config.js +2 -1
  37. package/koni/api/staking/bonding/astar.js +15 -24
  38. package/koni/api/staking/bonding/relayChain.js +40 -17
  39. package/koni/api/xcm/xTokens.js +1 -1
  40. package/koni/background/handlers/Extension.js +15 -8
  41. package/koni/background/handlers/Mobile.d.ts +6 -0
  42. package/koni/background/handlers/Mobile.js +75 -3
  43. package/koni/background/handlers/State.d.ts +10 -9
  44. package/koni/background/handlers/State.js +43 -105
  45. package/koni/background/handlers/index.js +1 -1
  46. package/koni/background/subscription.d.ts +4 -1
  47. package/koni/background/subscription.js +34 -11
  48. package/package.json +40 -20
  49. package/packageInfo.js +1 -1
  50. package/services/balance-service/BalanceMapImpl.d.ts +17 -0
  51. package/services/balance-service/BalanceMapImpl.js +101 -0
  52. package/services/campaign-service/index.d.ts +1 -0
  53. package/services/campaign-service/index.js +2 -0
  54. package/services/chain-service/constants.d.ts +1 -0
  55. package/services/chain-service/constants.js +18 -2
  56. package/services/event-service/index.d.ts +1 -4
  57. package/services/event-service/index.js +8 -7
  58. package/services/event-service/types.js +1 -1
  59. package/services/history-service/index.js +1 -0
  60. package/services/keyring-service/index.js +10 -6
  61. package/services/migration-service/scripts/index.js +3 -1
  62. package/services/migration-service/scripts/tokens/MigratePolygonUSDCProvider.d.ts +5 -0
  63. package/services/migration-service/scripts/tokens/MigratePolygonUSDCProvider.js +8 -0
  64. package/services/migration-service/scripts/tokens/MigrateToken.d.ts +9 -0
  65. package/services/migration-service/scripts/tokens/MigrateToken.js +26 -0
  66. package/services/setting-service/SettingService.js +2 -1
  67. package/services/setting-service/i18n/i18n.js +2 -1
  68. package/services/storage-service/DatabaseService.d.ts +3 -1
  69. package/services/storage-service/DatabaseService.js +7 -19
  70. package/services/storage-service/db-stores/Balance.d.ts +3 -2
  71. package/services/storage-service/db-stores/Balance.js +4 -13
  72. package/services/wallet-connect-service/index.js +5 -3
  73. package/storage/index.d.ts +14 -0
  74. package/storage/index.js +52 -0
  75. package/utils/array.d.ts +1 -0
  76. package/utils/array.js +26 -1
@@ -5,6 +5,7 @@ import _classPrivateFieldLooseKey from "@babel/runtime/helpers/esm/classPrivateF
5
5
 
6
6
  import { formatJsonRpcError } from '@json-rpc-tools/utils';
7
7
  import Eip155RequestHandler from '@subwallet/extension-base/services/wallet-connect-service/handler/Eip155RequestHandler';
8
+ import { SWStorage } from '@subwallet/extension-base/storage';
8
9
  import SignClient from '@walletconnect/sign-client';
9
10
  import { getInternalError, getSdkError } from '@walletconnect/utils';
10
11
  import { BehaviorSubject } from 'rxjs';
@@ -12,6 +13,7 @@ import PolkadotRequestHandler from "./handler/PolkadotRequestHandler.js";
12
13
  import { ALL_WALLET_CONNECT_EVENT, DEFAULT_WALLET_CONNECT_OPTIONS, WALLET_CONNECT_SUPPORTED_METHODS } from "./constants.js";
13
14
  import { convertConnectRequest, convertNotSupportRequest, isSupportWalletConnectChain } from "./helpers.js";
14
15
  import { EIP155_SIGNING_METHODS, POLKADOT_SIGNING_METHODS } from "./types.js";
16
+ const storage = SWStorage.instance;
15
17
  var _requestService = /*#__PURE__*/_classPrivateFieldLooseKey("requestService");
16
18
  var _polkadotRequestHandler = /*#__PURE__*/_classPrivateFieldLooseKey("polkadotRequestHandler");
17
19
  var _eip155RequestHandler = /*#__PURE__*/_classPrivateFieldLooseKey("eip155RequestHandler");
@@ -185,9 +187,9 @@ export default class WalletConnectService {
185
187
  }
186
188
  }
187
189
  function _get_haveData() {
188
- const sessionStorage = localStorage.getItem('wc@2:client:0.3//session');
189
- const pairingStorage = localStorage.getItem('wc@2:core:0.3//pairing');
190
- const subscriptionStorage = localStorage.getItem('wc@2:core:0.3//subscription');
190
+ const sessionStorage = storage.getItem('wc@2:client:0.3//session');
191
+ const pairingStorage = storage.getItem('wc@2:core:0.3//pairing');
192
+ const subscriptionStorage = storage.getItem('wc@2:core:0.3//subscription');
191
193
  const sessions = sessionStorage ? JSON.parse(sessionStorage) : [];
192
194
  const pairings = pairingStorage ? JSON.parse(pairingStorage) : [];
193
195
  const subscriptions = subscriptionStorage ? JSON.parse(subscriptionStorage) : [];
@@ -0,0 +1,14 @@
1
+ export declare class SWStorage {
2
+ private _storage;
3
+ constructor();
4
+ setItem(key: string, value: string): void;
5
+ getItem(key: string): string | null;
6
+ removeItem(key: string): void;
7
+ clear(): void;
8
+ key(index: number): string | null;
9
+ length(index: number): string | null;
10
+ keys(): string[];
11
+ copy(): Record<string, string>;
12
+ sync(): void;
13
+ static get instance(): SWStorage;
14
+ }
@@ -0,0 +1,52 @@
1
+ // Copyright 2019-2022 @polkadot/extension-base authors & contributors
2
+ // SPDX-License-Identifier: Apache-2.0
3
+
4
+ export class SWStorage {
5
+ _storage = {};
6
+ constructor() {
7
+ this.sync();
8
+ }
9
+ setItem(key, value) {
10
+ this._storage[key] = value;
11
+ localStorage.setItem(key, value);
12
+ }
13
+ getItem(key) {
14
+ return this._storage[key] || localStorage.getItem(key) || null;
15
+ }
16
+ removeItem(key) {
17
+ this._storage[key] && delete this._storage[key];
18
+ localStorage.removeItem(key);
19
+ }
20
+ clear() {
21
+ this._storage = {};
22
+ localStorage.clear();
23
+ }
24
+ key(index) {
25
+ return Object.keys(this._storage)[index] || null;
26
+ }
27
+ length(index) {
28
+ return Object.keys(this._storage)[index] || null;
29
+ }
30
+
31
+ // Additional methods
32
+ keys() {
33
+ return Object.keys(this._storage) || [];
34
+ }
35
+ copy() {
36
+ return JSON.parse(JSON.stringify(this._storage));
37
+ }
38
+ sync() {
39
+ this._storage = JSON.parse(JSON.stringify(localStorage));
40
+ }
41
+ static get instance() {
42
+ // @ts-ignore
43
+ if (!window.SWStorage) {
44
+ console.log('SWStorage init');
45
+ // @ts-ignore
46
+ window.SWStorage = new SWStorage();
47
+ }
48
+
49
+ // @ts-ignore
50
+ return window.SWStorage;
51
+ }
52
+ }
package/utils/array.d.ts CHANGED
@@ -1 +1,2 @@
1
1
  export declare const uniqueStringArray: (array: string[]) => string[];
2
+ export declare function listMerge<T extends Record<string, any>>(keys: string[] | string, existed: T[], newItems: T[]): T[];
package/utils/array.js CHANGED
@@ -7,4 +7,29 @@ export const uniqueStringArray = array => {
7
7
  map[v] = v;
8
8
  });
9
9
  return Object.keys(map);
10
- };
10
+ };
11
+ export function listMerge(keys, existed, newItems) {
12
+ const getKey = (ks, item) => {
13
+ if (typeof ks === 'string') {
14
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-call,@typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-return
15
+ return item[ks].toString();
16
+ }
17
+
18
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-call,@typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-return
19
+ return ks.map(k => item[k].toString()).join('_');
20
+ };
21
+
22
+ // Build existed map with keys
23
+ const existedMap = Object.fromEntries(existed.map(v => {
24
+ return [getKey(keys, v), v];
25
+ }));
26
+ newItems.forEach(item => {
27
+ const key = getKey(keys, item);
28
+ if (existedMap[key]) {
29
+ Object.assign(existedMap[key], item);
30
+ } else {
31
+ existed.push(item);
32
+ }
33
+ });
34
+ return existed;
35
+ }