@tezos-x/octez.connect-wallet 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.
Files changed (47) hide show
  1. package/LICENCE +19 -0
  2. package/README.md +15 -0
  3. package/dist/cjs/client/WalletClient.d.ts +85 -0
  4. package/dist/cjs/client/WalletClient.js +360 -0
  5. package/dist/cjs/client/WalletClient.js.map +1 -0
  6. package/dist/cjs/client/WalletClientOptions.d.ts +29 -0
  7. package/dist/cjs/client/WalletClientOptions.js +3 -0
  8. package/dist/cjs/client/WalletClientOptions.js.map +1 -0
  9. package/dist/cjs/index.d.ts +7 -0
  10. package/dist/cjs/index.js +24 -0
  11. package/dist/cjs/index.js.map +1 -0
  12. package/dist/cjs/interceptors/IncomingRequestInterceptor.d.ts +25 -0
  13. package/dist/cjs/interceptors/IncomingRequestInterceptor.js +160 -0
  14. package/dist/cjs/interceptors/IncomingRequestInterceptor.js.map +1 -0
  15. package/dist/cjs/interceptors/OutgoingResponseInterceptor.d.ts +22 -0
  16. package/dist/cjs/interceptors/OutgoingResponseInterceptor.js +216 -0
  17. package/dist/cjs/interceptors/OutgoingResponseInterceptor.js.map +1 -0
  18. package/dist/cjs/transports/WalletP2PTransport.d.ts +12 -0
  19. package/dist/cjs/transports/WalletP2PTransport.js +38 -0
  20. package/dist/cjs/transports/WalletP2PTransport.js.map +1 -0
  21. package/dist/cjs/transports/WalletPostMessageTransport.d.ts +11 -0
  22. package/dist/cjs/transports/WalletPostMessageTransport.js +18 -0
  23. package/dist/cjs/transports/WalletPostMessageTransport.js.map +1 -0
  24. package/dist/esm/client/WalletClient.d.ts +85 -0
  25. package/dist/esm/client/WalletClient.js +308 -0
  26. package/dist/esm/client/WalletClient.js.map +1 -0
  27. package/dist/esm/client/WalletClientOptions.d.ts +29 -0
  28. package/dist/esm/client/WalletClientOptions.js +2 -0
  29. package/dist/esm/client/WalletClientOptions.js.map +1 -0
  30. package/dist/esm/index.d.ts +7 -0
  31. package/dist/esm/index.js +7 -0
  32. package/dist/esm/index.js.map +1 -0
  33. package/dist/esm/interceptors/IncomingRequestInterceptor.d.ts +25 -0
  34. package/dist/esm/interceptors/IncomingRequestInterceptor.js +162 -0
  35. package/dist/esm/interceptors/IncomingRequestInterceptor.js.map +1 -0
  36. package/dist/esm/interceptors/OutgoingResponseInterceptor.d.ts +22 -0
  37. package/dist/esm/interceptors/OutgoingResponseInterceptor.js +221 -0
  38. package/dist/esm/interceptors/OutgoingResponseInterceptor.js.map +1 -0
  39. package/dist/esm/transports/WalletP2PTransport.d.ts +12 -0
  40. package/dist/esm/transports/WalletP2PTransport.js +20 -0
  41. package/dist/esm/transports/WalletP2PTransport.js.map +1 -0
  42. package/dist/esm/transports/WalletPostMessageTransport.d.ts +11 -0
  43. package/dist/esm/transports/WalletPostMessageTransport.js +14 -0
  44. package/dist/esm/transports/WalletPostMessageTransport.js.map +1 -0
  45. package/dist/octez.connect.wallet.min.js +430 -0
  46. package/dist/walletbeacon.wallet.min.js +430 -0
  47. package/package.json +42 -0
package/LICENCE ADDED
@@ -0,0 +1,19 @@
1
+ Copyright (c) 2021 Papers AG
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining a copy
4
+ of this software and associated documentation files (the "Software"), to deal
5
+ in the Software without restriction, including without limitation the rights
6
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
+ copies of the Software, and to permit persons to whom the Software is
8
+ furnished to do so, subject to the following conditions:
9
+
10
+ The above copyright notice and this permission notice shall be included in all
11
+ copies or substantial portions of the Software.
12
+
13
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
14
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
15
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
16
+ IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
17
+ DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
18
+ OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE
19
+ OR OTHER DEALINGS IN THE SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,15 @@
1
+ # `@tezos-x/octez.connect-wallet`
2
+
3
+ This package is part of the `@tezos-x/octez.connect-sdk` project. [Read more](https://github.com/trilitech/octez.connect-sdk)
4
+
5
+ ## Introduction
6
+
7
+ Use this package in your wallet to instanciate a `WalletClient` object and communicate to dApps.
8
+
9
+ ## Usage
10
+
11
+ ```
12
+ import { WalletClient } from '@tezos-x/octez.connect-wallet'
13
+
14
+ const walletClient = new WalletClient({ name: "Example Wallet" });
15
+ ```
@@ -0,0 +1,85 @@
1
+ import { Client } from '@tezos-x/octez.connect-core';
2
+ import { ExposedPromise } from '@tezos-x/octez.connect-utils';
3
+ import { ConnectionContext, ExtendedP2PPairingResponse, PeerInfo, TransportType, BeaconRequestOutputMessage, BeaconResponseInputMessage, AppMetadata, PermissionInfo, PushToken } from '@tezos-x/octez.connect-types';
4
+ import { WalletClientOptions } from './WalletClientOptions';
5
+ /**
6
+ * @publicapi
7
+ *
8
+ * The WalletClient has to be used in the wallet. It handles all the logic related to connecting to beacon-compatible
9
+ * dapps and handling/responding to requests.
10
+ *
11
+ * @category Wallet
12
+ */
13
+ export declare class WalletClient extends Client {
14
+ /**
15
+ * Returns whether or not the transport is connected
16
+ */
17
+ protected readonly _isConnected: ExposedPromise<boolean>;
18
+ get isConnected(): Promise<boolean>;
19
+ private readonly permissionManager;
20
+ private readonly appMetadataManager;
21
+ /**
22
+ * This array stores pending requests, meaning requests we received and have not yet handled / sent a response.
23
+ */
24
+ private pendingRequests;
25
+ constructor(config: WalletClientOptions);
26
+ init(): Promise<TransportType>;
27
+ /**
28
+ * This method initiates a connection to the P2P network and registers a callback that will be called
29
+ * whenever a message is received.
30
+ *
31
+ * @param newMessageCallback The callback that will be invoked for every message the transport receives.
32
+ */
33
+ connect(newMessageCallback: (message: BeaconRequestOutputMessage, connectionContext: ConnectionContext) => void): Promise<void>;
34
+ getRegisterPushChallenge(backendUrl: string, accountPublicKey: string, oracleUrl?: string): Promise<{
35
+ challenge: {
36
+ id: string;
37
+ timestamp: string;
38
+ };
39
+ payloadToSign: string;
40
+ }>;
41
+ registerPush(challenge: {
42
+ id: string;
43
+ timestamp: string;
44
+ }, signature: string, backendUrl: string, accountPublicKey: string, protocolIdentifier: string, deviceId: string, oracleUrl?: string): Promise<PushToken>;
45
+ /**
46
+ * The method will attempt to initiate a connection using the active transport.
47
+ */
48
+ _connect(attempts?: number): Promise<void>;
49
+ /**
50
+ * This method sends a response for a specific request back to the DApp
51
+ *
52
+ * @param message The BeaconResponseMessage that will be sent back to the DApp
53
+ */
54
+ respond(message: BeaconResponseInputMessage): Promise<void>;
55
+ getAppMetadataList(): Promise<AppMetadata[]>;
56
+ getAppMetadata(senderId: string): Promise<AppMetadata | undefined>;
57
+ removeAppMetadata(senderId: string): Promise<void>;
58
+ removeAllAppMetadata(): Promise<void>;
59
+ getPermissions(): Promise<PermissionInfo[]>;
60
+ getPermission(accountIdentifier: string): Promise<PermissionInfo | undefined>;
61
+ removePermission(accountIdentifier: string, senderId: string): Promise<void>;
62
+ removeAllPermissions(): Promise<void>;
63
+ private getPeerInfo;
64
+ /**
65
+ * Add a new peer to the known peers
66
+ * @param peer The new peer to add
67
+ */
68
+ addPeer(peer: PeerInfo, sendPairingResponse?: boolean): Promise<void>;
69
+ removePeer(peer: ExtendedP2PPairingResponse, sendDisconnectToPeer?: boolean): Promise<void>;
70
+ removeAllPeers(sendDisconnectToPeers?: boolean): Promise<void>;
71
+ private removePermissionsForPeers;
72
+ /**
73
+ * Send an acknowledge message back to the sender
74
+ *
75
+ * @param message The message that was received
76
+ */
77
+ private sendAcknowledgeResponse;
78
+ /**
79
+ * An internal method to send a BeaconMessage to the DApp
80
+ *
81
+ * @param response Send a message back to the DApp
82
+ */
83
+ private respondToMessage;
84
+ private disconnect;
85
+ }
@@ -0,0 +1,360 @@
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.WalletClient = void 0;
13
+ const axios_1 = require("axios");
14
+ const octez_connect_core_1 = require("@tezos-x/octez.connect-core");
15
+ const octez_connect_utils_1 = require("@tezos-x/octez.connect-utils");
16
+ const octez_connect_types_1 = require("@tezos-x/octez.connect-types");
17
+ const WalletP2PTransport_1 = require("../transports/WalletP2PTransport");
18
+ const IncomingRequestInterceptor_1 = require("../interceptors/IncomingRequestInterceptor");
19
+ const OutgoingResponseInterceptor_1 = require("../interceptors/OutgoingResponseInterceptor");
20
+ const logger = new octez_connect_core_1.Logger('WalletClient');
21
+ /**
22
+ * @publicapi
23
+ *
24
+ * The WalletClient has to be used in the wallet. It handles all the logic related to connecting to beacon-compatible
25
+ * dapps and handling/responding to requests.
26
+ *
27
+ * @category Wallet
28
+ */
29
+ class WalletClient extends octez_connect_core_1.Client {
30
+ get isConnected() {
31
+ return this._isConnected.promise;
32
+ }
33
+ constructor(config) {
34
+ super(Object.assign({ storage: config && config.storage ? config.storage : new octez_connect_core_1.LocalStorage() }, config));
35
+ /**
36
+ * Returns whether or not the transport is connected
37
+ */
38
+ this._isConnected = new octez_connect_utils_1.ExposedPromise();
39
+ /**
40
+ * This array stores pending requests, meaning requests we received and have not yet handled / sent a response.
41
+ */
42
+ this.pendingRequests = [];
43
+ this.permissionManager = new octez_connect_core_1.PermissionManager(this.storage);
44
+ this.appMetadataManager = new octez_connect_core_1.AppMetadataManager(this.storage);
45
+ }
46
+ init() {
47
+ const _super = Object.create(null, {
48
+ init: { get: () => super.init }
49
+ });
50
+ return __awaiter(this, void 0, void 0, function* () {
51
+ const keyPair = yield this.keyPair; // We wait for keypair here so the P2P Transport creation is not delayed and causing issues
52
+ const p2pTransport = new WalletP2PTransport_1.WalletP2PTransport(this.name, keyPair, this.storage, this.matrixNodes, this.iconUrl, this.appUrl);
53
+ return _super.init.call(this, p2pTransport);
54
+ });
55
+ }
56
+ /**
57
+ * This method initiates a connection to the P2P network and registers a callback that will be called
58
+ * whenever a message is received.
59
+ *
60
+ * @param newMessageCallback The callback that will be invoked for every message the transport receives.
61
+ */
62
+ connect(newMessageCallback) {
63
+ return __awaiter(this, void 0, void 0, function* () {
64
+ this.handleResponse = (message, connectionContext) => __awaiter(this, void 0, void 0, function* () {
65
+ if (message.version === '3') {
66
+ const typedMessage = message;
67
+ if (typedMessage.message.type === octez_connect_types_1.BeaconMessageType.Disconnect) {
68
+ return this.disconnect(typedMessage.senderId);
69
+ }
70
+ if (!this.pendingRequests.some((request) => request[0].id === message.id)) {
71
+ this.pendingRequests.push([typedMessage, connectionContext]);
72
+ yield this.sendAcknowledgeResponse(typedMessage, connectionContext);
73
+ yield IncomingRequestInterceptor_1.IncomingRequestInterceptor.intercept({
74
+ message: typedMessage,
75
+ connectionInfo: connectionContext,
76
+ appMetadataManager: this.appMetadataManager,
77
+ interceptorCallback: newMessageCallback
78
+ });
79
+ }
80
+ }
81
+ else {
82
+ const typedMessage = message;
83
+ if (typedMessage.type === octez_connect_types_1.BeaconMessageType.Disconnect) {
84
+ return this.disconnect(typedMessage.senderId);
85
+ }
86
+ if (!this.pendingRequests.some((request) => request[0].id === message.id)) {
87
+ this.pendingRequests.push([typedMessage, connectionContext]);
88
+ if (typedMessage.version !== '1') {
89
+ yield this.sendAcknowledgeResponse(typedMessage, connectionContext);
90
+ }
91
+ yield IncomingRequestInterceptor_1.IncomingRequestInterceptor.intercept({
92
+ message: typedMessage,
93
+ connectionInfo: connectionContext,
94
+ appMetadataManager: this.appMetadataManager,
95
+ interceptorCallback: newMessageCallback
96
+ });
97
+ }
98
+ }
99
+ });
100
+ return this._connect();
101
+ });
102
+ }
103
+ getRegisterPushChallenge(backendUrl_1, accountPublicKey_1) {
104
+ return __awaiter(this, arguments, void 0, function* (backendUrl, accountPublicKey, oracleUrl = octez_connect_core_1.NOTIFICATION_ORACLE_URL) {
105
+ // Check if account is already registered
106
+ const challenge = (yield axios_1.default.get(`${oracleUrl}/challenge`))
107
+ .data;
108
+ const constructedString = [
109
+ 'Tezos Signed Message: ',
110
+ challenge.id,
111
+ challenge.timestamp,
112
+ accountPublicKey,
113
+ backendUrl
114
+ ].join(' ');
115
+ const bytes = (0, octez_connect_utils_1.toHex)(constructedString);
116
+ const payloadBytes = '05' + '01' + bytes.length.toString(16).padStart(8, '0') + bytes;
117
+ return {
118
+ challenge,
119
+ payloadToSign: payloadBytes
120
+ };
121
+ });
122
+ }
123
+ registerPush(challenge_1, signature_1, backendUrl_1, accountPublicKey_1, protocolIdentifier_1, deviceId_1) {
124
+ return __awaiter(this, arguments, void 0, function* (challenge, signature, backendUrl, accountPublicKey, protocolIdentifier, deviceId, oracleUrl = octez_connect_core_1.NOTIFICATION_ORACLE_URL) {
125
+ const tokens = yield this.storage.get(octez_connect_types_1.StorageKey.PUSH_TOKENS);
126
+ const token = tokens.find((el) => el.publicKey === accountPublicKey && el.backendUrl === backendUrl);
127
+ if (token) {
128
+ return token;
129
+ }
130
+ const register = (yield axios_1.default.post(`${oracleUrl}/register`, {
131
+ name: this.name,
132
+ challenge,
133
+ accountPublicKey,
134
+ signature,
135
+ backendUrl,
136
+ protocolIdentifier,
137
+ deviceId
138
+ })).data;
139
+ const newToken = {
140
+ publicKey: accountPublicKey,
141
+ backendUrl,
142
+ accessToken: register.accessToken,
143
+ managementToken: register.managementToken
144
+ };
145
+ tokens.push(newToken);
146
+ yield this.storage.set(octez_connect_types_1.StorageKey.PUSH_TOKENS, tokens);
147
+ return newToken;
148
+ });
149
+ }
150
+ /**
151
+ * The method will attempt to initiate a connection using the active transport.
152
+ */
153
+ _connect() {
154
+ return __awaiter(this, arguments, void 0, function* (attempts = 3) {
155
+ const transport = (yield this.transport);
156
+ if (attempts == 0 || transport.connectionStatus !== octez_connect_types_1.TransportStatus.NOT_CONNECTED) {
157
+ return;
158
+ }
159
+ try {
160
+ yield transport.connect();
161
+ }
162
+ catch (err) {
163
+ logger.warn('_connect', err.message);
164
+ yield transport.disconnect();
165
+ yield this._connect(--attempts);
166
+ return;
167
+ }
168
+ transport
169
+ .addListener((message, connectionInfo) => __awaiter(this, void 0, void 0, function* () {
170
+ if (typeof message === 'string') {
171
+ const deserializedMessage = (yield new octez_connect_core_1.Serializer().deserialize(message));
172
+ this.handleResponse(deserializedMessage, connectionInfo);
173
+ }
174
+ }))
175
+ .catch((error) => logger.log('_connect', error));
176
+ this._isConnected.resolve(true);
177
+ });
178
+ }
179
+ /**
180
+ * This method sends a response for a specific request back to the DApp
181
+ *
182
+ * @param message The BeaconResponseMessage that will be sent back to the DApp
183
+ */
184
+ respond(message) {
185
+ return __awaiter(this, void 0, void 0, function* () {
186
+ logger.log('RESPONSE', message);
187
+ const request = this.pendingRequests.find((pendingRequest) => pendingRequest[0].id === message.id);
188
+ if (!request) {
189
+ throw new Error('No matching request found!');
190
+ }
191
+ this.pendingRequests = this.pendingRequests.filter((pendingRequest) => pendingRequest[0].id !== message.id);
192
+ yield OutgoingResponseInterceptor_1.OutgoingResponseInterceptor.intercept({
193
+ senderId: yield (0, octez_connect_core_1.getSenderId)(yield this.beaconId),
194
+ request: request[0],
195
+ message,
196
+ ownAppMetadata: yield this.getOwnAppMetadata(),
197
+ permissionManager: this.permissionManager,
198
+ appMetadataManager: this.appMetadataManager,
199
+ interceptorCallback: (response) => __awaiter(this, void 0, void 0, function* () {
200
+ yield this.respondToMessage(response, request[1]);
201
+ })
202
+ });
203
+ });
204
+ }
205
+ getAppMetadataList() {
206
+ return __awaiter(this, void 0, void 0, function* () {
207
+ return this.appMetadataManager.getAppMetadataList();
208
+ });
209
+ }
210
+ getAppMetadata(senderId) {
211
+ return __awaiter(this, void 0, void 0, function* () {
212
+ return this.appMetadataManager.getAppMetadata(senderId);
213
+ });
214
+ }
215
+ removeAppMetadata(senderId) {
216
+ return __awaiter(this, void 0, void 0, function* () {
217
+ return this.appMetadataManager.removeAppMetadata(senderId);
218
+ });
219
+ }
220
+ removeAllAppMetadata() {
221
+ return __awaiter(this, void 0, void 0, function* () {
222
+ return this.appMetadataManager.removeAllAppMetadata();
223
+ });
224
+ }
225
+ getPermissions() {
226
+ return __awaiter(this, void 0, void 0, function* () {
227
+ return this.permissionManager.getPermissions();
228
+ });
229
+ }
230
+ getPermission(accountIdentifier) {
231
+ return __awaiter(this, void 0, void 0, function* () {
232
+ return this.permissionManager.getPermission(accountIdentifier);
233
+ });
234
+ }
235
+ removePermission(accountIdentifier, senderId) {
236
+ return __awaiter(this, void 0, void 0, function* () {
237
+ return this.permissionManager.removePermission(accountIdentifier, senderId);
238
+ });
239
+ }
240
+ removeAllPermissions() {
241
+ return __awaiter(this, void 0, void 0, function* () {
242
+ return this.permissionManager.removeAllPermissions();
243
+ });
244
+ }
245
+ getPeerInfo(peer) {
246
+ return __awaiter(this, void 0, void 0, function* () {
247
+ const senderId = yield (0, octez_connect_core_1.getSenderId)(peer.publicKey);
248
+ if (peer instanceof octez_connect_types_1.PostMessagePairingRequest) {
249
+ return new octez_connect_types_1.ExtendedPostMessagePairingRequest(peer.id, peer.name, peer.publicKey, peer.version, senderId);
250
+ }
251
+ else if (peer instanceof octez_connect_types_1.P2PPairingRequest) {
252
+ return new octez_connect_types_1.ExtendedP2PPairingRequest(peer.id, peer.name, peer.publicKey, peer.version, peer.relayServer, senderId);
253
+ }
254
+ else if (peer instanceof octez_connect_types_1.ExtendedWalletConnectPairingRequest) {
255
+ return new octez_connect_types_1.ExtendedWalletConnectPairingRequest(peer.id, peer.name, peer.publicKey, peer.version, senderId, peer.uri);
256
+ }
257
+ else {
258
+ return Object.assign(Object.assign({}, peer), { senderId });
259
+ }
260
+ });
261
+ }
262
+ /**
263
+ * Add a new peer to the known peers
264
+ * @param peer The new peer to add
265
+ */
266
+ addPeer(peer_1) {
267
+ return __awaiter(this, arguments, void 0, function* (peer, sendPairingResponse = true) {
268
+ return (yield this.transport).addPeer(yield this.getPeerInfo(peer), sendPairingResponse);
269
+ });
270
+ }
271
+ removePeer(peer_1) {
272
+ return __awaiter(this, arguments, void 0, function* (peer, sendDisconnectToPeer = false) {
273
+ const removePeerResult = (yield this.transport).removePeer(peer);
274
+ yield this.removePermissionsForPeers([peer]);
275
+ if (sendDisconnectToPeer) {
276
+ yield this.sendDisconnectToPeer(peer);
277
+ }
278
+ return removePeerResult;
279
+ });
280
+ }
281
+ removeAllPeers() {
282
+ return __awaiter(this, arguments, void 0, function* (sendDisconnectToPeers = false) {
283
+ const peers = yield (yield this.transport).getPeers();
284
+ const removePeerResult = (yield this.transport).removeAllPeers();
285
+ yield this.removePermissionsForPeers(peers);
286
+ if (sendDisconnectToPeers) {
287
+ const disconnectPromises = peers.map((peer) => this.sendDisconnectToPeer(peer));
288
+ yield Promise.all(disconnectPromises);
289
+ }
290
+ return removePeerResult;
291
+ });
292
+ }
293
+ removePermissionsForPeers(peersToRemove) {
294
+ return __awaiter(this, void 0, void 0, function* () {
295
+ const permissions = yield this.permissionManager.getPermissions();
296
+ const peerIdsToRemove = peersToRemove.map((peer) => peer.senderId);
297
+ // Remove all permissions with origin of the specified peer
298
+ const permissionsToRemove = permissions.filter((permission) => peerIdsToRemove.includes(permission.appMetadata.senderId));
299
+ const permissionIdentifiersToRemove = permissionsToRemove.map((permissionInfo) => permissionInfo.accountIdentifier);
300
+ yield this.permissionManager.removePermissions(permissionIdentifiersToRemove);
301
+ });
302
+ }
303
+ /**
304
+ * Send an acknowledge message back to the sender
305
+ *
306
+ * @param message The message that was received
307
+ */
308
+ sendAcknowledgeResponse(request, connectionContext) {
309
+ return __awaiter(this, void 0, void 0, function* () {
310
+ // Acknowledge the message
311
+ const acknowledgeResponse = {
312
+ id: request.id,
313
+ type: octez_connect_types_1.BeaconMessageType.Acknowledge
314
+ };
315
+ yield OutgoingResponseInterceptor_1.OutgoingResponseInterceptor.intercept({
316
+ senderId: yield (0, octez_connect_core_1.getSenderId)(yield this.beaconId),
317
+ request,
318
+ message: acknowledgeResponse,
319
+ ownAppMetadata: yield this.getOwnAppMetadata(),
320
+ permissionManager: this.permissionManager,
321
+ appMetadataManager: this.appMetadataManager,
322
+ interceptorCallback: (response) => __awaiter(this, void 0, void 0, function* () {
323
+ yield this.respondToMessage(response, connectionContext);
324
+ })
325
+ });
326
+ });
327
+ }
328
+ /**
329
+ * An internal method to send a BeaconMessage to the DApp
330
+ *
331
+ * @param response Send a message back to the DApp
332
+ */
333
+ respondToMessage(response, connectionContext) {
334
+ return __awaiter(this, void 0, void 0, function* () {
335
+ const serializedMessage = yield new octez_connect_core_1.Serializer().serialize(response);
336
+ if (connectionContext) {
337
+ const peerInfos = yield this.getPeers();
338
+ const peer = peerInfos.find((peerInfo) => peerInfo.publicKey === connectionContext.id);
339
+ yield (yield this.transport).send(serializedMessage, peer);
340
+ }
341
+ else {
342
+ yield (yield this.transport).send(serializedMessage);
343
+ }
344
+ });
345
+ }
346
+ disconnect(senderId) {
347
+ return __awaiter(this, void 0, void 0, function* () {
348
+ const transport = yield this.transport;
349
+ const peers = yield transport.getPeers();
350
+ const peer = peers.find((peerEl) => peerEl.senderId === senderId);
351
+ if (peer) {
352
+ yield this.removePeer(peer);
353
+ }
354
+ yield transport.disconnect();
355
+ return;
356
+ });
357
+ }
358
+ }
359
+ exports.WalletClient = WalletClient;
360
+ //# sourceMappingURL=WalletClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WalletClient.js","sourceRoot":"","sources":["../../../src/client/WalletClient.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ import { NodeDistributions, Storage } from '@tezos-x/octez.connect-types';
2
+ /**
3
+ * @category Wallet
4
+ */
5
+ export interface WalletClientOptions {
6
+ /**
7
+ * Name of the application
8
+ */
9
+ name: string;
10
+ /**
11
+ * A URL to the icon of the application
12
+ */
13
+ iconUrl?: string;
14
+ /**
15
+ * A URL to the website of the application
16
+ */
17
+ appUrl?: string;
18
+ /**
19
+ * The storage that will be used by the SDK
20
+ */
21
+ storage?: Storage;
22
+ /**
23
+ * A list of matrix nodes to connect to. If a non-empty array is passed, the default options will be overwritten.
24
+ * One node will be randomly selected based on the local keypair and the other nodes will be used as a fallback in case the primary node goes down.
25
+ *
26
+ * Only provide the hostname, no https:// prefix. Eg. { [Regions.EU1]: ['matrix.example.com'] }
27
+ */
28
+ matrixNodes?: NodeDistributions;
29
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=WalletClientOptions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WalletClientOptions.js","sourceRoot":"","sources":["../../../src/client/WalletClientOptions.ts"],"names":[],"mappings":""}
@@ -0,0 +1,7 @@
1
+ export * from '@tezos-x/octez.connect-core';
2
+ export * from '@tezos-x/octez.connect-transport-matrix';
3
+ export * from '@tezos-x/octez.connect-types';
4
+ export * from '@tezos-x/octez.connect-utils';
5
+ import { WalletClient } from './client/WalletClient';
6
+ import { WalletClientOptions } from './client/WalletClientOptions';
7
+ export { WalletClient, WalletClientOptions };
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.WalletClient = void 0;
18
+ __exportStar(require("@tezos-x/octez.connect-core"), exports);
19
+ __exportStar(require("@tezos-x/octez.connect-transport-matrix"), exports);
20
+ __exportStar(require("@tezos-x/octez.connect-types"), exports);
21
+ __exportStar(require("@tezos-x/octez.connect-utils"), exports);
22
+ const WalletClient_1 = require("./client/WalletClient");
23
+ Object.defineProperty(exports, "WalletClient", { enumerable: true, get: function () { return WalletClient_1.WalletClient; } });
24
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,8DAA2C;AAC3C,0EAAuD;AACvD,+DAA4C;AAC5C,+DAA4C;AAE5C,wDAAoD;AAG3C,6FAHA,2BAAY,OAGA"}
@@ -0,0 +1,25 @@
1
+ import { BeaconRequestOutputMessage, ConnectionContext, BeaconRequestMessage, BeaconMessageWrapper, BeaconBaseMessage } from '@tezos-x/octez.connect-types';
2
+ import { AppMetadataManager } from '@tezos-x/octez.connect-core';
3
+ interface IncomingRequestInterceptorOptions {
4
+ message: BeaconRequestMessage | BeaconMessageWrapper<BeaconBaseMessage>;
5
+ connectionInfo: ConnectionContext;
6
+ appMetadataManager: AppMetadataManager;
7
+ interceptorCallback(message: BeaconRequestOutputMessage, connectionInfo: ConnectionContext): void;
8
+ }
9
+ /**
10
+ * @internalapi
11
+ *
12
+ * The IncomingRequestInterceptor is used in the WalletClient to intercept an incoming request and enrich it with data, like app metadata.
13
+ */
14
+ export declare class IncomingRequestInterceptor {
15
+ /**
16
+ * The method that is called during the interception
17
+ *
18
+ * @param config
19
+ */
20
+ static intercept(config: IncomingRequestInterceptorOptions): Promise<void>;
21
+ private static getAppMetadata;
22
+ private static handleV2Message;
23
+ private static handleV3Message;
24
+ }
25
+ export {};