CrowdChain est un système de crowdfunding décentralisé permettant de créer des levées de fonds avec récompenses NFT et tokens pour les contributeurs.
- 💫 Création de campagnes de crowdfunding
- 💰 Système de contribution en ETH
- 🎨 Si l'objectif est atteint, chaque contributeur reçoit un NFT non-transférable (Soulbound Token)). Le NFT représente le pourcentage exact de leur contribution
- 🪙 Distribution automatique de tokens. Le montant de tokens reçu est proportionnel au pourcentage de contribution
- ⏰ Gestion du temps de campagne
- 💸 Si l'objectif n'est pas atteint à la fin de la période, les fonds sont automatiquement remboursés
- Solidity
^0.8.20
- Forge & Foundry
- OpenZeppelin
- TypeScript (CLI)
├── 📂 src/
│ ├──
├── 📂 test/
└──
- Structure de base du contrat de crowdfunding
- Fonction de création de campagne
- Système de contribution en ETH
- Logique de calcul des pourcentages
- Système de remboursement automatique
- Émissions d'événements pour chaque action importante
- Tests des fonctions core
- Implémentation du contrat NFT non-transférable
- Structure des métadonnées (contribution, pourcentage, projet)
- Fonction de mint pour les contributeurs
- Blocage des transferts après mint
- Tests du système NFT
- Contrat de création dynamique de tokens ERC20 ou ERC1155
- Système de distribution des tokens aux détenteurs de NFT
- Calcul des allocations basé sur les pourcentages
- Tests des fonctions de token
- Tests d'intégration entre les contrats
- Fuzzing tests pour les entrées utilisateur
- Tests des cas limites (0 ETH, max supply)
- Tests des scénarios de remboursement
- Vérification des overflows dans les calculs
- Scripts de déploiement
- Documentation technique des contrats (NatSpec)
- Guide d'utilisation du CLI
- Diagrammes de flux des processus
- Documentation de déploiement
Interface web
# Lancer tous les tests
forge test
# Tests avec traces détaillées
forge test -vv
# Tester une fonction spécifique
forge test --match-test testCreateCampaign -vv
# Compiler le projet
forge build
# Déployer sur un testnet
forge script script/Deploy.s.sol:Deploy --rpc-url $RPC_URL --broadcast
# Générer un rapport de couverture des tests
forge coverage
# Rapport de consommation de gas
forge test --gas-report
- Tous les tests passent (
forge test
) - Coverage > 90% (
forge coverage
) - Gas optimisé (
forge snapshot
) - Code documenté (NatSpec)
- Émission d'événements pour actions importantes
- 🔹 Gestion précise des calculs de pourcentage
- 🔹 Vérification des overflows
- 🔹 Sécurisation des transferts ETH
- 🔹 Tests des cas limites
- 🔹 Documentation complète
✅ PR bienvenues ! Assurez-vous de suivre ces étapes :
- Fork le projet
- Créer une branche (
feature/amazingFeature
) - Commit (
git commit -m '✨ Add amazing feature'
) - Push (
git push origin feature/amazingFeature
) - Ouvrir une PR
- Utiliser des commits clairs et explicites.
- Ajouter des tests unitaires pour toute nouvelle fonctionnalité.
- Vérifier que le code est compatible avec Solidity
^0.8.20
. - Suivre les standards OpenZeppelin et ERC pertinents.
- Documenter les nouvelles fonctionnalités en NatSpec.
MIT