{-# LANGUAGE TypeFamilies #-}
{-# OPTIONS_GHC -Wno-orphans #-}

module Cardano.Ledger.Allegra.PParams () where

import Cardano.Ledger.Allegra.Era (AllegraEra)
import Cardano.Ledger.Core
import Cardano.Ledger.Shelley.Governance
import Cardano.Ledger.Shelley.PParams
import Data.Coerce
import Lens.Micro

instance EraPParams AllegraEra where
  type PParamsHKD f AllegraEra = ShelleyPParams f AllegraEra

  type UpgradePParams f AllegraEra = ()
  type DowngradePParams f AllegraEra = ()

  emptyPParamsIdentity :: PParamsHKD Identity AllegraEra
emptyPParamsIdentity = PParamsHKD Identity AllegraEra
ShelleyPParams Identity AllegraEra
forall era. Era era => ShelleyPParams Identity era
emptyShelleyPParams
  emptyPParamsStrictMaybe :: PParamsHKD StrictMaybe AllegraEra
emptyPParamsStrictMaybe = PParamsHKD StrictMaybe AllegraEra
ShelleyPParams StrictMaybe AllegraEra
forall era. ShelleyPParams StrictMaybe era
emptyShelleyPParamsUpdate

  upgradePParamsHKD :: forall (f :: * -> *).
(HKDApplicative f, EraPParams (PreviousEra AllegraEra)) =>
UpgradePParams f AllegraEra
-> PParamsHKD f (PreviousEra AllegraEra) -> PParamsHKD f AllegraEra
upgradePParamsHKD () = PParamsHKD f (PreviousEra AllegraEra) -> PParamsHKD f AllegraEra
ShelleyPParams f ShelleyEra -> ShelleyPParams f AllegraEra
forall a b. Coercible a b => a -> b
coerce
  downgradePParamsHKD :: forall (f :: * -> *).
(HKDFunctor f, EraPParams (PreviousEra AllegraEra)) =>
DowngradePParams f AllegraEra
-> PParamsHKD f AllegraEra -> PParamsHKD f (PreviousEra AllegraEra)
downgradePParamsHKD () = PParamsHKD f AllegraEra -> PParamsHKD f (PreviousEra AllegraEra)
ShelleyPParams f AllegraEra -> ShelleyPParams f ShelleyEra
forall a b. Coercible a b => a -> b
coerce

  hkdMinFeeAL :: forall (f :: * -> *).
HKDFunctor f =>
Lens' (PParamsHKD f AllegraEra) (HKD f Coin)
hkdMinFeeAL = (PParamsHKD f AllegraEra -> HKD f Coin)
-> (PParamsHKD f AllegraEra
    -> HKD f Coin -> PParamsHKD f AllegraEra)
-> forall {f :: * -> *}.
   Functor f =>
   (HKD f Coin -> f (HKD f Coin))
   -> PParamsHKD f AllegraEra -> f (PParamsHKD f AllegraEra)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens PParamsHKD f AllegraEra -> HKD f Coin
ShelleyPParams f AllegraEra -> HKD f Coin
forall (f :: * -> *) era. ShelleyPParams f era -> HKD f Coin
sppMinFeeA ((PParamsHKD f AllegraEra -> HKD f Coin -> PParamsHKD f AllegraEra)
 -> forall {f :: * -> *}.
    Functor f =>
    (HKD f Coin -> f (HKD f Coin))
    -> PParamsHKD f AllegraEra -> f (PParamsHKD f AllegraEra))
-> (PParamsHKD f AllegraEra
    -> HKD f Coin -> PParamsHKD f AllegraEra)
-> forall {f :: * -> *}.
   Functor f =>
   (HKD f Coin -> f (HKD f Coin))
   -> PParamsHKD f AllegraEra -> f (PParamsHKD f AllegraEra)
forall a b. (a -> b) -> a -> b
$ \PParamsHKD f AllegraEra
pp HKD f Coin
x -> PParamsHKD f AllegraEra
pp {sppMinFeeA = x}
  hkdMinFeeBL :: forall (f :: * -> *).
HKDFunctor f =>
Lens' (PParamsHKD f AllegraEra) (HKD f Coin)
hkdMinFeeBL = (PParamsHKD f AllegraEra -> HKD f Coin)
-> (PParamsHKD f AllegraEra
    -> HKD f Coin -> PParamsHKD f AllegraEra)
-> forall {f :: * -> *}.
   Functor f =>
   (HKD f Coin -> f (HKD f Coin))
   -> PParamsHKD f AllegraEra -> f (PParamsHKD f AllegraEra)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens PParamsHKD f AllegraEra -> HKD f Coin
ShelleyPParams f AllegraEra -> HKD f Coin
forall (f :: * -> *) era. ShelleyPParams f era -> HKD f Coin
sppMinFeeB ((PParamsHKD f AllegraEra -> HKD f Coin -> PParamsHKD f AllegraEra)
 -> forall {f :: * -> *}.
    Functor f =>
    (HKD f Coin -> f (HKD f Coin))
    -> PParamsHKD f AllegraEra -> f (PParamsHKD f AllegraEra))
-> (PParamsHKD f AllegraEra
    -> HKD f Coin -> PParamsHKD f AllegraEra)
-> forall {f :: * -> *}.
   Functor f =>
   (HKD f Coin -> f (HKD f Coin))
   -> PParamsHKD f AllegraEra -> f (PParamsHKD f AllegraEra)
forall a b. (a -> b) -> a -> b
$ \PParamsHKD f AllegraEra
pp HKD f Coin
x -> PParamsHKD f AllegraEra
pp {sppMinFeeB = x}
  hkdMaxBBSizeL :: forall (f :: * -> *).
HKDFunctor f =>
Lens' (PParamsHKD f AllegraEra) (HKD f Word32)
hkdMaxBBSizeL = (PParamsHKD f AllegraEra -> HKD f Word32)
-> (PParamsHKD f AllegraEra
    -> HKD f Word32 -> PParamsHKD f AllegraEra)
-> forall {f :: * -> *}.
   Functor f =>
   (HKD f Word32 -> f (HKD f Word32))
   -> PParamsHKD f AllegraEra -> f (PParamsHKD f AllegraEra)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens PParamsHKD f AllegraEra -> HKD f Word32
ShelleyPParams f AllegraEra -> HKD f Word32
forall (f :: * -> *) era. ShelleyPParams f era -> HKD f Word32
sppMaxBBSize ((PParamsHKD f AllegraEra
  -> HKD f Word32 -> PParamsHKD f AllegraEra)
 -> forall {f :: * -> *}.
    Functor f =>
    (HKD f Word32 -> f (HKD f Word32))
    -> PParamsHKD f AllegraEra -> f (PParamsHKD f AllegraEra))
-> (PParamsHKD f AllegraEra
    -> HKD f Word32 -> PParamsHKD f AllegraEra)
-> forall {f :: * -> *}.
   Functor f =>
   (HKD f Word32 -> f (HKD f Word32))
   -> PParamsHKD f AllegraEra -> f (PParamsHKD f AllegraEra)
forall a b. (a -> b) -> a -> b
$ \PParamsHKD f AllegraEra
pp HKD f Word32
x -> PParamsHKD f AllegraEra
pp {sppMaxBBSize = x}
  hkdMaxTxSizeL :: forall (f :: * -> *).
HKDFunctor f =>
Lens' (PParamsHKD f AllegraEra) (HKD f Word32)
hkdMaxTxSizeL = (PParamsHKD f AllegraEra -> HKD f Word32)
-> (PParamsHKD f AllegraEra
    -> HKD f Word32 -> PParamsHKD f AllegraEra)
-> forall {f :: * -> *}.
   Functor f =>
   (HKD f Word32 -> f (HKD f Word32))
   -> PParamsHKD f AllegraEra -> f (PParamsHKD f AllegraEra)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens PParamsHKD f AllegraEra -> HKD f Word32
ShelleyPParams f AllegraEra -> HKD f Word32
forall (f :: * -> *) era. ShelleyPParams f era -> HKD f Word32
sppMaxTxSize ((PParamsHKD f AllegraEra
  -> HKD f Word32 -> PParamsHKD f AllegraEra)
 -> forall {f :: * -> *}.
    Functor f =>
    (HKD f Word32 -> f (HKD f Word32))
    -> PParamsHKD f AllegraEra -> f (PParamsHKD f AllegraEra))
-> (PParamsHKD f AllegraEra
    -> HKD f Word32 -> PParamsHKD f AllegraEra)
-> forall {f :: * -> *}.
   Functor f =>
   (HKD f Word32 -> f (HKD f Word32))
   -> PParamsHKD f AllegraEra -> f (PParamsHKD f AllegraEra)
forall a b. (a -> b) -> a -> b
$ \PParamsHKD f AllegraEra
pp HKD f Word32
x -> PParamsHKD f AllegraEra
pp {sppMaxTxSize = x}
  hkdMaxBHSizeL :: forall (f :: * -> *).
HKDFunctor f =>
Lens' (PParamsHKD f AllegraEra) (HKD f Word16)
hkdMaxBHSizeL = (PParamsHKD f AllegraEra -> HKD f Word16)
-> (PParamsHKD f AllegraEra
    -> HKD f Word16 -> PParamsHKD f AllegraEra)
-> forall {f :: * -> *}.
   Functor f =>
   (HKD f Word16 -> f (HKD f Word16))
   -> PParamsHKD f AllegraEra -> f (PParamsHKD f AllegraEra)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens PParamsHKD f AllegraEra -> HKD f Word16
ShelleyPParams f AllegraEra -> HKD f Word16
forall (f :: * -> *) era. ShelleyPParams f era -> HKD f Word16
sppMaxBHSize ((PParamsHKD f AllegraEra
  -> HKD f Word16 -> PParamsHKD f AllegraEra)
 -> forall {f :: * -> *}.
    Functor f =>
    (HKD f Word16 -> f (HKD f Word16))
    -> PParamsHKD f AllegraEra -> f (PParamsHKD f AllegraEra))
-> (PParamsHKD f AllegraEra
    -> HKD f Word16 -> PParamsHKD f AllegraEra)
-> forall {f :: * -> *}.
   Functor f =>
   (HKD f Word16 -> f (HKD f Word16))
   -> PParamsHKD f AllegraEra -> f (PParamsHKD f AllegraEra)
forall a b. (a -> b) -> a -> b
$ \PParamsHKD f AllegraEra
pp HKD f Word16
x -> PParamsHKD f AllegraEra
pp {sppMaxBHSize = x}
  hkdKeyDepositL :: forall (f :: * -> *).
HKDFunctor f =>
Lens' (PParamsHKD f AllegraEra) (HKD f Coin)
hkdKeyDepositL = (PParamsHKD f AllegraEra -> HKD f Coin)
-> (PParamsHKD f AllegraEra
    -> HKD f Coin -> PParamsHKD f AllegraEra)
-> forall {f :: * -> *}.
   Functor f =>
   (HKD f Coin -> f (HKD f Coin))
   -> PParamsHKD f AllegraEra -> f (PParamsHKD f AllegraEra)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens PParamsHKD f AllegraEra -> HKD f Coin
ShelleyPParams f AllegraEra -> HKD f Coin
forall (f :: * -> *) era. ShelleyPParams f era -> HKD f Coin
sppKeyDeposit ((PParamsHKD f AllegraEra -> HKD f Coin -> PParamsHKD f AllegraEra)
 -> forall {f :: * -> *}.
    Functor f =>
    (HKD f Coin -> f (HKD f Coin))
    -> PParamsHKD f AllegraEra -> f (PParamsHKD f AllegraEra))
-> (PParamsHKD f AllegraEra
    -> HKD f Coin -> PParamsHKD f AllegraEra)
-> forall {f :: * -> *}.
   Functor f =>
   (HKD f Coin -> f (HKD f Coin))
   -> PParamsHKD f AllegraEra -> f (PParamsHKD f AllegraEra)
forall a b. (a -> b) -> a -> b
$ \PParamsHKD f AllegraEra
pp HKD f Coin
x -> PParamsHKD f AllegraEra
pp {sppKeyDeposit = x}
  hkdPoolDepositL :: forall (f :: * -> *).
HKDFunctor f =>
Lens' (PParamsHKD f AllegraEra) (HKD f Coin)
hkdPoolDepositL = (PParamsHKD f AllegraEra -> HKD f Coin)
-> (PParamsHKD f AllegraEra
    -> HKD f Coin -> PParamsHKD f AllegraEra)
-> forall {f :: * -> *}.
   Functor f =>
   (HKD f Coin -> f (HKD f Coin))
   -> PParamsHKD f AllegraEra -> f (PParamsHKD f AllegraEra)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens PParamsHKD f AllegraEra -> HKD f Coin
ShelleyPParams f AllegraEra -> HKD f Coin
forall (f :: * -> *) era. ShelleyPParams f era -> HKD f Coin
sppPoolDeposit ((PParamsHKD f AllegraEra -> HKD f Coin -> PParamsHKD f AllegraEra)
 -> forall {f :: * -> *}.
    Functor f =>
    (HKD f Coin -> f (HKD f Coin))
    -> PParamsHKD f AllegraEra -> f (PParamsHKD f AllegraEra))
-> (PParamsHKD f AllegraEra
    -> HKD f Coin -> PParamsHKD f AllegraEra)
-> forall {f :: * -> *}.
   Functor f =>
   (HKD f Coin -> f (HKD f Coin))
   -> PParamsHKD f AllegraEra -> f (PParamsHKD f AllegraEra)
forall a b. (a -> b) -> a -> b
$ \PParamsHKD f AllegraEra
pp HKD f Coin
x -> PParamsHKD f AllegraEra
pp {sppPoolDeposit = x}
  hkdEMaxL :: forall (f :: * -> *).
HKDFunctor f =>
Lens' (PParamsHKD f AllegraEra) (HKD f EpochInterval)
hkdEMaxL = (PParamsHKD f AllegraEra -> HKD f EpochInterval)
-> (PParamsHKD f AllegraEra
    -> HKD f EpochInterval -> PParamsHKD f AllegraEra)
-> forall {f :: * -> *}.
   Functor f =>
   (HKD f EpochInterval -> f (HKD f EpochInterval))
   -> PParamsHKD f AllegraEra -> f (PParamsHKD f AllegraEra)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens PParamsHKD f AllegraEra -> HKD f EpochInterval
ShelleyPParams f AllegraEra -> HKD f EpochInterval
forall (f :: * -> *) era.
ShelleyPParams f era -> HKD f EpochInterval
sppEMax ((PParamsHKD f AllegraEra
  -> HKD f EpochInterval -> PParamsHKD f AllegraEra)
 -> forall {f :: * -> *}.
    Functor f =>
    (HKD f EpochInterval -> f (HKD f EpochInterval))
    -> PParamsHKD f AllegraEra -> f (PParamsHKD f AllegraEra))
-> (PParamsHKD f AllegraEra
    -> HKD f EpochInterval -> PParamsHKD f AllegraEra)
-> forall {f :: * -> *}.
   Functor f =>
   (HKD f EpochInterval -> f (HKD f EpochInterval))
   -> PParamsHKD f AllegraEra -> f (PParamsHKD f AllegraEra)
forall a b. (a -> b) -> a -> b
$ \PParamsHKD f AllegraEra
pp HKD f EpochInterval
x -> PParamsHKD f AllegraEra
pp {sppEMax = x}
  hkdNOptL :: forall (f :: * -> *).
HKDFunctor f =>
Lens' (PParamsHKD f AllegraEra) (HKD f Word16)
hkdNOptL = (PParamsHKD f AllegraEra -> HKD f Word16)
-> (PParamsHKD f AllegraEra
    -> HKD f Word16 -> PParamsHKD f AllegraEra)
-> forall {f :: * -> *}.
   Functor f =>
   (HKD f Word16 -> f (HKD f Word16))
   -> PParamsHKD f AllegraEra -> f (PParamsHKD f AllegraEra)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens PParamsHKD f AllegraEra -> HKD f Word16
ShelleyPParams f AllegraEra -> HKD f Word16
forall (f :: * -> *) era. ShelleyPParams f era -> HKD f Word16
sppNOpt ((PParamsHKD f AllegraEra
  -> HKD f Word16 -> PParamsHKD f AllegraEra)
 -> forall {f :: * -> *}.
    Functor f =>
    (HKD f Word16 -> f (HKD f Word16))
    -> PParamsHKD f AllegraEra -> f (PParamsHKD f AllegraEra))
-> (PParamsHKD f AllegraEra
    -> HKD f Word16 -> PParamsHKD f AllegraEra)
-> forall {f :: * -> *}.
   Functor f =>
   (HKD f Word16 -> f (HKD f Word16))
   -> PParamsHKD f AllegraEra -> f (PParamsHKD f AllegraEra)
forall a b. (a -> b) -> a -> b
$ \PParamsHKD f AllegraEra
pp HKD f Word16
x -> PParamsHKD f AllegraEra
pp {sppNOpt = x}
  hkdA0L :: forall (f :: * -> *).
HKDFunctor f =>
Lens' (PParamsHKD f AllegraEra) (HKD f NonNegativeInterval)
hkdA0L = (PParamsHKD f AllegraEra -> HKD f NonNegativeInterval)
-> (PParamsHKD f AllegraEra
    -> HKD f NonNegativeInterval -> PParamsHKD f AllegraEra)
-> forall {f :: * -> *}.
   Functor f =>
   (HKD f NonNegativeInterval -> f (HKD f NonNegativeInterval))
   -> PParamsHKD f AllegraEra -> f (PParamsHKD f AllegraEra)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens PParamsHKD f AllegraEra -> HKD f NonNegativeInterval
ShelleyPParams f AllegraEra -> HKD f NonNegativeInterval
forall (f :: * -> *) era.
ShelleyPParams f era -> HKD f NonNegativeInterval
sppA0 ((PParamsHKD f AllegraEra
  -> HKD f NonNegativeInterval -> PParamsHKD f AllegraEra)
 -> forall {f :: * -> *}.
    Functor f =>
    (HKD f NonNegativeInterval -> f (HKD f NonNegativeInterval))
    -> PParamsHKD f AllegraEra -> f (PParamsHKD f AllegraEra))
-> (PParamsHKD f AllegraEra
    -> HKD f NonNegativeInterval -> PParamsHKD f AllegraEra)
-> forall {f :: * -> *}.
   Functor f =>
   (HKD f NonNegativeInterval -> f (HKD f NonNegativeInterval))
   -> PParamsHKD f AllegraEra -> f (PParamsHKD f AllegraEra)
forall a b. (a -> b) -> a -> b
$ \PParamsHKD f AllegraEra
pp HKD f NonNegativeInterval
x -> PParamsHKD f AllegraEra
pp {sppA0 = x}
  hkdRhoL :: forall (f :: * -> *).
HKDFunctor f =>
Lens' (PParamsHKD f AllegraEra) (HKD f UnitInterval)
hkdRhoL = (PParamsHKD f AllegraEra -> HKD f UnitInterval)
-> (PParamsHKD f AllegraEra
    -> HKD f UnitInterval -> PParamsHKD f AllegraEra)
-> forall {f :: * -> *}.
   Functor f =>
   (HKD f UnitInterval -> f (HKD f UnitInterval))
   -> PParamsHKD f AllegraEra -> f (PParamsHKD f AllegraEra)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens PParamsHKD f AllegraEra -> HKD f UnitInterval
ShelleyPParams f AllegraEra -> HKD f UnitInterval
forall (f :: * -> *) era.
ShelleyPParams f era -> HKD f UnitInterval
sppRho ((PParamsHKD f AllegraEra
  -> HKD f UnitInterval -> PParamsHKD f AllegraEra)
 -> forall {f :: * -> *}.
    Functor f =>
    (HKD f UnitInterval -> f (HKD f UnitInterval))
    -> PParamsHKD f AllegraEra -> f (PParamsHKD f AllegraEra))
-> (PParamsHKD f AllegraEra
    -> HKD f UnitInterval -> PParamsHKD f AllegraEra)
-> forall {f :: * -> *}.
   Functor f =>
   (HKD f UnitInterval -> f (HKD f UnitInterval))
   -> PParamsHKD f AllegraEra -> f (PParamsHKD f AllegraEra)
forall a b. (a -> b) -> a -> b
$ \PParamsHKD f AllegraEra
pp HKD f UnitInterval
x -> PParamsHKD f AllegraEra
pp {sppRho = x}
  hkdTauL :: forall (f :: * -> *).
HKDFunctor f =>
Lens' (PParamsHKD f AllegraEra) (HKD f UnitInterval)
hkdTauL = (PParamsHKD f AllegraEra -> HKD f UnitInterval)
-> (PParamsHKD f AllegraEra
    -> HKD f UnitInterval -> PParamsHKD f AllegraEra)
-> forall {f :: * -> *}.
   Functor f =>
   (HKD f UnitInterval -> f (HKD f UnitInterval))
   -> PParamsHKD f AllegraEra -> f (PParamsHKD f AllegraEra)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens PParamsHKD f AllegraEra -> HKD f UnitInterval
ShelleyPParams f AllegraEra -> HKD f UnitInterval
forall (f :: * -> *) era.
ShelleyPParams f era -> HKD f UnitInterval
sppTau ((PParamsHKD f AllegraEra
  -> HKD f UnitInterval -> PParamsHKD f AllegraEra)
 -> forall {f :: * -> *}.
    Functor f =>
    (HKD f UnitInterval -> f (HKD f UnitInterval))
    -> PParamsHKD f AllegraEra -> f (PParamsHKD f AllegraEra))
-> (PParamsHKD f AllegraEra
    -> HKD f UnitInterval -> PParamsHKD f AllegraEra)
-> forall {f :: * -> *}.
   Functor f =>
   (HKD f UnitInterval -> f (HKD f UnitInterval))
   -> PParamsHKD f AllegraEra -> f (PParamsHKD f AllegraEra)
forall a b. (a -> b) -> a -> b
$ \PParamsHKD f AllegraEra
pp HKD f UnitInterval
x -> PParamsHKD f AllegraEra
pp {sppTau = x}
  hkdDL :: forall (f :: * -> *).
(HKDFunctor f, ProtVerAtMost AllegraEra 6) =>
Lens' (PParamsHKD f AllegraEra) (HKD f UnitInterval)
hkdDL = (PParamsHKD f AllegraEra -> HKD f UnitInterval)
-> (PParamsHKD f AllegraEra
    -> HKD f UnitInterval -> PParamsHKD f AllegraEra)
-> forall {f :: * -> *}.
   Functor f =>
   (HKD f UnitInterval -> f (HKD f UnitInterval))
   -> PParamsHKD f AllegraEra -> f (PParamsHKD f AllegraEra)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens PParamsHKD f AllegraEra -> HKD f UnitInterval
ShelleyPParams f AllegraEra -> HKD f UnitInterval
forall (f :: * -> *) era.
ShelleyPParams f era -> HKD f UnitInterval
sppD ((PParamsHKD f AllegraEra
  -> HKD f UnitInterval -> PParamsHKD f AllegraEra)
 -> forall {f :: * -> *}.
    Functor f =>
    (HKD f UnitInterval -> f (HKD f UnitInterval))
    -> PParamsHKD f AllegraEra -> f (PParamsHKD f AllegraEra))
-> (PParamsHKD f AllegraEra
    -> HKD f UnitInterval -> PParamsHKD f AllegraEra)
-> forall {f :: * -> *}.
   Functor f =>
   (HKD f UnitInterval -> f (HKD f UnitInterval))
   -> PParamsHKD f AllegraEra -> f (PParamsHKD f AllegraEra)
forall a b. (a -> b) -> a -> b
$ \PParamsHKD f AllegraEra
pp HKD f UnitInterval
x -> PParamsHKD f AllegraEra
pp {sppD = x}
  hkdExtraEntropyL :: forall (f :: * -> *).
(HKDFunctor f, ProtVerAtMost AllegraEra 6) =>
Lens' (PParamsHKD f AllegraEra) (HKD f Nonce)
hkdExtraEntropyL = (PParamsHKD f AllegraEra -> HKD f Nonce)
-> (PParamsHKD f AllegraEra
    -> HKD f Nonce -> PParamsHKD f AllegraEra)
-> forall {f :: * -> *}.
   Functor f =>
   (HKD f Nonce -> f (HKD f Nonce))
   -> PParamsHKD f AllegraEra -> f (PParamsHKD f AllegraEra)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens PParamsHKD f AllegraEra -> HKD f Nonce
ShelleyPParams f AllegraEra -> HKD f Nonce
forall (f :: * -> *) era. ShelleyPParams f era -> HKD f Nonce
sppExtraEntropy ((PParamsHKD f AllegraEra
  -> HKD f Nonce -> PParamsHKD f AllegraEra)
 -> forall {f :: * -> *}.
    Functor f =>
    (HKD f Nonce -> f (HKD f Nonce))
    -> PParamsHKD f AllegraEra -> f (PParamsHKD f AllegraEra))
-> (PParamsHKD f AllegraEra
    -> HKD f Nonce -> PParamsHKD f AllegraEra)
-> forall {f :: * -> *}.
   Functor f =>
   (HKD f Nonce -> f (HKD f Nonce))
   -> PParamsHKD f AllegraEra -> f (PParamsHKD f AllegraEra)
forall a b. (a -> b) -> a -> b
$ \PParamsHKD f AllegraEra
pp HKD f Nonce
x -> PParamsHKD f AllegraEra
pp {sppExtraEntropy = x}
  hkdProtocolVersionL :: forall (f :: * -> *).
(HKDFunctor f, ProtVerAtMost AllegraEra 8) =>
Lens' (PParamsHKD f AllegraEra) (HKD f ProtVer)
hkdProtocolVersionL = (PParamsHKD f AllegraEra -> HKD f ProtVer)
-> (PParamsHKD f AllegraEra
    -> HKD f ProtVer -> PParamsHKD f AllegraEra)
-> forall {f :: * -> *}.
   Functor f =>
   (HKD f ProtVer -> f (HKD f ProtVer))
   -> PParamsHKD f AllegraEra -> f (PParamsHKD f AllegraEra)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens PParamsHKD f AllegraEra -> HKD f ProtVer
ShelleyPParams f AllegraEra -> HKD f ProtVer
forall (f :: * -> *) era. ShelleyPParams f era -> HKD f ProtVer
sppProtocolVersion ((PParamsHKD f AllegraEra
  -> HKD f ProtVer -> PParamsHKD f AllegraEra)
 -> forall {f :: * -> *}.
    Functor f =>
    (HKD f ProtVer -> f (HKD f ProtVer))
    -> PParamsHKD f AllegraEra -> f (PParamsHKD f AllegraEra))
-> (PParamsHKD f AllegraEra
    -> HKD f ProtVer -> PParamsHKD f AllegraEra)
-> forall {f :: * -> *}.
   Functor f =>
   (HKD f ProtVer -> f (HKD f ProtVer))
   -> PParamsHKD f AllegraEra -> f (PParamsHKD f AllegraEra)
forall a b. (a -> b) -> a -> b
$ \PParamsHKD f AllegraEra
pp HKD f ProtVer
x -> PParamsHKD f AllegraEra
pp {sppProtocolVersion = x}
  hkdMinUTxOValueL :: forall (f :: * -> *).
(HKDFunctor f, ProtVerAtMost AllegraEra 4) =>
Lens' (PParamsHKD f AllegraEra) (HKD f Coin)
hkdMinUTxOValueL = (PParamsHKD f AllegraEra -> HKD f Coin)
-> (PParamsHKD f AllegraEra
    -> HKD f Coin -> PParamsHKD f AllegraEra)
-> forall {f :: * -> *}.
   Functor f =>
   (HKD f Coin -> f (HKD f Coin))
   -> PParamsHKD f AllegraEra -> f (PParamsHKD f AllegraEra)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens PParamsHKD f AllegraEra -> HKD f Coin
ShelleyPParams f AllegraEra -> HKD f Coin
forall (f :: * -> *) era. ShelleyPParams f era -> HKD f Coin
sppMinUTxOValue ((PParamsHKD f AllegraEra -> HKD f Coin -> PParamsHKD f AllegraEra)
 -> forall {f :: * -> *}.
    Functor f =>
    (HKD f Coin -> f (HKD f Coin))
    -> PParamsHKD f AllegraEra -> f (PParamsHKD f AllegraEra))
-> (PParamsHKD f AllegraEra
    -> HKD f Coin -> PParamsHKD f AllegraEra)
-> forall {f :: * -> *}.
   Functor f =>
   (HKD f Coin -> f (HKD f Coin))
   -> PParamsHKD f AllegraEra -> f (PParamsHKD f AllegraEra)
forall a b. (a -> b) -> a -> b
$ \PParamsHKD f AllegraEra
pp HKD f Coin
x -> PParamsHKD f AllegraEra
pp {sppMinUTxOValue = x}
  hkdMinPoolCostL :: forall (f :: * -> *).
HKDFunctor f =>
Lens' (PParamsHKD f AllegraEra) (HKD f Coin)
hkdMinPoolCostL = (PParamsHKD f AllegraEra -> HKD f Coin)
-> (PParamsHKD f AllegraEra
    -> HKD f Coin -> PParamsHKD f AllegraEra)
-> forall {f :: * -> *}.
   Functor f =>
   (HKD f Coin -> f (HKD f Coin))
   -> PParamsHKD f AllegraEra -> f (PParamsHKD f AllegraEra)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens PParamsHKD f AllegraEra -> HKD f Coin
ShelleyPParams f AllegraEra -> HKD f Coin
forall (f :: * -> *) era. ShelleyPParams f era -> HKD f Coin
sppMinPoolCost ((PParamsHKD f AllegraEra -> HKD f Coin -> PParamsHKD f AllegraEra)
 -> forall {f :: * -> *}.
    Functor f =>
    (HKD f Coin -> f (HKD f Coin))
    -> PParamsHKD f AllegraEra -> f (PParamsHKD f AllegraEra))
-> (PParamsHKD f AllegraEra
    -> HKD f Coin -> PParamsHKD f AllegraEra)
-> forall {f :: * -> *}.
   Functor f =>
   (HKD f Coin -> f (HKD f Coin))
   -> PParamsHKD f AllegraEra -> f (PParamsHKD f AllegraEra)
forall a b. (a -> b) -> a -> b
$ \PParamsHKD f AllegraEra
pp HKD f Coin
x -> PParamsHKD f AllegraEra
pp {sppMinPoolCost = x}

  eraPParams :: [PParam AllegraEra]
eraPParams = [PParam AllegraEra]
forall era.
(EraPParams era, ProtVerAtMost era 4, ProtVerAtMost era 6,
 ProtVerAtMost era 8) =>
[PParam era]
shelleyPParams

instance EraGov AllegraEra where
  type GovState AllegraEra = ShelleyGovState AllegraEra
  emptyGovState :: GovState AllegraEra
emptyGovState = GovState AllegraEra
ShelleyGovState AllegraEra
forall era. EraPParams era => ShelleyGovState era
emptyShelleyGovState

  curPParamsGovStateL :: Lens' (GovState AllegraEra) (PParams AllegraEra)
curPParamsGovStateL = (PParams AllegraEra -> f (PParams AllegraEra))
-> GovState AllegraEra -> f (GovState AllegraEra)
(PParams AllegraEra -> f (PParams AllegraEra))
-> ShelleyGovState AllegraEra -> f (ShelleyGovState AllegraEra)
forall era (f :: * -> *).
Functor f =>
(PParams era -> f (PParams era))
-> ShelleyGovState era -> f (ShelleyGovState era)
curPParamsShelleyGovStateL

  prevPParamsGovStateL :: Lens' (GovState AllegraEra) (PParams AllegraEra)
prevPParamsGovStateL = (PParams AllegraEra -> f (PParams AllegraEra))
-> GovState AllegraEra -> f (GovState AllegraEra)
(PParams AllegraEra -> f (PParams AllegraEra))
-> ShelleyGovState AllegraEra -> f (ShelleyGovState AllegraEra)
forall era (f :: * -> *).
Functor f =>
(PParams era -> f (PParams era))
-> ShelleyGovState era -> f (ShelleyGovState era)
prevPParamsShelleyGovStateL

  futurePParamsGovStateL :: Lens' (GovState AllegraEra) (FuturePParams AllegraEra)
futurePParamsGovStateL = (FuturePParams AllegraEra -> f (FuturePParams AllegraEra))
-> GovState AllegraEra -> f (GovState AllegraEra)
(FuturePParams AllegraEra -> f (FuturePParams AllegraEra))
-> ShelleyGovState AllegraEra -> f (ShelleyGovState AllegraEra)
forall era (f :: * -> *).
Functor f =>
(FuturePParams era -> f (FuturePParams era))
-> ShelleyGovState era -> f (ShelleyGovState era)
futurePParamsShelleyGovStateL

  obligationGovState :: GovState AllegraEra -> Obligations
obligationGovState = Obligations -> ShelleyGovState AllegraEra -> Obligations
forall a b. a -> b -> a
const Obligations
forall a. Monoid a => a
mempty