README.md 3,58 ko
Newer Older
Maxence Lambard's avatar
Maxence Lambard a validé
# Non-Fungible Token Dufy
Maxence Lambard's avatar
Maxence Lambard a validé

Maxence Lambard's avatar
Maxence Lambard a validé
|   Nom   | Prénom |
|---------|--------|
Maxence Lambard's avatar
Maxence Lambard a validé

Maxence Lambard's avatar
Maxence Lambard a validé
Le TP est à réaliser individuellement.
Maxence Lambard's avatar
Maxence Lambard a validé

Maxence Lambard's avatar
Maxence Lambard a validé
## Présentation
Maxence Lambard's avatar
Maxence Lambard a validé

Maxence Lambard's avatar
Maxence Lambard a validé
Raoul Dufy [2], célèbre pour ses peintures colorées et vives, ainsi que ses illustrations et motifs textiles, a laissé une œuvre artistique significative. Ce projet propose d'explorer comment les œuvres d'art, en particulier des illustrations inspirées du style de Dufy, peuvent être transformées en NFT (tokens non fongibles) [1] et vendues sur la Blockchain tout en assurant la protection des droits d'auteur et la mise en place d'un système de redevances pour l'artiste ou ses ayant droits. Cela permettrait de perpétuer l'héritage de Dufy à l'ère numérique tout en explorant le potentiel économique des NFT.
Maxence Lambard's avatar
Maxence Lambard a validé

Maxence Lambard's avatar
Maxence Lambard a validé
Le projet vise à créer un Smart Contract pour la vente de NFT représentant des illustrations dans le style de Raoul Dufy. Chaque illustration sera unique et authentifiée (à l'aide d'une empreinte numérique) grâce à la Blockchain. Le Smart Contract implémentera également un système de royalties, garantissant que l'artiste ou ses ayants droit reçoivent une commission à chaque revente de l’œuvre numérique, même après la vente initiale.
Maxence Lambard's avatar
Maxence Lambard a validé

Maxence Lambard's avatar
Maxence Lambard a validé
- [1] « NFT - Définitions, synonymes, prononciation, exemples | Dico en ligne Le Robert ». [En ligne]. Disponible sur: https://dictionnaire.lerobert.com/definition/nft
- [2] « Raoul Dufy — Wikipédia ». [En ligne]. Disponible sur: https://fr.wikipedia.org/wiki/Raoul_Dufy
Maxence Lambard's avatar
Maxence Lambard a validé
## Restitution
Maxence Lambard's avatar
Maxence Lambard a validé

Maxence Lambard's avatar
Maxence Lambard a validé
Il est nécessaire de tester le Smart Contract, il est donc demandé de rédiger des tests unitaires ainsi que de la documentation à propos du Smart Contract mais aussi de l'application décentralisée.

## Prérequis

- **Node.js** (recommandé : [nvm](https://github.com/nvm-sh/nvm), puis `nvm install node` et `nvm use node`).

## Installation

À la racine du projet :

```bash
npm install
```

## Compilation

```bash
npm run compile
```

## Tests unitaires

```bash
npm test
```

Les tests (Mocha/Chai) couvrent le déploiement, le mint, l’empreinte numérique, les royalties EIP-2981, la mise en vente, l’achat et l’annulation de vente.

## Déploiement (réseau local)

1. Lancer le nœud Hardhat dans un terminal :
   ```bash
   npm run node
   ```
2. Dans un autre terminal, déployer le contrat :
   ```bash
   npm run deploy
   ```
   Noter l’adresse du contrat affichée (ex. `DufyNFTModule#DufyNFT - 0x...`).

## Application décentralisée (Dapp)

La dapp (React + wagmi) permet de se connecter avec MetaMask, d’afficher les NFTs (tokenURI, empreinte), de minter (owner), de mettre en vente et d’acheter des tokens.

1. Configurer MetaMask : réseau personnalisé avec RPC `http://127.0.0.1:8545` et Chain ID `31337`.
2. Dans le dossier `dapp/`, créer `.env` avec l’adresse du contrat déployé :
   ```
   VITE_CONTRACT_ADDRESS=0x...
   ```
3. Lancer la dapp :
   ```bash
   cd dapp && npm install && npm run dev
   ```
   Ouvrir l’URL indiquée (ex. http://localhost:5173).

Voir [docs/DAPP.md](docs/DAPP.md) pour le détail (configuration, utilisation, dépannage).

## Documentation

- **[docs/SMART_CONTRACT.md](docs/SMART_CONTRACT.md)** : objectif du contrat, rôles, fonctions (mint, listForSale, buy, royaltyInfo), format de l’empreinte (hash des métadonnées JSON : name, description, image), calcul des royalties (EIP-2981, basis points).
- **[docs/DAPP.md](docs/DAPP.md)** : lancement du nœud, déploiement, configuration MetaMask et adresse du contrat, lancement de la dapp, utilisation de l’interface (connexion, consultation des NFTs, mint, mise en vente, achat).