Lab #3 : la Crypto Roulette - PaulFasola/TechLabBlockchain101 GitHub Wiki

Cliquez-ici pour accéder au projet

Dans le projet du lab 3, sera à disposition un projet quasi-complet de dApp permettant de jouer à la roulette.

La démo de ce projet est déployé en ligne à cette adresse La dApp est connectée à sa propre blockchain locale, demandez un compte pour tester ;)

Etape 1 : Finir l'implémentation du Smart Contract

Le smart contract de la roulette est presque terminé !
Il vous incombe de complèter les sections vides, commentée en "// TODO !"
Encore une fois, la documentation de solity vous sera utile :)

Etape 2 : Finir l'interfaçage avec le front

Cette fois-ci, on ne va plus se contenter de requêter notre contrat avec une application console : on va mettre les mains dans le javascript ;)
C'est en effet grâce à une librairie javascript injecté par l'extension MetaMask qu'on va pouvoir communiquer via le protocole RPC à notre blockchain.
Pour tout ce qui est gestion de contrat (appel des fonctions / écoute sur les events), on utilisera une libraire de truffle, qui n'est plus à présenter :p

Ici encore, une bonne partie du code est déjà écrit. Il va manquer quelques petites lignes de code dans le fichier app.js

Notamment :

  • La ligne pour instancier Web3.JS et par conséquent, connecter MetaMask à notre app'
  • L'instanciation de Truffle pour pouvoir dialoguer avec le contrat via javascript
  • L'événement "Resulted"

Etape 3 : Tests !

On y échappe pas :laughing: et j'insiste sur le fait que c'est incontournable.
Comme pour le lab précédent, vous deverez implémenter le corps de trois tests en javascript !

A savoir que pour un projet qui sortirait du PoC classique, ces tests sont loin d'être suffisants.

Etape 4 : Enjoy !

Maintenant que votre application est opérationnelle, vous pouvez consommer le contrat et parier a volonté ;)
Enfin ... tant qu'il vous reste des coins ;)

Fin du lab

Vous avez atteint le but ultime de ce TechLab : Créer et déployer un contrat basique de gestion de paris et interagir avec ce dernier au travers d'une web app' !
Mais votre app' n'est pas encore qualifiable de dApp (decentralized application). Pour cela, il faut qu'elle soit hébergée physiquement dans un espace décentralisé.
En bonus donc, le Lab 4 vous donnera quelques pistes pour transformer votre app en dApp ! -> cliquez-ici

Attention : ce qu'on a produit n'est absolument pas prodable ! Il faudrait sécuriser l'ensemble pour que cela le soit.