@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.
Files changed (168) hide show
  1. package/background/KoniTypes.d.ts +3 -1
  2. package/background/handlers/State.d.ts +1 -78
  3. package/background/handlers/State.js +1 -428
  4. package/background/types.d.ts +1 -0
  5. package/cjs/background/handlers/State.js +1 -456
  6. package/cjs/constants/storage.js +3 -1
  7. package/cjs/koni/api/dotsama/crowdloan.js +1 -2
  8. package/cjs/koni/api/nft/acala_nft/index.js +1 -3
  9. package/cjs/koni/api/nft/assethub_nft/index.js +1 -3
  10. package/cjs/koni/api/nft/assethub_unique/index.js +1 -3
  11. package/cjs/koni/api/nft/bit.country/index.js +4 -6
  12. package/cjs/koni/api/nft/config.js +1 -8
  13. package/cjs/koni/api/nft/evm_nft/index.js +1 -3
  14. package/cjs/koni/api/nft/karura_nft/index.js +1 -3
  15. package/cjs/koni/api/nft/ordinal_nft/index.js +4 -3
  16. package/cjs/koni/api/nft/rmrk_nft/index.js +4 -6
  17. package/cjs/koni/api/nft/unique_network_nft/index.js +1 -3
  18. package/cjs/koni/api/nft/unique_nft/uniqueNftV2.js +1 -3
  19. package/cjs/koni/api/nft/vara_nft/index.js +1 -3
  20. package/cjs/koni/api/nft/wasm_nft/index.js +10 -17
  21. package/cjs/koni/api/staking/bonding/astar.js +2 -4
  22. package/cjs/koni/api/staking/subsquidStaking.js +9 -12
  23. package/cjs/koni/api/subquery/subquery.js +1 -3
  24. package/cjs/koni/background/handlers/Extension.js +39 -15
  25. package/cjs/koni/background/handlers/Mobile.js +7 -4
  26. package/cjs/koni/background/handlers/State.js +68 -12
  27. package/cjs/koni/background/handlers/Tabs.js +4 -1
  28. package/cjs/koni/background/handlers/index.js +71 -71
  29. package/cjs/koni/background/subscription.js +7 -6
  30. package/cjs/packageInfo.js +1 -1
  31. package/cjs/services/campaign-service/helpers.js +3 -1
  32. package/cjs/services/chain-service/index.js +37 -29
  33. package/cjs/services/chain-service/utils/patch.js +1 -3
  34. package/cjs/services/earning-service/handlers/liquid-staking/acala.js +1 -2
  35. package/cjs/services/earning-service/handlers/liquid-staking/bifrost-manta.js +2 -3
  36. package/cjs/services/earning-service/handlers/liquid-staking/bifrost.js +2 -3
  37. package/cjs/services/earning-service/handlers/liquid-staking/stella-swap.js +1 -2
  38. package/cjs/services/earning-service/handlers/native-staking/astar.js +3 -4
  39. package/cjs/services/event-service/index.js +0 -1
  40. package/cjs/services/history-service/subsquid-multi-chain-history.js +1 -3
  41. package/cjs/services/keyring-service/index.js +22 -0
  42. package/cjs/services/migration-service/scripts/MigrateRemoveGenesisHash.js +28 -0
  43. package/cjs/services/migration-service/scripts/index.js +3 -1
  44. package/cjs/services/mint-campaign-service/campaigns/UnlockDotCampaign.js +16 -21
  45. package/cjs/services/notification-service/NotificationService.js +3 -1
  46. package/cjs/services/price-service/coingecko.js +6 -7
  47. package/cjs/services/price-service/index.js +7 -3
  48. package/cjs/services/request-service/handler/PopupHandler.js +14 -15
  49. package/cjs/services/setting-service/SettingService.js +4 -1
  50. package/cjs/services/setting-service/constants.js +1 -1
  51. package/cjs/services/setting-service/i18n/i18n.js +2 -4
  52. package/cjs/services/storage-service/DatabaseService.js +1 -1
  53. package/cjs/services/storage-service/databases/index.js +14 -1
  54. package/cjs/services/storage-service/db-stores/KeyValue.js +13 -0
  55. package/cjs/services/subscan-service/index.js +11 -3
  56. package/cjs/services/transaction-service/index.js +3 -3
  57. package/cjs/services/wallet-connect-service/constants.js +2 -2
  58. package/cjs/services/wallet-connect-service/helpers.js +1 -4
  59. package/cjs/services/wallet-connect-service/index.js +50 -33
  60. package/cjs/storage/index.js +120 -23
  61. package/cjs/types/common/index.js +16 -0
  62. package/cjs/types/common/storage.js +1 -0
  63. package/cjs/types/index.js +11 -0
  64. package/cjs/utils/environment.js +1 -1
  65. package/cjs/utils/eth/parseTransaction/index.js +8 -10
  66. package/cjs/utils/fetch.js +55 -0
  67. package/cjs/utils/fetchStaticCache.js +2 -4
  68. package/cjs/utils/fetchStaticData.js +7 -4
  69. package/cjs/utils/index.js +24 -0
  70. package/cjs/utils/reportError.js +1 -3
  71. package/constants/storage.d.ts +1 -0
  72. package/constants/storage.js +1 -0
  73. package/koni/api/dotsama/crowdloan.js +2 -3
  74. package/koni/api/nft/acala_nft/index.js +0 -1
  75. package/koni/api/nft/assethub_nft/index.js +0 -1
  76. package/koni/api/nft/assethub_unique/index.js +0 -1
  77. package/koni/api/nft/bit.country/index.js +0 -1
  78. package/koni/api/nft/config.js +1 -7
  79. package/koni/api/nft/evm_nft/index.js +0 -1
  80. package/koni/api/nft/karura_nft/index.js +0 -1
  81. package/koni/api/nft/ordinal_nft/index.d.ts +2 -0
  82. package/koni/api/nft/ordinal_nft/index.js +4 -3
  83. package/koni/api/nft/rmrk_nft/index.js +0 -1
  84. package/koni/api/nft/unique_network_nft/index.js +0 -1
  85. package/koni/api/nft/unique_nft/uniqueNftV2.js +0 -1
  86. package/koni/api/nft/vara_nft/index.js +0 -1
  87. package/koni/api/nft/wasm_nft/index.js +4 -10
  88. package/koni/api/staking/bonding/astar.js +0 -1
  89. package/koni/api/staking/subsquidStaking.js +10 -12
  90. package/koni/api/subquery/subquery.js +0 -1
  91. package/koni/background/handlers/Extension.d.ts +4 -0
  92. package/koni/background/handlers/Extension.js +29 -8
  93. package/koni/background/handlers/Mobile.js +9 -6
  94. package/koni/background/handlers/State.d.ts +6 -1
  95. package/koni/background/handlers/State.js +68 -12
  96. package/koni/background/handlers/Tabs.js +4 -1
  97. package/koni/background/handlers/index.d.ts +13 -7
  98. package/koni/background/handlers/index.js +67 -62
  99. package/koni/background/subscription.js +2 -1
  100. package/package.json +36 -29
  101. package/packageInfo.js +1 -1
  102. package/services/campaign-service/helpers.js +3 -1
  103. package/services/chain-service/index.js +37 -30
  104. package/services/chain-service/utils/patch.js +0 -1
  105. package/services/earning-service/handlers/liquid-staking/acala.js +0 -1
  106. package/services/earning-service/handlers/liquid-staking/bifrost-manta.js +0 -1
  107. package/services/earning-service/handlers/liquid-staking/bifrost.js +0 -1
  108. package/services/earning-service/handlers/liquid-staking/stella-swap.js +0 -1
  109. package/services/earning-service/handlers/native-staking/astar.js +0 -1
  110. package/services/event-service/index.js +0 -1
  111. package/services/history-service/subsquid-multi-chain-history.js +0 -1
  112. package/services/keyring-service/index.d.ts +1 -0
  113. package/services/keyring-service/index.js +19 -0
  114. package/services/migration-service/scripts/MigrateRemoveGenesisHash.d.ts +4 -0
  115. package/services/migration-service/scripts/MigrateRemoveGenesisHash.js +20 -0
  116. package/services/migration-service/scripts/index.js +3 -1
  117. package/services/mint-campaign-service/campaigns/UnlockDotCampaign.js +17 -21
  118. package/services/notification-service/NotificationService.js +3 -1
  119. package/services/price-service/coingecko.js +6 -6
  120. package/services/price-service/index.js +7 -3
  121. package/services/request-service/handler/PopupHandler.d.ts +1 -1
  122. package/services/request-service/handler/PopupHandler.js +14 -15
  123. package/services/setting-service/SettingService.d.ts +1 -0
  124. package/services/setting-service/SettingService.js +4 -1
  125. package/services/setting-service/constants.js +2 -2
  126. package/services/setting-service/i18n/i18n.js +2 -4
  127. package/services/storage-service/DatabaseService.js +1 -1
  128. package/services/storage-service/databases/index.d.ts +8 -0
  129. package/services/storage-service/databases/index.js +13 -1
  130. package/services/storage-service/db-stores/KeyValue.d.ts +4 -0
  131. package/services/storage-service/db-stores/KeyValue.js +5 -0
  132. package/services/subscan-service/index.d.ts +2 -0
  133. package/services/subscan-service/index.js +10 -1
  134. package/services/transaction-service/index.js +4 -4
  135. package/services/wallet-connect-service/constants.js +3 -3
  136. package/services/wallet-connect-service/helpers.js +1 -4
  137. package/services/wallet-connect-service/index.d.ts +2 -0
  138. package/services/wallet-connect-service/index.js +42 -31
  139. package/storage/index.d.ts +19 -9
  140. package/storage/index.js +115 -23
  141. package/types/common/index.d.ts +1 -0
  142. package/types/common/index.js +4 -0
  143. package/types/common/storage.d.ts +4 -0
  144. package/types/common/storage.js +1 -0
  145. package/types/index.d.ts +1 -0
  146. package/types/index.js +1 -0
  147. package/utils/environment.js +1 -1
  148. package/utils/eth/parseTransaction/index.js +8 -10
  149. package/utils/fetch.d.ts +8 -0
  150. package/utils/fetch.js +44 -0
  151. package/utils/fetchStaticCache.js +2 -3
  152. package/utils/fetchStaticData.d.ts +1 -1
  153. package/utils/fetchStaticData.js +7 -4
  154. package/utils/index.d.ts +2 -0
  155. package/utils/index.js +2 -0
  156. package/utils/reportError.js +0 -1
  157. package/background/handlers/Extension.d.ts +0 -55
  158. package/background/handlers/Extension.js +0 -601
  159. package/background/handlers/Tabs.d.ts +0 -24
  160. package/background/handlers/Tabs.js +0 -194
  161. package/background/handlers/index.d.ts +0 -3
  162. package/background/handlers/index.js +0 -45
  163. package/cjs/background/handlers/Extension.js +0 -642
  164. package/cjs/background/handlers/Tabs.js +0 -222
  165. package/cjs/background/handlers/index.js +0 -54
  166. package/cjs/koni/background/events.js +0 -14
  167. package/koni/background/events.d.ts +0 -1
  168. 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: _crossFetch.default
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 response = await _axios.default.request({
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
- data
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
- const response = await _axios.default.request({
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
- data
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 response = await _axios.default.request({
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 response = await _axios.default.request({
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
- data
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
  }
@@ -54,7 +54,9 @@ class NotificationService {
54
54
  if (onClick) {
55
55
  onClick();
56
56
  } else {
57
- window.open(link);
57
+ chrome.tabs.create({
58
+ url: link
59
+ }).catch(console.error);
58
60
  }
59
61
  }
60
62
  });
@@ -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 responseDataExchangeRate = (await _axios.default.get('https://api-cache.subwallet.app/exchange-rate')).data || {};
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, _rs3;
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 _axios.default.get(`https://api.coingecko.com/api/v3/coins/markets?vs_currency=${currency.toLowerCase()}&per_page=250&ids=${idStr}`);
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 _axios.default.get(`https://chain-data.subwallet.app/api/price/get?ids=${idStr}`);
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 = ((_rs3 = rs) === null || _rs3 === void 0 ? void 0 : _rs3.data) || [];
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
- const currency = _storage.SWStorage.instance.getItem(_constants.CURRENCY);
46
- this.setCurrentCurrency(currency || currentCurrency || DEFAULT_CURRENCY);
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.extension.getURL('notification.html');
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(win => {
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
- chrome.windows.create(popupOptions).catch(console.error);
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$browserAction;
61
- return (_chrome$browserAction = chrome.browserAction) === null || _chrome$browserAction === void 0 ? void 0 : _chrome$browserAction.setBadgeText({
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
- let old = _storage.SWStorage.instance.getItem(_constants.LANGUAGE) || 'en';
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.TARGET_ENV === 'extension' ? _KoniTypes.WalletUnlockType.ALWAYS_REQUIRED : _KoniTypes.WalletUnlockType.WHEN_NEEDED;
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: _storage.SWStorage.instance.getItem(_constants.LANGUAGE) || 'en',
21
+ lng: 'en',
24
22
  load: 'languageOnly',
25
23
  nsSeparator: false,
26
24
  returnEmptyString: false,
27
25
  returnNull: false
28
- }).catch(error => console.log('i18n: failure', error));
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 = new _databases.default();
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 (0, _crossFetch.default)(url, {
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, _subscribe$unsubscrib2;
1019
- (_subscribe = subscribe) === null || _subscribe === void 0 ? void 0 : (_subscribe$unsubscrib = _subscribe.unsubscribe) === null || _subscribe$unsubscrib === void 0 ? void 0 : (_subscribe$unsubscrib2 = _subscribe$unsubscrib.call(_subscribe)) === null || _subscribe$unsubscrib2 === void 0 ? void 0 : _subscribe$unsubscrib2.then(console.debug).catch(console.debug);
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 = web3Api.eth.subscribe('newBlockHeaders', onCheck);
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: 'debug',
20
- projectId: !_utils.isMobile ? PROJECT_ID_EXTENSION : PROJECT_ID_MOBILE,
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
- const timeNum = params.expiry;
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 => {