From c027490d2f96420c3a32d6ec6d40010e8e67ff3b Mon Sep 17 00:00:00 2001 From: Mikunj Date: Tue, 16 Jun 2020 13:07:18 +1000 Subject: [PATCH] Merge fixes --- js/modules/loki_file_server_api.d.ts | 3 ++- ts/receiver/receiver.ts | 7 ++++++- ts/session/protocols/MultiDeviceProtocol.ts | 7 ++++--- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/js/modules/loki_file_server_api.d.ts b/js/modules/loki_file_server_api.d.ts index a1c1b0a71..64695d6de 100644 --- a/js/modules/loki_file_server_api.d.ts +++ b/js/modules/loki_file_server_api.d.ts @@ -1,5 +1,5 @@ interface DeviceMappingAnnotation { - isPrimary: boolean; + isPrimary: string; authorisations: Array<{ primaryDevicePubKey: string; secondaryDevicePubKey: string; @@ -10,4 +10,5 @@ interface DeviceMappingAnnotation { interface LokiFileServerInstance { getUserDeviceMapping(pubKey: string): Promise; + clearOurDeviceMappingAnnotations(): Promise; } diff --git a/ts/receiver/receiver.ts b/ts/receiver/receiver.ts index d36f8649b..ef85abaf3 100644 --- a/ts/receiver/receiver.ts +++ b/ts/receiver/receiver.ts @@ -267,7 +267,12 @@ async function handleSecondaryDeviceFriendRequest(pubKey: string) { if (!c || !(await c.isFriendWithAnyDevice())) { return false; } - await MultiDeviceProtocol.savePairingAuthorisation(authorisation); + await MultiDeviceProtocol.savePairingAuthorisation({ + primaryDevicePubKey: authorisation.primaryDevicePubKey, + secondaryDevicePubKey: authorisation.secondaryDevicePubKey, + requestSignature: Buffer.from(authorisation.requestSignature).buffer, + grantSignature: Buffer.from(authorisation.grantSignature).buffer, + }); return true; } diff --git a/ts/session/protocols/MultiDeviceProtocol.ts b/ts/session/protocols/MultiDeviceProtocol.ts index 9b41cb945..f55667962 100644 --- a/ts/session/protocols/MultiDeviceProtocol.ts +++ b/ts/session/protocols/MultiDeviceProtocol.ts @@ -7,7 +7,6 @@ import { } from '../../../js/modules/data'; import { PrimaryPubKey, PubKey, SecondaryPubKey } from '../types'; import { UserUtil } from '../../util'; -import { lokiFileServerAPI } from '../../window'; /* The reason we're exporing a class here instead of just exporting the functions directly is for the sake of testing. @@ -75,11 +74,13 @@ export class MultiDeviceProtocol { public static async fetchPairingAuthorisations( device: PubKey ): Promise> { - if (!lokiFileServerAPI) { + if (!window.lokiFileServerAPI) { throw new Error('lokiFileServerAPI is not initialised.'); } - const mapping = await lokiFileServerAPI.getUserDeviceMapping(device.key); + const mapping = await window.lokiFileServerAPI.getUserDeviceMapping( + device.key + ); // TODO: Filter out invalid authorisations return mapping.authorisations.map(