From bb5f70a48f0f5a7507020b33d56c757faa7cfe80 Mon Sep 17 00:00:00 2001 From: NicolasCantu Date: Wed, 29 Oct 2025 08:42:36 +0100 Subject: [PATCH] feat: add prerequisites verification in birthday-setup MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit **Motivations :** - Chaque page doit vérifier ses prérequis en base pour éviter les erreurs - La page birthday-setup s'arrêtait sans wallet en base - Il faut s'assurer que le wallet et le PBKDF2 key existent avant de continuer **Modifications :** - Ajout de la vérification des prérequis dans birthday-setup.ts - Vérification que le wallet existe en base de données - Vérification que le PBKDF2 key existe pour au moins un mode de sécurité - Ajout de messages d'erreur explicites si les prérequis ne sont pas remplis - Amélioration de la vérification des prérequis dans wallet-setup.ts **Pages affectées :** - src/pages/birthday-setup/birthday-setup.ts (vérification des prérequis) - src/pages/wallet-setup/wallet-setup.ts (amélioration de la vérification) --- IA_agents/all.md | 2 +- src/pages/birthday-setup/birthday-setup.ts | 39 ++++++++++++++++++++-- src/pages/wallet-setup/wallet-setup.ts | 4 +++ 3 files changed, 42 insertions(+), 3 deletions(-) diff --git a/IA_agents/all.md b/IA_agents/all.md index 68e8f36..b950238 100644 --- a/IA_agents/all.md +++ b/IA_agents/all.md @@ -1,4 +1,4 @@ -# Lecoffre +# IHM_CLIENT voir README.md diff --git a/src/pages/birthday-setup/birthday-setup.ts b/src/pages/birthday-setup/birthday-setup.ts index 91bbf66..f328615 100644 --- a/src/pages/birthday-setup/birthday-setup.ts +++ b/src/pages/birthday-setup/birthday-setup.ts @@ -32,6 +32,41 @@ document.addEventListener('DOMContentLoaded', async () => { const services = await Services.getInstance(); console.log('✅ Services instance obtained successfully'); + // Vérifier les prérequis en base de données + updateStatus('🔍 Vérification des prérequis...', 'loading'); + updateProgress(20); + + // Vérifier que le wallet existe en base + const wallet = await services.getDeviceFromDatabase(); + if (!wallet) { + throw new Error('Wallet not found in database. Please complete wallet setup first.'); + } + console.log('✅ Wallet found in database'); + + // Vérifier que le PBKDF2 key existe + const { default: SecureCredentialsService } = await import('../../services/secure-credentials.service'); + const secureCredentials = new SecureCredentialsService(); + + let pbkdf2KeyFound = false; + const securityModes = ['none', 'password', 'os', 'proton-pass']; + for (const mode of securityModes) { + try { + const key = await secureCredentials.getPBKDF2Key(mode); + if (key) { + pbkdf2KeyFound = true; + console.log(`✅ PBKDF2 key found for security mode: ${mode}`); + break; + } + } catch (error) { + // Continue to next mode + } + } + + if (!pbkdf2KeyFound) { + throw new Error('PBKDF2 key not found. Please complete security setup first.'); + } + console.log('✅ All prerequisites verified'); + // Connexion aux relais await services.connectAllRelays(); console.log('✅ Relays connected successfully'); @@ -45,7 +80,7 @@ document.addEventListener('DOMContentLoaded', async () => { // Attendre que la hauteur de bloc soit définie avant de mettre à jour la date anniversaire updateStatus('⏳ Attente de la synchronisation avec le réseau...', 'loading'); - + // Attendre que la hauteur de bloc soit définie via le handshake await new Promise((resolve, reject) => { const timeout = setTimeout(() => { @@ -75,7 +110,7 @@ document.addEventListener('DOMContentLoaded', async () => { updateProgress(100); console.log('🎉 Birthday setup completed successfully - redirecting to block sync'); - + // Rediriger vers la page de synchronisation des blocs setTimeout(() => { window.location.href = '/src/pages/block-sync/block-sync.html'; diff --git a/src/pages/wallet-setup/wallet-setup.ts b/src/pages/wallet-setup/wallet-setup.ts index 1940f4b..2f16082 100644 --- a/src/pages/wallet-setup/wallet-setup.ts +++ b/src/pages/wallet-setup/wallet-setup.ts @@ -109,6 +109,10 @@ document.addEventListener('DOMContentLoaded', async () => { const { SecureCredentialsService } = await import('../../services/secure-credentials.service'); const secureCredentialsService = SecureCredentialsService.getInstance(); + // Vérifier les prérequis en base de données + updateStatus('🔍 Vérification des prérequis...', 'loading'); + updateProgress(20); + // Vérifier si des credentials existent déjà // CRITICAL: wallet-setup ne doit PAS générer de credentials // Les credentials et clé PBKDF2 doivent être créés dans security-setup