Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

34 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Solidity workshop

⚠️ Ce dépôt github est synchronisé automatiquement depuis un serveur Gitlab privé. C'est ce dernier qui est utilisé pour le développement. Pour toute contribution ou merge request, veuillez contacter le maintainer.

⚠️ L'exercice 2 est encore en développement.

À propos

Cet atelier d'initiation à Solidity et au développement de smart contracts a été créé par Fabio Bonfiglio.
Il est en license GNU GPLv3 et donc peut être copié et adapté librement.

⚠️ Ne pas utiliser en production (sur Main Net) avec de vrais fonds !! Ces contrats n'ont pas été audités en matière de sécurité et vulnérabilités. Ils ont une vocation éducative uniquement.

Contenu

Ce dépôt git contient les fichiers nécessaires pour les exercices, et tests, ainsi que front-ends de base des contrats.
Également ci-après, un recueil de liens utiles.

Exercice 1

  1. Implémenter un contrat qui utilise l'interface exemples/InterfaceExercice.sol.
  2. Modifier ce contrat pour que seul l'auteur d'un message puisse le récupérer.

Exercice 2 - Cagnotte démocratique

Développement d’un système de cagnotte décentralisée, sécurisée et démocratique.

  • Un contrat Cagnotte.sol est déployé
    • La cagnotte tient le compte des participants et du montant des participations
    • Ce contrat tient également le compte des nominations au titre de bénéficiaire final
    • La cagnotte distribuera la totalité de son contenu à chaque nominé proportionnellement aux votes reçus
  • Chaque « donateur » peut alors déployer son propre contrat, répondant à l’interface libs/Participant.sol.
    • Le constructeur du contrat doit designer à quelle cagnotte il doit participer, en utilisant l'interface libs/InterfaceCagnotte.sol
    • Chaque « donateur » peut nominer un bénéficiaire final pour lequel il donne son vote
    • Chaque « donateur » peut se retirer à tout moment tant que l’attribution finale n’a pas été exécutée

Pré-requis et tests

Pour pouvoir tester les contrats, truffle est requis. Si vous ne l'avez pas encore, vous pouvez l'installer depuis un terminal :

npm install truffle -g

Vous pouvez ensuite lancer les tests avec la commande :

truffle test

Interaction et tests du contrat

Pour tester et interagir avec le contrat sur une chaîne de test locale, utiliser la console truffle:

truffle develop

On pourra alors se connecter à l'instance du contrat via les commandes d'abstraction.

Adaptation à votre contrat

Pour modifier le front end afin qu'il soit adapté à votre propre contrat, merci de travailler sur votre branche :

git checkout -b nomDeMaBranche

Veuillez signer vos commits si vous voulez que votre (excellent!) travail soit mergé.

Créez ensuite votre contrat à la racine du répertoire /contracts (au même niveau que Cagnotte.sol)

Liens utiles

Ethereum Virtual Machine

Articles

⚠️ Attention ces articles sont anciens et certaines choses peuvent avoir évolué. Mais ils présentent de bonnes explications de base qui restent globalement valables.

Solidity

⚠️ Attention aux cheat sheets que l'on peut trouver sur internet. Il y a plusieurs breaking changes entre les versions ^0.4.0, ^0.5.0 et ^0.6.0. Le site officiel reste la meilleure source en cas de doute.

Compilateurs

Outils de développement

Éditeurs

Standalone
Online

Noeuds Ethereum

Si vous voulez mettre en place un noeud Ethereum, sur votre machine ou sur un serveur privé (recommandé au moins 8 GB RAM et 4 coeurs + 1TB SSD):

  • Pour un noeud Main net : Parity Ethereum (implémentation en Rust)
  • Pour un noeud Main net ou réseau de test (Rinkeby par exemple) : Geth (implémentation en Go)

Frameworks

Outils divers

  • Ganache Blockchain de développement, avec GUI ou en ligne de commande.
  • Infura Comptes de développement gratuits pour l'accès direct de dapps depuis internet aux blockchains Main net ou de test (Rinkeby, etc.) et IPFS, sans passer par un provider (peut être utile pour des PWA sur mobile par exemple).
  • EthFiddle pour tester des snippets
  • solhint linter
  • solgraph aide à l'analyse

About

This repo contains examples and exercice files for a Solidity Workshop, given in french language. CODE FOR DEMO PURPOSES ONLY - DO NOT USE IN PRODUCTION !!

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages