Aller au contenu

PD-55 — Revue de Code (v2)

Résumé

Critère Statut
Patterns NestJS ⚠️
Qualité code ⚠️
Gestion erreurs ⚠️
Maintenabilité

Verdict : ❌ NON_CONFORME

Les corrections v2 (R-01/R-03/R-05/SEC-55-01..04) sont bien visibles, mais plusieurs écarts restent.

Points positifs

  • Bonne séparation des responsabilités (processor orchestration, services métier, adapter infra)
  • Usage DI NestJS correct, dont l'alias BlockchainServiceInterface
  • Machine d'état explicitée et contrôlée via isValidAnchorStatusTransition
  • Transactions explicites sur opérations sensibles
  • Journalisation/audit systématique sur transitions critiques
  • Correctif sécurité API appliqué (@UseGuards(JwtAuthGuard))

Points à améliorer

ID Description Fichier Gravité
R-55-01 Job répétable enregistre windowStart/windowEnd figés au démarrage anchor.module.ts MAJEUR
R-55-02 Collecte événements incohérente (requête sur anchor_batch_events + filtre status=PENDING) proof-event.service.ts MAJEUR
R-55-03 Migration index partiel avec sous-requête non supporté PostgreSQL create-anchor-tables.ts MAJEUR
R-55-04 waitForConfirmation() ne remonte pas blockNumber; finalizeBatch peut finaliser sans bloc blockchain-adapter.service.ts MAJEUR
R-55-05 Confirmations incohérentes (12 hardcodé vs constante 30) blockchain-anchor.processor.ts MAJEUR
R-55-06 detectWindowGap() fail-open sur erreur DB (invariant de continuité) anchor-alert.service.ts MAJEUR
R-55-07 failBatch() lit hors transaction/verrou avant mise à jour anchor-batch.service.ts MINEUR
R-55-08 withTimeout() sans clearTimeout et wrapping d'erreurs via new Error() blockchain-anchor.processor.ts MINEUR
R-55-09 markEventsAnchored() semble non utilisée dans le flux principal proof-event.service.ts MINEUR

Date : 2026-02-22 Revieweur : ChatGPT (gpt-5.3-codex) Mode : Review code automatisée (Step 7 v2)