@polkadot/extension-base 0.44.6 → 0.44.7
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/RequestBytesSign.js +1 -2
- package/background/RequestExtrinsicSign.js +1 -2
- package/background/handlers/Extension.d.ts +4 -1
- package/background/handlers/Extension.js +79 -146
- package/background/handlers/State.d.ts +8 -3
- package/background/handlers/State.js +60 -67
- package/background/handlers/Tabs.d.ts +1 -1
- package/background/handlers/Tabs.js +17 -57
- package/background/handlers/helpers.js +1 -1
- package/background/handlers/index.d.ts +1 -1
- package/background/handlers/index.js +6 -4
- package/background/handlers/subscriptions.js +5 -2
- package/background/types.d.ts +33 -25
- package/bundle.js +1 -0
- package/cjs/background/RequestBytesSign.js +1 -6
- package/cjs/background/RequestExtrinsicSign.js +1 -4
- package/cjs/background/handlers/Extension.js +95 -207
- package/cjs/background/handlers/State.js +60 -82
- package/cjs/background/handlers/Tabs.js +17 -70
- package/cjs/background/handlers/helpers.js +1 -2
- package/cjs/background/handlers/index.js +6 -12
- package/cjs/background/handlers/subscriptions.js +5 -3
- package/cjs/bundle.js +0 -1
- package/cjs/defaults.js +16 -8
- package/cjs/detectOther.js +0 -4
- package/cjs/detectPackage.js +2 -4
- package/cjs/index.js +0 -2
- package/cjs/packageInfo.js +3 -1
- package/cjs/page/Accounts.js +1 -5
- package/cjs/page/Injected.js +6 -8
- package/cjs/page/Metadata.js +1 -5
- package/cjs/page/PostMessageProvider.js +25 -38
- package/cjs/page/Signer.js +12 -12
- package/cjs/page/index.js +8 -14
- package/cjs/stores/Accounts.js +2 -9
- package/cjs/stores/Base.js +1 -14
- package/cjs/stores/Metadata.js +2 -7
- package/cjs/stores/index.js +0 -3
- package/cjs/utils/canDerive.js +1 -1
- package/cjs/utils/getId.js +1 -3
- package/cjs/utils/index.js +0 -1
- package/defaults.d.ts +2 -2
- package/defaults.js +14 -5
- package/detectOther.js +1 -0
- package/detectPackage.js +2 -0
- package/index.js +2 -0
- package/package.json +16 -16
- package/packageInfo.js +3 -1
- package/page/Accounts.js +1 -3
- package/page/Injected.js +6 -1
- package/page/Metadata.js +1 -3
- package/page/PostMessageProvider.d.ts +2 -1
- package/page/PostMessageProvider.js +25 -33
- package/page/Signer.js +12 -10
- package/page/index.d.ts +1 -1
- package/page/index.js +11 -7
- package/stores/Accounts.js +2 -4
- package/stores/Base.js +1 -12
- package/stores/Metadata.js +2 -2
- package/stores/index.js +1 -0
- package/utils/canDerive.js +1 -0
- package/utils/getId.js +1 -0
- package/utils/index.js +1 -0
|
@@ -1,34 +1,23 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports.default = void 0;
|
|
9
|
-
|
|
10
8
|
var _defaults = require("@polkadot/extension-base/defaults");
|
|
11
|
-
|
|
12
9
|
var _utils = require("@polkadot/extension-base/utils");
|
|
13
|
-
|
|
14
10
|
var _phishing = require("@polkadot/phishing");
|
|
15
|
-
|
|
16
11
|
var _uiKeyring = _interopRequireDefault(require("@polkadot/ui-keyring"));
|
|
17
|
-
|
|
18
12
|
var _accounts = require("@polkadot/ui-keyring/observable/accounts");
|
|
19
|
-
|
|
20
13
|
var _util = require("@polkadot/util");
|
|
21
|
-
|
|
22
14
|
var _RequestBytesSign = _interopRequireDefault(require("../RequestBytesSign"));
|
|
23
|
-
|
|
24
15
|
var _RequestExtrinsicSign = _interopRequireDefault(require("../RequestExtrinsicSign"));
|
|
25
|
-
|
|
26
16
|
var _helpers = require("./helpers");
|
|
27
|
-
|
|
28
17
|
var _subscriptions = require("./subscriptions");
|
|
29
|
-
|
|
30
18
|
// Copyright 2019-2022 @polkadot/extension authors & contributors
|
|
31
19
|
// SPDX-License-Identifier: Apache-2.0
|
|
20
|
+
|
|
32
21
|
function transformAccounts(accounts) {
|
|
33
22
|
let anyType = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
34
23
|
return Object.values(accounts).filter(_ref => {
|
|
@@ -64,26 +53,23 @@ function transformAccounts(accounts) {
|
|
|
64
53
|
};
|
|
65
54
|
});
|
|
66
55
|
}
|
|
67
|
-
|
|
68
56
|
class Tabs {
|
|
69
57
|
#accountSubs = {};
|
|
70
58
|
#state;
|
|
71
|
-
|
|
72
59
|
constructor(state) {
|
|
73
60
|
this.#state = state;
|
|
74
61
|
}
|
|
75
|
-
|
|
76
62
|
filterForAuthorizedAccounts(accounts, url) {
|
|
77
63
|
const auth = this.#state.authUrls[this.#state.stripUrl(url)];
|
|
78
|
-
return accounts.filter(allAcc => auth.authorizedAccounts
|
|
79
|
-
|
|
64
|
+
return accounts.filter(allAcc => auth.authorizedAccounts
|
|
65
|
+
// we have a list, use it
|
|
66
|
+
? auth.authorizedAccounts.includes(allAcc.address)
|
|
67
|
+
// if no authorizedAccounts and isAllowed return all - these are old converted urls
|
|
80
68
|
: auth.isAllowed);
|
|
81
69
|
}
|
|
82
|
-
|
|
83
70
|
authorize(url, request) {
|
|
84
71
|
return this.#state.authorizeUrl(url, request);
|
|
85
72
|
}
|
|
86
|
-
|
|
87
73
|
accountsListAuthorized(url, _ref4) {
|
|
88
74
|
let {
|
|
89
75
|
anyType
|
|
@@ -91,7 +77,6 @@ class Tabs {
|
|
|
91
77
|
const transformedAccounts = transformAccounts(_accounts.accounts.subject.getValue(), anyType);
|
|
92
78
|
return this.filterForAuthorizedAccounts(transformedAccounts, url);
|
|
93
79
|
}
|
|
94
|
-
|
|
95
80
|
accountsSubscribeAuthorized(url, id, port) {
|
|
96
81
|
const cb = (0, _subscriptions.createSubscription)(id, port);
|
|
97
82
|
this.#accountSubs[id] = {
|
|
@@ -108,30 +93,24 @@ class Tabs {
|
|
|
108
93
|
});
|
|
109
94
|
return id;
|
|
110
95
|
}
|
|
111
|
-
|
|
112
96
|
accountsUnsubscribe(url, _ref5) {
|
|
113
97
|
let {
|
|
114
98
|
id
|
|
115
99
|
} = _ref5;
|
|
116
100
|
const sub = this.#accountSubs[id];
|
|
117
|
-
|
|
118
101
|
if (!sub || sub.url !== url) {
|
|
119
102
|
return false;
|
|
120
103
|
}
|
|
121
|
-
|
|
122
104
|
delete this.#accountSubs[id];
|
|
123
105
|
(0, _subscriptions.unsubscribe)(id);
|
|
124
106
|
sub.subscription.unsubscribe();
|
|
125
107
|
return true;
|
|
126
108
|
}
|
|
127
|
-
|
|
128
109
|
getSigningPair(address) {
|
|
129
110
|
const pair = _uiKeyring.default.getPair(address);
|
|
130
|
-
|
|
131
111
|
(0, _util.assert)(pair, 'Unable to find keypair');
|
|
132
112
|
return pair;
|
|
133
113
|
}
|
|
134
|
-
|
|
135
114
|
bytesSign(url, request) {
|
|
136
115
|
const address = request.address;
|
|
137
116
|
const pair = this.getSigningPair(address);
|
|
@@ -140,7 +119,6 @@ class Tabs {
|
|
|
140
119
|
...pair.meta
|
|
141
120
|
});
|
|
142
121
|
}
|
|
143
|
-
|
|
144
122
|
extrinsicSign(url, request) {
|
|
145
123
|
const address = request.address;
|
|
146
124
|
const pair = this.getSigningPair(address);
|
|
@@ -149,12 +127,11 @@ class Tabs {
|
|
|
149
127
|
...pair.meta
|
|
150
128
|
});
|
|
151
129
|
}
|
|
152
|
-
|
|
153
130
|
metadataProvide(url, request) {
|
|
154
131
|
return this.#state.injectMetadata(url, request);
|
|
155
|
-
}
|
|
156
|
-
|
|
132
|
+
}
|
|
157
133
|
|
|
134
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
158
135
|
metadataList(url) {
|
|
159
136
|
return this.#state.knownMetadata.map(_ref6 => {
|
|
160
137
|
let {
|
|
@@ -167,50 +144,40 @@ class Tabs {
|
|
|
167
144
|
};
|
|
168
145
|
});
|
|
169
146
|
}
|
|
170
|
-
|
|
171
147
|
rpcListProviders() {
|
|
172
148
|
return this.#state.rpcListProviders();
|
|
173
149
|
}
|
|
174
|
-
|
|
175
150
|
rpcSend(request, port) {
|
|
176
151
|
return this.#state.rpcSend(request, port);
|
|
177
152
|
}
|
|
178
|
-
|
|
179
153
|
rpcStartProvider(key, port) {
|
|
180
154
|
return this.#state.rpcStartProvider(key, port);
|
|
181
155
|
}
|
|
182
|
-
|
|
183
156
|
async rpcSubscribe(request, id, port) {
|
|
184
157
|
const innerCb = (0, _subscriptions.createSubscription)(id, port);
|
|
185
|
-
|
|
186
158
|
const cb = (_error, data) => innerCb(data);
|
|
187
|
-
|
|
188
159
|
const subscriptionId = await this.#state.rpcSubscribe(request, cb, port);
|
|
189
160
|
port.onDisconnect.addListener(() => {
|
|
190
161
|
(0, _subscriptions.unsubscribe)(id);
|
|
191
|
-
(0, _helpers.withErrorLog)(() => this.rpcUnsubscribe({
|
|
162
|
+
(0, _helpers.withErrorLog)(() => this.rpcUnsubscribe({
|
|
163
|
+
...request,
|
|
192
164
|
subscriptionId
|
|
193
165
|
}, port));
|
|
194
166
|
});
|
|
195
167
|
return true;
|
|
196
168
|
}
|
|
197
|
-
|
|
198
169
|
rpcSubscribeConnected(request, id, port) {
|
|
199
170
|
const innerCb = (0, _subscriptions.createSubscription)(id, port);
|
|
200
|
-
|
|
201
171
|
const cb = (_error, data) => innerCb(data);
|
|
202
|
-
|
|
203
172
|
this.#state.rpcSubscribeConnected(request, cb, port);
|
|
204
173
|
port.onDisconnect.addListener(() => {
|
|
205
174
|
(0, _subscriptions.unsubscribe)(id);
|
|
206
175
|
});
|
|
207
176
|
return Promise.resolve(true);
|
|
208
177
|
}
|
|
209
|
-
|
|
210
178
|
async rpcUnsubscribe(request, port) {
|
|
211
179
|
return this.#state.rpcUnsubscribe(request, port);
|
|
212
180
|
}
|
|
213
|
-
|
|
214
181
|
redirectPhishingLanding(phishingWebsite) {
|
|
215
182
|
const nonFragment = phishingWebsite.split('#')[0];
|
|
216
183
|
const encodedWebsite = encodeURIComponent(nonFragment);
|
|
@@ -228,75 +195,55 @@ class Tabs {
|
|
|
228
195
|
})));
|
|
229
196
|
});
|
|
230
197
|
}
|
|
231
|
-
|
|
232
198
|
async redirectIfPhishing(url) {
|
|
233
199
|
const isInDenyList = await (0, _phishing.checkIfDenied)(url);
|
|
234
|
-
|
|
235
200
|
if (isInDenyList) {
|
|
236
201
|
this.redirectPhishingLanding(url);
|
|
237
202
|
return true;
|
|
238
203
|
}
|
|
239
|
-
|
|
240
204
|
return false;
|
|
241
205
|
}
|
|
242
|
-
|
|
243
206
|
async handle(id, type, request, url, port) {
|
|
244
207
|
if (type === 'pub(phishing.redirectIfDenied)') {
|
|
245
208
|
return this.redirectIfPhishing(url);
|
|
246
209
|
}
|
|
247
|
-
|
|
248
210
|
if (type !== 'pub(authorize.tab)') {
|
|
249
211
|
this.#state.ensureUrlAuthorized(url);
|
|
250
212
|
}
|
|
251
|
-
|
|
252
213
|
switch (type) {
|
|
253
214
|
case 'pub(authorize.tab)':
|
|
254
215
|
return this.authorize(url, request);
|
|
255
|
-
|
|
256
216
|
case 'pub(accounts.list)':
|
|
257
217
|
return this.accountsListAuthorized(url, request);
|
|
258
|
-
|
|
259
218
|
case 'pub(accounts.subscribe)':
|
|
260
|
-
return this.accountsSubscribeAuthorized(url, id, port);
|
|
261
|
-
|
|
219
|
+
return port && this.accountsSubscribeAuthorized(url, id, port);
|
|
262
220
|
case 'pub(accounts.unsubscribe)':
|
|
263
221
|
return this.accountsUnsubscribe(url, request);
|
|
264
|
-
|
|
265
222
|
case 'pub(bytes.sign)':
|
|
266
223
|
return this.bytesSign(url, request);
|
|
267
|
-
|
|
268
224
|
case 'pub(extrinsic.sign)':
|
|
269
225
|
return this.extrinsicSign(url, request);
|
|
270
|
-
|
|
271
226
|
case 'pub(metadata.list)':
|
|
272
227
|
return this.metadataList(url);
|
|
273
|
-
|
|
274
228
|
case 'pub(metadata.provide)':
|
|
275
229
|
return this.metadataProvide(url, request);
|
|
276
|
-
|
|
230
|
+
case 'pub(ping)':
|
|
231
|
+
return Promise.resolve(true);
|
|
277
232
|
case 'pub(rpc.listProviders)':
|
|
278
233
|
return this.rpcListProviders();
|
|
279
|
-
|
|
280
234
|
case 'pub(rpc.send)':
|
|
281
|
-
return this.rpcSend(request, port);
|
|
282
|
-
|
|
235
|
+
return port && this.rpcSend(request, port);
|
|
283
236
|
case 'pub(rpc.startProvider)':
|
|
284
|
-
return this.rpcStartProvider(request, port);
|
|
285
|
-
|
|
237
|
+
return port && this.rpcStartProvider(request, port);
|
|
286
238
|
case 'pub(rpc.subscribe)':
|
|
287
|
-
return this.rpcSubscribe(request, id, port);
|
|
288
|
-
|
|
239
|
+
return port && this.rpcSubscribe(request, id, port);
|
|
289
240
|
case 'pub(rpc.subscribeConnected)':
|
|
290
|
-
return this.rpcSubscribeConnected(request, id, port);
|
|
291
|
-
|
|
241
|
+
return port && this.rpcSubscribeConnected(request, id, port);
|
|
292
242
|
case 'pub(rpc.unsubscribe)':
|
|
293
|
-
return this.rpcUnsubscribe(request, port);
|
|
294
|
-
|
|
243
|
+
return port && this.rpcUnsubscribe(request, port);
|
|
295
244
|
default:
|
|
296
245
|
throw new Error(`Unable to handle message of type ${type}`);
|
|
297
246
|
}
|
|
298
247
|
}
|
|
299
|
-
|
|
300
248
|
}
|
|
301
|
-
|
|
302
249
|
exports.default = Tabs;
|
|
@@ -4,13 +4,12 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.withErrorLog = withErrorLog;
|
|
7
|
-
|
|
8
7
|
// Copyright 2019-2022 @polkadot/extension authors & contributors
|
|
9
8
|
// SPDX-License-Identifier: Apache-2.0
|
|
9
|
+
|
|
10
10
|
function withErrorLog(fn) {
|
|
11
11
|
try {
|
|
12
12
|
const p = fn();
|
|
13
|
-
|
|
14
13
|
if (p && typeof p === 'object' && typeof p.catch === 'function') {
|
|
15
14
|
p.catch(console.error);
|
|
16
15
|
}
|
|
@@ -1,28 +1,21 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports.default = handler;
|
|
9
|
-
|
|
10
8
|
var _util = require("@polkadot/util");
|
|
11
|
-
|
|
12
9
|
var _defaults = require("../../defaults");
|
|
13
|
-
|
|
14
10
|
var _Extension = _interopRequireDefault(require("./Extension"));
|
|
15
|
-
|
|
16
11
|
var _State = _interopRequireDefault(require("./State"));
|
|
17
|
-
|
|
18
12
|
var _Tabs = _interopRequireDefault(require("./Tabs"));
|
|
19
|
-
|
|
20
13
|
// Copyright 2019-2022 @polkadot/extension authors & contributors
|
|
21
14
|
// SPDX-License-Identifier: Apache-2.0
|
|
15
|
+
|
|
22
16
|
const state = new _State.default();
|
|
23
17
|
const extension = new _Extension.default(state);
|
|
24
18
|
const tabs = new _Tabs.default(state);
|
|
25
|
-
|
|
26
19
|
function handler(_ref, port) {
|
|
27
20
|
let {
|
|
28
21
|
id,
|
|
@@ -30,8 +23,8 @@ function handler(_ref, port) {
|
|
|
30
23
|
request
|
|
31
24
|
} = _ref;
|
|
32
25
|
let extensionPortName = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _defaults.PORT_EXTENSION;
|
|
33
|
-
const isExtension = port.name === extensionPortName;
|
|
34
|
-
const sender = port.sender;
|
|
26
|
+
const isExtension = !port || (port == null ? void 0 : port.name) === extensionPortName;
|
|
27
|
+
const sender = port == null ? void 0 : port.sender;
|
|
35
28
|
const from = isExtension ? 'extension' : sender.tab && sender.tab.url || sender.url || '<unknown>';
|
|
36
29
|
const source = `${from}: ${id}: ${message}`;
|
|
37
30
|
console.log(` [in] ${source}`); // :: ${JSON.stringify(request)}`);
|
|
@@ -39,17 +32,18 @@ function handler(_ref, port) {
|
|
|
39
32
|
const promise = isExtension ? extension.handle(id, message, request, port) : tabs.handle(id, message, request, from, port);
|
|
40
33
|
promise.then(response => {
|
|
41
34
|
console.log(`[out] ${source}`); // :: ${JSON.stringify(response)}`);
|
|
35
|
+
|
|
42
36
|
// between the start and the end of the promise, the user may have closed
|
|
43
37
|
// the tab, in which case port will be undefined
|
|
44
|
-
|
|
45
38
|
(0, _util.assert)(port, 'Port has been disconnected');
|
|
46
39
|
port.postMessage({
|
|
47
40
|
id,
|
|
48
41
|
response
|
|
49
42
|
});
|
|
50
43
|
}).catch(error => {
|
|
51
|
-
console.log(`[err] ${source}:: ${error.message}`);
|
|
44
|
+
console.log(`[err] ${source}:: ${error.message}`);
|
|
52
45
|
|
|
46
|
+
// only send message back to port if it's still connected
|
|
53
47
|
if (port) {
|
|
54
48
|
port.postMessage({
|
|
55
49
|
error: error.message,
|
|
@@ -7,8 +7,10 @@ exports.createSubscription = createSubscription;
|
|
|
7
7
|
exports.unsubscribe = unsubscribe;
|
|
8
8
|
// Copyright 2019-2022 @polkadot/extension authors & contributors
|
|
9
9
|
// SPDX-License-Identifier: Apache-2.0
|
|
10
|
-
const subscriptions = {}; // return a subscription callback, that will send the data to the caller via the port
|
|
11
10
|
|
|
11
|
+
const subscriptions = {};
|
|
12
|
+
|
|
13
|
+
// return a subscription callback, that will send the data to the caller via the port
|
|
12
14
|
function createSubscription(id, port) {
|
|
13
15
|
subscriptions[id] = port;
|
|
14
16
|
return subscription => {
|
|
@@ -19,9 +21,9 @@ function createSubscription(id, port) {
|
|
|
19
21
|
});
|
|
20
22
|
}
|
|
21
23
|
};
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
+
}
|
|
24
25
|
|
|
26
|
+
// clear a previous subscriber
|
|
25
27
|
function unsubscribe(id) {
|
|
26
28
|
if (subscriptions[id]) {
|
|
27
29
|
console.log(`Unsubscribing from ${id}`);
|
package/cjs/bundle.js
CHANGED
package/cjs/defaults.js
CHANGED
|
@@ -6,21 +6,29 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.PORT_EXTENSION = exports.PORT_CONTENT = exports.PHISHING_PAGE_REDIRECT = exports.PASSWORD_EXPIRY_MS = exports.PASSWORD_EXPIRY_MIN = exports.MESSAGE_ORIGIN_PAGE = exports.MESSAGE_ORIGIN_CONTENT = exports.EXTENSION_PREFIX = exports.ALLOWED_PATH = void 0;
|
|
7
7
|
// Copyright 2019-2022 @polkadot/extension-base authors & contributors
|
|
8
8
|
// SPDX-License-Identifier: Apache-2.0
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
const PHISHING_PAGE_REDIRECT = '/phishing-page-detected';
|
|
12
|
-
exports.PHISHING_PAGE_REDIRECT = PHISHING_PAGE_REDIRECT;
|
|
9
|
+
|
|
10
|
+
// this _must_ be changed for each extension
|
|
13
11
|
const EXTENSION_PREFIX = process.env.EXTENSION_PREFIX || '';
|
|
14
12
|
exports.EXTENSION_PREFIX = EXTENSION_PREFIX;
|
|
15
|
-
|
|
13
|
+
if (!EXTENSION_PREFIX && !process.env.PORT_PREFIX) {
|
|
14
|
+
throw new Error('CRITICAL: The extension does not define an own EXTENSION_PREFIX environment variable as part of the build, this is required to ensure that messages are not shared between extensions. Failure to do so will yield messages sent to multiple extensions.');
|
|
15
|
+
}
|
|
16
|
+
const PORT_PREFIX = `${EXTENSION_PREFIX || 'unknown'}-${process.env.PORT_PREFIX || 'unknown'}`;
|
|
17
|
+
const PORT_CONTENT = `${PORT_PREFIX}-content`;
|
|
16
18
|
exports.PORT_CONTENT = PORT_CONTENT;
|
|
17
|
-
const PORT_EXTENSION = `${
|
|
19
|
+
const PORT_EXTENSION = `${PORT_PREFIX}-extension`;
|
|
18
20
|
exports.PORT_EXTENSION = PORT_EXTENSION;
|
|
19
|
-
const MESSAGE_ORIGIN_PAGE = `${
|
|
21
|
+
const MESSAGE_ORIGIN_PAGE = `${PORT_PREFIX}-page`;
|
|
20
22
|
exports.MESSAGE_ORIGIN_PAGE = MESSAGE_ORIGIN_PAGE;
|
|
21
|
-
const MESSAGE_ORIGIN_CONTENT = `${
|
|
23
|
+
const MESSAGE_ORIGIN_CONTENT = `${PORT_PREFIX}-content`;
|
|
22
24
|
exports.MESSAGE_ORIGIN_CONTENT = MESSAGE_ORIGIN_CONTENT;
|
|
25
|
+
const ALLOWED_PATH = ['/', '/account/import-ledger', '/account/restore-json'];
|
|
26
|
+
exports.ALLOWED_PATH = ALLOWED_PATH;
|
|
27
|
+
const PHISHING_PAGE_REDIRECT = '/phishing-page-detected';
|
|
28
|
+
exports.PHISHING_PAGE_REDIRECT = PHISHING_PAGE_REDIRECT;
|
|
23
29
|
const PASSWORD_EXPIRY_MIN = 15;
|
|
24
30
|
exports.PASSWORD_EXPIRY_MIN = PASSWORD_EXPIRY_MIN;
|
|
25
31
|
const PASSWORD_EXPIRY_MS = PASSWORD_EXPIRY_MIN * 60 * 1000;
|
|
32
|
+
|
|
33
|
+
// console.log(`Extension is sending and receiving messages on ${PORT_PREFIX}-*`);
|
|
26
34
|
exports.PASSWORD_EXPIRY_MS = PASSWORD_EXPIRY_MS;
|
package/cjs/detectOther.js
CHANGED
|
@@ -4,13 +4,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
|
|
8
7
|
var _packageInfo = require("@polkadot/extension-chains/cjs/packageInfo");
|
|
9
|
-
|
|
10
8
|
var _packageInfo2 = require("@polkadot/extension-dapp/cjs/packageInfo");
|
|
11
|
-
|
|
12
9
|
var _packageInfo3 = require("@polkadot/extension-inject/cjs/packageInfo");
|
|
13
|
-
|
|
14
10
|
// Copyright 2017-2022 @polkadot/extension-base authors & contributors
|
|
15
11
|
// SPDX-License-Identifier: Apache-2.0
|
|
16
12
|
var _default = [_packageInfo.packageInfo, _packageInfo2.packageInfo, _packageInfo3.packageInfo];
|
package/cjs/detectPackage.js
CHANGED
|
@@ -1,14 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
var _util = require("@polkadot/util");
|
|
6
|
-
|
|
7
5
|
var _detectOther = _interopRequireDefault(require("./detectOther"));
|
|
8
|
-
|
|
9
6
|
var _packageInfo = require("./packageInfo");
|
|
10
|
-
|
|
11
7
|
// Copyright 2017-2022 @polkadot/extension-base authors & contributors
|
|
12
8
|
// SPDX-License-Identifier: Apache-2.0
|
|
9
|
+
|
|
13
10
|
// Do not edit, auto-generated by @polkadot/dev
|
|
11
|
+
|
|
14
12
|
(0, _util.detectPackage)(_packageInfo.packageInfo, null, _detectOther.default);
|
package/cjs/index.js
CHANGED
|
@@ -3,9 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
|
|
7
6
|
var _bundle = require("./bundle");
|
|
8
|
-
|
|
9
7
|
Object.keys(_bundle).forEach(function (key) {
|
|
10
8
|
if (key === "default" || key === "__esModule") return;
|
|
11
9
|
if (key in exports && exports[key] === _bundle[key]) return;
|
package/cjs/packageInfo.js
CHANGED
|
@@ -6,11 +6,13 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.packageInfo = void 0;
|
|
7
7
|
// Copyright 2017-2022 @polkadot/extension-base authors & contributors
|
|
8
8
|
// SPDX-License-Identifier: Apache-2.0
|
|
9
|
+
|
|
9
10
|
// Do not edit, auto-generated by @polkadot/dev
|
|
11
|
+
|
|
10
12
|
const packageInfo = {
|
|
11
13
|
name: '@polkadot/extension-base',
|
|
12
14
|
path: typeof __dirname === 'string' ? __dirname : 'auto',
|
|
13
15
|
type: 'cjs',
|
|
14
|
-
version: '0.44.
|
|
16
|
+
version: '0.44.7'
|
|
15
17
|
};
|
|
16
18
|
exports.packageInfo = packageInfo;
|
package/cjs/page/Accounts.js
CHANGED
|
@@ -6,20 +6,18 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
// Copyright 2019-2022 @polkadot/extension authors & contributors
|
|
8
8
|
// SPDX-License-Identifier: Apache-2.0
|
|
9
|
+
|
|
9
10
|
// External to class, this.# is not private enough (yet)
|
|
10
11
|
let sendRequest;
|
|
11
|
-
|
|
12
12
|
class Accounts {
|
|
13
13
|
constructor(_sendRequest) {
|
|
14
14
|
sendRequest = _sendRequest;
|
|
15
15
|
}
|
|
16
|
-
|
|
17
16
|
get(anyType) {
|
|
18
17
|
return sendRequest('pub(accounts.list)', {
|
|
19
18
|
anyType
|
|
20
19
|
});
|
|
21
20
|
}
|
|
22
|
-
|
|
23
21
|
subscribe(cb) {
|
|
24
22
|
let id = null;
|
|
25
23
|
sendRequest('pub(accounts.subscribe)', null, cb).then(subId => {
|
|
@@ -31,7 +29,5 @@ class Accounts {
|
|
|
31
29
|
}).catch(console.error);
|
|
32
30
|
};
|
|
33
31
|
}
|
|
34
|
-
|
|
35
32
|
}
|
|
36
|
-
|
|
37
33
|
exports.default = Accounts;
|
package/cjs/page/Injected.js
CHANGED
|
@@ -1,30 +1,28 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports.default = void 0;
|
|
9
|
-
|
|
10
8
|
var _Accounts = _interopRequireDefault(require("./Accounts"));
|
|
11
|
-
|
|
12
9
|
var _Metadata = _interopRequireDefault(require("./Metadata"));
|
|
13
|
-
|
|
14
10
|
var _PostMessageProvider = _interopRequireDefault(require("./PostMessageProvider"));
|
|
15
|
-
|
|
16
11
|
var _Signer = _interopRequireDefault(require("./Signer"));
|
|
17
|
-
|
|
18
12
|
// Copyright 2019-2022 @polkadot/extension authors & contributors
|
|
19
13
|
// SPDX-License-Identifier: Apache-2.0
|
|
14
|
+
|
|
20
15
|
class _default {
|
|
21
16
|
constructor(sendRequest) {
|
|
22
17
|
this.accounts = new _Accounts.default(sendRequest);
|
|
23
18
|
this.metadata = new _Metadata.default(sendRequest);
|
|
24
19
|
this.provider = new _PostMessageProvider.default(sendRequest);
|
|
25
20
|
this.signer = new _Signer.default(sendRequest);
|
|
21
|
+
setInterval(() => {
|
|
22
|
+
sendRequest('pub(ping)', null).catch(() => {
|
|
23
|
+
console.error('Extension unavailable, ping failed');
|
|
24
|
+
});
|
|
25
|
+
}, 5000 + Math.floor(Math.random() * 5000));
|
|
26
26
|
}
|
|
27
|
-
|
|
28
27
|
}
|
|
29
|
-
|
|
30
28
|
exports.default = _default;
|
package/cjs/page/Metadata.js
CHANGED
|
@@ -6,22 +6,18 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
// Copyright 2019-2022 @polkadot/extension authors & contributors
|
|
8
8
|
// SPDX-License-Identifier: Apache-2.0
|
|
9
|
+
|
|
9
10
|
// External to class, this.# is not private enough (yet)
|
|
10
11
|
let sendRequest;
|
|
11
|
-
|
|
12
12
|
class Metadata {
|
|
13
13
|
constructor(_sendRequest) {
|
|
14
14
|
sendRequest = _sendRequest;
|
|
15
15
|
}
|
|
16
|
-
|
|
17
16
|
get() {
|
|
18
17
|
return sendRequest('pub(metadata.list)');
|
|
19
18
|
}
|
|
20
|
-
|
|
21
19
|
provide(definition) {
|
|
22
20
|
return sendRequest('pub(metadata.provide)', definition);
|
|
23
21
|
}
|
|
24
|
-
|
|
25
22
|
}
|
|
26
|
-
|
|
27
23
|
exports.default = Metadata;
|