Plutus.V1.Ledger.Tx

Table des matières

  1. 📜 Overview

  2. 🔧 LANGUAGE PRAGMAS AND IMPORTS

  3. 🗄️ Core Types

    • 🆔 TxId

    • 🏷️ ScriptTag & RedeemerPtr

    • 💾 Redeemers

    • 📮 TxOutRef

    • 🎟️ TxInType & TxIn

    • 📤 TxOut

  4. ⚙️ Utility Functions

    • 🔗 inRef / inType

    • 📜 inScripts

    • 👤 pubKeyTxIn / scriptTxIn

    • 🔍 pubKeyTxIns / scriptTxIns

    • 🏷️ txOutDatum / txOutPubKey / txOutValidatorHash

    • 🏠 outAddress / outValue

    • ✅ isPubKeyOut / isPayToScriptOut

    • 📦 pubKeyHashTxOut

  5. 🏭 On-Chain Derivations

  6. 📚 Glossary


1 📜 Overview

Le module Plutus.V1.Ledger.Tx définit les types principaux de transaction et des utilitaires :

  • Identifiants et pointeurs de transaction (TxId, TxOutRef)

  • Représentations des entrées et sorties (TxIn, TxOut)

  • Pointeurs de redeemer et tags de script

  • Fonctions pratiques pour inspecter, filtrer et construire des valeurs TxIn/TxOut

Tous les types dérivent l’égalité on-chain et la sérialisation, et les lenses simplifient l’accès aux champs.


2 🔧 LANGUAGE PRAGMAS AND IMPORTS

Pragmas de dérivation, Template Haskell, et flexibilité. Imports clés : Control.Lens pour les lenses de champs, Data.Map/Set pour les maps/redeemers, et les modules cœur du ledger.


3 🗄️ Core Types

3.1 🆔 TxId

Représente un hash de transaction SHA256.

Dérive l’égalité on-chain et les instances Pretty et IsString via LedgerBytes.


3.2 🏷️ ScriptTag & RedeemerPtr

  • ScriptTag : classe les types de scripts dans une transaction.

  • RedeemerPtr : pointe vers le nᵉ redeemer d’un type donné.


3.3 💾 Redeemers

Mappe les pointeurs (RedeemerPtr) à leur valeur Redeemer associée.


3.4 📮 TxOutRef

Identifie une sortie spécifique d’une transaction.

L’instance Pretty affiche au format txId!index.


3.5 🎟️ TxInType & TxIn

  • TxInType décrit le mode de dépense d’une sortie (script vs clé publique).

  • TxIn associe une référence à une éventuelle donnée de script.


3.6 📤 TxOut

Représente une sortie verrouillée à une adresse, avec une valeur et éventuellement un hash de datum.


4 ⚙️ Utility Functions

4.1 🔗 inRef / inType

Lenses pour accéder ou modifier les champs txInRef et txInType dans TxIn.


4.2 📜 inScripts

Extrait le triplet (Validator, Redeemer, Datum) si l’entrée consomme une adresse de script.


4.3 👤 pubKeyTxIn / scriptTxIn

Constructeurs pour les entrées standard à clé publique ou à script.


4.4 🔍 pubKeyTxIns / scriptTxIns

Filtres sur un ensemble d’entrées (Set TxIn) selon leur type (clé publique ou script).


4.5 🏷️ txOutDatum / txOutPubKey / txOutValidatorHash

Extrait du TxOut : le datum (optionnel), la clé publique ou le hash du validateur.


4.6 🏠 outAddress / outValue

Lenses pour modifier les champs address ou value d’une sortie.


4.7 ✅ isPubKeyOut / isPayToScriptOut

Détecte si une sortie est verrouillée par une clé publique ou un script.


4.8 📦 pubKeyHashTxOut

Construit une sortie standard verrouillée par une clé publique, sans datum.


5 🏭 On-Chain Derivations

  • makeIsDataIndexed et makeLift pour la sérialisation on-chain des types clés.


6 📚 Glossary

  • TxId : identifiant d’une transaction (SHA256)

  • TxOutRef : pointeur vers une sortie spécifique d’une transaction

  • TxInType : décrit comment une entrée dépense une sortie (script ou clé)

  • RedeemerPtr : index des redeemers par type de script

  • DatumHash : donnée optionnelle attachée à des sorties

  • Fold / Lens : optiques de Control.Lens pour interroger et modifier

  • IsDataIndexed / makeLift : Template Haskell pour la sérialisation et l’intégration on-chain


Last updated