Plutus.V1.Ledger.Time

Table des matières

  1. 📜 Overview

  2. 🔧 LANGUAGE PRAGMAS AND IMPORTS

  3. 🗄️ Data Types

    • ⏱️ DiffMilliSeconds

    • ⏲️ POSIXTime

    • 📅 POSIXTimeRange

  4. ⚙️ Functions

    • ↔️ fromMilliSeconds

  5. 🤝 Typeclass Instances

  6. 🏭 On-Chain Derivations

  7. 📚 Glossary


1 📜 Overview

Le module Plutus.V1.Ledger.Time définit des types et fonctions pour travailler avec le temps dans le code Plutus on-chain :

  • DiffMilliSeconds : durée mesurée en millisecondes.

  • POSIXTime : temps absolu depuis l’époque Unix, en millisecondes.

  • POSIXTimeRange : alias pour Interval POSIXTime, représentant des fenêtres temporelles valides.

Inclut un utilitaire pour convertir entre DiffMilliSeconds et POSIXTime.

Tous les types dérivent les classes numériques, d’ordre et de sérialisation on-chain pour une utilisation dans les scripts.


2 🔧 LANGUAGE PRAGMAS AND IMPORTS

Pragmas pour la dérivation générique, les instances on-chain, la flexibilité, et l’optimisation des interfaces.

Imports :

  • Interval pour les plages de temps

  • PlutusTx.Prelude pour le code on-chain


3 🗄️ Data Types

3.1 ⏱️ DiffMilliSeconds

Représente une durée en millisecondes.

Dérive toutes les classes numériques standard et les classes de sérialisation on-chain via newtype.


3.2 ⏲️ POSIXTime

Représente le nombre de millisecondes écoulées depuis le 1er janvier 1970 à 00:00:00Z.

Opérations numériques pratiques et sérialisation on-chain.

Instance Pretty pour un affichage lisible.


3.3 📅 POSIXTimeRange

Alias pour les intervalles de temps, par exemple pour les fenêtres de validité des transactions.


4 ⚙️ Functions

4.1 ↔️ fromMilliSeconds

Convertit une durée DiffMilliSeconds en un décalage POSIXTime.

Cas d’utilisation : ajouter ou soustraire des durées à/des valeurs POSIXTime dans les contrats.


5 🤝 Typeclass Instances

  • Eq, Ord, Show, Generic, NFData pour DiffMilliSeconds et POSIXTime

  • Numérique (Num, Integral, etc.) et Additive pour l’arithmétique

  • Sérialisation on-chain via PlutusTx.ToData, FromData, UnsafeFromData


6 🏭 On-Chain Derivations

  • makeLift ''DiffMilliSeconds

  • makeLift ''POSIXTime

Permet l’inclusion de ces types dans le code PlutusTx grâce à Template Haskell.


7 📚 Glossary

  • DiffMilliSeconds : wrapper autour d’un entier représentant des millisecondes.

  • POSIXTime : millisecondes depuis l’époque UNIX.

  • POSIXTimeRange : intervalle de POSIXTime, utilisé pour les plages de validité.

  • Interval : type générique d’intervalle issu de Plutus.V1.Ledger.Interval.

  • MonoLocalBinds / UndecidableInstances : pragmas GHC permettant certaines définitions d’instances.

  • makeLift : fonction Template Haskell pour créer les instances Lift on-chain.

  • AdditiveSemigroup / Monoid / Group : classes algébriques pour l’addition.

  • INLINABLE : pragma exposant la fonction à l’optimisation on-chain.

Last updated