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
,StakeValidator
pour des rôles spécifiques de script.Wrappers de données :
Datum
,Redeemer
,Context
pour 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
,applyArguments
et 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
applyArguments
utilisantPLC.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