## Installation Ganache

- Télécharger Ganache sur le site officiel : https://www.trufflesuite.com/ganache, puis installer la version linux.
- Après l'installation, on lance Ganache et on obtient l'interface suivante :

![Ganache](./images/acceuil-ganache.png)

- Puis on choisit new workspace et on obtient l'interface suivante :

![Ganache](./images/ganache.png)

- On clique sur "Start"

## Installation NodeJS

- installer nvm
```bash
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
```

- verifier l'installation
```bash
nvm --version
0.39.7
```

- installer nodejs
```bash
nvm install node 18.18.2
```

- verifier l'installation
```bash
node -v
v18.18.2
```

## Installation Truffle

- installer node-gyp pour compiler des modules additionnels natifs pour Node.js. 
```bash
sudo apt install node-gyp
```

- installer truffle
```bash
npm install -g truffle
```

- verifier l'installation
```bash
truffle version

Truffle v5.11.5 (core: 5.11.5)
Ganache v7.9.1
Solidity v0.5.16 (solc-js)
Node v18.18.2
Web3.js v1.10.0
```

## Installation MetaMask

- installer l'extension MetaMask sur le navigateur Firefox: https://addons.mozilla.org/fr/firefox/addon/ether-metamask/

- créer un nouveau portefeuille
![MetaMask](./images/meta-mask.png)

- sauvegarder la phrase de récupération
- choisir un mot de passe
- Maintenant, le portefeuille est créé et on peut se connecter à MetaMask

![MetaMask](./images/meta-mask-acceuil.png)

## Lier MetaMask au réseau Ganache:

- Cliquer sur le bouton "Réseau" en haut à droite de l'interface de MetaMask
- Cliquer sur "Ajouter un réseau"
- Cliquer sur "Ajouter manuellement un réseau"

![MetaMask](./images/meta-mask-ajouter-reseau.png)

## Importer MetaMask à Ganache

- Dans Ganache, cliquez sur l'un des comptes générés pour afficher ses détails.
- Copiez la clé privée du compte.

![Ganache](./images/ganache-compte.jpg)

- Dans MetaMask, cliquez sur le bouton "Comptes" en haut à droite de l'interface.
- Cliquez sur "Importer un compte".
- Collez la clé privée du compte dans le champ "Clé privée".
- Cliquez sur "Importer".

![MetaMask](./images/meta-mask-importer-compte.png)

## Creation du projet

```bash
truffle truffle unbox metacoin enchere-hollandaise
```


## Lier le projet à Ganache

- Dans Ganache, on clique sur le bouton "Settings" en haut à droite de l'interface, on clique sur "Add Project" et on choisie truffle-config.js de notre projet et puis on clique sur "Restart".
![Ganache](./images/ganache-projet.png)

- Dans le fichier truffle-config.js, on ajoutes les lignes suivantes dans networks:
```bash 
ganache: {
      host: "127.0.0.1",
      port: 7545,
      network_id: "*",
}
```

- Puis on migre le projet vers Ganache
```bash
truffle compile
truffle migrate --network ganache
 ```

- Dans Ganache, on obtient le résultat suivant:
![Ganache](./images/ganache-migration.png)
