source_code
This commit is contained in:
@@ -1,6 +1,8 @@
|
||||
# Vérification du contrat sur BscScan (testnet)
|
||||
|
||||
Fiche **correction / soutenance** : paramètres utilisés pour publier le source et prouver que le bytecode on-chain correspond au dépôt.
|
||||
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
|
||||
|
||||
@@ -20,12 +22,50 @@ Fiche **correction / soutenance** : paramètres utilisés pour publier le source
|
||||
| **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`](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/`) :
|
||||
|
||||
```bash
|
||||
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é** | [`FGC42Forge_flat.sol`](FGC42Forge_flat.sol) (généré via `npx hardhat flatten contracts/FGC42Forge.sol`) |
|
||||
| **Fichier source collé** | Contenu intégral de [`FGC42Forge_flat.sol`](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`) |
|
||||
@@ -40,9 +80,11 @@ Fiche **correction / soutenance** : paramètres utilisés pour publier le source
|
||||
- Contrat vérifié : https://testnet.bscscan.com/address/0x0c76df26A1149fDc22C8f994975705271b070fF4#code
|
||||
- Token FG42 : https://testnet.bscscan.com/token/0x0c76df26A1149fDc22C8f994975705271b070fF4
|
||||
|
||||
## Régénérer le fichier aplati
|
||||
## Rappel — régénérer le fichier aplati
|
||||
|
||||
```bash
|
||||
cd tokenizerRendu/code
|
||||
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/`.)*
|
||||
|
||||
@@ -26,7 +26,7 @@ Hardhat peut afficher une estimation de gas et demander une confirmation.
|
||||
1. Copier `addresses.json.example` → **`addresses.json`** et remplir `address`, `deployer`, `deployedAt`, `explorer`.
|
||||
2. Ouvrir l’URL **BscScan** testnet et vérifier que le contrat apparaît (transfers possibles après deploy).
|
||||
3. Mettre à jour le [README racine](../README.md) (adresse + lien explorer).
|
||||
4. *(Recommandé sujet)* Vérifier / publier le source sur BscScan (**Verify Contract**) — voir doc sujet.
|
||||
4. *(Recommandé sujet)* Vérifier / publier le **code source** sur BscScan (**Verify Contract**) — voir [`BSCSCAN_VERIFICATION.md`](BSCSCAN_VERIFICATION.md).
|
||||
|
||||
## Fichiers
|
||||
|
||||
|
||||
Reference in New Issue
Block a user