5.0 KiB
Vérification du contrat sur BscScan (testnet)
Fiche correction / soutenance : réglages BscScan utilisés pour publier le code source du contrat et obtenir le badge Verified — l’explorateur recompile ce code et vérifie qu’il produit le même bytecode que celui déjà enregistré à l’adresse sur la chaîne (donc le même programme que dans le dépôt code/).
Vocabulaire (français) : on dit le code source (masculin : le code) ou la source du contrat, pas « le source » (calque de l’anglais source code). Le bytecode, lui, est le binaire déployé on-chain, illisible sans vérification.
Statut
| Champ | Valeur |
|---|---|
| Vérifié | Oui (2026-10-20) |
| Contrat | FGC42Forge |
| Adresse | 0x0c76df26A1149fDc22C8f994975705271b070fF4 |
| Réseau | BNB Smart Chain Testnet (chainId 97) |
Transaction de création (deploy)
| Champ | Valeur |
|---|---|
| Tx hash | 0xb6a0ec09d4db0e9f0686aca6ad5d8ca71cecaf8d43405eeed214736bb8574072 |
| Lien | https://testnet.bscscan.com/tx/0xb6a0ec09d4db0e9f0686aca6ad5d8ca71cecaf8d43405eeed214736bb8574072 |
| Bloc | 137872368 |
| Deployer | 0xB6bE1878BfaF1FFC8503E752b1D733Ad7b93603c |
Fichier FGC42Forge_flat.sol — rôle et génération
Pourquoi ce fichier existe
Dans le dépôt, le token est écrit dans code/contracts/FGC42Forge.sol avec des imports OpenZeppelin (ERC20, Ownable). Sur disque, le compilateur lit plusieurs fichiers.
BscScan, en mode « Solidity (Single file) », attend un seul fichier texte contenant tout le code compilé ensemble (ton contrat et les bibliothèques). Ce n’est pas le bytecode : c’est le source Solidity fusionné, utilisé par l’explorateur pour recompiler et comparer au bytecode déjà déployé sur la chaîne.
| Fichier | Rôle |
|---|---|
code/contracts/FGC42Forge.sol |
Source maintenu dans le projet (lisible, versionné). |
FGC42Forge_flat.sol |
Copie de travail pour BscScan : même logique, aplati (~740 lignes). Utile en correction pour refaire une vérif sans recopier à la main les imports OZ. |
Le contrat on-chain ne change pas quand tu génères ou modifies ce fichier : seule la publication du code source sur BscScan s’en sert.
Commande utilisée pour le générer
À lancer depuis la racine du dépôt école (chemins relatifs au dossier tokenizerRendu/) :
cd code
npx hardhat flatten contracts/FGC42Forge.sol > ../deployment/FGC42Forge_flat.sol
| Partie | Signification |
|---|---|
cd code |
Hardhat lit hardhat.config.ts et node_modules dans tokenizerRendu/code/. |
npx hardhat flatten |
Tâche Hardhat qui fusionne un contrat et toutes ses dépendances Solidity en un seul flux de texte. |
contracts/FGC42Forge.sol |
Point d’entrée : le fichier de ton token (pas Counter). |
> |
Redirection : écrit la sortie dans un fichier au lieu de l’afficher dans le terminal. |
../deployment/FGC42Forge_flat.sol |
Fichier de sortie dans deployment/ (à côté de cette fiche). |
Vérification rapide : ouvrir FGC42Forge_flat.sol — les premières lignes mentionnent Sources flattened with hardhat ; plus bas, tu dois retrouver contract FGC42Forge.
Quand régénérer : si tu modifies FGC42Forge.sol ou la version OpenZeppelin, puis redéploies ou refais une vérif BscScan — regénère le .flat.sol avant de le coller sur l’explorateur.
Paramètres BscScan « Verify & Publish » (succès)
| Paramètre | Valeur retenue |
|---|---|
| Méthode | Solidity (Single file) |
| Fichier source collé | Contenu intégral de FGC42Forge_flat.sol (voir section ci-dessus) |
| Nom du contrat | FGC42Forge |
| Compilateur (liste BscScan) | v0.8.24+commit.89d56535 (valeur affichée par BscScan après vérif réussie) |
| Optimisation | Activée (Yes / 1) |
| Optimizer runs | 200 |
| Licence | MIT |
| Arguments du constructeur | (vide) |
Note dev : le projet compile en local avec Solidity 0.8.34 (Hardhat 3). Pour la vérification, BscScan a accepté la combinaison single file aplati + optimizer 200. En cas de nouvelle tentative, aligner optimization Yes / 200 ; si échec « bytecode mismatch », essayer Standard JSON Input depuis
code/ignition/deployments/chain-97/build-info/solc-0_8_34-….json.
Liens à montrer en évaluation
- Contrat vérifié : https://testnet.bscscan.com/address/0x0c76df26A1149fDc22C8f994975705271b070fF4#code
- Token FG42 : https://testnet.bscscan.com/token/0x0c76df26A1149fDc22C8f994975705271b070fF4
Rappel — régénérer le fichier aplati
cd code
npx hardhat flatten contracts/FGC42Forge.sol > ../deployment/FGC42Forge_flat.sol
(Depuis tokenizerRendu/ ; si tu es à la racine du dépôt de travail, préfixe par tokenizerRendu/.)