Newer
Older
# Projet Next.js avec Smart Contract Ethereum
> Une application décentralisée (dApp) utilisant Next.js, Hardhat et Wagmi
- Interface utilisateur moderne avec Next.js
- Smart Contract Ethereum pour le stockage de données
- Intégration avec MetaMask
- Tests automatisés pour le Smart Contract
- Configuration Hardhat pour le développement local
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
## 🛠 Technologies Utilisées
- **Frontend**:
- Next.js 15.1
- React 19.0
- TailwindCSS
- Wagmi/Viem pour l'interaction blockchain
- **Backend/Blockchain**:
- Hardhat
- Solidity 0.8.19
- Ethers.js
## 📋 Prérequis
- Node.js (version récente)
- MetaMask installé dans votre navigateur
- Git
## 🚀 Installation
1. Clonez le dépôt :
2. Installez les dépendances :
```bash
npm install
```
3. Lancez la blockchain locale Hardhat :
```bash
npx hardhat node
```
4. Dans un nouveau terminal, déployez le smart contract :
```bash
cd blockchain
npx hardhat ignition deploy modules/IncredibleStorage.ts --network localhost
```
5. Lancez l'application :
## 📝 Structure du Projet
```
.
├── app/ # Application Next.js
├── blockchain/ # Smart Contracts et configuration Hardhat
│ ├── contracts/ # Smart Contracts Solidity
│ ├── test/ # Tests des Smart Contracts
│ └── ignition/ # Modules de déploiement
├── components/ # Composants React
└── config/ # Configuration (wagmi, etc.)
```
## 🔍 Fonctionnalités Principales
### Smart Contract IncredibleStorage
Le contrat permet de :
- Stocker une valeur numérique
- Lire la valeur stockée
- Modifier la valeur via une transaction
```1:18:blockchain/contracts/incredibleStorage.sol
//SPDX-License-Identifier: MIT
pragma solidity >=0.4.16 < 0.9.0;
constructor(uint _awesomeUInt) {
awesomeUInt = _awesomeUInt;
}
function set(uint x) public {
awesomeUInt = x;
}
function get() public view returns (uint) {
return awesomeUInt;
}
}
```
### Interface Utilisateur
L'application permet aux utilisateurs de :
- Se connecter avec MetaMask
- Voir la valeur actuelle stockée
- Modifier la valeur via un formulaire
## 🧪 Tests
Pour exécuter les tests du smart contract :
```bash
cd blockchain
npx hardhat test
```
## ⚠️ Note
Ce projet est configuré pour fonctionner avec une blockchain locale Hardhat. Pour le déploiement en production, des modifications supplémentaires seront nécessaires.