Plutus.V1.Ledger.Examples
Table des matières
📜 Overview
🔧 LANGUAGE PRAGMAS AND IMPORTS
⚙️ Example Scripts
✅ alwaysSucceedingNAryFunction
❌ alwaysFailingNAryFunction
➕ summingFunction
🧂 saltFunction
📚 Glossary
1 📜 Overview
Le module Plutus.V1.Ledger.Examples fournit des scripts Plutus Core faits main pour le test :
Scripts n-aires qui réussissent toujours ou échouent toujours, paramétrés par le nombre d’arguments lambda.
Un script simple d’addition.
Un wrapper de "salage" (salt) pour changer le hash d’un script sans modifier son comportement.
Ces fonctions produisent des valeurs SerializedScript adaptées pour des exercices ou des tests de régression, et ne doivent jamais être utilisées en production.
2 🔧 LANGUAGE PRAGMAS AND IMPORTS
Pragmas :
TypeApplications: pour les constantes littérales danssummingFunction.StrictData: évite toute paresse inattendue dans les données (peu utilisé ici).
Imports pour la sérialisation CBOR, la conversion des bytes, les nombres naturels et Plutus Core.
3 ⚙️ Example Scripts
3.1 ✅ alwaysSucceedingNAryFunction
Entrées : arité n :: Natural.
Traitement : construit une chaîne de n lambdas dont le corps retourne toujours son premier paramètre, garantissant le succès.
Sortie : un script sérialisé qui réussit toujours lorsqu’il est appliqué à n arguments.
Exemple :
3.2 ❌ alwaysFailingNAryFunction
Entrées : arité n :: Natural.
Traitement : construit une chaîne de n lambdas dont le corps termine sur une erreur, échouant systématiquement.
Sortie : script sérialisé qui échoue quel que soit l’argument.
Exemple :
3.3 ➕ summingFunction
Entrées : aucune.
Traitement : applique la fonction intégrée AddInteger aux constantes 1 et 2.
Sortie : script sérialisé qui calcule 1 + 2.
Exemple :
3.4 🧂 saltFunction
Entrées : salt :: Integer et un script existant b0.
Traitement : désérialise b0, l’entoure d’un nouveau lambda acceptant le salt, puis l’applique à la constante salt — le comportement ne change pas mais le hash du script on-chain est différent.
Sortie : nouveau script sérialisé avec un hash on-chain différent mais une logique identique.
Exemple :
4 📚 Glossary
SerializedScript : un
ShortByteStringreprésentant un programme Plutus Core.DeBruijn index : représentation de variable sans nom, par profondeur d’entier.
LamAbs : abstraction lambda dans UPLC.
Error : échec d’exécution à l’exécution dans UPLC.
Builtin : fonctions intégrées de Plutus Core (ex : AddInteger).
Script hash : hash calculé du script, utilisé pour la référence on-chain.
Salt : argument additionnel pour modifier le hash d’un script sans changer la logique.
Last updated