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

2.2 KiB
Raw Permalink Blame History

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 /dataDataExportImportScreen.
  • 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.