@subwallet/extension-base 1.1.68-1 → 1.2.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.
- package/background/KoniTypes.d.ts +3 -1
- package/background/handlers/State.d.ts +1 -78
- package/background/handlers/State.js +1 -428
- package/background/types.d.ts +1 -0
- package/cjs/background/handlers/State.js +1 -456
- package/cjs/constants/storage.js +3 -1
- package/cjs/koni/api/dotsama/crowdloan.js +1 -2
- package/cjs/koni/api/nft/acala_nft/index.js +1 -3
- package/cjs/koni/api/nft/assethub_nft/index.js +1 -3
- package/cjs/koni/api/nft/assethub_unique/index.js +1 -3
- package/cjs/koni/api/nft/bit.country/index.js +4 -6
- package/cjs/koni/api/nft/config.js +1 -8
- package/cjs/koni/api/nft/evm_nft/index.js +1 -3
- package/cjs/koni/api/nft/karura_nft/index.js +1 -3
- package/cjs/koni/api/nft/ordinal_nft/index.js +4 -3
- package/cjs/koni/api/nft/rmrk_nft/index.js +4 -6
- package/cjs/koni/api/nft/unique_network_nft/index.js +1 -3
- package/cjs/koni/api/nft/unique_nft/uniqueNftV2.js +1 -3
- package/cjs/koni/api/nft/vara_nft/index.js +1 -3
- package/cjs/koni/api/nft/wasm_nft/index.js +10 -17
- package/cjs/koni/api/staking/bonding/astar.js +2 -4
- package/cjs/koni/api/staking/subsquidStaking.js +9 -12
- package/cjs/koni/api/subquery/subquery.js +1 -3
- package/cjs/koni/background/handlers/Extension.js +39 -15
- package/cjs/koni/background/handlers/Mobile.js +7 -4
- package/cjs/koni/background/handlers/State.js +68 -12
- package/cjs/koni/background/handlers/Tabs.js +4 -1
- package/cjs/koni/background/handlers/index.js +71 -71
- package/cjs/koni/background/subscription.js +7 -6
- package/cjs/packageInfo.js +1 -1
- package/cjs/services/campaign-service/helpers.js +3 -1
- package/cjs/services/chain-service/index.js +37 -29
- package/cjs/services/chain-service/utils/patch.js +1 -3
- package/cjs/services/earning-service/handlers/liquid-staking/acala.js +1 -2
- package/cjs/services/earning-service/handlers/liquid-staking/bifrost-manta.js +2 -3
- package/cjs/services/earning-service/handlers/liquid-staking/bifrost.js +2 -3
- package/cjs/services/earning-service/handlers/liquid-staking/stella-swap.js +1 -2
- package/cjs/services/earning-service/handlers/native-staking/astar.js +3 -4
- package/cjs/services/event-service/index.js +0 -1
- package/cjs/services/history-service/subsquid-multi-chain-history.js +1 -3
- package/cjs/services/keyring-service/index.js +22 -0
- package/cjs/services/migration-service/scripts/MigrateRemoveGenesisHash.js +28 -0
- package/cjs/services/migration-service/scripts/index.js +3 -1
- package/cjs/services/mint-campaign-service/campaigns/UnlockDotCampaign.js +16 -21
- package/cjs/services/notification-service/NotificationService.js +3 -1
- package/cjs/services/price-service/coingecko.js +6 -7
- package/cjs/services/price-service/index.js +7 -3
- package/cjs/services/request-service/handler/PopupHandler.js +14 -15
- package/cjs/services/setting-service/SettingService.js +4 -1
- package/cjs/services/setting-service/constants.js +1 -1
- package/cjs/services/setting-service/i18n/i18n.js +2 -4
- package/cjs/services/storage-service/DatabaseService.js +1 -1
- package/cjs/services/storage-service/databases/index.js +14 -1
- package/cjs/services/storage-service/db-stores/KeyValue.js +13 -0
- package/cjs/services/subscan-service/index.js +11 -3
- package/cjs/services/transaction-service/index.js +3 -3
- package/cjs/services/wallet-connect-service/constants.js +2 -2
- package/cjs/services/wallet-connect-service/helpers.js +1 -4
- package/cjs/services/wallet-connect-service/index.js +50 -33
- package/cjs/storage/index.js +120 -23
- package/cjs/types/common/index.js +16 -0
- package/cjs/types/common/storage.js +1 -0
- package/cjs/types/index.js +11 -0
- package/cjs/utils/environment.js +1 -1
- package/cjs/utils/eth/parseTransaction/index.js +8 -10
- package/cjs/utils/fetch.js +55 -0
- package/cjs/utils/fetchStaticCache.js +2 -4
- package/cjs/utils/fetchStaticData.js +7 -4
- package/cjs/utils/index.js +24 -0
- package/cjs/utils/reportError.js +1 -3
- package/constants/storage.d.ts +1 -0
- package/constants/storage.js +1 -0
- package/koni/api/dotsama/crowdloan.js +2 -3
- package/koni/api/nft/acala_nft/index.js +0 -1
- package/koni/api/nft/assethub_nft/index.js +0 -1
- package/koni/api/nft/assethub_unique/index.js +0 -1
- package/koni/api/nft/bit.country/index.js +0 -1
- package/koni/api/nft/config.js +1 -7
- package/koni/api/nft/evm_nft/index.js +0 -1
- package/koni/api/nft/karura_nft/index.js +0 -1
- package/koni/api/nft/ordinal_nft/index.d.ts +2 -0
- package/koni/api/nft/ordinal_nft/index.js +4 -3
- package/koni/api/nft/rmrk_nft/index.js +0 -1
- package/koni/api/nft/unique_network_nft/index.js +0 -1
- package/koni/api/nft/unique_nft/uniqueNftV2.js +0 -1
- package/koni/api/nft/vara_nft/index.js +0 -1
- package/koni/api/nft/wasm_nft/index.js +4 -10
- package/koni/api/staking/bonding/astar.js +0 -1
- package/koni/api/staking/subsquidStaking.js +10 -12
- package/koni/api/subquery/subquery.js +0 -1
- package/koni/background/handlers/Extension.d.ts +4 -0
- package/koni/background/handlers/Extension.js +29 -8
- package/koni/background/handlers/Mobile.js +9 -6
- package/koni/background/handlers/State.d.ts +6 -1
- package/koni/background/handlers/State.js +68 -12
- package/koni/background/handlers/Tabs.js +4 -1
- package/koni/background/handlers/index.d.ts +13 -7
- package/koni/background/handlers/index.js +67 -62
- package/koni/background/subscription.js +2 -1
- package/package.json +36 -29
- package/packageInfo.js +1 -1
- package/services/campaign-service/helpers.js +3 -1
- package/services/chain-service/index.js +37 -30
- package/services/chain-service/utils/patch.js +0 -1
- package/services/earning-service/handlers/liquid-staking/acala.js +0 -1
- package/services/earning-service/handlers/liquid-staking/bifrost-manta.js +0 -1
- package/services/earning-service/handlers/liquid-staking/bifrost.js +0 -1
- package/services/earning-service/handlers/liquid-staking/stella-swap.js +0 -1
- package/services/earning-service/handlers/native-staking/astar.js +0 -1
- package/services/event-service/index.js +0 -1
- package/services/history-service/subsquid-multi-chain-history.js +0 -1
- package/services/keyring-service/index.d.ts +1 -0
- package/services/keyring-service/index.js +19 -0
- package/services/migration-service/scripts/MigrateRemoveGenesisHash.d.ts +4 -0
- package/services/migration-service/scripts/MigrateRemoveGenesisHash.js +20 -0
- package/services/migration-service/scripts/index.js +3 -1
- package/services/mint-campaign-service/campaigns/UnlockDotCampaign.js +17 -21
- package/services/notification-service/NotificationService.js +3 -1
- package/services/price-service/coingecko.js +6 -6
- package/services/price-service/index.js +7 -3
- package/services/request-service/handler/PopupHandler.d.ts +1 -1
- package/services/request-service/handler/PopupHandler.js +14 -15
- package/services/setting-service/SettingService.d.ts +1 -0
- package/services/setting-service/SettingService.js +4 -1
- package/services/setting-service/constants.js +2 -2
- package/services/setting-service/i18n/i18n.js +2 -4
- package/services/storage-service/DatabaseService.js +1 -1
- package/services/storage-service/databases/index.d.ts +8 -0
- package/services/storage-service/databases/index.js +13 -1
- package/services/storage-service/db-stores/KeyValue.d.ts +4 -0
- package/services/storage-service/db-stores/KeyValue.js +5 -0
- package/services/subscan-service/index.d.ts +2 -0
- package/services/subscan-service/index.js +10 -1
- package/services/transaction-service/index.js +4 -4
- package/services/wallet-connect-service/constants.js +3 -3
- package/services/wallet-connect-service/helpers.js +1 -4
- package/services/wallet-connect-service/index.d.ts +2 -0
- package/services/wallet-connect-service/index.js +42 -31
- package/storage/index.d.ts +19 -9
- package/storage/index.js +115 -23
- package/types/common/index.d.ts +1 -0
- package/types/common/index.js +4 -0
- package/types/common/storage.d.ts +4 -0
- package/types/common/storage.js +1 -0
- package/types/index.d.ts +1 -0
- package/types/index.js +1 -0
- package/utils/environment.js +1 -1
- package/utils/eth/parseTransaction/index.js +8 -10
- package/utils/fetch.d.ts +8 -0
- package/utils/fetch.js +44 -0
- package/utils/fetchStaticCache.js +2 -3
- package/utils/fetchStaticData.d.ts +1 -1
- package/utils/fetchStaticData.js +7 -4
- package/utils/index.d.ts +2 -0
- package/utils/index.js +2 -0
- package/utils/reportError.js +0 -1
- package/background/handlers/Extension.d.ts +0 -55
- package/background/handlers/Extension.js +0 -601
- package/background/handlers/Tabs.d.ts +0 -24
- package/background/handlers/Tabs.js +0 -194
- package/background/handlers/index.d.ts +0 -3
- package/background/handlers/index.js +0 -45
- package/cjs/background/handlers/Extension.js +0 -642
- package/cjs/background/handlers/Tabs.js +0 -222
- package/cjs/background/handlers/index.js +0 -54
- package/cjs/koni/background/events.js +0 -14
- package/koni/background/events.d.ts +0 -1
- package/koni/background/events.js +0 -7
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
3
|
Object.defineProperty(exports, "__esModule", {
|
|
5
4
|
value: true
|
|
6
5
|
});
|
|
@@ -10,7 +9,6 @@ exports.parseSubsquidTransactionData = parseSubsquidTransactionData;
|
|
|
10
9
|
var _client = require("@apollo/client");
|
|
11
10
|
var _KoniTypes = require("@subwallet/extension-base/background/KoniTypes");
|
|
12
11
|
var _constants = require("@subwallet/extension-base/services/history-service/constants");
|
|
13
|
-
var _crossFetch = _interopRequireDefault(require("cross-fetch"));
|
|
14
12
|
var _util = require("@polkadot/util");
|
|
15
13
|
var _utilCrypto = require("@polkadot/util-crypto");
|
|
16
14
|
// Copyright 2019-2022 @subwallet/extension-koni authors & contributors
|
|
@@ -21,7 +19,7 @@ const MultiChainTxClient = new _client.ApolloClient({
|
|
|
21
19
|
cache: new _client.InMemoryCache(),
|
|
22
20
|
link: (0, _client.createHttpLink)({
|
|
23
21
|
uri: MULTI_CHAIN_URL,
|
|
24
|
-
fetch:
|
|
22
|
+
fetch: fetch
|
|
25
23
|
})
|
|
26
24
|
});
|
|
27
25
|
const query = (0, _client.gql)`query transactionQuery($addresses: [String!], $olderThanId: String) {
|
|
@@ -186,5 +186,27 @@ class KeyringService {
|
|
|
186
186
|
currentGenesisHash: null
|
|
187
187
|
});
|
|
188
188
|
}
|
|
189
|
+
/* Reset */
|
|
190
|
+
|
|
191
|
+
/* Others */
|
|
192
|
+
removeNoneHardwareGenesisHash() {
|
|
193
|
+
const pairs = _uiKeyring.keyring.getPairs();
|
|
194
|
+
const needUpdatePairs = pairs.filter(_ref => {
|
|
195
|
+
let {
|
|
196
|
+
meta: {
|
|
197
|
+
genesisHash,
|
|
198
|
+
isHardware
|
|
199
|
+
}
|
|
200
|
+
} = _ref;
|
|
201
|
+
return !isHardware && genesisHash && genesisHash !== '';
|
|
202
|
+
});
|
|
203
|
+
needUpdatePairs.forEach(pair => {
|
|
204
|
+
_uiKeyring.keyring.saveAccountMeta(pair, {
|
|
205
|
+
...pair.meta,
|
|
206
|
+
genesisHash: ''
|
|
207
|
+
});
|
|
208
|
+
});
|
|
209
|
+
}
|
|
210
|
+
/* Others */
|
|
189
211
|
}
|
|
190
212
|
exports.KeyringService = KeyringService;
|
|
@@ -0,0 +1,28 @@
|
|
|
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 MigrateRemoveGenesisHash extends _Base.default {
|
|
13
|
+
async run() {
|
|
14
|
+
try {
|
|
15
|
+
return new Promise(resolve => {
|
|
16
|
+
try {
|
|
17
|
+
this.state.keyringService.removeNoneHardwareGenesisHash();
|
|
18
|
+
} catch (e) {
|
|
19
|
+
console.error(e);
|
|
20
|
+
}
|
|
21
|
+
resolve();
|
|
22
|
+
});
|
|
23
|
+
} catch (e) {
|
|
24
|
+
console.error(e);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
exports.default = MigrateRemoveGenesisHash;
|
|
@@ -7,6 +7,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
exports.default = exports.EVERYTIME = void 0;
|
|
8
8
|
var _AutoEnableSomeTokens = _interopRequireDefault(require("@subwallet/extension-base/services/migration-service/scripts/databases/AutoEnableSomeTokens"));
|
|
9
9
|
var _DeleteEarningData = _interopRequireDefault(require("@subwallet/extension-base/services/migration-service/scripts/DeleteEarningData"));
|
|
10
|
+
var _MigrateRemoveGenesisHash = _interopRequireDefault(require("@subwallet/extension-base/services/migration-service/scripts/MigrateRemoveGenesisHash"));
|
|
10
11
|
var _MigrateTransactionHistoryBySymbol = _interopRequireDefault(require("@subwallet/extension-base/services/migration-service/scripts/MigrateTransactionHistoryBySymbol"));
|
|
11
12
|
var _MigrateAssetSetting = _interopRequireDefault(require("./databases/MigrateAssetSetting"));
|
|
12
13
|
var _MigrateEarningVersion = _interopRequireDefault(require("./databases/MigrateEarningVersion"));
|
|
@@ -57,7 +58,8 @@ var _default = {
|
|
|
57
58
|
'1.1.41-01': _DeleteChainStaking.default,
|
|
58
59
|
'1.1.46-01': _AutoEnableSomeTokens.default,
|
|
59
60
|
'1.1.62-01': _MigrateAssetSetting.default,
|
|
60
|
-
'1.1.62-02': _MigrateTransactionHistoryBySymbol.default
|
|
61
|
+
'1.1.62-02': _MigrateTransactionHistoryBySymbol.default,
|
|
62
|
+
'1.2.69-01': _MigrateRemoveGenesisHash.default
|
|
61
63
|
// [`${EVERYTIME}-1.1.42-02`]: MigrateTransactionHistoryBySymbol
|
|
62
64
|
// [`${EVERYTIME}-1`]: AutoEnableChainsTokens
|
|
63
65
|
};
|
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
3
|
Object.defineProperty(exports, "__esModule", {
|
|
5
4
|
value: true
|
|
6
5
|
});
|
|
7
6
|
exports.default = void 0;
|
|
8
7
|
var _utils = require("@subwallet/extension-base/utils");
|
|
9
|
-
var _axios = _interopRequireDefault(require("axios"));
|
|
10
8
|
var _rxjs = require("rxjs");
|
|
11
9
|
var _constants = require("../constants");
|
|
12
10
|
// Copyright 2019-2022 @subwallet/extension-base authors & contributors
|
|
@@ -68,13 +66,13 @@ class UnlockDotCampaign {
|
|
|
68
66
|
network
|
|
69
67
|
}
|
|
70
68
|
};
|
|
71
|
-
const
|
|
72
|
-
baseURL: this.#host,
|
|
73
|
-
url: '/api/mint/check',
|
|
69
|
+
const respData = await (0, _utils.fetchJson)(`${this.#host}/api/mint/check`, {
|
|
74
70
|
method: 'POST',
|
|
75
|
-
|
|
71
|
+
headers: {
|
|
72
|
+
'Content-Type': 'application/json'
|
|
73
|
+
},
|
|
74
|
+
body: JSON.stringify(data)
|
|
76
75
|
});
|
|
77
|
-
const respData = response.data;
|
|
78
76
|
if (respData.inMintingTime && respData.hasBalance && respData.validCampaign && respData.validCategory && respData.validUser && respData.notDuplicated && respData.requestId && respData.requestId > 1) {
|
|
79
77
|
return respData.requestId;
|
|
80
78
|
}
|
|
@@ -85,13 +83,13 @@ class UnlockDotCampaign {
|
|
|
85
83
|
requestId: id,
|
|
86
84
|
recipient: address
|
|
87
85
|
};
|
|
88
|
-
|
|
89
|
-
baseURL: this.#host,
|
|
90
|
-
url: '/api/mint/submit',
|
|
86
|
+
return await (0, _utils.fetchJson)(`${this.#host}/api/mint/submit`, {
|
|
91
87
|
method: 'POST',
|
|
92
|
-
|
|
88
|
+
headers: {
|
|
89
|
+
'Content-Type': 'application/json'
|
|
90
|
+
},
|
|
91
|
+
body: JSON.stringify(data)
|
|
93
92
|
});
|
|
94
|
-
return response.data;
|
|
95
93
|
}
|
|
96
94
|
|
|
97
95
|
// @ts-ignore
|
|
@@ -99,13 +97,10 @@ class UnlockDotCampaign {
|
|
|
99
97
|
const params = {
|
|
100
98
|
address
|
|
101
99
|
};
|
|
102
|
-
const
|
|
103
|
-
baseURL: this.#host,
|
|
104
|
-
url: '/api/mint/fetch',
|
|
100
|
+
const data = await (0, _utils.fetchJson)(`${this.#host}/api/mint/check`, {
|
|
105
101
|
method: 'GET',
|
|
106
102
|
params: params
|
|
107
103
|
});
|
|
108
|
-
const data = response.data;
|
|
109
104
|
for (const item of data) {
|
|
110
105
|
if ((0, _utils.isSameAddress)(item.address, address) && slug === item.mintCategory && item.status === 'success' && item.campaignId === this.#campaignId) {
|
|
111
106
|
return item;
|
|
@@ -123,13 +118,13 @@ class UnlockDotCampaign {
|
|
|
123
118
|
network
|
|
124
119
|
}
|
|
125
120
|
};
|
|
126
|
-
const
|
|
127
|
-
baseURL: this.#host,
|
|
128
|
-
url: '/api/mint/check',
|
|
121
|
+
const respData = await (0, _utils.fetchJson)(`${this.#host}/api/mint/check`, {
|
|
129
122
|
method: 'POST',
|
|
130
|
-
|
|
123
|
+
headers: {
|
|
124
|
+
'Content-Type': 'application/json'
|
|
125
|
+
},
|
|
126
|
+
body: JSON.stringify(data)
|
|
131
127
|
});
|
|
132
|
-
const respData = response.data;
|
|
133
128
|
if (respData.inMintingTime && respData.validCampaign && respData.validCategory && respData.validUser && respData.notDuplicated) {
|
|
134
129
|
return true;
|
|
135
130
|
}
|
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
3
|
Object.defineProperty(exports, "__esModule", {
|
|
5
4
|
value: true
|
|
6
5
|
});
|
|
7
6
|
exports.getPriceMap = exports.getExchangeRateMap = void 0;
|
|
8
7
|
var _staticData = require("@subwallet/extension-base/utils/staticData");
|
|
9
|
-
var _axios = _interopRequireDefault(require("axios"));
|
|
10
8
|
// Copyright 2019-2022 @subwallet/extension-koni authors & contributors
|
|
11
9
|
// SPDX-License-Identifier: Apache-2.0
|
|
12
10
|
|
|
@@ -14,7 +12,8 @@ const DEFAULT_CURRENCY = 'USD';
|
|
|
14
12
|
let useBackupApi = false;
|
|
15
13
|
const getExchangeRateMap = async () => {
|
|
16
14
|
try {
|
|
17
|
-
const
|
|
15
|
+
const response = await fetch('https://api-cache.subwallet.app/exchange-rate');
|
|
16
|
+
const responseDataExchangeRate = (await response.json()) || {};
|
|
18
17
|
const exchangeRateMap = Object.keys(responseDataExchangeRate.conversion_rates).reduce((map, exchangeKey) => {
|
|
19
18
|
if (!_staticData.staticData[_staticData.StaticKey.CURRENCY_SYMBOL][exchangeKey]) {
|
|
20
19
|
return map;
|
|
@@ -33,25 +32,25 @@ const getExchangeRateMap = async () => {
|
|
|
33
32
|
};
|
|
34
33
|
exports.getExchangeRateMap = getExchangeRateMap;
|
|
35
34
|
const getPriceMap = async function (priceIds) {
|
|
36
|
-
var _rs, _rs2
|
|
35
|
+
var _rs, _rs2;
|
|
37
36
|
let currency = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'USD';
|
|
38
37
|
const idStr = Array.from(priceIds).join(',');
|
|
39
38
|
let rs;
|
|
40
39
|
if (!useBackupApi) {
|
|
41
40
|
try {
|
|
42
|
-
rs = await
|
|
41
|
+
rs = await fetch(`https://api.coingecko.com/api/v3/coins/markets?vs_currency=${currency.toLowerCase()}&per_page=250&ids=${idStr}`);
|
|
43
42
|
} catch (err) {
|
|
44
43
|
useBackupApi = true;
|
|
45
44
|
}
|
|
46
45
|
}
|
|
47
46
|
if (useBackupApi || ((_rs = rs) === null || _rs === void 0 ? void 0 : _rs.status) !== 200) {
|
|
48
47
|
useBackupApi = true;
|
|
49
|
-
rs = await
|
|
48
|
+
rs = await fetch(`https://chain-data.subwallet.app/api/price/get?ids=${idStr}`);
|
|
50
49
|
}
|
|
51
50
|
if (((_rs2 = rs) === null || _rs2 === void 0 ? void 0 : _rs2.status) !== 200) {
|
|
52
51
|
console.warn('Failed to get token price');
|
|
53
52
|
}
|
|
54
|
-
const responseDataPrice = (
|
|
53
|
+
const responseDataPrice = (await rs.json()) || [];
|
|
55
54
|
const currencyData = _staticData.staticData[_staticData.StaticKey.CURRENCY_SYMBOL][currency || DEFAULT_CURRENCY];
|
|
56
55
|
const priceMap = {};
|
|
57
56
|
const price24hMap = {};
|
|
@@ -42,8 +42,9 @@ class PriceService {
|
|
|
42
42
|
this.eventService = eventService;
|
|
43
43
|
this.chainService = chainService;
|
|
44
44
|
const updateCurrency = currentCurrency => {
|
|
45
|
-
|
|
46
|
-
|
|
45
|
+
_storage.SWStorage.instance.getItem(_constants.CURRENCY).then(currency => {
|
|
46
|
+
this.setCurrentCurrency(currency || currentCurrency || DEFAULT_CURRENCY);
|
|
47
|
+
}).catch(console.error);
|
|
47
48
|
};
|
|
48
49
|
this.init().then(() => this.getCurrentCurrency(updateCurrency)).catch(console.error);
|
|
49
50
|
}
|
|
@@ -94,6 +95,9 @@ class PriceService {
|
|
|
94
95
|
} = this.rawPriceSubject.value;
|
|
95
96
|
const exchangeRateData = this.rawExchangeRateMap.value;
|
|
96
97
|
const currencyKey = currency || DEFAULT_CURRENCY;
|
|
98
|
+
if (Object.keys(this.rawPriceSubject.value).length === 0) {
|
|
99
|
+
return;
|
|
100
|
+
}
|
|
97
101
|
if (Object.keys(exchangeRateData).length === 0) {
|
|
98
102
|
return;
|
|
99
103
|
}
|
|
@@ -133,7 +137,7 @@ class PriceService {
|
|
|
133
137
|
|
|
134
138
|
// Await 1s to get the latest exchange rate
|
|
135
139
|
await new Promise(resolve => setTimeout(resolve, 300));
|
|
136
|
-
_storage.SWStorage.instance.setItem(_constants.CURRENCY, newCurrencyCode);
|
|
140
|
+
await _storage.SWStorage.instance.setItem(_constants.CURRENCY, newCurrencyCode);
|
|
137
141
|
return true;
|
|
138
142
|
}
|
|
139
143
|
refreshPriceData(priceIds) {
|
|
@@ -11,7 +11,7 @@ var _utils = require("@subwallet/extension-base/utils");
|
|
|
11
11
|
// Copyright 2019-2022 @subwallet/extension-base authors & contributors
|
|
12
12
|
// SPDX-License-Identifier: Apache-2.0
|
|
13
13
|
|
|
14
|
-
const NOTIFICATION_URL = chrome.
|
|
14
|
+
const NOTIFICATION_URL = chrome.runtime.getURL('notification.html');
|
|
15
15
|
const extraHeight = _utils.osName === 'Linux' ? 0 : 28;
|
|
16
16
|
const extraWidth = _utils.osName === 'Windows' ? 16 : 0;
|
|
17
17
|
const POPUP_WINDOW_OPTS = {
|
|
@@ -26,18 +26,17 @@ const NORMAL_WINDOW_OPTS = {
|
|
|
26
26
|
type: 'normal',
|
|
27
27
|
url: NOTIFICATION_URL
|
|
28
28
|
};
|
|
29
|
-
function openPopup(url) {
|
|
30
|
-
chrome.windows.getCurrent(
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
});
|
|
29
|
+
async function openPopup(url) {
|
|
30
|
+
const win = await chrome.windows.getCurrent();
|
|
31
|
+
const popupOptions = {
|
|
32
|
+
...POPUP_WINDOW_OPTS,
|
|
33
|
+
url
|
|
34
|
+
};
|
|
35
|
+
if (win) {
|
|
36
|
+
popupOptions.left = (win.left || 0) + (win.width || 0) - (popupOptions.width || 0) - 20;
|
|
37
|
+
popupOptions.top = (win.top || 0) + 110;
|
|
38
|
+
}
|
|
39
|
+
await chrome.windows.create(popupOptions);
|
|
41
40
|
}
|
|
42
41
|
class PopupHandler {
|
|
43
42
|
#requestService;
|
|
@@ -57,8 +56,8 @@ class PopupHandler {
|
|
|
57
56
|
const numRequests = this.#requestService.numRequests;
|
|
58
57
|
const text = numRequests > 0 ? numRequests.toString() : '';
|
|
59
58
|
(0, _helpers.withErrorLog)(() => {
|
|
60
|
-
var _chrome$
|
|
61
|
-
return (_chrome$
|
|
59
|
+
var _chrome$action;
|
|
60
|
+
return (_chrome$action = chrome.action) === null || _chrome$action === void 0 ? void 0 : _chrome$action.setBadgeText({
|
|
62
61
|
text
|
|
63
62
|
});
|
|
64
63
|
});
|
|
@@ -18,7 +18,10 @@ class SettingService {
|
|
|
18
18
|
settingsStore = new _Settings.default();
|
|
19
19
|
passPhishingStore = new _PassPhishingStore.default();
|
|
20
20
|
constructor() {
|
|
21
|
-
|
|
21
|
+
this.initSetting().catch(console.error);
|
|
22
|
+
}
|
|
23
|
+
async initSetting() {
|
|
24
|
+
let old = (await _storage.SWStorage.instance.getItem(_constants.LANGUAGE)) || 'en';
|
|
22
25
|
const updateLanguage = _ref => {
|
|
23
26
|
let {
|
|
24
27
|
language
|
|
@@ -15,7 +15,7 @@ const DEFAULT_NOTIFICATION_TYPE = 'popup';
|
|
|
15
15
|
exports.DEFAULT_NOTIFICATION_TYPE = DEFAULT_NOTIFICATION_TYPE;
|
|
16
16
|
const DEFAULT_AUTO_LOCK_TIME = 15;
|
|
17
17
|
exports.DEFAULT_AUTO_LOCK_TIME = DEFAULT_AUTO_LOCK_TIME;
|
|
18
|
-
const DEFAULT_UNLOCK_TYPE = _utils.
|
|
18
|
+
const DEFAULT_UNLOCK_TYPE = _utils.targetIsExtension ? _KoniTypes.WalletUnlockType.ALWAYS_REQUIRED : _KoniTypes.WalletUnlockType.WHEN_NEEDED;
|
|
19
19
|
exports.DEFAULT_UNLOCK_TYPE = DEFAULT_UNLOCK_TYPE;
|
|
20
20
|
const DEFAULT_CHAIN_PATROL_ENABLE = false;
|
|
21
21
|
exports.DEFAULT_CHAIN_PATROL_ENABLE = DEFAULT_CHAIN_PATROL_ENABLE;
|
|
@@ -5,8 +5,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
7
|
exports.default = void 0;
|
|
8
|
-
var _constants = require("@subwallet/extension-base/constants");
|
|
9
|
-
var _storage = require("@subwallet/extension-base/storage");
|
|
10
8
|
var _i18next = _interopRequireDefault(require("i18next"));
|
|
11
9
|
var _Backend = _interopRequireDefault(require("./Backend"));
|
|
12
10
|
// Copyright 2019-2022 @polkadot/extension-ui authors & contributors
|
|
@@ -20,11 +18,11 @@ _i18next.default.use(_Backend.default).init({
|
|
|
20
18
|
escapeValue: false
|
|
21
19
|
},
|
|
22
20
|
keySeparator: false,
|
|
23
|
-
lng:
|
|
21
|
+
lng: 'en',
|
|
24
22
|
load: 'languageOnly',
|
|
25
23
|
nsSeparator: false,
|
|
26
24
|
returnEmptyString: false,
|
|
27
25
|
returnNull: false
|
|
28
|
-
}).catch(
|
|
26
|
+
}).catch(console.error);
|
|
29
27
|
var _default = _i18next.default;
|
|
30
28
|
exports.default = _default;
|
|
@@ -29,7 +29,7 @@ class DatabaseService {
|
|
|
29
29
|
constructor(eventService) {
|
|
30
30
|
this.eventService = eventService;
|
|
31
31
|
this.logger = (0, _util.logger)('DB-Service');
|
|
32
|
-
this._db =
|
|
32
|
+
this._db = _databases.default.getInstance();
|
|
33
33
|
this._db.on('ready', () => {
|
|
34
34
|
this.eventService.emit('database.ready', true);
|
|
35
35
|
});
|
|
@@ -4,12 +4,13 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
-
exports.default = void 0;
|
|
7
|
+
exports.default = exports.DEFAULT_DATABASE = void 0;
|
|
8
8
|
var _dexie = _interopRequireDefault(require("dexie"));
|
|
9
9
|
// Copyright 2019-2022 @subwallet/extension-koni authors & contributors
|
|
10
10
|
// SPDX-License-Identifier: Apache-2.0
|
|
11
11
|
|
|
12
12
|
const DEFAULT_DATABASE = 'SubWalletDB_v2';
|
|
13
|
+
exports.DEFAULT_DATABASE = DEFAULT_DATABASE;
|
|
13
14
|
class KoniDatabase extends _dexie.default {
|
|
14
15
|
constructor() {
|
|
15
16
|
let name = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : DEFAULT_DATABASE;
|
|
@@ -46,6 +47,9 @@ class KoniDatabase extends _dexie.default {
|
|
|
46
47
|
this.conditionalVersion(5, {
|
|
47
48
|
campaign: 'slug'
|
|
48
49
|
});
|
|
50
|
+
this.conditionalVersion(6, {
|
|
51
|
+
keyValue: 'key'
|
|
52
|
+
});
|
|
49
53
|
}
|
|
50
54
|
conditionalVersion(version, schema, upgrade) {
|
|
51
55
|
if (this.schemaVersion != null && this.schemaVersion < version) {
|
|
@@ -56,5 +60,14 @@ class KoniDatabase extends _dexie.default {
|
|
|
56
60
|
dexieVersion.upgrade(upgrade);
|
|
57
61
|
}
|
|
58
62
|
}
|
|
63
|
+
|
|
64
|
+
// Singletons
|
|
65
|
+
|
|
66
|
+
static getInstance(name, schemaVersion) {
|
|
67
|
+
if (!KoniDatabase.instance) {
|
|
68
|
+
KoniDatabase.instance = new KoniDatabase(name, schemaVersion);
|
|
69
|
+
}
|
|
70
|
+
return KoniDatabase.instance;
|
|
71
|
+
}
|
|
59
72
|
}
|
|
60
73
|
exports.default = KoniDatabase;
|
|
@@ -0,0 +1,13 @@
|
|
|
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 _BaseStore = _interopRequireDefault(require("@subwallet/extension-base/services/storage-service/db-stores/BaseStore"));
|
|
9
|
+
// Copyright 2019-2022 @subwallet/extension-base authors & contributors
|
|
10
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
11
|
+
|
|
12
|
+
class KeyValueStore extends _BaseStore.default {}
|
|
13
|
+
exports.default = KeyValueStore;
|
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
3
|
Object.defineProperty(exports, "__esModule", {
|
|
5
4
|
value: true
|
|
6
5
|
});
|
|
7
6
|
exports.SubscanService = void 0;
|
|
8
7
|
var _SWError = require("@subwallet/extension-base/background/errors/SWError");
|
|
9
8
|
var _constants = require("@subwallet/extension-base/koni/api/nft/ordinal_nft/constants");
|
|
9
|
+
var _subscanChainMap = require("@subwallet/extension-base/services/subscan-service/subscan-chain-map");
|
|
10
10
|
var _utils = require("@subwallet/extension-base/utils");
|
|
11
|
-
var _crossFetch = _interopRequireDefault(require("cross-fetch"));
|
|
12
11
|
// Copyright 2019-2022 @subwallet/extension-base
|
|
13
12
|
// SPDX-License-Identifier: Apache-2.0
|
|
14
13
|
|
|
@@ -48,7 +47,7 @@ class SubscanService {
|
|
|
48
47
|
return `https://${subscanChain}.api.subscan.io/${path}`;
|
|
49
48
|
}
|
|
50
49
|
postRequest(url, body) {
|
|
51
|
-
return (
|
|
50
|
+
return fetch(url, {
|
|
52
51
|
method: 'POST',
|
|
53
52
|
headers: {
|
|
54
53
|
'Content-Type': 'application/json'
|
|
@@ -330,5 +329,14 @@ class SubscanService {
|
|
|
330
329
|
return jsonData.data;
|
|
331
330
|
}, ordinal);
|
|
332
331
|
}
|
|
332
|
+
|
|
333
|
+
// Singleton
|
|
334
|
+
|
|
335
|
+
static getInstance() {
|
|
336
|
+
if (!SubscanService._instance) {
|
|
337
|
+
SubscanService._instance = new SubscanService(_subscanChainMap.SUBSCAN_API_CHAIN_MAP);
|
|
338
|
+
}
|
|
339
|
+
return SubscanService._instance;
|
|
340
|
+
}
|
|
333
341
|
}
|
|
334
342
|
exports.SubscanService = SubscanService;
|
|
@@ -1015,8 +1015,8 @@ class TransactionService {
|
|
|
1015
1015
|
// eslint-disable-next-line prefer-const
|
|
1016
1016
|
let subscribe;
|
|
1017
1017
|
const onComplete = () => {
|
|
1018
|
-
var _subscribe, _subscribe$unsubscrib
|
|
1019
|
-
(_subscribe = subscribe) === null || _subscribe === void 0 ? void 0 : (_subscribe$unsubscrib = _subscribe.unsubscribe) === null || _subscribe$unsubscrib === void 0 ? void 0 :
|
|
1018
|
+
var _subscribe, _subscribe$unsubscrib;
|
|
1019
|
+
(_subscribe = subscribe) === null || _subscribe === void 0 ? void 0 : (_subscribe$unsubscrib = _subscribe.unsubscribe) === null || _subscribe$unsubscrib === void 0 ? void 0 : _subscribe$unsubscrib.call(_subscribe);
|
|
1020
1020
|
delete this.watchTransactionSubscribes[id];
|
|
1021
1021
|
};
|
|
1022
1022
|
const onSuccess = rs => {
|
|
@@ -1041,7 +1041,7 @@ class TransactionService {
|
|
|
1041
1041
|
const onCheck = () => {
|
|
1042
1042
|
web3Api.eth.getTransactionReceipt(txHash).then(onSuccess).catch(onError);
|
|
1043
1043
|
};
|
|
1044
|
-
subscribe =
|
|
1044
|
+
subscribe = (0, _rxjs.interval)(3000).subscribe(onCheck);
|
|
1045
1045
|
});
|
|
1046
1046
|
} else {
|
|
1047
1047
|
this.removeTransaction(id);
|
|
@@ -16,8 +16,8 @@ exports.PROJECT_ID_MOBILE = PROJECT_ID_MOBILE;
|
|
|
16
16
|
const RELAY_URL = 'wss://relay.walletconnect.com';
|
|
17
17
|
exports.RELAY_URL = RELAY_URL;
|
|
18
18
|
const DEFAULT_WALLET_CONNECT_OPTIONS = {
|
|
19
|
-
logger: '
|
|
20
|
-
projectId:
|
|
19
|
+
logger: 'error',
|
|
20
|
+
projectId: _utils.targetIsMobile ? PROJECT_ID_MOBILE : PROJECT_ID_EXTENSION,
|
|
21
21
|
relayUrl: RELAY_URL,
|
|
22
22
|
metadata: {
|
|
23
23
|
name: 'SubWallet',
|
|
@@ -67,10 +67,7 @@ const isWalletConnectRequest = id => {
|
|
|
67
67
|
};
|
|
68
68
|
exports.isWalletConnectRequest = isWalletConnectRequest;
|
|
69
69
|
const isProposalExpired = params => {
|
|
70
|
-
|
|
71
|
-
const expireTime = new Date(timeNum > 10 ** 12 ? timeNum : timeNum * 1000);
|
|
72
|
-
const now = new Date();
|
|
73
|
-
return now.getTime() >= expireTime.getTime();
|
|
70
|
+
return params.expiryTimestamp * 1000 < Date.now();
|
|
74
71
|
};
|
|
75
72
|
exports.isProposalExpired = isProposalExpired;
|
|
76
73
|
const isSupportWalletConnectNamespace = namespace => {
|