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 :
let script1 = alwaysSucceedingNAryFunction 3
-- script1 attend 3 arguments ; retourne toujours le premier.
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 :
let scriptFail = alwaysFailingNAryFunction 1
-- scriptFail x == Error
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 :
-- Lors de l’exécution, ce script retourne l’entier 3.
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 :
let salted = saltFunction 42 summingFunction
-- `salted` agit comme `summingFunction`, mais avec un hash de script différent.
4 📚 Glossary
SerializedScript : un
ShortByteString
repré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