{-# LANGUAGE ConstraintKinds #-}
{-# LANGUAGE EmptyDataDecls #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE TypeFamilies #-}
module Cardano.Ledger.Shelley.Constraints where
import Cardano.Ledger.Compactible (Compactible (..))
import Cardano.Ledger.Core
( AnnotatedData,
AuxiliaryData,
ChainData,
Script,
SerialisableData,
TxBody,
Value,
)
import Cardano.Ledger.Era (Era)
import Cardano.Ledger.Torsor (Torsor (..))
import Cardano.Ledger.Val (DecodeNonNegative, Val)
import Shelley.Spec.Ledger.Hashing
( EraIndependentTxBody,
HashAnnotated (..),
)
type TxBodyConstraints era =
( ChainData (TxBody era),
AnnotatedData (TxBody era),
HashAnnotated (TxBody era) era,
HashIndex (TxBody era) ~ EraIndependentTxBody
)
type ShelleyBased era =
( Era era,
Val (Value era),
Compactible (Value era),
DecodeNonNegative (Value era),
ChainData (Value era),
Eq (CompactForm (Value era)),
SerialisableData (Value era),
SerialisableData (CompactForm (Value era)),
ChainData (Delta (Value era)),
SerialisableData (Delta (Value era)),
Torsor (Value era),
TxBodyConstraints era,
ChainData (Script era),
AnnotatedData (Script era),
ChainData (AuxiliaryData era),
AnnotatedData (AuxiliaryData era)
)