{-# LANGUAGE TypeFamilies #-} {-# OPTIONS_GHC -Wno-orphans #-} module Cardano.Ledger.Dijkstra.Governance () where import Cardano.Ledger.Coin (Coin (..)) import Cardano.Ledger.Conway.Governance ( ConwayEraGov (..), ConwayGovState, EraGov (..), cgsCommitteeL, cgsConstitutionL, cgsCurPParamsL, cgsDRepPulsingStateL, cgsFuturePParamsL, cgsPrevPParamsL, cgsProposalsL, gasDeposit, proposalsActions, ) import Cardano.Ledger.Conway.State (Obligations (..)) import Cardano.Ledger.Dijkstra.Era (DijkstraEra) import Cardano.Ledger.Dijkstra.PParams () import Cardano.Ledger.Dijkstra.State.Stake () import Data.Foldable (Foldable (..)) import Lens.Micro ((^.)) instance EraGov DijkstraEra where type GovState DijkstraEra = ConwayGovState DijkstraEra curPParamsGovStateL :: Lens' (GovState DijkstraEra) (PParams DijkstraEra) curPParamsGovStateL = (PParams DijkstraEra -> f (PParams DijkstraEra)) -> GovState DijkstraEra -> f (GovState DijkstraEra) (PParams DijkstraEra -> f (PParams DijkstraEra)) -> ConwayGovState DijkstraEra -> f (ConwayGovState DijkstraEra) forall era (f :: * -> *). Functor f => (PParams era -> f (PParams era)) -> ConwayGovState era -> f (ConwayGovState era) cgsCurPParamsL prevPParamsGovStateL :: Lens' (GovState DijkstraEra) (PParams DijkstraEra) prevPParamsGovStateL = (PParams DijkstraEra -> f (PParams DijkstraEra)) -> GovState DijkstraEra -> f (GovState DijkstraEra) (PParams DijkstraEra -> f (PParams DijkstraEra)) -> ConwayGovState DijkstraEra -> f (ConwayGovState DijkstraEra) forall era (f :: * -> *). Functor f => (PParams era -> f (PParams era)) -> ConwayGovState era -> f (ConwayGovState era) cgsPrevPParamsL futurePParamsGovStateL :: Lens' (GovState DijkstraEra) (FuturePParams DijkstraEra) futurePParamsGovStateL = (FuturePParams DijkstraEra -> f (FuturePParams DijkstraEra)) -> GovState DijkstraEra -> f (GovState DijkstraEra) (FuturePParams DijkstraEra -> f (FuturePParams DijkstraEra)) -> ConwayGovState DijkstraEra -> f (ConwayGovState DijkstraEra) forall era (f :: * -> *). Functor f => (FuturePParams era -> f (FuturePParams era)) -> ConwayGovState era -> f (ConwayGovState era) cgsFuturePParamsL obligationGovState :: GovState DijkstraEra -> Obligations obligationGovState GovState DijkstraEra st = Obligations { oblProposal :: Coin oblProposal = (GovActionState DijkstraEra -> Coin) -> StrictSeq (GovActionState DijkstraEra) -> Coin forall m a. Monoid m => (a -> m) -> StrictSeq a -> m forall (t :: * -> *) m a. (Foldable t, Monoid m) => (a -> m) -> t a -> m foldMap' GovActionState DijkstraEra -> Coin forall era. GovActionState era -> Coin gasDeposit (StrictSeq (GovActionState DijkstraEra) -> Coin) -> StrictSeq (GovActionState DijkstraEra) -> Coin forall a b. (a -> b) -> a -> b $ Proposals DijkstraEra -> StrictSeq (GovActionState DijkstraEra) forall era. Proposals era -> StrictSeq (GovActionState era) proposalsActions (GovState DijkstraEra ConwayGovState DijkstraEra st ConwayGovState DijkstraEra -> Getting (Proposals DijkstraEra) (ConwayGovState DijkstraEra) (Proposals DijkstraEra) -> Proposals DijkstraEra forall s a. s -> Getting a s a -> a ^. Getting (Proposals DijkstraEra) (ConwayGovState DijkstraEra) (Proposals DijkstraEra) forall era (f :: * -> *). Functor f => (Proposals era -> f (Proposals era)) -> ConwayGovState era -> f (ConwayGovState era) cgsProposalsL) , oblDRep :: Coin oblDRep = Integer -> Coin Coin Integer 0 , oblStake :: Coin oblStake = Integer -> Coin Coin Integer 0 , oblPool :: Coin oblPool = Integer -> Coin Coin Integer 0 } instance ConwayEraGov DijkstraEra where constitutionGovStateL :: Lens' (GovState DijkstraEra) (Constitution DijkstraEra) constitutionGovStateL = (Constitution DijkstraEra -> f (Constitution DijkstraEra)) -> GovState DijkstraEra -> f (GovState DijkstraEra) (Constitution DijkstraEra -> f (Constitution DijkstraEra)) -> ConwayGovState DijkstraEra -> f (ConwayGovState DijkstraEra) forall era (f :: * -> *). Functor f => (Constitution era -> f (Constitution era)) -> ConwayGovState era -> f (ConwayGovState era) cgsConstitutionL proposalsGovStateL :: Lens' (GovState DijkstraEra) (Proposals DijkstraEra) proposalsGovStateL = (Proposals DijkstraEra -> f (Proposals DijkstraEra)) -> GovState DijkstraEra -> f (GovState DijkstraEra) (Proposals DijkstraEra -> f (Proposals DijkstraEra)) -> ConwayGovState DijkstraEra -> f (ConwayGovState DijkstraEra) forall era (f :: * -> *). Functor f => (Proposals era -> f (Proposals era)) -> ConwayGovState era -> f (ConwayGovState era) cgsProposalsL drepPulsingStateGovStateL :: Lens' (GovState DijkstraEra) (DRepPulsingState DijkstraEra) drepPulsingStateGovStateL = (DRepPulsingState DijkstraEra -> f (DRepPulsingState DijkstraEra)) -> GovState DijkstraEra -> f (GovState DijkstraEra) (DRepPulsingState DijkstraEra -> f (DRepPulsingState DijkstraEra)) -> ConwayGovState DijkstraEra -> f (ConwayGovState DijkstraEra) forall era (f :: * -> *). Functor f => (DRepPulsingState era -> f (DRepPulsingState era)) -> ConwayGovState era -> f (ConwayGovState era) cgsDRepPulsingStateL committeeGovStateL :: Lens' (GovState DijkstraEra) (StrictMaybe (Committee DijkstraEra)) committeeGovStateL = (StrictMaybe (Committee DijkstraEra) -> f (StrictMaybe (Committee DijkstraEra))) -> GovState DijkstraEra -> f (GovState DijkstraEra) (StrictMaybe (Committee DijkstraEra) -> f (StrictMaybe (Committee DijkstraEra))) -> ConwayGovState DijkstraEra -> f (ConwayGovState DijkstraEra) forall era (f :: * -> *). Functor f => (StrictMaybe (Committee era) -> f (StrictMaybe (Committee era))) -> ConwayGovState era -> f (ConwayGovState era) cgsCommitteeL