**Motivations:** - Ajouter dates manquantes dans hash_list.txt et compléter historique - Compléter blockTime manquants dans utxo_list.txt et compléter historique - Récupérer frais depuis transactions d'ancrage (OP_RETURN) et les stocker - Bouton UI pour déclencher récupération frais - Diagnostic Bloc Rewards (pourquoi ~4700 BTC au lieu de 50 BTC) **Root causes:** - hash_list.txt sans date (format ancien) - utxo_list.txt blockTime souvent vide - Frais absents du fichier (métadonnées OP_RETURN non stockées) - Pas de moyen de récupérer/compléter frais depuis UI **Correctifs:** - hash_list.txt : format étendu avec date (rétrocompatible) - utxo_list.txt : blockTime complété automatiquement lors écritures - fees_list.txt : nouveau fichier pour stocker frais - updateFeesFromAnchors() : récupère frais depuis OP_RETURN ancrages - Endpoint /api/utxo/fees/update pour déclencher récupération - Bouton "Récupérer les frais depuis les ancrages" dans section Frais (spinner) - Scripts batch : complete-hash-list-dates.js, complete-utxo-list-blocktime.js - Script diagnostic : diagnose-bloc-rewards.js (subsidy, coinbase, listunspent) **Evolutions:** - Frais chargés depuis fees_list.txt dans getUtxoList - Complétion automatique dates/blockTime lors écritures futures **Pages affectées:** - signet-dashboard/src/bitcoin-rpc.js - signet-dashboard/src/server.js - signet-dashboard/public/utxo-list.html - scripts/complete-hash-list-dates.js - scripts/complete-utxo-list-blocktime.js - scripts/diagnose-bloc-rewards.js - features/utxo-list-fees-update-and-historical-completion.md
45 lines
1.1 KiB
Markdown
45 lines
1.1 KiB
Markdown
# UserWallet Login
|
|
|
|
Site de login avec authentification secp256k1, conçu pour être utilisé en iframe par Channel Messages.
|
|
|
|
## Fonctionnalités
|
|
|
|
- Authentification basée sur des clés secp256k1
|
|
- Communication avec le parent via `postMessage`
|
|
- Gestion de l'activation/désactivation du login par service
|
|
- Interface responsive et accessible
|
|
|
|
## Installation
|
|
|
|
```bash
|
|
npm install
|
|
```
|
|
|
|
## Développement
|
|
|
|
```bash
|
|
npm run dev
|
|
```
|
|
|
|
Le site sera accessible sur `http://localhost:3018`
|
|
|
|
## Build
|
|
|
|
```bash
|
|
npm run build
|
|
```
|
|
|
|
## Architecture
|
|
|
|
- **Authentification** : Génération de paires de clés secp256k1, signature de challenges
|
|
- **Communication iframe** : Messages `postMessage` pour l'intégration
|
|
- **Stockage** : LocalStorage pour les clés et la configuration des services
|
|
- **Interface** : React + TypeScript avec accessibilité (ARIA)
|
|
|
|
## Types de messages iframe
|
|
|
|
- `auth-request` : Demande d'authentification depuis le parent
|
|
- `auth-response` : Réponse avec signature
|
|
- `service-toggle` : Activation/désactivation d'un service
|
|
- `service-status` : Envoi du statut des services
|