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.
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
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.
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
.
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.
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é.
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é.
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
Et par exemple en TypeScript l'utilisation d'un de ces fonctions ressemble à cela:
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 :
Comment développer un dapp : https://docs.alephium.org/dapps/getting-started
APS : https://medium.com/@alephium/alephiums-aps-eliminating-evm-token-approval-risks-5407e7e70a33
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.