Solidity starter : écrire un ERC-20 et le tester avec Foundry

cours en ligne

26 janvier 2026

Ce guide présente un parcours pratique pour coder un ERC-20 avec Solidity et Foundry, étape par étape. L’objectif est d’expliquer la compilation, les tests unitaires et le déploiement sur Ethereum de façon concrète et actionnable.

Ce parcours s’adresse aux développeurs curieux et aux auditeurs techniques cherchant la maîtrise du cycle de vie d’un token. Les points essentiels suivants dégagent les priorités pour un démarrage sécurisé.

A retenir :

  • Tests unitaires et fuzzing systématiques sur code ERC-20
  • Respect strict des interfaces ERC-20 et métadonnées du token
  • Utilisation d’OpenZeppelin pour sécurité et gains de compilation
  • Infrastructure de tests rapide avec Foundry et chaînes locales

Après avoir retenu l’essentiel, Solidity et ERC-20 : bases pour écrire un token testable

Comprendre le standard ERC-20 et ses fonctions

Ce point détaille pourquoi le standard ERC-20 structure les échanges de token sur Blockchain. Les fonctions clés comme transfer, approve et transferFrom définissent le comportement et les permissions contractuelles.

A lire également :  Excel 365 : Power Query pour automatiser vos fichiers

Le tableau ci-dessous synthétise les signatures et le rôle de chaque fonction, pour une lecture rapide et comparative. Ces informations reposent sur la spécification ERC-20 et la documentation reconnue du standard.

Fonction Signature But Exemple d’appel
totalSupply function totalSupply() external view returns (uint256) Offre totale du token token.totalSupply()
balanceOf function balanceOf(address) external view returns (uint256) Solde d’un compte token.balanceOf(addr)
transfer function transfer(address,uint256) external returns (bool) Envoi direct de tokens token.transfer(addr, amount)
approve function approve(address,uint256) external returns (bool) Autoriser un tiers à dépenser token.approve(spender, amount)
transferFrom function transferFrom(address,address,uint256) external returns (bool) Débit via allowance token.transferFrom(from, to, amount)
allowance function allowance(address,address) external view returns (uint256) Montant autorisé restant token.allowance(owner, spender)

Écrire un ERC-20 minimal avec OpenZeppelin

Ce volet montre comment utiliser OpenZeppelin pour accélérer le développement Solidity. L’héritage d’OpenZeppelin réduit les risques et simplifie la compilation sur versions 0.8.

Les patterns d’héritage permettent de conserver la conformité ERC-20 tout en ajoutant des hooks personnalisés. Ces choix facilitent la mise en place de tests rapides avec Foundry.

Étapes de base :

  • Créer contrat héritant d’ERC20 et initialiser supply
  • Implémenter métadonnées nom et symbole lors du constructeur
  • Utiliser les fonctions d’OpenZeppelin pour évènements et sécurité
  • Compiler avec pragma solidity ^0.8 et options d’optimisation
A lire également :  Quelle est la meilleure formation full stack en 2025 ?

Compilation et tests unitaires avec Foundry : mise en place rapide

Installer Foundry et compiler les contrats

Ce point détaille l’installation de Foundry et les commandes de compilation nécessaires. Foundry offre un workflow rapide, compilation incrémentale et exécution native des tests.

Selon Foundry, la compilation est optimisée pour de nombreux projets Solidity modernes, ce qui accélère le cycle de développement. Les commandes de base suffisent pour initier un dépôt et lancer les builds.

Commande Action Exemple Remarque
forge init Initialise projet Foundry forge init my-token Création du squelette de projet
forge build Compile contrats Solidity forge build Compilation incrémentale rapide
forge test Exécute tests unitaires forge test –match-contract Token Affichage natif des traces
anvil Blockchain locale RPC anvil -p 8545 Simule testnet localement

Ces commandes suffisent pour écrire et exécuter des tests unitaires locaux rapidement. L’étape suivante consiste à rédiger des tests Solidity compréhensibles et robustes.

Tester un ERC-20 avec Foundry : exemples et bonnes pratiques

Ce segment décrit l’écriture de tests unitaires en Solidity pour un ERC-20. Selon OpenZeppelin, couvrir transfers, approvals et allowances réduit les risques d’exploitation.

A lire également :  De zéro à Full-Stack avec React et Node.js : la roadmap 2026

Selon Foundry, le fuzzing et les invariant tests complètent les assertions classiques efficacement, améliorant la détection de cas limites. Les assertions doivent vérifier états, évènements et invariants de supply.

Pratiques de test :

  • Tester transferts normaux et échecs attendus
  • Couvrir allowances et double-spend
  • Fuzz inputs sur montants et adresses invalides
  • Vérifier événements Transfer et Approval

« J’ai réduit les bugs grâce à Foundry en quelques jours, les tests restent reproductibles. »

Alice B.

Fort des tests, Déploiement sur testnet et bonnes pratiques de développement Ethereum

Déployer un token ERC-20 sur testnet

Ce volet explique comment préparer un déploiement sur un réseau testnet Ethereum. Utiliser des comptes locales, des faucets et anvil facilite les essais sans coûts réels.

Selon Ethereum Foundation, tester sur testnets réduit significativement les erreurs de production et permet d’ajuster paramètres de gas. La migration contrôlée aide aussi à vérifier intégrations externes.

Checklist déploiement testnet :

  • Vérifier balances et allowances après migration
  • Contrôles de sécurité via scripts d’audit
  • Rotation des clés et gestion des propriétaires
  • Tests de gas et optimisation de compilation

« En migrant vers OpenZeppelin, notre équipe a gagné en confiance sur les releases. »

Marc L.

Bonnes pratiques de sécurité et revue de code

Ce point détaille les mesures de sécurité essentielles pour un smart contract ERC-20. Les audits externes, la revue manuelle et les invariant tests limitent les vecteurs d’attaque.

Mettre en place des tests de fuzzing, des contrôles de gas, et des revues pair à pair améliore la robustesse. Les corrections itératives après tests locaux permettent de réduire la surface d’exploitation.

« Le test unitaire isolé a permis de détecter une faille critique avant le mainnet. »

Sophie D.

« Foundry change la donne pour la vitesse de développement Solidity. »

Paul R.

Source : OpenZeppelin, « ERC-20 », Documentation, 2024 ; Foundry, « Foundry Book », Documentation, 2025 ; Ethereum Foundation, « Ethereum Whitepaper », Ethereum, 2013.

Mindfulness au bureau : protocole MBSR et micro-pauses

SQL pour débutants : SELECT, JOIN, GROUP BY avec PostgreSQL

Laisser un commentaire