0% ont trouvé ce document utile (0 vote)
107 vues4 pages

Cours Solidity

Transféré par

zakariaabdelmoula9
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
107 vues4 pages

Cours Solidity

Transféré par

zakariaabdelmoula9
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

# ■ Cours de Solidity

## 1. Introduction

- Solidity est un langage de programmation créé pour écrire des smart contracts sur la blockchain
Ethereum.

- Les smart contracts sont des programmes qui s’exécutent de façon décentralisée et immuable.

Exemple simple :

```

pragma solidity ^0.8.0;

contract HelloWorld {

string public message = "Bonjour Blockchain!";

function setMessage(string memory _msg) public {

message = _msg;

```

## 2. Structure d’un smart contract

Un contrat Solidity contient généralement :

1. Version du compilateur

```

pragma solidity ^0.8.0;

```

2. Déclaration du contrat

```

contract MonContrat { ... }

```

3. Variables d’état (stockées sur la blockchain)


```

uint public nombre;

```

4. Fonctions (logique du contrat)

```

function incrementer() public {

nombre++;

```

## 3. Types de données

- uint : entier positif

- int : entier signé

- bool : vrai/faux

- string : chaîne de caractères

- address : une adresse Ethereum

- mapping : structure clé → valeur

- struct : structure personnalisée

Exemple :

```

struct Utilisateur {

string nom;

uint age;

mapping(address => Utilisateur) public utilisateurs;

```

## 4. Visibilité des fonctions

- public : accessible par tous


- private : seulement dans ce contrat

- internal : seulement ce contrat et ses héritiers

- external : seulement appel externe

## 5. Transactions et Ether

Exemple d’un contrat “cagnotte” :

```

pragma solidity ^0.8.0;

contract Cagnotte {

address public proprietaire;

constructor() {

proprietaire = [Link];

receive() external payable {}

function getSolde() public view returns(uint) {

return address(this).balance;

function retirer() public {

require([Link] == proprietaire, "Pas autorise");

payable(proprietaire).transfer(address(this).balance);

```

## 6. Bonnes pratiques

- Toujours utiliser require() pour vérifier les conditions.

- Utiliser les dernières versions (^0.8.x) pour éviter les overflow.

- Séparer les responsabilités (contrat simple → contrat complexe).


## 7. Concepts avancés

- Héritage : un contrat peut hériter d’un autre

- Modificateurs : fonctions spéciales pour restreindre l’accès

- Événements (Events) : enregistrer des logs sur la blockchain

- Interfaces & Librairies : structurer le code

## 8. Outils pour pratiquer

- Remix IDE : [Link]

- Hardhat ou Truffle : frameworks pour déployer/tester

- Metamask : pour interagir avec tes contrats

Vous aimerez peut-être aussi