115 lines
3.1 KiB
Markdown
115 lines
3.1 KiB
Markdown
# É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**).
|
||
> **Lire d’abord (recommandé) :** [Hardhat et alternatives](03-hardhat-et-alternatives.md) · [Ressources Solidity / Hardhat](ressources-solidity-hardhat.md) (§ 2 + § 8 plan minimum).
|
||
|
||
---
|
||
|
||
## 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-)
|