Files
tokenizer/tokenizerRendu/README.md
2026-10-22 11:39:33 +02:00

110 lines
5.9 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Tokenizer — Build your own token
Projet 42 — création et déploiement d’un **token** sur blockchain publique (**testnet**).
> Ce dépôt Git est **autonome** : aucun autre dossier (pas de `docs/` externe). En suivant ce README et les liens ci-dessous, un correcteur peut **utiliser le token** (déjà déployé), **lancer les tests** Hardhat et **relire le code**.
| Document | Public | Contenu |
|----------|--------|---------|
| [**documentation/README.md**](documentation/README.md) | Utilisateur / évaluateur | Comprendre FG42, MetaMask, transfers, sécurité |
| [**documentation/STACK-GLOSSAIRE-ET-PARCOURS.md**](documentation/STACK-GLOSSAIRE-ET-PARCOURS.md) | Soutenance / technique | Solidity, Hardhat, alternatives, commandes, carte des fichiers |
| [**code/README.md**](code/README.md) | Code review | Index des fichiers commentés, commandes depuis `code/` |
| [**deployment/README.md**](deployment/README.md) | Deploy / explorer | Ignition, `addresses.json`, BscScan |
## État du projet
| Élément | Statut |
|---------|--------|
| Smart contract (`code/`) | **FGC42Forge** + tests Hardhat |
| Déploiement (`deployment/`) | **Testnet** — voir [`deployment/addresses.json`](deployment/addresses.json) |
| Documentation utilisateur (`documentation/`) | **Rédigée** — [`documentation/README.md`](documentation/README.md) |
| Code review (commentaires) | **`contracts/FGC42Forge.sol`** + index [`code/README.md`](code/README.md) |
## Token
| Champ | Valeur |
|-------|--------|
| **Nom** | `FGC42Forge` |
| **Symbole** | `FG42` |
| **Standard** | **BEP-20** (BNB Smart Chain) — contrat Solidity via OpenZeppelin **`ERC20`** (même interface EVM ; BscScan affiche BEP-20 après deploy) |
| **Réseau** | BNB Smart Chain **Testnet**, chainId `97` |
| **Supply** | 1 000 000 FG42 (18 décimales) — émission **unique** au deploy, **pas de mint** public ensuite |
| **Adresse du contrat** | `0x0c76df26A1149fDc22C8f994975705271b070fF4` |
| **Explorer (contrat)** | https://testnet.bscscan.com/address/0x0c76df26A1149fDc22C8f994975705271b070fF4 |
| **Explorer (token)** | https://testnet.bscscan.com/token/0x0c76df26A1149fDc22C8f994975705271b070fF4 |
| **Deployer** | `0xB6bE1878BfaF1FFC8503E752b1D733Ad7b93603c` (`FGC_account`) |
| **Source vérifiée (BscScan)** | Oui — détails : [`deployment/BSCSCAN_VERIFICATION.md`](deployment/BSCSCAN_VERIFICATION.md) |
## Choix techniques
Résumé pour la soutenance (le sujet demande d’expliquer **pourquoi**) :
1. **Chaîne — BNB Smart Chain Testnet (97)** : blockchain publique EVM alignée avec le partenaire BNB du sujet ; gas en **tBNB** via faucet ; preuve sur **BscScan** testnet sans argent réel.
2. **Langage / outils — Solidity + Hardhat 3** : langage attendu pour les smart contracts BSC ; Hardhat pour compiler, tester (Mocha/ethers) et déployer (Ignition) de façon reproductible dans `code/` et `deployment/`.
3. **Bibliothèques — OpenZeppelin `ERC20` + `Ownable`** : implémentation éprouvée du standard fongible ; sur BSC le jeton est qualifié **BEP-20** à l’explorer. Pas de réécriture manuelle de `transfer` / `balanceOf`.
4. **Modèle économique** : **1 000 000** FG42, **18** décimales ; toute la supply mintée **une fois** au déployeur dans le constructeur ; **aucune** fonction `mint` publique → offre non diluable.
5. **Sécurité** : compte de test dédié ; secrets dans `.env` local uniquement ; `owner` pour l’admin OpenZeppelin sans création de jetons supplémentaires ; pas de burn. Détail utilisateur : [`documentation/README.md`](documentation/README.md#4-sécurité-et-gouvernance).
## Structure du dépôt
```
README.md ← vue d’ensemble, choix techniques, adresse on-chain
code/ ← Solidity + Hardhat (compiler, tester, redeploy)
deployment/ ← trace du deploy, adresses, vérif BscScan
documentation/
README.md ← guide utilisateur (wallet, BscScan)
STACK-GLOSSAIRE-ET-PARCOURS.md ← outils, glossaire, parcours autonome
```
### Démarrage rapide (après clone)
1. **Utiliser le token** (sans installer Node) : [`documentation/README.md`](documentation/README.md) — MetaMask + adresse du contrat.
2. **Tests automatisés** : `cd code` → `npm install` → `npx hardhat test --grep FGC42Forge` (attendu : **2 passing**).
3. **Stack détaillée** : [`documentation/STACK-GLOSSAIRE-ET-PARCOURS.md`](documentation/STACK-GLOSSAIRE-ET-PARCOURS.md).
## Lancer / tester (à adapter selon ta stack)
Le projet Hardhat est dans **`code/`** (fichier `hardhat.config.ts`).
Depuis la racine du dépôt (`tokenizerRendu/`), **`npx hardhat`** échoue avec *No Hardhat config file found* — il faut **entrer dans `code/`** d’abord.
```bash
cd code # obligatoire avant toute commande hardhat
npm install
npx hardhat build
npx hardhat test
npx hardhat test --grep FGC42Forge # uniquement les tests du token
```
Déploiement (déjà effectué — pour reproduire, voir [`deployment/README.md`](deployment/README.md)) :
```bash
cd code
npx hardhat ignition deploy --network bscTestnet ignition/modules/FGC42Forge.ts
```
**Ne jamais committer** de clé privée. Utiliser un fichier `.env` local (voir `.env.example` si présent).
## Démo en évaluation (actions minimales)
1. Montrer le contrat sur l’**explorer** (adresse + token).
2. **Transfer** entre deux comptes de test.
3. Expliquer **owner** (`Ownable`) : pas de `mint` public ; supply fixe au deploy.
4. Montrer que la **documentation/** permet d’utiliser le token sans ton aide.
## Bonus
**Non implémenté** (choix volontaire : priorité à une partie obligatoire stable et documentée). Le sujet propose un **multisig** en bonus ; non requis pour la correction du token BEP-20.
## Vidéo démo (optionnel)
*(Lien uniquement — la vidéo n’est pas requise et n’améliore pas la note.)*
## Ressources
- [BNB Chain Testnet Faucet](https://www.bnbchain.org/en/testnet-faucet)
- [BscScan Testnet](https://testnet.bscscan.com/)