**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
2.2 KiB
2.2 KiB
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, écranDataExportImportScreen, 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. LanceErrorsi format invalide.- Types :
UserWalletExport, validateursisRelayConfig,isPairConfig,isLocalIdentity.
DataExportImportScreen
- Section Export : bouton « Exporter les données » →
exportUserWalletDatapuis téléchargementuserwallet-export-{timestamp}.json. - Section Import : input file caché, bouton « Choisir un fichier à importer » → lecture du fichier,
importUserWalletData, puiswindow.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.