Plutus.V2.Ledger.Tx

Table des matières

  1. 📜 Overview

  2. 🔧 LANGUAGE PRAGMAS & IMPORTS

  3. 🗄️ Core Types

    • 🆔 TxId

    • 🏷️ ScriptTag & RedeemerPtr

    • 💾 Redeemers

    • 📮 TxOutRef

    • 🎯 OutputDatum

    • 📤 TxOut

    • 🎟️ TxInType & TxIn

  4. ⚙️ Utility Functions

  5. 🤝 Typeclass Instances

  6. 🏭 On-Chain Derivations

  7. 📚 Glossary


1 📜 Overview

Plutus.V2.Ledger.Tx étend les types de transaction pour Plutus V2 :

  • Ajoute les datums inline et les scripts de référence sur les sorties.

  • Réutilise les types V1 et introduit OutputDatum.

  • Fournit des constructeurs, des "lenses" et des helpers pour manipuler les entrées et sorties.


2 🔧 LANGUAGE PRAGMAS & IMPORTS

Utilise des pragmas pour la dérivation, la flexibilité, la généricité et la compatibilité on-chain. Importe les modules pour l’adresse, la crypto, les scripts, la valeur, ainsi que le support pour les helpers (lenses, Pretty, etc).


3 🗄️ Core Types

3.1 🆔 TxId

Re-exporté de V1 Représente le hash de la transaction : derive Eq, Ord, NFData, Eq on-chain, Pretty, IsString.


3.2 🏷️ ScriptTag & RedeemerPtr

Re-exporté de V1 Types pour tagger le but du script (ScriptTag) et pour pointer dans les maps de redeemer (RedeemerPtr, Redeemers).


3.3 💾 Redeemers

Mappe chaque but de script et un index à son Redeemer.


3.4 📮 TxOutRef

Re-exporté de V1 Pointeur vers une sortie d’une transaction antérieure.


3.5 🎯 OutputDatum

Représente : aucun datum, un hash de datum, ou un datum inline (directement stocké dans l’UTXO). Implémente Eq on-chain et Pretty.


3.6 📤 TxOut

Extension du TxOut V1, ajoute un datum inline et un éventuel hash de script de référence.


3.7 🎟️ TxInType & TxIn

Re-exporté de V1 Types d’entrée inchangés, supportent les scripts ou les clés publiques.


4 ⚙️ Utility Functions

  • inRef / inType : lenses pour accéder à la référence et au type d’une entrée.

  • inScripts : extrait (validator, redeemer, datum) si l’entrée est de type ConsumeScriptAddress.

  • pubKeyTxIn / scriptTxIn : constructeurs pour les entrées standard à clé publique ou script.

  • pubKeyTxIns / scriptTxIns : optics pour filtrer des ensembles d’entrées par type.

  • txOutPubKey / txOutValidatorHash : extrait l’éventuelle clé publique ou le hash du script de la sortie.

  • outAddress / outValue / outDatum / outReferenceScript : lenses pour accéder/modifier les champs de sortie.

  • isPubKeyOut / isPayToScriptOut : détecte si la sortie est verrouillée par une clé publique ou un script.

  • pubKeyHashTxOut : crée une sortie verrouillée par une clé publique (sans datum ni script de référence).


5 🤝 Typeclass Instances

  • Eq OutputDatum : égalité on-chain INLINABLE.

  • Pretty OutputDatum : rendu lisible des différentes formes de datum.

  • Eq TxOut : comparaison de tous les champs, y compris le datum inline et le script de référence.


6 🏭 On-Chain Derivations

Fournit les instances IsData et Lift pour la sérialisation des nouveaux types V2 (OutputDatum, TxOut).


7 📚 Glossary

  • OutputDatum : état du datum sur une sortie (aucun, hash, inline).

  • ReferenceScript : script on-chain optionnel rattaché à une sortie, pour la réutilisation.

  • Inline Datum : stocke le datum réel dans l’UTXO au lieu de référencer par hash.

  • Lens / Fold : optics (Control.Lens) pour l’accès/modification/filtrage des champs.

  • RedeemerPtr / Redeemers : pointeurs et map pour les redeemers, indexés par but du script.

  • ConsumeScriptAddress : type d’entrée qui inclut le validateur, le redeemer et le datum.


Last updated