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 {
|
try {
|
||||||
// Étape 1: Initialisation des services
|
// Étape 1: Vérifier les prérequis AVANT d'initialiser Services
|
||||||
updateStatus('🔄 Initialisation des services...', 'loading');
|
updateStatus('🔍 Vérification des prérequis...', 'loading');
|
||||||
updateProgress(10);
|
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
|
let services: any; // Déclarer services au niveau supérieur
|
||||||
|
|
||||||
try {
|
try {
|
||||||
@ -110,32 +132,6 @@ document.addEventListener('DOMContentLoaded', async () => {
|
|||||||
throw error;
|
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
|
// Étape 3: Sauvegarde du wallet avec état birthday_waiting
|
||||||
updateStatus('💰 Sauvegarde du portefeuille...', 'loading');
|
updateStatus('💰 Sauvegarde du portefeuille...', 'loading');
|
||||||
updateProgress(60);
|
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)
|
// Vérifier si la date anniversaire est configurée (wallet avec birthday > 0)
|
||||||
if (device.sp_wallet.birthday && device.sp_wallet.birthday > 0) {
|
if (device.sp_wallet.birthday && device.sp_wallet.birthday > 0) {
|
||||||
console.log('🎂 Birthday is configured, checking pairing status...');
|
console.log('🎂 Birthday is configured, navigating to pairing');
|
||||||
|
// Ne pas vérifier le pairing ici pour éviter d'initialiser WebAssembly
|
||||||
// Vérifier l'état du pairing (nécessite Services mais seulement si tout est prêt)
|
// La page home.ts vérifiera le pairing si nécessaire
|
||||||
try {
|
await navigate('home');
|
||||||
const services = await Services.getInstance();
|
return;
|
||||||
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;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Wallet existe mais birthday pas configuré
|
// Wallet existe mais birthday pas configuré
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user