**Motivations:** - Corriger erreur syntaxe double déclaration const now dans bitcoin-rpc.js - Scripts batch en .mjs (ES modules) sans dépendance dotenv - /api/utxo/count doit accepter catégorie ancrages (pluriel) du fichier **Root causes:** - const now déclaré deux fois dans même portée (lignes 294 et 299) - Scripts utilisent dotenv non installé globalement - /api/utxo/count cherchait seulement 'anchor' mais fichier utilise 'ancrages' **Correctifs:** - Supprimer deuxième déclaration const now (ligne 299) - Scripts .mjs : parser .env manuellement sans dotenv - /api/utxo/count : accepter 'anchor' OU 'ancrages' **Evolutions:** - Aucune **Pages affectées:** - signet-dashboard/src/bitcoin-rpc.js - signet-dashboard/src/server.js - scripts/complete-utxo-list-blocktime.mjs - scripts/diagnose-bloc-rewards.mjs
46 lines
2.2 KiB
Markdown
46 lines
2.2 KiB
Markdown
# UserWallet – Export / Import des données
|
||
|
||
**Author:** Équipe 4NK
|
||
**Date:** 2026-01-26
|
||
|
||
## Objectif
|
||
|
||
Permettre l’export et l’import de toutes les données UserWallet (identité, relais, pairs, cache de hash, keypair et services legacy) pour sauvegarde, migration ou restauration.
|
||
|
||
## Impacts
|
||
|
||
- **Fonctionnels** : Export en fichier JSON téléchargeable ; import depuis fichier qui remplace les données locales puis recharge la page.
|
||
- **Techniques** : Nouveau module `utils/exportImport.ts`, écran `DataExportImportScreen`, route `/data`, boutons sur l’accueil.
|
||
|
||
## Modifications
|
||
|
||
### utils/exportImport.ts
|
||
|
||
- `exportUserWalletData(): string` : lit identity, relays, pairs, hash_cache, keypair, services depuis localStorage, produit un JSON versionné (`version`, `exportedAt`).
|
||
- `importUserWalletData(json: string): void` : parse, valide (version, exportedAt, relays, pairs, hash_cache, identity optionnel), écrit en localStorage. Lance `Error` si format invalide.
|
||
- Types : `UserWalletExport`, validateurs `isRelayConfig`, `isPairConfig`, `isLocalIdentity`.
|
||
|
||
### DataExportImportScreen
|
||
|
||
- Section Export : bouton « Exporter les données » → `exportUserWalletData` puis téléchargement `userwallet-export-{timestamp}.json`.
|
||
- Section Import : input file caché, bouton « Choisir un fichier à importer » → lecture du fichier, `importUserWalletData`, puis `window.location.reload`. Affichage des erreurs d’import.
|
||
|
||
### App & HomeScreen
|
||
|
||
- Route `/data` → `DataExportImportScreen`.
|
||
- Bouton « Export / Import données » sur l’accueil (avec ou sans identité).
|
||
|
||
### Documentation
|
||
|
||
- `userwallet/docs/storage.md` : suppression de « Pas de backup / pas d’export-import » ; ajout section « Export / Import » et retrait de la recommandation correspondante.
|
||
|
||
## Modalités de déploiement
|
||
|
||
- Rebuild du frontend UserWallet et déploiement des assets. Aucune migration de données.
|
||
|
||
## Modalités d’analyse
|
||
|
||
- Exporter les données, vérifier que le JSON contient identity, relays, pairs, hash_cache, etc.
|
||
- Importer un export valide : vérifier que les données sont bien présentes après rechargement.
|
||
- Importer un JSON invalide (mauvais format, champs manquants) : vérifier qu’une erreur est affichée et que les données locales ne sont pas modifiées.
|