From 85931ba350c6ab2e2b77c267a694708b1de0e441 Mon Sep 17 00:00:00 2001 From: Sosthene Date: Mon, 25 Nov 2024 21:35:45 +0100 Subject: [PATCH] Check before creating shared secret --- src/pages/home/home.ts | 11 +++++++---- src/router.ts | 7 +++++-- src/utils/sp-address.utils.ts | 13 ++++++++----- 3 files changed, 20 insertions(+), 11 deletions(-) diff --git a/src/pages/home/home.ts b/src/pages/home/home.ts index 9ea6fe6..6ffa967 100755 --- a/src/pages/home/home.ts +++ b/src/pages/home/home.ts @@ -55,11 +55,14 @@ async function onScanSuccess(decodedText: any, decodedResult: any) { html5QrcodeScanner.clear(); const service = await Services.getInstance(); // Call the sendPairingTx function with the extracted sp_address - try { - const member = { - sp_addresses: [spAddress], + try { + const sharedSecret = await service.getSecretForAddress(spAddress); + if (!sharedSecret) { + const member = { + sp_addresses: [spAddress], + } + await service.connectMember([member]); } - await service.connectMember([member]); // await service.sendPairingTx(spAddress); } catch (e) { console.error('Failed to pair:', e); diff --git a/src/router.ts b/src/router.ts index 5092575..e451b5f 100755 --- a/src/router.ts +++ b/src/router.ts @@ -113,9 +113,12 @@ async function init(): Promise { const pairingAddress = urlParams.get('sp_address'); if (pairingAddress) { setTimeout(async () => { - // await services.sendPairingTx(pairingAddress) try { - await services.connectMember([{sp_addresses: [pairingAddress]}]); + // check if we have a shared secret with that address + const sharedSecret = await services.getSecretForAddress(pairingAddress); + if (!sharedSecret) { + await services.connectMember([{sp_addresses: [pairingAddress]}]); + } } catch (e) { console.error('Failed to pair:', e); } diff --git a/src/utils/sp-address.utils.ts b/src/utils/sp-address.utils.ts index d34fe60..b0e2cc4 100755 --- a/src/utils/sp-address.utils.ts +++ b/src/utils/sp-address.utils.ts @@ -148,12 +148,15 @@ export function initAddressInput() { async function onOkButtonClick() { const service = await Services.getInstance(); const addressInput = (document.getElementById('addressInput') as HTMLInputElement).value; - const member = { - sp_addresses: [addressInput], - } try { - await service.connectMember([member]); - // await service.sendPairingTx(addressInput); + const sharedSecret = await service.getSecretForAddress(addressInput); + if (!sharedSecret) { + const member = { + sp_addresses: [addressInput], + } + await service.connectMember([member]); + } + await service.createPairingProcess([addressInput], "sprt1qqdg4x69xdyhxpz4weuel0985qyswa0x9ycl4q6xc0fngf78jtj27gqj5vff4fvlt3fydx4g7vv0mh7vqv8jncgusp6n2zv860nufdzkyy59pqrdr", 1); } catch (e) { console.error('onOkButtonClick error:', e); }