Code — FGC42Forge (Hardhat 3)
Sources du token FGC42Forge (symbole FG42), standard BEP-20, déployé sur BNB Smart Chain Testnet (chainId 97).
| Langage contrat | Solidity 0.8.34 — voir contracts/FGC42Forge.sol |
| Framework | Hardhat 3 — compile, teste, déploie depuis ce dossier |
| Bibliothèque | OpenZeppelin 5 (ERC20, Ownable) |
| Tests | TypeScript + Mocha + ethers — test/FGC42Forge.ts |
Glossaire complet (Hardhat, MetaMask, alternatives Remix/Truffle/Foundry) : ../documentation/STACK-GLOSSAIRE-ET-PARCOURS.md.
Adresse déployée : ../deployment/addresses.json · BscScan : ../deployment/BSCSCAN_VERIFICATION.md
Pourquoi les commandes se lancent depuis code/
Hardhat cherche hardhat.config.ts dans le répertoire courant. À la racine du dépôt (README.md parent), npx hardhat échoue (No Hardhat config file found). Toujours :
cd code # depuis la racine du dépôt Git
Guide relecture (correcteur / code review)
| Fichier | Contenu commenté |
|---|---|
contracts/FGC42Forge.sol |
Contrat principal — NatSpec, contraintes sujet, supply fixe, sécurité, fonctions héritées |
test/FGC42Forge.ts |
Tests : métadonnées, transfer, owner, conservation de totalSupply |
ignition/modules/FGC42Forge.ts |
Module Ignition : déploie FGC42Forge sur le réseau passé à --network |
hardhat.config.ts |
Compilateur Solidity, profil production (optimizer 200 runs), réseau bscTestnet + .env |
Fichiers hors livrable token (template Hardhat) : contracts/Counter.sol, Counter.t.sol, test/Counter.ts — le jeton évalué est FGC42Forge uniquement.
BEP-20 vs ERC20 dans le code
- Soutenance : jeton BEP-20 sur BSC Testnet.
- Code : héritage OpenZeppelin
ERC20(interface EVM identique). - BscScan : affiche BEP-20 ; vérification via
../deployment/FGC42Forge_flat.sol.
Prérequis
- Node.js ≥ 18 (Hardhat 3 recommande v22+)
- Pour deploy testnet : compte avec tBNB +
code/.env(voir ci-dessous) - Pour tests seuls : Node suffit (chaîne simulée Hardhat, pas de faucet)
Installation
cd code
npm install
cp .env.example .env
Variable .env |
Description |
|---|---|
BSC_TESTNET_RPC |
URL du nœud BSC Testnet (même famille que MetaMask) |
PRIVATE_KEY |
Clé privée hex du compte qui signe le deploy — pas l’adresse 0x… |
.env est ignoré par Git ; ne jamais le committer.
Commandes — quoi et pourquoi
| Commande | Effet |
|---|---|
npx hardhat build |
Compile FGC42Forge.sol (et Counter) ; nécessaire avant deploy ou si le code change. |
npx hardhat test --grep FGC42Forge |
Lance 2 tests sur chaîne locale simulée : supply au deployer + transfer. |
npx hardhat test |
Tous les tests, y compris l’exemple Counter du template Hardhat. |
npx hardhat ignition deploy --network bscTestnet ignition/modules/FGC42Forge.ts |
Envoie une transaction on-chain : crée le contrat ; le deployer reçoit 1M FG42 ; coûte du tBNB. |
Après un nouveau deploy : mettre à jour ../deployment/addresses.json et le README racine.
Procédure détaillée : ../deployment/README.md.
Arborescence utile
contracts/
FGC42Forge.sol ← token BEP-20 (commenté)
Counter.* ← exemple template (optionnel)
test/
FGC42Forge.ts ← tests du token
ignition/modules/
FGC42Forge.ts ← deploy Ignition
hardhat.config.ts ← réseaux + Solidity
.env.example ← modèle secrets
package.json ← dépendances npm
Documentation utilisateur (MetaMask, transfers) : ../documentation/README.md