Plutus.V1.Ledger.DCert
Table des matières
📜 Overview
🔧 LANGUAGE EXTENSIONS AND IMPORTS
🗄️ Data Type
📜 DCert Constructors
🤝 Typeclass Instances
🧮 PlutusTx.Eq DCert
📖 Pretty DCert
🏭 On-chain Derivations
📚 Glossary
1 📜 Overview
Le module Plutus.V1.Ledger.DCert
définit une représentation compacte des certificats de délégation et de pool de staking inclus dans les transactions Cardano.
Il fournit :
Un type de données algébrique unique (
DCert
) capturant toutes les variantes de certificats.Des instances d’égalité on-chain et de pretty-printing.
La sérialisation et le lifting pour le support dans Plutus Core.
2 🔧 LANGUAGE EXTENSIONS AND IMPORTS
Pragmas :
DataKinds
,DeriveAnyClass
,DerivingVia
,OverloadedStrings
,TemplateHaskell
pour le support générique et on-chain.
Options GHC pour contrôler la spécialisation et les pragmas d’interface.
Imports :
StakingCredential
,PubKeyHash
pour les champs des certificats.Modules PlutusTx et P pour les utilitaires on-chain.
Prettyprinter
pour l’affichage lisible.
3 🗄️ Data Type
3.1 📜 DCert Constructors
Les constructeurs capturent chaque type de certificat :
Délégation : enregistrement, désenregistrement, délégation à un pool.
Pool : enregistrement ou retrait d’un pool de staking.
Système : certificats genesis et MIR.
Exemple :
let cert1 = DCertDelegRegKey someStakingCred
let cert2 = DCertPoolRetire somePoolId 120
print cert1 -- uses Show: DCertDelegRegKey ...
4 🤝 Typeclass Instances
4.1 🧮 PlutusTx.Eq DCert
Classe : Eq
de PlutusTx, utilisée pour les comparaisons on-chain.
Le pragma INLINABLE
permet la spécialisation par GHC dans Plutus Core.
4.2 📖 Pretty DCert
Dérive le pretty-printing via l’instance Show
pour plus de simplicité.
5 🏭 On-chain Derivations
makeIsDataIndexed
: créeIsData
pour la sérialisation vers des données on-chain, chaque constructeur ayant un indice explicite.makeLift
: génère l’instanceLift
pour intégrer les valeursDCert
dans le code PlutusTx.
6 📚 Glossary
DCert : digest d’un certificat de délégation ou de pool de staking.
StakingCredential : identifiant d’une clé de staking (hash ou pointeur).
PubKeyHash : hash d’une clé publique, identifiant l’opérateur de pool.
Genesis Certificate : certificat initial présent à la genèse de la distribution.
MIR : certificat Move Instantaneous Rewards.
makeIsDataIndexed : Template Haskell pour la sérialisation on-chain.
makeLift : Template Haskell pour le lifting des valeurs dans PlutusTx.
INLINABLE : pragma GHC permettant la spécialisation et l’inclusion dans le code on-chain.
Last updated