anchorage_layer_simple/features/userwallet-export-import.md
ncantu 0db7a76044 Fix: double déclaration const now, scripts .mjs, /api/utxo/count accepte ancrages
**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
2026-01-26 02:06:10 +01:00

46 lines
2.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# UserWallet Export / Import des données
**Author:** Équipe 4NK
**Date:** 2026-01-26
## Objectif
Permettre lexport et limport 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 laccueil.
## 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 dimport.
### App & HomeScreen
- Route `/data``DataExportImportScreen`.
- Bouton « Export / Import données » sur laccueil (avec ou sans identité).
### Documentation
- `userwallet/docs/storage.md` : suppression de « Pas de backup / pas dexport-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 danalyse
- 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 quune erreur est affichée et que les données locales ne sont pas modifiées.