⚠️ 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.
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.
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.
- Implémenter un contrat qui utilise l'interface
exemples/InterfaceExercice.sol. - Modifier ce contrat pour que seul l'auteur d'un message puisse le récupérer.
Développement d’un système de cagnotte décentralisée, sécurisée et démocratique.
- Un contrat
Cagnotte.solest 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
- Le constructeur du contrat doit designer à quelle cagnotte il doit participer, en utilisant l'interface
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 -gVous pouvez ensuite lancer les tests avec la commande :
truffle testPour tester et interagir avec le contrat sur une chaîne de test locale, utiliser la console truffle:
truffle developOn pourra alors se connecter à l'instance du contrat via les commandes d'abstraction.
Pour modifier le front end afin qu'il soit adapté à votre propre contrat, merci de travailler sur votre branche :
git checkout -b nomDeMaBrancheVeuillez 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)
- Ethereum Yellow Paper
- Ethereum White Paper
- Ethereum Wiki
⚠️ Attention ces articles sont anciens et certaines choses peuvent avoir évolué. Mais ils présentent de bonnes explications de base qui restent globalement valables.
- Référence officielle: https://solidity.readthedocs.io
👉 Ne pas oublier de sélectionner la version en bas à gauche de l'écran (clic surlatest). - X=Solidity sur Learn X in Y minues
- Solidity Cheatsheet (pour versions
>=0.4.25 <0.5.0) - Solidity by Example
⚠️ 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.0et^0.6.0. Le site officiel reste la meilleure source en cas de doute.
- Atom avec les plugins suivants :
- language-ethereum
- etheratom (avec compilateurs intégrés et interface de contrats)
- autocomplete-solidity
- linter-solidity
- VS Code avec le plugin suivant :
- vscode-solidity (avec compilateurs multi-versions intégrés et support EIP82)
- Sublime Text avec le plugin suivant:
- Remix Ethereum IDE pour les projets de contrats simples
- Ethereum Studio Incluant développement de front-ends HTML5 avec support EIP82
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)
- 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