https://hardhat.org/tutorial/writing-and-compiling-contracts To compile the contract run npx hardhat compile in your terminal. The compile task is one of the built-in tasks. npx hardhat compile
https://hardhat.org/tutorial/testing-contracts npx hardhat test
npx hardhat node
npx hardhat run scripts/deploy.js --network localhost
Ce projet est un système modulaire de gestion de la chaîne d'approvisionnement basé sur des smart contracts Ethereum. Il repose sur l'architecture upgradeable UUPS (Universal Upgradeable Proxy Standard) via la librairie OpenZeppelin.
-
Gestion des rôles via
ImplementationV1:- Producteur, Transformateur, Distributeur, Transporteur.
- Attribution et demande de rôles dynamiques.
-
Module Acteur :
- Enregistrement et validation d’acteurs avec rôle et SIRET.
-
Module Produit (
ProductFactory) :- Création, mise en vente, suppression et achat de produits.
-
Module Stockage (
StorageContract) :- Gestion de stocks avec température et attribution de produits.
-
Module Transformation :
- Transformation de plusieurs produits en un autre, en respectant les permissions.
-
Module Transport :
- Enregistrement des livraisons de produits avec validation d'appartenance et température.
- Solidity v0.8.28
- Hardhat avec plugins :
@openzeppelin/hardhat-upgrades@nomicfoundation/hardhat-toolbox
- Tests :
chai,mochavianpx hardhat test
npx hardhat compile # Compile les contrats
npx hardhat test # Exécute les tests# Terminal 1
npx hardhat node
# Terminal 2
npx hardhat run scripts/deploy.js --network localhostPour tester l'utilisation réelle des contrats par un utilisateur externe après le déploiement :
-
Lancer un réseau local (dans un terminal) :
npx hardhat node
-
Déployer les contrats (dans un second terminal) :
npx hardhat run scripts/deploy.js --network localhost
Ce script déploie tous les contrats nécessaires et écrit leurs adresses dans
deployed-addresses.json. -
Lancer un script de démo simulant un utilisateur :
npx hardhat run scripts/demo.js --network localhost
Dans ce scénario :
- L'administrateur déploie les contrats via
deploy.js - Tout utilisateur peut ensuite lire
deployed-addresses.jsonpour interagir avec les contrats (par exemple pour créer des produits, acheter, transformer, etc.)
npx hardhat run scripts/upgrade.js --network localhostcontracts/: Tous les contrats (modulaires)scripts/: Déploiement et upgradetest/: Tests unitaires complets