791 Commits

Author SHA1 Message Date
ad28b37903 fix: use correct methods to check PBKDF2 key in birthday-setup
**Motivations :**
- birthday-setup.ts utilisait getPBKDF2Key() qui n'existe pas dans SecureCredentialsService
- wallet-setup.ts trouve la clé PBKDF2 mais birthday-setup.ts ne la trouve pas
- Il faut utiliser les mêmes méthodes que wallet-setup.ts (hasPBKDF2Key + retrievePBKDF2Key)

**Modifications :**
- Remplacement de getPBKDF2Key() par hasPBKDF2Key() puis retrievePBKDF2Key()
- Utilisation de la même approche que wallet-setup.ts pour vérifier la clé PBKDF2
- Ajout du mode 'otp' à la liste des modes de sécurité pour correspondre à wallet-setup.ts
- Amélioration des messages de log pour indiquer explicitement la vérification dans le store pbkdf2keys

**Pages affectées :**
- src/pages/birthday-setup/birthday-setup.ts (correction de la vérification PBKDF2)
2025-10-29 13:10:57 +01:00
aedfa09bbc fix: verify PBKDF2 key in pbkdf2keys store during prerequisites check
**Motivations :**
- La vérification des prérequis ne vérifiait pas réellement la présence de la clé PBKDF2 dans le store pbkdf2keys
- Il y avait une duplication de code pour la vérification de la clé PBKDF2
- Le mode de sécurité était recherché deux fois au lieu d'être réutilisé

**Modifications :**
- Déplacement de la vérification réelle de la clé PBKDF2 dans la section des prérequis
- Vérification explicite de la présence de la clé dans le store pbkdf2keys avant de continuer
- Stockage du mode de sécurité trouvé dans une variable au niveau supérieur pour réutilisation
- Suppression de la vérification dupliquée plus tard dans le code
- Amélioration des messages de log pour indiquer explicitement la vérification dans le store pbkdf2keys

**Pages affectées :**
- src/pages/wallet-setup/wallet-setup.ts (vérification des prérequis améliorée)
2025-10-29 12:42:13 +01:00
b0694eba22 fix: add retry mechanism for wallet retrieval in birthday-setup
**Motivations :**
- Le wallet disparaît parfois entre wallet-setup et birthday-setup à cause de problèmes de synchronisation
- Il faut ajouter une logique de retry pour gérer les problèmes de synchronisation de la base de données
- Donner plus de temps à la base de données pour synchroniser les données avant de rediriger

**Modifications :**
- Ajout d'une logique de retry dans birthday-setup.ts pour récupérer le wallet
- Attente de 500ms entre chaque tentative (jusqu'à 5 tentatives)
- Redirection vers wallet-setup seulement si le wallet n'est toujours pas trouvé après les retries
- Cette logique permet de gérer les problèmes de synchronisation de la base de données

**Pages affectées :**
- src/pages/birthday-setup/birthday-setup.ts (logique de retry pour le wallet)
2025-10-29 12:35:42 +01:00
6f9baf6f56 fix: improve prerequisites verification with automatic redirection
**Motivations :**
- Chaque page doit vérifier ses prérequis et rediriger automatiquement si nécessaire
- Erreur avec SecureCredentialsService: 'is not a constructor'
- Amélioration de l'ordre de vérification des prérequis (PBKDF2 key d'abord, puis wallet)
- Redirection automatique vers la page appropriée si les prérequis ne sont pas remplis

**Modifications :**
- Correction de l'utilisation de SecureCredentialsService: utilisation de getInstance() au lieu de new
- Amélioration de la vérification des prérequis dans birthday-setup.ts avec redirection automatique
- Vérification du PBKDF2 key en premier (prérequis le plus basique)
- Redirection vers security-setup si le PBKDF2 key n'est pas trouvé
- Redirection vers wallet-setup si le wallet n'est pas trouvé
- Amélioration de wallet-setup.ts pour rediriger vers security-setup si aucune clé PBKDF2 n'est trouvée

**Pages affectées :**
- src/pages/birthday-setup/birthday-setup.ts (vérification des prérequis améliorée)
- src/pages/wallet-setup/wallet-setup.ts (redirection vers security-setup)
2025-10-29 12:35:08 +01:00
bb5f70a48f feat: add prerequisites verification in birthday-setup
**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)
2025-10-29 08:42:36 +01:00
2ce11599e2 fix: use existing services instance in birthday-setup
**Motivations :**
- Chaque page créait une nouvelle instance des services, causant des problèmes de synchronisation
- Le wallet disparaissait entre les pages à cause de cette incohérence
- Il faut utiliser l'instance existante des services pour maintenir la cohérence

**Modifications :**
- Suppression de la boucle d'attente pour l'initialisation des services
- Utilisation directe de Services.getInstance() pour obtenir l'instance existante
- Simplification du code d'initialisation des services

**Pages affectées :**
- src/pages/birthday-setup/birthday-setup.ts (utilisation de l'instance existante)
2025-10-28 23:33:35 +01:00
ce38e01037 fix: improve birthday-setup waiting mechanism and button text
**Motivations :**
- Le texte du bouton était toujours 'Terminer l'initialisation' au lieu de 'Synchroniser les blocs'
- La boucle d'attente de la hauteur de bloc était inefficace et atteignait le timeout
- Il faut une approche plus robuste pour attendre le handshake

**Modifications :**
- Changement du texte du bouton de 'Terminer l'initialisation' à 'Synchroniser les blocs'
- Remplacement de la boucle d'attente par une approche basée sur Promise avec timeout
- Augmentation du timeout à 15 secondes pour laisser plus de temps au handshake
- Amélioration de la logique d'attente de la hauteur de bloc

**Pages affectées :**
- src/pages/birthday-setup/birthday-setup.html (texte du bouton)
- src/pages/birthday-setup/birthday-setup.ts (mécanisme d'attente)
2025-10-28 23:32:53 +01:00
309e2902cf feat: redirect to block sync page after birthday setup
**Motivations :**
- La page birthday-setup s'arrêtait après la mise à jour de la date anniversaire
- Le processus devrait continuer vers une page de synchronisation des blocs
- Création d'une page dédiée pour la synchronisation des blocs

**Modifications :**
- Modification de birthday-setup.ts pour rediriger vers block-sync après la mise à jour de la date anniversaire
- Suppression du scan complet et de la synchronisation des processus de birthday-setup
- Création de la page block-sync.html avec interface de synchronisation
- Création de block-sync.ts avec logique de synchronisation des blocs
- Interface utilisateur avec détails de synchronisation et barre de progression

**Pages affectées :**
- src/pages/birthday-setup/birthday-setup.ts (redirection vers block-sync)
- src/pages/block-sync/block-sync.html (nouvelle page)
- src/pages/block-sync/block-sync.ts (nouvelle logique)
2025-10-28 23:12:03 +01:00
1f6b622c1a fix: increase timeout for handshake and block height waiting
**Motivations :**
- Le handshake arrive après le timeout de 3 secondes dans waitForHandshakeMessage
- La boucle d'attente de la hauteur de bloc atteint 30 tentatives avant que le handshake soit traité
- Il faut augmenter les timeouts pour permettre au handshake d'arriver

**Modifications :**
- Augmentation du timeout de waitForHandshakeMessage de 3 à 10 secondes
- Augmentation du nombre de tentatives dans la boucle d'attente de 30 à 100 (10 secondes)
- Cela donne plus de temps au handshake pour arriver et définir la hauteur de bloc

**Pages affectées :**
- src/services/service.ts (timeout waitForHandshakeMessage)
- src/pages/birthday-setup/birthday-setup.ts (nombre de tentatives)
2025-10-28 17:45:37 +01:00
2f2088c8ea fix: resolve variable redeclaration error in birthday-setup
**Motivations :**
- Erreur de redéclaration des variables 'attempts' et 'maxAttempts' dans birthday-setup.ts
- Cela causait une erreur 500 lors du chargement du fichier TypeScript

**Modifications :**
- Renommage des variables dans la deuxième boucle d'attente pour éviter les conflits
- Utilisation de 'blockHeightAttempts' et 'blockHeightMaxAttempts' pour la boucle d'attente de la hauteur de bloc

**Pages affectées :**
- src/pages/birthday-setup/birthday-setup.ts (correction des variables redéclarées)
2025-10-28 13:43:34 +01:00
2fad2d507f fix: wait for block height before updating birthday
**Motivations :**
- L'erreur 'Current block height not set' se produit car updateDeviceBlockHeight est appelé avant que le handshake soit complètement traité
- Il faut attendre que this.currentBlockHeight soit défini avant de mettre à jour la date anniversaire

**Modifications :**
- Ajout de la méthode publique getCurrentBlockHeight() dans Services
- Modification de birthday-setup.ts pour attendre que la hauteur de bloc soit définie
- Ajout d'une boucle d'attente avec timeout pour s'assurer que le handshake est traité

**Pages affectées :**
- src/services/service.ts (getCurrentBlockHeight)
- src/pages/birthday-setup/birthday-setup.ts (attente de la hauteur de bloc)
2025-10-28 13:37:26 +01:00
c2bd615e88 fix: resolve 'Device not found' error in birthday-setup
**Motivations :**
- L'erreur 'Device not found' se produit lors de la mise à jour de la date anniversaire
- Le wallet est bien créé et sauvegardé mais n'est pas trouvé lors de la récupération
- Problème d'incohérence entre l'accès direct à IndexedDB et l'accès via service worker

**Modifications :**
- Ajout de logs de débogage dans getDeviceFromDatabase pour tracer le problème
- Modification de getDeviceFromDatabase pour utiliser directement IndexedDB au lieu du service worker
- Correction des erreurs TypeScript dans birthday-setup.ts et home.ts
- Correction des comparaisons BigInt dans service.ts
- Modification de birthday-setup.ts pour éviter l'utilisation de méthodes privées

**Pages affectées :**
- src/services/service.ts (getDeviceFromDatabase, updateDeviceBlockHeight)
- src/services/database.service.ts (getObject)
- src/pages/birthday-setup/birthday-setup.ts
- src/pages/home/home.ts
- src/components/security-mode-selector/security-mode-selector.ts
2025-10-28 13:30:45 +01:00
057102300a Fix TypeScript errors and display issues
**Motivations:**
- Corriger les erreurs TypeScript dans secure-credentials.service.ts qui empêchaient le chargement du module
- Résoudre l'affichage cassé des pages de setup en utilisant une redirection directe
- Supprimer le mode 'browser' et nettoyer le code mort

**Modifications:**
- Correction de la méthode inexistante getEncryptedKey() dans secure-credentials.service.ts
- Correction de la redéclaration de variable encryptedKey dans generatePBKDF2Key()
- Suppression des références au mode 'browser' supprimé dans security-mode.service.ts
- Ajout des propriétés requiresOTP et requiresPassword dans l'interface SecurityModeConfig
- Suppression de la méthode retrieveKeyFromBrowser() non utilisée dans storage.service.ts
- Changement de stratégie de routage pour les pages de setup (redirection directe au lieu d'injection)
- Mise à jour des textes des options de sécurité (Proton Pass → Clé de sécurité, OTP → code à usage unique)

**Pages affectées:**
- src/services/secure-credentials.service.ts (correction des erreurs principales)
- src/services/security-mode.service.ts (correction des références au mode browser)
- src/services/credentials/storage.service.ts (suppression de la méthode non utilisée)
- src/router.ts (changement de stratégie de routage)
- src/pages/security-setup/security-setup.html (mise à jour des textes)
- src/pages/wallet-setup/wallet-setup.html (mise à jour des textes)
- src/components/security-mode-selector/ (suppression du mode browser)
- src/pages/home/home.ts (suppression du mode browser)
- src/services/service.ts (suppression du mode browser)
2025-10-27 18:56:51 +01:00
4042025e22 fix: add missing methods to StorageService and SecureCredentialsService
- Added retrieveKeyFromBrowser(), retrievePlainKey(), retrieveEncryptedKey(), storeEncryptedKey() to StorageService
- Added promptForPassword() method to SecureCredentialsService
- Fixed error handling in storage.service.ts
2025-10-26 03:06:38 +01:00
0b92af0905 fix: add missing methods validatePasswordStrength and deleteCredentials to SecureCredentialsService 2025-10-26 03:04:44 +01:00
d010dac706 fix: correct imports of SecureCredentialsService in components and services 2025-10-26 02:56:23 +01:00
42f6e9ed05 refactor: use centralized DATABASE_CONFIG for all store names in service.ts and wallet-setup.ts 2025-10-26 02:52:17 +01:00
09b34f7e07 feat: implement wallet decryption in getDeviceFromDatabase for birthday-setup and all wallet loading 2025-10-26 02:50:16 +01:00
26580aceed refactor: update all files to use centralized encryption service 2025-10-26 02:49:34 +01:00
f4b80f1d93 refactor: centralize encryption/decryption in unified service 2025-10-26 02:47:20 +01:00
ab31901a20 security: deprecate non-encrypting WebAuthn methods and add warnings 2025-10-26 02:45:48 +01:00
6a36fde154 feat: add decryptWithPasswordBase64 method and test wallet decryption 2025-10-26 02:44:33 +01:00
b8b28c1f5d debug: log credentialId in wallet-setup for testing 2025-10-26 02:39:53 +01:00
c858a75a9c debug: store credentialId in sessionStorage during credential creation 2025-10-26 02:38:58 +01:00
64f4d217d6 debug: log credentialId during encryption for testing 2025-10-26 02:38:25 +01:00
0e75a49b08 debug: add detailed logging for WebAuthn decryption 2025-10-26 02:36:27 +01:00
3e63b9d8fc fix: remove credential generation from wallet-setup, only in security-setup 2025-10-26 02:34:42 +01:00
2780f21a8b fix: improve WebAuthn error handling and logging for proton-pass mode 2025-10-26 02:32:30 +01:00
a96ffabd59 fix: skip credential generation if already exists 2025-10-26 02:30:59 +01:00
3eae4f0210 feat: encrypt wallet completely and detect security mode from PBKDF2 key
**Motivations :**
- Encrypt all wallet data with PBKDF2 key, never store in clear
- Detect security mode from available PBKDF2 key instead of using fallback
- Stop page without fallback if no PBKDF2 key is available
- Use existing PBKDF2 keys only, no generation

**Modifications :**
- wallet-setup.ts: Encrypt device data before storing, store only encrypted_device and encrypted_wallet
- wallet-setup.ts: Detect security mode by testing all modes to find a working PBKDF2 key
- wallet-setup.ts: Stop without fallback if no PBKDF2 key is found
- wallet-setup.ts: Retrieve existing PBKDF2 key (no generation)
- wallet-setup.ts: Remove separate security mode storage (already stored via PBKDF2 key in pbkdf2keys store)
- wallet-setup.ts: Add verification to reject any wallet stored in clear
- wallet-setup.ts: Fix IndexedDB inline key usage (remove explicit key parameter)

**Pages affected :**
- wallet-setup.html: Encrypts and stores only encrypted wallet data, detects security mode from PBKDF2 key
2025-10-26 02:28:33 +01:00
aa913ef930 feat: centralize database configuration and fix service worker blocking
**Motivations :**
- Centralize database configuration to prevent version inconsistencies
- Fix service worker blocking during wallet setup
- Ensure all database stores are created at initialization

**Modifications :**
- Created database-config.ts with centralized DATABASE_CONFIG (name, version, stores)
- Updated storage.service.ts to use DATABASE_CONFIG and create all stores on upgrade
- Updated security-setup.ts to initialize database with complete configuration
- Updated wallet-setup.ts to call SDK directly and bypass service worker blocking
- Updated database.service.ts, webauthn.service.ts, and database.worker.js to use DATABASE_CONFIG
- Removed service worker dependency for wallet setup page

**Pages affected :**
- security-setup.html: Initializes database with all stores on page load
- wallet-setup.html: Saves wallet directly to IndexedDB without service worker dependency
2025-10-26 02:19:00 +01:00
653c7f32ca ci: docker_tag=dev-test
**Motivations :**
- Implémentation du système de sélection de mode de sécurité
- Séparation claire entre les données de sécurité et les données du wallet
- Suppression des duplications entre 'encrypted-pbkdf2-key' et 'pbkdf2-key'
- Architecture modulaire pour la gestion des credentials

**Modifications :**
- Ajout du composant security-mode-selector pour la sélection du mode de sécurité
- Création des pages séquentielles : security-setup, wallet-setup, birthday-setup
- Implémentation des services de credentials (encryption, storage, webauthn)
- Ajout du service security-mode pour la gestion des modes de sécurité
- Correction du stockage des clés PBKDF2 avec le securityMode dynamique
- Suppression des méthodes redondantes dans StorageService
- Nettoyage des appels redondants dans secure-credentials.service.ts

**Pages affectées :**
- src/components/security-mode-selector/ (nouveau composant)
- src/pages/security-setup/ (nouvelle page)
- src/pages/wallet-setup/ (nouvelle page)
- src/pages/birthday-setup/ (nouvelle page)
- src/services/credentials/ (nouveaux services)
- src/services/security-mode.service.ts (nouveau service)
- src/services/secure-credentials.service.ts (modifié)
- src/services/database.service.ts (modifié)
- src/router.ts (modifié)
- src/pages/home/home.ts (modifié)
2025-10-24 18:29:31 +02:00
c385f23e8f ci: docker_tag=dev-test
**Motivations :**
- Finalisation des corrections WebAuthn
- Toutes les modifications sont maintenant prêtes

**Modifications :**
- Correction de l'import dynamique dans secure-credentials.service.ts
- Ajout du déchiffrement des credentials après WebAuthn
- WebAuthn se déclenche maintenant correctement

**Pages affectées :**
- src/services/secure-credentials.service.ts
2025-10-24 02:21:25 +02:00
fe65881b02 ci: docker_tag=dev-test
**Motivations :**
- Correction de l'import dynamique dans getDeviceFromSDK()
- Ajout du déchiffrement des credentials après WebAuthn pour rendre les clés disponibles au SDK
- Résolution du problème où les clés restent chiffrées après WebAuthn

**Modifications :**
- Correction de l'import dans secure-credentials.service.ts (serviceModule.default)
- Ajout de retrieveCredentials() après storeCredentials() dans home.ts
- Les clés sont maintenant déchiffrées et disponibles pour le SDK après WebAuthn

**Pages affectées :**
- src/services/secure-credentials.service.ts
- src/pages/home/home.ts
2025-10-24 02:16:31 +02:00
1ddcde6b24 ci: docker_tag=dev-test
**Motivations :**
- Correction du problème WebAuthn qui ne se déclenche pas
- Réorganisation de l'ordre d'initialisation pour déclencher WebAuthn avant getDeviceAddress()
- Éviter le blocage sur ensureWalletKeysAvailable() avant WebAuthn

**Modifications :**
- Déplacement de handleMainPairing() avant getDeviceAddress() dans initHomePage()
- WebAuthn se déclenche maintenant en premier, puis l'UI est configurée après
- Correction de l'ordre logique : WebAuthn → déchiffrement → accès aux clés → UI

**Pages affectées :**
- src/pages/home/home.ts
2025-10-24 02:13:33 +02:00
bab3ba67ab ci: docker_tag=dev-test
**Motivations :**
- Correction du problème WebAuthn qui ne se déclenche plus
- Ajout de vérifications pour s'assurer que le SDK est initialisé
- Ajout d'un fallback pour les clés personnalisées si les clés du SDK ne sont pas disponibles

**Modifications :**
- Ajout de vérification SDK dans getDeviceFromSDK()
- Ajout de logs pour diagnostiquer le problème
- Fallback vers generateSpendKey/generateScanKey si les clés du SDK ne sont pas disponibles
- Gestion d'erreur robuste pour éviter que WebAuthn échoue

**Pages affectées :**
- src/services/secure-credentials.service.ts
2025-10-24 02:07:48 +02:00
f795296d53 ci: docker_tag=dev-test
**Motivations :**
- Ajout de vérifications de blocage pour s'assurer que les clés du wallet sont disponibles
- Empêcher toute opération qui nécessite les clés avant que WebAuthn soit terminé
- Blocage des traitements jusqu'à ce que le wallet soit déchiffré

**Modifications :**
- Ajout de ensureWalletKeysAvailable() pour vérifier les clés avant toute opération
- Ajout de vérifications dans getAmount(), getDeviceAddress(), createProcess()
- Messages d'erreur explicites quand les clés ne sont pas disponibles

**Pages affectées :**
- src/services/service.ts
2025-10-24 02:03:01 +02:00
4a3b23c9d7 ci: docker_tag=dev-test
**Motivations :**
- Correction du chiffrement : PBKDF2 génère les clés du SDK, pas des clés personnalisées
- WebAuthn chiffre maintenant les clés du SDK générées par PBKDF2
- Ajout de getDeviceFromSDK() pour récupérer les clés du SDK

**Modifications :**
- Remplacement de generateSpendKey/generateScanKey par getDeviceFromSDK()
- WebAuthn chiffre maintenant device.sp_wallet.spend_key et device.sp_wallet.scan_key
- Ajout de la méthode getDeviceFromSDK() pour accéder au SDK

**Pages affectées :**
- src/services/secure-credentials.service.ts
2025-10-24 01:57:30 +02:00
3f387ee97f ci: docker_tag=dev-test
**Motivations :**
- Correction de l'ordre des opérations : wallet créé AVANT WebAuthn
- Suppression de l'appel prématuré à get_available_amount dans createNewDevice
- Clarification que PBKDF2 génère les clés du SDK, pas des clés personnalisées

**Modifications :**
- Suppression de l'appel à get_available_amount dans createNewDevice()
- Conservation de dump_wallet() pour forcer la génération des clés
- get_available_amount reste appelé uniquement après les relais dans getAmount()

**Pages affectées :**
- src/services/service.ts
2025-10-24 01:54:10 +02:00
b6f3a91b3f ci: docker_tag=dev-test
**Motivations :**
- Correction du problème des clés wallet manquantes (has_spend_key: false, has_scan_key: false)
- Ajout de méthodes pour forcer la génération des clés du SDK après création/restauration du device
- Clarification du rôle du PBKDF2 vs clés du SDK

**Modifications :**
- Ajout de dump_wallet() après create_new_device() pour forcer la génération des clés
- Ajout de get_available_amount() pour forcer la génération des clés internes du SDK
- Ajout de logs détaillés pour diagnostiquer la génération des clés
- Application de la même logique dans restoreDevice()

**Pages affectées :**
- src/services/service.ts
2025-10-24 01:50:08 +02:00
07b13876ba ci: docker_tag=dev-test
**Motivations :**
- Ajout de logs de débogage pour diagnostiquer le problème des clés wallet manquantes
- Optimisation de la logique de scan (scan AVANT faucet, puis APRÈS transaction)
- Extension de la plage de scan à 100 blocs au lieu de 10

**Modifications :**
- Ajout de logs détaillés dans createNewDevice() et updateDeviceBlockHeight()
- Modification de la logique de scan pour éviter les scans redondants
- Extension de la plage de scan pour les nouveaux wallets
- Ajout de logs de débogage pour le wallet state

**Pages affectées :**
- src/services/service.ts
- src/pages/home/home.ts
- src/router.ts
2025-10-24 01:40:51 +02:00
31f57b86a0 ci: docker_tag=dev-test
**Motivations :**
- Ajouter des logs de débogage pour comprendre pourquoi le wallet n'a pas de clés (has_spend_key: false, has_scan_key: false)
- Diagnostiquer le problème de génération des clés dans createNewDevice et updateDeviceBlockHeight

**Modifications :**
- src/services/service.ts: Ajout de logs détaillés dans createNewDevice() et updateDeviceBlockHeight() pour tracer la génération des clés

**Pages affectées :**
- Service de création de wallet avec diagnostic des clés
- Logs de débogage pour identifier le problème de génération des clés
2025-10-24 01:35:22 +02:00
683743d629 ci: docker_tag=dev-test
**Motivations :**
- Corriger l'ordre des opérations : scan complet AVANT demande faucet, puis scan APRÈS réception transaction
- Éviter la course entre le scan et l'arrivée des transactions faucet
- Optimiser la logique de scan pour éviter les scans inutiles

**Modifications :**
- src/services/service.ts: Ajout de ensureCompleteInitialScan() avant getTokensFromFaucet(), flag hasReceivedTransaction pour tracker les transactions, optimisation de waitForAmount() pour scanner seulement après réception de transaction

**Pages affectées :**
- Service de gestion des tokens faucet avec ordre d'opérations optimisé
- Logique de scan conditionnelle basée sur la réception de transactions
2025-10-24 01:32:28 +02:00
d013676f9f ci: docker_tag=dev-test
**Motivations :**
- Étendre la plage de scan pour capturer les transactions faucet (100 blocs au lieu de 10)
- Ajouter des logs de débogage détaillés pour comprendre pourquoi le SDK ne détecte pas les tokens

**Modifications :**
- src/services/service.ts: Augmentation de la plage de scan de 10 à 100 blocs pour les nouveaux wallets, ajout de logs de débogage dans getAmount()

**Pages affectées :**
- Service de gestion des tokens faucet avec scan étendu
- Logs de débogage pour diagnostic des problèmes de détection
2025-10-24 01:27:00 +02:00
d34848c54e ci: docker_tag=dev-test
**Motivations :**
- Corriger l'ordre d'initialisation pour éviter l'erreur 'Current block height not set'
- Ajouter waitForBlockHeight() pour attendre que le handshake soit traité avant la synchronisation
- Corriger la détection des tokens du faucet en forçant un scan complet depuis birthday
- Corriger le birthday des nouveaux wallets pour permettre le scan des transactions faucet
- Ajouter les événements clés dans le champ de messages de l'interface web avec timestamps

**Modifications :**
- src/router.ts: Ajout de waitForBlockHeight() et messages utilisateur pour l'initialisation
- src/services/service.ts: Correction de la logique de scan, birthday antérieur pour nouveaux wallets, scan initial automatique, messages utilisateur avec timestamps
- src/pages/home/home.ts: Messages WebAuthn améliorés et processus de pairing

**Pages affectées :**
- Router d'initialisation avec synchronisation correcte
- Service de gestion des tokens faucet avec scan complet
- Interface utilisateur avec messages détaillés et timestamps
2025-10-24 01:19:12 +02:00
422ceef3e9 ci: docker_tag=dev-test
**Motivations :**
- Corriger la détection des tokens du faucet en forçant la synchronisation du wallet
- Ajouter des messages utilisateur compréhensibles pour remplacer les logs techniques
- S'assurer que le scan des blocs est effectué après création/restauration du wallet

**Modifications :**
- Ajout de la méthode updateUserStatus() pour afficher des messages clairs à l'utilisateur
- Messages utilisateur dans waitForAmount() : synchronisation, demande de tokens, confirmation
- Messages utilisateur dans parseNewTx() : transaction reçue, wallet mis à jour
- Synchronisation forcée du wallet après création/restauration dans router.ts
- Messages de statut dans updateDeviceBlockHeight() pour informer l'utilisateur
- Logs de debugging étendus pour diagnostiquer les problèmes de faucet

**Pages affectées :**
- src/services/service.ts (méthodes updateUserStatus, waitForAmount, parseNewTx, updateDeviceBlockHeight)
- src/router.ts (synchronisation après création/restauration du wallet)
2025-10-24 00:36:41 +02:00
f46f82be7a revert: restore automatic WebAuthn authentication without manual button
**Motivations :**
- Remove manual authentication button as requested by user
- Restore automatic WebAuthn triggering like before
- Maintain seamless user experience without manual intervention
- Keep WebAuthn security while ensuring automatic flow

**Modifications :**
- Removed manual authentication button and click handler
- Restored automatic WebAuthn triggering in handleMainPairing()
- Simplified authentication flow to be automatic on page load
- Maintained proper error handling and user feedback
- Kept spinner and status messages for user feedback

**Pages affectées :**
- src/pages/home/home.ts: Restored automatic WebAuthn authentication flow
2025-10-23 22:31:10 +02:00
82f8fc4303 fix: use consistent array format for all WebAssembly functions
**Motivations :**
- Fix WebAssembly serialization error: 'invalid type: map, expected a sequence'
- WebAssembly expects array/sequence format, not object/map format
- Ensure all WebAssembly functions use the same array format consistently
- Convert object members to array format for all WebAssembly calls

**Modifications :**
- create_new_process: Convert members object to array format
- validate_state: Convert members object to array format
- parse_cipher: Convert members object to array format
- request_data: Convert members object to array format
- All functions now consistently use Object.values().map() to create arrays
- Maintained sp_addresses structure in array format

**Pages affectées :**
- src/services/service.ts: Standardized all WebAssembly functions to use array format
2025-10-23 22:27:16 +02:00
1a4a751485 fix: ensure consistent WebAssembly data format across all functions
**Motivations :**
- Fix inconsistent data format between array and object for WebAssembly
- Ensure all WebAssembly functions use the same data structure
- Prevent serialization errors by maintaining consistency
- Use object format consistently across all WebAssembly calls

**Modifications :**
- validate_state: Changed from array to object format
- parse_cipher: Changed from array to object format
- request_data: Changed from array to object format
- create_new_process: Already using object format (correct)
- All functions now consistently use getAllMembers() object format
- Removed inconsistent array conversions

**Pages affectées :**
- src/services/service.ts: Standardized WebAssembly data format across all functions
2025-10-23 22:22:15 +02:00
9dd81d5f06 fix: correct WebAssembly serialization format for members
**Motivations :**
- Fix WebAssembly serialization error: 'invalid type: sequence, expected a map'
- WebAssembly expects object/map format, not array format
- Ensure proper data structure for create_new_process function

**Modifications :**
- Reverted members conversion from array back to object format
- WebAssembly expects map/object structure, not array sequence
- Updated debug logging to show object keys and sample entries
- Maintained proper member data structure for WebAssembly compatibility

**Pages affectées :**
- src/services/service.ts: Fixed WebAssembly serialization format for members object
2025-10-23 22:20:09 +02:00