From 09b3815d89fd44a7404da628deb28af99fb33c68 Mon Sep 17 00:00:00 2001 From: Adhiraj Singh Date: Thu, 25 Nov 2021 13:42:58 +0530 Subject: [PATCH] fix: handle case with 0 app state sync keys --- src/Socket/messages-recv.ts | 30 ++++++++++++++++++------------ 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/src/Socket/messages-recv.ts b/src/Socket/messages-recv.ts index bf0a512..f7cbd88 100644 --- a/src/Socket/messages-recv.ts +++ b/src/Socket/messages-recv.ts @@ -132,18 +132,24 @@ export const makeMessagesRecvSocket = (config: SocketConfig) => { }) break case proto.ProtocolMessage.ProtocolMessageType.APP_STATE_SYNC_KEY_SHARE: - let newAppStateSyncKeyId = '' - for(const { keyData, keyId } of protocolMsg.appStateSyncKeyShare!.keys || []) { - const str = Buffer.from(keyId.keyId!).toString('base64') - logger.info({ str }, 'injecting new app state sync key') - await authState.keys.setAppStateSyncKey(str, keyData) - - newAppStateSyncKeyId = str - } - - ev.emit('creds.update', { myAppStateKeyId: newAppStateSyncKeyId }) - - resyncMainAppState() + const keys = protocolMsg.appStateSyncKeyShare!.keys + if(keys?.length) { + let newAppStateSyncKeyId = '' + for(const { keyData, keyId } of keys) { + const str = Buffer.from(keyId.keyId!).toString('base64') + + logger.info({ str }, 'injecting new app state sync key') + await authState.keys.setAppStateSyncKey(str, keyData) + + newAppStateSyncKeyId = str + } + + ev.emit('creds.update', { myAppStateKeyId: newAppStateSyncKeyId }) + + resyncMainAppState() + } else [ + logger.info({ protocolMsg }, 'recv app state sync with 0 keys') + ] break case proto.ProtocolMessage.ProtocolMessageType.REVOKE: ev.emit('messages.update', [