@subwallet/extension-base 1.1.68-2 → 1.2.2-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 (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 +7 -3
  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 +36 -27
  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 +7 -3
  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 +35 -28
  101. package/packageInfo.js +1 -1
  102. package/services/campaign-service/helpers.js +3 -1
  103. package/services/chain-service/index.js +36 -28
  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,456 +1 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.default = exports.NotificationOptions = void 0;
8
- var _constants = require("@subwallet/extension-base/services/setting-service/constants");
9
- var _storage = require("@subwallet/extension-base/storage");
10
- var _Settings = _interopRequireDefault(require("@subwallet/extension-base/stores/Settings"));
11
- var _utils = require("@subwallet/extension-base/utils");
12
- var _getId = require("@subwallet/extension-base/utils/getId");
13
- var _extensionChains = require("@subwallet/extension-chains");
14
- var _rxjs = require("rxjs");
15
- var _defaults = require("@polkadot/networks/defaults");
16
- var _util = require("@polkadot/util");
17
- var _stores = require("../../stores");
18
- var _helpers = require("./helpers");
19
- // Copyright 2019-2022 @polkadot/extension-bg authors & contributors
20
- // SPDX-License-Identifier: Apache-2.0
21
-
22
- const NOTIFICATION_URL = chrome.extension.getURL('notification.html');
23
- const POPUP_WINDOW_OPTS = {
24
- focused: true,
25
- height: 620,
26
- type: 'popup',
27
- url: NOTIFICATION_URL,
28
- width: 390
29
- };
30
- const NORMAL_WINDOW_OPTS = {
31
- focused: true,
32
- type: 'normal',
33
- url: NOTIFICATION_URL
34
- };
35
- let NotificationOptions;
36
- exports.NotificationOptions = NotificationOptions;
37
- (function (NotificationOptions) {
38
- NotificationOptions[NotificationOptions["None"] = 0] = "None";
39
- NotificationOptions[NotificationOptions["Normal"] = 1] = "Normal";
40
- NotificationOptions[NotificationOptions["PopUp"] = 2] = "PopUp";
41
- })(NotificationOptions || (exports.NotificationOptions = NotificationOptions = {}));
42
- const AUTH_URLS_KEY = 'authUrls';
43
- function extractMetadata(store) {
44
- store.allMap(map => {
45
- const knownEntries = Object.entries(_defaults.knownGenesis);
46
- const defs = {};
47
- const removals = [];
48
- Object.entries(map).forEach(_ref => {
49
- let [key, def] = _ref;
50
- const entry = knownEntries.find(_ref2 => {
51
- let [, hashes] = _ref2;
52
- return hashes.includes(def.genesisHash);
53
- });
54
- if (entry) {
55
- const [name, hashes] = entry;
56
- const index = hashes.indexOf(def.genesisHash);
57
-
58
- // flatten the known metadata based on the genesis index
59
- // (lower is better/newer)
60
- if (!defs[name] || defs[name].index > index) {
61
- if (defs[name]) {
62
- // remove the old version of the metadata
63
- removals.push(defs[name].key);
64
- }
65
- defs[name] = {
66
- def,
67
- index,
68
- key
69
- };
70
- }
71
- } else {
72
- // this is not a known entry, so we will just apply it
73
- defs[key] = {
74
- def,
75
- index: 0,
76
- key
77
- };
78
- }
79
- });
80
- removals.forEach(key => store.remove(key));
81
- Object.values(defs).forEach(_ref3 => {
82
- let {
83
- def
84
- } = _ref3;
85
- return (0, _extensionChains.addMetadata)(def);
86
- });
87
- });
88
- }
89
- class State {
90
- #authUrls = {};
91
- #authRequests = {};
92
- #metaStore = new _stores.MetadataStore();
93
- settingsStore = new _Settings.default();
94
-
95
- // Map of providers currently injected in tabs
96
- #injectedProviders = new Map();
97
- #metaRequests = {};
98
-
99
- // Map of all providers exposed by the extension, they are retrievable by key
100
- #providers;
101
- #signRequests = {};
102
- #windows = [];
103
- authSubject = new _rxjs.BehaviorSubject([]);
104
- metaSubject = new _rxjs.BehaviorSubject([]);
105
- signSubject = new _rxjs.BehaviorSubject([]);
106
- constructor() {
107
- let providers = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
108
- this.#providers = providers;
109
- extractMetadata(this.#metaStore);
110
-
111
- // retrieve previously set authorizations
112
- const authString = _storage.SWStorage.instance.getItem(AUTH_URLS_KEY) || '{}';
113
- const previousAuth = JSON.parse(authString);
114
- this.#authUrls = previousAuth;
115
- }
116
- get knownMetadata() {
117
- return (0, _extensionChains.knownMetadata)();
118
- }
119
- get numAuthRequests() {
120
- return Object.keys(this.#authRequests).length;
121
- }
122
- get numMetaRequests() {
123
- return Object.keys(this.#metaRequests).length;
124
- }
125
- get numSignRequests() {
126
- return Object.keys(this.#signRequests).length;
127
- }
128
- get allAuthRequests() {
129
- return Object.values(this.#authRequests).map(_ref4 => {
130
- let {
131
- id,
132
- request,
133
- url
134
- } = _ref4;
135
- return {
136
- id,
137
- request,
138
- url
139
- };
140
- });
141
- }
142
- get allMetaRequests() {
143
- return Object.values(this.#metaRequests).map(_ref5 => {
144
- let {
145
- id,
146
- request,
147
- url
148
- } = _ref5;
149
- return {
150
- id,
151
- request,
152
- url
153
- };
154
- });
155
- }
156
- get allSignRequests() {
157
- return Object.values(this.#signRequests).map(_ref6 => {
158
- let {
159
- account,
160
- id,
161
- request,
162
- url
163
- } = _ref6;
164
- return {
165
- account,
166
- id,
167
- request,
168
- url
169
- };
170
- });
171
- }
172
- get authUrls() {
173
- return this.#authUrls;
174
- }
175
- getPopup() {
176
- return this.#windows;
177
- }
178
- popupClose() {
179
- this.#windows.forEach(id => (0, _helpers.withErrorLog)(() => chrome.windows.remove(id)));
180
- this.#windows = [];
181
- }
182
- getSettings(update) {
183
- this.settingsStore.get('Settings', value => {
184
- if (!value) {
185
- update({
186
- ..._constants.DEFAULT_SETTING
187
- });
188
- } else {
189
- update(value);
190
- }
191
- });
192
- }
193
- setSettings(data, callback) {
194
- this.settingsStore.set('Settings', data, callback);
195
- }
196
- popupOpen() {
197
- this.getSettings(_ref7 => {
198
- let {
199
- browserConfirmationType
200
- } = _ref7;
201
- if (browserConfirmationType !== 'extension') {
202
- if (browserConfirmationType === 'window') {
203
- chrome.windows.create(NORMAL_WINDOW_OPTS, window => {
204
- if (window) {
205
- this.#windows.push(window.id || 0);
206
- }
207
- });
208
- }
209
- chrome.windows.getCurrent(win => {
210
- const popupOptions = {
211
- ...POPUP_WINDOW_OPTS
212
- };
213
- if (win) {
214
- popupOptions.left = (win.left || 0) + (win.width || 0) - (POPUP_WINDOW_OPTS.width || 0) - 20;
215
- popupOptions.top = (win.top || 0) + 80;
216
- }
217
- chrome.windows.create(popupOptions, window => {
218
- if (window) {
219
- this.#windows.push(window.id || 0);
220
- }
221
- });
222
- });
223
- }
224
- });
225
- }
226
- authComplete = (id, resolve, reject) => {
227
- const complete = result => {
228
- const isAllowed = result === true;
229
- const {
230
- idStr,
231
- request: {
232
- origin
233
- },
234
- url
235
- } = this.#authRequests[id];
236
- const isAllowedMap = {};
237
- this.#authUrls[(0, _utils.stripUrl)(url)] = {
238
- count: 0,
239
- id: idStr,
240
- isAllowed,
241
- isAllowedMap,
242
- origin,
243
- url
244
- };
245
- this.saveCurrentAuthList();
246
- delete this.#authRequests[id];
247
- this.updateIconAuth(true);
248
- };
249
- return {
250
- reject: error => {
251
- complete(error);
252
- reject(error);
253
- },
254
- resolve: result => {
255
- complete(result);
256
- resolve(result);
257
- }
258
- };
259
- };
260
- saveCurrentAuthList() {
261
- _storage.SWStorage.instance.setItem(AUTH_URLS_KEY, JSON.stringify(this.#authUrls));
262
- }
263
- metaComplete = (id, resolve, reject) => {
264
- const complete = () => {
265
- delete this.#metaRequests[id];
266
- this.updateIconMeta(true);
267
- };
268
- return {
269
- reject: error => {
270
- complete();
271
- reject(error);
272
- },
273
- resolve: result => {
274
- complete();
275
- resolve(result);
276
- }
277
- };
278
- };
279
- signComplete = (id, resolve, reject) => {
280
- const complete = () => {
281
- delete this.#signRequests[id];
282
- this.updateIconSign(true);
283
- };
284
- return {
285
- reject: error => {
286
- complete();
287
- reject(error);
288
- },
289
- resolve: result => {
290
- complete();
291
- resolve(result);
292
- }
293
- };
294
- };
295
- updateIcon(shouldClose) {
296
- const authCount = this.numAuthRequests;
297
- const metaCount = this.numMetaRequests;
298
- const signCount = this.numSignRequests;
299
- const text = authCount ? 'Auth' : metaCount ? 'Meta' : signCount ? `${signCount}` : '';
300
- (0, _helpers.withErrorLog)(() => {
301
- var _chrome$browserAction;
302
- return (_chrome$browserAction = chrome.browserAction) === null || _chrome$browserAction === void 0 ? void 0 : _chrome$browserAction.setBadgeText({
303
- text
304
- });
305
- });
306
- if (shouldClose && text === '') {
307
- this.popupClose();
308
- }
309
- }
310
- toggleAuthorization(url) {
311
- const entry = this.#authUrls[url];
312
- (0, _util.assert)(entry, `The source ${url} is not known`);
313
- this.#authUrls[url].isAllowed = !entry.isAllowed;
314
- this.saveCurrentAuthList();
315
- return this.#authUrls;
316
- }
317
- updateIconAuth(shouldClose) {
318
- this.authSubject.next(this.allAuthRequests);
319
- this.updateIcon(shouldClose);
320
- }
321
- updateIconMeta(shouldClose) {
322
- this.metaSubject.next(this.allMetaRequests);
323
- this.updateIcon(shouldClose);
324
- }
325
- updateIconSign(shouldClose) {
326
- this.signSubject.next(this.allSignRequests);
327
- this.updateIcon(shouldClose);
328
- }
329
- async authorizeUrl(url, request) {
330
- const idStr = (0, _utils.stripUrl)(url);
331
-
332
- // Do not enqueue duplicate authorization requests.
333
- const isDuplicate = Object.values(this.#authRequests).some(request => request.idStr === idStr);
334
- (0, _util.assert)(!isDuplicate, 'The source {{url}} has a pending authorization request'.replace('{{url}}', url));
335
- if (this.#authUrls[idStr]) {
336
- // this url was seen in the past
337
- (0, _util.assert)(this.#authUrls[idStr].isAllowed, 'The source {{url}} is not allowed to interact with this extension'.replace('{{url}}', url));
338
- return false;
339
- }
340
- return new Promise((resolve, reject) => {
341
- const id = (0, _getId.getId)();
342
- this.#authRequests[id] = {
343
- ...this.authComplete(id, resolve, reject),
344
- id,
345
- idStr,
346
- request,
347
- url
348
- };
349
- this.updateIconAuth();
350
- this.popupOpen();
351
- });
352
- }
353
- ensureUrlAuthorized(url) {
354
- const entry = this.#authUrls[(0, _utils.stripUrl)(url)];
355
- (0, _util.assert)(entry, 'The source {{url}} has not been authorized yet'.replace('{{url}}', url));
356
- (0, _util.assert)(entry.isAllowed, 'The source {{url}} is not allowed to interact with this extension'.replace('{{url}}', url));
357
- return true;
358
- }
359
- injectMetadata(url, request) {
360
- return new Promise((resolve, reject) => {
361
- const id = (0, _getId.getId)();
362
- this.#metaRequests[id] = {
363
- ...this.metaComplete(id, resolve, reject),
364
- id,
365
- request,
366
- url
367
- };
368
- this.updateIconMeta();
369
- this.popupOpen();
370
- });
371
- }
372
- getAuthRequest(id) {
373
- return this.#authRequests[id];
374
- }
375
- getMetaRequest(id) {
376
- return this.#metaRequests[id];
377
- }
378
- getSignRequest(id) {
379
- return this.#signRequests[id];
380
- }
381
-
382
- // List all providers the extension is exposing
383
- rpcListProviders() {
384
- return Promise.resolve(Object.keys(this.#providers).reduce((acc, key) => {
385
- acc[key] = this.#providers[key].meta;
386
- return acc;
387
- }, {}));
388
- }
389
- rpcSend(request, port) {
390
- const provider = this.#injectedProviders.get(port);
391
- (0, _util.assert)(provider, 'Cannot call pub(rpc.subscribe) before provider is set');
392
- return provider.send(request.method, request.params);
393
- }
394
-
395
- // Start a provider, return its meta
396
- rpcStartProvider(key, port) {
397
- (0, _util.assert)(Object.keys(this.#providers).includes(key), 'Provider cannot be found.');
398
- if (this.#injectedProviders.get(port)) {
399
- return Promise.resolve(this.#providers[key].meta);
400
- }
401
-
402
- // Instantiate the provider
403
- this.#injectedProviders.set(port, this.#providers[key].start());
404
-
405
- // Close provider connection when page is closed
406
- port.onDisconnect.addListener(() => {
407
- const provider = this.#injectedProviders.get(port);
408
- if (provider) {
409
- (0, _helpers.withErrorLog)(() => provider.disconnect());
410
- }
411
- this.#injectedProviders.delete(port);
412
- });
413
- return Promise.resolve(this.#providers[key].meta);
414
- }
415
- rpcSubscribe(_ref8, cb, port) {
416
- let {
417
- method,
418
- params,
419
- type
420
- } = _ref8;
421
- const provider = this.#injectedProviders.get(port);
422
- (0, _util.assert)(provider, 'Cannot call pub(rpc.subscribe) before provider is set');
423
- return provider.subscribe(type, method, params, cb);
424
- }
425
- rpcSubscribeConnected(_request, cb, port) {
426
- const provider = this.#injectedProviders.get(port);
427
- (0, _util.assert)(provider, 'Cannot call pub(rpc.subscribeConnected) before provider is set');
428
- cb(null, provider.isConnected); // Immediately send back current isConnected
429
- provider.on('connected', () => cb(null, true));
430
- provider.on('disconnected', () => cb(null, false));
431
- }
432
- rpcUnsubscribe(request, port) {
433
- const provider = this.#injectedProviders.get(port);
434
- (0, _util.assert)(provider, 'Cannot call pub(rpc.unsubscribe) before provider is set');
435
- return provider.unsubscribe(request.type, request.method, request.subscriptionId);
436
- }
437
- saveMetadata(meta) {
438
- this.#metaStore.set(meta.genesisHash, meta);
439
- (0, _extensionChains.addMetadata)(meta);
440
- }
441
- sign(url, request, account) {
442
- const id = (0, _getId.getId)();
443
- return new Promise((resolve, reject) => {
444
- this.#signRequests[id] = {
445
- ...this.signComplete(id, resolve, reject),
446
- account,
447
- id,
448
- request,
449
- url
450
- };
451
- this.updateIconSign();
452
- this.popupOpen();
453
- });
454
- }
455
- }
456
- exports.default = State;
1
+ "use strict";
@@ -3,12 +3,14 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.REMIND_EXPORT_ACCOUNT = exports.LATEST_SESSION = exports.LANGUAGE = exports.CURRENCY = void 0;
6
+ exports.REMIND_EXPORT_ACCOUNT = exports.LATEST_SESSION = exports.LANGUAGE = exports.DEFAULT_LANGUAGE = exports.CURRENCY = void 0;
7
7
  // Copyright 2019-2022 @subwallet/extension-base authors & contributors
8
8
  // SPDX-License-Identifier: Apache-2.0
9
9
 
10
10
  const LANGUAGE = 'current-language';
11
11
  exports.LANGUAGE = LANGUAGE;
12
+ const DEFAULT_LANGUAGE = 'en';
13
+ exports.DEFAULT_LANGUAGE = DEFAULT_LANGUAGE;
12
14
  const CURRENCY = 'current-currency';
13
15
  exports.CURRENCY = CURRENCY;
14
16
  const REMIND_EXPORT_ACCOUNT = 'remind_export_account';
@@ -13,7 +13,6 @@ var _constants = require("@subwallet/extension-base/constants");
13
13
  var _typeRegistry = _interopRequireDefault(require("@subwallet/extension-base/koni/api/dotsama/typeRegistry"));
14
14
  var _utils = require("@subwallet/extension-base/utils");
15
15
  var _fetchStaticData = require("@subwallet/extension-base/utils/fetchStaticData");
16
- var _axios = _interopRequireDefault(require("axios"));
17
16
  var _util = require("@polkadot/util");
18
17
  // Copyright 2019-2022 @subwallet/extension-base
19
18
  // SPDX-License-Identifier: Apache-2.0
@@ -90,7 +89,7 @@ const subscribeAcalaContributeInterval = (polkadotAddresses, fundInfo, callback)
90
89
  const acalaContributionApi = 'https://api.polkawallet.io/acala-distribution-v2/crowdloan?account=';
91
90
  const getContributeInfo = () => {
92
91
  Promise.all(polkadotAddresses.map(polkadotAddress => {
93
- return _axios.default.get(`${acalaContributionApi}${polkadotAddress}`);
92
+ return (0, _utils.fetchJson)(`${acalaContributionApi}${polkadotAddress}`);
94
93
  })).then(resList => {
95
94
  let contribute = new _util.BN(0);
96
95
  resList.forEach(res => {
@@ -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
  });
@@ -8,7 +7,6 @@ exports.AcalaNftApi = void 0;
8
7
  var _config = require("@subwallet/extension-base/koni/api/nft/config");
9
8
  var _nft = require("@subwallet/extension-base/koni/api/nft/nft");
10
9
  var _utils = require("@subwallet/extension-base/utils");
11
- var _crossFetch = _interopRequireDefault(require("cross-fetch"));
12
10
  // Copyright 2019-2022 @subwallet/extension-koni authors & contributors
13
11
  // SPDX-License-Identifier: Apache-2.0
14
12
 
@@ -144,7 +142,7 @@ const getMetadata = metadataUrl => {
144
142
  return null;
145
143
  }
146
144
  url = (0, _config.getRandomIpfsGateway)() + metadataUrl + '/metadata.json';
147
- return (0, _crossFetch.default)(url, {
145
+ return fetch(url, {
148
146
  method: 'GET',
149
147
  headers
150
148
  }).then(res => res.json());
@@ -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
  });
@@ -8,7 +7,6 @@ exports.default = void 0;
8
7
  var _KoniTypes = require("@subwallet/extension-base/background/KoniTypes");
9
8
  var _nft = require("@subwallet/extension-base/koni/api/nft/nft");
10
9
  var _utils = require("@subwallet/extension-base/utils");
11
- var _crossFetch = _interopRequireDefault(require("cross-fetch"));
12
10
  // Copyright 2019-2022 @subwallet/extension-koni authors & contributors
13
11
  // SPDX-License-Identifier: Apache-2.0
14
12
 
@@ -25,7 +23,7 @@ class AssetHubNftsPalletApi extends _nft.BaseNftApi {
25
23
  return undefined;
26
24
  }
27
25
  }
28
- return (0, _crossFetch.default)(url, {
26
+ return fetch(url, {
29
27
  method: 'GET',
30
28
  headers: {
31
29
  'Content-Type': 'application/json'
@@ -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
  });
@@ -8,7 +7,6 @@ exports.default = void 0;
8
7
  var _KoniTypes = require("@subwallet/extension-base/background/KoniTypes");
9
8
  var _nft = require("@subwallet/extension-base/koni/api/nft/nft");
10
9
  var _utils = require("@subwallet/extension-base/utils");
11
- var _crossFetch = _interopRequireDefault(require("cross-fetch"));
12
10
  // Copyright 2019-2022 @subwallet/extension-koni authors & contributors
13
11
  // SPDX-License-Identifier: Apache-2.0
14
12
 
@@ -25,7 +23,7 @@ class AssetHubUniquesPalletApi extends _nft.BaseNftApi {
25
23
  return undefined;
26
24
  }
27
25
  }
28
- return (0, _crossFetch.default)(url, {
26
+ return fetch(url, {
29
27
  method: 'GET',
30
28
  headers: {
31
29
  'Content-Type': 'application/json'
@@ -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
  });
@@ -8,7 +7,6 @@ exports.BitCountryNftApi = void 0;
8
7
  var _config = require("@subwallet/extension-base/koni/api/nft/config");
9
8
  var _nft = require("@subwallet/extension-base/koni/api/nft/nft");
10
9
  var _utils = require("@subwallet/extension-base/utils");
11
- var _crossFetch = _interopRequireDefault(require("cross-fetch"));
12
10
  var _util = require("@polkadot/util");
13
11
  // Copyright 2019-2022 @subwallet/extension-base
14
12
  // SPDX-License-Identifier: Apache-2.0
@@ -59,11 +57,11 @@ class BitCountryNftApi extends _nft.BaseNftApi {
59
57
 
60
58
  // check if NFT is Land/Estate
61
59
  if (onChainMeta.data.attributes['MetaverseId:']) {
62
- return await (0, _crossFetch.default)(`${_config.BIT_COUNTRY_LAND_ESTATE_METADATA_API}/${assetId.classId}/${assetId.tokenId}/metadata.json`).then(resp => resp.json());
60
+ return await fetch(`${_config.BIT_COUNTRY_LAND_ESTATE_METADATA_API}/${assetId.classId}/${assetId.tokenId}/metadata.json`).then(resp => resp.json());
63
61
  } else if (onChainMeta.metadata.startsWith('/avatar/')) {
64
- return await (0, _crossFetch.default)(_config.BIT_AVATAR_API + onChainMeta.metadata).then(resp => resp.json());
62
+ return await fetch(_config.BIT_AVATAR_API + onChainMeta.metadata).then(resp => resp.json());
65
63
  } else {
66
- return await (0, _crossFetch.default)(_config.BIT_COUNTRY_IPFS_SERVER + onChainMeta.metadata).then(resp => resp.json());
64
+ return await fetch(_config.BIT_COUNTRY_IPFS_SERVER + onChainMeta.metadata).then(resp => resp.json());
67
65
  }
68
66
  }
69
67
  async getCollectionDetails(collectionId) {
@@ -88,7 +86,7 @@ class BitCountryNftApi extends _nft.BaseNftApi {
88
86
  metaverseId: metaverseId.toString()
89
87
  };
90
88
  } else {
91
- return await (0, _crossFetch.default)(_config.BIT_COUNTRY_IPFS_SERVER + metadataCollection.metadata).then(resp => resp.json());
89
+ return await fetch(_config.BIT_COUNTRY_IPFS_SERVER + metadataCollection.metadata).then(resp => resp.json());
92
90
  }
93
91
  }
94
92
  parseMetadata(data) {
@@ -1,14 +1,11 @@
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.W3S_IPFS = exports.VARA_SCAN_ENDPOINT = exports.UNIQUE_SCAN_ENDPOINT = exports.UNIQUE_IPFS_GATEWAY = exports.TRANSFER_CHAIN_ID = exports.SUPPORTED_TRANSFER_SUBSTRATE_CHAIN_NAME = exports.SUPPORTED_TRANSFER_EVM_CHAIN_NAME = exports.SUPPORTED_TRANSFER_EVM_CHAIN = exports.SUPPORTED_NFT_NETWORKS = exports.SUBWALLET_IPFS = exports.SINGULAR_V2_ENDPOINT = exports.SINGULAR_V2_COLLECTION_ENDPOINT = exports.SINGULAR_V1_ENDPOINT = exports.SINGULAR_V1_COLLECTION_ENDPOINT = exports.RMRK_PINATA_SERVER = exports.QUARTZ_SCAN_ENDPOINT = exports.PINATA_IPFS_GATEWAY = exports.OPAL_SCAN_ENDPOINT = exports.NFT_STORAGE_GATEWAY = exports.KANARIA_EXTERNAL_SERVER = exports.KANARIA_ENDPOINT = exports.IPFS_W3S_LINK = exports.IPFS_IO = exports.IPFS_GATEWAY_4EVERLAND = exports.IPFS_FLEEK = exports.IPFS_ETH_ARAGON = exports.IPFS2_RMRK = exports.GATEWAY_IPFS_IO = exports.DWEB_LINK = exports.CLOUDFLARE_PINATA_SERVER = exports.CF_IPFS_GATEWAY = exports.BIT_COUNTRY_THUMBNAIL_RESOLVER = exports.BIT_COUNTRY_LAND_ESTATE_METADATA_API = exports.BIT_COUNTRY_IPFS_SERVER = exports.BIT_AVATAR_API = void 0;
8
7
  exports.getRandomIpfsGateway = getRandomIpfsGateway;
9
- var _storage = require("@subwallet/extension-base/storage");
10
8
  var _utils = require("@subwallet/extension-base/utils");
11
- var _bowser = _interopRequireDefault(require("bowser"));
12
9
  // Copyright 2019-2022 @subwallet/extension-koni authors & contributors
13
10
  // SPDX-License-Identifier: Apache-2.0
14
11
 
@@ -89,10 +86,6 @@ const IPFS_ETH_ARAGON = 'https://ipfs.eth.aragon.network/ipfs/'; // 400
89
86
  exports.IPFS_ETH_ARAGON = IPFS_ETH_ARAGON;
90
87
  const SUBWALLET_IPFS = 'https://ipfs.subwallet.app/ipfs/'; // ???
91
88
  exports.SUBWALLET_IPFS = SUBWALLET_IPFS;
92
- const detectFirefox = () => {
93
- return (_storage.SWStorage.instance.getItem('browserInfo') || _bowser.default.getParser(window.navigator.userAgent).getBrowserName()).toLowerCase() === 'firefox';
94
- };
95
- const isFirefox = detectFirefox();
96
89
  let SUPPORTED_NFT_NETWORKS;
97
90
  exports.SUPPORTED_NFT_NETWORKS = SUPPORTED_NFT_NETWORKS;
98
91
  (function (SUPPORTED_NFT_NETWORKS) {
@@ -144,7 +137,7 @@ const RANDOM_IPFS_GATEWAY_SETTING = [{
144
137
  provider: CLOUDFLARE_PINATA_SERVER,
145
138
  weight: 10
146
139
  }];
147
- if (isFirefox) {
140
+ if (_utils.isFirefox) {
148
141
  RANDOM_IPFS_GATEWAY_SETTING.push({
149
142
  provider: SUBWALLET_IPFS,
150
143
  weight: 5000
@@ -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
  });
@@ -11,7 +10,6 @@ var _nft = require("@subwallet/extension-base/koni/api/nft/nft");
11
10
  var _helper = require("@subwallet/extension-base/services/chain-service/helper");
12
11
  var _utils = require("@subwallet/extension-base/services/chain-service/utils");
13
12
  var _utils2 = require("@subwallet/extension-base/utils");
14
- var _crossFetch = _interopRequireDefault(require("cross-fetch"));
15
13
  var _utilCrypto = require("@polkadot/util-crypto");
16
14
  // Copyright 2019-2022 @subwallet/extension-koni authors & contributors
17
15
  // SPDX-License-Identifier: Apache-2.0
@@ -109,7 +107,7 @@ class EvmNftApi extends _nft.BaseNftApi {
109
107
  nftIds.push(nftId);
110
108
  if (detailUrl) {
111
109
  try {
112
- const resp = await (0, _crossFetch.default)(detailUrl);
110
+ const resp = await fetch(detailUrl);
113
111
  const itemDetail = resp && resp.ok && (await resp.json());
114
112
  if (!itemDetail) {
115
113
  return;
@@ -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
  });
@@ -8,7 +7,6 @@ exports.KaruraNftApi = void 0;
8
7
  var _config = require("@subwallet/extension-base/koni/api/nft/config");
9
8
  var _nft = require("@subwallet/extension-base/koni/api/nft/nft");
10
9
  var _utils = require("@subwallet/extension-base/utils");
11
- var _crossFetch = _interopRequireDefault(require("cross-fetch"));
12
10
  // Copyright 2019-2022 @subwallet/extension-koni authors & contributors
13
11
  // SPDX-License-Identifier: Apache-2.0
14
12
 
@@ -147,7 +145,7 @@ const getKaruraMetadata = metadataUrl => {
147
145
  return null;
148
146
  }
149
147
  url = (0, _config.getRandomIpfsGateway)() + metadataUrl + '/metadata.json';
150
- return (0, _crossFetch.default)(url, {
148
+ return fetch(url, {
151
149
  method: 'GET',
152
150
  headers: {
153
151
  'Content-Type': 'application/json'