Plutus.V1.Ledger.Scripts
Table des matières
📜 Overview
🔧 LANGUAGE PRAGMAS AND IMPORTS
🗄️ Core Types
🖥️ Script
📐 Validator, MintingPolicy, StakeValidator
📊 Datum, Redeemer, Context
🔑 Hash Types
⚙️ ScriptError
⚙️ Key Functions
📏 scriptSize
🔄 fromCompiledCode
🏗️ applyArguments
🚀 evaluateScript
🎬 runScript / runMintingPolicyScript / runStakeValidatorScript
🔗 applyValidator / applyMintingPolicyScript / applyStakeValidatorScript
📚 unitDatum, unitRedeemer
🤝 Typeclass Instances
🏭 On-Chain Derivations
📚 Glossary
1 📜 Overview
Le module Plutus.V1.Ledger.Scripts fournit les abstractions et utilitaires de base pour travailler avec des scripts on-chain dans Plutus :
Script : représentation opaque d’un programme UPLC.
Wrappers :
Validator,MintingPolicy,StakeValidatorpour des rôles spécifiques de script.Wrappers de données :
Datum,Redeemer,Contextpour les entrées des scripts.Types de hash :
ScriptHash,ValidatorHash,DatumHash, etc., pour l’identification des scripts.Évaluation : fonctions pour appliquer et exécuter des scripts, avec extraction des budgets et des logs.
Utilitaires :
scriptSize,fromCompiledCode,applyArgumentset les exemplesunitDatum/unitRedeemer.
2 🔧 LANGUAGE PRAGMAS AND IMPORTS
Nombreux pragmas pour la génération automatique, Template Haskell, et la désactivation de certains warnings.
Imports pour la sérialisation, ByteString, les builtins, et les modules UPLC non typés.
3 🗄️ Core Types
3.1 🖥️ Script
Wrapper opaque autour d’un programme UPLC.
Instances : Generic, NFData, Serialise via Flat.
3.2 📐 Validator, MintingPolicy, StakeValidator
Wrappers spécifiques à un rôle, ajoutant l’égalité, l’ordre, la sérialisation, et Pretty via LedgerBytes.
3.3 📊 Datum, Redeemer, Context
Enveloppent le type BuiltinData pour les entrées de scripts et le contexte blockchain.
3.4 🔑 Hash Types
ScriptHash, ValidatorHash, etc. : wrappers de bytestring pour l’identification des scripts.
Littéraux de chaînes via IsString, égalité, ordre, conversions de données, affichage Pretty via LedgerBytes.
3.5 ⚙️ ScriptError
Capture les erreurs utilisateur attendues et les exceptions internes à l’évaluation.
4 ⚙️ Key Functions
4.1 📏 scriptSize
Retourne la taille du programme sérialisé.
4.2 🔄 fromCompiledCode
Convertit du code Plutus Tx compilé GHC en Script sans nom.
4.3 🏗️ applyArguments
Applique une liste d’arguments Data à un programme UPLC.
4.4 🚀 evaluateScript
Exécute l’évaluateur CEK, retourne le budget de ressources et les logs, ou lève une erreur ScriptError.
4.5 🎬 runScript / runMintingPolicyScript / runStakeValidatorScript
Fonctions d’assistance combinant application et évaluation pour les validateurs, minting policies et stake validators.
4.6 🔗 applyValidator / applyMintingPolicyScript / applyStakeValidatorScript
Applique les wrappers de type pour produire un Script avec arguments appliqués.
4.7 📚 unitDatum, unitRedeemer
Valeurs pratiques pour les données ().
5 🤝 Typeclass Instances
Eq Script, Ord Script : basées sur les bytes sérialisés pour l’alpha-équivalence.
Show Script : affiche
<Script>comme placeholder.Pretty via PrettyShow pour les wrappers.
Functor pour
applyArgumentsutilisantPLC.mkIterApp.
6 🏭 On-Chain Derivations
Instances makeLift pour permettre l’intégration de ces types dans le code PlutusTx.
7 📚 Glossary
UPLC : Untyped Plutus Core.
CEK : machine d’évaluation pour Plutus Core.
BuiltinData : type de données on-chain.
Script : programme on-chain encodé comme UPLC.
Validator / MintingPolicy / StakeValidator : rôles typés pour les scripts.
Datum / Redeemer / Context : entrées pour les validateurs.
ScriptHash / ValidatorHash / ... : identifiants hachés pour les scripts.
CompiledCode : code produit par le plugin PlutusTx.
SerialiseViaFlat : sérialisation CBOR utilisant Flat.
ProgramSize : métrique de consommation de ressources approximative.
Alpha-equivalence : égalité des programmes modulo renommage des variables.
Last updated