endprojetnobonus

This commit is contained in:
2026-10-20 15:09:41 +02:00
parent b374c4a68f
commit cdbd7c2eee
13 changed files with 170 additions and 121 deletions

View File

@@ -1,81 +1,85 @@
# Code — FGC42Forge (Hardhat 3)
Sources du token **FGC42Forge** (symbole **FG42**), standard **BEP-20**, déploiement prévu sur **BNB Smart Chain Testnet** (chainId **97**).
Sources du token **FGC42Forge** (symbole **FG42**), standard **BEP-20**, déployé sur **BNB Smart Chain Testnet** (chainId **97**).
Stack : **Solidity**, **Hardhat 3**, **OpenZeppelin**, tests **Mocha + ethers** et tests Solidity (`.t.sol`).
Stack : **Solidity 0.8.34**, **Hardhat 3**, **OpenZeppelin 5**, tests **Mocha + ethers**.
Adresse déployée et vérif BscScan : [`../deployment/addresses.json`](../deployment/addresses.json) · [`../deployment/BSCSCAN_VERIFICATION.md`](../deployment/BSCSCAN_VERIFICATION.md)
---
## 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 du token (métadonnées, transfer, supply) |
| `ignition/modules/FGC42Forge.ts` | Module de déploiement Ignition |
| `hardhat.config.ts` | Compilateur, réseau `bscTestnet`, variables d’environnement |
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
- **Rendu / soutenance :** token **BEP-20** sur **BNB Smart Chain Testnet** (chainId 97).
- **Code :** héritage **OpenZeppelin `ERC20`** — norme EVM identique en pratique ; pas de bibliothèque `BEP20` séparée.
- **Après deploy :** BscScan classera le contrat en **BEP-20** ; le **code source** utilise toujours `import {ERC20} from "@openzeppelin/contracts/..."`.
- **Soutenance :** jeton **BEP-20** sur BSC Testnet.
- **Code :** héritage **OpenZeppelin `ERC20`** (interface EVM identique ; pas de module `BEP20` séparé).
- **BscScan :** affiche BEP-20 après déploiement ; vérification du **code source** via `deployment/FGC42Forge_flat.sol`.
> Le dossier peut encore contenir l’exemple **Counter** (template Hardhat) en attendant nettoyage.
---
## Prérequis
- Node.js ≥ 18 (Hardhat 3 recommande v22+)
- Compte testnet avec **tBNB** (ex. MetaMask, réseau BSC Testnet)
- Compte testnet avec **tBNB** pour deploy / gas
## Installation
```shell
cd code
npm install
```
## Variables d’environnement
Copier le modèle et remplir les valeurs **localement** (ne jamais committer `.env`) :
```shell
cp .env.example .env
# Éditer .env : PRIVATE_KEY = clé privée (pas l'adresse wallet)
```
| Variable | Description |
|----------|-------------|
| `BSC_TESTNET_RPC` | URL RPC du testnet BSC (défaut dans `.env.example`) |
| `PRIVATE_KEY` | Clé privée du compte de **test** uniquement (préfixe `0x`) |
Hardhat lit ces variables via `hardhat.config.ts` et `dotenv`.
| `BSC_TESTNET_RPC` | URL RPC BSC Testnet |
| `PRIVATE_KEY` | Signataire des transactions Hardhat (deploy) |
## Commandes utiles
Compiler les contrats :
```shell
npx hardhat build
npx hardhat test mocha --grep FGC42Forge
```
Lancer tous les tests (exemple Counter, en attendant FGC42Forge) :
Tous les tests (inclut l’exemple Counter du template) :
```shell
npx hardhat test
```
Tests séparés :
```shell
npx hardhat test solidity
npx hardhat test mocha
```
## Réseau `bscTestnet`
Le réseau **`bscTestnet`** est déclaré dans `hardhat.config.ts`. Pour un déploiement (plus tard, avec Ignition ou un script) :
## Déploiement (déjà effectué — reproduction)
```shell
npx hardhat ignition deploy --network bscTestnet ignition/modules/FGC42Forge.ts
```
Voir aussi [`../deployment/README.md`](../deployment/README.md).
Détails : [`../deployment/README.md`](../deployment/README.md)
## Structure
## Arborescence
```
contracts/ Contrats Solidity (+ tests .t.sol)
test/ Tests TypeScript (Mocha)
ignition/ Modules de déploiement Hardhat Ignition
scripts/ Scripts `hardhat run`
hardhat.config.ts
contracts/
FGC42Forge.sol ← token BEP-20 (commenté pour la soutenance)
Counter.* ← exemple Hardhat (optionnel)
test/
FGC42Forge.ts ← tests du token
ignition/modules/
FGC42Forge.ts ← deploy Ignition
hardhat.config.ts ← réseau bscTestnet + Solidity 0.8.34
```
Documentation utilisateur (wallet, transfers) : [`../documentation/README.md`](../documentation/README.md)