82 lines
2.2 KiB
Markdown
82 lines
2.2 KiB
Markdown
# Code — FGC42Forge (Hardhat 3)
|
||
|
||
Sources du token **FGC42Forge** (symbole **FG42**), standard **BEP-20**, déploiement prévu sur **BNB Smart Chain Testnet** (chainId **97**).
|
||
|
||
Stack : **Solidity**, **Hardhat 3**, **OpenZeppelin**, tests **Mocha + ethers** et tests Solidity (`.t.sol`).
|
||
|
||
### 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/..."`.
|
||
|
||
> 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)
|
||
|
||
## 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
|
||
```
|
||
|
||
| 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`.
|
||
|
||
## Commandes utiles
|
||
|
||
Compiler les contrats :
|
||
|
||
```shell
|
||
npx hardhat build
|
||
```
|
||
|
||
Lancer tous les tests (exemple Counter, en attendant FGC42Forge) :
|
||
|
||
```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) :
|
||
|
||
```shell
|
||
npx hardhat ignition deploy --network bscTestnet ignition/modules/FGC42Forge.ts
|
||
```
|
||
|
||
Voir aussi [`../deployment/README.md`](../deployment/README.md).
|
||
|
||
## Structure
|
||
|
||
```
|
||
contracts/ Contrats Solidity (+ tests .t.sol)
|
||
test/ Tests TypeScript (Mocha)
|
||
ignition/ Modules de déploiement Hardhat Ignition
|
||
scripts/ Scripts `hardhat run`
|
||
hardhat.config.ts
|
||
```
|