feat(analyse de marché) : refonte de l'interface et résolution cohérente des noms
Contexte
Corrections et modernisation de l'écran Analyse de marché, suite aux retours d'utilisation (tél. + desktop).
Corrections de noms
- Nom emprunté à un autre contact : le nom était déduit de la première transaction (nom de la contrepartie). En s'analysant soi-même, la requête « soi:left_right_arrow:soi » mélange plusieurs contreparties → un portefeuille affichait le nom d'un autre. La résolution se fait désormais par adresse, et
aggregateTransactionsn'adopte un nom de transaction que si la contrepartie est bien le contact analysé. - Cohérence avec « Mes contacts » : l'affichage passe partout par
NameByAddress(sélecteur + cartes), comme le panneau Contacts : identité on-chain LIVE → nom Cesium+ → libellé enregistré. Un ancien compte membre renommé dans Cesium affiche bien son nom Cesium+, et plus le nom on-chain figé du cache. - Noms des non-membres : résolution Cesium+ active pour les contacts affichés en adresse g1 brute.
- Anti-usurpation : pastilles de source sur les cartes (✓ vert = identité vérifiée,
⚠️ orange = auto-déclaré), utile pour « Autres contacts » (contreparties arbitraires).
Interface modernisée
- Barre de période épinglée pendant le défilement des contacts.
- Bouton « Lancer l'analyse » épinglé en bas.
- Défilement auto : le « Résumé global » remonte en haut au lancement de l'analyse.
Tests & vérifs
- Tests unitaires de
aggregateTransactions(garde « soi:left_right_arrow:soi », sommes/compteurs, noms vides). flutter analyzepropre ;flutter testvert (horsmigrate_identity_test, échec ObjectBox Windows pré-existant).- Audit pré-MR multi-sous-agents : aucun point bloquant.
Co-Authored-By: Claude Opus 4.8 (1M context) noreply@anthropic.com