From 23fe47f69fc07c97f059fcea0e21e61ebc4e24ab Mon Sep 17 00:00:00 2001 From: NicolasCantu Date: Tue, 2 Dec 2025 00:20:48 +0100 Subject: [PATCH] refactor(sp-address.utils): standardize import statements and improve string handling for better code consistency --- src/utils/sp-address.utils.ts | 98 +++++++++++++++++++++-------------- 1 file changed, 58 insertions(+), 40 deletions(-) diff --git a/src/utils/sp-address.utils.ts b/src/utils/sp-address.utils.ts index 57774c2..801d63c 100755 --- a/src/utils/sp-address.utils.ts +++ b/src/utils/sp-address.utils.ts @@ -1,6 +1,6 @@ -import Services from '../services/service'; -import { getCorrectDOM } from './html.utils'; -import { addSubscription } from './subscription.utils'; +import Services from "../services/service"; +import { getCorrectDOM } from "./html.utils"; +import { addSubscription } from "./subscription.utils"; //Generate emojis list export function generateEmojiList(): string[] { @@ -30,7 +30,7 @@ export async function addressToEmoji(text: string): Promise { //Adress to Hash const encoder = new TextEncoder(); const data = encoder.encode(text); - const hashBuffer = await crypto.subtle.digest('SHA-256', data); + const hashBuffer = await crypto.subtle.digest("SHA-256", data); const hash = new Uint8Array(hashBuffer); const bytes = hash.slice(-4); @@ -39,17 +39,19 @@ export async function addressToEmoji(text: string): Promise { const emojiList = generateEmojiList(); const emojis = Array.from(bytes) .map((byte) => emojiList[byte]) - .join(''); + .join(""); return emojis; } //Get emojis from other device async function emojisPairingRequest() { try { - const container = getCorrectDOM('login-4nk-component') as HTMLElement; + const container = getCorrectDOM("login-4nk-component") as HTMLElement; - const urlParams: URLSearchParams = new URLSearchParams(window.location.search); - const sp_adress: string | null = urlParams.get('sp_address'); + const urlParams: URLSearchParams = new URLSearchParams( + window.location.search + ); + const sp_adress: string | null = urlParams.get("sp_address"); if (!sp_adress) { // console.error("No 'sp_adress' parameter found in the URL."); @@ -57,10 +59,10 @@ async function emojisPairingRequest() { } const emojis = await addressToEmoji(sp_adress); - const emojiDisplay = container?.querySelector('.pairing-request'); + const emojiDisplay = container?.querySelector(".pairing-request"); if (emojiDisplay) { - emojiDisplay.textContent = '(Request from: ' + emojis + ')'; + emojiDisplay.textContent = "(Request from: " + emojis + ")"; } } catch (err) { console.error(err); @@ -69,11 +71,11 @@ async function emojisPairingRequest() { // Display address emojis and other device emojis export async function displayEmojis(text: string) { - console.log('🚀 ~ Services ~ adressToEmoji'); + console.log("🚀 ~ Services ~ adressToEmoji"); try { - const container = getCorrectDOM('login-4nk-component') as HTMLElement; + const container = getCorrectDOM("login-4nk-component") as HTMLElement; const emojis = await addressToEmoji(text); - const emojiDisplay = container?.querySelector('.emoji-display'); + const emojiDisplay = container?.querySelector(".emoji-display"); if (emojiDisplay) { emojiDisplay.textContent = emojis; @@ -89,13 +91,19 @@ export async function displayEmojis(text: string) { // Verify Other address export function initAddressInput() { - const container = getCorrectDOM('login-4nk-component') as HTMLElement; - const addressInput = container.querySelector('#addressInput') as HTMLInputElement; - const emojiDisplay = container.querySelector('#emoji-display-2'); - const okButton = container.querySelector('#okButton') as HTMLButtonElement; - const createButton = container.querySelector('#createButton') as HTMLButtonElement; - const actionButton = container.querySelector('#actionButton') as HTMLButtonElement; - addSubscription(addressInput, 'input', async () => { + const container = getCorrectDOM("login-4nk-component") as HTMLElement; + const addressInput = container.querySelector( + "#addressInput" + ) as HTMLInputElement; + const emojiDisplay = container.querySelector("#emoji-display-2"); + const okButton = container.querySelector("#okButton") as HTMLButtonElement; + const createButton = container.querySelector( + "#createButton" + ) as HTMLButtonElement; + const actionButton = container.querySelector( + "#actionButton" + ) as HTMLButtonElement; + addSubscription(addressInput, "input", async () => { let address = addressInput.value; // Vérifie si l'adresse est une URL @@ -103,7 +111,7 @@ export function initAddressInput() { const url = new URL(address); // Si c'est une URL valide, extraire le paramètre sp_address const urlParams = new URLSearchParams(url.search); - const extractedAddress = urlParams.get('sp_address') || ''; // Prend sp_address ou une chaîne vide + const extractedAddress = urlParams.get("sp_address") || ""; // Prend sp_address ou une chaîne vide if (extractedAddress) { address = extractedAddress; @@ -119,20 +127,20 @@ export function initAddressInput() { emojiDisplay.textContent = emojis; } if (okButton) { - okButton.style.display = 'inline-block'; + okButton.style.display = "inline-block"; } } else { if (emojiDisplay) { - emojiDisplay.textContent = ''; + emojiDisplay.textContent = ""; } if (okButton) { - okButton.style.display = 'none'; + okButton.style.display = "none"; } } }); if (createButton) { - addSubscription(createButton, 'click', () => { + addSubscription(createButton, "click", () => { onCreateButtonClick(); }); } @@ -142,14 +150,14 @@ async function onCreateButtonClick() { try { await prepareAndSendPairingTx(); // Don't call confirmPairing immediately - it will be called when the pairing process is complete - console.log('Pairing process initiated. Waiting for completion...'); + console.log("Pairing process initiated. Waiting for completion..."); } catch (e) { console.error(`onCreateButtonClick error: ${e}`); } } // Une constante est plus claire qu'une 'magic string' ("") -const DEFAULT_PAIRING_PAYLOAD = ''; +const DEFAULT_PAIRING_PAYLOAD = ""; export async function prepareAndSendPairingTx(): Promise { const service = await Services.getInstance(); @@ -157,18 +165,22 @@ export async function prepareAndSendPairingTx(): Promise { try { // 1. Création du processus d'appairage // const relayAddress = service.getAllRelays(); // <-- Cette variable n'était pas utilisée - const createPairingProcessReturn = await service.createPairingProcess(DEFAULT_PAIRING_PAYLOAD, []); + const createPairingProcessReturn = await service.createPairingProcess( + DEFAULT_PAIRING_PAYLOAD, + [] + ); if (!createPairingProcessReturn.updated_process) { - throw new Error('createPairingProcess returned an empty new process'); + throw new Error("createPairingProcess returned an empty new process"); } // Utilisation du "destructuring" pour assigner les variables - const { process_id: pairingId, current_process: process } = createPairingProcessReturn.updated_process; + const { process_id: pairingId, current_process: process } = + createPairingProcessReturn.updated_process; // Ajout d'une vérification pour éviter les erreurs si states est vide if (!process.states || process.states.length === 0) { - throw new Error('Le processus reçu ne contient aucun état (state)'); + throw new Error("Le processus reçu ne contient aucun état (state)"); } const stateId = process.states[0].state_id; @@ -176,11 +188,12 @@ export async function prepareAndSendPairingTx(): Promise { await service.ensureConnections(process, stateId); // 3. Mettre à jour l'état du service - service.setProcessId(pairingId); - service.setStateId(stateId); + await service.setProcessId(pairingId); + await service.setStateId(stateId); // 4. Appairer le 'device' - service.pairDevice(pairingId, [service.getDeviceAddress()]); + const myAddress = await service.getDeviceAddress(); + await service.pairDevice(pairingId, [myAddress]); // 5. Mettre à jour la BDD try { @@ -190,13 +203,19 @@ export async function prepareAndSendPairingTx(): Promise { await service.saveDeviceInDatabase(currentDevice); } } catch (err) { - console.error('Échec non-critique de la mise à jour BDD (pairing_process_commitment):', err); + console.error( + "Échec non-critique de la mise à jour BDD (pairing_process_commitment):", + err + ); } // 6. Gérer les étapes suivantes du processus await service.handleApiReturn(createPairingProcessReturn); - const createPrdUpdateReturn = await service.createPrdUpdate(pairingId, stateId); + const createPrdUpdateReturn = await service.createPrdUpdate( + pairingId, + stateId + ); await service.handleApiReturn(createPrdUpdateReturn); const approveChangeReturn = await service.approveChange(pairingId, stateId); @@ -212,13 +231,12 @@ export async function prepareAndSendPairingTx(): Promise { export async function generateCreateBtn() { try { // Generate CreateBtn - const container = getCorrectDOM('login-4nk-component') as HTMLElement; - const createBtn = container?.querySelector('.create-btn'); + const container = getCorrectDOM("login-4nk-component") as HTMLElement; + const createBtn = container?.querySelector(".create-btn"); if (createBtn) { - createBtn.textContent = 'CREATE'; + createBtn.textContent = "CREATE"; } } catch (err) { console.error(err); } } -