From 5d32f0a3da41dfd4f79291223a2814bd4b46169e Mon Sep 17 00:00:00 2001 From: Ladebeze66 Date: Tue, 20 Oct 2026 09:16:51 +0200 Subject: [PATCH] dochardhat_solidity --- README.md | 1 + docs/README.md | 2 + docs/pedagogie/03-hardhat-et-alternatives.md | 160 +++++++++++++++++ docs/pedagogie/README.md | 13 ++ .../pedagogie/etapes/etape-02-init-hardhat.md | 3 +- docs/pedagogie/guide-realisation.md | 3 +- docs/pedagogie/ressources-solidity-hardhat.md | 163 ++++++++++++++++++ 7 files changed, 343 insertions(+), 2 deletions(-) create mode 100644 docs/pedagogie/03-hardhat-et-alternatives.md create mode 100644 docs/pedagogie/ressources-solidity-hardhat.md diff --git a/README.md b/README.md index cc911a4..b83dc65 100644 --- a/README.md +++ b/README.md @@ -38,6 +38,7 @@ Ne pas pousser : `docs/`, traductions, captures PDF, ce README de travail. | Plan pas à pas | [docs/pedagogie/README.md](docs/pedagogie/README.md) | | Apports pédagogiques | [docs/pedagogie/01-apports-pedagogiques.md](docs/pedagogie/01-apports-pedagogiques.md) | | Web3 (définitions) | [docs/pedagogie/02-web3-comprendre.md](docs/pedagogie/02-web3-comprendre.md) | +| Tutos Solidity / Hardhat | [docs/pedagogie/ressources-solidity-hardhat.md](docs/pedagogie/ressources-solidity-hardhat.md) | ## Rendu école diff --git a/docs/README.md b/docs/README.md index c2c2f05..317e62c 100644 --- a/docs/README.md +++ b/docs/README.md @@ -18,6 +18,8 @@ Documentation du projet, sur le modèle de [piscine_mobile/docs](../../piscine_m | **Reprise / état du projet** | [pedagogie/00-reprise-et-etat.md](pedagogie/00-reprise-et-etat.md) | | **Ce que le projet t’apporte** | [pedagogie/01-apports-pedagogiques.md](pedagogie/01-apports-pedagogiques.md) | | **Web3 — définition détaillée** | [pedagogie/02-web3-comprendre.md](pedagogie/02-web3-comprendre.md) | +| **Hardhat & alternatives** | [pedagogie/03-hardhat-et-alternatives.md](pedagogie/03-hardhat-et-alternatives.md) | +| **Tutos Solidity / Hardhat** | [pedagogie/ressources-solidity-hardhat.md](pedagogie/ressources-solidity-hardhat.md) | | **Guide de réalisation** | [pedagogie/guide-realisation.md](pedagogie/guide-realisation.md) | | **Parcours pas à pas** | [pedagogie/parcours-etape-par-etape.md](pedagogie/parcours-etape-par-etape.md) | | Plan des étapes | [pedagogie/README.md](pedagogie/README.md) | diff --git a/docs/pedagogie/03-hardhat-et-alternatives.md b/docs/pedagogie/03-hardhat-et-alternatives.md new file mode 100644 index 0000000..1e105bd --- /dev/null +++ b/docs/pedagogie/03-hardhat-et-alternatives.md @@ -0,0 +1,160 @@ +# Hardhat et alternatives (Remix, Truffle, Foundry…) + +> **Contexte :** projet Tokenizer — dossier `code/` + `deployment/` ([sujet ch. IV](../sujets/tokenizer.md#chapitre-iv--partie-obligatoire)). +> **Choix projet :** [decisions-projet.md](decisions-projet.md) → **Hardhat** + OpenZeppelin. + +--- + +## 1. Le problème que résout une « toolchain » + +Écrire un fichier `.sol` ne suffit pas. Il faut : + +| Besoin | Sans outil | Avec toolchain | +|--------|------------|----------------| +| Traduire Solidity en bytecode | Impossible à la main | **Compilation** | +| Vérifier que `transfer` marche | Deploy à chaque essai sur testnet (gas) | **Tests** locaux | +| Envoyer le contrat sur BSC testnet | Tx manuelle complexe | **Scripts de déploiement** | +| Reproduire le deploy pour l’éval | Oublis, « ça marche sur ma machine » | Scripts + config **versionnés** dans Git | + +Le sujet cite explicitement : **IDE**, **Remix**, **Truffle** ou **Hardhat** — ce sont des **outils** pour compiler, tester et déployer, pas le standard BEP-20 lui-même. + +--- + +## 2. C’est quoi Hardhat ? + +**Hardhat** est un **environnement de développement** pour smart contracts sur chaînes **EVM** (Ethereum, BSC, etc.). + +- Écrit en **JavaScript / TypeScript** (Node.js). +- Projet typique : `hardhat.config.js`, dossier `contracts/`, `scripts/`, `test/`. +- Commandes courantes : + - `npx hardhat compile` — compile Solidity → artefacts dans `artifacts/` + - `npx hardhat test` — lance les tests (souvent avec **ethers.js**) + - `npx hardhat run scripts/deploy.js --network bscTestnet` — déploie sur le testnet + - `npx hardhat node` — blockchain **locale** temporaire (0 tBNB réel, pour dev) + +**Rôle dans Tokenizer :** + +| Dossier sujet | Rôle Hardhat | +|---------------|--------------| +| **`code/`** | Sources `.sol`, config Hardhat, tests, `package.json` | +| **`deployment/`** | Scripts / notes de deploy (souvent `scripts/deploy.js` appelé depuis `code/`, ou copie documentée — l’important est que l’évaluateur retrouve **comment** redéployer) | + +Hardhat ne remplace pas **MetaMask** : MetaMask **signe** ; Hardhat utilise ta **clé privée** (via `.env`) pour envoyer la transaction de deploy depuis le terminal. + +--- + +## 3. Les briques autour de Hardhat (vocabulaire) + +| Terme | Rôle | +|-------|------| +| **Solidity** | Langage du contrat (FGC42Forge.sol) | +| **OpenZeppelin** | Bibliothèque de contrats éprouvés (`ERC20`, `Ownable`) | +| **ethers.js** | Bibliothèque JS pour parler à la chaîne (lire balances, envoyer txs) | +| **RPC** | URL dans `hardhat.config` → même idée que MetaMask ([02-web3 § 3.9](02-web3-comprendre.md#39-réseau-rpc)) | +| **@nomicfoundation/hardhat-toolbox** | Pack plugins (tests, verify, etc.) recommandé par Hardhat | +| **artifacts/** | Sortie compilée (bytecode) — souvent **gitignoré**, régénéré par `compile` | +| **BscScan verify** | Publier le code source sur l’explorer (étape deploy, hors Hardhat strict mais complémentaire) | + +--- + +## 4. Alternatives citées par le sujet (et autres) + +### Remix (IDE navigateur) + +| | | +|---|---| +| **C’est quoi** | Site [remix.ethereum.org](https://remix.ethereum.org) : éditeur + compile + deploy **dans le navigateur**. | +| **Pour** | Prototyper vite, premier contrat, démo visuelle, cours. | +| **Contre** | Moins pratique pour un **dépôt 42** structuré (`code/`, tests, CI, scripts reproductibles). | +| **Tokenizer** | Autorisé par le sujet ; beaucoup d’étudiants font un **premier test** sur Remix puis migrent vers Hardhat/Truffle pour le rendu. | + +### Truffle + +| | | +|---|---| +| **C’est quoi** | Framework Node.js **plus ancien** que Hardhat : Truffle Compile, Migrate, Ganache. | +| **Pour** | Cycle complet migrations + tests ; encore vu en entreprise / anciens tutos. | +| **Contre** | Écosystème moins « par défaut » qu’Hardhat aujourd’hui ; config parfois plus lourde. | +| **Exemple 42** | [BdClement/Tokenizer](https://github.com/BdClement/Tokenizer) a choisi **Truffle** + Alchemy RPC — **valide** si README explique les choix. | + +### Foundry (forge / cast) + +| | | +|---|---| +| **C’est quoi** | Toolchain en **Rust** : `forge` (compile/test), `cast` (CLI), très rapide, tests souvent **en Solidity**. | +| **Pour** | Perf, culture « smart contract pur », projets DeFi avancés. | +| **Contre** | Courbe d’apprentissage différente (moins JS) ; moins cité dans le PDF Tokenizer. | +| **Tokenizer** | Possible si BEP-20 + deploy testnet + doc — à **justifier** dans le README école. | + +### Autres (hors PDF mais utiles à situer) + +| Outil | Note | +|-------|------| +| **Ganache / `hardhat node`** | Blockchain locale pour tests | +| **Brownie** | Python — plutôt écosystème Ethereum historique | +| **Thirdweb, etc.** | Abstractions / SDK — le sujet demande de **comprendre** ce que tu déploies ; éviter le « tout no-code » en soutenance | + +--- + +## 5. Tableau comparatif (révision soutenance) + +| Critère | Hardhat | Remix | Truffle | Foundry | +|---------|---------|-------|---------|---------| +| Où ça tourne | Terminal + VS Code | Navigateur | Terminal | Terminal | +| Langage orchestration | JS/TS | GUI | JS | Rust + Solidity tests | +| Tests automatisés | ✅ (Mocha/Chai) | Limité | ✅ | ✅ (forge) | +| Scripts deploy reproductibles | ✅ | Manuel | ✅ (migrations) | ✅ | +| Cité sujet Tokenizer | ✅ | ✅ | ✅ | ❌ (mais EVM OK) | +| Fit dossiers `code/` + `deployment/` | ✅ très bon | Moyen seul | ✅ bon | ✅ bon | + +Le sujet **n’impose pas** Hardhat : il impose de **maîtriser un outil** et de livrer du **code commenté** + deploy documenté. + +--- + +## 6. Pourquoi Hardhat pour *ton* parcours FGC ? + +| Raison | Détail | +|--------|--------| +| Alignement doc 42 / tutoriels BEP-20 | Beaucoup d’exemples OpenZeppelin + Hardhat | +| Un seul écosystème **Node** | `npm install`, proche d’autres stacks JS | +| Tests avant testnet | Économise tes **0,1 tBNB** | +| `hardhat.config.js` | Réseau **bscTestnet** chainId **97** = même logique que MetaMask | +| Séparation claire | `contracts/` + `scripts/` → facile à expliquer en **code review** | + +Tu pourrais dire en soutenance : + +> « J’ai choisi **Hardhat** pour compiler et tester **FGC42Forge** en local, puis déployer sur **BSC Testnet** avec un script reproductible dans le dépôt, comme le sujet le prévoit pour la partie deployment. » + +--- + +## 7. Flux mental : de Hardhat à la chaîne + +```mermaid +flowchart LR + subgraph local [Machine dev] + SOL[FGC42Forge.sol] + HH[Hardhat compile / test] + SCRIPT[script deploy.js] + end + subgraph chain [BSC Testnet 97] + RPC[RPC URL] + SC[Adresse contrat] + end + SOL --> HH + HH --> SCRIPT + SCRIPT -->|tx signée PRIVATE_KEY| RPC + RPC --> SC + SC --> BSCScan[testnet.bscscan.com] +``` + +MetaMask reste utile pour **démos manuelles** (`transfer` FG42) ; Hardhat sert surtout au **deploy** et aux **tests**. + +--- + +## 8. Liens + +- **Index complet tutos & docs :** [ressources-solidity-hardhat.md](ressources-solidity-hardhat.md) +- [Hardhat — Getting started](https://hardhat.org/hardhat-runner/docs/getting-started) +- [OpenZeppelin Contracts](https://docs.openzeppelin.com/contracts/) +- Étape suivante : [etape-02-init-hardhat.md](etapes/etape-02-init-hardhat.md) +- [guide-realisation.md](guide-realisation.md) diff --git a/docs/pedagogie/README.md b/docs/pedagogie/README.md index 0c94dc1..5f94cfc 100644 --- a/docs/pedagogie/README.md +++ b/docs/pedagogie/README.md @@ -12,6 +12,19 @@ Parcours pour construire le projet **étape par étape** et le défendre en sout → **[decisions-projet.md](decisions-projet.md)** — choix token / chaîne / wallet (**travail**, pas rendu école). +→ **[03-hardhat-et-alternatives.md](03-hardhat-et-alternatives.md)** — **Hardhat**, Remix, Truffle, Foundry (sujet ch. IV). + +→ **[ressources-solidity-hardhat.md](ressources-solidity-hardhat.md)** — **tutos & docs officiels** Solidity, Hardhat, OpenZeppelin, BSC (parcours d’apprentissage). + +## Apprentissage Solidity / Hardhat + +| Priorité | Document / lien | +|----------|-----------------| +| Index ressources | [ressources-solidity-hardhat.md](ressources-solidity-hardhat.md) | +| Concepts Web3 | [02-web3-comprendre.md](02-web3-comprendre.md) | +| Pourquoi Hardhat | [03-hardhat-et-alternatives.md](03-hardhat-et-alternatives.md) | +| Plan lecture minimum (avant étape 3) | [ressources-solidity-hardhat.md § 8](ressources-solidity-hardhat.md#8-plan-de-lecture-minimum-avant-létape-3) | + → **[01-apports-pedagogiques.md](01-apports-pedagogiques.md)** — **ce que ce projet t’apporte** (compétences, concepts). → **[02-web3-comprendre.md](02-web3-comprendre.md)** — **Web3 : définition détaillée** (RPC, ERC-20/BEP-20, **PoW/PoS/PoA**, **multisig**, owner, BNB / Binance). diff --git a/docs/pedagogie/etapes/etape-02-init-hardhat.md b/docs/pedagogie/etapes/etape-02-init-hardhat.md index fdb8217..dfe6f14 100644 --- a/docs/pedagogie/etapes/etape-02-init-hardhat.md +++ b/docs/pedagogie/etapes/etape-02-init-hardhat.md @@ -1,7 +1,8 @@ # É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**). +> **Prérequis :** étape 1 ✅ (réseau BSC Testnet 97, tBNB sur **FGC_account**). +> **Lire d’abord (recommandé) :** [Hardhat et alternatives](03-hardhat-et-alternatives.md) · [Ressources Solidity / Hardhat](ressources-solidity-hardhat.md) (§ 2 + § 8 plan minimum). --- diff --git a/docs/pedagogie/guide-realisation.md b/docs/pedagogie/guide-realisation.md index 3d2a2fb..f0398ec 100644 --- a/docs/pedagogie/guide-realisation.md +++ b/docs/pedagogie/guide-realisation.md @@ -1,7 +1,8 @@ # Guide de réalisation — Tokenizer > **Objectif :** document de travail pour **coder, déployer et défendre** le projet. À mettre à jour quand le code existe (chemins, commandes, adresses). -> **Référence sujet :** [tokenizer.md](../sujets/tokenizer.md) +> **Référence sujet :** [tokenizer.md](../sujets/tokenizer.md) +> **Apprentissage :** [ressources-solidity-hardhat.md](ressources-solidity-hardhat.md) --- diff --git a/docs/pedagogie/ressources-solidity-hardhat.md b/docs/pedagogie/ressources-solidity-hardhat.md new file mode 100644 index 0000000..a4e14bb --- /dev/null +++ b/docs/pedagogie/ressources-solidity-hardhat.md @@ -0,0 +1,163 @@ +# Ressources — apprendre Solidity & Hardhat (Tokenizer) + +> Liens **officiels** et parcours suggérés pour le projet **FGC42Forge** (BEP-20, BSC Testnet, Hardhat). +> Priorité : comprendre ce que tu déploies, pas tout lire d’un coup. + +--- + +## Parcours suggéré (ordre) + +| Phase | Quand | Objectif | Section ci-dessous | +|-------|--------|----------|-------------------| +| **A** | Avant / pendant étape 2 | Solidity : types, fonctions, `constructor` | § 1 | +| **B** | Étapes 2–3 | Hardhat : compile, test, config réseau | § 2 | +| **C** | Étape 3 | ERC-20 / OpenZeppelin, `Ownable` | § 3 | +| **D** | Étape 4+ | Deploy, verify BscScan, gas | § 4 | +| **E** | Optionnel | Approfondir Web3 / BNB | § 5 | + +Croiser avec : [02-web3-comprendre.md](02-web3-comprendre.md) · [03-hardhat-et-alternatives.md](03-hardhat-et-alternatives.md) · [decisions-projet.md](decisions-projet.md). + +--- + +## 1. Solidity — bases + +### Documentation officielle (référence) + +| Ressource | URL | À utiliser pour | +|-----------|-----|-----------------| +| **Solidity docs** (EN, référence) | https://docs.soliditylang.org/ | Syntaxe, types, visibilité, modifiers, erreurs | +| **By example** (courts extraits) | https://docs.soliditylang.org/en/latest/by-example.html | `mapping`, `modifier`, `events` | +| **Structure d’un contrat** | https://docs.soliditylang.org/en/latest/structure-of-a-contract.html | `state variables`, `functions`, `constructor` | +| **Sécurité (patterns)** | https://docs.soliditylang.org/en/latest/security-considerations.html | Bonnes pratiques (soutenance) | + +### Chapitres utiles pour Tokenizer (lecture ciblée) + +| Chapitre / thème | Pourquoi pour FGC42Forge | +|------------------|---------------------------| +| **Types** (`uint256`, `address`) | Soldes, adresses owner / holders | +| **Fonctions** (`public`, `view`, `pure`) | `balanceOf`, `transfer` (via ERC20) | +| **`constructor`** | Mint initial de la supply au deploy | +| **`modifier`** | Comprendre `onlyOwner` (OpenZeppelin) | +| **`require` / revert** | Tests « non-owner ne peut pas mint » | +| **Héritage** | `contract FGC42Forge is ERC20, Ownable` | + +### Tutoriels / cours (gratuits) + +| Ressource | URL | Note | +|-----------|-----|------| +| **Ethereum.org — Solidity** | https://ethereum.org/fr/developers/docs/programming-languages/solidity/ | Point d’entrée FR, liens vers la doc | +| **Ethereum.org — smart contracts** | https://ethereum.org/fr/developers/docs/smart-contracts/ | Concepts avant le code | +| **CryptoZombies** (jeu, EN) | https://cryptozombies.io/ | Solidity ludique — chapitres 1–3 suffisent pour démarrer | +| **OpenZeppelin — Learn** | https://docs.openzeppelin.com/learn/ | Articles ERC-20, access control (EN) | + +### Vidéos (optionnel, EN souvent) + +Chercher sur YouTube : *「Solidity tutorial 2024」* + *「ERC20 OpenZeppelin」* — privilégier chaînes qui montrent **testnet**, pas mainnet avec argent réel. + +--- + +## 2. Hardhat — bases + +### Documentation officielle + +| Ressource | URL | À utiliser pour | +|-----------|-----|-----------------| +| **Hardhat — Getting started** | https://hardhat.org/hardhat-runner/docs/getting-started | Install, premier `compile` | +| **Configuration** | https://hardhat.org/hardhat-runner/docs/config | `networks.bscTestnet`, `solidity` version | +| **Testing contracts** | https://hardhat.org/hardhat-runner/docs/guides/test-contracts | Écrire tests étape 3 | +| **Deploying** | https://hardhat.org/hardhat-runner/docs/guides/deploying | Scripts → dossier `deployment/` | +| **Hardhat Network** | https://hardhat.org/hardhat-network/docs | `hardhat node` — tests sans tBNB | +| **Hardhat Toolbox** | https://hardhat.org/hardhat-runner/plugins/nomicfoundation-hardhat-toolbox | Plugins inclus (`ethers`, verify, etc.) | + +### Tutoriels alignés BSC / testnet + +| Ressource | URL | Note | +|-----------|-----|------| +| **BNB Chain — dev docs** | https://docs.bnbchain.org/bnb-smart-chain/developers/ | Faucet, réseau, outils | +| **How to Create a BEP20 Token** (QuickNode) | https://www.quicknode.com/guides/smart-contract-development/how-to-create-and-deploy-a-bep-20-token | Proche du sujet Tokenizer (vérifie dates / versions) | +| **OpenZeppelin — ERC20 guide** | https://docs.openzeppelin.com/contracts/5.x/erc20 | Utilisation `ERC20` + `_mint` | + +### Commandes à connaître (fiche mémo) + +```bash +cd tokenizerRendu/code +npm install +npx hardhat compile # compile contracts/ +npx hardhat test # tests/ +npx hardhat node # chaîne locale (optionnel) +npx hardhat run scripts/deploy.js --network bscTestnet +``` + +--- + +## 3. ERC-20 / BEP-20 & OpenZeppelin (cœur du projet) + +| Ressource | URL | Contenu | +|-----------|-----|---------| +| **OpenZeppelin ERC20** | https://docs.openzeppelin.com/contracts/5.x/erc20 | API : `transfer`, `approve`, `_mint`, `_burn` | +| **OpenZeppelin Ownable** | https://docs.openzeppelin.com/contracts/5.x/access-control#ownership-and-ownable | `owner()`, `onlyOwner` | +| **EIP-20 (standard)** | https://eips.ethereum.org/EIPS/eip-20 | Spec originale (= logique BEP-20) | +| **Doc projet — BEP-20** | [02-web3 § 6](02-web3-comprendre.md#6-standards-erc-20-et-bep-20) | Lien sujet 42 + BSC | + +**Exercice mental :** lire la doc `ERC20` et lister quelles fonctions tu **exposes** dans FGC42Forge et lesquelles viennent **uniquement** du parent OpenZeppelin. + +--- + +## 4. Déploiement, explorer, verify + +| Ressource | URL | Contenu | +|-----------|-----|---------| +| **BscScan — verify** | https://testnet.bscscan.com/verifyContract | Publier le source après deploy | +| **Hardhat — verify plugin** | https://hardhat.org/hardhat-runner/plugins/nomicfoundation-hardhat-verify | `npx hardhat verify --network bscTestnet ` | +| **BNB — faucet** | https://docs.bnbchain.org/bnb-smart-chain/developers/faucet/ | tBNB (tu as déjà utilisé Telegram) | +| **Guide réalisation** | [guide-realisation.md](guide-realisation.md) | Étapes deploy du dépôt perso | + +--- + +## 5. ethers.js (utilisé par Hardhat) + +| Ressource | URL | Contenu | +|-----------|-----|---------| +| **ethers v6 docs** | https://docs.ethers.org/v6/ | `Wallet`, `Contract`, `parseEther` | +| **Hardhat + ethers** | https://hardhat.org/hardhat-runner/docs/advanced/using-ethers | Dans tests et scripts deploy | + +Tu n’as pas besoin de tout maîtriser : savoir lire un script `deploy.js` qui fait `const Token = await ethers.getContractFactory("FGC42Forge")` suffit au début. + +--- + +## 6. Outils complémentaires (sujet les cite) + +| Outil | URL | Usage | +|-------|-----|--------| +| **Remix IDE** | https://remix.ethereum.org/ | Test rapide d’un `.sol` sans Hardhat | +| **Truffle docs** | https://archive.truffleframework.com/docs | Comparaison — [03-hardhat](03-hardhat-et-alternatives.md) | +| **Solidity VS Code** | Extension « Solidity » (Nomic Foundation) | Coloration, compilation locale | + +--- + +## 7. Fiches projet Tokenizer (doc interne) + +| Document | Lien | +|----------|------| +| Sujet traduit | [../sujets/tokenizer.md](../sujets/tokenizer.md) | +| Web3, RPC, mint, multisig | [02-web3-comprendre.md](02-web3-comprendre.md) | +| Hardhat vs alternatives | [03-hardhat-et-alternatives.md](03-hardhat-et-alternatives.md) | +| Étapes pas à pas | [parcours-etape-par-etape.md](parcours-etape-par-etape.md) | +| Étape 2 Hardhat | [etapes/etape-02-init-hardhat.md](etapes/etape-02-init-hardhat.md) | + +--- + +## 8. Plan de lecture « minimum » avant l’étape 3 + +Si tu manques de temps, lire au moins : + +1. [Solidity — Simple Storage](https://docs.soliditylang.org/en/latest/introduction-to-smart-contracts.html) (intro officielle) +2. [OpenZeppelin ERC20 — Usage](https://docs.openzeppelin.com/contracts/5.x/erc20#usage) +3. [Hardhat — Getting started](https://hardhat.org/hardhat-runner/docs/getting-started) jusqu’au premier `compile` +4. [02-web3 § 7.2](02-web3-comprendre.md#72-glossaire-anglais--supply-owner-ownable-onlyowner) (supply, owner, onlyOwner) + +Ensuite : coder `FGC42Forge.sol` avec le guide étape 3 (à venir après validation étape 2). + +--- + +*Dernière mise à jour : liens vérifiés oct. 2026 — signaler dans le chat si un lien est mort pour mise à jour.*