diff --git a/features/utxo-list-progressive-loading.md b/features/utxo-list-progressive-loading.md
index cc95c4a..159ac09 100644
--- a/features/utxo-list-progressive-loading.md
+++ b/features/utxo-list-progressive-loading.md
@@ -43,7 +43,8 @@ Raccourcir le chargement de la page [Liste des UTXO](https://dashboard.certifica
- Format 7 champs (nouveau) et 6 champs (ancien avec `address`) gérés par `parseUtxoLine`.
- Catégories fichier : `bloc_rewards`, `ancrages`, `changes` (et `anchor`/`change`/`fee` si présents). Le parser accepte les deux formes pour ancrages/changes.
- `actualiser` recharge depuis le fichier (même flux que le chargement initial).
-- **Frais** : la section « Frais » reste vide en chargement fichier (données issues du RPC / OP_RETURN, non stockées dans `utxo_list.txt`).
+- **Frais** : la section « Frais » reste vide en chargement fichier (données issues du RPC / OP_RETURN, non stockées dans `utxo_list.txt`). Message explicatif affiché : « Les frais ne sont pas disponibles en chargement fichier (source RPC uniquement). »
+- **Changes** : colonnes « Type » et « Date » supprimées (Date souvent vide depuis le fichier).
## Modalités de déploiement
diff --git a/signet-dashboard/public/utxo-list.html b/signet-dashboard/public/utxo-list.html
index 8f3aadb..263c24b 100644
--- a/signet-dashboard/public/utxo-list.html
+++ b/signet-dashboard/public/utxo-list.html
@@ -469,14 +469,11 @@
Statut |
`;
} else {
- // Pour la section changes, ajouter une colonne pour indiquer si c'est un change d'ancrage
if (categoryName === 'changes') {
tableHTML += `
- Date |
- Type |
Statut |
`;
} else {
@@ -527,25 +524,19 @@
} else {
tableHTML += `${amountBTC.toLocaleString('fr-FR')} 🛡 | `;
tableHTML += `${amountSats.toLocaleString('fr-FR')} ✅ | `;
- // Date pour les changes
- if (utxo.blockTime) {
- const date = new Date(utxo.blockTime * 1000);
- tableHTML += `${date.toLocaleString('fr-FR', { year: 'numeric', month: '2-digit', day: '2-digit', hour: '2-digit', minute: '2-digit', second: '2-digit' })} | `;
- } else {
- tableHTML += '- | ';
+ if (categoryName !== 'changes') {
+ if (utxo.blockTime) {
+ const date = new Date(utxo.blockTime * 1000);
+ tableHTML += `${date.toLocaleString('fr-FR', { year: 'numeric', month: '2-digit', day: '2-digit', hour: '2-digit', minute: '2-digit', second: '2-digit' })} | `;
+ } else {
+ tableHTML += '- | ';
+ }
}
}
- // Colonne Confirmé : coche si confirmé, sinon vide
const isConfirmed = (utxo.confirmations || 0) > 0;
tableHTML += `${isConfirmed ? '✓' : ''} | `;
- // Colonne Type (uniquement pour les changes)
- if (categoryName === 'changes') {
- const changeType = utxo.isAnchorChange ? '🔗 Transaction d\'ancrage' : '🔄 Transaction normale';
- tableHTML += `${changeType} | `;
- }
-
// Colonne Statut (— si source fichier, pas de RPC)
let statusText = '';
let statusClass = '';
@@ -793,6 +784,9 @@
function renderFeesTable(fees, categoryName, categoryLabel) {
if (fees.length === 0) {
+ const emptyReason = utxosFromFile
+ ? 'Les frais ne sont pas disponibles en chargement fichier (source RPC uniquement).'
+ : 'Aucune transaction avec frais onchain enregistrée.';
return `
- Aucune transaction avec frais onchain enregistrée.
+ ${emptyReason}
`;
}