Files
tokenizer/docs/pedagogie/decisions-projet.md
2026-10-19 13:54:57 +02:00

116 lines
8.6 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.
# Décisions projet — suivi (dépôt de travail)
> Fichier **pédagogique** (`docs/`) — pas le rendu Vogosphere. Le README école (`tokenizerRendu/README.md`) reprendra une version **validée** à l’étape 5.
> **Identité choisie :** token autour des initiales **FGC** + contrainte sujet **`42`**.
## Identité du token (FGC)
| Élément | Choix | Pourquoi c’est « original » |
|---------|--------|-----------------------------|
| **Initiales** | **F · G · C** | Signature personnelle du projet (auteur / porteur du dépôt) |
| **42** | Dans le **nom on-chain** | Exigence obligatoire du sujet ([ch. IV](../sujets/tokenizer.md#contraintes-sur-le-token)) |
| **Métaphore** | **Forge** (*forge*) | Évoquer la **création** du jeton sur la chaîne (comme forger une pièce) — lien avec l’intro du sujet (« create your own token ») |
| **Nom affiché** | **FGC42Forge** | Lecture : *FGC* + *42* + *Forge* — unique, mémorable en soutenance |
| **Ticker** | **FG42** | **F**GC + **42** en 4 caractères (lisible sur BscScan et dans MetaMask) |
*Variantes si tu veux ajuster avant étape 2 :* `ForgeFGC42` / symbole `F42G` — dis-moi dans le chat.
---
## Métadonnées
| Champ | Valeur | Concept | Référence |
|-------|--------|---------|-----------|
| **Date** | 2026-10-19 | Date de gel des décisions de cadrage (reprise projet). | [00-reprise-et-etat.md](00-reprise-et-etat.md) |
| **Étape** | 1 — en cours | Wallet + faucet à finaliser par toi avant validation. | [etape-01](etapes/etape-01-cadrage-wallet-testnet.md) |
| **Auteur / initiales** | FGC | Contexte perso du nom du token (pas une exigence du PDF). | — |
---
## Chaîne et standard
| Champ | Valeur | Concept | Référence |
|-------|--------|---------|-----------|
| **Réseau** | BNB Smart Chain **Testnet** | Blockchain **publique** de test : même logique que la prod BSC, **sans valeur réelle** pour le gas. | Sujet ch. I (faucet tBNB) · ch. IV (« test chains », pas d’argent réel) |
| **Chain ID** | `97` | Identifiant numérique unique du réseau ; MetaMask et Hardhat l’utilisent pour ne pas envoyer une tx sur le mauvais réseau. | [02-web3 § 10.3](02-web3-comprendre.md#103-noms-que-tu-peux-croiser-glossaire) |
| **Standard token** | **BEP-20** | Norme des tokens **fongibles** sur BNB Chain (équivalent **ERC-20** sur Ethereum). | [Sujet ERC-20 / BEP-20](../sujets/tokenizer.md#erc-20-et-bep-20-éclaircissement) · [02-web3 § 6](02-web3-comprendre.md#6-standards-erc-20-et-bep-20) |
| **Consensus (info)** | **PoSA** (réseau) | Tu ne le configures pas ; BSC valide les blocs via validateurs + stake. Distinct du **multisig** (bonus). | [02-web3 § 6.6](02-web3-comprendre.md#66-consensus-de-la-chaîne-pow-pos-poa-et-variantes) |
| **Explorateur** | https://testnet.bscscan.com | Preuve du déploiement : adresse contrat, **ticker**, transfers. | Sujet ch. IV (explorer, adresse + réseau dans Git) |
| **RPC** | `https://data-seed-prebsc-1-s1.binance.org:8545/` | URL d’accès à un nœud : Hardhat / MetaMask envoient les transactions **via** ce point. | [02-web3 § 3.9](02-web3-comprendre.md#39-réseau-rpc) |
| **Monnaie gas** | **tBNB** | Frais de transaction sur testnet ; obtenu via **faucet**, pas d’achat. | Sujet ch. I · [BNB / Binance](../sujets/tokenizer.md#bnb-binance-et-bnb-chain) |
---
## Token — FGC42Forge (sujet : `42` dans le nom)
| Champ | Valeur | Concept | Référence |
|-------|--------|---------|-----------|
| **Nom** (`name`) | `FGC42Forge` | Chaîne de caractères **longue** affichée dans les wallets (ex. « FGC42Forge »). Doit contenir **`42`**. | Sujet ch. IV (nom libre + `42`, pas d’insultes) |
| **Symbole** (`symbol`) | `FG42` | **Ticker** court (symbole boursier du jeton) ; lié **FGC** + **42**. | Sujet ch. IV (ticker sur explorer après deploy) |
| **Décimales** (`decimals`) | `18` | Nombre de chiffres après la virgule **en interne** ; `1 FG42` = `1 × 10^18` unités minimales. Convention quasi universelle ERC-20. | [02-web3 § 6.2](02-web3-comprendre.md#62-que-impose-le-standard-) |
| **Supply initiale** | `1 000 000` **FG42** | **Offre totale** créée au lancement (`totalSupply`). Montant rond pour démos (`transfer` de 100, 1000…). | [02-web3 § 7.2 supply](02-web3-comprendre.md#supply-offre-quantité-en-circulation) |
| **Supply en contrat** | `1000000 * 10^18` wei | Solidity stocke les montants en **plus petite unité** (comme les « wei » pour l’ETH). | Implémentation ERC-20 (étape 3) |
| **Mint après deploy** | **Non** | Pas de fonction `mint` publique : **personne** ne peut créer de nouveaux FG42 après le deploy → pas de **mint illimité**. | [02-web3 § 7.1](02-web3-comprendre.md#71-mint-et-mint-illimité) |
| **Création initiale** | `_mint(déployeur, supply)` au **constructeur** | Toute la supply est forgée **une fois** à l’adresse qui déploie le contrat. | Pattern ERC-20 OpenZeppelin |
| **Owner** | `Ownable` (OpenZeppelin) | Une adresse **admin** du contrat (`owner()`), distincte du symbole FG42. | Sujet ch. IV (ownership, privilèges) · [02-web3 § 7.2 owner](02-web3-comprendre.md#owner-propriétaire-du-contrat) |
| **Privilèges owner** | `transferOwnership` / `renounceOwnership` | **Pas de mint** : en soutenance tu expliques que l’admin ne peut pas diluer la supply, seulement transférer le rôle admin. | Sujet ch. IV (sécurité, démo minimale) |
| **Fichier contrat prévu** | `FGC42Forge.sol` | Nom de fichier explicite pour la **code review**. | Sujet ch. IV (`code/`, noms lisibles) |
### Lore / justification (pour `documentation/` et whitepaper léger)
| Aspect | Texte proposé |
|--------|----------------|
| **Univers** | *FGC42Forge* est un jeton **fictif** de test : chaque **FG42** représente une « étincelle » de participation à un atelier Web3 42 — forgée une seule fois sur BSC Testnet. |
| **FGC** | Initiales du créateur ; ancrage personnel du projet (comme une signature). |
| **42** | Rappel de l’école et contrainte du sujet. |
| **Forge** | Métaphore de la **création on-chain** (deploy = acte de forge). |
| **Valeur** | **Aucune** valeur monétaire réelle ; testnet uniquement. |
| **Public cible** | Évaluateur / pairs : comprendre BEP-20, transfers, explorer. |
---
## Stack technique (prévue)
| Outil | Choix | Concept | Référence |
|-------|--------|---------|-----------|
| **Langage** | Solidity | Langage des smart contracts **EVM** (BSC). | Sujet ch. IV (langage de la plateforme) |
| **Toolchain** | Hardhat | Compile, tests locaux, scripts de deploy → dossiers **`code/`** et **`deployment/`**. | Sujet ch. IV (Truffle, Remix, **Hardhat** cités) |
| **OpenZeppelin** | `ERC20` + `Ownable` | Bibliothèque auditée ; **BEP-20** en pratique via ERC20 sur BSC. | [02-web3 § 6](02-web3-comprendre.md#6-standards-erc-20-et-bep-20) |
| **Tests** | Hardhat + (chai/ethers) | Vérifier `transfer`, supply, droits **avant** testnet public. | Bonne pratique + soutenance |
| **Secrets** | `.env` + `PRIVATE_KEY` | Clé du compte **test** pour signer le deploy ; **jamais** dans Git. | `.gitignore` rendu · sujet (sécurité implicite) |
| **IDE** | Cursor / VS Code | Édition + doc ; Remix optionnel pour un test rapide. | Sujet ch. IV (IDE) |
---
## Wallet de test (public uniquement)
| Champ | Valeur | Concept | Référence |
|-------|--------|---------|-----------|
| **Adresse publique** | `À COMPLÉTER` (`0x…`) | Identifiant **public** de ton compte ; reçoit **tBNB** et, après deploy, les **FG42**. | [02-web3 § 3.5 wallet](02-web3-comprendre.md#35-wallet-portefeuille) |
| **tBNB (faucet)** | `À COMPLÉTER` (oui/non + date) | Gas pour déployer **FGC42Forge** et envoyer des txs de démo. | Sujet ch. I · [faucet](https://www.bnbchain.org/en/testnet-faucet) |
| **Compte dédié** | Recommandé | Ne pas réutiliser un wallet mainnet avec de vrais fonds. | Sujet ch. IV (pas d’argent réel) |
### Paramètres MetaMask — BSC Testnet
| Paramètre | Valeur | Concept |
|-----------|--------|---------|
| Nom | BNB Smart Chain Testnet | Libellé dans l’UI wallet |
| RPC URL | `https://data-seed-prebsc-1-s1.binance.org:8545/` | Voir colonne RPC ci-dessus |
| Chain ID | `97` | Doit correspondre à Hardhat `networks.bscTestnet` |
| Symbole | tBNB | Monnaie native pour le **gas** (pas FG42) |
| Explorer | https://testnet.bscscan.com | Vérifier balance tBNB et futur contrat FG42 |
---
## Prochaines étapes (rappel parcours)
| # | Action |
|---|--------|
| 1 | Compléter **adresse** + **tBNB** ci-dessus → demander vérification étape 1 |
| 2 | Init Hardhat dans `tokenizerRendu/code/` (nom package aligné sur FGC42Forge) |
| 3 | Écrire `FGC42Forge.sol` selon ce tableau |
---
**Ne pas écrire ici :** clé privée, seed phrase, contenu complet de `.env`.