Files
tokenizer/tokenizerRendu/deployment/BSCSCAN_VERIFICATION.md
2026-10-20 15:00:37 +02:00

5.0 KiB
Raw Blame History

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

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/.)