5.9 KiB
Tokenizer — Build your own token
Projet 42 — création et déploiement d’un token sur blockchain publique (testnet).
Ce dépôt Git est autonome : aucun autre dossier (pas de
docs/externe). En suivant ce README et les liens ci-dessous, un correcteur peut utiliser le token (déjà déployé), lancer les tests Hardhat et relire le code.
| Document | Public | Contenu |
|---|---|---|
| documentation/README.md | Utilisateur / évaluateur | Comprendre FG42, MetaMask, transfers, sécurité |
| documentation/STACK-GLOSSAIRE-ET-PARCOURS.md | Soutenance / technique | Solidity, Hardhat, alternatives, commandes, carte des fichiers |
| code/README.md | Code review | Index des fichiers commentés, commandes depuis code/ |
| deployment/README.md | Deploy / explorer | Ignition, addresses.json, BscScan |
État du projet
| Élément | Statut |
|---|---|
Smart contract (code/) |
FGC42Forge + tests Hardhat |
Déploiement (deployment/) |
Testnet — voir deployment/addresses.json |
Documentation utilisateur (documentation/) |
Rédigée — documentation/README.md |
| Code review (commentaires) | contracts/FGC42Forge.sol + index code/README.md |
Token
| Champ | Valeur |
|---|---|
| Nom | FGC42Forge |
| Symbole | FG42 |
| Standard | BEP-20 (BNB Smart Chain) — contrat Solidity via OpenZeppelin ERC20 (même interface EVM ; BscScan affiche BEP-20 après deploy) |
| Réseau | BNB Smart Chain Testnet, chainId 97 |
| Supply | 1 000 000 FG42 (18 décimales) — émission unique au deploy, pas de mint public ensuite |
| Adresse du contrat | 0x0c76df26A1149fDc22C8f994975705271b070fF4 |
| Explorer (contrat) | https://testnet.bscscan.com/address/0x0c76df26A1149fDc22C8f994975705271b070fF4 |
| Explorer (token) | https://testnet.bscscan.com/token/0x0c76df26A1149fDc22C8f994975705271b070fF4 |
| Deployer | 0xB6bE1878BfaF1FFC8503E752b1D733Ad7b93603c (FGC_account) |
| Source vérifiée (BscScan) | Oui — détails : deployment/BSCSCAN_VERIFICATION.md |
Choix techniques
Résumé pour la soutenance (le sujet demande d’expliquer pourquoi) :
-
Chaîne — BNB Smart Chain Testnet (97) : blockchain publique EVM alignée avec le partenaire BNB du sujet ; gas en tBNB via faucet ; preuve sur BscScan testnet sans argent réel.
-
Langage / outils — Solidity + Hardhat 3 : langage attendu pour les smart contracts BSC ; Hardhat pour compiler, tester (Mocha/ethers) et déployer (Ignition) de façon reproductible dans
code/etdeployment/. -
Bibliothèques — OpenZeppelin
ERC20+Ownable: implémentation éprouvée du standard fongible ; sur BSC le jeton est qualifié BEP-20 à l’explorer. Pas de réécriture manuelle detransfer/balanceOf. -
Modèle économique : 1 000 000 FG42, 18 décimales ; toute la supply mintée une fois au déployeur dans le constructeur ; aucune fonction
mintpublique → offre non diluable. -
Sécurité : compte de test dédié ; secrets dans
.envlocal uniquement ;ownerpour l’admin OpenZeppelin sans création de jetons supplémentaires ; pas de burn. Détail utilisateur :documentation/README.md.
Structure du dépôt
README.md ← vue d’ensemble, choix techniques, adresse on-chain
code/ ← Solidity + Hardhat (compiler, tester, redeploy)
deployment/ ← trace du deploy, adresses, vérif BscScan
documentation/
README.md ← guide utilisateur (wallet, BscScan)
STACK-GLOSSAIRE-ET-PARCOURS.md ← outils, glossaire, parcours autonome
Démarrage rapide (après clone)
- Utiliser le token (sans installer Node) :
documentation/README.md— MetaMask + adresse du contrat. - Tests automatisés :
cd code→npm install→npx hardhat test --grep FGC42Forge(attendu : 2 passing). - Stack détaillée :
documentation/STACK-GLOSSAIRE-ET-PARCOURS.md.
Lancer / tester (à adapter selon ta stack)
Le projet Hardhat est dans code/ (fichier hardhat.config.ts).
Depuis la racine du dépôt (tokenizerRendu/), npx hardhat échoue avec No Hardhat config file found — il faut entrer dans code/ d’abord.
cd code # obligatoire avant toute commande hardhat
npm install
npx hardhat build
npx hardhat test
npx hardhat test --grep FGC42Forge # uniquement les tests du token
Déploiement (déjà effectué — pour reproduire, voir deployment/README.md) :
cd code
npx hardhat ignition deploy --network bscTestnet ignition/modules/FGC42Forge.ts
Ne jamais committer de clé privée. Utiliser un fichier .env local (voir .env.example si présent).
Démo en évaluation (actions minimales)
- Montrer le contrat sur l’explorer (adresse + token).
- Transfer entre deux comptes de test.
- Expliquer owner (
Ownable) : pas demintpublic ; supply fixe au deploy. - Montrer que la documentation/ permet d’utiliser le token sans ton aide.
Bonus
Non implémenté (choix volontaire : priorité à une partie obligatoire stable et documentée). Le sujet propose un multisig en bonus ; non requis pour la correction du token BEP-20.
Vidéo démo (optionnel)
(Lien uniquement — la vidéo n’est pas requise et n’améliore pas la note.)