**Motivations:** - Add new features and fixes for userwallet application - Update documentation for pairing, login state machine, and sync - Add new utilities for bloom filters, nonce store, and contract versioning - Fix mempool websocket offline issues **Root causes:** - N/A (feature additions and improvements) **Correctifs:** - Fix mempool websocket offline handling - Update ESLint configuration **Evolutions:** - Add login state machine service and hook - Add sync loop service - Add bloom filter utilities for anti-replay and state visibility - Add nonce store and contract version utilities - Update pairing confirmation and graph resolver services - Add new documentation for features and fixes - Update userwallet components (LoginScreen, SyncScreen) - Update types for contract, identity, and messages **Pages affectées:** - userwallet/src/components/LoginScreen.tsx - userwallet/src/components/SyncScreen.tsx - userwallet/src/hooks/useChannel.ts - userwallet/src/hooks/useLoginStateMachine.ts (new) - userwallet/src/services/graphResolver.ts - userwallet/src/services/pairingConfirm.ts - userwallet/src/services/syncService.ts - userwallet/src/services/syncLoop.ts (new) - userwallet/src/services/loginStateMachine.ts (new) - userwallet/src/types/contract.ts - userwallet/src/types/identity.ts - userwallet/src/types/message.ts - userwallet/src/utils/canonical.ts - userwallet/src/utils/identity.ts - userwallet/src/utils/indexedDbStorage.ts - userwallet/src/utils/relay.ts - userwallet/src/utils/verification.ts - userwallet/src/utils/bloom.ts (new) - userwallet/src/utils/contractVersion.ts (new) - userwallet/src/utils/nonceStore.ts (new) - userwallet/eslint.config.mjs - userwallet/package.json - userwallet/package-lock.json - userwallet/docs/synthese.md - userwallet/docs/specs-champs-obligatoires-cnil.md (new) - api-relay/README.md - features/userwallet-pairing-words-only-finalise.md - features/userwallet-anti-rejeu-etats-visibles-bloom.md (new) - features/userwallet-bloom-usage-sync.md (new) - features/userwallet-contrat-login-reste-a-faire.md (new) - features/userwallet-ecrans-login-a-valider.md (new) - features/userwallet-eslint-fix.md (new) - features/userwallet-login-state-machine.md (new) - features/userwallet-validation-conformite.md (new) - fixKnowledge/mempool-websocket-offline-fix.md (new) - mempool (submodule) - hash_list.txt - hash_list_cache.txt
41 lines
2.0 KiB
Markdown
41 lines
2.0 KiB
Markdown
# UserWallet – Écrans login (3.2) – À valider avant implémentation
|
||
|
||
**Author:** Équipe 4NK
|
||
**Date:** 2026-01-26
|
||
|
||
## Statut
|
||
|
||
**À valider avant implémentation.** Les écrans listés dans « reste à faire » (sélection service, sélection membre, construction chemin login, message à valider, collecte mFA, publication, vérification locale + résultat) ne doivent pas être implémentés tant que ce document n’a pas été validé.
|
||
|
||
## Contexte
|
||
|
||
### Service fourni par l’iframe
|
||
|
||
- Le **service** (contrat + contrats fils complets du service) est fourni à l’appel de l’iframe via **channel message** (postMessage).
|
||
- Si le message **n’est pas reçu** : usage du **contrat par défaut**, défini **en dur dans le code front**, jusqu’à réception du message.
|
||
|
||
### Écrans login actuels
|
||
|
||
- Les **écrans du login sont déjà en place** (sélection service/membre, chemin, challenge, preuve, publication).
|
||
- **Reste à implémenter** : les **notifications** en fonction des **événements des relais**, notamment :
|
||
- **Collecte des signatures** et **clés de déchiffrement** pour savoir **quel message (hash)** aller chercher sur le relai.
|
||
- Une fois le hash connu : récupération sur le relai des **signatures**, **contrats**, **membres**, **pairs**, **actions**, **champs**, etc.
|
||
- Les notifications doivent donc piloter : quel hash fetch, puis fetch signatures/clés et mise à jour du graphe (contrats, membres, pairs, actions, champs).
|
||
|
||
## Écrans à préciser (après validation)
|
||
|
||
- Sélection service / sélection membre.
|
||
- Construction du chemin login.
|
||
- Message de login à valider.
|
||
- Collecte signatures mFA.
|
||
- Publication.
|
||
- Vérification locale + résultat.
|
||
|
||
Ces écrans **évolueront avec l’avancement des tests** (cf. reste à faire).
|
||
|
||
## Références
|
||
|
||
- `features/userwallet-contrat-login-reste-a-faire.md` (§ 3.2)
|
||
- `userwallet/docs/specs.md` (machine à états, écrans)
|
||
- `userwallet/src/utils/iframeChannel.ts`, `userwallet/src/hooks/useChannel.ts`
|