116 lines
8.6 KiB
Markdown
116 lines
8.6 KiB
Markdown
# 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`.
|