@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,70 @@
|
|
|
1
|
+
import { Storage, defaultValues } from '@tezos-x/octez.connect-types';
|
|
2
|
+
/**
|
|
3
|
+
* @internalapi
|
|
4
|
+
*
|
|
5
|
+
* A storage that can be used in the browser
|
|
6
|
+
*/
|
|
7
|
+
export class LocalStorage extends Storage {
|
|
8
|
+
prefix;
|
|
9
|
+
constructor(prefix) {
|
|
10
|
+
super();
|
|
11
|
+
this.prefix = prefix;
|
|
12
|
+
}
|
|
13
|
+
static async isSupported() {
|
|
14
|
+
return Promise.resolve(Boolean(typeof window !== 'undefined') && Boolean(window.localStorage));
|
|
15
|
+
}
|
|
16
|
+
async get(key) {
|
|
17
|
+
const value = localStorage.getItem(this.getPrefixedKey(key));
|
|
18
|
+
if (!value) {
|
|
19
|
+
if (typeof defaultValues[key] === 'object') {
|
|
20
|
+
return JSON.parse(JSON.stringify(defaultValues[key]));
|
|
21
|
+
}
|
|
22
|
+
else {
|
|
23
|
+
return defaultValues[key];
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
try {
|
|
28
|
+
return JSON.parse(value);
|
|
29
|
+
}
|
|
30
|
+
catch (jsonParseError) {
|
|
31
|
+
return value; // TODO: Validate storage
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
async set(key, value) {
|
|
36
|
+
if (typeof value === 'string') {
|
|
37
|
+
return localStorage.setItem(this.getPrefixedKey(key), value);
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
return localStorage.setItem(this.getPrefixedKey(key), JSON.stringify(value));
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
async delete(key) {
|
|
44
|
+
return Promise.resolve(localStorage.removeItem(this.getPrefixedKey(key)));
|
|
45
|
+
}
|
|
46
|
+
async subscribeToStorageChanged(callback) {
|
|
47
|
+
window.addEventListener('storage', (event) => {
|
|
48
|
+
if (!event.key) {
|
|
49
|
+
callback({
|
|
50
|
+
eventType: 'storageCleared',
|
|
51
|
+
key: null,
|
|
52
|
+
oldValue: null,
|
|
53
|
+
newValue: null
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
callback({
|
|
58
|
+
eventType: 'entryModified',
|
|
59
|
+
key: this.getPrefixedKey(event.key),
|
|
60
|
+
oldValue: event.oldValue,
|
|
61
|
+
newValue: event.newValue
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
}, false);
|
|
65
|
+
}
|
|
66
|
+
getPrefixedKey(key) {
|
|
67
|
+
return this.prefix ? `${this.prefix}-${key}` : key;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=LocalStorage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LocalStorage.js","sourceRoot":"","sources":["../../../src/storage/LocalStorage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAoC,aAAa,EAAE,MAAM,8BAA8B,CAAA;AAEvG;;;;GAIG;AACH,MAAM,OAAO,YAAa,SAAQ,OAAO;IACV;IAA7B,YAA6B,MAAe;QAC1C,KAAK,EAAE,CAAA;QADoB,WAAM,GAAN,MAAM,CAAS;IAE5C,CAAC;IACM,MAAM,CAAC,KAAK,CAAC,WAAW;QAC7B,OAAO,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,MAAM,KAAK,WAAW,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAA;IAChG,CAAC;IAEM,KAAK,CAAC,GAAG,CAAuB,GAAM;QAC3C,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAA;QAC5D,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,IAAI,OAAO,aAAa,CAAC,GAAG,CAAC,KAAK,QAAQ,EAAE,CAAC;gBAC3C,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;YACvD,CAAC;iBAAM,CAAC;gBACN,OAAO,aAAa,CAAC,GAAG,CAAC,CAAA;YAC3B,CAAC;QACH,CAAC;aAAM,CAAC;YACN,IAAI,CAAC;gBACH,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;YAC1B,CAAC;YAAC,OAAO,cAAc,EAAE,CAAC;gBACxB,OAAO,KAAgC,CAAA,CAAC,yBAAyB;YACnE,CAAC;QACH,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,GAAG,CAAuB,GAAM,EAAE,KAA8B;QAC3E,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,OAAO,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAA;QAC9D,CAAC;aAAM,CAAC;YACN,OAAO,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAA;QAC9E,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,MAAM,CAAuB,GAAM;QAC9C,OAAO,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;IAC3E,CAAC;IAEM,KAAK,CAAC,yBAAyB,CACpC,QAKQ;QAER,MAAM,CAAC,gBAAgB,CACrB,SAAS,EACT,CAAC,KAAK,EAAE,EAAE;YACR,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;gBACf,QAAQ,CAAC;oBACP,SAAS,EAAE,gBAAgB;oBAC3B,GAAG,EAAE,IAAI;oBACT,QAAQ,EAAE,IAAI;oBACd,QAAQ,EAAE,IAAI;iBACf,CAAC,CAAA;YACJ,CAAC;iBAAM,CAAC;gBACN,QAAQ,CAAC;oBACP,SAAS,EAAE,eAAe;oBAC1B,GAAG,EAAE,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC;oBACnC,QAAQ,EAAE,KAAK,CAAC,QAAQ;oBACxB,QAAQ,EAAE,KAAK,CAAC,QAAQ;iBACzB,CAAC,CAAA;YACJ,CAAC;QACH,CAAC,EACD,KAAK,CACN,CAAA;IACH,CAAC;IAEM,cAAc,CAAC,GAAW;QAC/B,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAA;IACpD,CAAC;CACF"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Storage } from '@tezos-x/octez.connect-types';
|
|
2
|
+
export declare class StorageValidator {
|
|
3
|
+
private readonly storage;
|
|
4
|
+
constructor(storage: Storage);
|
|
5
|
+
private validateNumber;
|
|
6
|
+
private validateText;
|
|
7
|
+
private validateBoolean;
|
|
8
|
+
private validateArray;
|
|
9
|
+
private objHasProperty;
|
|
10
|
+
private innerValidate;
|
|
11
|
+
validate(): Promise<boolean>;
|
|
12
|
+
}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { StorageKey } from '@tezos-x/octez.connect-types';
|
|
2
|
+
export class StorageValidator {
|
|
3
|
+
storage;
|
|
4
|
+
constructor(storage) {
|
|
5
|
+
this.storage = storage;
|
|
6
|
+
}
|
|
7
|
+
validateNumber(param) {
|
|
8
|
+
return typeof param === 'number' && !isNaN(param);
|
|
9
|
+
}
|
|
10
|
+
validateText(param) {
|
|
11
|
+
return typeof param === 'string';
|
|
12
|
+
}
|
|
13
|
+
validateBoolean(param) {
|
|
14
|
+
return typeof param === 'boolean';
|
|
15
|
+
}
|
|
16
|
+
validateArray(param) {
|
|
17
|
+
return Array.isArray(param);
|
|
18
|
+
}
|
|
19
|
+
objHasProperty(obj, path) {
|
|
20
|
+
if (!obj)
|
|
21
|
+
return false; // Return false if the object is null or undefined
|
|
22
|
+
const properties = path.split('.'); // Split the path into individual properties
|
|
23
|
+
let current = obj;
|
|
24
|
+
for (const property of properties) {
|
|
25
|
+
// If the property doesn't exist, return false
|
|
26
|
+
if (!current.hasOwnProperty(property)) {
|
|
27
|
+
return false;
|
|
28
|
+
}
|
|
29
|
+
// Move to the next level in the path
|
|
30
|
+
current = current[property];
|
|
31
|
+
}
|
|
32
|
+
return true;
|
|
33
|
+
}
|
|
34
|
+
innerValidate(value, type, prop) {
|
|
35
|
+
if (!value) {
|
|
36
|
+
return true;
|
|
37
|
+
}
|
|
38
|
+
switch (type) {
|
|
39
|
+
case 'num':
|
|
40
|
+
return this.validateNumber(value);
|
|
41
|
+
case 'str':
|
|
42
|
+
return this.validateText(value);
|
|
43
|
+
case 'bol':
|
|
44
|
+
return this.validateBoolean(value);
|
|
45
|
+
case 'obj':
|
|
46
|
+
return this.objHasProperty(value, prop);
|
|
47
|
+
case 'arr':
|
|
48
|
+
return this.validateArray(value);
|
|
49
|
+
default:
|
|
50
|
+
return false;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
async validate() {
|
|
54
|
+
if (!this.innerValidate(await this.storage.get(StorageKey.BEACON_SDK_VERSION), 'str')) {
|
|
55
|
+
return false;
|
|
56
|
+
}
|
|
57
|
+
if (!this.innerValidate(await this.storage.get(StorageKey.MATRIX_SELECTED_NODE), 'str')) {
|
|
58
|
+
return false;
|
|
59
|
+
}
|
|
60
|
+
if (!this.innerValidate(await this.storage.get(StorageKey.MULTI_NODE_SETUP_DONE), 'bol')) {
|
|
61
|
+
return false;
|
|
62
|
+
}
|
|
63
|
+
if (!this.innerValidate(await this.storage.get(StorageKey.TRANSPORT_P2P_PEERS_DAPP), 'arr')) {
|
|
64
|
+
return false;
|
|
65
|
+
}
|
|
66
|
+
if (!this.innerValidate(await this.storage.get(StorageKey.TRANSPORT_P2P_PEERS_WALLET), 'arr')) {
|
|
67
|
+
return false;
|
|
68
|
+
}
|
|
69
|
+
if (!this.innerValidate(await this.storage.get(StorageKey.TRANSPORT_POSTMESSAGE_PEERS_DAPP), 'arr')) {
|
|
70
|
+
return false;
|
|
71
|
+
}
|
|
72
|
+
if (!this.innerValidate(await this.storage.get(StorageKey.TRANSPORT_POSTMESSAGE_PEERS_WALLET), 'arr')) {
|
|
73
|
+
return false;
|
|
74
|
+
}
|
|
75
|
+
if (!this.innerValidate(await this.storage.get(StorageKey.TRANSPORT_WALLETCONNECT_PEERS_DAPP), 'arr')) {
|
|
76
|
+
return false;
|
|
77
|
+
}
|
|
78
|
+
if (!this.innerValidate(await this.storage.get(StorageKey.ACCOUNTS), 'arr')) {
|
|
79
|
+
return false;
|
|
80
|
+
}
|
|
81
|
+
if (!this.innerValidate(await this.storage.get(StorageKey.APP_METADATA_LIST), 'arr')) {
|
|
82
|
+
return false;
|
|
83
|
+
}
|
|
84
|
+
if (!this.innerValidate(await this.storage.get(StorageKey.PERMISSION_LIST), 'arr')) {
|
|
85
|
+
return false;
|
|
86
|
+
}
|
|
87
|
+
if (!this.innerValidate(await this.storage.get(StorageKey.ACTIVE_ACCOUNT), 'str')) {
|
|
88
|
+
return false;
|
|
89
|
+
}
|
|
90
|
+
if (!this.innerValidate(await this.storage.get(StorageKey.LAST_SELECTED_WALLET), 'obj', 'key')) {
|
|
91
|
+
return false;
|
|
92
|
+
}
|
|
93
|
+
return true;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
//# sourceMappingURL=StorageValidator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StorageValidator.js","sourceRoot":"","sources":["../../../src/storage/StorageValidator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export declare class WCStorage {
|
|
2
|
+
private readonly localStorage;
|
|
3
|
+
private readonly indexedDB;
|
|
4
|
+
private channel;
|
|
5
|
+
onMessageHandler: ((type: string) => void) | undefined;
|
|
6
|
+
onErrorHandler: ((data: any) => void) | undefined;
|
|
7
|
+
constructor();
|
|
8
|
+
private onMessage;
|
|
9
|
+
private onError;
|
|
10
|
+
notify(type: string): void;
|
|
11
|
+
hasPairings(): Promise<boolean>;
|
|
12
|
+
hasSessions(): Promise<boolean>;
|
|
13
|
+
backup(): void;
|
|
14
|
+
resetState(): Promise<void>;
|
|
15
|
+
}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { StorageKey } from '@tezos-x/octez.connect-types';
|
|
2
|
+
import { LocalStorage } from './LocalStorage';
|
|
3
|
+
import { IndexedDBStorage } from './IndexedDBStorage';
|
|
4
|
+
export class WCStorage {
|
|
5
|
+
localStorage = new LocalStorage();
|
|
6
|
+
indexedDB = new IndexedDBStorage();
|
|
7
|
+
channel = new BroadcastChannel('WALLET_CONNECT_V2_INDEXED_DB');
|
|
8
|
+
onMessageHandler;
|
|
9
|
+
onErrorHandler;
|
|
10
|
+
constructor() {
|
|
11
|
+
this.channel.onmessage = this.onMessage.bind(this);
|
|
12
|
+
this.channel.onmessageerror = this.onError.bind(this);
|
|
13
|
+
}
|
|
14
|
+
onMessage(message) {
|
|
15
|
+
this.onMessageHandler && this.onMessageHandler(message.data.type);
|
|
16
|
+
}
|
|
17
|
+
onError({ data }) {
|
|
18
|
+
this.onErrorHandler && this.onErrorHandler(data);
|
|
19
|
+
}
|
|
20
|
+
notify(type) {
|
|
21
|
+
this.channel?.postMessage({ type });
|
|
22
|
+
}
|
|
23
|
+
async hasPairings() {
|
|
24
|
+
const pairings = (await this.indexedDB.get(StorageKey.WC_2_CORE_PAIRING)) ?? '[]';
|
|
25
|
+
if (pairings.length) {
|
|
26
|
+
return true;
|
|
27
|
+
}
|
|
28
|
+
if (await LocalStorage.isSupported()) {
|
|
29
|
+
return ((await this.localStorage.get(StorageKey.WC_2_CORE_PAIRING)) ?? '[]') !== '[]';
|
|
30
|
+
}
|
|
31
|
+
return false;
|
|
32
|
+
}
|
|
33
|
+
async hasSessions() {
|
|
34
|
+
const sessions = (await this.indexedDB.get(StorageKey.WC_2_CLIENT_SESSION)) ?? '[]';
|
|
35
|
+
if (sessions.length) {
|
|
36
|
+
return true;
|
|
37
|
+
}
|
|
38
|
+
if (await LocalStorage.isSupported()) {
|
|
39
|
+
return ((await this.localStorage.get(StorageKey.WC_2_CLIENT_SESSION)) ?? '[]') !== '[]';
|
|
40
|
+
}
|
|
41
|
+
return false;
|
|
42
|
+
}
|
|
43
|
+
backup() {
|
|
44
|
+
this.indexedDB
|
|
45
|
+
.fillStore('beacon', 'bug_report', [StorageKey.WC_2_CORE_KEYCHAIN])
|
|
46
|
+
.catch((error) => console.error(error.message));
|
|
47
|
+
}
|
|
48
|
+
async resetState() {
|
|
49
|
+
await this.indexedDB.clearStore();
|
|
50
|
+
if (await LocalStorage.isSupported()) {
|
|
51
|
+
await Promise.all([
|
|
52
|
+
this.localStorage.delete(StorageKey.WC_2_CLIENT_SESSION),
|
|
53
|
+
this.localStorage.delete(StorageKey.WC_2_CORE_PAIRING),
|
|
54
|
+
this.localStorage.delete(StorageKey.WC_2_CORE_KEYCHAIN),
|
|
55
|
+
this.localStorage.delete(StorageKey.WC_2_CORE_MESSAGES),
|
|
56
|
+
this.localStorage.delete(StorageKey.WC_2_CLIENT_PROPOSAL),
|
|
57
|
+
this.localStorage.delete(StorageKey.WC_2_CORE_SUBSCRIPTION),
|
|
58
|
+
this.localStorage.delete(StorageKey.WC_2_CORE_HISTORY),
|
|
59
|
+
this.localStorage.delete(StorageKey.WC_2_CORE_EXPIRER)
|
|
60
|
+
]);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=WCStorage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WCStorage.js","sourceRoot":"","sources":["../../../src/storage/WCStorage.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { Logger } from '../utils/Logger';
|
|
2
|
+
import { ChromeStorage } from './ChromeStorage';
|
|
3
|
+
import { LocalStorage } from './LocalStorage';
|
|
4
|
+
const logger = new Logger('STORAGE');
|
|
5
|
+
/**
|
|
6
|
+
* Get a supported storage on this platform
|
|
7
|
+
*/
|
|
8
|
+
export const getStorage = async () => {
|
|
9
|
+
if (await ChromeStorage.isSupported()) {
|
|
10
|
+
logger.log('getStorage', 'USING CHROME STORAGE');
|
|
11
|
+
return new ChromeStorage();
|
|
12
|
+
}
|
|
13
|
+
else if (await LocalStorage.isSupported()) {
|
|
14
|
+
logger.log('getStorage', 'USING LOCAL STORAGE');
|
|
15
|
+
return new LocalStorage();
|
|
16
|
+
}
|
|
17
|
+
else {
|
|
18
|
+
throw new Error('no storage type supported');
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
//# sourceMappingURL=getStorage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getStorage.js","sourceRoot":"","sources":["../../../src/storage/getStorage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAExC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAE7C,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,SAAS,CAAC,CAAA;AAEpC;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAA2B,KAAK,IAAsB,EAAE;IAC7E,IAAI,MAAM,aAAa,CAAC,WAAW,EAAE,EAAE,CAAC;QACtC,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,sBAAsB,CAAC,CAAA;QAEhD,OAAO,IAAI,aAAa,EAAE,CAAA;IAC5B,CAAC;SAAM,IAAI,MAAM,YAAY,CAAC,WAAW,EAAE,EAAE,CAAC;QAC5C,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,qBAAqB,CAAC,CAAA;QAE/C,OAAO,IAAI,YAAY,EAAE,CAAA;IAC3B,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAA;IAC9C,CAAC;AACH,CAAC,CAAA"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { TransportType, TransportStatus, PeerInfo, StorageKey, ConnectionContext } from '@tezos-x/octez.connect-types';
|
|
2
|
+
import { PeerManager } from '../managers/PeerManager';
|
|
3
|
+
import { CommunicationClient } from './clients/CommunicationClient';
|
|
4
|
+
import { ClientEvents } from './clients/ClientEvents';
|
|
5
|
+
/**
|
|
6
|
+
* @internalapi
|
|
7
|
+
*
|
|
8
|
+
*
|
|
9
|
+
*/
|
|
10
|
+
export declare abstract class Transport<T extends PeerInfo = PeerInfo, K extends StorageKey.TRANSPORT_P2P_PEERS_DAPP | StorageKey.TRANSPORT_P2P_PEERS_WALLET | StorageKey.TRANSPORT_POSTMESSAGE_PEERS_DAPP | StorageKey.TRANSPORT_POSTMESSAGE_PEERS_WALLET | StorageKey.TRANSPORT_WALLETCONNECT_PEERS_DAPP = any, S extends CommunicationClient = any> {
|
|
11
|
+
/**
|
|
12
|
+
* The type of the transport
|
|
13
|
+
*/
|
|
14
|
+
readonly type: TransportType;
|
|
15
|
+
/**
|
|
16
|
+
* The name of the app
|
|
17
|
+
*/
|
|
18
|
+
protected readonly name: string;
|
|
19
|
+
/**
|
|
20
|
+
* The status of the transport
|
|
21
|
+
*/
|
|
22
|
+
protected _isConnected: TransportStatus;
|
|
23
|
+
protected readonly peerManager: PeerManager<K>;
|
|
24
|
+
/**
|
|
25
|
+
* The client handling the encryption/decryption of messages
|
|
26
|
+
*/
|
|
27
|
+
protected client: S;
|
|
28
|
+
/**
|
|
29
|
+
* The listener that will be invoked when a new peer is connected
|
|
30
|
+
*/
|
|
31
|
+
protected newPeerListener?: (peer: T) => void;
|
|
32
|
+
setEventHandler(event: ClientEvents, fun: Function): void;
|
|
33
|
+
/**
|
|
34
|
+
* The listeners that will be notified when new messages are coming in
|
|
35
|
+
*/
|
|
36
|
+
private listeners;
|
|
37
|
+
/**
|
|
38
|
+
* Return the status of the connection
|
|
39
|
+
*/
|
|
40
|
+
get connectionStatus(): TransportStatus;
|
|
41
|
+
constructor(name: string, client: S, peerManager: PeerManager<K>);
|
|
42
|
+
/**
|
|
43
|
+
* Returns a promise that resolves to true if the transport is available, false if it is not
|
|
44
|
+
*/
|
|
45
|
+
static isAvailable(): Promise<boolean>;
|
|
46
|
+
/**
|
|
47
|
+
* Connect the transport
|
|
48
|
+
*/
|
|
49
|
+
connect(): Promise<void>;
|
|
50
|
+
/**
|
|
51
|
+
* Disconnect the transport
|
|
52
|
+
*/
|
|
53
|
+
disconnect(): Promise<void>;
|
|
54
|
+
/**
|
|
55
|
+
* Send a message through the transport
|
|
56
|
+
*
|
|
57
|
+
* @param message The message to send
|
|
58
|
+
* @param recipient The recipient of the message
|
|
59
|
+
*/
|
|
60
|
+
send(message: string, peer?: PeerInfo): Promise<void>;
|
|
61
|
+
/**
|
|
62
|
+
* Add a listener to be called when a new message is received
|
|
63
|
+
*
|
|
64
|
+
* @param listener The listener that will be registered
|
|
65
|
+
*/
|
|
66
|
+
addListener(listener: (message: unknown, connectionInfo: ConnectionContext) => void): Promise<void>;
|
|
67
|
+
/**
|
|
68
|
+
* Remove a listener
|
|
69
|
+
*
|
|
70
|
+
* @param listener
|
|
71
|
+
*/
|
|
72
|
+
removeListener(listener: (message: string, connectionInfo: ConnectionContext) => void): Promise<void>;
|
|
73
|
+
getPeers(): Promise<T[]>;
|
|
74
|
+
addPeer(newPeer: T, _sendPairingResponse?: boolean): Promise<void>;
|
|
75
|
+
removePeer(peerToBeRemoved: T): Promise<void>;
|
|
76
|
+
removeAllPeers(): Promise<void>;
|
|
77
|
+
/**
|
|
78
|
+
* Notify the listeners when a new message comes in
|
|
79
|
+
*
|
|
80
|
+
* @param message Message
|
|
81
|
+
* @param connectionInfo Context info about the connection
|
|
82
|
+
*/
|
|
83
|
+
protected notifyListeners(message: unknown, connectionInfo: ConnectionContext): Promise<void>;
|
|
84
|
+
abstract listen(publicKey: string): Promise<void>;
|
|
85
|
+
}
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
import { Logger } from '../utils/Logger';
|
|
2
|
+
import { TransportType, TransportStatus } from '@tezos-x/octez.connect-types';
|
|
3
|
+
const logger = new Logger('Transport');
|
|
4
|
+
/**
|
|
5
|
+
* @internalapi
|
|
6
|
+
*
|
|
7
|
+
*
|
|
8
|
+
*/
|
|
9
|
+
export class Transport {
|
|
10
|
+
/**
|
|
11
|
+
* The type of the transport
|
|
12
|
+
*/
|
|
13
|
+
type = TransportType.POST_MESSAGE;
|
|
14
|
+
/**
|
|
15
|
+
* The name of the app
|
|
16
|
+
*/
|
|
17
|
+
name;
|
|
18
|
+
/**
|
|
19
|
+
* The status of the transport
|
|
20
|
+
*/
|
|
21
|
+
_isConnected = TransportStatus.NOT_CONNECTED;
|
|
22
|
+
peerManager;
|
|
23
|
+
/**
|
|
24
|
+
* The client handling the encryption/decryption of messages
|
|
25
|
+
*/
|
|
26
|
+
client;
|
|
27
|
+
/**
|
|
28
|
+
* The listener that will be invoked when a new peer is connected
|
|
29
|
+
*/
|
|
30
|
+
newPeerListener;
|
|
31
|
+
setEventHandler(event, fun) {
|
|
32
|
+
this.client.eventHandlers.set(event, fun);
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* The listeners that will be notified when new messages are coming in
|
|
36
|
+
*/
|
|
37
|
+
listeners = [];
|
|
38
|
+
/**
|
|
39
|
+
* Return the status of the connection
|
|
40
|
+
*/
|
|
41
|
+
get connectionStatus() {
|
|
42
|
+
return this._isConnected;
|
|
43
|
+
}
|
|
44
|
+
constructor(name, client, peerManager) {
|
|
45
|
+
this.name = name;
|
|
46
|
+
this.client = client;
|
|
47
|
+
this.peerManager = peerManager;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Returns a promise that resolves to true if the transport is available, false if it is not
|
|
51
|
+
*/
|
|
52
|
+
static async isAvailable() {
|
|
53
|
+
return Promise.resolve(false);
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Connect the transport
|
|
57
|
+
*/
|
|
58
|
+
async connect() {
|
|
59
|
+
logger.log('connect');
|
|
60
|
+
this._isConnected = TransportStatus.CONNECTED;
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Disconnect the transport
|
|
65
|
+
*/
|
|
66
|
+
async disconnect() {
|
|
67
|
+
logger.log('disconnect');
|
|
68
|
+
this._isConnected = TransportStatus.NOT_CONNECTED;
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Send a message through the transport
|
|
73
|
+
*
|
|
74
|
+
* @param message The message to send
|
|
75
|
+
* @param recipient The recipient of the message
|
|
76
|
+
*/
|
|
77
|
+
async send(message, peer) {
|
|
78
|
+
if (peer) {
|
|
79
|
+
return this.client.sendMessage(message, peer);
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
const knownPeers = await this.getPeers();
|
|
83
|
+
// A broadcast request has to be sent everywhere.
|
|
84
|
+
const promises = knownPeers.map((peerEl) => this.client.sendMessage(message, peerEl));
|
|
85
|
+
return (await Promise.all(promises))[0];
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Add a listener to be called when a new message is received
|
|
90
|
+
*
|
|
91
|
+
* @param listener The listener that will be registered
|
|
92
|
+
*/
|
|
93
|
+
async addListener(listener) {
|
|
94
|
+
logger.debug('addListener');
|
|
95
|
+
this.listeners.push(listener);
|
|
96
|
+
return;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Remove a listener
|
|
100
|
+
*
|
|
101
|
+
* @param listener
|
|
102
|
+
*/
|
|
103
|
+
async removeListener(listener) {
|
|
104
|
+
logger.log('removeListener');
|
|
105
|
+
this.listeners = this.listeners.filter((element) => element !== listener);
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
108
|
+
async getPeers() {
|
|
109
|
+
return this.peerManager.getPeers(); // TODO: Fix type
|
|
110
|
+
}
|
|
111
|
+
async addPeer(newPeer, _sendPairingResponse = true) {
|
|
112
|
+
logger.log('addPeer', 'adding peer', newPeer);
|
|
113
|
+
await this.peerManager.addPeer(newPeer); // TODO: Fix type
|
|
114
|
+
await this.listen(newPeer.publicKey);
|
|
115
|
+
}
|
|
116
|
+
async removePeer(peerToBeRemoved) {
|
|
117
|
+
logger.log('removePeer', 'removing peer', peerToBeRemoved);
|
|
118
|
+
await this.peerManager.removePeer(peerToBeRemoved.publicKey);
|
|
119
|
+
if (this.client) {
|
|
120
|
+
await this.client.unsubscribeFromEncryptedMessage(peerToBeRemoved.publicKey);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
async removeAllPeers() {
|
|
124
|
+
logger.log('removeAllPeers');
|
|
125
|
+
await this.peerManager.removeAllPeers();
|
|
126
|
+
if (this.client) {
|
|
127
|
+
await this.client.unsubscribeFromEncryptedMessages();
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Notify the listeners when a new message comes in
|
|
132
|
+
*
|
|
133
|
+
* @param message Message
|
|
134
|
+
* @param connectionInfo Context info about the connection
|
|
135
|
+
*/
|
|
136
|
+
async notifyListeners(message, connectionInfo) {
|
|
137
|
+
if (this.listeners.length === 0) {
|
|
138
|
+
logger.warn('notifyListeners', '0 listeners notified!', this);
|
|
139
|
+
}
|
|
140
|
+
else {
|
|
141
|
+
logger.log('notifyListeners', `Notifying ${this.listeners.length} listeners`, this);
|
|
142
|
+
}
|
|
143
|
+
this.listeners.forEach((listener) => {
|
|
144
|
+
listener(message, connectionInfo);
|
|
145
|
+
});
|
|
146
|
+
return;
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
//# sourceMappingURL=Transport.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Transport.js","sourceRoot":"","sources":["../../../src/transports/Transport.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ClientEvents.js","sourceRoot":"","sources":["../../../../src/transports/clients/ClientEvents.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { PeerInfoType } from '@tezos-x/octez.connect-types';
|
|
2
|
+
import { KeyPair } from '@stablelib/ed25519';
|
|
3
|
+
import { SessionKeys } from '@stablelib/x25519-session';
|
|
4
|
+
import { ClientEvents } from './ClientEvents';
|
|
5
|
+
/**
|
|
6
|
+
* @internalapi
|
|
7
|
+
*
|
|
8
|
+
*
|
|
9
|
+
*/
|
|
10
|
+
export declare abstract class CommunicationClient {
|
|
11
|
+
protected keyPair?: KeyPair | undefined;
|
|
12
|
+
constructor(keyPair?: KeyPair | undefined);
|
|
13
|
+
eventHandlers: Map<ClientEvents, Function>;
|
|
14
|
+
protected isMobileOS: () => boolean;
|
|
15
|
+
/**
|
|
16
|
+
* Get the public key
|
|
17
|
+
*/
|
|
18
|
+
getPublicKey(): Promise<string>;
|
|
19
|
+
/**
|
|
20
|
+
* get the public key hash
|
|
21
|
+
*/
|
|
22
|
+
getPublicKeyHash(): Promise<string>;
|
|
23
|
+
/**
|
|
24
|
+
* Create a cryptobox server
|
|
25
|
+
*
|
|
26
|
+
* @param otherPublicKey
|
|
27
|
+
* @param selfKeypair
|
|
28
|
+
*/
|
|
29
|
+
protected createCryptoBoxServer(otherPublicKey: string, selfKeypair: KeyPair): Promise<SessionKeys>;
|
|
30
|
+
/**
|
|
31
|
+
* Create a cryptobox client
|
|
32
|
+
*
|
|
33
|
+
* @param otherPublicKey
|
|
34
|
+
* @param selfKeypair
|
|
35
|
+
*/
|
|
36
|
+
protected createCryptoBoxClient(otherPublicKey: string, selfKeypair: KeyPair): Promise<SessionKeys>;
|
|
37
|
+
/**
|
|
38
|
+
* Encrypt a message for a specific publicKey (receiver, asymmetric)
|
|
39
|
+
*
|
|
40
|
+
* @param recipientPublicKey
|
|
41
|
+
* @param message
|
|
42
|
+
*/
|
|
43
|
+
protected encryptMessageAsymmetric(recipientPublicKey: string, message: string): Promise<string>;
|
|
44
|
+
abstract unsubscribeFromEncryptedMessages(): Promise<void>;
|
|
45
|
+
abstract unsubscribeFromEncryptedMessage(senderPublicKey: string): Promise<void>;
|
|
46
|
+
abstract sendMessage(message: string, peer?: PeerInfoType): Promise<void>;
|
|
47
|
+
}
|