@polkadot/extension-base 0.41.2-3 → 0.41.3-2
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/README.md +3 -1
- package/background/handlers/State.cjs +5 -9
- package/background/handlers/State.js +1 -5
- package/background/types.d.ts +1 -1
- package/defaults.cjs +10 -4
- package/defaults.d.ts +6 -3
- package/defaults.js +6 -3
- package/package.json +12 -7
- package/packageInfo.cjs +1 -1
- package/packageInfo.js +1 -1
- package/page/index.cjs +7 -4
- package/page/index.js +5 -4
- package/stores/Accounts.cjs +3 -1
- package/stores/Accounts.js +2 -1
- package/stores/Metadata.cjs +3 -1
- package/stores/Metadata.js +2 -1
- package/utils/getId.cjs +16 -0
- package/utils/getId.d.ts +1 -0
- package/utils/getId.js +7 -0
package/README.md
CHANGED
|
@@ -5,4 +5,6 @@ Functions, classes and other utilities used in `@polkadot/extension`. These incl
|
|
|
5
5
|
- message passing,
|
|
6
6
|
- scripts injected inside pages.
|
|
7
7
|
|
|
8
|
-
They are primarily meant to be used in `@polkadot/extension`, and can be broken without any notice to cater for `@polkadot/extension`'s needs.
|
|
8
|
+
They are primarily meant to be used in `@polkadot/extension`, and can be broken without any notice to cater for `@polkadot/extension`'s needs.
|
|
9
|
+
|
|
10
|
+
They are exported here if you wish to use part of them in the development of your own extension. Don't forget to add `process.env.EXTENSION_PREFIX` to separate ports and stores from the current extension's ones.
|
|
@@ -13,6 +13,8 @@ var _classPrivateFieldLooseKey2 = _interopRequireDefault(require("@babel/runtime
|
|
|
13
13
|
|
|
14
14
|
var _rxjs = require("rxjs");
|
|
15
15
|
|
|
16
|
+
var _getId = require("@polkadot/extension-base/utils/getId");
|
|
17
|
+
|
|
16
18
|
var _extensionChains = require("@polkadot/extension-chains");
|
|
17
19
|
|
|
18
20
|
var _chrome = _interopRequireDefault(require("@polkadot/extension-inject/chrome"));
|
|
@@ -25,8 +27,6 @@ var _index = require("../../stores/index.cjs");
|
|
|
25
27
|
|
|
26
28
|
// Copyright 2019-2021 @polkadot/extension-bg authors & contributors
|
|
27
29
|
// SPDX-License-Identifier: Apache-2.0
|
|
28
|
-
let idCounter = 0;
|
|
29
|
-
|
|
30
30
|
const NOTIFICATION_URL = _chrome.default.extension.getURL('notification.html');
|
|
31
31
|
|
|
32
32
|
const POPUP_WINDOW_OPTS = {
|
|
@@ -54,10 +54,6 @@ exports.NotificationOptions = NotificationOptions;
|
|
|
54
54
|
|
|
55
55
|
const AUTH_URLS_KEY = 'authUrls';
|
|
56
56
|
|
|
57
|
-
function getId() {
|
|
58
|
-
return `${Date.now()}.${++idCounter}`;
|
|
59
|
-
}
|
|
60
|
-
|
|
61
57
|
var _authUrls = /*#__PURE__*/(0, _classPrivateFieldLooseKey2.default)("authUrls");
|
|
62
58
|
|
|
63
59
|
var _authRequests = /*#__PURE__*/(0, _classPrivateFieldLooseKey2.default)("authRequests");
|
|
@@ -349,7 +345,7 @@ class State {
|
|
|
349
345
|
}
|
|
350
346
|
|
|
351
347
|
return new Promise((resolve, reject) => {
|
|
352
|
-
const id = getId();
|
|
348
|
+
const id = (0, _getId.getId)();
|
|
353
349
|
(0, _classPrivateFieldLooseBase2.default)(this, _authRequests)[_authRequests][id] = { ...this.authComplete(id, resolve, reject),
|
|
354
350
|
id,
|
|
355
351
|
idStr,
|
|
@@ -371,7 +367,7 @@ class State {
|
|
|
371
367
|
|
|
372
368
|
injectMetadata(url, request) {
|
|
373
369
|
return new Promise((resolve, reject) => {
|
|
374
|
-
const id = getId();
|
|
370
|
+
const id = (0, _getId.getId)();
|
|
375
371
|
(0, _classPrivateFieldLooseBase2.default)(this, _metaRequests)[_metaRequests][id] = { ...this.metaComplete(id, resolve, reject),
|
|
376
372
|
id,
|
|
377
373
|
request,
|
|
@@ -475,7 +471,7 @@ class State {
|
|
|
475
471
|
}
|
|
476
472
|
|
|
477
473
|
sign(url, request, account) {
|
|
478
|
-
const id = getId();
|
|
474
|
+
const id = (0, _getId.getId)();
|
|
479
475
|
return new Promise((resolve, reject) => {
|
|
480
476
|
(0, _classPrivateFieldLooseBase2.default)(this, _signRequests)[_signRequests][id] = { ...this.signComplete(id, resolve, reject),
|
|
481
477
|
account,
|
|
@@ -3,12 +3,12 @@ import _classPrivateFieldLooseKey from "@babel/runtime/helpers/esm/classPrivateF
|
|
|
3
3
|
// Copyright 2019-2021 @polkadot/extension-bg authors & contributors
|
|
4
4
|
// SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
import { BehaviorSubject } from 'rxjs';
|
|
6
|
+
import { getId } from '@polkadot/extension-base/utils/getId';
|
|
6
7
|
import { addMetadata, knownMetadata } from '@polkadot/extension-chains';
|
|
7
8
|
import chrome from '@polkadot/extension-inject/chrome';
|
|
8
9
|
import settings from '@polkadot/ui-settings';
|
|
9
10
|
import { assert } from '@polkadot/util';
|
|
10
11
|
import { MetadataStore } from "../../stores/index.js";
|
|
11
|
-
let idCounter = 0;
|
|
12
12
|
const NOTIFICATION_URL = chrome.extension.getURL('notification.html');
|
|
13
13
|
const POPUP_WINDOW_OPTS = {
|
|
14
14
|
focused: true,
|
|
@@ -34,10 +34,6 @@ export let NotificationOptions;
|
|
|
34
34
|
|
|
35
35
|
const AUTH_URLS_KEY = 'authUrls';
|
|
36
36
|
|
|
37
|
-
function getId() {
|
|
38
|
-
return `${Date.now()}.${++idCounter}`;
|
|
39
|
-
}
|
|
40
|
-
|
|
41
37
|
var _authUrls = /*#__PURE__*/_classPrivateFieldLooseKey("authUrls");
|
|
42
38
|
|
|
43
39
|
var _authRequests = /*#__PURE__*/_classPrivateFieldLooseKey("authRequests");
|
package/background/types.d.ts
CHANGED
|
@@ -117,7 +117,7 @@ export declare type MessageTypesWithNullRequest = NullKeys<RequestTypes>;
|
|
|
117
117
|
export interface TransportRequestMessage<TMessageType extends MessageTypes> {
|
|
118
118
|
id: string;
|
|
119
119
|
message: TMessageType;
|
|
120
|
-
origin:
|
|
120
|
+
origin: string;
|
|
121
121
|
request: RequestTypes[TMessageType];
|
|
122
122
|
}
|
|
123
123
|
export interface RequestAuthorizeTab {
|
package/defaults.cjs
CHANGED
|
@@ -3,17 +3,23 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.PORT_EXTENSION = exports.PORT_CONTENT = exports.PHISHING_PAGE_REDIRECT = exports.PASSWORD_EXPIRY_MS = exports.PASSWORD_EXPIRY_MIN = exports.ALLOWED_PATH = void 0;
|
|
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-2021 @polkadot/extension-base authors & contributors
|
|
8
8
|
// SPDX-License-Identifier: Apache-2.0
|
|
9
9
|
const ALLOWED_PATH = ['/', '/account/import-ledger', '/account/restore-json'];
|
|
10
10
|
exports.ALLOWED_PATH = ALLOWED_PATH;
|
|
11
|
-
const PORT_CONTENT = 'content';
|
|
12
|
-
exports.PORT_CONTENT = PORT_CONTENT;
|
|
13
11
|
const PHISHING_PAGE_REDIRECT = '/phishing-page-detected';
|
|
14
12
|
exports.PHISHING_PAGE_REDIRECT = PHISHING_PAGE_REDIRECT;
|
|
15
|
-
const
|
|
13
|
+
const EXTENSION_PREFIX = process.env.EXTENSION_PREFIX || '';
|
|
14
|
+
exports.EXTENSION_PREFIX = EXTENSION_PREFIX;
|
|
15
|
+
const PORT_CONTENT = `${EXTENSION_PREFIX}content`;
|
|
16
|
+
exports.PORT_CONTENT = PORT_CONTENT;
|
|
17
|
+
const PORT_EXTENSION = `${EXTENSION_PREFIX}extension`;
|
|
16
18
|
exports.PORT_EXTENSION = PORT_EXTENSION;
|
|
19
|
+
const MESSAGE_ORIGIN_PAGE = `${EXTENSION_PREFIX}page`;
|
|
20
|
+
exports.MESSAGE_ORIGIN_PAGE = MESSAGE_ORIGIN_PAGE;
|
|
21
|
+
const MESSAGE_ORIGIN_CONTENT = `${EXTENSION_PREFIX}content`;
|
|
22
|
+
exports.MESSAGE_ORIGIN_CONTENT = MESSAGE_ORIGIN_CONTENT;
|
|
17
23
|
const PASSWORD_EXPIRY_MIN = 15;
|
|
18
24
|
exports.PASSWORD_EXPIRY_MIN = PASSWORD_EXPIRY_MIN;
|
|
19
25
|
const PASSWORD_EXPIRY_MS = PASSWORD_EXPIRY_MIN * 60 * 1000;
|
package/defaults.d.ts
CHANGED
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
declare const ALLOWED_PATH: readonly ["/", "/account/import-ledger", "/account/restore-json"];
|
|
2
|
-
declare const PORT_CONTENT = "content";
|
|
3
2
|
declare const PHISHING_PAGE_REDIRECT = "/phishing-page-detected";
|
|
4
|
-
declare const
|
|
3
|
+
declare const EXTENSION_PREFIX: string;
|
|
4
|
+
declare const PORT_CONTENT: string;
|
|
5
|
+
declare const PORT_EXTENSION: string;
|
|
6
|
+
declare const MESSAGE_ORIGIN_PAGE: string;
|
|
7
|
+
declare const MESSAGE_ORIGIN_CONTENT: string;
|
|
5
8
|
declare const PASSWORD_EXPIRY_MIN = 15;
|
|
6
9
|
declare const PASSWORD_EXPIRY_MS: number;
|
|
7
|
-
export { ALLOWED_PATH, PASSWORD_EXPIRY_MIN, PASSWORD_EXPIRY_MS, PHISHING_PAGE_REDIRECT, PORT_CONTENT, PORT_EXTENSION };
|
|
10
|
+
export { ALLOWED_PATH, PASSWORD_EXPIRY_MIN, PASSWORD_EXPIRY_MS, PHISHING_PAGE_REDIRECT, EXTENSION_PREFIX, PORT_CONTENT, PORT_EXTENSION, MESSAGE_ORIGIN_PAGE, MESSAGE_ORIGIN_CONTENT };
|
package/defaults.js
CHANGED
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
// Copyright 2019-2021 @polkadot/extension-base authors & contributors
|
|
2
2
|
// SPDX-License-Identifier: Apache-2.0
|
|
3
3
|
const ALLOWED_PATH = ['/', '/account/import-ledger', '/account/restore-json'];
|
|
4
|
-
const PORT_CONTENT = 'content';
|
|
5
4
|
const PHISHING_PAGE_REDIRECT = '/phishing-page-detected';
|
|
6
|
-
const
|
|
5
|
+
const EXTENSION_PREFIX = process.env.EXTENSION_PREFIX || '';
|
|
6
|
+
const PORT_CONTENT = `${EXTENSION_PREFIX}content`;
|
|
7
|
+
const PORT_EXTENSION = `${EXTENSION_PREFIX}extension`;
|
|
8
|
+
const MESSAGE_ORIGIN_PAGE = `${EXTENSION_PREFIX}page`;
|
|
9
|
+
const MESSAGE_ORIGIN_CONTENT = `${EXTENSION_PREFIX}content`;
|
|
7
10
|
const PASSWORD_EXPIRY_MIN = 15;
|
|
8
11
|
const PASSWORD_EXPIRY_MS = PASSWORD_EXPIRY_MIN * 60 * 1000;
|
|
9
|
-
export { ALLOWED_PATH, PASSWORD_EXPIRY_MIN, PASSWORD_EXPIRY_MS, PHISHING_PAGE_REDIRECT, PORT_CONTENT, PORT_EXTENSION };
|
|
12
|
+
export { ALLOWED_PATH, PASSWORD_EXPIRY_MIN, PASSWORD_EXPIRY_MS, PHISHING_PAGE_REDIRECT, EXTENSION_PREFIX, PORT_CONTENT, PORT_EXTENSION, MESSAGE_ORIGIN_PAGE, MESSAGE_ORIGIN_CONTENT };
|
package/package.json
CHANGED
|
@@ -14,16 +14,16 @@
|
|
|
14
14
|
},
|
|
15
15
|
"sideEffects": false,
|
|
16
16
|
"type": "module",
|
|
17
|
-
"version": "0.41.2
|
|
17
|
+
"version": "0.41.3-2",
|
|
18
18
|
"main": "index.js",
|
|
19
19
|
"dependencies": {
|
|
20
20
|
"@babel/runtime": "^7.16.3",
|
|
21
|
-
"@polkadot/api": "^6.
|
|
22
|
-
"@polkadot/extension-dapp": "^0.41.2
|
|
23
|
-
"@polkadot/extension-inject": "^0.41.2
|
|
24
|
-
"@polkadot/keyring": "^8.0.
|
|
25
|
-
"@polkadot/phishing": "^0.6.
|
|
26
|
-
"@polkadot/ui-keyring": "^0.87.
|
|
21
|
+
"@polkadot/api": "^6.10.2",
|
|
22
|
+
"@polkadot/extension-dapp": "^0.41.3-2",
|
|
23
|
+
"@polkadot/extension-inject": "^0.41.3-2",
|
|
24
|
+
"@polkadot/keyring": "^8.0.4",
|
|
25
|
+
"@polkadot/phishing": "^0.6.481",
|
|
26
|
+
"@polkadot/ui-keyring": "^0.87.2"
|
|
27
27
|
},
|
|
28
28
|
"exports": {
|
|
29
29
|
".": {
|
|
@@ -157,6 +157,11 @@
|
|
|
157
157
|
"default": "./utils/canDerive.js"
|
|
158
158
|
},
|
|
159
159
|
"./utils/canDerive.d.ts": "./utils/canDerive.d.ts",
|
|
160
|
+
"./utils/getId": {
|
|
161
|
+
"require": "./utils/getId.cjs",
|
|
162
|
+
"default": "./utils/getId.js"
|
|
163
|
+
},
|
|
164
|
+
"./utils/getId.d.ts": "./utils/getId.d.ts",
|
|
160
165
|
"./utils/index.d.ts": "./utils/index.d.ts"
|
|
161
166
|
}
|
|
162
167
|
}
|
package/packageInfo.cjs
CHANGED
package/packageInfo.js
CHANGED
package/page/index.cjs
CHANGED
|
@@ -10,17 +10,20 @@ exports.handleResponse = handleResponse;
|
|
|
10
10
|
exports.redirectIfPhishing = redirectIfPhishing;
|
|
11
11
|
exports.sendMessage = sendMessage;
|
|
12
12
|
|
|
13
|
+
var _defaults = require("../defaults.cjs");
|
|
14
|
+
|
|
15
|
+
var _getId = require("../utils/getId.cjs");
|
|
16
|
+
|
|
13
17
|
var _Injected = _interopRequireDefault(require("./Injected.cjs"));
|
|
14
18
|
|
|
15
19
|
// Copyright 2019-2021 @polkadot/extension authors & contributors
|
|
16
20
|
// SPDX-License-Identifier: Apache-2.0
|
|
17
|
-
const handlers = {};
|
|
18
|
-
let idCounter = 0; // a generic message sender that creates an event, returning a promise that will
|
|
21
|
+
const handlers = {}; // a generic message sender that creates an event, returning a promise that will
|
|
19
22
|
// resolve once the event is resolved (by the response listener just below this)
|
|
20
23
|
|
|
21
24
|
function sendMessage(message, request, subscriber) {
|
|
22
25
|
return new Promise((resolve, reject) => {
|
|
23
|
-
const id =
|
|
26
|
+
const id = (0, _getId.getId)();
|
|
24
27
|
handlers[id] = {
|
|
25
28
|
reject,
|
|
26
29
|
resolve,
|
|
@@ -29,7 +32,7 @@ function sendMessage(message, request, subscriber) {
|
|
|
29
32
|
const transportRequestMessage = {
|
|
30
33
|
id,
|
|
31
34
|
message,
|
|
32
|
-
origin:
|
|
35
|
+
origin: _defaults.MESSAGE_ORIGIN_PAGE,
|
|
33
36
|
request: request || null
|
|
34
37
|
};
|
|
35
38
|
window.postMessage(transportRequestMessage, '*');
|
package/page/index.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
// Copyright 2019-2021 @polkadot/extension authors & contributors
|
|
2
2
|
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
import { MESSAGE_ORIGIN_PAGE } from "../defaults.js";
|
|
4
|
+
import { getId } from "../utils/getId.js";
|
|
3
5
|
import Injected from "./Injected.js"; // when sending a message from the injector to the extension, we
|
|
4
6
|
// - create an event - this we send to the loader
|
|
5
7
|
// - the loader takes this event and uses port.postMessage to background
|
|
@@ -7,13 +9,12 @@ import Injected from "./Injected.js"; // when sending a message from the injecto
|
|
|
7
9
|
// - this injector, listens on the events, maps it to the original
|
|
8
10
|
// - resolves/rejects the promise with the result (or sub data)
|
|
9
11
|
|
|
10
|
-
const handlers = {};
|
|
11
|
-
let idCounter = 0; // a generic message sender that creates an event, returning a promise that will
|
|
12
|
+
const handlers = {}; // a generic message sender that creates an event, returning a promise that will
|
|
12
13
|
// resolve once the event is resolved (by the response listener just below this)
|
|
13
14
|
|
|
14
15
|
export function sendMessage(message, request, subscriber) {
|
|
15
16
|
return new Promise((resolve, reject) => {
|
|
16
|
-
const id =
|
|
17
|
+
const id = getId();
|
|
17
18
|
handlers[id] = {
|
|
18
19
|
reject,
|
|
19
20
|
resolve,
|
|
@@ -22,7 +23,7 @@ export function sendMessage(message, request, subscriber) {
|
|
|
22
23
|
const transportRequestMessage = {
|
|
23
24
|
id,
|
|
24
25
|
message,
|
|
25
|
-
origin:
|
|
26
|
+
origin: MESSAGE_ORIGIN_PAGE,
|
|
26
27
|
request: request || null
|
|
27
28
|
};
|
|
28
29
|
window.postMessage(transportRequestMessage, '*');
|
package/stores/Accounts.cjs
CHANGED
|
@@ -7,13 +7,15 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
});
|
|
8
8
|
exports.default = void 0;
|
|
9
9
|
|
|
10
|
+
var _defaults = require("../defaults.cjs");
|
|
11
|
+
|
|
10
12
|
var _Base = _interopRequireDefault(require("./Base.cjs"));
|
|
11
13
|
|
|
12
14
|
// Copyright 2019-2021 @polkadot/extension-base authors & contributors
|
|
13
15
|
// SPDX-License-Identifier: Apache-2.0
|
|
14
16
|
class AccountsStore extends _Base.default {
|
|
15
17
|
constructor() {
|
|
16
|
-
super(
|
|
18
|
+
super(`${_defaults.EXTENSION_PREFIX}accounts`);
|
|
17
19
|
}
|
|
18
20
|
|
|
19
21
|
set(key, value, update) {
|
package/stores/Accounts.js
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
// Copyright 2019-2021 @polkadot/extension-base authors & contributors
|
|
2
2
|
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
import { EXTENSION_PREFIX } from "../defaults.js";
|
|
3
4
|
import BaseStore from "./Base.js";
|
|
4
5
|
export default class AccountsStore extends BaseStore {
|
|
5
6
|
constructor() {
|
|
6
|
-
super(
|
|
7
|
+
super(`${EXTENSION_PREFIX}accounts`);
|
|
7
8
|
}
|
|
8
9
|
|
|
9
10
|
set(key, value, update) {
|
package/stores/Metadata.cjs
CHANGED
|
@@ -7,13 +7,15 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
});
|
|
8
8
|
exports.default = void 0;
|
|
9
9
|
|
|
10
|
+
var _defaults = require("../defaults.cjs");
|
|
11
|
+
|
|
10
12
|
var _Base = _interopRequireDefault(require("./Base.cjs"));
|
|
11
13
|
|
|
12
14
|
// Copyright 2019-2021 @polkadot/extension-base authors & contributors
|
|
13
15
|
// SPDX-License-Identifier: Apache-2.0
|
|
14
16
|
class MetadataStore extends _Base.default {
|
|
15
17
|
constructor() {
|
|
16
|
-
super(
|
|
18
|
+
super(`${_defaults.EXTENSION_PREFIX}metadata`);
|
|
17
19
|
}
|
|
18
20
|
|
|
19
21
|
}
|
package/stores/Metadata.js
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
// Copyright 2019-2021 @polkadot/extension-base authors & contributors
|
|
2
2
|
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
import { EXTENSION_PREFIX } from "../defaults.js";
|
|
3
4
|
import BaseStore from "./Base.js";
|
|
4
5
|
export default class MetadataStore extends BaseStore {
|
|
5
6
|
constructor() {
|
|
6
|
-
super(
|
|
7
|
+
super(`${EXTENSION_PREFIX}metadata`);
|
|
7
8
|
}
|
|
8
9
|
|
|
9
10
|
}
|
package/utils/getId.cjs
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.getId = getId;
|
|
7
|
+
|
|
8
|
+
var _defaults = require("../defaults.cjs");
|
|
9
|
+
|
|
10
|
+
// Copyright 2019-2021 @polkadot/extension authors & contributors
|
|
11
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
12
|
+
let counter = 0;
|
|
13
|
+
|
|
14
|
+
function getId() {
|
|
15
|
+
return `${_defaults.EXTENSION_PREFIX}.${Date.now()}.${++counter}`;
|
|
16
|
+
}
|
package/utils/getId.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function getId(): string;
|
package/utils/getId.js
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
// Copyright 2019-2021 @polkadot/extension authors & contributors
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
import { EXTENSION_PREFIX } from "../defaults.js";
|
|
4
|
+
let counter = 0;
|
|
5
|
+
export function getId() {
|
|
6
|
+
return `${EXTENSION_PREFIX}.${Date.now()}.${++counter}`;
|
|
7
|
+
}
|