đŸ‡«đŸ‡· Plutus: Scripts de Plutus

Plutus: Scripts de Plutus

Cardano utilise des scripts pour valider les actions. Ces scripts, qui sont des morceaux de code, mettent en Ɠuvre des fonctions pures avec des sorties Vrai ou Faux. La validation des scripts consiste Ă  invoquer l’interprĂ©teur de script pour exĂ©cuter un script donnĂ© avec les arguments appropriĂ©s.

Que sont les scripts?

Un script est un programme qui décide si la transaction qui dépense la sortie est autorisée ou non à le faire. Un tel script est appelé script validateur, car il valide si la dépense est autorisée.

Un simple script de validation vĂ©rifierait si la transaction de dĂ©pense a Ă©tĂ© signĂ©e par une clĂ© particuliĂšre - cela reproduirait exactement le comportement des sorties simples de pay-to-pubkey. Cependant, avec un peu d’extension prudente, nous pouvons utiliser des scripts pour exprimer une logique utile sur la chaĂźne.

Le modÚle EUTXO fonctionne de la maniÚre suivante : les scripts de validation reçoivent trois arguments:

  • Datum: c’est un morceau de donnĂ©es attachĂ© Ă  la sortie que le script verrouille (strictement, encore une fois, seul le hash est prĂ©sent). Il est gĂ©nĂ©ralement utilisĂ© pour transporter l’état.
  • Redeemer: Il s’agit d’un Ă©lĂ©ment de donnĂ©es attachĂ© Ă  l’entrĂ©e des dĂ©penses. Elle est gĂ©nĂ©ralement utilisĂ©e pour fournir une entrĂ©e au script de la part du dĂ©pensier.
  • Context: il s’agit d’un Ă©lĂ©ment de donnĂ©es qui reprĂ©sente des informations sur la transaction de dĂ©pense. Il est utilisĂ© pour faire des affirmations sur la façon dont la sortie est envoyĂ©e (comme “Bob l’a signĂ©â€).

Exemple intuitif

Par exemple, un enfant veut monter sur une grande roue, mais avant de monter, il doit ĂȘtre plus haut que le panneau de sĂ©curitĂ©.

Nous pourrions exprimer cette idée en pseudo-code, par exemple:

Plutus_scripts1

Dans cet exemple, les Ă©lĂ©ments suivants s’appliquent:

  • Le datum est l’information sur cette transaction: michael.height.
  • Le context est l’état du monde, Ă  ce point, soit: ferrisWheel.minimumHeight.
  • Le reedemer, est l’action Ă  effectuer: getOnFerrisWheel()

Le script validateur est la fonction qui utilise toutes ces informations : isTallEnough

Exemple Defi

Examinons maintenant un exemple du domaine DeFi.

Nous pourrions mettre en Ɠuvre un Ă©change atomique, comme suit:

  • Le datum contient les clĂ©s des deux parties de l’échange et une description de ce qu’elles Ă©changent
  • Le redeemer n’est pas utilisĂ©.
  • Le context contient une reprĂ©sentation de la transaction.

La logique du script validateur est la suivante : la transaction effectue-t-elle un paiement de la seconde partie Ă  la premiĂšre partie, contenant la valeur qu’ils sont censĂ©s envoyer ? Si c’est le cas, alors ils peuvent dĂ©penser cette sortie et l’envoyer oĂč ils veulent (ou nous pourrions insister pour qu’ils l’envoient Ă  leur clĂ©, mais nous pourrions tout aussi bien les laisser en faire ce qu’ils veulent).

Exemples de code

Vous pouvez trouver des exemples réels de code de scripts validateurs sur chaque contrat intelligent, par exemple:

  • Plutus transaction tutorial: Sur ce validateur, il rĂ©ussit toujours.
  • Plutus Hello World: Sur ce validateur, si la donnĂ©e est Ă©gale Ă  ‘Hello’, elle est convertie en un nombre entier.
  • Plutus Pioneers English Auction: Sur cette ligne, le validateur s’assure que la nouvelle offre (donnĂ©e) est supĂ©rieure Ă  la prĂ©cĂ©dente, jusqu’à ce que le temps soit Ă©coulĂ©.

ParamÚtres du modÚle de coûts

Le modÚle de coût des scripts Plutus Core comporte un certain nombre de paramÚtres, qui font partie des paramÚtres du protocole Cardano. Les développeurs peuvent régler ces paramÚtres individuellement.

Pour plus de détails, voir ce qui suit:


Vous trouverez une copie officielle de ce document ici :

https://docs.cardano.org/plutus/Plutus-validator-scripts

Plus de traductions de Cardano Ă : Home