3 - Jeu de prédiction sur Alephium

3 - Jeu de prédiction sur Alephium

Dans cette série d'articles, nous allons expliquer comment nous avons développé une application décentralisée sur Alephium.

·

4 min read

La troisième partie va se concentrer sur le contrat utilisé par les personnes qui parient et les TxScript qui sont utilisés pour interagir avec les contrats sur la chaîne. Les deux articles précédents ont traité du contrat principal PredictALPH (pour le lire) et de Round qui se charge des rounds et y stocke les informations relatives (pour le lire).

Pour tester l'application : ALPH.bet

Un rappel de ce qu'est Alephium :

Alephium est la première blockchain shardée de couche 1 extensible qui améliore les concepts de Proof of Work & UTXO. La décentralisation, l'auto-souveraineté et la sécurité rencontrent l'efficacité énergétique dans un réseau adapté aux développeurs optimisé pour les applications DeFi et les contrats intelligents.

Contrat Punter.ral

Le contrat "Punter" (argot pour "bidder") est relativement simple et permet de stocker le montant misé, le choix "Up" ou "Down", et à partir de quel moment tout le monde peut réclamer les gains des autres.

Etats

Github

Code d'erreur

Un seul code d'erreur est implémenté et permet de contrôler si l'adresse qui appelle les fonctions du contrat.

Fonctions

Ces différentes fonctions permettent d'accéder rapidement aux états du smart contract et donc de la personne qui a parié dans un round.

Github

L'autre fonction de ce contrat est destroy qui permet de détruire le contrat de la personne qui a parié et de retrouver son ALPH utilisé pour parier au round. Une autre fonction, destroyByOther, est actuellement mise en place mais sera remplacée au détriment d'une seule et même fonction.

TxScript

Les TxScript sont les fonctions qui vont permettre d'interagir avec les smart contracts. Ces scripts ne sont pas inscrits dans la blockchain d'Alephium.

Quand un utilisateur va interagir avec la dapp, plusieurs TxScripts seront utilisés selon l'action. C'est aussi en partie avec cela que l'interaction avec la blockchain sera possible depuis TypeScript, par exemple, le SDK se trouve ici : Dapp SDK

La fonction Bid permet de parier, et APS (Asset Permission System) qui va autoriser uniquement le montant voulu à être envoyé. Dans ce cas, la personne qui parie va autoriser ce qu'il y a dans amount.

Github

Et voilà comment l'interaction en TypeScript se fait avec le smart contract et donc la blockchain. Il y a 1 ALPH qui est rajouté car la personne qui parie va devoir créer un nouveau contrat et donc mettre du ALPH supplémentaire (qui pourra être retrouvé).

attoAlphAmount est le montant approuvé (APS) et envoyé au smart contrat.

Github

Un autre script pour la personne qui joue est Withdraw, qui sera utile pour récupérer ses gains et détruire le contrat associé.

Github

Et la partie en TypeScript pour interagir avec la chaîne. Les paramètres de l'image du dessus se retrouvent sous initialFields.

À nouveau, attoAlphAmount est utilisé mais uniquement les frais doivent être approuvés car aucun ALPH n'est envoyé au contrat, uniquement récupéré.

Github

Pour la partie round, un TxScript est utilisé pour démarrer et stopper. Une même fonction peut être utilisée pour automatiquement en relancer un. Ou encore détruire un round se fait aussi au travers d'un script

Github

Et par exemple en TypeScript l'utilisation d'un de ces fonctions ressemble à cela:

Github

Fin

Cet article conclut la série sur ALPH.bet, un jeu de prédiction développé sur Alephium. L'expérience de développement est vraiment agréable. Après avoir saisi les différents concepts tels que l'Asset Permission System et la nécessité de louer de l'espace, l'application a pu être mise en place rapidement et de manière sécurisée. Moins de lignes de code ont été nécessaires par rapport à la version sur Ethereum, ce qui nous a confortés dans l'idée d'avoir fait d'Alephium notre choix.

Pour les personnes intéressées à approfondir le sujet :

D'autres articles verront le jour, l'interface web sera mise à jour, et avec cela, de nouveaux développements verront le jour. Par exemple, la possibilité de parier sur d'autres événements, comme le prix du bitcoin, ou encore si la mise à jour Rhône sera effective en mars 2024. Pour suivre No Trust Verify : Twitter, LinkedIn ou Telegram.