diff --git a/src/pages/process/process.ts b/src/pages/process/process.ts index f23b8e7..0e82e70 100755 --- a/src/pages/process/process.ts +++ b/src/pages/process/process.ts @@ -447,6 +447,7 @@ async function createMessagingProcess(): Promise { ] } ]; + await service.checkConnections(otherMembers); const relayAddress = service.getAllRelays().pop(); if (!relayAddress) { throw new Error('Empty relay address list'); diff --git a/src/services/service.ts b/src/services/service.ts index 989ae62..c9bcb63 100755 --- a/src/services/service.ts +++ b/src/services/service.ts @@ -160,6 +160,22 @@ export default class Services { return secretsStore; } + public async checkConnections(members: Member[]): Promise { + const memberPromises = members.map(async (member) => { + const addressPromises = member.sp_addresses.map(async (address) => { + const sharedSecret = await this.getSecretForAddress(address); + if (!sharedSecret) { + const connectMemberResult = await this.connectMember([{ sp_addresses: [address] }]); + await this.handleApiReturn(connectMemberResult); + } + }); + + await Promise.all(addressPromises); + }); + + await Promise.all(memberPromises); + } + public async connectMember(members: Member[]): Promise { if (members.length === 0) { throw new Error('Trying to connect to empty members list');