fix: reorder prerequisites check before Services initialization
**Motivations :** - Éviter d'initialiser WebAssembly si les prérequis ne sont pas remplis - Réduire la consommation mémoire en vérifiant d'abord les prérequis légers - Éviter le router d'initialiser Services lors de la vérification du pairing **Modifications :** - Déplacer la vérification PBKDF2 AVANT l'initialisation de Services dans wallet-setup.ts - Supprimer l'initialisation de Services dans router.ts lors de la vérification du pairing - Router redirige maintenant directement vers home sans vérifier le pairing **Pages affectées :** - src/router.ts (supprime Services.getInstance() lors de la vérification du pairing) - src/pages/wallet-setup/wallet-setup.ts (vérifie prérequis avant Services)
This commit is contained in:
parent
1f9100e3fe
commit
43a5fadbc8
@ -48,10 +48,32 @@ document.addEventListener('DOMContentLoaded', async () => {
|
||||
}
|
||||
|
||||
try {
|
||||
// Étape 1: Initialisation des services
|
||||
updateStatus('🔄 Initialisation des services...', 'loading');
|
||||
// Étape 1: Vérifier les prérequis AVANT d'initialiser Services
|
||||
updateStatus('🔍 Vérification des prérequis...', 'loading');
|
||||
updateProgress(10);
|
||||
|
||||
// CRITICAL: wallet-setup ne doit PAS générer de credentials
|
||||
// Les credentials et clé PBKDF2 doivent être créés dans security-setup
|
||||
// On vérifie que la clé PBKDF2 existe dans le store pbkdf2keys
|
||||
console.log('🔐 Checking for existing PBKDF2 key in pbkdf2keys store...');
|
||||
|
||||
const pbkdf2KeyResult = await checkPBKDF2Key();
|
||||
if (!pbkdf2KeyResult) {
|
||||
console.log('⚠️ No PBKDF2 key found in pbkdf2keys store, redirecting to security-setup...');
|
||||
updateStatus('⚠️ Redirection vers la configuration de sécurité...', 'loading');
|
||||
setTimeout(() => {
|
||||
window.location.href = '/src/pages/security-setup/security-setup.html';
|
||||
}, 1000);
|
||||
return;
|
||||
}
|
||||
|
||||
const currentMode = pbkdf2KeyResult.mode;
|
||||
console.log('✅ Prerequisites verified: PBKDF2 key found in pbkdf2keys store for mode:', currentMode);
|
||||
|
||||
// Étape 2: Initialisation des services (uniquement si les prérequis sont OK)
|
||||
updateStatus('🔄 Initialisation des services...', 'loading');
|
||||
updateProgress(20);
|
||||
|
||||
let services: any; // Déclarer services au niveau supérieur
|
||||
|
||||
try {
|
||||
@ -110,32 +132,6 @@ document.addEventListener('DOMContentLoaded', async () => {
|
||||
throw error;
|
||||
}
|
||||
|
||||
// Étape 2: Génération des credentials sécurisés
|
||||
updateStatus('🔐 Génération des clés de sécurité...', 'loading');
|
||||
updateProgress(30);
|
||||
|
||||
// Vérifier les prérequis en base de données
|
||||
updateStatus('🔍 Vérification des prérequis...', 'loading');
|
||||
updateProgress(20);
|
||||
|
||||
// CRITICAL: wallet-setup ne doit PAS générer de credentials
|
||||
// Les credentials et clé PBKDF2 doivent être créés dans security-setup
|
||||
// On vérifie que la clé PBKDF2 existe dans le store pbkdf2keys
|
||||
console.log('🔐 Checking for existing PBKDF2 key in pbkdf2keys store...');
|
||||
|
||||
const pbkdf2KeyResult = await checkPBKDF2Key();
|
||||
if (!pbkdf2KeyResult) {
|
||||
console.log('⚠️ No PBKDF2 key found in pbkdf2keys store, redirecting to security-setup...');
|
||||
updateStatus('⚠️ Redirection vers la configuration de sécurité...', 'loading');
|
||||
setTimeout(() => {
|
||||
window.location.href = '/src/pages/security-setup/security-setup.html';
|
||||
}, 1000);
|
||||
return;
|
||||
}
|
||||
|
||||
const currentMode = pbkdf2KeyResult.mode;
|
||||
console.log('✅ Prerequisites verified: PBKDF2 key found in pbkdf2keys store for mode:', currentMode);
|
||||
|
||||
// Étape 3: Sauvegarde du wallet avec état birthday_waiting
|
||||
updateStatus('💰 Sauvegarde du portefeuille...', 'loading');
|
||||
updateProgress(60);
|
||||
|
||||
@ -62,27 +62,11 @@ export async function checkStorageStateAndNavigate(): Promise<void> {
|
||||
|
||||
// Vérifier si la date anniversaire est configurée (wallet avec birthday > 0)
|
||||
if (device.sp_wallet.birthday && device.sp_wallet.birthday > 0) {
|
||||
console.log('🎂 Birthday is configured, checking pairing status...');
|
||||
|
||||
// Vérifier l'état du pairing (nécessite Services mais seulement si tout est prêt)
|
||||
try {
|
||||
const services = await Services.getInstance();
|
||||
const isPaired = services.isPaired();
|
||||
|
||||
if (isPaired) {
|
||||
console.log('✅ Device is paired, navigating to account page');
|
||||
await navigate('account');
|
||||
return;
|
||||
}
|
||||
|
||||
console.log('🔗 Not paired yet, navigating to pairing');
|
||||
await navigate('home');
|
||||
return;
|
||||
} catch (error) {
|
||||
console.log('⚠️ Could not check pairing status, navigating to home');
|
||||
await navigate('home');
|
||||
return;
|
||||
}
|
||||
console.log('🎂 Birthday is configured, navigating to pairing');
|
||||
// Ne pas vérifier le pairing ici pour éviter d'initialiser WebAssembly
|
||||
// La page home.ts vérifiera le pairing si nécessaire
|
||||
await navigate('home');
|
||||
return;
|
||||
}
|
||||
|
||||
// Wallet existe mais birthday pas configuré
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user