fichesoutenance
This commit is contained in:
127
docs/pedagogie/fiche-soutenance-tokenizer.md
Normal file
127
docs/pedagogie/fiche-soutenance-tokenizer.md
Normal file
@@ -0,0 +1,127 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user