This commit is contained in:
2026-11-09 12:07:22 +01:00
parent c5452b58db
commit e02dadeb75

View File

@@ -11,7 +11,7 @@ Lis les sections 1 à 4 pour le récit. La section 5 pose le vocabulaire. La sec
Le sujet 42 *Tokenizer* (v1.1), en partenariat avec **BNB Chain**, demande de créer un **jeton numérique** sur une blockchain publique, **sans argent réel**, de le déployer, de documenter comment on l’utilise, et de pouvoir expliquer le code. Le sujet 42 *Tokenizer* (v1.1), en partenariat avec **BNB Chain**, demande de créer un **jeton numérique** sur une blockchain publique, **sans argent réel**, de le déployer, de documenter comment on l’utilise, et de pouvoir expliquer le code.
Tu as créé **FGC42Forge**, symbole **FG42**. C’est un jeton **fongible** : une unité en vaut une autre, comme des pièces identiques, pas comme un NFT unique. Sur BNB Smart Chain, ce standard s’appelle **BEP-20**. Techniquement, le code est celui d’un **ERC-20** Ethereum, parce que BSC est une chaîne **EVM** : elle exécute les mêmes smart contracts Solidity qu’Ethereum. BscScan affiche « BEP-20 » à cause de la chaîne, pas parce que tu as écrit une norme différente. Tu as créé **FGC42Forge**, symbole **FG42**. C’est un jeton **fongible** : une unité en vaut une autre, comme des pièces identiques, pas comme un NFT unique. Sur BNB Smart Chain, ce standard s’appelle **BEP-20**. Techniquement, le code est celui d’un **ERC-20** Ethereum, parce que BSC est une chaîne **EVM** (machine virtuelle Ethereum — voir section 5) : elle exécute les mêmes smart contracts Solidity qu’Ethereum. BscScan affiche « BEP-20 » à cause de la chaîne, pas parce que tu as écrit une norme différente.
**1 000 000 FG42** ont été créés **une seule fois**, au moment du déploiement, et envoyés au compte qui a déployé. Ensuite, plus personne ne peut en fabriquer. On ne peut que les **transférer**. Il n’y a pas de fonction `burn` (destruction), pas de pause, pas de liste noire. **1 000 000 FG42** ont été créés **une seule fois**, au moment du déploiement, et envoyés au compte qui a déployé. Ensuite, plus personne ne peut en fabriquer. On ne peut que les **transférer**. Il n’y a pas de fonction `burn` (destruction), pas de pause, pas de liste noire.
@@ -92,6 +92,28 @@ Les valeurs **97** et **56** sont dans le README, `deployment/addresses.json` (`
## 5. Les notions, assez pour les expliquer ## 5. Les notions, assez pour les expliquer
### EVM (Ethereum Virtual Machine)
**EVM** = **Ethereum Virtual Machine** (machine virtuelle Ethereum).
En bref : c’est le **moteur d’exécution** qui fait tourner les **smart contracts** sur une blockchain compatible. Quand tu déploies `FGC42Forge`, ce n’est pas ton PC qui exécute le code en permanence : chaque nœud du réseau **BSC Testnet** possède une EVM qui exécute le **bytecode** du contrat quand quelqu’un appelle `transfer`, `balanceOf`, etc.
| Idée | Explication simple |
|------|-------------------|
| **À quoi ça sert** | Exécuter du code **déterministe** et **partagé** : même entrée → même résultat pour tous les validateurs du réseau. |
| **Lien avec Solidity** | Tu écris en **Solidity** ; le compilateur **solc** (via Hardhat) produit du **bytecode EVM** + une **ABI**. C’est ce bytecode qui est stocké on-chain à l’adresse du contrat. |
| **Chaînes « EVM »** | Blockchains qui parlent le **même langage machine** qu’Ethereum : **Ethereum**, **BNB Smart Chain**, Polygon, etc. |
| **Ton projet** | **BSC Testnet (chainId 97)** est une chaîne EVM → tu peux utiliser **Solidity**, **OpenZeppelin ERC20**, **MetaMask**, **adresses `0x…`**. |
| **BEP-20 vs ERC-20** | **ERC-20** = nom de la norme côté Ethereum / Solidity. **BEP-20** = même logique sur BNB Chain ; l’explorateur BscScan affiche BEP-20 parce que la **chaîne** est BSC, pas parce que le code Solidity change. |
| **Adresse wallet** | Sur toutes les chaînes EVM, **la même clé** donne **la même adresse** `0x…` (ex. FGC_account). En revanche, **chaque chainId** (97, 56, 1…) a son **propre registre** : soldes et contrats ne sont pas partagés entre testnet et mainnet. |
| **Ce que l’EVM n’est pas** | Ce n’est pas Bitcoin (autre modèle, pas Solidity). Ce n’est pas Hardhat ni MetaMask : ce sont des outils **autour** de l’EVM. |
**Phrase soutenance (EVM en 20 s)** : « BSC est une blockchain **compatible EVM** : on écrit en Solidity, le bytecode s’exécute comme sur Ethereum. Mon token suit l’interface ERC-20 dans le code ; sur le testnet BSC, on l’appelle un **BEP-20**. »
**Où le voir dans le dépôt** : contrat `code/contracts/FGC42Forge.sol` ; réseau `chainId: 97` dans `deployment/addresses.json` et `hardhat.config.ts` (`bscTestnet`).
---
### Blockchain, compte, contrat ### Blockchain, compte, contrat
Une blockchain publique est un registre partagé. Une **transaction** est un ordre signé (déployer un contrat, transférer des jetons) que le réseau exécute et enregistre. Une blockchain publique est un registre partagé. Une **transaction** est un ordre signé (déployer un contrat, transférer des jetons) que le réseau exécute et enregistre.