| 
						
						
							
								
							
						
						
					 | 
				
			
			 | 
			 | 
			
				@ -559,12 +559,13 @@ async function handleWithHistoryMembers({
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  const encryptedSupplementKeys = withHistory.length
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    ? await MetaGroupWrapperActions.generateSupplementKeys(groupPk, withHistory)
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    : null;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  return encryptedSupplementKeys;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				/**
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				 * Update the GROUP_MEMBER wrapper state to have those members.
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				 * Calls rekey() if at least one was present in the list.
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				 * Does not call `rekey()` so you need to call it from the caller.
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				 */
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				async function handleWithoutHistoryMembers({
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  groupPk,
 | 
			
		
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
			
			 | 
			 | 
			
				@ -587,10 +588,6 @@ async function handleWithoutHistoryMembers({
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    // a group invite job will be added to the queue
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    await MetaGroupWrapperActions.memberSetInviteNotSent(groupPk, member);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  }
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  if (!isEmpty(withoutHistory)) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    await MetaGroupWrapperActions.keyRekey(groupPk);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  }
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				}
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				async function handleMemberAddedFromUI({
 | 
			
		
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
			
			 | 
			 | 
			
				@ -635,6 +632,13 @@ async function handleMemberAddedFromUI({
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  // then handle the addition without history of messages (full rotation of keys).
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  // this adds them to the members wrapper etc
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  await handleWithoutHistoryMembers({ groupPk, withoutHistory });
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  if (withHistory.length || withoutHistory.length) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    // We now always want to call rekey(), even if only a supplemental key was needed.
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    // This is to take care of an edge case where a user is reinvited but considers himself kicked.
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    // See SES3299
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    await MetaGroupWrapperActions.keyRekey(groupPk);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  }
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  const createAtNetworkTimestamp = NetworkTime.now();
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  await LibSessionUtil.saveDumpsToDb(groupPk);
 | 
			
		
		
	
	
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
				
			
			 | 
			 | 
			
				
 
 |