diff --git a/docs/pedagogie/00-reprise-et-etat.md b/docs/pedagogie/00-reprise-et-etat.md index 761c832..95642de 100644 --- a/docs/pedagogie/00-reprise-et-etat.md +++ b/docs/pedagogie/00-reprise-et-etat.md @@ -7,9 +7,9 @@ | | | |---|---| | **Fait** | Dépôt de travail, sujet FR v1.1, captures PDF, plan pédagogique, paquet `tokenizerRendu/` | -| **En cours** | **[Étape 1](etapes/etape-01-cadrage-wallet-testnet.md)** — cadrage + wallet testnet + `decisions-projet.md` | -| **À faire** | Étapes 2→6 (code, deploy, doc rendu, démo) ; bonus 7 optionnel | -| **Prochaine action** | Toi : compléter l’étape 1 puis demander **vérification** dans le chat | +| **Fait** | **Étape 1** — FGC42Forge / FG42, wallet **FGC_account**, **0,1 tBNB** (Telegram faucet) | +| **En cours** | **[Étape 2](etapes/etape-02-init-hardhat.md)** — projet Hardhat dans `tokenizerRendu/code/` | +| **Prochaine action** | Suivre le guide étape 2 puis demander vérification | ## Arborescence actuelle @@ -57,8 +57,8 @@ tokenizer/ ← dépôt Git de TRAVAIL (perso) | Étape | Contenu | Statut | |-------|---------|--------| | **0** | Structure, traduction, séparation travail / école | ✅ **Terminé** | -| **1** | Cadrage + wallet + tBNB + `decisions-projet.md` | 🔄 **En cours** | -| **2** | Init Hardhat dans `tokenizerRendu/code/` | ⏳ | +| **1** | Cadrage + wallet + tBNB + `decisions-projet.md` | ✅ **Validée** (0,1 tBNB, tx BscScan) | +| **2** | Init Hardhat dans `tokenizerRendu/code/` | 🔄 **À démarrer** | | **3** | Contrat BEP-20 + tests | ⏳ | | **4** | `deployment/` + deploy testnet + BscScan | ⏳ | | **5** | `tokenizerRendu/documentation/` + README école | ⏳ | diff --git a/docs/pedagogie/README.md b/docs/pedagogie/README.md index 1b92e81..0c94dc1 100644 --- a/docs/pedagogie/README.md +++ b/docs/pedagogie/README.md @@ -32,12 +32,13 @@ Ressources externes utiles : [docs Solidity](https://docs.soliditylang.org/), [O | Étape | Objectif | Statut | |-------|----------|--------| | **0** | Dépôt travail + `docs/`, sujet FR, paquet `tokenizerRendu/` | ✅ **Fait** | -| **1** | [Cadrage + wallet testnet](etapes/etape-01-cadrage-wallet-testnet.md) | 🔄 **En cours** | -| **2** | Smart contract BEP-20 dans `tokenizerRendu/code/` (ownership, commentaires) | ⏳ À faire | -| **3** | Scripts `tokenizerRendu/deployment/` + déploiement testnet + verify explorer | ⏳ À faire | -| **4** | `documentation/` utilisateur + README école (adresse, réseau, choix) | ⏳ À faire | -| **5** | Scénario de démo minimal + préparation code review | ⏳ À faire | -| **6** | Bonus multisig (optionnel) | ⏳ Non commencé | +| **1** | [Cadrage + wallet testnet](etapes/etape-01-cadrage-wallet-testnet.md) | ✅ **Validée** | +| **2** | [Init Hardhat](etapes/etape-02-init-hardhat.md) | 🔄 **En cours** | +| **3** | Contrat **FGC42Forge** BEP-20 + tests | ⏳ | +| **4** | `deployment/` + deploy testnet + BscScan | ⏳ | +| **5** | `documentation/` + README école | ⏳ | +| **6** | Démo + code review | ⏳ | +| **7** | Bonus multisig (optionnel) | ⏳ | README correcteurs (dépôt école) : [tokenizerRendu/README.md](../../tokenizerRendu/README.md) diff --git a/docs/pedagogie/decisions-projet.md b/docs/pedagogie/decisions-projet.md index 891e8eb..87d440e 100644 --- a/docs/pedagogie/decisions-projet.md +++ b/docs/pedagogie/decisions-projet.md @@ -22,7 +22,7 @@ | Champ | Valeur | Concept | Référence | |-------|--------|---------|-----------| | **Date** | 2026-10-19 | Date de gel des décisions de cadrage (reprise projet). | [00-reprise-et-etat.md](00-reprise-et-etat.md) | -| **Étape** | 1 — en cours | Wallet + faucet à finaliser par toi avant validation. | [etape-01](etapes/etape-01-cadrage-wallet-testnet.md) | +| **Étape** | **1 validée** (2026-10-20) | Wallet + **0,1 tBNB** via Telegram @bnbchain_official_bot. | [etape-01](etapes/etape-01-cadrage-wallet-testnet.md) | | **Auteur / initiales** | FGC | Contexte perso du nom du token (pas une exigence du PDF). | — | --- @@ -86,19 +86,23 @@ | Champ | Valeur | Concept | Référence | |-------|--------|---------|-----------| -| **Adresse publique** | `À COMPLÉTER` (`0x…`) | Identifiant **public** de ton compte ; reçoit **tBNB** et, après deploy, les **FG42**. | [02-web3 § 3.5 wallet](02-web3-comprendre.md#35-wallet-portefeuille) | -| **tBNB (faucet)** | `À COMPLÉTER` (oui/non + date) | Gas pour déployer **FGC42Forge** et envoyer des txs de démo. | Sujet ch. I · [faucet](https://www.bnbchain.org/en/testnet-faucet) | -| **Compte dédié** | Recommandé | Ne pas réutiliser un wallet mainnet avec de vrais fonds. | Sujet ch. IV (pas d’argent réel) | +| **Compte MetaMask** | `FGC_account` | Compte Chrome dédié au projet (même adresse `0x…` sur tous réseaux EVM). | [Marche à suivre étape 1](etapes/etape-01-cadrage-wallet-testnet.md#marche-à-suivre-metamask-chrome--faucet-tbnb) | +| **Adresse publique** | `0xB6bE1878BfaF1FFC8503E752b1D733Ad7b93603c` | Compte **FGC_account** — adresse **publique** (OK en doc ; ne jamais y associer seed / clé privée). | [02-web3 § 3.5 wallet](02-web3-comprendre.md#35-wallet-portefeuille) | +| **tBNB (faucet)** | **Oui** — **0,1 tBNB** (2026-10-20, Telegram @bnbchain_official_bot) | Suffisant pour deploy + démos (sujet testnet). Tx : [testnet.bscscan.com/tx/0x7ca577…bb2ee](https://testnet.bscscan.com/tx/0x7ca57757494000b98b83e82563cb59932fad2fb329c7948974825e9312cbb2ee) | [faucets doc](https://docs.bnbchain.org/bnb-smart-chain/developers/faucet/) | +| **Compte dédié** | `FGC_account` | Pas de fonds mainnet sur ce compte si possible. | Sujet ch. IV (pas d’argent réel) | -### Paramètres MetaMask — BSC Testnet +**Procédure complète (MetaMask + réseau 97 + faucet)** → [etape-01 — section détaillée](etapes/etape-01-cadrage-wallet-testnet.md#marche-à-suivre-metamask-chrome--faucet-tbnb). + +### Paramètres MetaMask — BSC Testnet (config validée FGC) | Paramètre | Valeur | Concept | |-----------|--------|---------| -| Nom | BNB Smart Chain Testnet | Libellé dans l’UI wallet | -| RPC URL | `https://data-seed-prebsc-1-s1.binance.org:8545/` | Voir colonne RPC ci-dessus | +| Nom | **`BNB Smart Chain Testnet`** (sans faute / sans espaces en trop) | Un nom ou RPC mal saisi peut déclencher l’avertissement « arnaque » même avec de vrais tBNB. | +| RPC URL | `https://data-seed-prebsc-1-s1.binance.org:8545/` ou `https://bsc-testnet-dataseed.bnbchain.org` | Les deux sont utilisés par la doc BNB / bot Telegram. | | Chain ID | `97` | Doit correspondre à Hardhat `networks.bscTestnet` | -| Symbole | tBNB | Monnaie native pour le **gas** (pas FG42) | -| Explorer | https://testnet.bscscan.com | Vérifier balance tBNB et futur contrat FG42 | +| Symbole | **`tBNB`** | OK une fois le réseau corrigé — solde **0,1 tBNB**, **sans** avertissement MetaMask (oct. 2026). | +| Explorer | https://testnet.bscscan.com | Tx faucet : `0x7ca577…bb2ee` | +| Compte | **FGC_account** | `0xB6bE1878BfaF1FFC8503E752b1D733Ad7b93603c` | --- diff --git a/docs/pedagogie/etapes/etape-01-cadrage-wallet-testnet.md b/docs/pedagogie/etapes/etape-01-cadrage-wallet-testnet.md index 602bf1e..5f3cade 100644 --- a/docs/pedagogie/etapes/etape-01-cadrage-wallet-testnet.md +++ b/docs/pedagogie/etapes/etape-01-cadrage-wallet-testnet.md @@ -21,30 +21,16 @@ ### A. Décisions produit (à écrire dans [decisions-projet.md](../decisions-projet.md)) -- [ ] **Nom du token** (contient `42`, ex. `School42Token`) -- [ ] **Symbole** (ex. `S42`) — court, style ticker +- [x] **Nom** / **symbole** validés : **`FGC42Forge`** / **`FG42`** (voir [decisions-projet.md](../decisions-projet.md)) +- [ ] Compléter le reste des tableaux si pas déjà fait - [ ] **Décimales** (souvent `18` — standard ERC-20) - [ ] **Supply** : fixe au deploy **ou** mint réservé au owner (justifier en une phrase) - [ ] **Chaîne** : BSC Testnet, **chainId `97`** - [ ] **Stack prévue** : Solidity + Hardhat + OpenZeppelin (pour étape 2+) -### B. Wallet de test +### B. Wallet de test — voir [marche à suivre détaillée](#marche-à-suivre-metamask-chrome--faucet-tbnb) ci-dessous -- [ ] Installer **MetaMask** (ou Rabby, etc.) — navigateur ou mobile -- [ ] Créer ou utiliser un compte **uniquement pour le testnet** (pas de gros soldes mainnet) -- [ ] Ajouter le réseau **BNB Smart Chain Testnet** si absent : - - Nom : `BNB Smart Chain Testnet` - - RPC : `https://data-seed-prebsc-1-s1.binance.org:8545/` - - Chain ID : `97` - - Symbole : `tBNB` - - Explorer : `https://testnet.bscscan.com` -- [ ] Copier ton **adresse publique** (0x…) dans `decisions-projet.md` — **jamais** la phrase secrète / clé privée - -### C. Faucet tBNB - -- [ ] Aller sur [BNB Chain Testnet Faucet](https://www.bnbchain.org/en/testnet-faucet) -- [ ] Demander des **tBNB** sur ton adresse (parfois file d’attente ou limite — réessayer si besoin) -- [ ] Vérifier dans MetaMask : solde **tBNB** > 0 sur **BSC Testnet** +### C. Faucet tBNB — idem section détaillée ### D. Sécurité (dès maintenant) @@ -53,6 +39,178 @@ --- +## Pourquoi on ne « crée » pas le tBNB soi-même + +| Question | Réponse | +|----------|---------| +| Peut-on **générer** du tBNB comme on écrira **FGC42Forge** plus tard ? | **Non** sur le **testnet public** : le **tBNB** est la **monnaie native** de la chaîne (gas). Seuls le **réseau** (validateurs) et les **faucets** officiels / communautaires en **envoient** à ton adresse `0x…`. | +| Et en local (Hardhat) ? | Sur une chaîne **locale** (`npx hardhat node`), Hardhat te donne des ETH de test **fictifs** — utile pour coder (étape 2–3), mais le **sujet 42** exige aussi un déploiement sur une **blockchain publique** + explorer ([ch. IV](../../sujets/tokenizer.md#déploiement-2ᵉ-dossier)). Il faudra donc du **vrai testnet** tBNB à un moment. | +| Pourquoi Discord / Telegram ? | Ce ne sont pas des « contournements » : la [doc officielle BNB](https://docs.bnbchain.org/bnb-smart-chain/developers/faucet/) liste **faucet web**, **Discord**, **Telegram** et faucets tiers. Quand le site [bnbchain.org testnet-faucet](https://www.bnbchain.org/en/testnet-faucet) demande **0,002 BNB mainnet**, les autres canaux restent la voie normale. | +| Exemple projet 42 | [BdClement/Tokenizer](https://github.com/BdClement/Tokenizer) (BEP-20, BSC Testnet 97) : *« I obtained tBNB via a faucet available on the **BNB Discord server** »* + deploy Truffle / Alchemy RPC. | + +Le sujet PDF (ch. I) renvoie au **BNB Chain Faucet** : en 2025–2026 l’écosystème a **resserré** les faucets web (mainnet ou réserves vides). **Demander des tBNB** = étape d’intégration Web3 réaliste, pas une erreur de parcours. + +--- + +## Marche à suivre MetaMask (Chrome) + faucet tBNB + +> Retour d’expérience projet FGC — compte **`FGC_account`**, réseau **testnet 97**, faucet **BNB 0,3**. + +### 1. Installer et créer le compte + +| Étape | Action | +|-------|--------| +| 1 | Installer l’extension [MetaMask](https://metamask.io) depuis le **Chrome Web Store** (site officiel uniquement). | +| 2 | **Créer un wallet** avec un **mot de passe** (déverrouille l’extension sur ce PC). | +| 3 | **Sauvegarder la seed phrase** (12 mots) : Paramètres → Sécurité → **Révéler la phrase secrète de récupération** — noter sur papier, **jamais** Git / chat / `.env`. | +| 4 | Renommer le compte (optionnel) : ex. **`FGC_account`** — un compte dédié au projet Tokenizer. | + +### 2. Comprendre réseau vs adresse + +| Idée | Détail | +|------|--------| +| Menu du haut MetaMask | Liste de **réseaux** (Ethereum, BNB Chain, …), pas une « adresse BNB » différente par chaîne. | +| Même compte EVM | **`FGC_account`** a **une** adresse publique `0x…` sur Ethereum, BSC testnet, etc. | +| **BNB Chain** (sans « Testnet ») | Souvent le **mainnet** (chainId **56**) → **ne pas** utiliser pour ce projet. | +| **BNB Smart Chain Testnet** | chainId **97** → réseau du sujet + **tBNB**. | + +### 3. Ajouter BNB Smart Chain Testnet (souvent absent par défaut) + +**Méthode manuelle** + +1. MetaMask → clic sur le **nom du réseau** en haut. +2. **Ajouter un réseau** → si besoin **Ajouter un réseau manuellement**. +3. Remplir : + +| Champ | Valeur | +|-------|--------| +| Nom du réseau | `BNB Smart Chain Testnet` | +| URL RPC | `https://data-seed-prebsc-1-s1.binance.org:8545/` | +| ID de chaîne | `97` | +| Symbole | **`BNB`** (évite l’avertissement MetaMask) ou `tBNB` | +| Explorateur | `https://testnet.bscscan.com` | + +4. Enregistrer → **basculer** sur ce réseau. + +**Alternative :** [chainlist.org](https://chainlist.org) → activer **Include Testnets** → chercher BSC Testnet (97) → Add to MetaMask. + +### 4. Copier l’adresse dans MetaMask (étape A) + +1. Réseau sélectionné : **BNB Smart Chain Testnet** (en haut de l’extension). +2. Compte : **FGC_account**. +3. Sous le nom du compte tu vois une ligne du type **`0x1a2b…9f0c`** (tronquée). +4. Clique cette ligne **ou** les **trois points** → **Détails du compte** → bouton **Copier** / icône copier à côté de l’adresse. +5. Tu dois obtenir **une seule chaîne** : `0x` + **40** caractères (0–9, a–f) — **pas** d’espaces, **pas** de retour à la ligne. + +**Ce n’est pas :** la seed (12 mots), la clé privée, le mot de passe MetaMask, l’URL RPC, le chainId `97`. + +### 4 bis. Où coller l’adresse — et où **ne pas** la coller + +``` +MetaMask (FGC_account) ──copier 0x…──► SITE WEB du faucet ──► ton compte reçoit tBNB + │ + └── PAS dans MetaMask "Ajouter réseau" (sauf URL RPC officielle, pas ton 0x) +``` + +| Endroit | Coller ton `0x…` ? | Pourquoi | +|---------|-------------------|----------| +| **Site faucet** — champ « Wallet address » / « Enter your address » | ✅ **OUI** | C’est **ici** que le site envoie les tBNB. | +| **Site faucet** — bouton « Connect wallet » | ✅ **OUI** (alternative) | MetaMask remplit l’adresse tout seul — souvent plus simple. | +| MetaMask → Ajouter réseau → **URL RPC** | ❌ **NON** | On met l’URL `https://data-seed-prebsc-1-s1…`, **pas** ton adresse. | +| MetaMask → Ajouter réseau → **Chain ID** | ❌ **NON** | On met `97`, pas `0x…`. | +| Fichier `.env` à l’étape 1 | ❌ **pas obligatoire** | Plus tard : **clé privée** (autre format), pas l’adresse seule pour Hardhat. | +| [decisions-projet.md](../decisions-projet.md) | ✅ **OUI** (suivi perso) | Pour documenter ton étape 1. | +| Barre de recherche **testnet.bscscan.com** | ✅ (pour **vérifier**) | Pas pour recevoir des tBNB — seulement pour voir ton solde. | + +### 5. Faucet — QuickNode (recommandé si erreur mainnet) + +1. Ouvre **dans Chrome** (pas dans MetaMask) : https://faucet.quicknode.com/binance-smart-chain/bnb-testnet +2. Vérifie que la page indique **Binance Smart Chain** + **Testnet** (pas Mainnet). +3. **Option 1 — la plus simple :** bouton **Connect wallet** → choisis **MetaMask** → compte **FGC_account** → autorise. +4. **Option 2 :** champ du type **« Drop in your wallet details »** / adresse → **colle** le `0x…` copié à l’étape 4. +5. Passe captcha / Continue → confirme la demande. +6. **Ne colle pas** l’adresse dans un menu déroulant « Token » (BNB/BTC) : le token **BNB** est ce qu’on **reçoit**, pas un champ d’adresse. + +### 5 bis. Faucet officiel BNB (si tu l’utilises malgré tout) + +1. Ouvrir [BNB Chain Testnet Faucet](https://www.bnbchain.org/en/testnet-faucet). +2. Grand champ **adresse du wallet** (souvent au centre) → **colle `0x…`**. +3. Ensuite seulement : choisir token **BNB** et montant **0,3** → bouton **Request** / **Send**. + - **Token : BNB** (sur testnet = **tBNB**, pas de valeur réelle). + - **Montant : 0,3 BNB** — suffisant pour deploy + démos. + - **Ne pas** choisir BTC / autres tokens pour ce projet (inutiles sur BSC testnet). +4. Valider (captcha / connexion si demandé). +5. Attendre 1–5 min → MetaMask sur réseau **Testnet** : solde **tBNB** ≈ 0,3. +6. Noter dans `decisions-projet.md` : **tBNB reçu : oui** + date. + +### 6. Dépannage rapide + +| Problème | Piste | +|----------|--------| +| Pas de « Testnet » dans la liste | Ajout **manuel** (§ 3), pas seulement « BNB Chain ». | +| Faucet OK mais solde 0 | Mauvais réseau sélectionné dans MetaMask (revenir à **97**). | +| Adresse invalide sur BscScan | Re-copier l’adresse sans espace. | +| Limite faucet | Réessayer plus tard (souvent 1× / 24 h). | +| **« less than 0.002 BNB on BSC Mainnet »** | Le [faucet BNB officiel](https://www.bnbchain.org/en/testnet-faucet) exige parfois un peu de **BNB mainnet** sur la même adresse — **inutile d’acheter** pour le sujet 42 (pas d’argent réel). Utiliser un **faucet alternatif** (§ 7). | +| **QuickNode : « Low balance for this chain and network »** + **Continue** grisé | Souvent le **faucet QuickNode est à sec** (plus de tBNB côté serveur), **pas** que tu as mal connecté MetaMask. Réessayer plus tard ou utiliser **Discord / Telegram** (§ 7 bis). | + +### 7. Faucets alternatifs (sans BNB mainnet) + +Aligné sujet : **testnet uniquement**, pas d’achat de BNB réel. + +| Faucet | URL | Remarque | +|--------|-----|----------| +| **QuickNode** (recommandé) | https://faucet.quicknode.com/binance-smart-chain/bnb-testnet | Réseau **Testnet**, coller `0x…` ou connecter MetaMask ; pas de solde mainnet requis (cooldown ~12 h). | +| **Bot Telegram BNB Chain** | [@bnbchain_official_bot](https://t.me/bnbchain_official_bot) | Message du type : `I would like to get tBNB to my wallet 0x…` — voir [doc officielle](https://docs.bnbchain.org/bnb-smart-chain/developers/faucet/). | +| **Discord BNB Chain** | Serveur officiel (ticket support) | Même idée que Telegram — doc ci-dessus. | +| Chainstack | https://faucet.chainstack.com/bnb-testnet-faucet | **Évite** si tu n’as pas **0,002 ETH mainnet** (même type de blocage). | + +Après toute source : vérifier le solde **tBNB** sur MetaMask (réseau **97**) et sur https://testnet.bscscan.com. + +### 7 bis. Discord BNB Chain (si QuickNode + officiel bloqués) + +Souvent le moyen le plus fiable quand les faucets web sont vides ou demandent du mainnet : + +1. Rejoindre le **Discord officiel** BNB Chain (lien depuis [bnbchain.org](https://www.bnbchain.org/) ou [doc faucet](https://docs.bnbchain.org/bnb-smart-chain/developers/faucet/)). +2. Canal **#roles** → prendre le rôle **Developer** (ou les rôles proposés) pour voir **#testnet-faucet**. +3. Dans **#testnet-faucet** : commande **`/faucet`** → coller ton adresse `0x…` (compte **FGC_account**). +4. Limite typique : ~0,3 tBNB / jour. + +**Telegram :** [@bnbchain_official_bot](https://t.me/bnbchain_official_bot) — message : `I would like to get tBNB to my wallet 0x…` + +### 8 bis. Avertissement MetaMask « symbole du jeton natif » (tBNB vs BNB) + +**Symptôme :** icône ⚠️ *« Il pourrait s’agir d’une arnaque »* — *vous avez saisi **tBNB** alors que le symbole attendu…* + +| Cause | Ce n’est en général **pas** une arnaque si : | +|-------|---------------------------------------------| +| Tu as ajouté le réseau **manuellement** avec symbole **tBNB** | MetaMask compare au **registre** des chaînes (chainId **97** = symbole officiel souvent **BNB**, pas `tBNB`). | +| Ta tx BscScan est **Success** sur **Bsc Testnet** | Comme ta capture : 0,1 **BNB** reçu de `0xF2D4…` → `0xB6bE…` — c’est le **bon** testnet. | + +**Correction (retour d’expérience FGC) :** + +1. Vérifier le **nom exact** du réseau : **`BNB Smart Chain Testnet`** (pas de faute, pas d’espaces parasites dans RPC / chainId). +2. Chain ID **`97`**, explorer **testnet.bscscan.com**. +3. Symbole **`tBNB`** ou **`BNB`** selon ce que MetaMask accepte sans ⚠️ — les deux désignent le gas testnet. +4. Le solde (ex. **0,1 tBNB**) ne change pas après correction du réseau. + +**À ne pas faire :** supprimer le réseau en paniquant ; **ne pas** « ignorer » des tx inconnues — ici tu as **vérifié** le hash sur testnet.bscscan.com. + +### 9. BNB ou tBNB sur l’écran du faucet ? + +Sur le **testnet**, quand le faucet affiche **« BNB »**, tu reçois bien du **tBNB** (gas de test). MetaMask peut l’afficher en **tBNB** une fois le réseau **Testnet (97)** sélectionné. Pas besoin d’une ligne « tBNB » séparée sur le site. + +### 10. Fichier `.env` (pas à l’étape 1 obligatoire) + +| Emplacement | Usage | +|-------------|--------| +| `tokenizer/.env` à la racine | Éviter d’y mettre la **seed** ; racine déjà dans `.gitignore`. | +| `tokenizerRendu/code/.env` | **Étape 2+** : `PRIVATE_KEY` du compte **test** pour Hardhat uniquement. | + +**Ne jamais committer** `.env`. La clé privée (MetaMask → Détails du compte → Afficher la clé privée) = compte test seulement, plus tard pour deploy. + +--- + ## Livrable pour demander la vérification Quand tout est fait, envoie dans le chat : diff --git a/docs/pedagogie/etapes/etape-02-init-hardhat.md b/docs/pedagogie/etapes/etape-02-init-hardhat.md new file mode 100644 index 0000000..fdb8217 --- /dev/null +++ b/docs/pedagogie/etapes/etape-02-init-hardhat.md @@ -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-) diff --git a/docs/pedagogie/parcours-etape-par-etape.md b/docs/pedagogie/parcours-etape-par-etape.md index 58d0d5b..0565e36 100644 --- a/docs/pedagogie/parcours-etape-par-etape.md +++ b/docs/pedagogie/parcours-etape-par-etape.md @@ -16,8 +16,8 @@ | # | Fichier guide | Objectif | Statut | |---|---------------|----------|--------| -| **1** | [etapes/etape-01-cadrage-wallet-testnet.md](etapes/etape-01-cadrage-wallet-testnet.md) | Décisions token + BSC testnet + tBNB | 🔄 **En cours** | -| **2** | *(à publier après validation étape 1)* | Init Hardhat dans `tokenizerRendu/code/` | ⏳ | +| **1** | [etapes/etape-01-cadrage-wallet-testnet.md](etapes/etape-01-cadrage-wallet-testnet.md) | Décisions token + BSC testnet + tBNB | ✅ **Validée** (0,1 tBNB Telegram) | +| **2** | [etapes/etape-02-init-hardhat.md](etapes/etape-02-init-hardhat.md) | Init Hardhat dans `tokenizerRendu/code/` | 🔄 **En cours** | | **3** | *(à venir)* | Contrat BEP-20 + tests | ⏳ | | **4** | *(à venir)* | Dossier `deployment/` + deploy + BscScan | ⏳ | | **5** | *(à venir)* | `documentation/` utilisateur + README école (choix, adresse) | ⏳ |