Plutus.V1.Ledger.EvaluationContext
Table des matières
📜 Overview
🔧 LANGUAGE PRAGMAS, OPTIONS, AND IMPORTS
🗄️ Type Synonyms and Data Types
🔤 SerializedScript (type)
📊 LedgerPlutusVersion (data)
🔢 ProtocolVersion (data)
🧪 EvaluationError (data)
🔄 VerboseMode (data)
🛠️ ScriptForExecution (newtype)
🏗️ EvaluationContext (data)
⚙️ Core Functions
🤝 Typeclass Instances
🏭 On-Chain Derivations
📚 Glossary
1 📜 Overview
Cette variante du module Plutus.ApiCommon ajoute le pragma StrictData afin de garantir que tous les champs sont stricts, tout en conservant les outils d’évaluation et de sérialisation :
Champs de données stricts pour éviter les thunks liés à la paresse (laziness).
Configure le budget de ticks du simplificateur GHC.
Définit
SerializedScript, les types de versionnement, les types d’erreur, le logging et le contexte d’évaluation.Fonctions principales pour décoder, vérifier la validité et exécuter des scripts sous contraintes de coûts.
2 🔧 LANGUAGE PRAGMAS, OPTIONS, AND IMPORTS
Pragmas Haskell :
DeriveAnyClass,OverloadedStrings,TypeApplications,StrictDataStrictData: rend tous les champs des types de données stricts par défaut.
OPTIONS_GHC :
-fsimpl-tick-factor=200: augmente le budget de ticks du simplificateur.-fno-omit-interface-pragmas: conserve toutes les pragmas d’interface.
Imports : identiques à la version précédente, couvrant Plutus Core, CBOR, contrôle, et modules utilitaires.
3 🗄️ Type Synonyms and Data Types
3.1 🔤 SerializedScript (type)
Un simple alias de type :
3.2 📊 LedgerPlutusVersion (data)
Type de données représentant la version du ledger pour Plutus :
3.3 🔢 ProtocolVersion (data)
Version du protocole Cardano :
3.4 🧪 EvaluationError (data)
Type pour modéliser les erreurs à l’évaluation des scripts :
3.5 🔄 VerboseMode (data)
Contrôle du niveau de verbosité lors de l’évaluation :
3.6 🛠️ ScriptForExecution (newtype)
Programme UPLC prêt à être exécuté :
3.7 🏗️ EvaluationContext (data)
Contexte d’évaluation contenant deux ensembles de paramètres pour l’unlifting immédiat et différé :
4 ⚙️ Core Functions
Voir la Section 4 du précédent tutoriel ApiCommon pour le détail du code, des entrées, traitements et sorties. Cette variante est strictement "data-strict", mais les signatures et comportements des fonctions restent inchangés.
5 🤝 Typeclass Instances
Identique à la version précédente :
OrdpourProtocolVersionPrettypourProtocolVersionetEvaluationErrorAucune modification au niveau des définitions, si ce n’est la stricte stricte des données.
6 🏭 On-Chain Derivations
Les mêmes appels à makeIsDataIndexed et makeLift que précédemment ; non affectés par StrictData.
7 📚 Glossary
Tous les termes correspondent au glossaire précédent, avec l’ajout de :
StrictData : pragma qui rend tous les champs des types de données stricts, prévenant la création de thunks inattendus.
NoThunks : classe qui assure l’absence de paresse inattendue (laziness) dans les structures de données.
Last updated