Explication des Couleurs des Boutons dans Remix
===============================================

Dans l'IDE **Remix**, les boutons sont colorés pour indiquer leur comportement et leur impact sur la blockchain.

Couleurs des Boutons et Leurs Significations
--------------------------------------------

Boutons Rouges
~~~~~~~~~~~~~~

- **Signification** : Fonctions qui modifient l'état du contrat (transactions qui changent des variables sur la blockchain).

- **Caractéristiques** :

  - Nécessitent l'envoi d'une transaction.
  - Consomment du gas.

- **Exemples dans ce contrat** :

  - ``register()``
  - ``bid(uint _itemId, uint _count)``

Boutons Oranges
~~~~~~~~~~~~~~~

- **Signification** : Fonctions avec des propriétés spécifiques, telles que les fonctions ``payable`` ou celles avec des modificateurs d'accès comme ``onlyOwner``.

- **Caractéristiques** :

  - Peuvent avoir des restrictions sur qui peut les appeler.
  - Consomment du gas.

- **Exemple dans ce contrat** :

  - ``revealWinners()``

Boutons Bleus
~~~~~~~~~~~~~

- **Signification** : Fonctions ou variables qui ne modifient pas l'état du contrat.

- **Caractéristiques** :

  - Ne nécessitent pas l'envoi d'une transaction.
  - Ne consomment pas de gas.

- **Exemples dans ce contrat** :

  - ``beneficiary`` (variable)
  - ``items`` (variable)
  - ``winners`` (variable)

Utilisation des Boutons dans Ce Contrat
---------------------------------------

Boutons Rouges (Fonctions Modifiant l'État)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

**``register``**

- **But** : Permettre à un utilisateur de s'enregistrer en tant qu'enchérisseur dans l'enchère.

- **Comment l'utiliser** :

  - Assurez-vous d'être connecté avec un compte différent du propriétaire (compte 0).
  - Cliquez sur le bouton ``register`` pour vous enregistrer.

- **Effet** :

  - Ajoute votre adresse à la liste des enchérisseurs.
  - Vous attribue 5 jetons (``remainingTokens``).

**``bid``**

- **But** : Permettre à un enchérisseur enregistré de placer une enchère sur un article spécifique en misant un certain nombre de jetons.

- **Comment l'utiliser** :

  - Saisissez les valeurs dans les champs de texte correspondants :

    - ``_itemId`` : Identifiant de l'article sur lequel vous souhaitez enchérir (0, 1 ou 2).
    - ``_count`` : Nombre de jetons que vous souhaitez miser sur cet article.

  - Cliquez sur le bouton ``bid``.

- **Effet** :

  - Vérifie que vous avez suffisamment de jetons.
  - Déduit le nombre de jetons misés de votre solde.
  - Enregistre votre enchère sur l'article choisi.

Boutons Oranges (Fonctions Restreintes)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

**``revealWinners``**

- **But** : Permettre au propriétaire du contrat de révéler les gagnants de l'enchère pour chaque article.

- **Comment l'utiliser** :

  - Cette fonction ne peut être appelée que depuis le compte du propriétaire (compte 0), en raison du modificateur ``onlyOwner``.
  - Cliquez sur le bouton ``revealWinners`` lorsque l'enchère est terminée.

- **Effet** :

  - Sélectionne aléatoirement un gagnant pour chaque article parmi les enchérisseurs qui ont placé des jetons sur cet article.
  - Met à jour le tableau ``winners`` avec les adresses des gagnants.

Boutons Bleus (Fonctions et Variables en Lecture Seule)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

**``beneficiary``**

- **But** : Afficher l'adresse du bénéficiaire (propriétaire) du contrat.

- **Comment l'utiliser** :

  - Cliquez sur le bouton ``beneficiary`` pour voir l'adresse du propriétaire.

- **Effet** :

  - Affiche l'adresse qui a déployé le contrat.

**``items``**

- **But** : Permettre de consulter les détails d'un article spécifique dans l'enchère.

- **Comment l'utiliser** :

  - Saisissez l'identifiant de l'article que vous souhaitez consulter (0, 1 ou 2) dans le champ de texte.
  - Cliquez sur le bouton ``items``.

- **Effet** :

  - Affiche les détails de l'article, y compris son ``itemId`` et la liste des ``itemTokens`` (identifiants des enchérisseurs qui ont misé sur cet article).

**``winners``**

- **But** : Permettre de consulter l'adresse du gagnant pour un article spécifique.

- **Comment l'utiliser** :

  - Saisissez l'identifiant de l'article pour lequel vous souhaitez voir le gagnant (0, 1 ou 2) dans le champ de texte.
  - Cliquez sur le bouton ``winners``.

- **Effet** :

  - Affiche l'adresse de l'enchérisseur qui a gagné l'article correspondant.

