Files
2026-10-22 11:39:33 +02:00

161 lines
7.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Documentation utilisateur — FGC42Forge (FG42)
Ce document permet de **comprendre** le token et de **l’utiliser** (wallet, transferts) sans lire le code Solidity.
> Documentation **utilisateur** du token : à lire sans ouvrir le code Solidity. Le développement et les tests sont dans `code/` ; le déploiement on-chain est décrit dans `deployment/`.
---
## 1. Présentation
**FGC42Forge** est un jeton **BEP-20** déployé sur **BNB Smart Chain Testnet** dans le cadre du projet 42 *Tokenizer*.
| Élément | Valeur |
|---------|--------|
| **Nom** | FGC42Forge |
| **Symbole** | FG42 |
| **Standard** | BEP-20 (interface équivalente à l’ERC-20 sur l’EVM) |
| **Décimales** | 18 |
| **Offre totale** | 1 000 000 FG42 |
**Rôle :** token de démonstration (tests, déploiement, wallet, explorateur de blocs).
**Valeur :** aucune valeur monétaire réelle ; réseau de **test** uniquement. Le gas se paie en **tBNB**.
**Offre et création de jetons :** les 1 000 000 FG42 ont été émis **une seule fois** lors du déploiement du contrat. Il n’existe **aucune fonction publique** pour en créer davantage après coup (*pas de mint*). Seuls les **transferts** entre comptes déplacent des FG42 déjà existants ; l’offre totale on-chain ne augmente pas.
*FGC* : initiales du créateur du projet · **42** : contrainte du sujet · *Forge* : métaphore de la création du jeton au moment du deploy.
---
## 2. Réseau et adresse
| Paramètre | Valeur |
|-----------|--------|
| **Réseau** | BNB Smart Chain **Testnet** |
| **Chain ID** | `97` |
| **Monnaie gas** | tBNB |
| **Adresse du contrat** | `0x0c76df26A1149fDc22C8f994975705271b070fF4` |
**Liens utiles :**
- Page **contrat** : https://testnet.bscscan.com/address/0x0c76df26A1149fDc22C8f994975705271b070fF4
- Page **token** (supply, holders, transfers) : https://testnet.bscscan.com/token/0x0c76df26A1149fDc22C8f994975705271b070fF4
Données structurées du déploiement : [`../deployment/addresses.json`](../deployment/addresses.json).
### Contrat vérifié sur BscScan
Le **code source** est publié sur l’explorateur (onglet **Contract** → code lisible). Utile en correction pour prouver que le déployé correspond au dépôt Git.
| Élément | Détail |
|---------|--------|
| **Statut** | Vérifié (2026-10-20) |
| **Tx de création** | [`0xb6a0…4072`](https://testnet.bscscan.com/tx/0xb6a0ec09d4db0e9f0686aca6ad5d8ca71cecaf8d43405eeed214736bb8574072) |
| **Fiche technique complète** | [`../deployment/BSCSCAN_VERIFICATION.md`](../deployment/BSCSCAN_VERIFICATION.md) (compilateur, optimizer, fichier aplati) |
### Configurer MetaMask (réseau)
Si le réseau n’est pas déjà présent :
| Champ | Valeur |
|-------|--------|
| Nom du réseau | BNB Smart Chain Testnet |
| RPC URL | `https://data-seed-prebsc-1-s1.binance.org:8545/` |
| Chain ID | `97` |
| Symbole | tBNB |
| Explorateur | `https://testnet.bscscan.com` |
Obtenir du **tBNB** : faucet BNB Chain testnet ou canaux officiels (Telegram @bnbchain_official_bot, etc.).
---
## 3. Guide d’utilisation
### MetaMask — rôle dans ce projet
**MetaMask** est une extension navigateur qui joue le rôle de **portefeuille (wallet)** : elle stocke tes comptes (adresses `0x…`), te permet de **signer** des transactions et d’afficher les soldes (tBNB pour le gas, FG42 après import du token).
Hardhat, dans `code/`, sert au **développement** (compile, tests, deploy) ; MetaMask sert à la **démo utilisateur** réelle sur BSC Testnet. Les deux utilisent le même type d’adresses EVM, mais ce dépôt ne met **jamais** la seed MetaMask dans Git — seule la clé du compte de deploy peut aller dans `code/.env` local pour Ignition.
### 3.1 Importer FG42 dans MetaMask
1. Ouvrir MetaMask sur le réseau **BNB Smart Chain Testnet**.
2. Menu **Tokens** → **Importer des tokens** (*Import tokens*).
3. Coller l’**adresse du contrat** :
`0x0c76df26A1149fDc22C8f994975705271b070fF4`
4. Le symbole **FG42** et les **18** décimales se remplissent en général automatiquement → confirmer.
Le compte qui a **déployé** le contrat détient initialement **1 000 000 FG42** (visible après import). Les autres comptes affichent **0** jusqu’à réception d’un transfer.
### 3.2 Consulter le token sur BscScan
1. Ouvrir la [page token](https://testnet.bscscan.com/token/0x0c76df26A1149fDc22C8f994975705271b070fF4).
2. Vérifier **Max Total Supply** : 1 000 000 FG42.
3. Onglet **Transfers** : historique des mouvements BEP-20.
### 3.3 Effectuer un transfert (MetaMask)
**Prérequis :** le compte émetteur possède des FG42 et un peu de **tBNB** pour le gas.
1. MetaMask → actif **FG42** → **Envoyer** (*Send*).
2. Adresse du destinataire (autre compte test).
3. Montant (ex. `100` FG42) → confirmer la transaction.
4. Vérifier sur BscScan (onglet Transfers du token) et dans le wallet du destinataire (importer le token si besoin).
**Note :** un transfer **ne crée pas** de nouveaux FG42 ; il déplace une partie de l’offre existante.
---
## 4. Sécurité et gouvernance
| Sujet | Comportement de FGC42Forge |
|-------|----------------------------|
| **Testnet** | Jeton fictif ; ne pas utiliser de fonds mainnet sur les comptes de démo. |
| **Supply** | Fixe à **1 000 000 FG42** après le deploy. |
| **Mint** | Aucune fonction publique pour augmenter l’offre. |
| **Burn** | Non implémenté dans ce contrat. |
| **Owner** | Le contrat utilise **OpenZeppelin `Ownable`** : une adresse `owner()` (le déployeur au lancement) peut gérer le rôle admin (ex. `transferOwnership`), mais **sans** pouvoir mint des FG42 supplémentaires via ce contrat. |
| **Clés privées** | Ne jamais partager seed phrase ni clé privée ; ne pas les committer dans Git. |
Pour le modèle technique (Hardhat, OpenZeppelin, choix BSC), voir le [README racine](../README.md#choix-techniques).
**Code commenté (revue en évaluation)** : [`../code/contracts/FGC42Forge.sol`](../code/contracts/FGC42Forge.sol) · index [`../code/README.md`](../code/README.md).
---
## 5. Whitepaper léger (rôle, fonctionnalités, limites)
### Vision
**FGC42Forge (FG42)** est un jeton **BEP-20** pédagogique : il montre comment un actif numérique **fongible** vit on-chain (supply, transfers, lecture via wallet et explorateur), dans le respect du sujet 42 *Tokenizer* (testnet, nom avec **42**, pas d’argent réel).
### Fonctionnalités
| Fonction | Disponible | Détail |
|----------|------------|--------|
| `name` / `symbol` / `decimals` | Oui | FGC42Forge, FG42, 18 |
| `totalSupply` / `balanceOf` | Oui | Supply fixe 1 000 000 |
| `transfer` / `approve` / `transferFrom` | Oui | Standard ERC-20 (BEP-20 sur BSC) |
| Mint public après deploy | **Non** | Offre figée au constructeur |
| Burn | Non | Non implémenté |
| Pause / blacklist | Non | Hors périmètre |
| Multisig (bonus sujet) | Non | Non retenu — voir README racine |
### Public cible
- Évaluateurs et pairs : vérifier le contrat sur BscScan et tester un transfer.
- Développeurs : cloner le dépôt, lire [`STACK-GLOSSAIRE-ET-PARCOURS.md`](STACK-GLOSSAIRE-ET-PARCOURS.md), exécuter les tests dans `code/`.
### Limites
- **Testnet uniquement** — aucune valeur marchande ; tBNB et FG42 sont jetons d’essai.
- **Pas de gouvernance on-chain** avancée : seul le modèle `Ownable` OpenZeppelin (sans mint).
- **Dépendance wallet** : l’usage humain passe par MetaMask (ou tout wallet EVM compatible) ; le gas reste en **tBNB**, pas en FG42.
### Où aller plus loin dans ce dépôt
| Besoin | Fichier |
|--------|---------|
| Outils (Hardhat, Solidity, alternatives) | [`STACK-GLOSSAIRE-ET-PARCOURS.md`](STACK-GLOSSAIRE-ET-PARCOURS.md) |
| Choix techniques et pourquoi | [README racine](../README.md#choix-techniques) |
| Code source commenté | [`../code/contracts/FGC42Forge.sol`](../code/contracts/FGC42Forge.sol) |