{-# LANGUAGE DataKinds #-}
{-# LANGUAGE DeriveAnyClass #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DerivingStrategies #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE LambdaCase #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RankNTypes #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE StandaloneDeriving #-}
{-# LANGUAGE TypeApplications #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE TypeOperators #-}
{-# LANGUAGE UndecidableInstances #-}
{-# OPTIONS_GHC -Wno-orphans #-}
module Cardano.Ledger.Dijkstra.Rules.Bbody (
DijkstraBBODY,
DijkstraBbodyPredFailure (..),
conwayToDijkstraBbodyPredFailure,
) where
import Cardano.Ledger.Allegra.Rules (AllegraUtxoPredFailure)
import Cardano.Ledger.Alonzo.PParams (AlonzoEraPParams, ppMaxBlockExUnitsL)
import Cardano.Ledger.Alonzo.Rules (
AlonzoBbodyEvent (ShelleyInAlonzoEvent),
AlonzoBbodyPredFailure,
AlonzoUtxoPredFailure,
AlonzoUtxosPredFailure,
AlonzoUtxowPredFailure,
validateExUnits,
)
import Cardano.Ledger.Alonzo.Scripts (ExUnits (..))
import Cardano.Ledger.Alonzo.Tx (AlonzoEraTx)
import Cardano.Ledger.Alonzo.TxWits (AlonzoEraTxWits (..))
import Cardano.Ledger.Babbage.Core (BabbageEraTxBody)
import Cardano.Ledger.Babbage.Rules (BabbageUtxoPredFailure, BabbageUtxowPredFailure)
import Cardano.Ledger.BaseTypes (
Mismatch (..),
Nonce,
Relation (..),
ShelleyBase,
StrictMaybe (..),
)
import Cardano.Ledger.Binary (DecCBOR (..), EncCBOR (..))
import Cardano.Ledger.Binary.Coders (Decode (..), Encode (..), decode, encode, (!>), (<!))
import Cardano.Ledger.Block (Block (..), EraBlockHeader (..))
import Cardano.Ledger.Conway.PParams (ConwayEraPParams (..))
import Cardano.Ledger.Conway.Rules (
ConwayBbodyPredFailure,
ConwayCertPredFailure,
ConwayCertsPredFailure,
ConwayDelegPredFailure,
ConwayGovPredFailure,
ConwayUtxosPredFailure,
alonzoToConwayBbodyPredFailure,
shelleyToConwayBbodyPredFailure,
)
import qualified Cardano.Ledger.Conway.Rules as Conway
import Cardano.Ledger.Core
import Cardano.Ledger.Dijkstra.BlockBody (
DijkstraEraBlockBody (..),
PerasCert,
PerasKey (..),
validatePerasCert,
)
import Cardano.Ledger.Dijkstra.Era (
DijkstraBBODY,
DijkstraBbodySignal (..),
DijkstraEra,
DijkstraEraBlockHeader (..),
)
import Cardano.Ledger.Dijkstra.Rules.Gov (DijkstraGovPredFailure)
import Cardano.Ledger.Dijkstra.Rules.GovCert (DijkstraGovCertPredFailure)
import Cardano.Ledger.Dijkstra.Rules.Ledger (DijkstraLedgerPredFailure)
import Cardano.Ledger.Dijkstra.Rules.Ledgers ()
import Cardano.Ledger.Dijkstra.Rules.Utxo (DijkstraUtxoPredFailure)
import Cardano.Ledger.Dijkstra.Rules.Utxow (DijkstraUtxowPredFailure)
import Cardano.Ledger.Shelley.API (incrBlocks)
import Cardano.Ledger.Shelley.LedgerState (LedgerState (..), utxoL)
import Cardano.Ledger.Shelley.Rules (
BbodyEnv (..),
ShelleyBbodyPredFailure,
ShelleyBbodyState (..),
ShelleyLedgersEnv (..),
ShelleyLedgersPredFailure,
ShelleyPoolPredFailure,
ShelleyUtxoPredFailure,
ShelleyUtxowPredFailure,
)
import qualified Cardano.Ledger.Shelley.Rules as Shelley
import Cardano.Ledger.Slot (slotToEpochBoundary)
import Control.DeepSeq (NFData)
import Control.State.Transition
import Data.Sequence (Seq)
import Data.Sequence.Strict (fromStrict)
import GHC.Generics (Generic)
import Lens.Micro ((^.))
import NoThunks.Class (NoThunks (..))
data DijkstraBbodyPredFailure era
= WrongBlockBodySizeBBODY (Mismatch RelEQ Int)
| InvalidBodyHashBBODY (Mismatch RelEQ (Hash HASH EraIndependentBlockBody))
|
LedgersFailure (PredicateFailure (EraRule "LEDGERS" era))
| TooManyExUnits (Mismatch RelLTEQ ExUnits)
| BodyRefScriptsSizeTooBig (Mismatch RelLTEQ Int)
| PerasCertValidationFailed PerasCert Nonce
deriving ((forall x.
DijkstraBbodyPredFailure era
-> Rep (DijkstraBbodyPredFailure era) x)
-> (forall x.
Rep (DijkstraBbodyPredFailure era) x
-> DijkstraBbodyPredFailure era)
-> Generic (DijkstraBbodyPredFailure era)
forall x.
Rep (DijkstraBbodyPredFailure era) x
-> DijkstraBbodyPredFailure era
forall x.
DijkstraBbodyPredFailure era
-> Rep (DijkstraBbodyPredFailure era) x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
forall era x.
Rep (DijkstraBbodyPredFailure era) x
-> DijkstraBbodyPredFailure era
forall era x.
DijkstraBbodyPredFailure era
-> Rep (DijkstraBbodyPredFailure era) x
$cfrom :: forall era x.
DijkstraBbodyPredFailure era
-> Rep (DijkstraBbodyPredFailure era) x
from :: forall x.
DijkstraBbodyPredFailure era
-> Rep (DijkstraBbodyPredFailure era) x
$cto :: forall era x.
Rep (DijkstraBbodyPredFailure era) x
-> DijkstraBbodyPredFailure era
to :: forall x.
Rep (DijkstraBbodyPredFailure era) x
-> DijkstraBbodyPredFailure era
Generic)
instance NFData (PredicateFailure (EraRule "LEDGERS" era)) => NFData (DijkstraBbodyPredFailure era)
deriving instance
(Era era, Show (PredicateFailure (EraRule "LEDGERS" era))) =>
Show (DijkstraBbodyPredFailure era)
deriving instance
(Era era, Eq (PredicateFailure (EraRule "LEDGERS" era))) =>
Eq (DijkstraBbodyPredFailure era)
deriving anyclass instance
(Era era, NoThunks (PredicateFailure (EraRule "LEDGERS" era))) =>
NoThunks (DijkstraBbodyPredFailure era)
instance
( Era era
, EncCBOR (PredicateFailure (EraRule "LEDGERS" era))
) =>
EncCBOR (DijkstraBbodyPredFailure era)
where
encCBOR :: DijkstraBbodyPredFailure era -> Encoding
encCBOR =
Encode Open (DijkstraBbodyPredFailure era) -> Encoding
forall (w :: Wrapped) t. Encode w t -> Encoding
encode (Encode Open (DijkstraBbodyPredFailure era) -> Encoding)
-> (DijkstraBbodyPredFailure era
-> Encode Open (DijkstraBbodyPredFailure era))
-> DijkstraBbodyPredFailure era
-> Encoding
forall b c a. (b -> c) -> (a -> b) -> a -> c
. \case
WrongBlockBodySizeBBODY Mismatch RelEQ Int
mm -> (Mismatch RelEQ Int -> DijkstraBbodyPredFailure era)
-> Word
-> Encode Open (Mismatch RelEQ Int -> DijkstraBbodyPredFailure era)
forall t. t -> Word -> Encode Open t
Sum Mismatch RelEQ Int -> DijkstraBbodyPredFailure era
forall era. Mismatch RelEQ Int -> DijkstraBbodyPredFailure era
WrongBlockBodySizeBBODY Word
0 Encode Open (Mismatch RelEQ Int -> DijkstraBbodyPredFailure era)
-> Encode (Closed Dense) (Mismatch RelEQ Int)
-> Encode Open (DijkstraBbodyPredFailure era)
forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode (Closed r) a -> Encode w t
!> Mismatch RelEQ Int -> Encode (Closed Dense) (Mismatch RelEQ Int)
forall t. EncCBOR t => t -> Encode (Closed Dense) t
To Mismatch RelEQ Int
mm
InvalidBodyHashBBODY Mismatch RelEQ (Hash HASH EraIndependentBlockBody)
mm -> (Mismatch RelEQ (Hash HASH EraIndependentBlockBody)
-> DijkstraBbodyPredFailure era)
-> Word
-> Encode
Open
(Mismatch RelEQ (Hash HASH EraIndependentBlockBody)
-> DijkstraBbodyPredFailure era)
forall t. t -> Word -> Encode Open t
Sum (forall era.
Mismatch RelEQ (Hash HASH EraIndependentBlockBody)
-> DijkstraBbodyPredFailure era
InvalidBodyHashBBODY @era) Word
1 Encode
Open
(Mismatch RelEQ (Hash HASH EraIndependentBlockBody)
-> DijkstraBbodyPredFailure era)
-> Encode
(Closed Dense) (Mismatch RelEQ (Hash HASH EraIndependentBlockBody))
-> Encode Open (DijkstraBbodyPredFailure era)
forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode (Closed r) a -> Encode w t
!> Mismatch RelEQ (Hash HASH EraIndependentBlockBody)
-> Encode
(Closed Dense) (Mismatch RelEQ (Hash HASH EraIndependentBlockBody))
forall t. EncCBOR t => t -> Encode (Closed Dense) t
To Mismatch RelEQ (Hash HASH EraIndependentBlockBody)
mm
LedgersFailure PredicateFailure (EraRule "LEDGERS" era)
x -> (PredicateFailure (EraRule "LEDGERS" era)
-> DijkstraBbodyPredFailure era)
-> Word
-> Encode
Open
(PredicateFailure (EraRule "LEDGERS" era)
-> DijkstraBbodyPredFailure era)
forall t. t -> Word -> Encode Open t
Sum (forall era.
PredicateFailure (EraRule "LEDGERS" era)
-> DijkstraBbodyPredFailure era
LedgersFailure @era) Word
2 Encode
Open
(PredicateFailure (EraRule "LEDGERS" era)
-> DijkstraBbodyPredFailure era)
-> Encode (Closed Dense) (PredicateFailure (EraRule "LEDGERS" era))
-> Encode Open (DijkstraBbodyPredFailure era)
forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode (Closed r) a -> Encode w t
!> PredicateFailure (EraRule "LEDGERS" era)
-> Encode (Closed Dense) (PredicateFailure (EraRule "LEDGERS" era))
forall t. EncCBOR t => t -> Encode (Closed Dense) t
To PredicateFailure (EraRule "LEDGERS" era)
x
TooManyExUnits Mismatch RelLTEQ ExUnits
mm -> (Mismatch RelLTEQ ExUnits -> DijkstraBbodyPredFailure era)
-> Word
-> Encode
Open (Mismatch RelLTEQ ExUnits -> DijkstraBbodyPredFailure era)
forall t. t -> Word -> Encode Open t
Sum Mismatch RelLTEQ ExUnits -> DijkstraBbodyPredFailure era
forall era.
Mismatch RelLTEQ ExUnits -> DijkstraBbodyPredFailure era
TooManyExUnits Word
3 Encode
Open (Mismatch RelLTEQ ExUnits -> DijkstraBbodyPredFailure era)
-> Encode (Closed Dense) (Mismatch RelLTEQ ExUnits)
-> Encode Open (DijkstraBbodyPredFailure era)
forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode (Closed r) a -> Encode w t
!> Mismatch RelLTEQ ExUnits
-> Encode (Closed Dense) (Mismatch RelLTEQ ExUnits)
forall t. EncCBOR t => t -> Encode (Closed Dense) t
To Mismatch RelLTEQ ExUnits
mm
BodyRefScriptsSizeTooBig Mismatch RelLTEQ Int
mm -> (Mismatch RelLTEQ Int -> DijkstraBbodyPredFailure era)
-> Word
-> Encode
Open (Mismatch RelLTEQ Int -> DijkstraBbodyPredFailure era)
forall t. t -> Word -> Encode Open t
Sum Mismatch RelLTEQ Int -> DijkstraBbodyPredFailure era
forall era. Mismatch RelLTEQ Int -> DijkstraBbodyPredFailure era
BodyRefScriptsSizeTooBig Word
4 Encode Open (Mismatch RelLTEQ Int -> DijkstraBbodyPredFailure era)
-> Encode (Closed Dense) (Mismatch RelLTEQ Int)
-> Encode Open (DijkstraBbodyPredFailure era)
forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode (Closed r) a -> Encode w t
!> Mismatch RelLTEQ Int
-> Encode (Closed Dense) (Mismatch RelLTEQ Int)
forall t. EncCBOR t => t -> Encode (Closed Dense) t
To Mismatch RelLTEQ Int
mm
PerasCertValidationFailed PerasCert
cert Nonce
nonce ->
(PerasCert -> Nonce -> DijkstraBbodyPredFailure era)
-> Word
-> Encode Open (PerasCert -> Nonce -> DijkstraBbodyPredFailure era)
forall t. t -> Word -> Encode Open t
Sum PerasCert -> Nonce -> DijkstraBbodyPredFailure era
forall era. PerasCert -> Nonce -> DijkstraBbodyPredFailure era
PerasCertValidationFailed Word
5 Encode Open (PerasCert -> Nonce -> DijkstraBbodyPredFailure era)
-> Encode (Closed Dense) PerasCert
-> Encode Open (Nonce -> DijkstraBbodyPredFailure era)
forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode (Closed r) a -> Encode w t
!> PerasCert -> Encode (Closed Dense) PerasCert
forall t. EncCBOR t => t -> Encode (Closed Dense) t
To PerasCert
cert Encode Open (Nonce -> DijkstraBbodyPredFailure era)
-> Encode (Closed Dense) Nonce
-> Encode Open (DijkstraBbodyPredFailure era)
forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode (Closed r) a -> Encode w t
!> Nonce -> Encode (Closed Dense) Nonce
forall t. EncCBOR t => t -> Encode (Closed Dense) t
To Nonce
nonce
instance
( Era era
, DecCBOR (PredicateFailure (EraRule "LEDGERS" era))
) =>
DecCBOR (DijkstraBbodyPredFailure era)
where
decCBOR :: forall s. Decoder s (DijkstraBbodyPredFailure era)
decCBOR = Decode (Closed Dense) (DijkstraBbodyPredFailure era)
-> Decoder s (DijkstraBbodyPredFailure era)
forall t (w :: Wrapped) s. Typeable t => Decode w t -> Decoder s t
decode (Decode (Closed Dense) (DijkstraBbodyPredFailure era)
-> Decoder s (DijkstraBbodyPredFailure era))
-> ((Word -> Decode Open (DijkstraBbodyPredFailure era))
-> Decode (Closed Dense) (DijkstraBbodyPredFailure era))
-> (Word -> Decode Open (DijkstraBbodyPredFailure era))
-> Decoder s (DijkstraBbodyPredFailure era)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Text
-> (Word -> Decode Open (DijkstraBbodyPredFailure era))
-> Decode (Closed Dense) (DijkstraBbodyPredFailure era)
forall t.
Text -> (Word -> Decode Open t) -> Decode (Closed Dense) t
Summands Text
"ConwayBbodyPred" ((Word -> Decode Open (DijkstraBbodyPredFailure era))
-> Decoder s (DijkstraBbodyPredFailure era))
-> (Word -> Decode Open (DijkstraBbodyPredFailure era))
-> Decoder s (DijkstraBbodyPredFailure era)
forall a b. (a -> b) -> a -> b
$ \case
Word
0 -> (Mismatch RelEQ Int -> DijkstraBbodyPredFailure era)
-> Decode Open (Mismatch RelEQ Int -> DijkstraBbodyPredFailure era)
forall t. t -> Decode Open t
SumD Mismatch RelEQ Int -> DijkstraBbodyPredFailure era
forall era. Mismatch RelEQ Int -> DijkstraBbodyPredFailure era
WrongBlockBodySizeBBODY Decode Open (Mismatch RelEQ Int -> DijkstraBbodyPredFailure era)
-> Decode (Closed (ZonkAny 0)) (Mismatch RelEQ Int)
-> Decode Open (DijkstraBbodyPredFailure era)
forall a (w1 :: Wrapped) t (w :: Density).
Typeable a =>
Decode w1 (a -> t) -> Decode (Closed w) a -> Decode w1 t
<! Decode (Closed (ZonkAny 0)) (Mismatch RelEQ Int)
forall t (w :: Wrapped). DecCBOR t => Decode w t
From
Word
1 -> (Mismatch RelEQ (Hash HASH EraIndependentBlockBody)
-> DijkstraBbodyPredFailure era)
-> Decode
Open
(Mismatch RelEQ (Hash HASH EraIndependentBlockBody)
-> DijkstraBbodyPredFailure era)
forall t. t -> Decode Open t
SumD Mismatch RelEQ (Hash HASH EraIndependentBlockBody)
-> DijkstraBbodyPredFailure era
forall era.
Mismatch RelEQ (Hash HASH EraIndependentBlockBody)
-> DijkstraBbodyPredFailure era
InvalidBodyHashBBODY Decode
Open
(Mismatch RelEQ (Hash HASH EraIndependentBlockBody)
-> DijkstraBbodyPredFailure era)
-> Decode
(Closed (ZonkAny 1))
(Mismatch RelEQ (Hash HASH EraIndependentBlockBody))
-> Decode Open (DijkstraBbodyPredFailure era)
forall a (w1 :: Wrapped) t (w :: Density).
Typeable a =>
Decode w1 (a -> t) -> Decode (Closed w) a -> Decode w1 t
<! Decode
(Closed (ZonkAny 1))
(Mismatch RelEQ (Hash HASH EraIndependentBlockBody))
forall t (w :: Wrapped). DecCBOR t => Decode w t
From
Word
2 -> (PredicateFailure (EraRule "LEDGERS" era)
-> DijkstraBbodyPredFailure era)
-> Decode
Open
(PredicateFailure (EraRule "LEDGERS" era)
-> DijkstraBbodyPredFailure era)
forall t. t -> Decode Open t
SumD PredicateFailure (EraRule "LEDGERS" era)
-> DijkstraBbodyPredFailure era
forall era.
PredicateFailure (EraRule "LEDGERS" era)
-> DijkstraBbodyPredFailure era
LedgersFailure Decode
Open
(PredicateFailure (EraRule "LEDGERS" era)
-> DijkstraBbodyPredFailure era)
-> Decode
(Closed (ZonkAny 2)) (PredicateFailure (EraRule "LEDGERS" era))
-> Decode Open (DijkstraBbodyPredFailure era)
forall a (w1 :: Wrapped) t (w :: Density).
Typeable a =>
Decode w1 (a -> t) -> Decode (Closed w) a -> Decode w1 t
<! Decode
(Closed (ZonkAny 2)) (PredicateFailure (EraRule "LEDGERS" era))
forall t (w :: Wrapped). DecCBOR t => Decode w t
From
Word
3 -> (Mismatch RelLTEQ ExUnits -> DijkstraBbodyPredFailure era)
-> Decode
Open (Mismatch RelLTEQ ExUnits -> DijkstraBbodyPredFailure era)
forall t. t -> Decode Open t
SumD Mismatch RelLTEQ ExUnits -> DijkstraBbodyPredFailure era
forall era.
Mismatch RelLTEQ ExUnits -> DijkstraBbodyPredFailure era
TooManyExUnits Decode
Open (Mismatch RelLTEQ ExUnits -> DijkstraBbodyPredFailure era)
-> Decode (Closed (ZonkAny 3)) (Mismatch RelLTEQ ExUnits)
-> Decode Open (DijkstraBbodyPredFailure era)
forall a (w1 :: Wrapped) t (w :: Density).
Typeable a =>
Decode w1 (a -> t) -> Decode (Closed w) a -> Decode w1 t
<! Decode (Closed (ZonkAny 3)) (Mismatch RelLTEQ ExUnits)
forall t (w :: Wrapped). DecCBOR t => Decode w t
From
Word
4 -> (Mismatch RelLTEQ Int -> DijkstraBbodyPredFailure era)
-> Decode
Open (Mismatch RelLTEQ Int -> DijkstraBbodyPredFailure era)
forall t. t -> Decode Open t
SumD Mismatch RelLTEQ Int -> DijkstraBbodyPredFailure era
forall era. Mismatch RelLTEQ Int -> DijkstraBbodyPredFailure era
BodyRefScriptsSizeTooBig Decode Open (Mismatch RelLTEQ Int -> DijkstraBbodyPredFailure era)
-> Decode (Closed (ZonkAny 4)) (Mismatch RelLTEQ Int)
-> Decode Open (DijkstraBbodyPredFailure era)
forall a (w1 :: Wrapped) t (w :: Density).
Typeable a =>
Decode w1 (a -> t) -> Decode (Closed w) a -> Decode w1 t
<! Decode (Closed (ZonkAny 4)) (Mismatch RelLTEQ Int)
forall t (w :: Wrapped). DecCBOR t => Decode w t
From
Word
5 -> (PerasCert -> Nonce -> DijkstraBbodyPredFailure era)
-> Decode Open (PerasCert -> Nonce -> DijkstraBbodyPredFailure era)
forall t. t -> Decode Open t
SumD PerasCert -> Nonce -> DijkstraBbodyPredFailure era
forall era. PerasCert -> Nonce -> DijkstraBbodyPredFailure era
PerasCertValidationFailed Decode Open (PerasCert -> Nonce -> DijkstraBbodyPredFailure era)
-> Decode (Closed (ZonkAny 6)) PerasCert
-> Decode Open (Nonce -> DijkstraBbodyPredFailure era)
forall a (w1 :: Wrapped) t (w :: Density).
Typeable a =>
Decode w1 (a -> t) -> Decode (Closed w) a -> Decode w1 t
<! Decode (Closed (ZonkAny 6)) PerasCert
forall t (w :: Wrapped). DecCBOR t => Decode w t
From Decode Open (Nonce -> DijkstraBbodyPredFailure era)
-> Decode (Closed (ZonkAny 5)) Nonce
-> Decode Open (DijkstraBbodyPredFailure era)
forall a (w1 :: Wrapped) t (w :: Density).
Typeable a =>
Decode w1 (a -> t) -> Decode (Closed w) a -> Decode w1 t
<! Decode (Closed (ZonkAny 5)) Nonce
forall t (w :: Wrapped). DecCBOR t => Decode w t
From
Word
n -> Word -> Decode Open (DijkstraBbodyPredFailure era)
forall (w :: Wrapped) t. Word -> Decode w t
Invalid Word
n
type instance EraRuleFailure "BBODY" DijkstraEra = DijkstraBbodyPredFailure DijkstraEra
type instance EraRuleEvent "BBODY" DijkstraEra = AlonzoBbodyEvent DijkstraEra
instance InjectRuleFailure "BBODY" DijkstraBbodyPredFailure DijkstraEra
instance InjectRuleFailure "BBODY" ConwayBbodyPredFailure DijkstraEra where
injectFailure :: ConwayBbodyPredFailure DijkstraEra
-> EraRuleFailure "BBODY" DijkstraEra
injectFailure = ConwayBbodyPredFailure DijkstraEra
-> EraRuleFailure "BBODY" DijkstraEra
ConwayBbodyPredFailure DijkstraEra
-> DijkstraBbodyPredFailure DijkstraEra
forall era.
ConwayBbodyPredFailure era -> DijkstraBbodyPredFailure era
conwayToDijkstraBbodyPredFailure
instance InjectRuleFailure "BBODY" AlonzoBbodyPredFailure DijkstraEra where
injectFailure :: AlonzoBbodyPredFailure DijkstraEra
-> EraRuleFailure "BBODY" DijkstraEra
injectFailure = ConwayBbodyPredFailure DijkstraEra
-> DijkstraBbodyPredFailure DijkstraEra
forall era.
ConwayBbodyPredFailure era -> DijkstraBbodyPredFailure era
conwayToDijkstraBbodyPredFailure (ConwayBbodyPredFailure DijkstraEra
-> DijkstraBbodyPredFailure DijkstraEra)
-> (AlonzoBbodyPredFailure DijkstraEra
-> ConwayBbodyPredFailure DijkstraEra)
-> AlonzoBbodyPredFailure DijkstraEra
-> DijkstraBbodyPredFailure DijkstraEra
forall b c a. (b -> c) -> (a -> b) -> a -> c
. AlonzoBbodyPredFailure DijkstraEra
-> ConwayBbodyPredFailure DijkstraEra
forall era.
AlonzoBbodyPredFailure era -> ConwayBbodyPredFailure era
alonzoToConwayBbodyPredFailure
instance InjectRuleFailure "BBODY" ShelleyBbodyPredFailure DijkstraEra where
injectFailure :: ShelleyBbodyPredFailure DijkstraEra
-> EraRuleFailure "BBODY" DijkstraEra
injectFailure = ConwayBbodyPredFailure DijkstraEra
-> DijkstraBbodyPredFailure DijkstraEra
forall era.
ConwayBbodyPredFailure era -> DijkstraBbodyPredFailure era
conwayToDijkstraBbodyPredFailure (ConwayBbodyPredFailure DijkstraEra
-> DijkstraBbodyPredFailure DijkstraEra)
-> (ShelleyBbodyPredFailure DijkstraEra
-> ConwayBbodyPredFailure DijkstraEra)
-> ShelleyBbodyPredFailure DijkstraEra
-> DijkstraBbodyPredFailure DijkstraEra
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ShelleyBbodyPredFailure DijkstraEra
-> ConwayBbodyPredFailure DijkstraEra
forall era.
ShelleyBbodyPredFailure era -> ConwayBbodyPredFailure era
shelleyToConwayBbodyPredFailure
instance InjectRuleFailure "BBODY" ShelleyLedgersPredFailure DijkstraEra where
injectFailure :: ShelleyLedgersPredFailure DijkstraEra
-> EraRuleFailure "BBODY" DijkstraEra
injectFailure = ConwayBbodyPredFailure DijkstraEra
-> DijkstraBbodyPredFailure DijkstraEra
forall era.
ConwayBbodyPredFailure era -> DijkstraBbodyPredFailure era
conwayToDijkstraBbodyPredFailure (ConwayBbodyPredFailure DijkstraEra
-> DijkstraBbodyPredFailure DijkstraEra)
-> (ShelleyLedgersPredFailure DijkstraEra
-> ConwayBbodyPredFailure DijkstraEra)
-> ShelleyLedgersPredFailure DijkstraEra
-> DijkstraBbodyPredFailure DijkstraEra
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ShelleyBbodyPredFailure DijkstraEra
-> ConwayBbodyPredFailure DijkstraEra
forall era.
ShelleyBbodyPredFailure era -> ConwayBbodyPredFailure era
shelleyToConwayBbodyPredFailure (ShelleyBbodyPredFailure DijkstraEra
-> ConwayBbodyPredFailure DijkstraEra)
-> (ShelleyLedgersPredFailure DijkstraEra
-> ShelleyBbodyPredFailure DijkstraEra)
-> ShelleyLedgersPredFailure DijkstraEra
-> ConwayBbodyPredFailure DijkstraEra
forall b c a. (b -> c) -> (a -> b) -> a -> c
. PredicateFailure (EraRule "LEDGERS" DijkstraEra)
-> ShelleyBbodyPredFailure DijkstraEra
ShelleyLedgersPredFailure DijkstraEra
-> ShelleyBbodyPredFailure DijkstraEra
forall era.
PredicateFailure (EraRule "LEDGERS" era)
-> ShelleyBbodyPredFailure era
Shelley.LedgersFailure
instance InjectRuleFailure "BBODY" DijkstraLedgerPredFailure DijkstraEra where
injectFailure :: DijkstraLedgerPredFailure DijkstraEra
-> EraRuleFailure "BBODY" DijkstraEra
injectFailure =
ConwayBbodyPredFailure DijkstraEra
-> DijkstraBbodyPredFailure DijkstraEra
forall era.
ConwayBbodyPredFailure era -> DijkstraBbodyPredFailure era
conwayToDijkstraBbodyPredFailure
(ConwayBbodyPredFailure DijkstraEra
-> DijkstraBbodyPredFailure DijkstraEra)
-> (DijkstraLedgerPredFailure DijkstraEra
-> ConwayBbodyPredFailure DijkstraEra)
-> DijkstraLedgerPredFailure DijkstraEra
-> DijkstraBbodyPredFailure DijkstraEra
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ShelleyBbodyPredFailure DijkstraEra
-> ConwayBbodyPredFailure DijkstraEra
forall era.
ShelleyBbodyPredFailure era -> ConwayBbodyPredFailure era
shelleyToConwayBbodyPredFailure
(ShelleyBbodyPredFailure DijkstraEra
-> ConwayBbodyPredFailure DijkstraEra)
-> (DijkstraLedgerPredFailure DijkstraEra
-> ShelleyBbodyPredFailure DijkstraEra)
-> DijkstraLedgerPredFailure DijkstraEra
-> ConwayBbodyPredFailure DijkstraEra
forall b c a. (b -> c) -> (a -> b) -> a -> c
. PredicateFailure (EraRule "LEDGERS" DijkstraEra)
-> ShelleyBbodyPredFailure DijkstraEra
ShelleyLedgersPredFailure DijkstraEra
-> ShelleyBbodyPredFailure DijkstraEra
forall era.
PredicateFailure (EraRule "LEDGERS" era)
-> ShelleyBbodyPredFailure era
Shelley.LedgersFailure
(ShelleyLedgersPredFailure DijkstraEra
-> ShelleyBbodyPredFailure DijkstraEra)
-> (DijkstraLedgerPredFailure DijkstraEra
-> ShelleyLedgersPredFailure DijkstraEra)
-> DijkstraLedgerPredFailure DijkstraEra
-> ShelleyBbodyPredFailure DijkstraEra
forall b c a. (b -> c) -> (a -> b) -> a -> c
. DijkstraLedgerPredFailure DijkstraEra
-> EraRuleFailure "LEDGERS" DijkstraEra
DijkstraLedgerPredFailure DijkstraEra
-> ShelleyLedgersPredFailure DijkstraEra
forall (rule :: Symbol) (t :: * -> *) era.
InjectRuleFailure rule t era =>
t era -> EraRuleFailure rule era
injectFailure
instance InjectRuleFailure "BBODY" DijkstraUtxowPredFailure DijkstraEra where
injectFailure :: DijkstraUtxowPredFailure DijkstraEra
-> EraRuleFailure "BBODY" DijkstraEra
injectFailure =
ConwayBbodyPredFailure DijkstraEra
-> DijkstraBbodyPredFailure DijkstraEra
forall era.
ConwayBbodyPredFailure era -> DijkstraBbodyPredFailure era
conwayToDijkstraBbodyPredFailure
(ConwayBbodyPredFailure DijkstraEra
-> DijkstraBbodyPredFailure DijkstraEra)
-> (DijkstraUtxowPredFailure DijkstraEra
-> ConwayBbodyPredFailure DijkstraEra)
-> DijkstraUtxowPredFailure DijkstraEra
-> DijkstraBbodyPredFailure DijkstraEra
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ShelleyBbodyPredFailure DijkstraEra
-> ConwayBbodyPredFailure DijkstraEra
forall era.
ShelleyBbodyPredFailure era -> ConwayBbodyPredFailure era
shelleyToConwayBbodyPredFailure
(ShelleyBbodyPredFailure DijkstraEra
-> ConwayBbodyPredFailure DijkstraEra)
-> (DijkstraUtxowPredFailure DijkstraEra
-> ShelleyBbodyPredFailure DijkstraEra)
-> DijkstraUtxowPredFailure DijkstraEra
-> ConwayBbodyPredFailure DijkstraEra
forall b c a. (b -> c) -> (a -> b) -> a -> c
. PredicateFailure (EraRule "LEDGERS" DijkstraEra)
-> ShelleyBbodyPredFailure DijkstraEra
ShelleyLedgersPredFailure DijkstraEra
-> ShelleyBbodyPredFailure DijkstraEra
forall era.
PredicateFailure (EraRule "LEDGERS" era)
-> ShelleyBbodyPredFailure era
Shelley.LedgersFailure
(ShelleyLedgersPredFailure DijkstraEra
-> ShelleyBbodyPredFailure DijkstraEra)
-> (DijkstraUtxowPredFailure DijkstraEra
-> ShelleyLedgersPredFailure DijkstraEra)
-> DijkstraUtxowPredFailure DijkstraEra
-> ShelleyBbodyPredFailure DijkstraEra
forall b c a. (b -> c) -> (a -> b) -> a -> c
. DijkstraUtxowPredFailure DijkstraEra
-> EraRuleFailure "LEDGERS" DijkstraEra
DijkstraUtxowPredFailure DijkstraEra
-> ShelleyLedgersPredFailure DijkstraEra
forall (rule :: Symbol) (t :: * -> *) era.
InjectRuleFailure rule t era =>
t era -> EraRuleFailure rule era
injectFailure
instance InjectRuleFailure "BBODY" BabbageUtxowPredFailure DijkstraEra where
injectFailure :: BabbageUtxowPredFailure DijkstraEra
-> EraRuleFailure "BBODY" DijkstraEra
injectFailure =
ConwayBbodyPredFailure DijkstraEra
-> DijkstraBbodyPredFailure DijkstraEra
forall era.
ConwayBbodyPredFailure era -> DijkstraBbodyPredFailure era
conwayToDijkstraBbodyPredFailure
(ConwayBbodyPredFailure DijkstraEra
-> DijkstraBbodyPredFailure DijkstraEra)
-> (BabbageUtxowPredFailure DijkstraEra
-> ConwayBbodyPredFailure DijkstraEra)
-> BabbageUtxowPredFailure DijkstraEra
-> DijkstraBbodyPredFailure DijkstraEra
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ShelleyBbodyPredFailure DijkstraEra
-> ConwayBbodyPredFailure DijkstraEra
forall era.
ShelleyBbodyPredFailure era -> ConwayBbodyPredFailure era
shelleyToConwayBbodyPredFailure
(ShelleyBbodyPredFailure DijkstraEra
-> ConwayBbodyPredFailure DijkstraEra)
-> (BabbageUtxowPredFailure DijkstraEra
-> ShelleyBbodyPredFailure DijkstraEra)
-> BabbageUtxowPredFailure DijkstraEra
-> ConwayBbodyPredFailure DijkstraEra
forall b c a. (b -> c) -> (a -> b) -> a -> c
. PredicateFailure (EraRule "LEDGERS" DijkstraEra)
-> ShelleyBbodyPredFailure DijkstraEra
ShelleyLedgersPredFailure DijkstraEra
-> ShelleyBbodyPredFailure DijkstraEra
forall era.
PredicateFailure (EraRule "LEDGERS" era)
-> ShelleyBbodyPredFailure era
Shelley.LedgersFailure
(ShelleyLedgersPredFailure DijkstraEra
-> ShelleyBbodyPredFailure DijkstraEra)
-> (BabbageUtxowPredFailure DijkstraEra
-> ShelleyLedgersPredFailure DijkstraEra)
-> BabbageUtxowPredFailure DijkstraEra
-> ShelleyBbodyPredFailure DijkstraEra
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BabbageUtxowPredFailure DijkstraEra
-> EraRuleFailure "LEDGERS" DijkstraEra
BabbageUtxowPredFailure DijkstraEra
-> ShelleyLedgersPredFailure DijkstraEra
forall (rule :: Symbol) (t :: * -> *) era.
InjectRuleFailure rule t era =>
t era -> EraRuleFailure rule era
injectFailure
instance InjectRuleFailure "BBODY" AlonzoUtxowPredFailure DijkstraEra where
injectFailure :: AlonzoUtxowPredFailure DijkstraEra
-> EraRuleFailure "BBODY" DijkstraEra
injectFailure =
ConwayBbodyPredFailure DijkstraEra
-> DijkstraBbodyPredFailure DijkstraEra
forall era.
ConwayBbodyPredFailure era -> DijkstraBbodyPredFailure era
conwayToDijkstraBbodyPredFailure
(ConwayBbodyPredFailure DijkstraEra
-> DijkstraBbodyPredFailure DijkstraEra)
-> (AlonzoUtxowPredFailure DijkstraEra
-> ConwayBbodyPredFailure DijkstraEra)
-> AlonzoUtxowPredFailure DijkstraEra
-> DijkstraBbodyPredFailure DijkstraEra
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ShelleyBbodyPredFailure DijkstraEra
-> ConwayBbodyPredFailure DijkstraEra
forall era.
ShelleyBbodyPredFailure era -> ConwayBbodyPredFailure era
shelleyToConwayBbodyPredFailure
(ShelleyBbodyPredFailure DijkstraEra
-> ConwayBbodyPredFailure DijkstraEra)
-> (AlonzoUtxowPredFailure DijkstraEra
-> ShelleyBbodyPredFailure DijkstraEra)
-> AlonzoUtxowPredFailure DijkstraEra
-> ConwayBbodyPredFailure DijkstraEra
forall b c a. (b -> c) -> (a -> b) -> a -> c
. PredicateFailure (EraRule "LEDGERS" DijkstraEra)
-> ShelleyBbodyPredFailure DijkstraEra
ShelleyLedgersPredFailure DijkstraEra
-> ShelleyBbodyPredFailure DijkstraEra
forall era.
PredicateFailure (EraRule "LEDGERS" era)
-> ShelleyBbodyPredFailure era
Shelley.LedgersFailure
(ShelleyLedgersPredFailure DijkstraEra
-> ShelleyBbodyPredFailure DijkstraEra)
-> (AlonzoUtxowPredFailure DijkstraEra
-> ShelleyLedgersPredFailure DijkstraEra)
-> AlonzoUtxowPredFailure DijkstraEra
-> ShelleyBbodyPredFailure DijkstraEra
forall b c a. (b -> c) -> (a -> b) -> a -> c
. AlonzoUtxowPredFailure DijkstraEra
-> EraRuleFailure "LEDGERS" DijkstraEra
AlonzoUtxowPredFailure DijkstraEra
-> ShelleyLedgersPredFailure DijkstraEra
forall (rule :: Symbol) (t :: * -> *) era.
InjectRuleFailure rule t era =>
t era -> EraRuleFailure rule era
injectFailure
instance InjectRuleFailure "BBODY" ShelleyUtxowPredFailure DijkstraEra where
injectFailure :: ShelleyUtxowPredFailure DijkstraEra
-> EraRuleFailure "BBODY" DijkstraEra
injectFailure =
ConwayBbodyPredFailure DijkstraEra
-> DijkstraBbodyPredFailure DijkstraEra
forall era.
ConwayBbodyPredFailure era -> DijkstraBbodyPredFailure era
conwayToDijkstraBbodyPredFailure
(ConwayBbodyPredFailure DijkstraEra
-> DijkstraBbodyPredFailure DijkstraEra)
-> (ShelleyUtxowPredFailure DijkstraEra
-> ConwayBbodyPredFailure DijkstraEra)
-> ShelleyUtxowPredFailure DijkstraEra
-> DijkstraBbodyPredFailure DijkstraEra
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ShelleyBbodyPredFailure DijkstraEra
-> ConwayBbodyPredFailure DijkstraEra
forall era.
ShelleyBbodyPredFailure era -> ConwayBbodyPredFailure era
shelleyToConwayBbodyPredFailure
(ShelleyBbodyPredFailure DijkstraEra
-> ConwayBbodyPredFailure DijkstraEra)
-> (ShelleyUtxowPredFailure DijkstraEra
-> ShelleyBbodyPredFailure DijkstraEra)
-> ShelleyUtxowPredFailure DijkstraEra
-> ConwayBbodyPredFailure DijkstraEra
forall b c a. (b -> c) -> (a -> b) -> a -> c
. PredicateFailure (EraRule "LEDGERS" DijkstraEra)
-> ShelleyBbodyPredFailure DijkstraEra
ShelleyLedgersPredFailure DijkstraEra
-> ShelleyBbodyPredFailure DijkstraEra
forall era.
PredicateFailure (EraRule "LEDGERS" era)
-> ShelleyBbodyPredFailure era
Shelley.LedgersFailure
(ShelleyLedgersPredFailure DijkstraEra
-> ShelleyBbodyPredFailure DijkstraEra)
-> (ShelleyUtxowPredFailure DijkstraEra
-> ShelleyLedgersPredFailure DijkstraEra)
-> ShelleyUtxowPredFailure DijkstraEra
-> ShelleyBbodyPredFailure DijkstraEra
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ShelleyUtxowPredFailure DijkstraEra
-> EraRuleFailure "LEDGERS" DijkstraEra
ShelleyUtxowPredFailure DijkstraEra
-> ShelleyLedgersPredFailure DijkstraEra
forall (rule :: Symbol) (t :: * -> *) era.
InjectRuleFailure rule t era =>
t era -> EraRuleFailure rule era
injectFailure
instance InjectRuleFailure "BBODY" DijkstraUtxoPredFailure DijkstraEra where
injectFailure :: DijkstraUtxoPredFailure DijkstraEra
-> EraRuleFailure "BBODY" DijkstraEra
injectFailure =
ConwayBbodyPredFailure DijkstraEra
-> DijkstraBbodyPredFailure DijkstraEra
forall era.
ConwayBbodyPredFailure era -> DijkstraBbodyPredFailure era
conwayToDijkstraBbodyPredFailure
(ConwayBbodyPredFailure DijkstraEra
-> DijkstraBbodyPredFailure DijkstraEra)
-> (DijkstraUtxoPredFailure DijkstraEra
-> ConwayBbodyPredFailure DijkstraEra)
-> DijkstraUtxoPredFailure DijkstraEra
-> DijkstraBbodyPredFailure DijkstraEra
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ShelleyBbodyPredFailure DijkstraEra
-> ConwayBbodyPredFailure DijkstraEra
forall era.
ShelleyBbodyPredFailure era -> ConwayBbodyPredFailure era
shelleyToConwayBbodyPredFailure
(ShelleyBbodyPredFailure DijkstraEra
-> ConwayBbodyPredFailure DijkstraEra)
-> (DijkstraUtxoPredFailure DijkstraEra
-> ShelleyBbodyPredFailure DijkstraEra)
-> DijkstraUtxoPredFailure DijkstraEra
-> ConwayBbodyPredFailure DijkstraEra
forall b c a. (b -> c) -> (a -> b) -> a -> c
. PredicateFailure (EraRule "LEDGERS" DijkstraEra)
-> ShelleyBbodyPredFailure DijkstraEra
ShelleyLedgersPredFailure DijkstraEra
-> ShelleyBbodyPredFailure DijkstraEra
forall era.
PredicateFailure (EraRule "LEDGERS" era)
-> ShelleyBbodyPredFailure era
Shelley.LedgersFailure
(ShelleyLedgersPredFailure DijkstraEra
-> ShelleyBbodyPredFailure DijkstraEra)
-> (DijkstraUtxoPredFailure DijkstraEra
-> ShelleyLedgersPredFailure DijkstraEra)
-> DijkstraUtxoPredFailure DijkstraEra
-> ShelleyBbodyPredFailure DijkstraEra
forall b c a. (b -> c) -> (a -> b) -> a -> c
. DijkstraUtxoPredFailure DijkstraEra
-> EraRuleFailure "LEDGERS" DijkstraEra
DijkstraUtxoPredFailure DijkstraEra
-> ShelleyLedgersPredFailure DijkstraEra
forall (rule :: Symbol) (t :: * -> *) era.
InjectRuleFailure rule t era =>
t era -> EraRuleFailure rule era
injectFailure
instance InjectRuleFailure "BBODY" BabbageUtxoPredFailure DijkstraEra where
injectFailure :: BabbageUtxoPredFailure DijkstraEra
-> EraRuleFailure "BBODY" DijkstraEra
injectFailure =
ConwayBbodyPredFailure DijkstraEra
-> DijkstraBbodyPredFailure DijkstraEra
forall era.
ConwayBbodyPredFailure era -> DijkstraBbodyPredFailure era
conwayToDijkstraBbodyPredFailure
(ConwayBbodyPredFailure DijkstraEra
-> DijkstraBbodyPredFailure DijkstraEra)
-> (BabbageUtxoPredFailure DijkstraEra
-> ConwayBbodyPredFailure DijkstraEra)
-> BabbageUtxoPredFailure DijkstraEra
-> DijkstraBbodyPredFailure DijkstraEra
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ShelleyBbodyPredFailure DijkstraEra
-> ConwayBbodyPredFailure DijkstraEra
forall era.
ShelleyBbodyPredFailure era -> ConwayBbodyPredFailure era
shelleyToConwayBbodyPredFailure
(ShelleyBbodyPredFailure DijkstraEra
-> ConwayBbodyPredFailure DijkstraEra)
-> (BabbageUtxoPredFailure DijkstraEra
-> ShelleyBbodyPredFailure DijkstraEra)
-> BabbageUtxoPredFailure DijkstraEra
-> ConwayBbodyPredFailure DijkstraEra
forall b c a. (b -> c) -> (a -> b) -> a -> c
. PredicateFailure (EraRule "LEDGERS" DijkstraEra)
-> ShelleyBbodyPredFailure DijkstraEra
ShelleyLedgersPredFailure DijkstraEra
-> ShelleyBbodyPredFailure DijkstraEra
forall era.
PredicateFailure (EraRule "LEDGERS" era)
-> ShelleyBbodyPredFailure era
Shelley.LedgersFailure
(ShelleyLedgersPredFailure DijkstraEra
-> ShelleyBbodyPredFailure DijkstraEra)
-> (BabbageUtxoPredFailure DijkstraEra
-> ShelleyLedgersPredFailure DijkstraEra)
-> BabbageUtxoPredFailure DijkstraEra
-> ShelleyBbodyPredFailure DijkstraEra
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BabbageUtxoPredFailure DijkstraEra
-> EraRuleFailure "LEDGERS" DijkstraEra
BabbageUtxoPredFailure DijkstraEra
-> ShelleyLedgersPredFailure DijkstraEra
forall (rule :: Symbol) (t :: * -> *) era.
InjectRuleFailure rule t era =>
t era -> EraRuleFailure rule era
injectFailure
instance InjectRuleFailure "BBODY" AlonzoUtxoPredFailure DijkstraEra where
injectFailure :: AlonzoUtxoPredFailure DijkstraEra
-> EraRuleFailure "BBODY" DijkstraEra
injectFailure =
ConwayBbodyPredFailure DijkstraEra
-> DijkstraBbodyPredFailure DijkstraEra
forall era.
ConwayBbodyPredFailure era -> DijkstraBbodyPredFailure era
conwayToDijkstraBbodyPredFailure
(ConwayBbodyPredFailure DijkstraEra
-> DijkstraBbodyPredFailure DijkstraEra)
-> (AlonzoUtxoPredFailure DijkstraEra
-> ConwayBbodyPredFailure DijkstraEra)
-> AlonzoUtxoPredFailure DijkstraEra
-> DijkstraBbodyPredFailure DijkstraEra
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ShelleyBbodyPredFailure DijkstraEra
-> ConwayBbodyPredFailure DijkstraEra
forall era.
ShelleyBbodyPredFailure era -> ConwayBbodyPredFailure era
shelleyToConwayBbodyPredFailure
(ShelleyBbodyPredFailure DijkstraEra
-> ConwayBbodyPredFailure DijkstraEra)
-> (AlonzoUtxoPredFailure DijkstraEra
-> ShelleyBbodyPredFailure DijkstraEra)
-> AlonzoUtxoPredFailure DijkstraEra
-> ConwayBbodyPredFailure DijkstraEra
forall b c a. (b -> c) -> (a -> b) -> a -> c
. PredicateFailure (EraRule "LEDGERS" DijkstraEra)
-> ShelleyBbodyPredFailure DijkstraEra
ShelleyLedgersPredFailure DijkstraEra
-> ShelleyBbodyPredFailure DijkstraEra
forall era.
PredicateFailure (EraRule "LEDGERS" era)
-> ShelleyBbodyPredFailure era
Shelley.LedgersFailure
(ShelleyLedgersPredFailure DijkstraEra
-> ShelleyBbodyPredFailure DijkstraEra)
-> (AlonzoUtxoPredFailure DijkstraEra
-> ShelleyLedgersPredFailure DijkstraEra)
-> AlonzoUtxoPredFailure DijkstraEra
-> ShelleyBbodyPredFailure DijkstraEra
forall b c a. (b -> c) -> (a -> b) -> a -> c
. AlonzoUtxoPredFailure DijkstraEra
-> EraRuleFailure "LEDGERS" DijkstraEra
AlonzoUtxoPredFailure DijkstraEra
-> ShelleyLedgersPredFailure DijkstraEra
forall (rule :: Symbol) (t :: * -> *) era.
InjectRuleFailure rule t era =>
t era -> EraRuleFailure rule era
injectFailure
instance InjectRuleFailure "BBODY" AlonzoUtxosPredFailure DijkstraEra where
injectFailure :: AlonzoUtxosPredFailure DijkstraEra
-> EraRuleFailure "BBODY" DijkstraEra
injectFailure =
ConwayBbodyPredFailure DijkstraEra
-> DijkstraBbodyPredFailure DijkstraEra
forall era.
ConwayBbodyPredFailure era -> DijkstraBbodyPredFailure era
conwayToDijkstraBbodyPredFailure
(ConwayBbodyPredFailure DijkstraEra
-> DijkstraBbodyPredFailure DijkstraEra)
-> (AlonzoUtxosPredFailure DijkstraEra
-> ConwayBbodyPredFailure DijkstraEra)
-> AlonzoUtxosPredFailure DijkstraEra
-> DijkstraBbodyPredFailure DijkstraEra
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ShelleyBbodyPredFailure DijkstraEra
-> ConwayBbodyPredFailure DijkstraEra
forall era.
ShelleyBbodyPredFailure era -> ConwayBbodyPredFailure era
shelleyToConwayBbodyPredFailure
(ShelleyBbodyPredFailure DijkstraEra
-> ConwayBbodyPredFailure DijkstraEra)
-> (AlonzoUtxosPredFailure DijkstraEra
-> ShelleyBbodyPredFailure DijkstraEra)
-> AlonzoUtxosPredFailure DijkstraEra
-> ConwayBbodyPredFailure DijkstraEra
forall b c a. (b -> c) -> (a -> b) -> a -> c
. PredicateFailure (EraRule "LEDGERS" DijkstraEra)
-> ShelleyBbodyPredFailure DijkstraEra
ShelleyLedgersPredFailure DijkstraEra
-> ShelleyBbodyPredFailure DijkstraEra
forall era.
PredicateFailure (EraRule "LEDGERS" era)
-> ShelleyBbodyPredFailure era
Shelley.LedgersFailure
(ShelleyLedgersPredFailure DijkstraEra
-> ShelleyBbodyPredFailure DijkstraEra)
-> (AlonzoUtxosPredFailure DijkstraEra
-> ShelleyLedgersPredFailure DijkstraEra)
-> AlonzoUtxosPredFailure DijkstraEra
-> ShelleyBbodyPredFailure DijkstraEra
forall b c a. (b -> c) -> (a -> b) -> a -> c
. AlonzoUtxosPredFailure DijkstraEra
-> EraRuleFailure "LEDGERS" DijkstraEra
AlonzoUtxosPredFailure DijkstraEra
-> ShelleyLedgersPredFailure DijkstraEra
forall (rule :: Symbol) (t :: * -> *) era.
InjectRuleFailure rule t era =>
t era -> EraRuleFailure rule era
injectFailure
instance InjectRuleFailure "BBODY" ConwayUtxosPredFailure DijkstraEra where
injectFailure :: ConwayUtxosPredFailure DijkstraEra
-> EraRuleFailure "BBODY" DijkstraEra
injectFailure =
ConwayBbodyPredFailure DijkstraEra
-> DijkstraBbodyPredFailure DijkstraEra
forall era.
ConwayBbodyPredFailure era -> DijkstraBbodyPredFailure era
conwayToDijkstraBbodyPredFailure
(ConwayBbodyPredFailure DijkstraEra
-> DijkstraBbodyPredFailure DijkstraEra)
-> (ConwayUtxosPredFailure DijkstraEra
-> ConwayBbodyPredFailure DijkstraEra)
-> ConwayUtxosPredFailure DijkstraEra
-> DijkstraBbodyPredFailure DijkstraEra
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ShelleyBbodyPredFailure DijkstraEra
-> ConwayBbodyPredFailure DijkstraEra
forall era.
ShelleyBbodyPredFailure era -> ConwayBbodyPredFailure era
shelleyToConwayBbodyPredFailure
(ShelleyBbodyPredFailure DijkstraEra
-> ConwayBbodyPredFailure DijkstraEra)
-> (ConwayUtxosPredFailure DijkstraEra
-> ShelleyBbodyPredFailure DijkstraEra)
-> ConwayUtxosPredFailure DijkstraEra
-> ConwayBbodyPredFailure DijkstraEra
forall b c a. (b -> c) -> (a -> b) -> a -> c
. PredicateFailure (EraRule "LEDGERS" DijkstraEra)
-> ShelleyBbodyPredFailure DijkstraEra
ShelleyLedgersPredFailure DijkstraEra
-> ShelleyBbodyPredFailure DijkstraEra
forall era.
PredicateFailure (EraRule "LEDGERS" era)
-> ShelleyBbodyPredFailure era
Shelley.LedgersFailure
(ShelleyLedgersPredFailure DijkstraEra
-> ShelleyBbodyPredFailure DijkstraEra)
-> (ConwayUtxosPredFailure DijkstraEra
-> ShelleyLedgersPredFailure DijkstraEra)
-> ConwayUtxosPredFailure DijkstraEra
-> ShelleyBbodyPredFailure DijkstraEra
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ConwayUtxosPredFailure DijkstraEra
-> EraRuleFailure "LEDGERS" DijkstraEra
ConwayUtxosPredFailure DijkstraEra
-> ShelleyLedgersPredFailure DijkstraEra
forall (rule :: Symbol) (t :: * -> *) era.
InjectRuleFailure rule t era =>
t era -> EraRuleFailure rule era
injectFailure
instance InjectRuleFailure "BBODY" ShelleyUtxoPredFailure DijkstraEra where
injectFailure :: ShelleyUtxoPredFailure DijkstraEra
-> EraRuleFailure "BBODY" DijkstraEra
injectFailure =
ConwayBbodyPredFailure DijkstraEra
-> DijkstraBbodyPredFailure DijkstraEra
forall era.
ConwayBbodyPredFailure era -> DijkstraBbodyPredFailure era
conwayToDijkstraBbodyPredFailure
(ConwayBbodyPredFailure DijkstraEra
-> DijkstraBbodyPredFailure DijkstraEra)
-> (ShelleyUtxoPredFailure DijkstraEra
-> ConwayBbodyPredFailure DijkstraEra)
-> ShelleyUtxoPredFailure DijkstraEra
-> DijkstraBbodyPredFailure DijkstraEra
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ShelleyBbodyPredFailure DijkstraEra
-> ConwayBbodyPredFailure DijkstraEra
forall era.
ShelleyBbodyPredFailure era -> ConwayBbodyPredFailure era
shelleyToConwayBbodyPredFailure
(ShelleyBbodyPredFailure DijkstraEra
-> ConwayBbodyPredFailure DijkstraEra)
-> (ShelleyUtxoPredFailure DijkstraEra
-> ShelleyBbodyPredFailure DijkstraEra)
-> ShelleyUtxoPredFailure DijkstraEra
-> ConwayBbodyPredFailure DijkstraEra
forall b c a. (b -> c) -> (a -> b) -> a -> c
. PredicateFailure (EraRule "LEDGERS" DijkstraEra)
-> ShelleyBbodyPredFailure DijkstraEra
ShelleyLedgersPredFailure DijkstraEra
-> ShelleyBbodyPredFailure DijkstraEra
forall era.
PredicateFailure (EraRule "LEDGERS" era)
-> ShelleyBbodyPredFailure era
Shelley.LedgersFailure
(ShelleyLedgersPredFailure DijkstraEra
-> ShelleyBbodyPredFailure DijkstraEra)
-> (ShelleyUtxoPredFailure DijkstraEra
-> ShelleyLedgersPredFailure DijkstraEra)
-> ShelleyUtxoPredFailure DijkstraEra
-> ShelleyBbodyPredFailure DijkstraEra
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ShelleyUtxoPredFailure DijkstraEra
-> EraRuleFailure "LEDGERS" DijkstraEra
ShelleyUtxoPredFailure DijkstraEra
-> ShelleyLedgersPredFailure DijkstraEra
forall (rule :: Symbol) (t :: * -> *) era.
InjectRuleFailure rule t era =>
t era -> EraRuleFailure rule era
injectFailure
instance InjectRuleFailure "BBODY" AllegraUtxoPredFailure DijkstraEra where
injectFailure :: AllegraUtxoPredFailure DijkstraEra
-> EraRuleFailure "BBODY" DijkstraEra
injectFailure =
ConwayBbodyPredFailure DijkstraEra
-> DijkstraBbodyPredFailure DijkstraEra
forall era.
ConwayBbodyPredFailure era -> DijkstraBbodyPredFailure era
conwayToDijkstraBbodyPredFailure
(ConwayBbodyPredFailure DijkstraEra
-> DijkstraBbodyPredFailure DijkstraEra)
-> (AllegraUtxoPredFailure DijkstraEra
-> ConwayBbodyPredFailure DijkstraEra)
-> AllegraUtxoPredFailure DijkstraEra
-> DijkstraBbodyPredFailure DijkstraEra
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ShelleyBbodyPredFailure DijkstraEra
-> ConwayBbodyPredFailure DijkstraEra
forall era.
ShelleyBbodyPredFailure era -> ConwayBbodyPredFailure era
shelleyToConwayBbodyPredFailure
(ShelleyBbodyPredFailure DijkstraEra
-> ConwayBbodyPredFailure DijkstraEra)
-> (AllegraUtxoPredFailure DijkstraEra
-> ShelleyBbodyPredFailure DijkstraEra)
-> AllegraUtxoPredFailure DijkstraEra
-> ConwayBbodyPredFailure DijkstraEra
forall b c a. (b -> c) -> (a -> b) -> a -> c
. PredicateFailure (EraRule "LEDGERS" DijkstraEra)
-> ShelleyBbodyPredFailure DijkstraEra
ShelleyLedgersPredFailure DijkstraEra
-> ShelleyBbodyPredFailure DijkstraEra
forall era.
PredicateFailure (EraRule "LEDGERS" era)
-> ShelleyBbodyPredFailure era
Shelley.LedgersFailure
(ShelleyLedgersPredFailure DijkstraEra
-> ShelleyBbodyPredFailure DijkstraEra)
-> (AllegraUtxoPredFailure DijkstraEra
-> ShelleyLedgersPredFailure DijkstraEra)
-> AllegraUtxoPredFailure DijkstraEra
-> ShelleyBbodyPredFailure DijkstraEra
forall b c a. (b -> c) -> (a -> b) -> a -> c
. AllegraUtxoPredFailure DijkstraEra
-> EraRuleFailure "LEDGERS" DijkstraEra
AllegraUtxoPredFailure DijkstraEra
-> ShelleyLedgersPredFailure DijkstraEra
forall (rule :: Symbol) (t :: * -> *) era.
InjectRuleFailure rule t era =>
t era -> EraRuleFailure rule era
injectFailure
instance InjectRuleFailure "BBODY" ConwayCertsPredFailure DijkstraEra where
injectFailure :: ConwayCertsPredFailure DijkstraEra
-> EraRuleFailure "BBODY" DijkstraEra
injectFailure =
ConwayBbodyPredFailure DijkstraEra
-> DijkstraBbodyPredFailure DijkstraEra
forall era.
ConwayBbodyPredFailure era -> DijkstraBbodyPredFailure era
conwayToDijkstraBbodyPredFailure
(ConwayBbodyPredFailure DijkstraEra
-> DijkstraBbodyPredFailure DijkstraEra)
-> (ConwayCertsPredFailure DijkstraEra
-> ConwayBbodyPredFailure DijkstraEra)
-> ConwayCertsPredFailure DijkstraEra
-> DijkstraBbodyPredFailure DijkstraEra
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ShelleyBbodyPredFailure DijkstraEra
-> ConwayBbodyPredFailure DijkstraEra
forall era.
ShelleyBbodyPredFailure era -> ConwayBbodyPredFailure era
shelleyToConwayBbodyPredFailure
(ShelleyBbodyPredFailure DijkstraEra
-> ConwayBbodyPredFailure DijkstraEra)
-> (ConwayCertsPredFailure DijkstraEra
-> ShelleyBbodyPredFailure DijkstraEra)
-> ConwayCertsPredFailure DijkstraEra
-> ConwayBbodyPredFailure DijkstraEra
forall b c a. (b -> c) -> (a -> b) -> a -> c
. PredicateFailure (EraRule "LEDGERS" DijkstraEra)
-> ShelleyBbodyPredFailure DijkstraEra
ShelleyLedgersPredFailure DijkstraEra
-> ShelleyBbodyPredFailure DijkstraEra
forall era.
PredicateFailure (EraRule "LEDGERS" era)
-> ShelleyBbodyPredFailure era
Shelley.LedgersFailure
(ShelleyLedgersPredFailure DijkstraEra
-> ShelleyBbodyPredFailure DijkstraEra)
-> (ConwayCertsPredFailure DijkstraEra
-> ShelleyLedgersPredFailure DijkstraEra)
-> ConwayCertsPredFailure DijkstraEra
-> ShelleyBbodyPredFailure DijkstraEra
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ConwayCertsPredFailure DijkstraEra
-> EraRuleFailure "LEDGERS" DijkstraEra
ConwayCertsPredFailure DijkstraEra
-> ShelleyLedgersPredFailure DijkstraEra
forall (rule :: Symbol) (t :: * -> *) era.
InjectRuleFailure rule t era =>
t era -> EraRuleFailure rule era
injectFailure
instance InjectRuleFailure "BBODY" ConwayCertPredFailure DijkstraEra where
injectFailure :: ConwayCertPredFailure DijkstraEra
-> EraRuleFailure "BBODY" DijkstraEra
injectFailure =
ConwayBbodyPredFailure DijkstraEra
-> DijkstraBbodyPredFailure DijkstraEra
forall era.
ConwayBbodyPredFailure era -> DijkstraBbodyPredFailure era
conwayToDijkstraBbodyPredFailure
(ConwayBbodyPredFailure DijkstraEra
-> DijkstraBbodyPredFailure DijkstraEra)
-> (ConwayCertPredFailure DijkstraEra
-> ConwayBbodyPredFailure DijkstraEra)
-> ConwayCertPredFailure DijkstraEra
-> DijkstraBbodyPredFailure DijkstraEra
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ShelleyBbodyPredFailure DijkstraEra
-> ConwayBbodyPredFailure DijkstraEra
forall era.
ShelleyBbodyPredFailure era -> ConwayBbodyPredFailure era
shelleyToConwayBbodyPredFailure
(ShelleyBbodyPredFailure DijkstraEra
-> ConwayBbodyPredFailure DijkstraEra)
-> (ConwayCertPredFailure DijkstraEra
-> ShelleyBbodyPredFailure DijkstraEra)
-> ConwayCertPredFailure DijkstraEra
-> ConwayBbodyPredFailure DijkstraEra
forall b c a. (b -> c) -> (a -> b) -> a -> c
. PredicateFailure (EraRule "LEDGERS" DijkstraEra)
-> ShelleyBbodyPredFailure DijkstraEra
ShelleyLedgersPredFailure DijkstraEra
-> ShelleyBbodyPredFailure DijkstraEra
forall era.
PredicateFailure (EraRule "LEDGERS" era)
-> ShelleyBbodyPredFailure era
Shelley.LedgersFailure
(ShelleyLedgersPredFailure DijkstraEra
-> ShelleyBbodyPredFailure DijkstraEra)
-> (ConwayCertPredFailure DijkstraEra
-> ShelleyLedgersPredFailure DijkstraEra)
-> ConwayCertPredFailure DijkstraEra
-> ShelleyBbodyPredFailure DijkstraEra
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ConwayCertPredFailure DijkstraEra
-> EraRuleFailure "LEDGERS" DijkstraEra
ConwayCertPredFailure DijkstraEra
-> ShelleyLedgersPredFailure DijkstraEra
forall (rule :: Symbol) (t :: * -> *) era.
InjectRuleFailure rule t era =>
t era -> EraRuleFailure rule era
injectFailure
instance InjectRuleFailure "BBODY" ConwayDelegPredFailure DijkstraEra where
injectFailure :: ConwayDelegPredFailure DijkstraEra
-> EraRuleFailure "BBODY" DijkstraEra
injectFailure =
ConwayBbodyPredFailure DijkstraEra
-> DijkstraBbodyPredFailure DijkstraEra
forall era.
ConwayBbodyPredFailure era -> DijkstraBbodyPredFailure era
conwayToDijkstraBbodyPredFailure
(ConwayBbodyPredFailure DijkstraEra
-> DijkstraBbodyPredFailure DijkstraEra)
-> (ConwayDelegPredFailure DijkstraEra
-> ConwayBbodyPredFailure DijkstraEra)
-> ConwayDelegPredFailure DijkstraEra
-> DijkstraBbodyPredFailure DijkstraEra
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ShelleyBbodyPredFailure DijkstraEra
-> ConwayBbodyPredFailure DijkstraEra
forall era.
ShelleyBbodyPredFailure era -> ConwayBbodyPredFailure era
shelleyToConwayBbodyPredFailure
(ShelleyBbodyPredFailure DijkstraEra
-> ConwayBbodyPredFailure DijkstraEra)
-> (ConwayDelegPredFailure DijkstraEra
-> ShelleyBbodyPredFailure DijkstraEra)
-> ConwayDelegPredFailure DijkstraEra
-> ConwayBbodyPredFailure DijkstraEra
forall b c a. (b -> c) -> (a -> b) -> a -> c
. PredicateFailure (EraRule "LEDGERS" DijkstraEra)
-> ShelleyBbodyPredFailure DijkstraEra
ShelleyLedgersPredFailure DijkstraEra
-> ShelleyBbodyPredFailure DijkstraEra
forall era.
PredicateFailure (EraRule "LEDGERS" era)
-> ShelleyBbodyPredFailure era
Shelley.LedgersFailure
(ShelleyLedgersPredFailure DijkstraEra
-> ShelleyBbodyPredFailure DijkstraEra)
-> (ConwayDelegPredFailure DijkstraEra
-> ShelleyLedgersPredFailure DijkstraEra)
-> ConwayDelegPredFailure DijkstraEra
-> ShelleyBbodyPredFailure DijkstraEra
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ConwayDelegPredFailure DijkstraEra
-> EraRuleFailure "LEDGERS" DijkstraEra
ConwayDelegPredFailure DijkstraEra
-> ShelleyLedgersPredFailure DijkstraEra
forall (rule :: Symbol) (t :: * -> *) era.
InjectRuleFailure rule t era =>
t era -> EraRuleFailure rule era
injectFailure
instance InjectRuleFailure "BBODY" ShelleyPoolPredFailure DijkstraEra where
injectFailure :: ShelleyPoolPredFailure DijkstraEra
-> EraRuleFailure "BBODY" DijkstraEra
injectFailure =
ConwayBbodyPredFailure DijkstraEra
-> DijkstraBbodyPredFailure DijkstraEra
forall era.
ConwayBbodyPredFailure era -> DijkstraBbodyPredFailure era
conwayToDijkstraBbodyPredFailure
(ConwayBbodyPredFailure DijkstraEra
-> DijkstraBbodyPredFailure DijkstraEra)
-> (ShelleyPoolPredFailure DijkstraEra
-> ConwayBbodyPredFailure DijkstraEra)
-> ShelleyPoolPredFailure DijkstraEra
-> DijkstraBbodyPredFailure DijkstraEra
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ShelleyBbodyPredFailure DijkstraEra
-> ConwayBbodyPredFailure DijkstraEra
forall era.
ShelleyBbodyPredFailure era -> ConwayBbodyPredFailure era
shelleyToConwayBbodyPredFailure
(ShelleyBbodyPredFailure DijkstraEra
-> ConwayBbodyPredFailure DijkstraEra)
-> (ShelleyPoolPredFailure DijkstraEra
-> ShelleyBbodyPredFailure DijkstraEra)
-> ShelleyPoolPredFailure DijkstraEra
-> ConwayBbodyPredFailure DijkstraEra
forall b c a. (b -> c) -> (a -> b) -> a -> c
. PredicateFailure (EraRule "LEDGERS" DijkstraEra)
-> ShelleyBbodyPredFailure DijkstraEra
ShelleyLedgersPredFailure DijkstraEra
-> ShelleyBbodyPredFailure DijkstraEra
forall era.
PredicateFailure (EraRule "LEDGERS" era)
-> ShelleyBbodyPredFailure era
Shelley.LedgersFailure
(ShelleyLedgersPredFailure DijkstraEra
-> ShelleyBbodyPredFailure DijkstraEra)
-> (ShelleyPoolPredFailure DijkstraEra
-> ShelleyLedgersPredFailure DijkstraEra)
-> ShelleyPoolPredFailure DijkstraEra
-> ShelleyBbodyPredFailure DijkstraEra
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ShelleyPoolPredFailure DijkstraEra
-> EraRuleFailure "LEDGERS" DijkstraEra
ShelleyPoolPredFailure DijkstraEra
-> ShelleyLedgersPredFailure DijkstraEra
forall (rule :: Symbol) (t :: * -> *) era.
InjectRuleFailure rule t era =>
t era -> EraRuleFailure rule era
injectFailure
instance InjectRuleFailure "BBODY" DijkstraGovCertPredFailure DijkstraEra where
injectFailure :: DijkstraGovCertPredFailure DijkstraEra
-> EraRuleFailure "BBODY" DijkstraEra
injectFailure =
ConwayBbodyPredFailure DijkstraEra
-> DijkstraBbodyPredFailure DijkstraEra
forall era.
ConwayBbodyPredFailure era -> DijkstraBbodyPredFailure era
conwayToDijkstraBbodyPredFailure
(ConwayBbodyPredFailure DijkstraEra
-> DijkstraBbodyPredFailure DijkstraEra)
-> (DijkstraGovCertPredFailure DijkstraEra
-> ConwayBbodyPredFailure DijkstraEra)
-> DijkstraGovCertPredFailure DijkstraEra
-> DijkstraBbodyPredFailure DijkstraEra
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ShelleyBbodyPredFailure DijkstraEra
-> ConwayBbodyPredFailure DijkstraEra
forall era.
ShelleyBbodyPredFailure era -> ConwayBbodyPredFailure era
shelleyToConwayBbodyPredFailure
(ShelleyBbodyPredFailure DijkstraEra
-> ConwayBbodyPredFailure DijkstraEra)
-> (DijkstraGovCertPredFailure DijkstraEra
-> ShelleyBbodyPredFailure DijkstraEra)
-> DijkstraGovCertPredFailure DijkstraEra
-> ConwayBbodyPredFailure DijkstraEra
forall b c a. (b -> c) -> (a -> b) -> a -> c
. PredicateFailure (EraRule "LEDGERS" DijkstraEra)
-> ShelleyBbodyPredFailure DijkstraEra
ShelleyLedgersPredFailure DijkstraEra
-> ShelleyBbodyPredFailure DijkstraEra
forall era.
PredicateFailure (EraRule "LEDGERS" era)
-> ShelleyBbodyPredFailure era
Shelley.LedgersFailure
(ShelleyLedgersPredFailure DijkstraEra
-> ShelleyBbodyPredFailure DijkstraEra)
-> (DijkstraGovCertPredFailure DijkstraEra
-> ShelleyLedgersPredFailure DijkstraEra)
-> DijkstraGovCertPredFailure DijkstraEra
-> ShelleyBbodyPredFailure DijkstraEra
forall b c a. (b -> c) -> (a -> b) -> a -> c
. DijkstraGovCertPredFailure DijkstraEra
-> EraRuleFailure "LEDGERS" DijkstraEra
DijkstraGovCertPredFailure DijkstraEra
-> ShelleyLedgersPredFailure DijkstraEra
forall (rule :: Symbol) (t :: * -> *) era.
InjectRuleFailure rule t era =>
t era -> EraRuleFailure rule era
injectFailure
instance InjectRuleFailure "BBODY" ConwayGovPredFailure DijkstraEra where
injectFailure :: ConwayGovPredFailure DijkstraEra
-> EraRuleFailure "BBODY" DijkstraEra
injectFailure =
ConwayBbodyPredFailure DijkstraEra
-> DijkstraBbodyPredFailure DijkstraEra
forall era.
ConwayBbodyPredFailure era -> DijkstraBbodyPredFailure era
conwayToDijkstraBbodyPredFailure
(ConwayBbodyPredFailure DijkstraEra
-> DijkstraBbodyPredFailure DijkstraEra)
-> (ConwayGovPredFailure DijkstraEra
-> ConwayBbodyPredFailure DijkstraEra)
-> ConwayGovPredFailure DijkstraEra
-> DijkstraBbodyPredFailure DijkstraEra
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ShelleyBbodyPredFailure DijkstraEra
-> ConwayBbodyPredFailure DijkstraEra
forall era.
ShelleyBbodyPredFailure era -> ConwayBbodyPredFailure era
shelleyToConwayBbodyPredFailure
(ShelleyBbodyPredFailure DijkstraEra
-> ConwayBbodyPredFailure DijkstraEra)
-> (ConwayGovPredFailure DijkstraEra
-> ShelleyBbodyPredFailure DijkstraEra)
-> ConwayGovPredFailure DijkstraEra
-> ConwayBbodyPredFailure DijkstraEra
forall b c a. (b -> c) -> (a -> b) -> a -> c
. PredicateFailure (EraRule "LEDGERS" DijkstraEra)
-> ShelleyBbodyPredFailure DijkstraEra
ShelleyLedgersPredFailure DijkstraEra
-> ShelleyBbodyPredFailure DijkstraEra
forall era.
PredicateFailure (EraRule "LEDGERS" era)
-> ShelleyBbodyPredFailure era
Shelley.LedgersFailure
(ShelleyLedgersPredFailure DijkstraEra
-> ShelleyBbodyPredFailure DijkstraEra)
-> (ConwayGovPredFailure DijkstraEra
-> ShelleyLedgersPredFailure DijkstraEra)
-> ConwayGovPredFailure DijkstraEra
-> ShelleyBbodyPredFailure DijkstraEra
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ConwayGovPredFailure DijkstraEra
-> EraRuleFailure "LEDGERS" DijkstraEra
ConwayGovPredFailure DijkstraEra
-> ShelleyLedgersPredFailure DijkstraEra
forall (rule :: Symbol) (t :: * -> *) era.
InjectRuleFailure rule t era =>
t era -> EraRuleFailure rule era
injectFailure
instance InjectRuleFailure "BBODY" DijkstraGovPredFailure DijkstraEra where
injectFailure :: DijkstraGovPredFailure DijkstraEra
-> EraRuleFailure "BBODY" DijkstraEra
injectFailure =
ConwayBbodyPredFailure DijkstraEra
-> DijkstraBbodyPredFailure DijkstraEra
forall era.
ConwayBbodyPredFailure era -> DijkstraBbodyPredFailure era
conwayToDijkstraBbodyPredFailure
(ConwayBbodyPredFailure DijkstraEra
-> DijkstraBbodyPredFailure DijkstraEra)
-> (DijkstraGovPredFailure DijkstraEra
-> ConwayBbodyPredFailure DijkstraEra)
-> DijkstraGovPredFailure DijkstraEra
-> DijkstraBbodyPredFailure DijkstraEra
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ShelleyBbodyPredFailure DijkstraEra
-> ConwayBbodyPredFailure DijkstraEra
forall era.
ShelleyBbodyPredFailure era -> ConwayBbodyPredFailure era
shelleyToConwayBbodyPredFailure
(ShelleyBbodyPredFailure DijkstraEra
-> ConwayBbodyPredFailure DijkstraEra)
-> (DijkstraGovPredFailure DijkstraEra
-> ShelleyBbodyPredFailure DijkstraEra)
-> DijkstraGovPredFailure DijkstraEra
-> ConwayBbodyPredFailure DijkstraEra
forall b c a. (b -> c) -> (a -> b) -> a -> c
. PredicateFailure (EraRule "LEDGERS" DijkstraEra)
-> ShelleyBbodyPredFailure DijkstraEra
ShelleyLedgersPredFailure DijkstraEra
-> ShelleyBbodyPredFailure DijkstraEra
forall era.
PredicateFailure (EraRule "LEDGERS" era)
-> ShelleyBbodyPredFailure era
Shelley.LedgersFailure
(ShelleyLedgersPredFailure DijkstraEra
-> ShelleyBbodyPredFailure DijkstraEra)
-> (DijkstraGovPredFailure DijkstraEra
-> ShelleyLedgersPredFailure DijkstraEra)
-> DijkstraGovPredFailure DijkstraEra
-> ShelleyBbodyPredFailure DijkstraEra
forall b c a. (b -> c) -> (a -> b) -> a -> c
. DijkstraGovPredFailure DijkstraEra
-> EraRuleFailure "LEDGERS" DijkstraEra
DijkstraGovPredFailure DijkstraEra
-> ShelleyLedgersPredFailure DijkstraEra
forall (rule :: Symbol) (t :: * -> *) era.
InjectRuleFailure rule t era =>
t era -> EraRuleFailure rule era
injectFailure
instance
( Embed (EraRule "LEDGERS" era) (EraRule "BBODY" era)
, Environment (EraRule "LEDGERS" era) ~ ShelleyLedgersEnv era
, State (EraRule "LEDGERS" era) ~ LedgerState era
, Signal (EraRule "LEDGERS" era) ~ Seq (Tx TopTx era)
, AlonzoEraTxWits era
, EraBlockBody era
, AlonzoEraPParams era
, InjectRuleFailure "BBODY" AlonzoBbodyPredFailure era
, InjectRuleFailure "BBODY" ConwayBbodyPredFailure era
, InjectRuleFailure "BBODY" DijkstraBbodyPredFailure era
, InjectRuleFailure "BBODY" ShelleyBbodyPredFailure era
, EraRule "BBODY" era ~ DijkstraBBODY era
, AlonzoEraTx era
, BabbageEraTxBody era
, ConwayEraPParams era
, DijkstraEraBlockBody era
) =>
STS (DijkstraBBODY era)
where
type State (DijkstraBBODY era) = ShelleyBbodyState era
type Signal (DijkstraBBODY era) = DijkstraBbodySignal era
type Environment (DijkstraBBODY era) = BbodyEnv era
type BaseM (DijkstraBBODY era) = ShelleyBase
type PredicateFailure (DijkstraBBODY era) = DijkstraBbodyPredFailure era
type Event (DijkstraBBODY era) = AlonzoBbodyEvent era
initialRules :: [InitialRule (DijkstraBBODY era)]
initialRules = []
transitionRules :: [TransitionRule (DijkstraBBODY era)]
transitionRules = [forall era.
(Signal (EraRule "BBODY" era) ~ DijkstraBbodySignal era,
State (EraRule "BBODY" era) ~ ShelleyBbodyState era,
State (EraRule "LEDGERS" era) ~ LedgerState era,
Environment (EraRule "LEDGERS" era) ~ ShelleyLedgersEnv era,
Environment (EraRule "BBODY" era) ~ BbodyEnv era,
InjectRuleFailure "BBODY" DijkstraBbodyPredFailure era,
DijkstraEraBlockBody era, BabbageEraTxBody era,
InjectRuleFailure "BBODY" ConwayBbodyPredFailure era,
InjectRuleFailure "BBODY" ShelleyBbodyPredFailure era,
STS (EraRule "BBODY" era),
Signal (EraRule "LEDGERS" era) ~ Seq (Tx TopTx era),
BaseM (EraRule "BBODY" era) ~ ShelleyBase, AlonzoEraTx era,
InjectRuleFailure "BBODY" AlonzoBbodyPredFailure era,
Embed (EraRule "LEDGERS" era) (EraRule "BBODY" era),
ConwayEraPParams era) =>
TransitionRule (EraRule "BBODY" era)
dijkstraBbodyTransition @era]
dijkstraBbodyTransition ::
forall era.
( Signal (EraRule "BBODY" era) ~ DijkstraBbodySignal era
, State (EraRule "BBODY" era) ~ ShelleyBbodyState era
, State (EraRule "LEDGERS" era) ~ LedgerState era
, Environment (EraRule "LEDGERS" era) ~ ShelleyLedgersEnv era
, Environment (EraRule "BBODY" era) ~ BbodyEnv era
, InjectRuleFailure "BBODY" DijkstraBbodyPredFailure era
, DijkstraEraBlockBody era
, BabbageEraTxBody era
, InjectRuleFailure "BBODY" ConwayBbodyPredFailure era
, InjectRuleFailure "BBODY" ShelleyBbodyPredFailure era
, STS (EraRule "BBODY" era)
, Signal (EraRule "LEDGERS" era) ~ Seq (Tx TopTx era)
, BaseM (EraRule "BBODY" era) ~ ShelleyBase
, AlonzoEraTx era
, InjectRuleFailure "BBODY" AlonzoBbodyPredFailure era
, Embed (EraRule "LEDGERS" era) (EraRule "BBODY" era)
, ConwayEraPParams era
) =>
TransitionRule (EraRule "BBODY" era)
dijkstraBbodyTransition :: forall era.
(Signal (EraRule "BBODY" era) ~ DijkstraBbodySignal era,
State (EraRule "BBODY" era) ~ ShelleyBbodyState era,
State (EraRule "LEDGERS" era) ~ LedgerState era,
Environment (EraRule "LEDGERS" era) ~ ShelleyLedgersEnv era,
Environment (EraRule "BBODY" era) ~ BbodyEnv era,
InjectRuleFailure "BBODY" DijkstraBbodyPredFailure era,
DijkstraEraBlockBody era, BabbageEraTxBody era,
InjectRuleFailure "BBODY" ConwayBbodyPredFailure era,
InjectRuleFailure "BBODY" ShelleyBbodyPredFailure era,
STS (EraRule "BBODY" era),
Signal (EraRule "LEDGERS" era) ~ Seq (Tx TopTx era),
BaseM (EraRule "BBODY" era) ~ ShelleyBase, AlonzoEraTx era,
InjectRuleFailure "BBODY" AlonzoBbodyPredFailure era,
Embed (EraRule "LEDGERS" era) (EraRule "BBODY" era),
ConwayEraPParams era) =>
TransitionRule (EraRule "BBODY" era)
dijkstraBbodyTransition = do
TRC (BbodyEnv pp account, BbodyState ls blocksMade, DijkstraBbodySignal block@Block {blockBody}) <-
Rule
(EraRule "BBODY" era)
'Transition
(RuleContext 'Transition (EraRule "BBODY" era))
F (Clause (EraRule "BBODY" era) 'Transition)
(TRC (EraRule "BBODY" era))
forall sts (rtype :: RuleType).
Rule sts rtype (RuleContext rtype sts)
judgmentContext
Shelley.validateBlockBodySize block (pp ^. ppProtocolVersionL)
Shelley.validateBlockBodyHash block
let bhSlot = Block h era
block Block h era -> Getting SlotNo (Block h era) SlotNo -> SlotNo
forall s a. s -> Getting a s a -> a
^. Getting SlotNo (Block h era) SlotNo
forall h era. EraBlockHeader h era => Lens' (Block h era) SlotNo
Lens' (Block h era) SlotNo
slotNoBlockHeaderL
(firstSlot, curEpoch) <- liftSTS $ slotToEpochBoundary bhSlot
let txs = BlockBody era
blockBody BlockBody era
-> Getting
(StrictSeq (Tx TopTx era))
(BlockBody era)
(StrictSeq (Tx TopTx era))
-> StrictSeq (Tx TopTx era)
forall s a. s -> Getting a s a -> a
^. Getting
(StrictSeq (Tx TopTx era))
(BlockBody era)
(StrictSeq (Tx TopTx era))
forall era.
EraBlockBody era =>
Lens' (BlockBody era) (StrictSeq (Tx TopTx era))
Lens' (BlockBody era) (StrictSeq (Tx TopTx era))
txSeqBlockBodyL
ls' <-
trans @(EraRule "LEDGERS" era) $
TRC
( LedgersEnv bhSlot curEpoch pp account
, ls
, fromStrict txs
)
validateExUnits @era txs $ pp ^. ppMaxBlockExUnitsL
Conway.validateBodyRefScriptsSizeTooBig @era pp blockBody (ls ^. utxoL)
case blockBody ^. perasCertBlockBodyL of
StrictMaybe PerasCert
SNothing -> () -> F (Clause (EraRule "BBODY" era) 'Transition) ()
forall a. a -> F (Clause (EraRule "BBODY" era) 'Transition) a
forall (f :: * -> *) a. Applicative f => a -> f a
pure ()
SJust PerasCert
cert ->
let nonce :: Nonce
nonce = Block h era
block Block h era -> Getting Nonce (Block h era) Nonce -> Nonce
forall s a. s -> Getting a s a -> a
^. Getting Nonce (Block h era) Nonce
forall h era.
DijkstraEraBlockHeader h era =>
Lens' (Block h era) Nonce
Lens' (Block h era) Nonce
prevNonceBlockHeaderL
in Nonce -> PerasKey -> PerasCert -> Bool
validatePerasCert Nonce
nonce PerasKey
PerasKey PerasCert
cert Bool
-> PredicateFailure (EraRule "BBODY" era)
-> F (Clause (EraRule "BBODY" era) 'Transition) ()
forall sts (ctx :: RuleType).
Bool -> PredicateFailure sts -> Rule sts ctx ()
?! DijkstraBbodyPredFailure era -> EraRuleFailure "BBODY" era
forall (rule :: Symbol) (t :: * -> *) era.
InjectRuleFailure rule t era =>
t era -> EraRuleFailure rule era
injectFailure (PerasCert -> Nonce -> DijkstraBbodyPredFailure era
forall era. PerasCert -> Nonce -> DijkstraBbodyPredFailure era
PerasCertValidationFailed PerasCert
cert Nonce
nonce)
pure $ BbodyState ls' $ incrBlocks block firstSlot (pp ^. ppDG) blocksMade
conwayToDijkstraBbodyPredFailure ::
forall era. ConwayBbodyPredFailure era -> DijkstraBbodyPredFailure era
conwayToDijkstraBbodyPredFailure :: forall era.
ConwayBbodyPredFailure era -> DijkstraBbodyPredFailure era
conwayToDijkstraBbodyPredFailure = \case
Conway.WrongBlockBodySizeBBODY Mismatch RelEQ Int
mm -> Mismatch RelEQ Int -> DijkstraBbodyPredFailure era
forall era. Mismatch RelEQ Int -> DijkstraBbodyPredFailure era
WrongBlockBodySizeBBODY Mismatch RelEQ Int
mm
Conway.InvalidBodyHashBBODY Mismatch RelEQ (Hash HASH EraIndependentBlockBody)
mm -> Mismatch RelEQ (Hash HASH EraIndependentBlockBody)
-> DijkstraBbodyPredFailure era
forall era.
Mismatch RelEQ (Hash HASH EraIndependentBlockBody)
-> DijkstraBbodyPredFailure era
InvalidBodyHashBBODY Mismatch RelEQ (Hash HASH EraIndependentBlockBody)
mm
Conway.LedgersFailure PredicateFailure (EraRule "LEDGERS" era)
f -> PredicateFailure (EraRule "LEDGERS" era)
-> DijkstraBbodyPredFailure era
forall era.
PredicateFailure (EraRule "LEDGERS" era)
-> DijkstraBbodyPredFailure era
LedgersFailure PredicateFailure (EraRule "LEDGERS" era)
f
Conway.TooManyExUnits Mismatch RelLTEQ ExUnits
mm -> Mismatch RelLTEQ ExUnits -> DijkstraBbodyPredFailure era
forall era.
Mismatch RelLTEQ ExUnits -> DijkstraBbodyPredFailure era
TooManyExUnits Mismatch RelLTEQ ExUnits
mm
Conway.BodyRefScriptsSizeTooBig Mismatch RelLTEQ Int
mm -> Mismatch RelLTEQ Int -> DijkstraBbodyPredFailure era
forall era. Mismatch RelLTEQ Int -> DijkstraBbodyPredFailure era
BodyRefScriptsSizeTooBig Mismatch RelLTEQ Int
mm
Conway.HeaderProtVerTooHigh {} -> String -> DijkstraBbodyPredFailure era
forall a. HasCallStack => String -> a
error String
"Impossible: HeaderProtVerTooHigh cannot be triggered in Dijkstra era"
instance
( Era era
, BaseM ledgers ~ ShelleyBase
, ledgers ~ EraRule "LEDGERS" era
, STS ledgers
) =>
Embed ledgers (DijkstraBBODY era)
where
wrapFailed :: PredicateFailure ledgers -> PredicateFailure (DijkstraBBODY era)
wrapFailed = PredicateFailure ledgers -> PredicateFailure (DijkstraBBODY era)
PredicateFailure (EraRule "LEDGERS" era)
-> DijkstraBbodyPredFailure era
forall era.
PredicateFailure (EraRule "LEDGERS" era)
-> DijkstraBbodyPredFailure era
LedgersFailure
wrapEvent :: Event ledgers -> Event (DijkstraBBODY era)
wrapEvent = ShelleyBbodyEvent era -> AlonzoBbodyEvent era
forall era. ShelleyBbodyEvent era -> AlonzoBbodyEvent era
ShelleyInAlonzoEvent (ShelleyBbodyEvent era -> AlonzoBbodyEvent era)
-> (Event ledgers -> ShelleyBbodyEvent era)
-> Event ledgers
-> AlonzoBbodyEvent era
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Event ledgers -> ShelleyBbodyEvent era
Event (EraRule "LEDGERS" era) -> ShelleyBbodyEvent era
forall era. Event (EraRule "LEDGERS" era) -> ShelleyBbodyEvent era
Shelley.LedgersEvent