- Correction toutes erreurs TypeScript : - Variables non utilisées supprimées - Types optionnels corrigés (exactOptionalPropertyTypes) - Imports corrigés (PLATFORM_BITCOIN_ADDRESS depuis platformConfig) - Gestion correcte des propriétés optionnelles - Suppression fichiers obsolètes : - code-cleanup-summary.md (redondant) - todo-implementation*.md (todos obsolètes) - corrections-completed.md, fallbacks-found.md (corrections faites) - implementation-summary.md (redondant) - documentation-plan.md (plan, pas documentation) - Suppression scripts temporaires : - add-ssh-key.sh - add-ssh-key-plink.sh - Réorganisation documentation dans docs/ : - architecture.md (nouveau) - commissions.md (nouveau) - implementation-summary.md - remaining-tasks.md - split-and-transfer.md - commission-system.md - commission-implementation.md - content-delivery-verification.md Toutes erreurs TypeScript corrigées, documentation centralisée.
5.7 KiB
Tâches restantes - Système de commissions
Date : Décembre 2024 Auteur : Équipe 4NK
État actuel
✅ Implémenté :
- Configuration centralisée des commissions
- Validation des montants à chaque étape
- Tracking des commissions sur Nostr
- Services de split (articles, avis, sponsoring)
- Services de transfert automatique (structure)
⏳ À compléter :
- Intégration mempool.space pour vérification transactions Bitcoin
- Récupération adresses Lightning depuis profils Nostr
- Mise à jour événements Nostr pour avis rémunérés
- Tracking sponsoring sur Nostr
- Transferts Lightning réels (nécessite nœud Lightning)
Tâches détaillées
1. Intégration mempool.space ✅ IMPLÉMENTÉ
Objectif : Vérifier que les transactions Bitcoin de sponsoring contiennent les deux sorties correctes.
API mempool.space :
- Endpoint :
https://mempool.space/api/tx/{txid} - Documentation : https://mempool.space/api
Implémenté :
- ✅ Service
MempoolSpaceServicepour récupérer une transaction depuis mempool.space - ✅ Vérification que la transaction a deux sorties :
- Sortie 1 :
split.authorSatsversauthorMainnetAddress - Sortie 2 :
split.platformSatsversPLATFORM_BITCOIN_ADDRESS
- Sortie 1 :
- ✅ Vérification du nombre de confirmations
- ✅ Gestion des erreurs et retry
- ✅ Intégré dans
sponsoringPayment.ts
Fichier : lib/mempoolSpace.ts ✅
2. Récupération adresses Lightning ✅ IMPLÉMENTÉ
Objectif : Récupérer les adresses Lightning des auteurs/reviewers depuis leurs profils Nostr.
Standards Nostr :
- NIP-19 : Lightning addresses dans les métadonnées de profil
- Format :
lud16oulud06dans le profil JSON - Exemple :
{"lud16": "user@domain.com"}
Implémenté :
- ✅ Service
LightningAddressServicepour parser les métadonnées de profil - ✅ Extraction de
lud16oulud06depuis les profils - ✅ Cache des adresses récupérées
- ✅ Fallback si pas d'adresse disponible
- ✅ Intégré dans
paymentPolling.tsetreviewReward.ts
Fichiers :
lib/lightningAddress.ts✅types/nostr.ts✅ (ajout delud16etlud06)
3. Mise à jour événements Nostr pour avis ✅ IMPLÉMENTÉ
Objectif : Mettre à jour l'événement Nostr d'un avis avec les tags rewarded: true et reward_amount: 70.
Implémenté :
- ✅ Récupération de l'événement original de l'avis
- ✅ Ajout des tags
rewardedetreward_amount - ✅ Publication de l'événement mis à jour
- ✅ Gestion des erreurs si l'événement n'existe plus
- ✅ Vérification que l'avis n'est pas déjà rémunéré
- ✅ Parsing des tags dans
parseReviewFromEvent
Fichiers :
lib/reviewReward.ts✅ (méthodeupdateReviewWithRewardimplémentée)lib/nostrEventParsing.ts✅ (parsing des tagsrewardedetreward_amount)
4. Tracking sponsoring sur Nostr ✅ IMPLÉMENTÉ
Objectif : Publier des événements de tracking pour les paiements de sponsoring.
Implémenté :
- ✅ Service
SponsoringTrackingServicepour publier les événements - ✅ Tags similaires aux articles :
author_amount,platform_commission - ✅ Vérification de transaction via mempool.space avant tracking
- ✅ Informations de confirmation et nombre de confirmations
- ✅ Intégré dans
sponsoringPayment.ts
Fichiers :
lib/sponsoringTracking.ts✅ (nouveau service)lib/sponsoringPayment.ts✅ (méthodetrackSponsoringPaymentimplémentée)
5. Transferts Lightning réels (PRIORITÉ BASSE - nécessite infrastructure)
Objectif : Effectuer réellement les transferts Lightning vers les auteurs/reviewers.
Prérequis :
- Nœud Lightning de la plateforme
- API pour créer et payer des invoices
- Gestion des erreurs et retry
À implémenter :
- Intégration avec l'API du nœud Lightning
- Création d'invoices pour les transferts
- Paiement automatique des invoices
- Queue de transferts en attente
- Retry en cas d'échec
Fichier : lib/automaticTransfer.ts (modifier les méthodes de transfert)
Plan d'implémentation
Phase 1 : Vérification transactions ✅ TERMINÉ
- ✅ Créer
lib/mempoolSpace.ts - ✅ Implémenter récupération transaction
- ✅ Implémenter vérification sorties
- ✅ Intégrer dans
sponsoringPayment.ts
Phase 2 : Adresses Lightning ✅ TERMINÉ
- ✅ Créer
lib/lightningAddress.ts - ✅ Parser profils Nostr pour
lud16/lud06 - ✅ Intégrer dans
paymentPolling.tsetreviewReward.ts
Phase 3 : Mise à jour avis ✅ TERMINÉ
- ✅ Implémenter
updateReviewWithRewarddansreviewReward.ts - ✅ Parser tags
rewardedetreward_amountdansparseReviewFromEvent
Phase 4 : Tracking sponsoring ✅ TERMINÉ
- ✅ Créer
lib/sponsoringTracking.ts - ✅ Implémenter tracking dans
sponsoringPayment.ts - ⏳ Mise à jour
total_sponsoringsur présentation (structure préparée)
Phase 5 : Transferts réels (long terme - nécessite infrastructure)
- ⏳ Configurer nœud Lightning
- ⏳ Implémenter API d'intégration
- ⏳ Créer queue de transferts
- ⏳ Monitoring et alertes
Notes techniques
mempool.space API
Récupérer une transaction :
GET https://mempool.space/api/tx/{txid}
Réponse :
{
"txid": "...",
"vout": [
{
"value": 4200000,
"scriptpubkey_address": "bc1q..."
},
{
"value": 400000,
"scriptpubkey_address": "bc1q..."
}
],
"status": {
"confirmed": true,
"block_height": 123456,
"block_hash": "..."
}
}
Lightning addresses dans Nostr
Format profil :
{
"name": "Author",
"lud16": "author@getalby.com",
"lud06": "lnurl..."
}
NIP-19 : Les adresses Lightning peuvent être dans les métadonnées de profil (kind 0).