{-# LANGUAGE DataKinds #-} {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE TypeFamilies #-} {-# LANGUAGE UndecidableSuperClasses #-} {-# OPTIONS_GHC -Wno-orphans #-} module Cardano.Ledger.Dijkstra.Transition ( TransitionConfig (..), ) where import Cardano.Ledger.Conway import Cardano.Ledger.Conway.Transition ( ConwayEraTransition, registerDRepsThenDelegs, ) import Cardano.Ledger.Dijkstra.Era import Cardano.Ledger.Dijkstra.Genesis import Cardano.Ledger.Dijkstra.Translation () import Cardano.Ledger.Shelley.Transition import GHC.Generics import Lens.Micro import NoThunks.Class (NoThunks (..)) instance EraTransition DijkstraEra where data TransitionConfig DijkstraEra = DijkstraTransitionConfig { TransitionConfig DijkstraEra -> DijkstraGenesis dtcDijkstraGenesis :: !DijkstraGenesis , TransitionConfig DijkstraEra -> TransitionConfig ConwayEra dtcConwayTransitionConfig :: !(TransitionConfig ConwayEra) } deriving (Int -> TransitionConfig DijkstraEra -> ShowS [TransitionConfig DijkstraEra] -> ShowS TransitionConfig DijkstraEra -> String (Int -> TransitionConfig DijkstraEra -> ShowS) -> (TransitionConfig DijkstraEra -> String) -> ([TransitionConfig DijkstraEra] -> ShowS) -> Show (TransitionConfig DijkstraEra) forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a $cshowsPrec :: Int -> TransitionConfig DijkstraEra -> ShowS showsPrec :: Int -> TransitionConfig DijkstraEra -> ShowS $cshow :: TransitionConfig DijkstraEra -> String show :: TransitionConfig DijkstraEra -> String $cshowList :: [TransitionConfig DijkstraEra] -> ShowS showList :: [TransitionConfig DijkstraEra] -> ShowS Show, TransitionConfig DijkstraEra -> TransitionConfig DijkstraEra -> Bool (TransitionConfig DijkstraEra -> TransitionConfig DijkstraEra -> Bool) -> (TransitionConfig DijkstraEra -> TransitionConfig DijkstraEra -> Bool) -> Eq (TransitionConfig DijkstraEra) forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a $c== :: TransitionConfig DijkstraEra -> TransitionConfig DijkstraEra -> Bool == :: TransitionConfig DijkstraEra -> TransitionConfig DijkstraEra -> Bool $c/= :: TransitionConfig DijkstraEra -> TransitionConfig DijkstraEra -> Bool /= :: TransitionConfig DijkstraEra -> TransitionConfig DijkstraEra -> Bool Eq, (forall x. TransitionConfig DijkstraEra -> Rep (TransitionConfig DijkstraEra) x) -> (forall x. Rep (TransitionConfig DijkstraEra) x -> TransitionConfig DijkstraEra) -> Generic (TransitionConfig DijkstraEra) forall x. Rep (TransitionConfig DijkstraEra) x -> TransitionConfig DijkstraEra forall x. TransitionConfig DijkstraEra -> Rep (TransitionConfig DijkstraEra) x forall a. (forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a $cfrom :: forall x. TransitionConfig DijkstraEra -> Rep (TransitionConfig DijkstraEra) x from :: forall x. TransitionConfig DijkstraEra -> Rep (TransitionConfig DijkstraEra) x $cto :: forall x. Rep (TransitionConfig DijkstraEra) x -> TransitionConfig DijkstraEra to :: forall x. Rep (TransitionConfig DijkstraEra) x -> TransitionConfig DijkstraEra Generic) mkTransitionConfig :: TranslationContext DijkstraEra -> TransitionConfig (PreviousEra DijkstraEra) -> TransitionConfig DijkstraEra mkTransitionConfig = TranslationContext DijkstraEra -> TransitionConfig (PreviousEra DijkstraEra) -> TransitionConfig DijkstraEra DijkstraGenesis -> TransitionConfig ConwayEra -> TransitionConfig DijkstraEra DijkstraTransitionConfig injectIntoTestState :: TransitionConfig DijkstraEra -> NewEpochState DijkstraEra -> NewEpochState DijkstraEra injectIntoTestState TransitionConfig DijkstraEra cfg = TransitionConfig DijkstraEra -> NewEpochState DijkstraEra -> NewEpochState DijkstraEra forall era. ConwayEraTransition era => TransitionConfig era -> NewEpochState era -> NewEpochState era registerDRepsThenDelegs TransitionConfig DijkstraEra cfg (NewEpochState DijkstraEra -> NewEpochState DijkstraEra) -> (NewEpochState DijkstraEra -> NewEpochState DijkstraEra) -> NewEpochState DijkstraEra -> NewEpochState DijkstraEra forall b c a. (b -> c) -> (a -> b) -> a -> c . TransitionConfig DijkstraEra -> NewEpochState DijkstraEra -> NewEpochState DijkstraEra forall era. EraTransition era => TransitionConfig era -> NewEpochState era -> NewEpochState era registerInitialFundsThenStaking TransitionConfig DijkstraEra cfg tcPreviousEraConfigL :: EraTransition (PreviousEra DijkstraEra) => Lens' (TransitionConfig DijkstraEra) (TransitionConfig (PreviousEra DijkstraEra)) tcPreviousEraConfigL = (TransitionConfig DijkstraEra -> TransitionConfig ConwayEra) -> (TransitionConfig DijkstraEra -> TransitionConfig ConwayEra -> TransitionConfig DijkstraEra) -> Lens (TransitionConfig DijkstraEra) (TransitionConfig DijkstraEra) (TransitionConfig ConwayEra) (TransitionConfig ConwayEra) forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b lens TransitionConfig DijkstraEra -> TransitionConfig ConwayEra dtcConwayTransitionConfig (\TransitionConfig DijkstraEra dtc TransitionConfig ConwayEra pc -> TransitionConfig DijkstraEra dtc {dtcConwayTransitionConfig = pc}) tcTranslationContextL :: Lens' (TransitionConfig DijkstraEra) (TranslationContext DijkstraEra) tcTranslationContextL = (TransitionConfig DijkstraEra -> DijkstraGenesis) -> (TransitionConfig DijkstraEra -> DijkstraGenesis -> TransitionConfig DijkstraEra) -> Lens (TransitionConfig DijkstraEra) (TransitionConfig DijkstraEra) DijkstraGenesis DijkstraGenesis forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b lens TransitionConfig DijkstraEra -> DijkstraGenesis dtcDijkstraGenesis (\TransitionConfig DijkstraEra dtc DijkstraGenesis ag -> TransitionConfig DijkstraEra dtc {dtcDijkstraGenesis = ag}) instance ConwayEraTransition DijkstraEra instance NoThunks (TransitionConfig DijkstraEra)