endprojetnobonus
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user