# É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-)