tokencreation
This commit is contained in:
113
docs/pedagogie/etapes/etape-02-init-hardhat.md
Normal file
113
docs/pedagogie/etapes/etape-02-init-hardhat.md
Normal file
@@ -0,0 +1,113 @@
|
||||
# Étape 2 — Initialiser Hardhat dans `tokenizerRendu/code/`
|
||||
|
||||
> **Sujet (ch. IV) :** dossier **`code/`** à la racine du dépôt école ; maîtriser la toolchain (Hardhat cité) ; code commenté plus tard (étape 3).
|
||||
> **Prérequis :** étape 1 ✅ (réseau BSC Testnet 97, tBNB sur **FGC_account**).
|
||||
|
||||
---
|
||||
|
||||
## Objectif
|
||||
|
||||
Avoir un projet **Node + Hardhat** compilable dans `tokenizerRendu/code/`, prêt pour le contrat **FGC42Forge** (étape 3).
|
||||
|
||||
---
|
||||
|
||||
## À faire (checklist)
|
||||
|
||||
### A. Environnement
|
||||
|
||||
- [ ] **Node.js** ≥ 18 : `node -v` dans le terminal
|
||||
- [ ] Répertoire de travail : `tokenizerRendu/code/`
|
||||
|
||||
### B. Créer le projet Hardhat
|
||||
|
||||
Depuis la racine du dépôt tokenizer :
|
||||
|
||||
```bash
|
||||
cd tokenizerRendu/code
|
||||
npm init -y
|
||||
npm install --save-dev hardhat @nomicfoundation/hardhat-toolbox
|
||||
npx hardhat init
|
||||
```
|
||||
|
||||
Lors de `hardhat init`, choisir :
|
||||
|
||||
- **Create a TypeScript project** ou **JavaScript** (les deux conviennent ; JavaScript = plus simple pour 42)
|
||||
- Générer un `hardhat.config` et un exemple `contracts/Lock.sol` — tu pourras **supprimer** `Lock.sol` à l’étape 3
|
||||
|
||||
Puis :
|
||||
|
||||
```bash
|
||||
npm install @openzeppelin/contracts
|
||||
```
|
||||
|
||||
### C. Configurer BSC Testnet (sans déployer encore)
|
||||
|
||||
Dans `hardhat.config.js`, ajouter le réseau (les clés viendront du `.env` à l’étape 4) :
|
||||
|
||||
```javascript
|
||||
require("@nomicfoundation/hardhat-toolbox");
|
||||
require("dotenv").config();
|
||||
|
||||
module.exports = {
|
||||
solidity: "0.8.24",
|
||||
networks: {
|
||||
bscTestnet: {
|
||||
url: process.env.BSC_TESTNET_RPC || "https://data-seed-prebsc-1-s1.binance.org:8545/",
|
||||
chainId: 97,
|
||||
accounts: process.env.PRIVATE_KEY ? [process.env.PRIVATE_KEY] : [],
|
||||
},
|
||||
},
|
||||
};
|
||||
```
|
||||
|
||||
```bash
|
||||
npm install dotenv
|
||||
```
|
||||
|
||||
Créer **`tokenizerRendu/code/.env`** (jamais commité) :
|
||||
|
||||
```env
|
||||
BSC_TESTNET_RPC=https://data-seed-prebsc-1-s1.binance.org:8545/
|
||||
PRIVATE_KEY=0x... # MetaMask → FGC_account → Détails → Afficher clé privée (compte TEST uniquement)
|
||||
```
|
||||
|
||||
Créer **`tokenizerRendu/code/.env.example`** (sans vraie clé) pour le rendu :
|
||||
|
||||
```env
|
||||
BSC_TESTNET_RPC=https://data-seed-prebsc-1-s1.binance.org:8545/
|
||||
PRIVATE_KEY=
|
||||
```
|
||||
|
||||
Vérifier que `code/.gitignore` contient `.env` (ou le `.gitignore` parent du rendu).
|
||||
|
||||
### D. Vérifier que tout compile
|
||||
|
||||
```bash
|
||||
npx hardhat compile
|
||||
```
|
||||
|
||||
→ doit se terminer sans erreur (même avec le contrat exemple Lock).
|
||||
|
||||
### E. Mettre à jour `code/README.md`
|
||||
|
||||
Courte section : comment `npm install`, `npx hardhat compile`, où est le `.env.example`.
|
||||
|
||||
---
|
||||
|
||||
## Livrable pour vérification
|
||||
|
||||
Envoie dans le chat :
|
||||
|
||||
1. « Étape 2 terminée »
|
||||
2. Résultat de `npx hardhat compile` (succès)
|
||||
3. Confirmation : `.env` **non** commité, `.env.example` présent
|
||||
|
||||
**Ne pas envoyer** la clé privée dans le chat.
|
||||
|
||||
---
|
||||
|
||||
## Références
|
||||
|
||||
- [decisions-projet.md](../decisions-projet.md) — FGC42Forge / FG42
|
||||
- [guide-realisation.md](../guide-realisation.md) — étape 2
|
||||
- Sujet : dossier `code/` — [tokenizer.md](../../sujets/tokenizer.md#code-)
|
||||
Reference in New Issue
Block a user