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 aggregateTransactions n'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 analyze propre ; flutter test vert (hors migrate_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

Merge request reports

Loading