Plutus.V1.Ledger.Credential

Table des matières

  1. 📜 Overview

  2. 🔧 LANGUAGE EXTENSIONS AND IMPORTS

  3. 🗄️ Data Types

    • 🌾 StakingCredential

    • 🛂 Credential

  4. 🤝 Typeclass Instances

  5. 🏭 On‑chain Derivations

  6. 📚 Glossary


1 📜 Overview

Le module Plutus.V1.Ledger.Credential définit comment les droits de dépense et de staking sont représentés on-chain :

  • StakingCredential : identifiants utilisés pour les récompenses de staking.

  • Credential : identifiants nécessaires pour débloquer une sortie de transaction (soit une clé publique, soit un script).

Implémente Pretty et l’égalité on-chain (PlutusTx.Eq) pour les deux types.

Dérive les instances de sérialisation et de lifting pour une utilisation on-chain.


2 🔧 LANGUAGE EXTENSIONS AND IMPORTS

Pragmas :

  • DataKinds, DeriveAnyClass, DerivingVia, OverloadedStrings, TemplateHaskell pour la dérivation et le support on-chain.

Options du compilateur : contrôlent la spécialisation et les pragmas d’interface.

Imports :

  • NFData, Generic pour l’évaluation profonde et la dérivation générique.

  • PubKeyHash, ValidatorHash pour les types d’identifiants.

  • Modules PlutusTx pour l’égalité on-chain et la sérialisation.

  • Prettyprinter pour les instances lisibles par l’humain.


3 🗄️ Data Types

3.1 🌾 StakingCredential

Constructeurs :

  • StakingHash Credential : staking via le hash d’un credential de paiement.

  • StakingPtr i j k : pointeur vers un certificat (slot, index de tx, index de certificat).

Cas d’usage : associe les récompenses de staking à des identifiants.


3.2 🛂 Credential

Constructeurs :

  • PubKeyCredential pkh : débloqué par une signature correspondant à la clé publique.

  • ScriptCredential vh : débloqué en fournissant un script de validation avec ce hash.

Cas d’usage : spécifie comment une sortie peut être dépensée.


4 🤝 Typeclass Instances

  • Pretty (Prettyprinter) : formatte chaque constructeur avec son contenu.

  • PlutusTx.Eq : égalité membre à membre, INLINABLE pour le support du compilateur.

    • Pour StakingCredential : compare par structure et contenu.

    • Pour Credential : compare par constructeur et hash sous-jacent.


5 🏭 On‑chain Derivations

  • makeIsDataIndexed : génère l’instance IsData pour la sérialisation en Plutus Core, avec des indices explicites pour les constructeurs.

  • makeLift : génère les instances Lift pour intégrer les valeurs Haskell dans du code on-chain.


6 📚 Glossary

  • StakingCredential : identifiant pour les récompenses de staking, soit un hash, soit un pointeur.

  • Credential : identifiant de dépense, soit clé publique, soit hash de script.

  • PubKeyHash : hash d’une clé publique.

  • ValidatorHash : hash d’un script de validation.

  • NFData : classe pour l’évaluation profonde (forme normale).

  • Generic : génériques GHC pour la dérivation automatique.

  • Pretty : classe pour l’affichage lisible (pretty printing).

  • PlutusTx.Eq : classe d’égalité on-chain.

  • makeIsDataIndexed : Template Haskell pour la sérialisation on-chain.

  • makeLift : Template Haskell pour le lifting des valeurs dans PlutusTx.


Last updated