@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.
- package/background/KoniTypes.d.ts +3 -3
- package/background/handlers/State.js +3 -2
- package/cjs/background/handlers/State.js +3 -2
- package/cjs/constants/staking.js +4 -2
- package/cjs/koni/api/dotsama/transfer.js +2 -2
- package/cjs/koni/api/nft/config.js +2 -1
- package/cjs/koni/api/staking/bonding/astar.js +15 -24
- package/cjs/koni/api/staking/bonding/relayChain.js +48 -25
- package/cjs/koni/api/xcm/xTokens.js +1 -1
- package/cjs/koni/background/handlers/Extension.js +15 -8
- package/cjs/koni/background/handlers/Mobile.js +81 -5
- package/cjs/koni/background/handlers/State.js +54 -118
- package/cjs/koni/background/handlers/index.js +1 -1
- package/cjs/koni/background/subscription.js +34 -11
- package/cjs/packageInfo.js +1 -1
- package/cjs/services/balance-service/BalanceMapImpl.js +111 -0
- package/cjs/services/campaign-service/index.js +2 -0
- package/cjs/services/chain-service/constants.js +20 -3
- package/cjs/services/event-service/index.js +7 -7
- package/cjs/services/event-service/types.js +1 -1
- package/cjs/services/history-service/index.js +1 -0
- package/cjs/services/keyring-service/index.js +10 -6
- package/cjs/services/migration-service/scripts/index.js +3 -1
- package/cjs/services/migration-service/scripts/tokens/MigratePolygonUSDCProvider.js +16 -0
- package/cjs/services/migration-service/scripts/tokens/MigrateToken.js +33 -0
- package/cjs/services/setting-service/SettingService.js +2 -1
- package/cjs/services/setting-service/i18n/i18n.js +2 -1
- package/cjs/services/storage-service/DatabaseService.js +8 -19
- package/cjs/services/storage-service/db-stores/Balance.js +4 -13
- package/cjs/services/wallet-connect-service/index.js +6 -3
- package/cjs/storage/index.js +59 -0
- package/cjs/utils/array.js +27 -1
- package/constants/staking.d.ts +1 -0
- package/constants/staking.js +2 -1
- package/koni/api/dotsama/transfer.js +2 -2
- package/koni/api/nft/config.js +2 -1
- package/koni/api/staking/bonding/astar.js +15 -24
- package/koni/api/staking/bonding/relayChain.js +40 -17
- package/koni/api/xcm/xTokens.js +1 -1
- package/koni/background/handlers/Extension.js +15 -8
- package/koni/background/handlers/Mobile.d.ts +6 -0
- package/koni/background/handlers/Mobile.js +75 -3
- package/koni/background/handlers/State.d.ts +10 -9
- package/koni/background/handlers/State.js +43 -105
- package/koni/background/handlers/index.js +1 -1
- package/koni/background/subscription.d.ts +4 -1
- package/koni/background/subscription.js +34 -11
- package/package.json +40 -20
- package/packageInfo.js +1 -1
- package/services/balance-service/BalanceMapImpl.d.ts +17 -0
- package/services/balance-service/BalanceMapImpl.js +101 -0
- package/services/campaign-service/index.d.ts +1 -0
- package/services/campaign-service/index.js +2 -0
- package/services/chain-service/constants.d.ts +1 -0
- package/services/chain-service/constants.js +18 -2
- package/services/event-service/index.d.ts +1 -4
- package/services/event-service/index.js +8 -7
- package/services/event-service/types.js +1 -1
- package/services/history-service/index.js +1 -0
- package/services/keyring-service/index.js +10 -6
- package/services/migration-service/scripts/index.js +3 -1
- package/services/migration-service/scripts/tokens/MigratePolygonUSDCProvider.d.ts +5 -0
- package/services/migration-service/scripts/tokens/MigratePolygonUSDCProvider.js +8 -0
- package/services/migration-service/scripts/tokens/MigrateToken.d.ts +9 -0
- package/services/migration-service/scripts/tokens/MigrateToken.js +26 -0
- package/services/setting-service/SettingService.js +2 -1
- package/services/setting-service/i18n/i18n.js +2 -1
- package/services/storage-service/DatabaseService.d.ts +3 -1
- package/services/storage-service/DatabaseService.js +7 -19
- package/services/storage-service/db-stores/Balance.d.ts +3 -2
- package/services/storage-service/db-stores/Balance.js +4 -13
- package/services/wallet-connect-service/index.js +5 -3
- package/storage/index.d.ts +14 -0
- package/storage/index.js +52 -0
- package/utils/array.d.ts +1 -0
- 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 =
|
|
189
|
-
const pairingStorage =
|
|
190
|
-
const subscriptionStorage =
|
|
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
|
+
}
|
package/storage/index.js
ADDED
|
@@ -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
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
|
+
}
|