Files
tokenizer/docs/pedagogie/fiche-soutenance-tokenizer.md
2026-10-22 11:09:29 +02:00

128 lines
5.2 KiB
Markdown
Raw 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.
# Fiche de soutenance — Tokenizer (FGC42Forge)
> **Usage :** préparation orale + code review. Fichier **hors rendu** (`docs/pedagogie/`).
> **Grille sujet :** [`sujet-exigences-rendu.md`](sujet-exigences-rendu.md) (PDF v1.1, ch. IV–VI).
---
## 1. Pitch (30–45 s)
- Projet **Tokenizer** : token **BEP-20** sur **BSC Testnet**, nom **FGC42Forge**, symbole **FG42**, supply **1 000 000** mintée une fois au déploiement.
- Stack : **Solidity** + **OpenZeppelin** (`ERC20`, `Ownable`) + **Hardhat 3** + **Ignition**.
- Déployé et vérifié sur **BscScan** ; démo **transfer** entre deux wallets test.
- Bonus **multisig** non retenu (priorité obligatoire + simplicité ownership).
---
## 2. Carte du dépôt école (`tokenizerRendu/`)
| Chemin | Rôle (sujet) |
|--------|----------------|
| `README.md` | Choix techniques + **pourquoi** + adresse + réseau + explorer |
| `code/` | Source commenté, tests, Hardhat |
| `code/contracts/FGC42Forge.sol` | Contrat token — **cœur code review** |
| `deployment/` | Adresses, flatten, guide vérif BscScan |
| `documentation/README.md` | **Utilisateur** : qu’est-ce que FG42, comment l’utiliser |
**Ne pas montrer** au correcteur comme partie du rendu : `docs/`, `tokenizerRendu/../docs/pedagogie`.
---
## 3. Chiffres à avoir en tête (sans lire l’écran)
| Élément | Valeur |
|---------|--------|
| Réseau | BSC Testnet, **chainId 97** |
| Contrat | `0x0c76df26A1149fDc22C8f994975705271b070fF4` |
| Wallet déploiement / owner | `0xB6bE…603c` (FGC_account — avoir l’adresse complète sous les yeux) |
| Supply | 1 000 000 × 10¹⁸ unités (18 décimales OZ) |
| Tests | `npx hardhat test` — 2 tests FGC42Forge |
---
## 4. Déroulé oral suggéré (~10–15 min selon école)
| Étape | Contenu | Lien exigence sujet |
|-------|---------|---------------------|
| 1 | Contexte Web3 + BNB Chain testnet, pas d’argent réel | T4, T6 |
| 2 | README : pourquoi BSC, OZ, supply fixe, pas de mint public | T5, T12 |
| 3 | `documentation/` : cas d’usage, limites, import MetaMask | T17–T19 |
| 4 | BscScan : contrat vérifié, token, une tx `transfer` | T11, T15–T16 |
| 5 | Démo live ou replay : transfer 100 FG42 | T11 |
| 6 | **Code review** `FGC42Forge.sol` | T9–T10 |
| 7 | `deployment/` : comment reproduire le deploy (sans exposer clé) | T13–T14 |
| 8 | Bonus : pourquoi pas multisig | Ch. V (choix assumé) |
---
## 5. Code review — points à expliquer ligne par ligne (conceptuel)
1. **`import ERC20, Ownable`** — standard BEP-20 / ERC-20, pas de réinvention.
2. **Constructeur** : `_mint(msg.sender, …)` une fois → supply initiale ; `msg.sender` = deployer = owner.
3. **Pas de `mint()` public** — seul le design « supply fixe » ; owner ne mint pas après (à confirmer dans le fichier).
4. **`Ownable`** — qui peut `transferOwnership` ; pas de pause si non implémentée.
5. **Tests** : supply, transfer, éventuellement owner — preuve locale avant deploy.
*(Relire le contrat la veille ; adapter cette liste au code exact.)*
---
## 6. Sécurité (obligatoire sujet — réponses courtes)
| Question évaluateur | Réponse type |
|---------------------|--------------|
| Qui peut créer des tokens après deploy ? | Personne ; supply fixée au constructeur. |
| Risque si clé owner compromise ? | Ownership OZ : transfert de propriété possible ; pas de mint dans notre design. |
| Pourquoi testnet ? | Sujet : pas d’argent réel ; faucet tBNB. |
| Pourquoi OpenZeppelin ? | Bibliothèque auditée, conformité ERC-20. |
---
## 7. Stack, outils, alternatives (README « pourquoi »)
| Choix | Pourquoi | Alternative citée au sujet |
|-------|----------|----------------------------|
| BSC Testnet | Partenaire BNB, BEP-20, faucet | Ethereum testnet + ERC-20 |
| Hardhat 3 | Tests, compile, Ignition | Remix, Truffle |
| Ignition | Deploy reproductible | Script deploy manuel |
| `.env` + `.env.example` | Clé hors Git | — |
| Flatten + BscScan | Lisibilité évaluateur | Optionnel mais fait |
---
## 8. Commandes utiles (machine école)
```bash
cd code
npm ci # ou npm install
cp .env.example .env # renseigner PRIVATE_KEY 64 hex — jamais commit
npx hardhat test
npx hardhat ignition deploy ignition/modules/FGC42Forge.ts --network bscTestnet
```
---
## 9. Git / Vogosphere (rappel)
- **Racine du repo école** = contenu de `tokenizerRendu/` (souvent `git init` dans ce dossier ou branche dédiée).
- `.gitignore` : `.env`, `node_modules`, `cache`, `artifacts`.
- **Seul le dépôt poussé** compte (ch. VI).
---
## 10. Auto-contrôle avant soutenance
Repasser la colonne « Projet » dans [`sujet-exigences-rendu.md`](sujet-exigences-rendu.md) (T1–T19).
- [ ] README rendu **autonome** (pas de lien vers `docs/pedagogie`)
- [ ] `documentation/README.md` sans référence au dépôt perso `docs/` (optionnel à nettoyer)
- [ ] Adresse + réseau visibles sans chercher
- [ ] Démo transfer reproductible
- [ ] 2 phrases sur ch. III (compétences acquises)
---
## 11. Si on te demande « qu’est-ce qui manquerait pour le bonus ? »
Multisig (ex. Gnosis Safe ou contrat custom) sur actions sensibles ; **m** signatures sur **n** signataires ; extension cohérente avec le token — **seulement** si obligatoire jugée parfaite.