tokencreation
This commit is contained in:
@@ -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 | ⏳ |
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
@@ -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` |
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -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 :
|
||||
|
||||
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-)
|
||||
@@ -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) | ⏳ |
|
||||
|
||||
Reference in New Issue
Block a user