Plutus.V1.Ledger.Credential
Table des matières
📜 Overview
🔧 LANGUAGE EXTENSIONS AND IMPORTS
🗄️ Data Types
🌾 StakingCredential
🛂 Credential
🤝 Typeclass Instances
🏭 On‑chain Derivations
📚 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