@tezos-x/octez.connect-core 0.9.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.
- package/LICENCE +19 -0
- package/README.md +9 -0
- package/dist/cjs/MockAnalytics.d.ts +4 -0
- package/dist/cjs/MockAnalytics.js +11 -0
- package/dist/cjs/MockAnalytics.js.map +1 -0
- package/dist/cjs/MockWindow.d.ts +14 -0
- package/dist/cjs/MockWindow.js +39 -0
- package/dist/cjs/MockWindow.js.map +1 -0
- package/dist/cjs/Serializer.d.ts +19 -0
- package/dist/cjs/Serializer.js +48 -0
- package/dist/cjs/Serializer.js.map +1 -0
- package/dist/cjs/clients/beacon-client/BeaconClient.d.ts +53 -0
- package/dist/cjs/clients/beacon-client/BeaconClient.js +111 -0
- package/dist/cjs/clients/beacon-client/BeaconClient.js.map +1 -0
- package/dist/cjs/clients/beacon-client/BeaconClientOptions.d.ts +26 -0
- package/dist/cjs/clients/beacon-client/BeaconClientOptions.js +3 -0
- package/dist/cjs/clients/beacon-client/BeaconClientOptions.js.map +1 -0
- package/dist/cjs/clients/client/Client.d.ts +91 -0
- package/dist/cjs/clients/client/Client.js +241 -0
- package/dist/cjs/clients/client/Client.js.map +1 -0
- package/dist/cjs/clients/client/ClientOptions.d.ts +42 -0
- package/dist/cjs/clients/client/ClientOptions.js +3 -0
- package/dist/cjs/clients/client/ClientOptions.js.map +1 -0
- package/dist/cjs/constants.d.ts +4 -0
- package/dist/cjs/constants.js +8 -0
- package/dist/cjs/constants.js.map +1 -0
- package/dist/cjs/debug.d.ts +2 -0
- package/dist/cjs/debug.js +17 -0
- package/dist/cjs/debug.js.map +1 -0
- package/dist/cjs/errors/AbortedBeaconError.d.ts +9 -0
- package/dist/cjs/errors/AbortedBeaconError.js +17 -0
- package/dist/cjs/errors/AbortedBeaconError.js.map +1 -0
- package/dist/cjs/errors/BeaconError.d.ts +15 -0
- package/dist/cjs/errors/BeaconError.js +19 -0
- package/dist/cjs/errors/BeaconError.js.map +1 -0
- package/dist/cjs/errors/BroadcastBeaconError.d.ts +9 -0
- package/dist/cjs/errors/BroadcastBeaconError.js +17 -0
- package/dist/cjs/errors/BroadcastBeaconError.js.map +1 -0
- package/dist/cjs/errors/EncryptionTypeNotSupportedBeaconError.d.ts +3 -0
- package/dist/cjs/errors/EncryptionTypeNotSupportedBeaconError.js +18 -0
- package/dist/cjs/errors/EncryptionTypeNotSupportedBeaconError.js.map +1 -0
- package/dist/cjs/errors/NetworkNotSupportedBeaconError.d.ts +9 -0
- package/dist/cjs/errors/NetworkNotSupportedBeaconError.js +17 -0
- package/dist/cjs/errors/NetworkNotSupportedBeaconError.js.map +1 -0
- package/dist/cjs/errors/NoAddressBeaconError.d.ts +9 -0
- package/dist/cjs/errors/NoAddressBeaconError.js +17 -0
- package/dist/cjs/errors/NoAddressBeaconError.js.map +1 -0
- package/dist/cjs/errors/NoPrivateKeyBeaconError.d.ts +9 -0
- package/dist/cjs/errors/NoPrivateKeyBeaconError.js +17 -0
- package/dist/cjs/errors/NoPrivateKeyBeaconError.js.map +1 -0
- package/dist/cjs/errors/NotGrantedBeaconError.d.ts +9 -0
- package/dist/cjs/errors/NotGrantedBeaconError.js +17 -0
- package/dist/cjs/errors/NotGrantedBeaconError.js.map +1 -0
- package/dist/cjs/errors/ParametersInvalidBeaconError.d.ts +9 -0
- package/dist/cjs/errors/ParametersInvalidBeaconError.js +17 -0
- package/dist/cjs/errors/ParametersInvalidBeaconError.js.map +1 -0
- package/dist/cjs/errors/SignatureTypeNotSupportedBeaconError.d.ts +9 -0
- package/dist/cjs/errors/SignatureTypeNotSupportedBeaconError.js +17 -0
- package/dist/cjs/errors/SignatureTypeNotSupportedBeaconError.js.map +1 -0
- package/dist/cjs/errors/TooManyOperationsBeaconError.d.ts +9 -0
- package/dist/cjs/errors/TooManyOperationsBeaconError.js +17 -0
- package/dist/cjs/errors/TooManyOperationsBeaconError.js.map +1 -0
- package/dist/cjs/errors/TransactionInvalidBeaconError.d.ts +14 -0
- package/dist/cjs/errors/TransactionInvalidBeaconError.js +22 -0
- package/dist/cjs/errors/TransactionInvalidBeaconError.js.map +1 -0
- package/dist/cjs/errors/UnknownBeaconError.d.ts +9 -0
- package/dist/cjs/errors/UnknownBeaconError.js +17 -0
- package/dist/cjs/errors/UnknownBeaconError.js.map +1 -0
- package/dist/cjs/errors/get-error.d.ts +8 -0
- package/dist/cjs/errors/get-error.js +53 -0
- package/dist/cjs/errors/get-error.js.map +1 -0
- package/dist/cjs/index.d.ts +53 -0
- package/dist/cjs/index.js +90 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/managers/AccountManager.d.ts +18 -0
- package/dist/cjs/managers/AccountManager.js +73 -0
- package/dist/cjs/managers/AccountManager.js.map +1 -0
- package/dist/cjs/managers/AppMetadataManager.d.ts +16 -0
- package/dist/cjs/managers/AppMetadataManager.js +57 -0
- package/dist/cjs/managers/AppMetadataManager.js.map +1 -0
- package/dist/cjs/managers/PeerManager.d.ts +18 -0
- package/dist/cjs/managers/PeerManager.js +61 -0
- package/dist/cjs/managers/PeerManager.js.map +1 -0
- package/dist/cjs/managers/PermissionManager.d.ts +17 -0
- package/dist/cjs/managers/PermissionManager.js +64 -0
- package/dist/cjs/managers/PermissionManager.js.map +1 -0
- package/dist/cjs/managers/PermissionValidator.d.ts +16 -0
- package/dist/cjs/managers/PermissionValidator.js +58 -0
- package/dist/cjs/managers/PermissionValidator.js.map +1 -0
- package/dist/cjs/managers/StorageManager.d.ts +18 -0
- package/dist/cjs/managers/StorageManager.js +72 -0
- package/dist/cjs/managers/StorageManager.js.map +1 -0
- package/dist/cjs/migrations/migrate-0.7.0.d.ts +20 -0
- package/dist/cjs/migrations/migrate-0.7.0.js +44 -0
- package/dist/cjs/migrations/migrate-0.7.0.js.map +1 -0
- package/dist/cjs/migrations/migrations.d.ts +2 -0
- package/dist/cjs/migrations/migrations.js +44 -0
- package/dist/cjs/migrations/migrations.js.map +1 -0
- package/dist/cjs/storage/ChromeStorage.d.ts +19 -0
- package/dist/cjs/storage/ChromeStorage.js +76 -0
- package/dist/cjs/storage/ChromeStorage.js.map +1 -0
- package/dist/cjs/storage/IndexedDBStorage.d.ts +65 -0
- package/dist/cjs/storage/IndexedDBStorage.js +230 -0
- package/dist/cjs/storage/IndexedDBStorage.js.map +1 -0
- package/dist/cjs/storage/LocalStorage.d.ts +21 -0
- package/dist/cjs/storage/LocalStorage.js +92 -0
- package/dist/cjs/storage/LocalStorage.js.map +1 -0
- package/dist/cjs/storage/StorageValidator.d.ts +12 -0
- package/dist/cjs/storage/StorageValidator.js +110 -0
- package/dist/cjs/storage/StorageValidator.js.map +1 -0
- package/dist/cjs/storage/WCStorage.d.ts +15 -0
- package/dist/cjs/storage/WCStorage.js +84 -0
- package/dist/cjs/storage/WCStorage.js.map +1 -0
- package/dist/cjs/storage/getStorage.d.ts +5 -0
- package/dist/cjs/storage/getStorage.js +34 -0
- package/dist/cjs/storage/getStorage.js.map +1 -0
- package/dist/cjs/transports/Transport.d.ts +85 -0
- package/dist/cjs/transports/Transport.js +171 -0
- package/dist/cjs/transports/Transport.js.map +1 -0
- package/dist/cjs/transports/clients/ClientEvents.d.ts +6 -0
- package/dist/cjs/transports/clients/ClientEvents.js +3 -0
- package/dist/cjs/transports/clients/ClientEvents.js.map +1 -0
- package/dist/cjs/transports/clients/CommunicationClient.d.ts +47 -0
- package/dist/cjs/transports/clients/CommunicationClient.js +86 -0
- package/dist/cjs/transports/clients/CommunicationClient.js.map +1 -0
- package/dist/cjs/transports/clients/MessageBasedClient.d.ts +56 -0
- package/dist/cjs/transports/clients/MessageBasedClient.js +109 -0
- package/dist/cjs/transports/clients/MessageBasedClient.js.map +1 -0
- package/dist/cjs/utils/Logger.d.ts +33 -0
- package/dist/cjs/utils/Logger.js +98 -0
- package/dist/cjs/utils/Logger.js.map +1 -0
- package/dist/cjs/utils/assert-never.d.ts +6 -0
- package/dist/cjs/utils/assert-never.js +14 -0
- package/dist/cjs/utils/assert-never.js.map +1 -0
- package/dist/cjs/utils/get-account-identifier.d.ts +10 -0
- package/dist/cjs/utils/get-account-identifier.js +36 -0
- package/dist/cjs/utils/get-account-identifier.js.map +1 -0
- package/dist/cjs/utils/get-sender-id.d.ts +8 -0
- package/dist/cjs/utils/get-sender-id.js +31 -0
- package/dist/cjs/utils/get-sender-id.js.map +1 -0
- package/dist/cjs/utils/multi-tab-channel.d.ts +17 -0
- package/dist/cjs/utils/multi-tab-channel.js +85 -0
- package/dist/cjs/utils/multi-tab-channel.js.map +1 -0
- package/dist/esm/MockAnalytics.d.ts +4 -0
- package/dist/esm/MockAnalytics.js +7 -0
- package/dist/esm/MockAnalytics.js.map +1 -0
- package/dist/esm/MockWindow.d.ts +14 -0
- package/dist/esm/MockWindow.js +35 -0
- package/dist/esm/MockWindow.js.map +1 -0
- package/dist/esm/Serializer.d.ts +19 -0
- package/dist/esm/Serializer.js +31 -0
- package/dist/esm/Serializer.js.map +1 -0
- package/dist/esm/clients/beacon-client/BeaconClient.d.ts +53 -0
- package/dist/esm/clients/beacon-client/BeaconClient.js +103 -0
- package/dist/esm/clients/beacon-client/BeaconClient.js.map +1 -0
- package/dist/esm/clients/beacon-client/BeaconClientOptions.d.ts +26 -0
- package/dist/esm/clients/beacon-client/BeaconClientOptions.js +2 -0
- package/dist/esm/clients/beacon-client/BeaconClientOptions.js.map +1 -0
- package/dist/esm/clients/client/Client.d.ts +91 -0
- package/dist/esm/clients/client/Client.js +198 -0
- package/dist/esm/clients/client/Client.js.map +1 -0
- package/dist/esm/clients/client/ClientOptions.d.ts +42 -0
- package/dist/esm/clients/client/ClientOptions.js +2 -0
- package/dist/esm/clients/client/ClientOptions.js.map +1 -0
- package/dist/esm/constants.d.ts +4 -0
- package/dist/esm/constants.js +5 -0
- package/dist/esm/constants.js.map +1 -0
- package/dist/esm/debug.d.ts +2 -0
- package/dist/esm/debug.js +12 -0
- package/dist/esm/debug.js.map +1 -0
- package/dist/esm/errors/AbortedBeaconError.d.ts +9 -0
- package/dist/esm/errors/AbortedBeaconError.js +13 -0
- package/dist/esm/errors/AbortedBeaconError.js.map +1 -0
- package/dist/esm/errors/BeaconError.d.ts +15 -0
- package/dist/esm/errors/BeaconError.js +17 -0
- package/dist/esm/errors/BeaconError.js.map +1 -0
- package/dist/esm/errors/BroadcastBeaconError.d.ts +9 -0
- package/dist/esm/errors/BroadcastBeaconError.js +13 -0
- package/dist/esm/errors/BroadcastBeaconError.js.map +1 -0
- package/dist/esm/errors/EncryptionTypeNotSupportedBeaconError.d.ts +3 -0
- package/dist/esm/errors/EncryptionTypeNotSupportedBeaconError.js +18 -0
- package/dist/esm/errors/EncryptionTypeNotSupportedBeaconError.js.map +1 -0
- package/dist/esm/errors/NetworkNotSupportedBeaconError.d.ts +9 -0
- package/dist/esm/errors/NetworkNotSupportedBeaconError.js +13 -0
- package/dist/esm/errors/NetworkNotSupportedBeaconError.js.map +1 -0
- package/dist/esm/errors/NoAddressBeaconError.d.ts +9 -0
- package/dist/esm/errors/NoAddressBeaconError.js +13 -0
- package/dist/esm/errors/NoAddressBeaconError.js.map +1 -0
- package/dist/esm/errors/NoPrivateKeyBeaconError.d.ts +9 -0
- package/dist/esm/errors/NoPrivateKeyBeaconError.js +13 -0
- package/dist/esm/errors/NoPrivateKeyBeaconError.js.map +1 -0
- package/dist/esm/errors/NotGrantedBeaconError.d.ts +9 -0
- package/dist/esm/errors/NotGrantedBeaconError.js +13 -0
- package/dist/esm/errors/NotGrantedBeaconError.js.map +1 -0
- package/dist/esm/errors/ParametersInvalidBeaconError.d.ts +9 -0
- package/dist/esm/errors/ParametersInvalidBeaconError.js +13 -0
- package/dist/esm/errors/ParametersInvalidBeaconError.js.map +1 -0
- package/dist/esm/errors/SignatureTypeNotSupportedBeaconError.d.ts +9 -0
- package/dist/esm/errors/SignatureTypeNotSupportedBeaconError.js +13 -0
- package/dist/esm/errors/SignatureTypeNotSupportedBeaconError.js.map +1 -0
- package/dist/esm/errors/TooManyOperationsBeaconError.d.ts +9 -0
- package/dist/esm/errors/TooManyOperationsBeaconError.js +13 -0
- package/dist/esm/errors/TooManyOperationsBeaconError.js.map +1 -0
- package/dist/esm/errors/TransactionInvalidBeaconError.d.ts +14 -0
- package/dist/esm/errors/TransactionInvalidBeaconError.js +19 -0
- package/dist/esm/errors/TransactionInvalidBeaconError.js.map +1 -0
- package/dist/esm/errors/UnknownBeaconError.d.ts +9 -0
- package/dist/esm/errors/UnknownBeaconError.js +13 -0
- package/dist/esm/errors/UnknownBeaconError.js.map +1 -0
- package/dist/esm/errors/get-error.d.ts +8 -0
- package/dist/esm/errors/get-error.js +49 -0
- package/dist/esm/errors/get-error.js.map +1 -0
- package/dist/esm/index.d.ts +53 -0
- package/dist/esm/index.js +67 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/managers/AccountManager.d.ts +18 -0
- package/dist/esm/managers/AccountManager.js +44 -0
- package/dist/esm/managers/AccountManager.js.map +1 -0
- package/dist/esm/managers/AppMetadataManager.d.ts +16 -0
- package/dist/esm/managers/AppMetadataManager.js +32 -0
- package/dist/esm/managers/AppMetadataManager.js.map +1 -0
- package/dist/esm/managers/PeerManager.d.ts +18 -0
- package/dist/esm/managers/PeerManager.js +34 -0
- package/dist/esm/managers/PeerManager.js.map +1 -0
- package/dist/esm/managers/PermissionManager.d.ts +17 -0
- package/dist/esm/managers/PermissionManager.js +37 -0
- package/dist/esm/managers/PermissionManager.js.map +1 -0
- package/dist/esm/managers/PermissionValidator.d.ts +16 -0
- package/dist/esm/managers/PermissionValidator.js +43 -0
- package/dist/esm/managers/PermissionValidator.js.map +1 -0
- package/dist/esm/managers/StorageManager.d.ts +18 -0
- package/dist/esm/managers/StorageManager.js +50 -0
- package/dist/esm/managers/StorageManager.js.map +1 -0
- package/dist/esm/migrations/migrate-0.7.0.d.ts +20 -0
- package/dist/esm/migrations/migrate-0.7.0.js +31 -0
- package/dist/esm/migrations/migrate-0.7.0.js.map +1 -0
- package/dist/esm/migrations/migrations.d.ts +2 -0
- package/dist/esm/migrations/migrations.js +31 -0
- package/dist/esm/migrations/migrations.js.map +1 -0
- package/dist/esm/storage/ChromeStorage.d.ts +19 -0
- package/dist/esm/storage/ChromeStorage.js +53 -0
- package/dist/esm/storage/ChromeStorage.js.map +1 -0
- package/dist/esm/storage/IndexedDBStorage.d.ts +65 -0
- package/dist/esm/storage/IndexedDBStorage.js +212 -0
- package/dist/esm/storage/IndexedDBStorage.js.map +1 -0
- package/dist/esm/storage/LocalStorage.d.ts +21 -0
- package/dist/esm/storage/LocalStorage.js +70 -0
- package/dist/esm/storage/LocalStorage.js.map +1 -0
- package/dist/esm/storage/StorageValidator.d.ts +12 -0
- package/dist/esm/storage/StorageValidator.js +96 -0
- package/dist/esm/storage/StorageValidator.js.map +1 -0
- package/dist/esm/storage/WCStorage.d.ts +15 -0
- package/dist/esm/storage/WCStorage.js +64 -0
- package/dist/esm/storage/WCStorage.js.map +1 -0
- package/dist/esm/storage/getStorage.d.ts +5 -0
- package/dist/esm/storage/getStorage.js +21 -0
- package/dist/esm/storage/getStorage.js.map +1 -0
- package/dist/esm/transports/Transport.d.ts +85 -0
- package/dist/esm/transports/Transport.js +149 -0
- package/dist/esm/transports/Transport.js.map +1 -0
- package/dist/esm/transports/clients/ClientEvents.d.ts +6 -0
- package/dist/esm/transports/clients/ClientEvents.js +2 -0
- package/dist/esm/transports/clients/ClientEvents.js.map +1 -0
- package/dist/esm/transports/clients/CommunicationClient.d.ts +47 -0
- package/dist/esm/transports/clients/CommunicationClient.js +63 -0
- package/dist/esm/transports/clients/CommunicationClient.js.map +1 -0
- package/dist/esm/transports/clients/MessageBasedClient.d.ts +56 -0
- package/dist/esm/transports/clients/MessageBasedClient.js +83 -0
- package/dist/esm/transports/clients/MessageBasedClient.js.map +1 -0
- package/dist/esm/utils/Logger.d.ts +33 -0
- package/dist/esm/utils/Logger.js +92 -0
- package/dist/esm/utils/Logger.js.map +1 -0
- package/dist/esm/utils/assert-never.d.ts +6 -0
- package/dist/esm/utils/assert-never.js +11 -0
- package/dist/esm/utils/assert-never.js.map +1 -0
- package/dist/esm/utils/get-account-identifier.d.ts +10 -0
- package/dist/esm/utils/get-account-identifier.js +23 -0
- package/dist/esm/utils/get-account-identifier.js.map +1 -0
- package/dist/esm/utils/get-sender-id.d.ts +8 -0
- package/dist/esm/utils/get-sender-id.js +18 -0
- package/dist/esm/utils/get-sender-id.js.map +1 -0
- package/dist/esm/utils/multi-tab-channel.d.ts +17 -0
- package/dist/esm/utils/multi-tab-channel.js +66 -0
- package/dist/esm/utils/multi-tab-channel.js.map +1 -0
- package/package.json +46 -0
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getLogger = exports.setLogger = exports.Logger = exports.InternalLogger = void 0;
|
|
4
|
+
const debug_1 = require("../debug");
|
|
5
|
+
/**
|
|
6
|
+
* The logger that is used internally
|
|
7
|
+
*/
|
|
8
|
+
class InternalLogger {
|
|
9
|
+
constructor() { }
|
|
10
|
+
debug(name, method, ...args) {
|
|
11
|
+
this._log('debug', name, method, args);
|
|
12
|
+
}
|
|
13
|
+
log(name, method, ...args) {
|
|
14
|
+
this._log('log', name, method, args);
|
|
15
|
+
}
|
|
16
|
+
warn(name, method, ...args) {
|
|
17
|
+
this._log('warn', name, method, args);
|
|
18
|
+
}
|
|
19
|
+
error(name, method, ...args) {
|
|
20
|
+
this._log('error', name, method, args);
|
|
21
|
+
}
|
|
22
|
+
time(start, label) {
|
|
23
|
+
start ? console.time(label) : console.timeEnd(label);
|
|
24
|
+
}
|
|
25
|
+
timeLog(name, method, ...args) {
|
|
26
|
+
this._log('timeLog', name, method, args);
|
|
27
|
+
}
|
|
28
|
+
_log(type, name, method, args = []) {
|
|
29
|
+
if (!(0, debug_1.getDebugEnabled)()) {
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
let groupText = `[BEACON] ${new Date().toISOString()} [${name}](${method})`;
|
|
33
|
+
let data = args;
|
|
34
|
+
if (args[0] && typeof args[0] === 'string') {
|
|
35
|
+
groupText += ` ${args[0]}`;
|
|
36
|
+
data = args.slice(1);
|
|
37
|
+
}
|
|
38
|
+
switch (type) {
|
|
39
|
+
case 'error':
|
|
40
|
+
console.group(groupText);
|
|
41
|
+
console.error(...data);
|
|
42
|
+
break;
|
|
43
|
+
case 'warn':
|
|
44
|
+
console.group(groupText);
|
|
45
|
+
console.warn(...data);
|
|
46
|
+
break;
|
|
47
|
+
case 'debug':
|
|
48
|
+
console.groupCollapsed(groupText);
|
|
49
|
+
console.debug(...data);
|
|
50
|
+
break;
|
|
51
|
+
case 'timeLog':
|
|
52
|
+
console.group(groupText);
|
|
53
|
+
console.timeLog(...data);
|
|
54
|
+
break;
|
|
55
|
+
default:
|
|
56
|
+
console.group(groupText);
|
|
57
|
+
console.log(...data);
|
|
58
|
+
}
|
|
59
|
+
console.groupEnd();
|
|
60
|
+
// echo.group(echo.asWarning(`[BEACON] ${message}`))
|
|
61
|
+
// echo.log(echo.asWarning(`[${this.name}]`), echo.asAlert(`(${method})`), ...args)
|
|
62
|
+
// echo.groupEnd()
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
exports.InternalLogger = InternalLogger;
|
|
66
|
+
class Logger {
|
|
67
|
+
constructor(service) {
|
|
68
|
+
this.name = service;
|
|
69
|
+
}
|
|
70
|
+
debug(method, ...args) {
|
|
71
|
+
logger.debug(this.name, method, args);
|
|
72
|
+
}
|
|
73
|
+
log(method, ...args) {
|
|
74
|
+
logger.log(this.name, method, args);
|
|
75
|
+
}
|
|
76
|
+
warn(method, ...args) {
|
|
77
|
+
logger.warn(this.name, method, args);
|
|
78
|
+
}
|
|
79
|
+
error(method, ...args) {
|
|
80
|
+
logger.error(this.name, method, args);
|
|
81
|
+
}
|
|
82
|
+
time(start, label) {
|
|
83
|
+
logger.time(start, label);
|
|
84
|
+
}
|
|
85
|
+
timeLog(method, ...args) {
|
|
86
|
+
logger.timeLog(method, args);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
exports.Logger = Logger;
|
|
90
|
+
const loggerWrapper = new Logger('');
|
|
91
|
+
let logger = new InternalLogger();
|
|
92
|
+
const setLogger = (newLogger) => {
|
|
93
|
+
logger = newLogger;
|
|
94
|
+
};
|
|
95
|
+
exports.setLogger = setLogger;
|
|
96
|
+
const getLogger = () => loggerWrapper;
|
|
97
|
+
exports.getLogger = getLogger;
|
|
98
|
+
//# sourceMappingURL=Logger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Logger.js","sourceRoot":"","sources":["../../../src/utils/Logger.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/* eslint-disable prefer-arrow/prefer-arrow-functions */
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.assertNever = assertNever;
|
|
5
|
+
/**
|
|
6
|
+
* A helper function to make sure if/elses and switch/cases are exhaustive
|
|
7
|
+
*
|
|
8
|
+
* @param empty The data that has to be empty
|
|
9
|
+
*/
|
|
10
|
+
function assertNever(empty) {
|
|
11
|
+
return empty;
|
|
12
|
+
}
|
|
13
|
+
/* eslint-enable prefer-arrow/prefer-arrow-functions */
|
|
14
|
+
//# sourceMappingURL=assert-never.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assert-never.js","sourceRoot":"","sources":["../../../src/utils/assert-never.ts"],"names":[],"mappings":";AAAA,wDAAwD;;AAOxD,kCAEC;AAPD;;;;GAIG;AACH,SAAgB,WAAW,CAAC,KAAY;IACtC,OAAO,KAAK,CAAA;AACd,CAAC;AAED,uDAAuD"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Network } from '@tezos-x/octez.connect-types';
|
|
2
|
+
/**
|
|
3
|
+
* @internalapi
|
|
4
|
+
*
|
|
5
|
+
* Generate a deterministic account identifier based on an address and a network
|
|
6
|
+
*
|
|
7
|
+
* @param address
|
|
8
|
+
* @param network
|
|
9
|
+
*/
|
|
10
|
+
export declare const getAccountIdentifier: (address: string, network: Network) => Promise<string>;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.getAccountIdentifier = void 0;
|
|
13
|
+
const bs58check_1 = require("bs58check");
|
|
14
|
+
const blake2b_1 = require("@stablelib/blake2b");
|
|
15
|
+
const utf8_1 = require("@stablelib/utf8");
|
|
16
|
+
/**
|
|
17
|
+
* @internalapi
|
|
18
|
+
*
|
|
19
|
+
* Generate a deterministic account identifier based on an address and a network
|
|
20
|
+
*
|
|
21
|
+
* @param address
|
|
22
|
+
* @param network
|
|
23
|
+
*/
|
|
24
|
+
const getAccountIdentifier = (address, network) => __awaiter(void 0, void 0, void 0, function* () {
|
|
25
|
+
const data = [address, network.type];
|
|
26
|
+
if (network.name) {
|
|
27
|
+
data.push(`name:${network.name}`);
|
|
28
|
+
}
|
|
29
|
+
if (network.rpcUrl) {
|
|
30
|
+
data.push(`rpc:${network.rpcUrl}`);
|
|
31
|
+
}
|
|
32
|
+
const buffer = Buffer.from((0, blake2b_1.hash)((0, utf8_1.encode)(data.join('-')), 10));
|
|
33
|
+
return bs58check_1.default.encode(buffer);
|
|
34
|
+
});
|
|
35
|
+
exports.getAccountIdentifier = getAccountIdentifier;
|
|
36
|
+
//# sourceMappingURL=get-account-identifier.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-account-identifier.js","sourceRoot":"","sources":["../../../src/utils/get-account-identifier.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,yCAAiC;AAEjC,gDAAyC;AACzC,0CAAwC;AAExC;;;;;;;GAOG;AACI,MAAM,oBAAoB,GAAG,CAAO,OAAe,EAAE,OAAgB,EAAmB,EAAE;IAC/F,MAAM,IAAI,GAAa,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;IAC9C,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,IAAI,CAAC,IAAI,CAAC,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC,CAAA;IACnC,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnB,IAAI,CAAC,IAAI,CAAC,OAAO,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;IACpC,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,IAAA,cAAI,EAAC,IAAA,aAAM,EAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAA;IAE5D,OAAO,mBAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;AACjC,CAAC,CAAA,CAAA;AAZY,QAAA,oBAAoB,wBAYhC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.getSenderId = void 0;
|
|
13
|
+
const blake2b_1 = require("@stablelib/blake2b");
|
|
14
|
+
const bs58check_1 = require("bs58check");
|
|
15
|
+
const isHex = (str) => /^[A-F0-9]+$/i.test(str);
|
|
16
|
+
/**
|
|
17
|
+
* @internalapi
|
|
18
|
+
*
|
|
19
|
+
* Generate a deterministic sender identifier based on a public key
|
|
20
|
+
*
|
|
21
|
+
* @param publicKey
|
|
22
|
+
*/
|
|
23
|
+
const getSenderId = (publicKey) => __awaiter(void 0, void 0, void 0, function* () {
|
|
24
|
+
if (!isHex(publicKey)) {
|
|
25
|
+
console.error('PublicKey needs to be in hex format!');
|
|
26
|
+
}
|
|
27
|
+
const buffer = Buffer.from((0, blake2b_1.hash)(Buffer.from(publicKey, 'hex'), 5));
|
|
28
|
+
return bs58check_1.default.encode(buffer);
|
|
29
|
+
});
|
|
30
|
+
exports.getSenderId = getSenderId;
|
|
31
|
+
//# sourceMappingURL=get-sender-id.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-sender-id.js","sourceRoot":"","sources":["../../../src/utils/get-sender-id.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,gDAAyC;AACzC,yCAAiC;AAEjC,MAAM,KAAK,GAAG,CAAC,GAAW,EAAW,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAEhE;;;;;;GAMG;AACI,MAAM,WAAW,GAAG,CAAO,SAAiB,EAAmB,EAAE;IACtE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;QACtB,OAAO,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAA;IACvD,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,IAAA,cAAI,EAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IAElE,OAAO,mBAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;AACjC,CAAC,CAAA,CAAA;AARY,QAAA,WAAW,eAQvB"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export declare class MultiTabChannel {
|
|
2
|
+
private channel;
|
|
3
|
+
private elector;
|
|
4
|
+
private eventListeners;
|
|
5
|
+
private onBCMessageHandler;
|
|
6
|
+
private onElectedLeaderHandler;
|
|
7
|
+
private wasLeader;
|
|
8
|
+
private initialized;
|
|
9
|
+
constructor(name: string, onBCMessageHandler: Function, onElectedLeaderHandler: Function);
|
|
10
|
+
init(): Promise<void>;
|
|
11
|
+
private onBeforeUnloadHandler;
|
|
12
|
+
private onMessageHandler;
|
|
13
|
+
isLeader(): boolean;
|
|
14
|
+
getLeadership(): Promise<void>;
|
|
15
|
+
hasLeader(): Promise<boolean>;
|
|
16
|
+
postMessage(message: any): void;
|
|
17
|
+
}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.MultiTabChannel = void 0;
|
|
13
|
+
const broadcast_channel_1 = require("broadcast-channel");
|
|
14
|
+
class MultiTabChannel {
|
|
15
|
+
constructor(name, onBCMessageHandler, onElectedLeaderHandler) {
|
|
16
|
+
this.eventListeners = [
|
|
17
|
+
() => this.onBeforeUnloadHandler(),
|
|
18
|
+
(message) => this.onMessageHandler(message)
|
|
19
|
+
];
|
|
20
|
+
// Auxiliary variable needed for handling beforeUnload.
|
|
21
|
+
// Closing a tab causes the elector to be killed immediately
|
|
22
|
+
this.wasLeader = false;
|
|
23
|
+
this.initialized = false;
|
|
24
|
+
this.onBCMessageHandler = onBCMessageHandler;
|
|
25
|
+
this.onElectedLeaderHandler = onElectedLeaderHandler;
|
|
26
|
+
this.channel = new broadcast_channel_1.BroadcastChannel(name);
|
|
27
|
+
this.elector = (0, broadcast_channel_1.createLeaderElection)(this.channel);
|
|
28
|
+
}
|
|
29
|
+
init() {
|
|
30
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
31
|
+
if (this.initialized) {
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
const hasLeader = yield this.elector.hasLeader();
|
|
35
|
+
if (!hasLeader) {
|
|
36
|
+
yield this.elector.awaitLeadership();
|
|
37
|
+
this.wasLeader = this.isLeader();
|
|
38
|
+
}
|
|
39
|
+
this.channel.onmessage = this.eventListeners[1];
|
|
40
|
+
window === null || window === void 0 ? void 0 : window.addEventListener('beforeunload', this.eventListeners[0]);
|
|
41
|
+
this.initialized = true;
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
onBeforeUnloadHandler() {
|
|
45
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
46
|
+
if (this.wasLeader) {
|
|
47
|
+
yield this.elector.die();
|
|
48
|
+
this.postMessage({ type: 'LEADER_DEAD' });
|
|
49
|
+
}
|
|
50
|
+
window === null || window === void 0 ? void 0 : window.removeEventListener('beforeunload', this.eventListeners[0]);
|
|
51
|
+
this.channel.removeEventListener('message', this.eventListeners[1]);
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
onMessageHandler(message) {
|
|
55
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
56
|
+
if (message.type === 'LEADER_DEAD') {
|
|
57
|
+
yield this.elector.awaitLeadership();
|
|
58
|
+
this.wasLeader = this.isLeader();
|
|
59
|
+
if (this.isLeader()) {
|
|
60
|
+
this.onElectedLeaderHandler();
|
|
61
|
+
}
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
this.onBCMessageHandler(message);
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
isLeader() {
|
|
68
|
+
return this.elector.isLeader;
|
|
69
|
+
}
|
|
70
|
+
getLeadership() {
|
|
71
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
72
|
+
return this.elector.awaitLeadership();
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
hasLeader() {
|
|
76
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
77
|
+
return this.elector.hasLeader();
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
postMessage(message) {
|
|
81
|
+
this.channel.postMessage(message);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
exports.MultiTabChannel = MultiTabChannel;
|
|
85
|
+
//# sourceMappingURL=multi-tab-channel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"multi-tab-channel.js","sourceRoot":"","sources":["../../../src/utils/multi-tab-channel.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MockAnalytics.js","sourceRoot":"","sources":["../../src/MockAnalytics.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,aAAa;IACxB,KAAK,CACH,QAA2B,EAC3B,QAAgB,EAChB,MAAc,EACd,KAA2B;QAE3B,4DAA4D;QAC5D,OAAO;IACT,CAAC;CACF"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
type Callback = (message: unknown) => void;
|
|
2
|
+
/**
|
|
3
|
+
* A mock for postmessage if run in node.js environment
|
|
4
|
+
*/
|
|
5
|
+
declare let windowRef: {
|
|
6
|
+
postMessage: (message: string | Record<string, unknown>, _target?: string) => void;
|
|
7
|
+
addEventListener: (_name: string, eventCallback: Callback) => void;
|
|
8
|
+
removeEventListener: (_name: string, eventCallback: Callback) => void;
|
|
9
|
+
location: {
|
|
10
|
+
origin: string;
|
|
11
|
+
};
|
|
12
|
+
};
|
|
13
|
+
declare const clearMockWindowState: () => void;
|
|
14
|
+
export { windowRef, clearMockWindowState };
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
const cbs = [(_) => undefined];
|
|
2
|
+
/**
|
|
3
|
+
* A mock for postmessage if run in node.js environment
|
|
4
|
+
*/
|
|
5
|
+
let windowRef = {
|
|
6
|
+
postMessage: (message, _target) => {
|
|
7
|
+
console.log('GOT MOCK POST MESSAGE', message);
|
|
8
|
+
cbs.forEach((callbackElement) => {
|
|
9
|
+
callbackElement({ data: message });
|
|
10
|
+
});
|
|
11
|
+
},
|
|
12
|
+
addEventListener: (_name, eventCallback) => {
|
|
13
|
+
cbs.push(eventCallback);
|
|
14
|
+
},
|
|
15
|
+
removeEventListener: (_name, eventCallback) => {
|
|
16
|
+
cbs.splice(cbs.indexOf((element) => element === eventCallback), 1);
|
|
17
|
+
},
|
|
18
|
+
location: {
|
|
19
|
+
origin: '*'
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
try {
|
|
23
|
+
if (typeof window !== 'undefined') {
|
|
24
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
25
|
+
windowRef = window;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
catch (windowError) {
|
|
29
|
+
console.log(`not defined: ${windowError}`);
|
|
30
|
+
}
|
|
31
|
+
const clearMockWindowState = () => {
|
|
32
|
+
cbs.length = 0;
|
|
33
|
+
};
|
|
34
|
+
export { windowRef, clearMockWindowState };
|
|
35
|
+
//# sourceMappingURL=MockWindow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MockWindow.js","sourceRoot":"","sources":["../../src/MockWindow.ts"],"names":[],"mappings":"AAEA,MAAM,GAAG,GAAe,CAAC,CAAC,CAAU,EAAQ,EAAE,CAAC,SAAS,CAAC,CAAA;AAEzD;;GAEG;AACH,IAAI,SAAS,GAAG;IACd,WAAW,EAAE,CAAC,OAAyC,EAAE,OAAgB,EAAQ,EAAE;QACjF,OAAO,CAAC,GAAG,CAAC,uBAAuB,EAAE,OAAO,CAAC,CAAA;QAC7C,GAAG,CAAC,OAAO,CAAC,CAAC,eAAyB,EAAE,EAAE;YACxC,eAAe,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAA;QACpC,CAAC,CAAC,CAAA;IACJ,CAAC;IACD,gBAAgB,EAAE,CAAC,KAAa,EAAE,aAAuB,EAAQ,EAAE;QACjE,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;IACzB,CAAC;IACD,mBAAmB,EAAE,CAAC,KAAa,EAAE,aAAuB,EAAQ,EAAE;QACpE,GAAG,CAAC,MAAM,CACR,GAAG,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,KAAK,aAAa,CAAC,EACnD,CAAC,CACF,CAAA;IACH,CAAC;IACD,QAAQ,EAAE;QACR,MAAM,EAAE,GAAG;KACZ;CACF,CAAA;AAED,IAAI,CAAC;IACH,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;QAClC,8DAA8D;QAC9D,SAAS,GAAG,MAAa,CAAA;IAC3B,CAAC;AACH,CAAC;AAAC,OAAO,WAAW,EAAE,CAAC;IACrB,OAAO,CAAC,GAAG,CAAC,gBAAgB,WAAW,EAAE,CAAC,CAAA;AAC5C,CAAC;AAED,MAAM,oBAAoB,GAAe,GAAS,EAAE;IAClD,GAAG,CAAC,MAAM,GAAG,CAAC,CAAA;AAChB,CAAC,CAAA;AAED,OAAO,EAAE,SAAS,EAAE,oBAAoB,EAAE,CAAA"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @internalapi
|
|
3
|
+
*
|
|
4
|
+
* The Serializer is used to serialize / deserialize JSON objects and encode them with bs58check
|
|
5
|
+
*/
|
|
6
|
+
export declare class Serializer {
|
|
7
|
+
/**
|
|
8
|
+
* Serialize and bs58check encode an object
|
|
9
|
+
*
|
|
10
|
+
* @param message JSON object to serialize
|
|
11
|
+
*/
|
|
12
|
+
serialize(message: unknown): Promise<string>;
|
|
13
|
+
/**
|
|
14
|
+
* Deserialize a bs58check encoded string
|
|
15
|
+
*
|
|
16
|
+
* @param encoded String to be deserialized
|
|
17
|
+
*/
|
|
18
|
+
deserialize(encoded: string): Promise<unknown>;
|
|
19
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import bs58check from 'bs58check';
|
|
2
|
+
/**
|
|
3
|
+
* @internalapi
|
|
4
|
+
*
|
|
5
|
+
* The Serializer is used to serialize / deserialize JSON objects and encode them with bs58check
|
|
6
|
+
*/
|
|
7
|
+
export class Serializer {
|
|
8
|
+
/**
|
|
9
|
+
* Serialize and bs58check encode an object
|
|
10
|
+
*
|
|
11
|
+
* @param message JSON object to serialize
|
|
12
|
+
*/
|
|
13
|
+
async serialize(message) {
|
|
14
|
+
const str = JSON.stringify(message);
|
|
15
|
+
return bs58check.encode(Buffer.from(str));
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Deserialize a bs58check encoded string
|
|
19
|
+
*
|
|
20
|
+
* @param encoded String to be deserialized
|
|
21
|
+
*/
|
|
22
|
+
async deserialize(encoded) {
|
|
23
|
+
if (typeof encoded !== 'string') {
|
|
24
|
+
throw new Error('Encoded payload needs to be a string');
|
|
25
|
+
}
|
|
26
|
+
const decodedBytes = bs58check.decode(encoded);
|
|
27
|
+
const jsonString = Buffer.from(decodedBytes).toString('utf8');
|
|
28
|
+
return JSON.parse(jsonString);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=Serializer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Serializer.js","sourceRoot":"","sources":["../../src/Serializer.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,WAAW,CAAA;AAEjC;;;;GAIG;AACH,MAAM,OAAO,UAAU;IACrB;;;;OAIG;IACI,KAAK,CAAC,SAAS,CAAC,OAAgB;QACrC,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;QAEnC,OAAO,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;IAC3C,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,WAAW,CAAC,OAAe;QACtC,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAA;QACzD,CAAC;QAED,MAAM,YAAY,GAAG,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QAC9C,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;QAC7D,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;IAC/B,CAAC;CACF"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { ExposedPromise } from '@tezos-x/octez.connect-utils';
|
|
2
|
+
import { AnalyticsInterface, Storage } from '@tezos-x/octez.connect-types';
|
|
3
|
+
import { BeaconClientOptions } from './BeaconClientOptions';
|
|
4
|
+
import { KeyPair } from '@stablelib/ed25519';
|
|
5
|
+
/**
|
|
6
|
+
* @internalapi
|
|
7
|
+
*
|
|
8
|
+
* The beacon client is an abstract client that handles everything that is shared between all other clients.
|
|
9
|
+
* Specifically, it handles managing the beaconId and and the local keypair.
|
|
10
|
+
*/
|
|
11
|
+
export declare abstract class BeaconClient {
|
|
12
|
+
/**
|
|
13
|
+
* The name of the client
|
|
14
|
+
*/
|
|
15
|
+
readonly name: string;
|
|
16
|
+
/**
|
|
17
|
+
* The URL of the dApp Icon. This can be used to display the icon of the dApp on in the wallet
|
|
18
|
+
*/
|
|
19
|
+
readonly iconUrl?: string;
|
|
20
|
+
/**
|
|
21
|
+
* The URL of the dApp.
|
|
22
|
+
*/
|
|
23
|
+
readonly appUrl?: string;
|
|
24
|
+
/** The beaconId is a public key that is used to identify one specific application (dapp or wallet).
|
|
25
|
+
* This is used inside a message to specify the sender, for example.
|
|
26
|
+
*/
|
|
27
|
+
protected _beaconId: ExposedPromise<string>;
|
|
28
|
+
get beaconId(): Promise<string>;
|
|
29
|
+
protected storage: Storage;
|
|
30
|
+
protected analytics: AnalyticsInterface;
|
|
31
|
+
/**
|
|
32
|
+
* The local keypair that is used for the communication encryption
|
|
33
|
+
*/
|
|
34
|
+
protected _keyPair: ExposedPromise<KeyPair>;
|
|
35
|
+
protected get keyPair(): Promise<KeyPair>;
|
|
36
|
+
constructor(config: BeaconClientOptions);
|
|
37
|
+
/**
|
|
38
|
+
* This resets the SDK. After using this method, this instance is no longer usable. You will have to instanciate a new client.
|
|
39
|
+
*/
|
|
40
|
+
destroy(): Promise<void>;
|
|
41
|
+
/**
|
|
42
|
+
* This method initializes the SDK by setting some values in the storage and generating a keypair.
|
|
43
|
+
*/
|
|
44
|
+
protected initSDK(): Promise<void>;
|
|
45
|
+
/**
|
|
46
|
+
* Removes all beacon values from the storage.
|
|
47
|
+
*/
|
|
48
|
+
private removeBeaconEntriesFromStorage;
|
|
49
|
+
/**
|
|
50
|
+
* This method tries to load the seed from storage, if it doesn't exist, a new one will be created and persisted.
|
|
51
|
+
*/
|
|
52
|
+
private loadOrCreateBeaconSecret;
|
|
53
|
+
}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import { ExposedPromise } from '@tezos-x/octez.connect-utils';
|
|
2
|
+
import { getKeypairFromSeed, toHex, generateGUID } from '@tezos-x/octez.connect-utils';
|
|
3
|
+
import { StorageKey } from '@tezos-x/octez.connect-types';
|
|
4
|
+
import { SDK_VERSION } from '../../constants';
|
|
5
|
+
import { windowRef } from '../../MockWindow';
|
|
6
|
+
import { MockAnalytics } from '../../MockAnalytics';
|
|
7
|
+
/**
|
|
8
|
+
* @internalapi
|
|
9
|
+
*
|
|
10
|
+
* The beacon client is an abstract client that handles everything that is shared between all other clients.
|
|
11
|
+
* Specifically, it handles managing the beaconId and and the local keypair.
|
|
12
|
+
*/
|
|
13
|
+
export class BeaconClient {
|
|
14
|
+
/**
|
|
15
|
+
* The name of the client
|
|
16
|
+
*/
|
|
17
|
+
name;
|
|
18
|
+
/**
|
|
19
|
+
* The URL of the dApp Icon. This can be used to display the icon of the dApp on in the wallet
|
|
20
|
+
*/
|
|
21
|
+
iconUrl;
|
|
22
|
+
/**
|
|
23
|
+
* The URL of the dApp.
|
|
24
|
+
*/
|
|
25
|
+
appUrl;
|
|
26
|
+
/** The beaconId is a public key that is used to identify one specific application (dapp or wallet).
|
|
27
|
+
* This is used inside a message to specify the sender, for example.
|
|
28
|
+
*/
|
|
29
|
+
_beaconId = new ExposedPromise();
|
|
30
|
+
get beaconId() {
|
|
31
|
+
return this._beaconId.promise;
|
|
32
|
+
}
|
|
33
|
+
storage;
|
|
34
|
+
analytics;
|
|
35
|
+
/**
|
|
36
|
+
* The local keypair that is used for the communication encryption
|
|
37
|
+
*/
|
|
38
|
+
_keyPair = new ExposedPromise();
|
|
39
|
+
get keyPair() {
|
|
40
|
+
return this._keyPair.promise;
|
|
41
|
+
}
|
|
42
|
+
constructor(config) {
|
|
43
|
+
if (!config.name) {
|
|
44
|
+
throw new Error('Name not set');
|
|
45
|
+
}
|
|
46
|
+
if (!config.storage) {
|
|
47
|
+
throw new Error('Storage not set');
|
|
48
|
+
}
|
|
49
|
+
this.name = config.name;
|
|
50
|
+
this.iconUrl = config.iconUrl;
|
|
51
|
+
this.appUrl = config.appUrl ?? windowRef.location.origin;
|
|
52
|
+
this.storage = config.storage;
|
|
53
|
+
this.analytics = config.analytics ?? new MockAnalytics();
|
|
54
|
+
// TODO: This is a temporary "workaround" to prevent users from creating multiple Client instances
|
|
55
|
+
if (windowRef.beaconCreatedClientInstance) {
|
|
56
|
+
console.error('[OCTEZ.CONNECT] It looks like you created multiple octez.connect SDK Client instances. This can lead to problems. Only create one instance and re-use it everywhere.');
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
;
|
|
60
|
+
windowRef.beaconCreatedClientInstance = true;
|
|
61
|
+
}
|
|
62
|
+
this.initSDK().catch(console.error);
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* This resets the SDK. After using this method, this instance is no longer usable. You will have to instanciate a new client.
|
|
66
|
+
*/
|
|
67
|
+
async destroy() {
|
|
68
|
+
await this.removeBeaconEntriesFromStorage();
|
|
69
|
+
windowRef.beaconCreatedClientInstance = false;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* This method initializes the SDK by setting some values in the storage and generating a keypair.
|
|
73
|
+
*/
|
|
74
|
+
async initSDK() {
|
|
75
|
+
this.storage.set(StorageKey.BEACON_SDK_VERSION, SDK_VERSION).catch(console.error);
|
|
76
|
+
this.loadOrCreateBeaconSecret().catch(console.error);
|
|
77
|
+
return this.keyPair.then((keyPair) => {
|
|
78
|
+
this._beaconId.resolve(toHex(keyPair.publicKey));
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Removes all beacon values from the storage.
|
|
83
|
+
*/
|
|
84
|
+
async removeBeaconEntriesFromStorage() {
|
|
85
|
+
const allKeys = Object.values(StorageKey);
|
|
86
|
+
await Promise.all(allKeys.map((key) => this.storage.delete(key)));
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* This method tries to load the seed from storage, if it doesn't exist, a new one will be created and persisted.
|
|
90
|
+
*/
|
|
91
|
+
async loadOrCreateBeaconSecret() {
|
|
92
|
+
const storageValue = await this.storage.get(StorageKey.BEACON_SDK_SECRET_SEED);
|
|
93
|
+
if (storageValue && typeof storageValue === 'string') {
|
|
94
|
+
this._keyPair.resolve(await getKeypairFromSeed(storageValue));
|
|
95
|
+
}
|
|
96
|
+
else {
|
|
97
|
+
const key = await generateGUID();
|
|
98
|
+
await this.storage.set(StorageKey.BEACON_SDK_SECRET_SEED, key);
|
|
99
|
+
this._keyPair.resolve(await getKeypairFromSeed(key));
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
//# sourceMappingURL=BeaconClient.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BeaconClient.js","sourceRoot":"","sources":["../../../../src/clients/beacon-client/BeaconClient.ts"],"names":[],"mappings":"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"}
|