{-# LANGUAGE AllowAmbiguousTypes #-}
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DerivingVia #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE GADTs #-}
{-# LANGUAGE InstanceSigs #-}
{-# LANGUAGE LambdaCase #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RankNTypes #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE StandaloneDeriving #-}
{-# LANGUAGE TypeApplications #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE TypeOperators #-}
{-# LANGUAGE UndecidableInstances #-}
{-# LANGUAGE UndecidableSuperClasses #-}
{-# OPTIONS_GHC -Wno-orphans #-}

-- | This module contains the type of protocol parameters and EraPParams instance
module Cardano.Ledger.Conway.PParams (
  ConwayEraPParams (..),
  ppCommitteeMaxTermLength,
  ppCommitteeMinSize,
  ppDRepActivity,
  ppDRepDeposit,
  ppDRepVotingThresholds,
  ppGovActionDeposit,
  ppGovActionLifetime,
  ppGovProtocolVersion,
  ppMinFeeRefScriptCostPerByte,
  ppPoolVotingThresholds,
  ppPoolVotingThresholdsL,
  ppDRepVotingThresholdsL,
  ppCommitteeMinSizeL,
  ppCommitteeMaxTermLengthL,
  ppGovActionLifetimeL,
  ppGovActionDepositL,
  ppDRepDepositL,
  ppDRepActivityL,
  ppMinFeeRefScriptCostPerByteL,
  ppuPoolVotingThresholdsL,
  ppuDRepVotingThresholdsL,
  ppuCommitteeMinSizeL,
  ppuCommitteeMaxTermLengthL,
  ppuGovActionLifetimeL,
  ppuGovActionDepositL,
  ppuDRepDepositL,
  ppuDRepActivityL,
  ppuMinFeeRefScriptCostPerByteL,
  PoolVotingThresholds (..),
  pvtCommitteeNoConfidenceL,
  pvtCommitteeNormalL,
  pvtPPSecurityGroupL,
  DRepVotingThresholds (..),
  dvtCommitteeNoConfidenceL,
  dvtCommitteeNormalL,
  dvtHardForkInitiationL,
  dvtMotionNoConfidenceL,
  dvtPPNetworkGroupL,
  dvtPPGovGroupL,
  dvtPPTechnicalGroupL,
  dvtPPEconomicGroupL,
  dvtTreasuryWithdrawalL,
  dvtUpdateToConstitutionL,
  ConwayPParams (..),
  getLanguageView,
  LangDepView (..),
  encodeLangViews,
  upgradeConwayPParams,
  UpgradeConwayPParams (..),
  toUpgradeConwayPParamsUpdatePairs,
  THKD (..),
  DRepGroup (..),
  PPGroups (..),
  StakePoolGroup (..),
  conwayModifiedPPGroups,
  pvtHardForkInitiationL,
  pvtMotionNoConfidenceL,
) where

import Cardano.Ledger.Alonzo.PParams
import Cardano.Ledger.Alonzo.Scripts (
  CostModels,
  ExUnits (..),
  Prices (Prices),
  emptyCostModels,
  updateCostModels,
 )
import Cardano.Ledger.Babbage (BabbageEra)
import Cardano.Ledger.Babbage.Core
import Cardano.Ledger.Babbage.PParams
import Cardano.Ledger.BaseTypes (
  EpochInterval (..),
  NonNegativeInterval,
  ProtVer (ProtVer),
  UnitInterval,
  integralToBounded,
  strictMaybeToMaybe,
 )
import Cardano.Ledger.Binary (
  DecCBOR (..),
  EncCBOR (..),
  encodeListLen,
 )
import Cardano.Ledger.Binary.Coders
import Cardano.Ledger.Coin (Coin (Coin))
import Cardano.Ledger.Conway.Era (ConwayEra)
import Cardano.Ledger.Core (EraPParams (..))
import Cardano.Ledger.HKD (
  HKDApplicative (hkdLiftA2),
  HKDFunctor (..),
  HKDNoUpdate,
  NoUpdate (..),
 )
import Cardano.Ledger.Plutus.CostModels (
  CostModel,
  decodeCostModel,
  encodeCostModel,
  mkCostModel,
  mkCostModels,
 )
import Cardano.Ledger.Plutus.Language (Language (PlutusV3))
import Cardano.Ledger.Plutus.ToPlutusData (ToPlutusData (..))
import Cardano.Ledger.Shelley.HardForks (bootstrapPhase)
import Cardano.Ledger.Shelley.PParams
import Cardano.Ledger.Val (Val (..))
import Control.DeepSeq (NFData (..), rwhnf)
import Data.Aeson hiding (Encoding, Value, decode, encode)
import qualified Data.Aeson as Aeson
import Data.Default (Default (def))
import Data.Foldable (foldlM)
import Data.Functor.Identity (Identity)
import qualified Data.IntMap as IntMap
import qualified Data.Map.Strict as Map
import Data.Maybe (mapMaybe)
import Data.Maybe.Strict (StrictMaybe (..))
import Data.Proxy
import Data.Set (Set)
import qualified Data.Set as Set
import Data.Typeable
import Data.Word (Word16, Word32)
import GHC.Generics (Generic)
import GHC.Stack (HasCallStack)
import Lens.Micro
import NoThunks.Class (NoThunks (..))
import Numeric.Natural (Natural)
import qualified PlutusLedgerApi.Common as P (Data (..))

class BabbageEraPParams era => ConwayEraPParams era where
  modifiedPPGroups :: PParamsUpdate era -> Set PPGroups
  ppuWellFormed :: ProtVer -> PParamsUpdate era -> Bool

  hkdPoolVotingThresholdsL :: HKDFunctor f => Lens' (PParamsHKD f era) (HKD f PoolVotingThresholds)
  hkdDRepVotingThresholdsL :: HKDFunctor f => Lens' (PParamsHKD f era) (HKD f DRepVotingThresholds)
  hkdCommitteeMinSizeL :: HKDFunctor f => Lens' (PParamsHKD f era) (HKD f Natural)
  hkdCommitteeMaxTermLengthL :: HKDFunctor f => Lens' (PParamsHKD f era) (HKD f EpochInterval)
  hkdGovActionLifetimeL :: HKDFunctor f => Lens' (PParamsHKD f era) (HKD f EpochInterval)
  hkdGovActionDepositL :: HKDFunctor f => Lens' (PParamsHKD f era) (HKD f Coin)
  hkdDRepDepositL :: HKDFunctor f => Lens' (PParamsHKD f era) (HKD f Coin)
  hkdDRepActivityL :: HKDFunctor f => Lens' (PParamsHKD f era) (HKD f EpochInterval)
  hkdMinFeeRefScriptCostPerByteL ::
    HKDFunctor f => Lens' (PParamsHKD f era) (HKD f NonNegativeInterval)

instance ConwayEraPParams era => ToPlutusData (PParamsUpdate era) where
  toPlutusData :: PParamsUpdate era -> Data
toPlutusData PParamsUpdate era
ppu = [(Data, Data)] -> Data
P.Map ([(Data, Data)] -> Data) -> [(Data, Data)] -> Data
forall a b. (a -> b) -> a -> b
$ (PParam era -> Maybe (Data, Data))
-> [PParam era] -> [(Data, Data)]
forall a b. (a -> Maybe b) -> [a] -> [b]
mapMaybe PParam era -> Maybe (Data, Data)
ppToData (forall era. EraPParams era => [PParam era]
eraPParams @era)
    where
      ppToData :: PParam era -> Maybe (Data, Data)
ppToData PParam {Maybe (PParamUpdate era t)
ppUpdate :: Maybe (PParamUpdate era t)
ppUpdate :: ()
ppUpdate} = do
        PParamUpdate {Word
ppuTag :: Word
ppuTag :: forall era t. PParamUpdate era t -> Word
ppuTag, Lens' (PParamsUpdate era) (StrictMaybe t)
ppuLens :: Lens' (PParamsUpdate era) (StrictMaybe t)
ppuLens :: forall era t.
PParamUpdate era t -> Lens' (PParamsUpdate era) (StrictMaybe t)
ppuLens} <- Maybe (PParamUpdate era t)
ppUpdate
        t
t <- StrictMaybe t -> Maybe t
forall a. StrictMaybe a -> Maybe a
strictMaybeToMaybe (StrictMaybe t -> Maybe t) -> StrictMaybe t -> Maybe t
forall a b. (a -> b) -> a -> b
$ PParamsUpdate era
ppu PParamsUpdate era
-> Getting (StrictMaybe t) (PParamsUpdate era) (StrictMaybe t)
-> StrictMaybe t
forall s a. s -> Getting a s a -> a
^. Getting (StrictMaybe t) (PParamsUpdate era) (StrictMaybe t)
Lens' (PParamsUpdate era) (StrictMaybe t)
ppuLens
        (Data, Data) -> Maybe (Data, Data)
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (Integer -> Data
P.I (forall a. Integral a => a -> Integer
toInteger @Word Word
ppuTag), t -> Data
forall x. ToPlutusData x => x -> Data
toPlutusData t
t)

  fromPlutusData :: Data -> Maybe (PParamsUpdate era)
fromPlutusData (P.Map [(Data, Data)]
dataPairs) = (PParamsUpdate era -> (Data, Data) -> Maybe (PParamsUpdate era))
-> PParamsUpdate era -> [(Data, Data)] -> Maybe (PParamsUpdate era)
forall (t :: * -> *) (m :: * -> *) b a.
(Foldable t, Monad m) =>
(b -> a -> m b) -> b -> t a -> m b
foldlM PParamsUpdate era -> (Data, Data) -> Maybe (PParamsUpdate era)
accum PParamsUpdate era
forall era. EraPParams era => PParamsUpdate era
emptyPParamsUpdate [(Data, Data)]
dataPairs
    where
      accum :: PParamsUpdate era -> (Data, Data) -> Maybe (PParamsUpdate era)
accum PParamsUpdate era
acc (Data
dataKey, Data
dataVal) = do
        Word
tag <- forall x. ToPlutusData x => Data -> Maybe x
fromPlutusData @Word Data
dataKey
        PParam {Maybe (PParamUpdate era t)
ppUpdate :: ()
ppUpdate :: Maybe (PParamUpdate era t)
ppUpdate} <-
          Key -> IntMap (PParam era) -> Maybe (PParam era)
forall a. Key -> IntMap a -> Maybe a
IntMap.lookup (Word -> Key
forall a b. (Integral a, Num b) => a -> b
fromIntegral Word
tag) IntMap (PParam era)
ppMap
        PParamUpdate {Lens' (PParamsUpdate era) (StrictMaybe t)
ppuLens :: forall era t.
PParamUpdate era t -> Lens' (PParamsUpdate era) (StrictMaybe t)
ppuLens :: Lens' (PParamsUpdate era) (StrictMaybe t)
ppuLens} <- Maybe (PParamUpdate era t)
ppUpdate
        t
plutusData <- Data -> Maybe t
forall x. ToPlutusData x => Data -> Maybe x
fromPlutusData Data
dataVal
        PParamsUpdate era -> Maybe (PParamsUpdate era)
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (PParamsUpdate era -> Maybe (PParamsUpdate era))
-> PParamsUpdate era -> Maybe (PParamsUpdate era)
forall a b. (a -> b) -> a -> b
$ ASetter
  (PParamsUpdate era)
  (PParamsUpdate era)
  (StrictMaybe t)
  (StrictMaybe t)
-> StrictMaybe t -> PParamsUpdate era -> PParamsUpdate era
forall s t a b. ASetter s t a b -> b -> s -> t
set ASetter
  (PParamsUpdate era)
  (PParamsUpdate era)
  (StrictMaybe t)
  (StrictMaybe t)
Lens' (PParamsUpdate era) (StrictMaybe t)
ppuLens (t -> StrictMaybe t
forall a. a -> StrictMaybe a
SJust t
plutusData) PParamsUpdate era
acc
      ppMap :: IntMap (PParam era)
ppMap =
        [(Key, PParam era)] -> IntMap (PParam era)
forall a. [(Key, a)] -> IntMap a
IntMap.fromList
          [ (Word -> Key
forall a b. (Integral a, Num b) => a -> b
fromIntegral Word
ppuTag, PParam era
pp)
          | pp :: PParam era
pp@PParam {ppUpdate :: ()
ppUpdate = Just PParamUpdate {Word
ppuTag :: forall era t. PParamUpdate era t -> Word
ppuTag :: Word
ppuTag}} <- forall era. EraPParams era => [PParam era]
eraPParams @era
          ]
  fromPlutusData Data
_ = Maybe (PParamsUpdate era)
forall a. Maybe a
Nothing

ppPoolVotingThresholdsL ::
  forall era. ConwayEraPParams era => Lens' (PParams era) PoolVotingThresholds
ppPoolVotingThresholdsL :: forall era.
ConwayEraPParams era =>
Lens' (PParams era) PoolVotingThresholds
ppPoolVotingThresholdsL = (PParamsHKD Identity era -> f (PParamsHKD Identity era))
-> PParams era -> f (PParams era)
forall era (f :: * -> *).
Functor f =>
(PParamsHKD Identity era -> f (PParamsHKD Identity era))
-> PParams era -> f (PParams era)
ppLensHKD ((PParamsHKD Identity era -> f (PParamsHKD Identity era))
 -> PParams era -> f (PParams era))
-> ((PoolVotingThresholds -> f PoolVotingThresholds)
    -> PParamsHKD Identity era -> f (PParamsHKD Identity era))
-> (PoolVotingThresholds -> f PoolVotingThresholds)
-> PParams era
-> f (PParams era)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall era (f :: * -> *).
(ConwayEraPParams era, HKDFunctor f) =>
Lens' (PParamsHKD f era) (HKD f PoolVotingThresholds)
hkdPoolVotingThresholdsL @era @Identity

ppDRepVotingThresholdsL ::
  forall era. ConwayEraPParams era => Lens' (PParams era) DRepVotingThresholds
ppDRepVotingThresholdsL :: forall era.
ConwayEraPParams era =>
Lens' (PParams era) DRepVotingThresholds
ppDRepVotingThresholdsL = (PParamsHKD Identity era -> f (PParamsHKD Identity era))
-> PParams era -> f (PParams era)
forall era (f :: * -> *).
Functor f =>
(PParamsHKD Identity era -> f (PParamsHKD Identity era))
-> PParams era -> f (PParams era)
ppLensHKD ((PParamsHKD Identity era -> f (PParamsHKD Identity era))
 -> PParams era -> f (PParams era))
-> ((DRepVotingThresholds -> f DRepVotingThresholds)
    -> PParamsHKD Identity era -> f (PParamsHKD Identity era))
-> (DRepVotingThresholds -> f DRepVotingThresholds)
-> PParams era
-> f (PParams era)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall era (f :: * -> *).
(ConwayEraPParams era, HKDFunctor f) =>
Lens' (PParamsHKD f era) (HKD f DRepVotingThresholds)
hkdDRepVotingThresholdsL @era @Identity

ppCommitteeMinSizeL :: forall era. ConwayEraPParams era => Lens' (PParams era) Natural
ppCommitteeMinSizeL :: forall era. ConwayEraPParams era => Lens' (PParams era) Natural
ppCommitteeMinSizeL = (PParamsHKD Identity era -> f (PParamsHKD Identity era))
-> PParams era -> f (PParams era)
forall era (f :: * -> *).
Functor f =>
(PParamsHKD Identity era -> f (PParamsHKD Identity era))
-> PParams era -> f (PParams era)
ppLensHKD ((PParamsHKD Identity era -> f (PParamsHKD Identity era))
 -> PParams era -> f (PParams era))
-> ((Natural -> f Natural)
    -> PParamsHKD Identity era -> f (PParamsHKD Identity era))
-> (Natural -> f Natural)
-> PParams era
-> f (PParams era)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall era (f :: * -> *).
(ConwayEraPParams era, HKDFunctor f) =>
Lens' (PParamsHKD f era) (HKD f Natural)
hkdCommitteeMinSizeL @era @Identity

ppCommitteeMaxTermLengthL :: forall era. ConwayEraPParams era => Lens' (PParams era) EpochInterval
ppCommitteeMaxTermLengthL :: forall era.
ConwayEraPParams era =>
Lens' (PParams era) EpochInterval
ppCommitteeMaxTermLengthL = (PParamsHKD Identity era -> f (PParamsHKD Identity era))
-> PParams era -> f (PParams era)
forall era (f :: * -> *).
Functor f =>
(PParamsHKD Identity era -> f (PParamsHKD Identity era))
-> PParams era -> f (PParams era)
ppLensHKD ((PParamsHKD Identity era -> f (PParamsHKD Identity era))
 -> PParams era -> f (PParams era))
-> ((EpochInterval -> f EpochInterval)
    -> PParamsHKD Identity era -> f (PParamsHKD Identity era))
-> (EpochInterval -> f EpochInterval)
-> PParams era
-> f (PParams era)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall era (f :: * -> *).
(ConwayEraPParams era, HKDFunctor f) =>
Lens' (PParamsHKD f era) (HKD f EpochInterval)
hkdCommitteeMaxTermLengthL @era @Identity

ppGovActionLifetimeL :: forall era. ConwayEraPParams era => Lens' (PParams era) EpochInterval
ppGovActionLifetimeL :: forall era.
ConwayEraPParams era =>
Lens' (PParams era) EpochInterval
ppGovActionLifetimeL = (PParamsHKD Identity era -> f (PParamsHKD Identity era))
-> PParams era -> f (PParams era)
forall era (f :: * -> *).
Functor f =>
(PParamsHKD Identity era -> f (PParamsHKD Identity era))
-> PParams era -> f (PParams era)
ppLensHKD ((PParamsHKD Identity era -> f (PParamsHKD Identity era))
 -> PParams era -> f (PParams era))
-> ((EpochInterval -> f EpochInterval)
    -> PParamsHKD Identity era -> f (PParamsHKD Identity era))
-> (EpochInterval -> f EpochInterval)
-> PParams era
-> f (PParams era)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall era (f :: * -> *).
(ConwayEraPParams era, HKDFunctor f) =>
Lens' (PParamsHKD f era) (HKD f EpochInterval)
hkdGovActionLifetimeL @era @Identity

ppGovActionDepositL :: forall era. ConwayEraPParams era => Lens' (PParams era) Coin
ppGovActionDepositL :: forall era. ConwayEraPParams era => Lens' (PParams era) Coin
ppGovActionDepositL = (PParamsHKD Identity era -> f (PParamsHKD Identity era))
-> PParams era -> f (PParams era)
forall era (f :: * -> *).
Functor f =>
(PParamsHKD Identity era -> f (PParamsHKD Identity era))
-> PParams era -> f (PParams era)
ppLensHKD ((PParamsHKD Identity era -> f (PParamsHKD Identity era))
 -> PParams era -> f (PParams era))
-> ((Coin -> f Coin)
    -> PParamsHKD Identity era -> f (PParamsHKD Identity era))
-> (Coin -> f Coin)
-> PParams era
-> f (PParams era)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall era (f :: * -> *).
(ConwayEraPParams era, HKDFunctor f) =>
Lens' (PParamsHKD f era) (HKD f Coin)
hkdGovActionDepositL @era @Identity

ppDRepDepositL :: forall era. ConwayEraPParams era => Lens' (PParams era) Coin
ppDRepDepositL :: forall era. ConwayEraPParams era => Lens' (PParams era) Coin
ppDRepDepositL = (PParamsHKD Identity era -> f (PParamsHKD Identity era))
-> PParams era -> f (PParams era)
forall era (f :: * -> *).
Functor f =>
(PParamsHKD Identity era -> f (PParamsHKD Identity era))
-> PParams era -> f (PParams era)
ppLensHKD ((PParamsHKD Identity era -> f (PParamsHKD Identity era))
 -> PParams era -> f (PParams era))
-> ((Coin -> f Coin)
    -> PParamsHKD Identity era -> f (PParamsHKD Identity era))
-> (Coin -> f Coin)
-> PParams era
-> f (PParams era)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall era (f :: * -> *).
(ConwayEraPParams era, HKDFunctor f) =>
Lens' (PParamsHKD f era) (HKD f Coin)
hkdDRepDepositL @era @Identity

ppDRepActivityL :: forall era. ConwayEraPParams era => Lens' (PParams era) EpochInterval
ppDRepActivityL :: forall era.
ConwayEraPParams era =>
Lens' (PParams era) EpochInterval
ppDRepActivityL = (PParamsHKD Identity era -> f (PParamsHKD Identity era))
-> PParams era -> f (PParams era)
forall era (f :: * -> *).
Functor f =>
(PParamsHKD Identity era -> f (PParamsHKD Identity era))
-> PParams era -> f (PParams era)
ppLensHKD ((PParamsHKD Identity era -> f (PParamsHKD Identity era))
 -> PParams era -> f (PParams era))
-> ((EpochInterval -> f EpochInterval)
    -> PParamsHKD Identity era -> f (PParamsHKD Identity era))
-> (EpochInterval -> f EpochInterval)
-> PParams era
-> f (PParams era)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall era (f :: * -> *).
(ConwayEraPParams era, HKDFunctor f) =>
Lens' (PParamsHKD f era) (HKD f EpochInterval)
hkdDRepActivityL @era @Identity

ppMinFeeRefScriptCostPerByteL ::
  forall era. ConwayEraPParams era => Lens' (PParams era) NonNegativeInterval
ppMinFeeRefScriptCostPerByteL :: forall era.
ConwayEraPParams era =>
Lens' (PParams era) NonNegativeInterval
ppMinFeeRefScriptCostPerByteL = (PParamsHKD Identity era -> f (PParamsHKD Identity era))
-> PParams era -> f (PParams era)
forall era (f :: * -> *).
Functor f =>
(PParamsHKD Identity era -> f (PParamsHKD Identity era))
-> PParams era -> f (PParams era)
ppLensHKD ((PParamsHKD Identity era -> f (PParamsHKD Identity era))
 -> PParams era -> f (PParams era))
-> ((NonNegativeInterval -> f NonNegativeInterval)
    -> PParamsHKD Identity era -> f (PParamsHKD Identity era))
-> (NonNegativeInterval -> f NonNegativeInterval)
-> PParams era
-> f (PParams era)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall era (f :: * -> *).
(ConwayEraPParams era, HKDFunctor f) =>
Lens' (PParamsHKD f era) (HKD f NonNegativeInterval)
hkdMinFeeRefScriptCostPerByteL @era @Identity

ppuPoolVotingThresholdsL ::
  forall era. ConwayEraPParams era => Lens' (PParamsUpdate era) (StrictMaybe PoolVotingThresholds)
ppuPoolVotingThresholdsL :: forall era.
ConwayEraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe PoolVotingThresholds)
ppuPoolVotingThresholdsL = (PParamsHKD StrictMaybe era -> f (PParamsHKD StrictMaybe era))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era (f :: * -> *).
Functor f =>
(PParamsHKD StrictMaybe era -> f (PParamsHKD StrictMaybe era))
-> PParamsUpdate era -> f (PParamsUpdate era)
ppuLensHKD ((PParamsHKD StrictMaybe era -> f (PParamsHKD StrictMaybe era))
 -> PParamsUpdate era -> f (PParamsUpdate era))
-> ((StrictMaybe PoolVotingThresholds
     -> f (StrictMaybe PoolVotingThresholds))
    -> PParamsHKD StrictMaybe era -> f (PParamsHKD StrictMaybe era))
-> (StrictMaybe PoolVotingThresholds
    -> f (StrictMaybe PoolVotingThresholds))
-> PParamsUpdate era
-> f (PParamsUpdate era)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall era (f :: * -> *).
(ConwayEraPParams era, HKDFunctor f) =>
Lens' (PParamsHKD f era) (HKD f PoolVotingThresholds)
hkdPoolVotingThresholdsL @era @StrictMaybe

ppuDRepVotingThresholdsL ::
  forall era. ConwayEraPParams era => Lens' (PParamsUpdate era) (StrictMaybe DRepVotingThresholds)
ppuDRepVotingThresholdsL :: forall era.
ConwayEraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe DRepVotingThresholds)
ppuDRepVotingThresholdsL = (PParamsHKD StrictMaybe era -> f (PParamsHKD StrictMaybe era))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era (f :: * -> *).
Functor f =>
(PParamsHKD StrictMaybe era -> f (PParamsHKD StrictMaybe era))
-> PParamsUpdate era -> f (PParamsUpdate era)
ppuLensHKD ((PParamsHKD StrictMaybe era -> f (PParamsHKD StrictMaybe era))
 -> PParamsUpdate era -> f (PParamsUpdate era))
-> ((StrictMaybe DRepVotingThresholds
     -> f (StrictMaybe DRepVotingThresholds))
    -> PParamsHKD StrictMaybe era -> f (PParamsHKD StrictMaybe era))
-> (StrictMaybe DRepVotingThresholds
    -> f (StrictMaybe DRepVotingThresholds))
-> PParamsUpdate era
-> f (PParamsUpdate era)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall era (f :: * -> *).
(ConwayEraPParams era, HKDFunctor f) =>
Lens' (PParamsHKD f era) (HKD f DRepVotingThresholds)
hkdDRepVotingThresholdsL @era @StrictMaybe

ppuCommitteeMinSizeL ::
  forall era. ConwayEraPParams era => Lens' (PParamsUpdate era) (StrictMaybe Natural)
ppuCommitteeMinSizeL :: forall era.
ConwayEraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe Natural)
ppuCommitteeMinSizeL = (PParamsHKD StrictMaybe era -> f (PParamsHKD StrictMaybe era))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era (f :: * -> *).
Functor f =>
(PParamsHKD StrictMaybe era -> f (PParamsHKD StrictMaybe era))
-> PParamsUpdate era -> f (PParamsUpdate era)
ppuLensHKD ((PParamsHKD StrictMaybe era -> f (PParamsHKD StrictMaybe era))
 -> PParamsUpdate era -> f (PParamsUpdate era))
-> ((StrictMaybe Natural -> f (StrictMaybe Natural))
    -> PParamsHKD StrictMaybe era -> f (PParamsHKD StrictMaybe era))
-> (StrictMaybe Natural -> f (StrictMaybe Natural))
-> PParamsUpdate era
-> f (PParamsUpdate era)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall era (f :: * -> *).
(ConwayEraPParams era, HKDFunctor f) =>
Lens' (PParamsHKD f era) (HKD f Natural)
hkdCommitteeMinSizeL @era @StrictMaybe

ppuCommitteeMaxTermLengthL ::
  forall era. ConwayEraPParams era => Lens' (PParamsUpdate era) (StrictMaybe EpochInterval)
ppuCommitteeMaxTermLengthL :: forall era.
ConwayEraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe EpochInterval)
ppuCommitteeMaxTermLengthL = (PParamsHKD StrictMaybe era -> f (PParamsHKD StrictMaybe era))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era (f :: * -> *).
Functor f =>
(PParamsHKD StrictMaybe era -> f (PParamsHKD StrictMaybe era))
-> PParamsUpdate era -> f (PParamsUpdate era)
ppuLensHKD ((PParamsHKD StrictMaybe era -> f (PParamsHKD StrictMaybe era))
 -> PParamsUpdate era -> f (PParamsUpdate era))
-> ((StrictMaybe EpochInterval -> f (StrictMaybe EpochInterval))
    -> PParamsHKD StrictMaybe era -> f (PParamsHKD StrictMaybe era))
-> (StrictMaybe EpochInterval -> f (StrictMaybe EpochInterval))
-> PParamsUpdate era
-> f (PParamsUpdate era)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall era (f :: * -> *).
(ConwayEraPParams era, HKDFunctor f) =>
Lens' (PParamsHKD f era) (HKD f EpochInterval)
hkdCommitteeMaxTermLengthL @era @StrictMaybe

ppuGovActionLifetimeL ::
  forall era. ConwayEraPParams era => Lens' (PParamsUpdate era) (StrictMaybe EpochInterval)
ppuGovActionLifetimeL :: forall era.
ConwayEraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe EpochInterval)
ppuGovActionLifetimeL = (PParamsHKD StrictMaybe era -> f (PParamsHKD StrictMaybe era))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era (f :: * -> *).
Functor f =>
(PParamsHKD StrictMaybe era -> f (PParamsHKD StrictMaybe era))
-> PParamsUpdate era -> f (PParamsUpdate era)
ppuLensHKD ((PParamsHKD StrictMaybe era -> f (PParamsHKD StrictMaybe era))
 -> PParamsUpdate era -> f (PParamsUpdate era))
-> ((StrictMaybe EpochInterval -> f (StrictMaybe EpochInterval))
    -> PParamsHKD StrictMaybe era -> f (PParamsHKD StrictMaybe era))
-> (StrictMaybe EpochInterval -> f (StrictMaybe EpochInterval))
-> PParamsUpdate era
-> f (PParamsUpdate era)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall era (f :: * -> *).
(ConwayEraPParams era, HKDFunctor f) =>
Lens' (PParamsHKD f era) (HKD f EpochInterval)
hkdGovActionLifetimeL @era @StrictMaybe

ppuGovActionDepositL ::
  forall era. ConwayEraPParams era => Lens' (PParamsUpdate era) (StrictMaybe Coin)
ppuGovActionDepositL :: forall era.
ConwayEraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe Coin)
ppuGovActionDepositL = (PParamsHKD StrictMaybe era -> f (PParamsHKD StrictMaybe era))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era (f :: * -> *).
Functor f =>
(PParamsHKD StrictMaybe era -> f (PParamsHKD StrictMaybe era))
-> PParamsUpdate era -> f (PParamsUpdate era)
ppuLensHKD ((PParamsHKD StrictMaybe era -> f (PParamsHKD StrictMaybe era))
 -> PParamsUpdate era -> f (PParamsUpdate era))
-> ((StrictMaybe Coin -> f (StrictMaybe Coin))
    -> PParamsHKD StrictMaybe era -> f (PParamsHKD StrictMaybe era))
-> (StrictMaybe Coin -> f (StrictMaybe Coin))
-> PParamsUpdate era
-> f (PParamsUpdate era)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall era (f :: * -> *).
(ConwayEraPParams era, HKDFunctor f) =>
Lens' (PParamsHKD f era) (HKD f Coin)
hkdGovActionDepositL @era @StrictMaybe

ppuDRepDepositL ::
  forall era. ConwayEraPParams era => Lens' (PParamsUpdate era) (StrictMaybe Coin)
ppuDRepDepositL :: forall era.
ConwayEraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe Coin)
ppuDRepDepositL = (PParamsHKD StrictMaybe era -> f (PParamsHKD StrictMaybe era))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era (f :: * -> *).
Functor f =>
(PParamsHKD StrictMaybe era -> f (PParamsHKD StrictMaybe era))
-> PParamsUpdate era -> f (PParamsUpdate era)
ppuLensHKD ((PParamsHKD StrictMaybe era -> f (PParamsHKD StrictMaybe era))
 -> PParamsUpdate era -> f (PParamsUpdate era))
-> ((StrictMaybe Coin -> f (StrictMaybe Coin))
    -> PParamsHKD StrictMaybe era -> f (PParamsHKD StrictMaybe era))
-> (StrictMaybe Coin -> f (StrictMaybe Coin))
-> PParamsUpdate era
-> f (PParamsUpdate era)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall era (f :: * -> *).
(ConwayEraPParams era, HKDFunctor f) =>
Lens' (PParamsHKD f era) (HKD f Coin)
hkdDRepDepositL @era @StrictMaybe

ppuDRepActivityL ::
  forall era. ConwayEraPParams era => Lens' (PParamsUpdate era) (StrictMaybe EpochInterval)
ppuDRepActivityL :: forall era.
ConwayEraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe EpochInterval)
ppuDRepActivityL = (PParamsHKD StrictMaybe era -> f (PParamsHKD StrictMaybe era))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era (f :: * -> *).
Functor f =>
(PParamsHKD StrictMaybe era -> f (PParamsHKD StrictMaybe era))
-> PParamsUpdate era -> f (PParamsUpdate era)
ppuLensHKD ((PParamsHKD StrictMaybe era -> f (PParamsHKD StrictMaybe era))
 -> PParamsUpdate era -> f (PParamsUpdate era))
-> ((StrictMaybe EpochInterval -> f (StrictMaybe EpochInterval))
    -> PParamsHKD StrictMaybe era -> f (PParamsHKD StrictMaybe era))
-> (StrictMaybe EpochInterval -> f (StrictMaybe EpochInterval))
-> PParamsUpdate era
-> f (PParamsUpdate era)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall era (f :: * -> *).
(ConwayEraPParams era, HKDFunctor f) =>
Lens' (PParamsHKD f era) (HKD f EpochInterval)
hkdDRepActivityL @era @StrictMaybe

ppuMinFeeRefScriptCostPerByteL ::
  forall era. ConwayEraPParams era => Lens' (PParamsUpdate era) (StrictMaybe NonNegativeInterval)
ppuMinFeeRefScriptCostPerByteL :: forall era.
ConwayEraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe NonNegativeInterval)
ppuMinFeeRefScriptCostPerByteL = (PParamsHKD StrictMaybe era -> f (PParamsHKD StrictMaybe era))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era (f :: * -> *).
Functor f =>
(PParamsHKD StrictMaybe era -> f (PParamsHKD StrictMaybe era))
-> PParamsUpdate era -> f (PParamsUpdate era)
ppuLensHKD ((PParamsHKD StrictMaybe era -> f (PParamsHKD StrictMaybe era))
 -> PParamsUpdate era -> f (PParamsUpdate era))
-> ((StrictMaybe NonNegativeInterval
     -> f (StrictMaybe NonNegativeInterval))
    -> PParamsHKD StrictMaybe era -> f (PParamsHKD StrictMaybe era))
-> (StrictMaybe NonNegativeInterval
    -> f (StrictMaybe NonNegativeInterval))
-> PParamsUpdate era
-> f (PParamsUpdate era)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall era (f :: * -> *).
(ConwayEraPParams era, HKDFunctor f) =>
Lens' (PParamsHKD f era) (HKD f NonNegativeInterval)
hkdMinFeeRefScriptCostPerByteL @era @StrictMaybe

data PoolVotingThresholds = PoolVotingThresholds
  { PoolVotingThresholds -> UnitInterval
pvtMotionNoConfidence :: !UnitInterval
  , PoolVotingThresholds -> UnitInterval
pvtCommitteeNormal :: !UnitInterval
  , PoolVotingThresholds -> UnitInterval
pvtCommitteeNoConfidence :: !UnitInterval
  , PoolVotingThresholds -> UnitInterval
pvtHardForkInitiation :: !UnitInterval
  , PoolVotingThresholds -> UnitInterval
pvtPPSecurityGroup :: !UnitInterval
  }
  deriving (PoolVotingThresholds -> PoolVotingThresholds -> Bool
(PoolVotingThresholds -> PoolVotingThresholds -> Bool)
-> (PoolVotingThresholds -> PoolVotingThresholds -> Bool)
-> Eq PoolVotingThresholds
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: PoolVotingThresholds -> PoolVotingThresholds -> Bool
== :: PoolVotingThresholds -> PoolVotingThresholds -> Bool
$c/= :: PoolVotingThresholds -> PoolVotingThresholds -> Bool
/= :: PoolVotingThresholds -> PoolVotingThresholds -> Bool
Eq, Eq PoolVotingThresholds
Eq PoolVotingThresholds =>
(PoolVotingThresholds -> PoolVotingThresholds -> Ordering)
-> (PoolVotingThresholds -> PoolVotingThresholds -> Bool)
-> (PoolVotingThresholds -> PoolVotingThresholds -> Bool)
-> (PoolVotingThresholds -> PoolVotingThresholds -> Bool)
-> (PoolVotingThresholds -> PoolVotingThresholds -> Bool)
-> (PoolVotingThresholds
    -> PoolVotingThresholds -> PoolVotingThresholds)
-> (PoolVotingThresholds
    -> PoolVotingThresholds -> PoolVotingThresholds)
-> Ord PoolVotingThresholds
PoolVotingThresholds -> PoolVotingThresholds -> Bool
PoolVotingThresholds -> PoolVotingThresholds -> Ordering
PoolVotingThresholds
-> PoolVotingThresholds -> PoolVotingThresholds
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: PoolVotingThresholds -> PoolVotingThresholds -> Ordering
compare :: PoolVotingThresholds -> PoolVotingThresholds -> Ordering
$c< :: PoolVotingThresholds -> PoolVotingThresholds -> Bool
< :: PoolVotingThresholds -> PoolVotingThresholds -> Bool
$c<= :: PoolVotingThresholds -> PoolVotingThresholds -> Bool
<= :: PoolVotingThresholds -> PoolVotingThresholds -> Bool
$c> :: PoolVotingThresholds -> PoolVotingThresholds -> Bool
> :: PoolVotingThresholds -> PoolVotingThresholds -> Bool
$c>= :: PoolVotingThresholds -> PoolVotingThresholds -> Bool
>= :: PoolVotingThresholds -> PoolVotingThresholds -> Bool
$cmax :: PoolVotingThresholds
-> PoolVotingThresholds -> PoolVotingThresholds
max :: PoolVotingThresholds
-> PoolVotingThresholds -> PoolVotingThresholds
$cmin :: PoolVotingThresholds
-> PoolVotingThresholds -> PoolVotingThresholds
min :: PoolVotingThresholds
-> PoolVotingThresholds -> PoolVotingThresholds
Ord, Key -> PoolVotingThresholds -> ShowS
[PoolVotingThresholds] -> ShowS
PoolVotingThresholds -> String
(Key -> PoolVotingThresholds -> ShowS)
-> (PoolVotingThresholds -> String)
-> ([PoolVotingThresholds] -> ShowS)
-> Show PoolVotingThresholds
forall a.
(Key -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Key -> PoolVotingThresholds -> ShowS
showsPrec :: Key -> PoolVotingThresholds -> ShowS
$cshow :: PoolVotingThresholds -> String
show :: PoolVotingThresholds -> String
$cshowList :: [PoolVotingThresholds] -> ShowS
showList :: [PoolVotingThresholds] -> ShowS
Show, (forall x. PoolVotingThresholds -> Rep PoolVotingThresholds x)
-> (forall x. Rep PoolVotingThresholds x -> PoolVotingThresholds)
-> Generic PoolVotingThresholds
forall x. Rep PoolVotingThresholds x -> PoolVotingThresholds
forall x. PoolVotingThresholds -> Rep PoolVotingThresholds x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. PoolVotingThresholds -> Rep PoolVotingThresholds x
from :: forall x. PoolVotingThresholds -> Rep PoolVotingThresholds x
$cto :: forall x. Rep PoolVotingThresholds x -> PoolVotingThresholds
to :: forall x. Rep PoolVotingThresholds x -> PoolVotingThresholds
Generic)

pvtMotionNoConfidenceL :: Lens' PoolVotingThresholds UnitInterval
pvtMotionNoConfidenceL :: Lens' PoolVotingThresholds UnitInterval
pvtMotionNoConfidenceL = (PoolVotingThresholds -> UnitInterval)
-> (PoolVotingThresholds -> UnitInterval -> PoolVotingThresholds)
-> Lens' PoolVotingThresholds UnitInterval
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens PoolVotingThresholds -> UnitInterval
pvtMotionNoConfidence (\PoolVotingThresholds
x UnitInterval
y -> PoolVotingThresholds
x {pvtMotionNoConfidence = y})

pvtCommitteeNormalL :: Lens' PoolVotingThresholds UnitInterval
pvtCommitteeNormalL :: Lens' PoolVotingThresholds UnitInterval
pvtCommitteeNormalL = (PoolVotingThresholds -> UnitInterval)
-> (PoolVotingThresholds -> UnitInterval -> PoolVotingThresholds)
-> Lens' PoolVotingThresholds UnitInterval
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens PoolVotingThresholds -> UnitInterval
pvtCommitteeNormal (\PoolVotingThresholds
x UnitInterval
y -> PoolVotingThresholds
x {pvtCommitteeNormal = y})

pvtCommitteeNoConfidenceL :: Lens' PoolVotingThresholds UnitInterval
pvtCommitteeNoConfidenceL :: Lens' PoolVotingThresholds UnitInterval
pvtCommitteeNoConfidenceL = (PoolVotingThresholds -> UnitInterval)
-> (PoolVotingThresholds -> UnitInterval -> PoolVotingThresholds)
-> Lens' PoolVotingThresholds UnitInterval
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens PoolVotingThresholds -> UnitInterval
pvtCommitteeNoConfidence (\PoolVotingThresholds
x UnitInterval
y -> PoolVotingThresholds
x {pvtCommitteeNoConfidence = y})

pvtPPSecurityGroupL :: Lens' PoolVotingThresholds UnitInterval
pvtPPSecurityGroupL :: Lens' PoolVotingThresholds UnitInterval
pvtPPSecurityGroupL = (PoolVotingThresholds -> UnitInterval)
-> (PoolVotingThresholds -> UnitInterval -> PoolVotingThresholds)
-> Lens' PoolVotingThresholds UnitInterval
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens PoolVotingThresholds -> UnitInterval
pvtPPSecurityGroup (\PoolVotingThresholds
x UnitInterval
y -> PoolVotingThresholds
x {pvtPPSecurityGroup = y})

pvtHardForkInitiationL :: Lens' PoolVotingThresholds UnitInterval
pvtHardForkInitiationL :: Lens' PoolVotingThresholds UnitInterval
pvtHardForkInitiationL = (PoolVotingThresholds -> UnitInterval)
-> (PoolVotingThresholds -> UnitInterval -> PoolVotingThresholds)
-> Lens' PoolVotingThresholds UnitInterval
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens PoolVotingThresholds -> UnitInterval
pvtHardForkInitiation (\PoolVotingThresholds
x UnitInterval
y -> PoolVotingThresholds
x {pvtHardForkInitiation = y})

instance NoThunks PoolVotingThresholds

instance NFData PoolVotingThresholds where
  rnf :: PoolVotingThresholds -> ()
rnf = PoolVotingThresholds -> ()
forall a. a -> ()
rwhnf

instance Default PoolVotingThresholds where
  def :: PoolVotingThresholds
def = UnitInterval
-> UnitInterval
-> UnitInterval
-> UnitInterval
-> UnitInterval
-> PoolVotingThresholds
PoolVotingThresholds UnitInterval
forall a. Default a => a
def UnitInterval
forall a. Default a => a
def UnitInterval
forall a. Default a => a
def UnitInterval
forall a. Default a => a
def UnitInterval
forall a. Default a => a
def

instance ToJSON PoolVotingThresholds where
  toJSON :: PoolVotingThresholds -> Value
toJSON pvt :: PoolVotingThresholds
pvt@(PoolVotingThresholds UnitInterval
_ UnitInterval
_ UnitInterval
_ UnitInterval
_ UnitInterval
_) =
    let PoolVotingThresholds {UnitInterval
pvtMotionNoConfidence :: PoolVotingThresholds -> UnitInterval
pvtCommitteeNormal :: PoolVotingThresholds -> UnitInterval
pvtCommitteeNoConfidence :: PoolVotingThresholds -> UnitInterval
pvtHardForkInitiation :: PoolVotingThresholds -> UnitInterval
pvtPPSecurityGroup :: PoolVotingThresholds -> UnitInterval
pvtMotionNoConfidence :: UnitInterval
pvtCommitteeNormal :: UnitInterval
pvtCommitteeNoConfidence :: UnitInterval
pvtHardForkInitiation :: UnitInterval
pvtPPSecurityGroup :: UnitInterval
..} = PoolVotingThresholds
pvt
     in [Pair] -> Value
object
          [ (Key
"motionNoConfidence", UnitInterval -> Value
forall a. ToJSON a => a -> Value
toJSON UnitInterval
pvtMotionNoConfidence)
          , (Key
"committeeNormal", UnitInterval -> Value
forall a. ToJSON a => a -> Value
toJSON UnitInterval
pvtCommitteeNormal)
          , (Key
"committeeNoConfidence", UnitInterval -> Value
forall a. ToJSON a => a -> Value
toJSON UnitInterval
pvtCommitteeNoConfidence)
          , (Key
"hardForkInitiation", UnitInterval -> Value
forall a. ToJSON a => a -> Value
toJSON UnitInterval
pvtHardForkInitiation)
          , (Key
"ppSecurityGroup", UnitInterval -> Value
forall a. ToJSON a => a -> Value
toJSON UnitInterval
pvtPPSecurityGroup)
          ]

instance FromJSON PoolVotingThresholds where
  parseJSON :: Value -> Parser PoolVotingThresholds
parseJSON =
    String
-> (Object -> Parser PoolVotingThresholds)
-> Value
-> Parser PoolVotingThresholds
forall a. String -> (Object -> Parser a) -> Value -> Parser a
withObject String
"PoolVotingThresholds" ((Object -> Parser PoolVotingThresholds)
 -> Value -> Parser PoolVotingThresholds)
-> (Object -> Parser PoolVotingThresholds)
-> Value
-> Parser PoolVotingThresholds
forall a b. (a -> b) -> a -> b
$ \Object
o ->
      UnitInterval
-> UnitInterval
-> UnitInterval
-> UnitInterval
-> UnitInterval
-> PoolVotingThresholds
PoolVotingThresholds
        (UnitInterval
 -> UnitInterval
 -> UnitInterval
 -> UnitInterval
 -> UnitInterval
 -> PoolVotingThresholds)
-> Parser UnitInterval
-> Parser
     (UnitInterval
      -> UnitInterval
      -> UnitInterval
      -> UnitInterval
      -> PoolVotingThresholds)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
o Object -> Key -> Parser UnitInterval
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"motionNoConfidence"
        Parser
  (UnitInterval
   -> UnitInterval
   -> UnitInterval
   -> UnitInterval
   -> PoolVotingThresholds)
-> Parser UnitInterval
-> Parser
     (UnitInterval
      -> UnitInterval -> UnitInterval -> PoolVotingThresholds)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser UnitInterval
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"committeeNormal"
        Parser
  (UnitInterval
   -> UnitInterval -> UnitInterval -> PoolVotingThresholds)
-> Parser UnitInterval
-> Parser (UnitInterval -> UnitInterval -> PoolVotingThresholds)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser UnitInterval
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"committeeNoConfidence"
        Parser (UnitInterval -> UnitInterval -> PoolVotingThresholds)
-> Parser UnitInterval
-> Parser (UnitInterval -> PoolVotingThresholds)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser UnitInterval
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"hardForkInitiation"
        Parser (UnitInterval -> PoolVotingThresholds)
-> Parser UnitInterval -> Parser PoolVotingThresholds
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser UnitInterval
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"ppSecurityGroup"

instance EncCBOR PoolVotingThresholds where
  encCBOR :: PoolVotingThresholds -> Encoding
encCBOR PoolVotingThresholds {UnitInterval
pvtMotionNoConfidence :: PoolVotingThresholds -> UnitInterval
pvtCommitteeNormal :: PoolVotingThresholds -> UnitInterval
pvtCommitteeNoConfidence :: PoolVotingThresholds -> UnitInterval
pvtHardForkInitiation :: PoolVotingThresholds -> UnitInterval
pvtPPSecurityGroup :: PoolVotingThresholds -> UnitInterval
pvtMotionNoConfidence :: UnitInterval
pvtCommitteeNormal :: UnitInterval
pvtCommitteeNoConfidence :: UnitInterval
pvtHardForkInitiation :: UnitInterval
pvtPPSecurityGroup :: UnitInterval
..} =
    Word -> Encoding
encodeListLen Word
5
      Encoding -> Encoding -> Encoding
forall a. Semigroup a => a -> a -> a
<> UnitInterval -> Encoding
forall a. EncCBOR a => a -> Encoding
encCBOR UnitInterval
pvtMotionNoConfidence
      Encoding -> Encoding -> Encoding
forall a. Semigroup a => a -> a -> a
<> UnitInterval -> Encoding
forall a. EncCBOR a => a -> Encoding
encCBOR UnitInterval
pvtCommitteeNormal
      Encoding -> Encoding -> Encoding
forall a. Semigroup a => a -> a -> a
<> UnitInterval -> Encoding
forall a. EncCBOR a => a -> Encoding
encCBOR UnitInterval
pvtCommitteeNoConfidence
      Encoding -> Encoding -> Encoding
forall a. Semigroup a => a -> a -> a
<> UnitInterval -> Encoding
forall a. EncCBOR a => a -> Encoding
encCBOR UnitInterval
pvtHardForkInitiation
      Encoding -> Encoding -> Encoding
forall a. Semigroup a => a -> a -> a
<> UnitInterval -> Encoding
forall a. EncCBOR a => a -> Encoding
encCBOR UnitInterval
pvtPPSecurityGroup

instance DecCBOR PoolVotingThresholds where
  decCBOR :: forall s. Decoder s PoolVotingThresholds
decCBOR =
    Text
-> (PoolVotingThresholds -> Key)
-> Decoder s PoolVotingThresholds
-> Decoder s PoolVotingThresholds
forall a s. Text -> (a -> Key) -> Decoder s a -> Decoder s a
decodeRecordNamed Text
"PoolVotingThresholds" (Key -> PoolVotingThresholds -> Key
forall a b. a -> b -> a
const Key
5) (Decoder s PoolVotingThresholds -> Decoder s PoolVotingThresholds)
-> Decoder s PoolVotingThresholds -> Decoder s PoolVotingThresholds
forall a b. (a -> b) -> a -> b
$ do
      UnitInterval
pvtMotionNoConfidence <- Decoder s UnitInterval
forall s. Decoder s UnitInterval
forall a s. DecCBOR a => Decoder s a
decCBOR
      UnitInterval
pvtCommitteeNormal <- Decoder s UnitInterval
forall s. Decoder s UnitInterval
forall a s. DecCBOR a => Decoder s a
decCBOR
      UnitInterval
pvtCommitteeNoConfidence <- Decoder s UnitInterval
forall s. Decoder s UnitInterval
forall a s. DecCBOR a => Decoder s a
decCBOR
      UnitInterval
pvtHardForkInitiation <- Decoder s UnitInterval
forall s. Decoder s UnitInterval
forall a s. DecCBOR a => Decoder s a
decCBOR
      UnitInterval
pvtPPSecurityGroup <- Decoder s UnitInterval
forall s. Decoder s UnitInterval
forall a s. DecCBOR a => Decoder s a
decCBOR
      PoolVotingThresholds -> Decoder s PoolVotingThresholds
forall a. a -> Decoder s a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (PoolVotingThresholds -> Decoder s PoolVotingThresholds)
-> PoolVotingThresholds -> Decoder s PoolVotingThresholds
forall a b. (a -> b) -> a -> b
$ PoolVotingThresholds {UnitInterval
pvtMotionNoConfidence :: UnitInterval
pvtCommitteeNormal :: UnitInterval
pvtCommitteeNoConfidence :: UnitInterval
pvtHardForkInitiation :: UnitInterval
pvtPPSecurityGroup :: UnitInterval
pvtMotionNoConfidence :: UnitInterval
pvtCommitteeNormal :: UnitInterval
pvtCommitteeNoConfidence :: UnitInterval
pvtHardForkInitiation :: UnitInterval
pvtPPSecurityGroup :: UnitInterval
..}

instance ToPlutusData PoolVotingThresholds where
  toPlutusData :: PoolVotingThresholds -> Data
toPlutusData PoolVotingThresholds
x =
    [Data] -> Data
P.List
      [ UnitInterval -> Data
forall x. ToPlutusData x => x -> Data
toPlutusData (PoolVotingThresholds -> UnitInterval
pvtMotionNoConfidence PoolVotingThresholds
x)
      , UnitInterval -> Data
forall x. ToPlutusData x => x -> Data
toPlutusData (PoolVotingThresholds -> UnitInterval
pvtCommitteeNormal PoolVotingThresholds
x)
      , UnitInterval -> Data
forall x. ToPlutusData x => x -> Data
toPlutusData (PoolVotingThresholds -> UnitInterval
pvtCommitteeNoConfidence PoolVotingThresholds
x)
      , UnitInterval -> Data
forall x. ToPlutusData x => x -> Data
toPlutusData (PoolVotingThresholds -> UnitInterval
pvtHardForkInitiation PoolVotingThresholds
x)
      , UnitInterval -> Data
forall x. ToPlutusData x => x -> Data
toPlutusData (PoolVotingThresholds -> UnitInterval
pvtPPSecurityGroup PoolVotingThresholds
x)
      ]
  fromPlutusData :: Data -> Maybe PoolVotingThresholds
fromPlutusData (P.List [Data
a, Data
b, Data
c, Data
d, Data
e]) =
    UnitInterval
-> UnitInterval
-> UnitInterval
-> UnitInterval
-> UnitInterval
-> PoolVotingThresholds
PoolVotingThresholds
      (UnitInterval
 -> UnitInterval
 -> UnitInterval
 -> UnitInterval
 -> UnitInterval
 -> PoolVotingThresholds)
-> Maybe UnitInterval
-> Maybe
     (UnitInterval
      -> UnitInterval
      -> UnitInterval
      -> UnitInterval
      -> PoolVotingThresholds)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Data -> Maybe UnitInterval
forall x. ToPlutusData x => Data -> Maybe x
fromPlutusData Data
a
      Maybe
  (UnitInterval
   -> UnitInterval
   -> UnitInterval
   -> UnitInterval
   -> PoolVotingThresholds)
-> Maybe UnitInterval
-> Maybe
     (UnitInterval
      -> UnitInterval -> UnitInterval -> PoolVotingThresholds)
forall a b. Maybe (a -> b) -> Maybe a -> Maybe b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Data -> Maybe UnitInterval
forall x. ToPlutusData x => Data -> Maybe x
fromPlutusData Data
b
      Maybe
  (UnitInterval
   -> UnitInterval -> UnitInterval -> PoolVotingThresholds)
-> Maybe UnitInterval
-> Maybe (UnitInterval -> UnitInterval -> PoolVotingThresholds)
forall a b. Maybe (a -> b) -> Maybe a -> Maybe b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Data -> Maybe UnitInterval
forall x. ToPlutusData x => Data -> Maybe x
fromPlutusData Data
c
      Maybe (UnitInterval -> UnitInterval -> PoolVotingThresholds)
-> Maybe UnitInterval
-> Maybe (UnitInterval -> PoolVotingThresholds)
forall a b. Maybe (a -> b) -> Maybe a -> Maybe b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Data -> Maybe UnitInterval
forall x. ToPlutusData x => Data -> Maybe x
fromPlutusData Data
d
      Maybe (UnitInterval -> PoolVotingThresholds)
-> Maybe UnitInterval -> Maybe PoolVotingThresholds
forall a b. Maybe (a -> b) -> Maybe a -> Maybe b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Data -> Maybe UnitInterval
forall x. ToPlutusData x => Data -> Maybe x
fromPlutusData Data
e
  fromPlutusData Data
_ = Maybe PoolVotingThresholds
forall a. Maybe a
Nothing

data DRepVotingThresholds = DRepVotingThresholds
  { DRepVotingThresholds -> UnitInterval
dvtMotionNoConfidence :: !UnitInterval
  , DRepVotingThresholds -> UnitInterval
dvtCommitteeNormal :: !UnitInterval
  , DRepVotingThresholds -> UnitInterval
dvtCommitteeNoConfidence :: !UnitInterval
  , DRepVotingThresholds -> UnitInterval
dvtUpdateToConstitution :: !UnitInterval
  , DRepVotingThresholds -> UnitInterval
dvtHardForkInitiation :: !UnitInterval
  , DRepVotingThresholds -> UnitInterval
dvtPPNetworkGroup :: !UnitInterval
  , DRepVotingThresholds -> UnitInterval
dvtPPEconomicGroup :: !UnitInterval
  , DRepVotingThresholds -> UnitInterval
dvtPPTechnicalGroup :: !UnitInterval
  , DRepVotingThresholds -> UnitInterval
dvtPPGovGroup :: !UnitInterval
  , DRepVotingThresholds -> UnitInterval
dvtTreasuryWithdrawal :: !UnitInterval
  }
  deriving (DRepVotingThresholds -> DRepVotingThresholds -> Bool
(DRepVotingThresholds -> DRepVotingThresholds -> Bool)
-> (DRepVotingThresholds -> DRepVotingThresholds -> Bool)
-> Eq DRepVotingThresholds
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: DRepVotingThresholds -> DRepVotingThresholds -> Bool
== :: DRepVotingThresholds -> DRepVotingThresholds -> Bool
$c/= :: DRepVotingThresholds -> DRepVotingThresholds -> Bool
/= :: DRepVotingThresholds -> DRepVotingThresholds -> Bool
Eq, Eq DRepVotingThresholds
Eq DRepVotingThresholds =>
(DRepVotingThresholds -> DRepVotingThresholds -> Ordering)
-> (DRepVotingThresholds -> DRepVotingThresholds -> Bool)
-> (DRepVotingThresholds -> DRepVotingThresholds -> Bool)
-> (DRepVotingThresholds -> DRepVotingThresholds -> Bool)
-> (DRepVotingThresholds -> DRepVotingThresholds -> Bool)
-> (DRepVotingThresholds
    -> DRepVotingThresholds -> DRepVotingThresholds)
-> (DRepVotingThresholds
    -> DRepVotingThresholds -> DRepVotingThresholds)
-> Ord DRepVotingThresholds
DRepVotingThresholds -> DRepVotingThresholds -> Bool
DRepVotingThresholds -> DRepVotingThresholds -> Ordering
DRepVotingThresholds
-> DRepVotingThresholds -> DRepVotingThresholds
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: DRepVotingThresholds -> DRepVotingThresholds -> Ordering
compare :: DRepVotingThresholds -> DRepVotingThresholds -> Ordering
$c< :: DRepVotingThresholds -> DRepVotingThresholds -> Bool
< :: DRepVotingThresholds -> DRepVotingThresholds -> Bool
$c<= :: DRepVotingThresholds -> DRepVotingThresholds -> Bool
<= :: DRepVotingThresholds -> DRepVotingThresholds -> Bool
$c> :: DRepVotingThresholds -> DRepVotingThresholds -> Bool
> :: DRepVotingThresholds -> DRepVotingThresholds -> Bool
$c>= :: DRepVotingThresholds -> DRepVotingThresholds -> Bool
>= :: DRepVotingThresholds -> DRepVotingThresholds -> Bool
$cmax :: DRepVotingThresholds
-> DRepVotingThresholds -> DRepVotingThresholds
max :: DRepVotingThresholds
-> DRepVotingThresholds -> DRepVotingThresholds
$cmin :: DRepVotingThresholds
-> DRepVotingThresholds -> DRepVotingThresholds
min :: DRepVotingThresholds
-> DRepVotingThresholds -> DRepVotingThresholds
Ord, Key -> DRepVotingThresholds -> ShowS
[DRepVotingThresholds] -> ShowS
DRepVotingThresholds -> String
(Key -> DRepVotingThresholds -> ShowS)
-> (DRepVotingThresholds -> String)
-> ([DRepVotingThresholds] -> ShowS)
-> Show DRepVotingThresholds
forall a.
(Key -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Key -> DRepVotingThresholds -> ShowS
showsPrec :: Key -> DRepVotingThresholds -> ShowS
$cshow :: DRepVotingThresholds -> String
show :: DRepVotingThresholds -> String
$cshowList :: [DRepVotingThresholds] -> ShowS
showList :: [DRepVotingThresholds] -> ShowS
Show, (forall x. DRepVotingThresholds -> Rep DRepVotingThresholds x)
-> (forall x. Rep DRepVotingThresholds x -> DRepVotingThresholds)
-> Generic DRepVotingThresholds
forall x. Rep DRepVotingThresholds x -> DRepVotingThresholds
forall x. DRepVotingThresholds -> Rep DRepVotingThresholds x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. DRepVotingThresholds -> Rep DRepVotingThresholds x
from :: forall x. DRepVotingThresholds -> Rep DRepVotingThresholds x
$cto :: forall x. Rep DRepVotingThresholds x -> DRepVotingThresholds
to :: forall x. Rep DRepVotingThresholds x -> DRepVotingThresholds
Generic)

instance NoThunks DRepVotingThresholds

instance NFData DRepVotingThresholds where
  rnf :: DRepVotingThresholds -> ()
rnf = DRepVotingThresholds -> ()
forall a. a -> ()
rwhnf

instance Default DRepVotingThresholds where
  def :: DRepVotingThresholds
def = UnitInterval
-> UnitInterval
-> UnitInterval
-> UnitInterval
-> UnitInterval
-> UnitInterval
-> UnitInterval
-> UnitInterval
-> UnitInterval
-> UnitInterval
-> DRepVotingThresholds
DRepVotingThresholds UnitInterval
forall a. Default a => a
def UnitInterval
forall a. Default a => a
def UnitInterval
forall a. Default a => a
def UnitInterval
forall a. Default a => a
def UnitInterval
forall a. Default a => a
def UnitInterval
forall a. Default a => a
def UnitInterval
forall a. Default a => a
def UnitInterval
forall a. Default a => a
def UnitInterval
forall a. Default a => a
def UnitInterval
forall a. Default a => a
def

instance ToJSON DRepVotingThresholds where
  toJSON :: DRepVotingThresholds -> Value
toJSON pvt :: DRepVotingThresholds
pvt@(DRepVotingThresholds UnitInterval
_ UnitInterval
_ UnitInterval
_ UnitInterval
_ UnitInterval
_ UnitInterval
_ UnitInterval
_ UnitInterval
_ UnitInterval
_ UnitInterval
_) =
    let DRepVotingThresholds {UnitInterval
dvtMotionNoConfidence :: DRepVotingThresholds -> UnitInterval
dvtCommitteeNormal :: DRepVotingThresholds -> UnitInterval
dvtCommitteeNoConfidence :: DRepVotingThresholds -> UnitInterval
dvtUpdateToConstitution :: DRepVotingThresholds -> UnitInterval
dvtHardForkInitiation :: DRepVotingThresholds -> UnitInterval
dvtPPNetworkGroup :: DRepVotingThresholds -> UnitInterval
dvtPPEconomicGroup :: DRepVotingThresholds -> UnitInterval
dvtPPTechnicalGroup :: DRepVotingThresholds -> UnitInterval
dvtPPGovGroup :: DRepVotingThresholds -> UnitInterval
dvtTreasuryWithdrawal :: DRepVotingThresholds -> UnitInterval
dvtMotionNoConfidence :: UnitInterval
dvtCommitteeNormal :: UnitInterval
dvtCommitteeNoConfidence :: UnitInterval
dvtUpdateToConstitution :: UnitInterval
dvtHardForkInitiation :: UnitInterval
dvtPPNetworkGroup :: UnitInterval
dvtPPEconomicGroup :: UnitInterval
dvtPPTechnicalGroup :: UnitInterval
dvtPPGovGroup :: UnitInterval
dvtTreasuryWithdrawal :: UnitInterval
..} = DRepVotingThresholds
pvt
     in [Pair] -> Value
object
          [ (Key
"motionNoConfidence", UnitInterval -> Value
forall a. ToJSON a => a -> Value
toJSON UnitInterval
dvtMotionNoConfidence)
          , (Key
"committeeNormal", UnitInterval -> Value
forall a. ToJSON a => a -> Value
toJSON UnitInterval
dvtCommitteeNormal)
          , (Key
"committeeNoConfidence", UnitInterval -> Value
forall a. ToJSON a => a -> Value
toJSON UnitInterval
dvtCommitteeNoConfidence)
          , (Key
"updateToConstitution", UnitInterval -> Value
forall a. ToJSON a => a -> Value
toJSON UnitInterval
dvtUpdateToConstitution)
          , (Key
"hardForkInitiation", UnitInterval -> Value
forall a. ToJSON a => a -> Value
toJSON UnitInterval
dvtHardForkInitiation)
          , (Key
"ppNetworkGroup", UnitInterval -> Value
forall a. ToJSON a => a -> Value
toJSON UnitInterval
dvtPPNetworkGroup)
          , (Key
"ppEconomicGroup", UnitInterval -> Value
forall a. ToJSON a => a -> Value
toJSON UnitInterval
dvtPPEconomicGroup)
          , (Key
"ppTechnicalGroup", UnitInterval -> Value
forall a. ToJSON a => a -> Value
toJSON UnitInterval
dvtPPTechnicalGroup)
          , (Key
"ppGovGroup", UnitInterval -> Value
forall a. ToJSON a => a -> Value
toJSON UnitInterval
dvtPPGovGroup)
          , (Key
"treasuryWithdrawal", UnitInterval -> Value
forall a. ToJSON a => a -> Value
toJSON UnitInterval
dvtTreasuryWithdrawal)
          ]

instance FromJSON DRepVotingThresholds where
  parseJSON :: Value -> Parser DRepVotingThresholds
parseJSON =
    String
-> (Object -> Parser DRepVotingThresholds)
-> Value
-> Parser DRepVotingThresholds
forall a. String -> (Object -> Parser a) -> Value -> Parser a
withObject String
"DRepVotingThresholds" ((Object -> Parser DRepVotingThresholds)
 -> Value -> Parser DRepVotingThresholds)
-> (Object -> Parser DRepVotingThresholds)
-> Value
-> Parser DRepVotingThresholds
forall a b. (a -> b) -> a -> b
$ \Object
o ->
      UnitInterval
-> UnitInterval
-> UnitInterval
-> UnitInterval
-> UnitInterval
-> UnitInterval
-> UnitInterval
-> UnitInterval
-> UnitInterval
-> UnitInterval
-> DRepVotingThresholds
DRepVotingThresholds
        (UnitInterval
 -> UnitInterval
 -> UnitInterval
 -> UnitInterval
 -> UnitInterval
 -> UnitInterval
 -> UnitInterval
 -> UnitInterval
 -> UnitInterval
 -> UnitInterval
 -> DRepVotingThresholds)
-> Parser UnitInterval
-> Parser
     (UnitInterval
      -> UnitInterval
      -> UnitInterval
      -> UnitInterval
      -> UnitInterval
      -> UnitInterval
      -> UnitInterval
      -> UnitInterval
      -> UnitInterval
      -> DRepVotingThresholds)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
o Object -> Key -> Parser UnitInterval
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"motionNoConfidence"
        Parser
  (UnitInterval
   -> UnitInterval
   -> UnitInterval
   -> UnitInterval
   -> UnitInterval
   -> UnitInterval
   -> UnitInterval
   -> UnitInterval
   -> UnitInterval
   -> DRepVotingThresholds)
-> Parser UnitInterval
-> Parser
     (UnitInterval
      -> UnitInterval
      -> UnitInterval
      -> UnitInterval
      -> UnitInterval
      -> UnitInterval
      -> UnitInterval
      -> UnitInterval
      -> DRepVotingThresholds)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser UnitInterval
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"committeeNormal"
        Parser
  (UnitInterval
   -> UnitInterval
   -> UnitInterval
   -> UnitInterval
   -> UnitInterval
   -> UnitInterval
   -> UnitInterval
   -> UnitInterval
   -> DRepVotingThresholds)
-> Parser UnitInterval
-> Parser
     (UnitInterval
      -> UnitInterval
      -> UnitInterval
      -> UnitInterval
      -> UnitInterval
      -> UnitInterval
      -> UnitInterval
      -> DRepVotingThresholds)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser UnitInterval
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"committeeNoConfidence"
        Parser
  (UnitInterval
   -> UnitInterval
   -> UnitInterval
   -> UnitInterval
   -> UnitInterval
   -> UnitInterval
   -> UnitInterval
   -> DRepVotingThresholds)
-> Parser UnitInterval
-> Parser
     (UnitInterval
      -> UnitInterval
      -> UnitInterval
      -> UnitInterval
      -> UnitInterval
      -> UnitInterval
      -> DRepVotingThresholds)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser UnitInterval
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"updateToConstitution"
        Parser
  (UnitInterval
   -> UnitInterval
   -> UnitInterval
   -> UnitInterval
   -> UnitInterval
   -> UnitInterval
   -> DRepVotingThresholds)
-> Parser UnitInterval
-> Parser
     (UnitInterval
      -> UnitInterval
      -> UnitInterval
      -> UnitInterval
      -> UnitInterval
      -> DRepVotingThresholds)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser UnitInterval
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"hardForkInitiation"
        Parser
  (UnitInterval
   -> UnitInterval
   -> UnitInterval
   -> UnitInterval
   -> UnitInterval
   -> DRepVotingThresholds)
-> Parser UnitInterval
-> Parser
     (UnitInterval
      -> UnitInterval
      -> UnitInterval
      -> UnitInterval
      -> DRepVotingThresholds)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser UnitInterval
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"ppNetworkGroup"
        Parser
  (UnitInterval
   -> UnitInterval
   -> UnitInterval
   -> UnitInterval
   -> DRepVotingThresholds)
-> Parser UnitInterval
-> Parser
     (UnitInterval
      -> UnitInterval -> UnitInterval -> DRepVotingThresholds)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser UnitInterval
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"ppEconomicGroup"
        Parser
  (UnitInterval
   -> UnitInterval -> UnitInterval -> DRepVotingThresholds)
-> Parser UnitInterval
-> Parser (UnitInterval -> UnitInterval -> DRepVotingThresholds)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser UnitInterval
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"ppTechnicalGroup"
        Parser (UnitInterval -> UnitInterval -> DRepVotingThresholds)
-> Parser UnitInterval
-> Parser (UnitInterval -> DRepVotingThresholds)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser UnitInterval
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"ppGovGroup"
        Parser (UnitInterval -> DRepVotingThresholds)
-> Parser UnitInterval -> Parser DRepVotingThresholds
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser UnitInterval
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"treasuryWithdrawal"

instance ToPlutusData DRepVotingThresholds where
  toPlutusData :: DRepVotingThresholds -> Data
toPlutusData DRepVotingThresholds
x =
    [Data] -> Data
P.List
      [ UnitInterval -> Data
forall x. ToPlutusData x => x -> Data
toPlutusData (DRepVotingThresholds -> UnitInterval
dvtMotionNoConfidence DRepVotingThresholds
x)
      , UnitInterval -> Data
forall x. ToPlutusData x => x -> Data
toPlutusData (DRepVotingThresholds -> UnitInterval
dvtCommitteeNormal DRepVotingThresholds
x)
      , UnitInterval -> Data
forall x. ToPlutusData x => x -> Data
toPlutusData (DRepVotingThresholds -> UnitInterval
dvtCommitteeNoConfidence DRepVotingThresholds
x)
      , UnitInterval -> Data
forall x. ToPlutusData x => x -> Data
toPlutusData (DRepVotingThresholds -> UnitInterval
dvtUpdateToConstitution DRepVotingThresholds
x)
      , UnitInterval -> Data
forall x. ToPlutusData x => x -> Data
toPlutusData (DRepVotingThresholds -> UnitInterval
dvtHardForkInitiation DRepVotingThresholds
x)
      , UnitInterval -> Data
forall x. ToPlutusData x => x -> Data
toPlutusData (DRepVotingThresholds -> UnitInterval
dvtPPNetworkGroup DRepVotingThresholds
x)
      , UnitInterval -> Data
forall x. ToPlutusData x => x -> Data
toPlutusData (DRepVotingThresholds -> UnitInterval
dvtPPEconomicGroup DRepVotingThresholds
x)
      , UnitInterval -> Data
forall x. ToPlutusData x => x -> Data
toPlutusData (DRepVotingThresholds -> UnitInterval
dvtPPTechnicalGroup DRepVotingThresholds
x)
      , UnitInterval -> Data
forall x. ToPlutusData x => x -> Data
toPlutusData (DRepVotingThresholds -> UnitInterval
dvtPPGovGroup DRepVotingThresholds
x)
      , UnitInterval -> Data
forall x. ToPlutusData x => x -> Data
toPlutusData (DRepVotingThresholds -> UnitInterval
dvtTreasuryWithdrawal DRepVotingThresholds
x)
      ]
  fromPlutusData :: Data -> Maybe DRepVotingThresholds
fromPlutusData (P.List [Data
a, Data
b, Data
c, Data
d, Data
e, Data
f, Data
g, Data
h, Data
i, Data
j]) =
    UnitInterval
-> UnitInterval
-> UnitInterval
-> UnitInterval
-> UnitInterval
-> UnitInterval
-> UnitInterval
-> UnitInterval
-> UnitInterval
-> UnitInterval
-> DRepVotingThresholds
DRepVotingThresholds
      (UnitInterval
 -> UnitInterval
 -> UnitInterval
 -> UnitInterval
 -> UnitInterval
 -> UnitInterval
 -> UnitInterval
 -> UnitInterval
 -> UnitInterval
 -> UnitInterval
 -> DRepVotingThresholds)
-> Maybe UnitInterval
-> Maybe
     (UnitInterval
      -> UnitInterval
      -> UnitInterval
      -> UnitInterval
      -> UnitInterval
      -> UnitInterval
      -> UnitInterval
      -> UnitInterval
      -> UnitInterval
      -> DRepVotingThresholds)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Data -> Maybe UnitInterval
forall x. ToPlutusData x => Data -> Maybe x
fromPlutusData Data
a
      Maybe
  (UnitInterval
   -> UnitInterval
   -> UnitInterval
   -> UnitInterval
   -> UnitInterval
   -> UnitInterval
   -> UnitInterval
   -> UnitInterval
   -> UnitInterval
   -> DRepVotingThresholds)
-> Maybe UnitInterval
-> Maybe
     (UnitInterval
      -> UnitInterval
      -> UnitInterval
      -> UnitInterval
      -> UnitInterval
      -> UnitInterval
      -> UnitInterval
      -> UnitInterval
      -> DRepVotingThresholds)
forall a b. Maybe (a -> b) -> Maybe a -> Maybe b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Data -> Maybe UnitInterval
forall x. ToPlutusData x => Data -> Maybe x
fromPlutusData Data
b
      Maybe
  (UnitInterval
   -> UnitInterval
   -> UnitInterval
   -> UnitInterval
   -> UnitInterval
   -> UnitInterval
   -> UnitInterval
   -> UnitInterval
   -> DRepVotingThresholds)
-> Maybe UnitInterval
-> Maybe
     (UnitInterval
      -> UnitInterval
      -> UnitInterval
      -> UnitInterval
      -> UnitInterval
      -> UnitInterval
      -> UnitInterval
      -> DRepVotingThresholds)
forall a b. Maybe (a -> b) -> Maybe a -> Maybe b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Data -> Maybe UnitInterval
forall x. ToPlutusData x => Data -> Maybe x
fromPlutusData Data
c
      Maybe
  (UnitInterval
   -> UnitInterval
   -> UnitInterval
   -> UnitInterval
   -> UnitInterval
   -> UnitInterval
   -> UnitInterval
   -> DRepVotingThresholds)
-> Maybe UnitInterval
-> Maybe
     (UnitInterval
      -> UnitInterval
      -> UnitInterval
      -> UnitInterval
      -> UnitInterval
      -> UnitInterval
      -> DRepVotingThresholds)
forall a b. Maybe (a -> b) -> Maybe a -> Maybe b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Data -> Maybe UnitInterval
forall x. ToPlutusData x => Data -> Maybe x
fromPlutusData Data
d
      Maybe
  (UnitInterval
   -> UnitInterval
   -> UnitInterval
   -> UnitInterval
   -> UnitInterval
   -> UnitInterval
   -> DRepVotingThresholds)
-> Maybe UnitInterval
-> Maybe
     (UnitInterval
      -> UnitInterval
      -> UnitInterval
      -> UnitInterval
      -> UnitInterval
      -> DRepVotingThresholds)
forall a b. Maybe (a -> b) -> Maybe a -> Maybe b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Data -> Maybe UnitInterval
forall x. ToPlutusData x => Data -> Maybe x
fromPlutusData Data
e
      Maybe
  (UnitInterval
   -> UnitInterval
   -> UnitInterval
   -> UnitInterval
   -> UnitInterval
   -> DRepVotingThresholds)
-> Maybe UnitInterval
-> Maybe
     (UnitInterval
      -> UnitInterval
      -> UnitInterval
      -> UnitInterval
      -> DRepVotingThresholds)
forall a b. Maybe (a -> b) -> Maybe a -> Maybe b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Data -> Maybe UnitInterval
forall x. ToPlutusData x => Data -> Maybe x
fromPlutusData Data
f
      Maybe
  (UnitInterval
   -> UnitInterval
   -> UnitInterval
   -> UnitInterval
   -> DRepVotingThresholds)
-> Maybe UnitInterval
-> Maybe
     (UnitInterval
      -> UnitInterval -> UnitInterval -> DRepVotingThresholds)
forall a b. Maybe (a -> b) -> Maybe a -> Maybe b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Data -> Maybe UnitInterval
forall x. ToPlutusData x => Data -> Maybe x
fromPlutusData Data
g
      Maybe
  (UnitInterval
   -> UnitInterval -> UnitInterval -> DRepVotingThresholds)
-> Maybe UnitInterval
-> Maybe (UnitInterval -> UnitInterval -> DRepVotingThresholds)
forall a b. Maybe (a -> b) -> Maybe a -> Maybe b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Data -> Maybe UnitInterval
forall x. ToPlutusData x => Data -> Maybe x
fromPlutusData Data
h
      Maybe (UnitInterval -> UnitInterval -> DRepVotingThresholds)
-> Maybe UnitInterval
-> Maybe (UnitInterval -> DRepVotingThresholds)
forall a b. Maybe (a -> b) -> Maybe a -> Maybe b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Data -> Maybe UnitInterval
forall x. ToPlutusData x => Data -> Maybe x
fromPlutusData Data
i
      Maybe (UnitInterval -> DRepVotingThresholds)
-> Maybe UnitInterval -> Maybe DRepVotingThresholds
forall a b. Maybe (a -> b) -> Maybe a -> Maybe b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Data -> Maybe UnitInterval
forall x. ToPlutusData x => Data -> Maybe x
fromPlutusData Data
j
  fromPlutusData Data
_ = Maybe DRepVotingThresholds
forall a. Maybe a
Nothing

dvtPPNetworkGroupL :: Lens' DRepVotingThresholds UnitInterval
dvtPPNetworkGroupL :: Lens' DRepVotingThresholds UnitInterval
dvtPPNetworkGroupL = (DRepVotingThresholds -> UnitInterval)
-> (DRepVotingThresholds -> UnitInterval -> DRepVotingThresholds)
-> Lens' DRepVotingThresholds UnitInterval
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens DRepVotingThresholds -> UnitInterval
dvtPPNetworkGroup (\DRepVotingThresholds
x UnitInterval
y -> DRepVotingThresholds
x {dvtPPNetworkGroup = y})

dvtPPEconomicGroupL :: Lens' DRepVotingThresholds UnitInterval
dvtPPEconomicGroupL :: Lens' DRepVotingThresholds UnitInterval
dvtPPEconomicGroupL = (DRepVotingThresholds -> UnitInterval)
-> (DRepVotingThresholds -> UnitInterval -> DRepVotingThresholds)
-> Lens' DRepVotingThresholds UnitInterval
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens DRepVotingThresholds -> UnitInterval
dvtPPEconomicGroup (\DRepVotingThresholds
x UnitInterval
y -> DRepVotingThresholds
x {dvtPPEconomicGroup = y})

dvtPPTechnicalGroupL :: Lens' DRepVotingThresholds UnitInterval
dvtPPTechnicalGroupL :: Lens' DRepVotingThresholds UnitInterval
dvtPPTechnicalGroupL = (DRepVotingThresholds -> UnitInterval)
-> (DRepVotingThresholds -> UnitInterval -> DRepVotingThresholds)
-> Lens' DRepVotingThresholds UnitInterval
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens DRepVotingThresholds -> UnitInterval
dvtPPTechnicalGroup (\DRepVotingThresholds
x UnitInterval
y -> DRepVotingThresholds
x {dvtPPTechnicalGroup = y})

dvtPPGovGroupL :: Lens' DRepVotingThresholds UnitInterval
dvtPPGovGroupL :: Lens' DRepVotingThresholds UnitInterval
dvtPPGovGroupL = (DRepVotingThresholds -> UnitInterval)
-> (DRepVotingThresholds -> UnitInterval -> DRepVotingThresholds)
-> Lens' DRepVotingThresholds UnitInterval
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens DRepVotingThresholds -> UnitInterval
dvtPPGovGroup (\DRepVotingThresholds
x UnitInterval
y -> DRepVotingThresholds
x {dvtPPGovGroup = y})

dvtUpdateToConstitutionL :: Lens' DRepVotingThresholds UnitInterval
dvtUpdateToConstitutionL :: Lens' DRepVotingThresholds UnitInterval
dvtUpdateToConstitutionL = (DRepVotingThresholds -> UnitInterval)
-> (DRepVotingThresholds -> UnitInterval -> DRepVotingThresholds)
-> Lens' DRepVotingThresholds UnitInterval
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens DRepVotingThresholds -> UnitInterval
dvtUpdateToConstitution (\DRepVotingThresholds
x UnitInterval
y -> DRepVotingThresholds
x {dvtUpdateToConstitution = y})

dvtCommitteeNoConfidenceL :: Lens' DRepVotingThresholds UnitInterval
dvtCommitteeNoConfidenceL :: Lens' DRepVotingThresholds UnitInterval
dvtCommitteeNoConfidenceL = (DRepVotingThresholds -> UnitInterval)
-> (DRepVotingThresholds -> UnitInterval -> DRepVotingThresholds)
-> Lens' DRepVotingThresholds UnitInterval
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens DRepVotingThresholds -> UnitInterval
dvtCommitteeNoConfidence (\DRepVotingThresholds
x UnitInterval
y -> DRepVotingThresholds
x {dvtCommitteeNoConfidence = y})

dvtCommitteeNormalL :: Lens' DRepVotingThresholds UnitInterval
dvtCommitteeNormalL :: Lens' DRepVotingThresholds UnitInterval
dvtCommitteeNormalL = (DRepVotingThresholds -> UnitInterval)
-> (DRepVotingThresholds -> UnitInterval -> DRepVotingThresholds)
-> Lens' DRepVotingThresholds UnitInterval
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens DRepVotingThresholds -> UnitInterval
dvtCommitteeNormal (\DRepVotingThresholds
x UnitInterval
y -> DRepVotingThresholds
x {dvtCommitteeNormal = y})

dvtMotionNoConfidenceL :: Lens' DRepVotingThresholds UnitInterval
dvtMotionNoConfidenceL :: Lens' DRepVotingThresholds UnitInterval
dvtMotionNoConfidenceL = (DRepVotingThresholds -> UnitInterval)
-> (DRepVotingThresholds -> UnitInterval -> DRepVotingThresholds)
-> Lens' DRepVotingThresholds UnitInterval
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens DRepVotingThresholds -> UnitInterval
dvtMotionNoConfidence (\DRepVotingThresholds
x UnitInterval
y -> DRepVotingThresholds
x {dvtMotionNoConfidence = y})

dvtHardForkInitiationL :: Lens' DRepVotingThresholds UnitInterval
dvtHardForkInitiationL :: Lens' DRepVotingThresholds UnitInterval
dvtHardForkInitiationL = (DRepVotingThresholds -> UnitInterval)
-> (DRepVotingThresholds -> UnitInterval -> DRepVotingThresholds)
-> Lens' DRepVotingThresholds UnitInterval
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens DRepVotingThresholds -> UnitInterval
dvtHardForkInitiation (\DRepVotingThresholds
x UnitInterval
y -> DRepVotingThresholds
x {dvtHardForkInitiation = y})

dvtTreasuryWithdrawalL :: Lens' DRepVotingThresholds UnitInterval
dvtTreasuryWithdrawalL :: Lens' DRepVotingThresholds UnitInterval
dvtTreasuryWithdrawalL = (DRepVotingThresholds -> UnitInterval)
-> (DRepVotingThresholds -> UnitInterval -> DRepVotingThresholds)
-> Lens' DRepVotingThresholds UnitInterval
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens DRepVotingThresholds -> UnitInterval
dvtTreasuryWithdrawal (\DRepVotingThresholds
x UnitInterval
y -> DRepVotingThresholds
x {dvtTreasuryWithdrawal = y})

instance EncCBOR DRepVotingThresholds where
  encCBOR :: DRepVotingThresholds -> Encoding
encCBOR DRepVotingThresholds {UnitInterval
dvtMotionNoConfidence :: DRepVotingThresholds -> UnitInterval
dvtCommitteeNormal :: DRepVotingThresholds -> UnitInterval
dvtCommitteeNoConfidence :: DRepVotingThresholds -> UnitInterval
dvtUpdateToConstitution :: DRepVotingThresholds -> UnitInterval
dvtHardForkInitiation :: DRepVotingThresholds -> UnitInterval
dvtPPNetworkGroup :: DRepVotingThresholds -> UnitInterval
dvtPPEconomicGroup :: DRepVotingThresholds -> UnitInterval
dvtPPTechnicalGroup :: DRepVotingThresholds -> UnitInterval
dvtPPGovGroup :: DRepVotingThresholds -> UnitInterval
dvtTreasuryWithdrawal :: DRepVotingThresholds -> UnitInterval
dvtMotionNoConfidence :: UnitInterval
dvtCommitteeNormal :: UnitInterval
dvtCommitteeNoConfidence :: UnitInterval
dvtUpdateToConstitution :: UnitInterval
dvtHardForkInitiation :: UnitInterval
dvtPPNetworkGroup :: UnitInterval
dvtPPEconomicGroup :: UnitInterval
dvtPPTechnicalGroup :: UnitInterval
dvtPPGovGroup :: UnitInterval
dvtTreasuryWithdrawal :: UnitInterval
..} =
    Word -> Encoding
encodeListLen Word
10
      Encoding -> Encoding -> Encoding
forall a. Semigroup a => a -> a -> a
<> UnitInterval -> Encoding
forall a. EncCBOR a => a -> Encoding
encCBOR UnitInterval
dvtMotionNoConfidence
      Encoding -> Encoding -> Encoding
forall a. Semigroup a => a -> a -> a
<> UnitInterval -> Encoding
forall a. EncCBOR a => a -> Encoding
encCBOR UnitInterval
dvtCommitteeNormal
      Encoding -> Encoding -> Encoding
forall a. Semigroup a => a -> a -> a
<> UnitInterval -> Encoding
forall a. EncCBOR a => a -> Encoding
encCBOR UnitInterval
dvtCommitteeNoConfidence
      Encoding -> Encoding -> Encoding
forall a. Semigroup a => a -> a -> a
<> UnitInterval -> Encoding
forall a. EncCBOR a => a -> Encoding
encCBOR UnitInterval
dvtUpdateToConstitution
      Encoding -> Encoding -> Encoding
forall a. Semigroup a => a -> a -> a
<> UnitInterval -> Encoding
forall a. EncCBOR a => a -> Encoding
encCBOR UnitInterval
dvtHardForkInitiation
      Encoding -> Encoding -> Encoding
forall a. Semigroup a => a -> a -> a
<> UnitInterval -> Encoding
forall a. EncCBOR a => a -> Encoding
encCBOR UnitInterval
dvtPPNetworkGroup
      Encoding -> Encoding -> Encoding
forall a. Semigroup a => a -> a -> a
<> UnitInterval -> Encoding
forall a. EncCBOR a => a -> Encoding
encCBOR UnitInterval
dvtPPEconomicGroup
      Encoding -> Encoding -> Encoding
forall a. Semigroup a => a -> a -> a
<> UnitInterval -> Encoding
forall a. EncCBOR a => a -> Encoding
encCBOR UnitInterval
dvtPPTechnicalGroup
      Encoding -> Encoding -> Encoding
forall a. Semigroup a => a -> a -> a
<> UnitInterval -> Encoding
forall a. EncCBOR a => a -> Encoding
encCBOR UnitInterval
dvtPPGovGroup
      Encoding -> Encoding -> Encoding
forall a. Semigroup a => a -> a -> a
<> UnitInterval -> Encoding
forall a. EncCBOR a => a -> Encoding
encCBOR UnitInterval
dvtTreasuryWithdrawal

instance DecCBOR DRepVotingThresholds where
  decCBOR :: forall s. Decoder s DRepVotingThresholds
decCBOR =
    Text
-> (DRepVotingThresholds -> Key)
-> Decoder s DRepVotingThresholds
-> Decoder s DRepVotingThresholds
forall a s. Text -> (a -> Key) -> Decoder s a -> Decoder s a
decodeRecordNamed Text
"DRepVotingThresholds" (Key -> DRepVotingThresholds -> Key
forall a b. a -> b -> a
const Key
10) (Decoder s DRepVotingThresholds -> Decoder s DRepVotingThresholds)
-> Decoder s DRepVotingThresholds -> Decoder s DRepVotingThresholds
forall a b. (a -> b) -> a -> b
$ do
      UnitInterval
dvtMotionNoConfidence <- Decoder s UnitInterval
forall s. Decoder s UnitInterval
forall a s. DecCBOR a => Decoder s a
decCBOR
      UnitInterval
dvtCommitteeNormal <- Decoder s UnitInterval
forall s. Decoder s UnitInterval
forall a s. DecCBOR a => Decoder s a
decCBOR
      UnitInterval
dvtCommitteeNoConfidence <- Decoder s UnitInterval
forall s. Decoder s UnitInterval
forall a s. DecCBOR a => Decoder s a
decCBOR
      UnitInterval
dvtUpdateToConstitution <- Decoder s UnitInterval
forall s. Decoder s UnitInterval
forall a s. DecCBOR a => Decoder s a
decCBOR
      UnitInterval
dvtHardForkInitiation <- Decoder s UnitInterval
forall s. Decoder s UnitInterval
forall a s. DecCBOR a => Decoder s a
decCBOR
      UnitInterval
dvtPPNetworkGroup <- Decoder s UnitInterval
forall s. Decoder s UnitInterval
forall a s. DecCBOR a => Decoder s a
decCBOR
      UnitInterval
dvtPPEconomicGroup <- Decoder s UnitInterval
forall s. Decoder s UnitInterval
forall a s. DecCBOR a => Decoder s a
decCBOR
      UnitInterval
dvtPPTechnicalGroup <- Decoder s UnitInterval
forall s. Decoder s UnitInterval
forall a s. DecCBOR a => Decoder s a
decCBOR
      UnitInterval
dvtPPGovGroup <- Decoder s UnitInterval
forall s. Decoder s UnitInterval
forall a s. DecCBOR a => Decoder s a
decCBOR
      UnitInterval
dvtTreasuryWithdrawal <- Decoder s UnitInterval
forall s. Decoder s UnitInterval
forall a s. DecCBOR a => Decoder s a
decCBOR
      DRepVotingThresholds -> Decoder s DRepVotingThresholds
forall a. a -> Decoder s a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (DRepVotingThresholds -> Decoder s DRepVotingThresholds)
-> DRepVotingThresholds -> Decoder s DRepVotingThresholds
forall a b. (a -> b) -> a -> b
$ DRepVotingThresholds {UnitInterval
dvtMotionNoConfidence :: UnitInterval
dvtCommitteeNormal :: UnitInterval
dvtCommitteeNoConfidence :: UnitInterval
dvtUpdateToConstitution :: UnitInterval
dvtHardForkInitiation :: UnitInterval
dvtPPNetworkGroup :: UnitInterval
dvtPPEconomicGroup :: UnitInterval
dvtPPTechnicalGroup :: UnitInterval
dvtPPGovGroup :: UnitInterval
dvtTreasuryWithdrawal :: UnitInterval
dvtMotionNoConfidence :: UnitInterval
dvtCommitteeNormal :: UnitInterval
dvtCommitteeNoConfidence :: UnitInterval
dvtUpdateToConstitution :: UnitInterval
dvtHardForkInitiation :: UnitInterval
dvtPPNetworkGroup :: UnitInterval
dvtPPEconomicGroup :: UnitInterval
dvtPPTechnicalGroup :: UnitInterval
dvtPPGovGroup :: UnitInterval
dvtTreasuryWithdrawal :: UnitInterval
..}

data PPGroups
  = PPGroups DRepGroup StakePoolGroup
  deriving (PPGroups -> PPGroups -> Bool
(PPGroups -> PPGroups -> Bool)
-> (PPGroups -> PPGroups -> Bool) -> Eq PPGroups
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: PPGroups -> PPGroups -> Bool
== :: PPGroups -> PPGroups -> Bool
$c/= :: PPGroups -> PPGroups -> Bool
/= :: PPGroups -> PPGroups -> Bool
Eq, Eq PPGroups
Eq PPGroups =>
(PPGroups -> PPGroups -> Ordering)
-> (PPGroups -> PPGroups -> Bool)
-> (PPGroups -> PPGroups -> Bool)
-> (PPGroups -> PPGroups -> Bool)
-> (PPGroups -> PPGroups -> Bool)
-> (PPGroups -> PPGroups -> PPGroups)
-> (PPGroups -> PPGroups -> PPGroups)
-> Ord PPGroups
PPGroups -> PPGroups -> Bool
PPGroups -> PPGroups -> Ordering
PPGroups -> PPGroups -> PPGroups
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: PPGroups -> PPGroups -> Ordering
compare :: PPGroups -> PPGroups -> Ordering
$c< :: PPGroups -> PPGroups -> Bool
< :: PPGroups -> PPGroups -> Bool
$c<= :: PPGroups -> PPGroups -> Bool
<= :: PPGroups -> PPGroups -> Bool
$c> :: PPGroups -> PPGroups -> Bool
> :: PPGroups -> PPGroups -> Bool
$c>= :: PPGroups -> PPGroups -> Bool
>= :: PPGroups -> PPGroups -> Bool
$cmax :: PPGroups -> PPGroups -> PPGroups
max :: PPGroups -> PPGroups -> PPGroups
$cmin :: PPGroups -> PPGroups -> PPGroups
min :: PPGroups -> PPGroups -> PPGroups
Ord, Key -> PPGroups -> ShowS
[PPGroups] -> ShowS
PPGroups -> String
(Key -> PPGroups -> ShowS)
-> (PPGroups -> String) -> ([PPGroups] -> ShowS) -> Show PPGroups
forall a.
(Key -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Key -> PPGroups -> ShowS
showsPrec :: Key -> PPGroups -> ShowS
$cshow :: PPGroups -> String
show :: PPGroups -> String
$cshowList :: [PPGroups] -> ShowS
showList :: [PPGroups] -> ShowS
Show)

-- | Protocol parameter groups that dictate different thresholds for DReps.
data DRepGroup
  = NetworkGroup
  | EconomicGroup
  | TechnicalGroup
  | GovGroup
  deriving (DRepGroup -> DRepGroup -> Bool
(DRepGroup -> DRepGroup -> Bool)
-> (DRepGroup -> DRepGroup -> Bool) -> Eq DRepGroup
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: DRepGroup -> DRepGroup -> Bool
== :: DRepGroup -> DRepGroup -> Bool
$c/= :: DRepGroup -> DRepGroup -> Bool
/= :: DRepGroup -> DRepGroup -> Bool
Eq, Eq DRepGroup
Eq DRepGroup =>
(DRepGroup -> DRepGroup -> Ordering)
-> (DRepGroup -> DRepGroup -> Bool)
-> (DRepGroup -> DRepGroup -> Bool)
-> (DRepGroup -> DRepGroup -> Bool)
-> (DRepGroup -> DRepGroup -> Bool)
-> (DRepGroup -> DRepGroup -> DRepGroup)
-> (DRepGroup -> DRepGroup -> DRepGroup)
-> Ord DRepGroup
DRepGroup -> DRepGroup -> Bool
DRepGroup -> DRepGroup -> Ordering
DRepGroup -> DRepGroup -> DRepGroup
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: DRepGroup -> DRepGroup -> Ordering
compare :: DRepGroup -> DRepGroup -> Ordering
$c< :: DRepGroup -> DRepGroup -> Bool
< :: DRepGroup -> DRepGroup -> Bool
$c<= :: DRepGroup -> DRepGroup -> Bool
<= :: DRepGroup -> DRepGroup -> Bool
$c> :: DRepGroup -> DRepGroup -> Bool
> :: DRepGroup -> DRepGroup -> Bool
$c>= :: DRepGroup -> DRepGroup -> Bool
>= :: DRepGroup -> DRepGroup -> Bool
$cmax :: DRepGroup -> DRepGroup -> DRepGroup
max :: DRepGroup -> DRepGroup -> DRepGroup
$cmin :: DRepGroup -> DRepGroup -> DRepGroup
min :: DRepGroup -> DRepGroup -> DRepGroup
Ord, Key -> DRepGroup -> ShowS
[DRepGroup] -> ShowS
DRepGroup -> String
(Key -> DRepGroup -> ShowS)
-> (DRepGroup -> String)
-> ([DRepGroup] -> ShowS)
-> Show DRepGroup
forall a.
(Key -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Key -> DRepGroup -> ShowS
showsPrec :: Key -> DRepGroup -> ShowS
$cshow :: DRepGroup -> String
show :: DRepGroup -> String
$cshowList :: [DRepGroup] -> ShowS
showList :: [DRepGroup] -> ShowS
Show)

data StakePoolGroup
  = SecurityGroup
  | NoStakePoolGroup
  deriving (StakePoolGroup -> StakePoolGroup -> Bool
(StakePoolGroup -> StakePoolGroup -> Bool)
-> (StakePoolGroup -> StakePoolGroup -> Bool) -> Eq StakePoolGroup
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: StakePoolGroup -> StakePoolGroup -> Bool
== :: StakePoolGroup -> StakePoolGroup -> Bool
$c/= :: StakePoolGroup -> StakePoolGroup -> Bool
/= :: StakePoolGroup -> StakePoolGroup -> Bool
Eq, Eq StakePoolGroup
Eq StakePoolGroup =>
(StakePoolGroup -> StakePoolGroup -> Ordering)
-> (StakePoolGroup -> StakePoolGroup -> Bool)
-> (StakePoolGroup -> StakePoolGroup -> Bool)
-> (StakePoolGroup -> StakePoolGroup -> Bool)
-> (StakePoolGroup -> StakePoolGroup -> Bool)
-> (StakePoolGroup -> StakePoolGroup -> StakePoolGroup)
-> (StakePoolGroup -> StakePoolGroup -> StakePoolGroup)
-> Ord StakePoolGroup
StakePoolGroup -> StakePoolGroup -> Bool
StakePoolGroup -> StakePoolGroup -> Ordering
StakePoolGroup -> StakePoolGroup -> StakePoolGroup
forall a.
Eq a =>
(a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: StakePoolGroup -> StakePoolGroup -> Ordering
compare :: StakePoolGroup -> StakePoolGroup -> Ordering
$c< :: StakePoolGroup -> StakePoolGroup -> Bool
< :: StakePoolGroup -> StakePoolGroup -> Bool
$c<= :: StakePoolGroup -> StakePoolGroup -> Bool
<= :: StakePoolGroup -> StakePoolGroup -> Bool
$c> :: StakePoolGroup -> StakePoolGroup -> Bool
> :: StakePoolGroup -> StakePoolGroup -> Bool
$c>= :: StakePoolGroup -> StakePoolGroup -> Bool
>= :: StakePoolGroup -> StakePoolGroup -> Bool
$cmax :: StakePoolGroup -> StakePoolGroup -> StakePoolGroup
max :: StakePoolGroup -> StakePoolGroup -> StakePoolGroup
$cmin :: StakePoolGroup -> StakePoolGroup -> StakePoolGroup
min :: StakePoolGroup -> StakePoolGroup -> StakePoolGroup
Ord, Key -> StakePoolGroup -> ShowS
[StakePoolGroup] -> ShowS
StakePoolGroup -> String
(Key -> StakePoolGroup -> ShowS)
-> (StakePoolGroup -> String)
-> ([StakePoolGroup] -> ShowS)
-> Show StakePoolGroup
forall a.
(Key -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Key -> StakePoolGroup -> ShowS
showsPrec :: Key -> StakePoolGroup -> ShowS
$cshow :: StakePoolGroup -> String
show :: StakePoolGroup -> String
$cshowList :: [StakePoolGroup] -> ShowS
showList :: [StakePoolGroup] -> ShowS
Show)

class ToDRepGroup (t :: DRepGroup) where
  toDRepGroup :: DRepGroup

instance ToDRepGroup 'NetworkGroup where
  toDRepGroup :: DRepGroup
toDRepGroup = DRepGroup
NetworkGroup

instance ToDRepGroup 'EconomicGroup where
  toDRepGroup :: DRepGroup
toDRepGroup = DRepGroup
EconomicGroup

instance ToDRepGroup 'TechnicalGroup where
  toDRepGroup :: DRepGroup
toDRepGroup = DRepGroup
TechnicalGroup

instance ToDRepGroup 'GovGroup where
  toDRepGroup :: DRepGroup
toDRepGroup = DRepGroup
GovGroup

class ToStakePoolGroup (t :: StakePoolGroup) where
  toStakePoolGroup :: StakePoolGroup

instance ToStakePoolGroup 'SecurityGroup where
  toStakePoolGroup :: StakePoolGroup
toStakePoolGroup = StakePoolGroup
SecurityGroup

instance ToStakePoolGroup 'NoStakePoolGroup where
  toStakePoolGroup :: StakePoolGroup
toStakePoolGroup = StakePoolGroup
NoStakePoolGroup

-- | HKD that is tagged with a group
newtype THKD (t :: PPGroups) f a = THKD {forall (t :: PPGroups) (f :: * -> *) a. THKD t f a -> HKD f a
unTHKD :: HKD f a}

instance Eq (HKD f a) => Eq (THKD t f a) where
  THKD HKD f a
x1 == :: THKD t f a -> THKD t f a -> Bool
== THKD HKD f a
x2 = HKD f a
x1 HKD f a -> HKD f a -> Bool
forall a. Eq a => a -> a -> Bool
== HKD f a
x2

instance Ord (HKD f a) => Ord (THKD t f a) where
  compare :: THKD t f a -> THKD t f a -> Ordering
compare (THKD HKD f a
x1) (THKD HKD f a
x2) = HKD f a -> HKD f a -> Ordering
forall a. Ord a => a -> a -> Ordering
compare HKD f a
x1 HKD f a
x2

instance Show (HKD f a) => Show (THKD t f a) where
  show :: THKD t f a -> String
show = HKD f a -> String
forall a. Show a => a -> String
show (HKD f a -> String)
-> (THKD t f a -> HKD f a) -> THKD t f a -> String
forall b c a. (b -> c) -> (a -> b) -> a -> c
. THKD t f a -> HKD f a
forall (t :: PPGroups) (f :: * -> *) a. THKD t f a -> HKD f a
unTHKD

instance Semigroup (HKD f a) => Semigroup (THKD t f a) where
  THKD t f a
a <> :: THKD t f a -> THKD t f a -> THKD t f a
<> THKD t f a
b = HKD f a -> THKD t f a
forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD (HKD f a -> THKD t f a) -> HKD f a -> THKD t f a
forall a b. (a -> b) -> a -> b
$ THKD t f a -> HKD f a
forall (t :: PPGroups) (f :: * -> *) a. THKD t f a -> HKD f a
unTHKD THKD t f a
a HKD f a -> HKD f a -> HKD f a
forall a. Semigroup a => a -> a -> a
<> THKD t f a -> HKD f a
forall (t :: PPGroups) (f :: * -> *) a. THKD t f a -> HKD f a
unTHKD THKD t f a
b

instance Monoid (HKD f a) => Monoid (THKD t f a) where
  mempty :: THKD t f a
mempty = HKD f a -> THKD t f a
forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD HKD f a
forall a. Monoid a => a
mempty

instance NoThunks (HKD f a) => NoThunks (THKD t f a) where
  noThunks :: Context -> THKD t f a -> IO (Maybe ThunkInfo)
noThunks Context
ctx = Context -> HKD f a -> IO (Maybe ThunkInfo)
forall a. NoThunks a => Context -> a -> IO (Maybe ThunkInfo)
noThunks Context
ctx (HKD f a -> IO (Maybe ThunkInfo))
-> (THKD t f a -> HKD f a) -> THKD t f a -> IO (Maybe ThunkInfo)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. THKD t f a -> HKD f a
forall (t :: PPGroups) (f :: * -> *) a. THKD t f a -> HKD f a
unTHKD
  wNoThunks :: Context -> THKD t f a -> IO (Maybe ThunkInfo)
wNoThunks Context
ctx = Context -> HKD f a -> IO (Maybe ThunkInfo)
forall a. NoThunks a => Context -> a -> IO (Maybe ThunkInfo)
wNoThunks Context
ctx (HKD f a -> IO (Maybe ThunkInfo))
-> (THKD t f a -> HKD f a) -> THKD t f a -> IO (Maybe ThunkInfo)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. THKD t f a -> HKD f a
forall (t :: PPGroups) (f :: * -> *) a. THKD t f a -> HKD f a
unTHKD
  showTypeOf :: Proxy (THKD t f a) -> String
showTypeOf Proxy (THKD t f a)
_ = Proxy (HKD f a) -> String
forall a. NoThunks a => Proxy a -> String
showTypeOf (forall t. Proxy t
forall {k} (t :: k). Proxy t
Proxy @(HKD f a))

instance NFData (HKD f a) => NFData (THKD t f a) where
  rnf :: THKD t f a -> ()
rnf = HKD f a -> ()
forall a. NFData a => a -> ()
rnf (HKD f a -> ()) -> (THKD t f a -> HKD f a) -> THKD t f a -> ()
forall b c a. (b -> c) -> (a -> b) -> a -> c
. THKD t f a -> HKD f a
forall (t :: PPGroups) (f :: * -> *) a. THKD t f a -> HKD f a
unTHKD

instance (Typeable t, EncCBOR a) => EncCBOR (THKD t Identity a) where
  encCBOR :: THKD t Identity a -> Encoding
encCBOR = a -> Encoding
forall a. EncCBOR a => a -> Encoding
encCBOR (a -> Encoding)
-> (THKD t Identity a -> a) -> THKD t Identity a -> Encoding
forall b c a. (b -> c) -> (a -> b) -> a -> c
. THKD t Identity a -> a
THKD t Identity a -> HKD Identity a
forall (t :: PPGroups) (f :: * -> *) a. THKD t f a -> HKD f a
unTHKD

instance (Typeable t, DecCBOR a) => DecCBOR (THKD t Identity a) where
  decCBOR :: forall s. Decoder s (THKD t Identity a)
decCBOR = a -> THKD t Identity a
HKD Identity a -> THKD t Identity a
forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD (a -> THKD t Identity a)
-> Decoder s a -> Decoder s (THKD t Identity a)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Decoder s a
forall s. Decoder s a
forall a s. DecCBOR a => Decoder s a
decCBOR

instance (Typeable t, EncCBOR a) => EncCBOR (THKD t StrictMaybe a) where
  encCBOR :: THKD t StrictMaybe a -> Encoding
encCBOR = StrictMaybe a -> Encoding
forall a. EncCBOR a => a -> Encoding
encCBOR (StrictMaybe a -> Encoding)
-> (THKD t StrictMaybe a -> StrictMaybe a)
-> THKD t StrictMaybe a
-> Encoding
forall b c a. (b -> c) -> (a -> b) -> a -> c
. THKD t StrictMaybe a -> StrictMaybe a
THKD t StrictMaybe a -> HKD StrictMaybe a
forall (t :: PPGroups) (f :: * -> *) a. THKD t f a -> HKD f a
unTHKD

instance (Typeable t, DecCBOR a) => DecCBOR (THKD t StrictMaybe a) where
  decCBOR :: forall s. Decoder s (THKD t StrictMaybe a)
decCBOR = StrictMaybe a -> THKD t StrictMaybe a
HKD StrictMaybe a -> THKD t StrictMaybe a
forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD (StrictMaybe a -> THKD t StrictMaybe a)
-> Decoder s (StrictMaybe a) -> Decoder s (THKD t StrictMaybe a)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Decoder s (StrictMaybe a)
forall s. Decoder s (StrictMaybe a)
forall a s. DecCBOR a => Decoder s a
decCBOR

instance (Typeable t, ToJSON a) => ToJSON (THKD t Identity a) where
  toJSON :: THKD t Identity a -> Value
toJSON = a -> Value
forall a. ToJSON a => a -> Value
toJSON (a -> Value)
-> (THKD t Identity a -> a) -> THKD t Identity a -> Value
forall b c a. (b -> c) -> (a -> b) -> a -> c
. THKD t Identity a -> a
THKD t Identity a -> HKD Identity a
forall (t :: PPGroups) (f :: * -> *) a. THKD t f a -> HKD f a
unTHKD

instance (Typeable t, FromJSON a) => FromJSON (THKD t Identity a) where
  parseJSON :: Value -> Parser (THKD t Identity a)
parseJSON = (a -> THKD t Identity a) -> Parser a -> Parser (THKD t Identity a)
forall a b. (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap a -> THKD t Identity a
HKD Identity a -> THKD t Identity a
forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD (Parser a -> Parser (THKD t Identity a))
-> (Value -> Parser a) -> Value -> Parser (THKD t Identity a)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Value -> Parser a
forall a. FromJSON a => Value -> Parser a
parseJSON

instance (Typeable t, ToJSON a) => ToJSON (THKD t StrictMaybe a) where
  toJSON :: THKD t StrictMaybe a -> Value
toJSON = StrictMaybe a -> Value
forall a. ToJSON a => a -> Value
toJSON (StrictMaybe a -> Value)
-> (THKD t StrictMaybe a -> StrictMaybe a)
-> THKD t StrictMaybe a
-> Value
forall b c a. (b -> c) -> (a -> b) -> a -> c
. THKD t StrictMaybe a -> StrictMaybe a
THKD t StrictMaybe a -> HKD StrictMaybe a
forall (t :: PPGroups) (f :: * -> *) a. THKD t f a -> HKD f a
unTHKD

instance (Typeable t, FromJSON a) => FromJSON (THKD t StrictMaybe a) where
  parseJSON :: Value -> Parser (THKD t StrictMaybe a)
parseJSON = (StrictMaybe a -> THKD t StrictMaybe a)
-> Parser (StrictMaybe a) -> Parser (THKD t StrictMaybe a)
forall a b. (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap StrictMaybe a -> THKD t StrictMaybe a
HKD StrictMaybe a -> THKD t StrictMaybe a
forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD (Parser (StrictMaybe a) -> Parser (THKD t StrictMaybe a))
-> (Value -> Parser (StrictMaybe a))
-> Value
-> Parser (THKD t StrictMaybe a)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Value -> Parser (StrictMaybe a)
forall a. FromJSON a => Value -> Parser a
parseJSON

ppGroup ::
  forall t s a.
  (ToDRepGroup t, ToStakePoolGroup s) =>
  THKD ('PPGroups t s) StrictMaybe a ->
  Set PPGroups
ppGroup :: forall (t :: DRepGroup) (s :: StakePoolGroup) a.
(ToDRepGroup t, ToStakePoolGroup s) =>
THKD ('PPGroups t s) StrictMaybe a -> Set PPGroups
ppGroup = \case
  THKD StrictMaybe a
HKD StrictMaybe a
SNothing -> Set PPGroups
forall a. Set a
Set.empty
  THKD SJust {} -> PPGroups -> Set PPGroups
forall a. a -> Set a
Set.singleton (PPGroups -> Set PPGroups) -> PPGroups -> Set PPGroups
forall a b. (a -> b) -> a -> b
$ DRepGroup -> StakePoolGroup -> PPGroups
PPGroups (forall (t :: DRepGroup). ToDRepGroup t => DRepGroup
toDRepGroup @t) (forall (t :: StakePoolGroup). ToStakePoolGroup t => StakePoolGroup
toStakePoolGroup @s)

-- | Conway Protocol parameters. The following parameters have been added since Babbage:
-- * @poolVotingThresholds@
-- * @dRepVotingThresholds@
-- * @committeeMinSize@
-- * @committeeMaxTermLength@
-- * @govActionLifetime@
-- * @govActionDeposit@
-- * @dRepDeposit@
-- * @dRepActivity@
data ConwayPParams f era = ConwayPParams
  { forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'EconomicGroup 'SecurityGroup) f Coin
cppMinFeeA :: !(THKD ('PPGroups 'EconomicGroup 'SecurityGroup) f Coin)
  -- ^ The linear factor for the minimum fee calculation
  , forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'EconomicGroup 'SecurityGroup) f Coin
cppMinFeeB :: !(THKD ('PPGroups 'EconomicGroup 'SecurityGroup) f Coin)
  -- ^ The constant factor for the minimum fee calculation
  , forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f Word32
cppMaxBBSize :: !(THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f Word32)
  -- ^ Maximal block body size
  , forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f Word32
cppMaxTxSize :: !(THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f Word32)
  -- ^ Maximal transaction size
  , forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f Word16
cppMaxBHSize :: !(THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f Word16)
  -- ^ Maximal block header size
  , forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f Coin
cppKeyDeposit :: !(THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f Coin)
  -- ^ The amount of a key registration deposit
  , forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f Coin
cppPoolDeposit :: !(THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f Coin)
  -- ^ The amount of a pool registration deposit
  , forall (f :: * -> *) era.
ConwayPParams f era
-> THKD
     ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f EpochInterval
cppEMax :: !(THKD ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f EpochInterval)
  -- ^ Maximum number of epochs in the future a pool retirement is allowed to
  -- be scheduled for.
  , forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f Word16
cppNOpt :: !(THKD ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f Word16)
  -- ^ Desired number of pools
  , forall (f :: * -> *) era.
ConwayPParams f era
-> THKD
     ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f NonNegativeInterval
cppA0 :: !(THKD ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f NonNegativeInterval)
  -- ^ Pool influence
  , forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f UnitInterval
cppRho :: !(THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f UnitInterval)
  -- ^ Monetary expansion
  , forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f UnitInterval
cppTau :: !(THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f UnitInterval)
  -- ^ Treasury expansion
  , forall (f :: * -> *) era.
ConwayPParams f era -> HKDNoUpdate f ProtVer
cppProtocolVersion :: !(HKDNoUpdate f ProtVer)
  -- ^ Protocol version
  , forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f Coin
cppMinPoolCost :: !(THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f Coin)
  -- ^ Minimum Stake Pool Cost
  , forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'EconomicGroup 'SecurityGroup) f CoinPerByte
cppCoinsPerUTxOByte :: !(THKD ('PPGroups 'EconomicGroup 'SecurityGroup) f CoinPerByte)
  -- ^ Cost in lovelace per byte of UTxO storage
  , forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f CostModels
cppCostModels :: !(THKD ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f CostModels)
  -- ^ Cost models for non-native script languages
  , forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f Prices
cppPrices :: !(THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f Prices)
  -- ^ Prices of execution units (for non-native script languages)
  , forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'NetworkGroup 'NoStakePoolGroup) f OrdExUnits
cppMaxTxExUnits :: !(THKD ('PPGroups 'NetworkGroup 'NoStakePoolGroup) f OrdExUnits)
  -- ^ Max total script execution resources units allowed per tx
  , forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f OrdExUnits
cppMaxBlockExUnits :: !(THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f OrdExUnits)
  -- ^ Max total script execution resources units allowed per block
  , forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f Word32
cppMaxValSize :: !(THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f Word32)
  -- ^ Max size of a Value in an output
  , forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f Word16
cppCollateralPercentage :: !(THKD ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f Word16)
  -- ^ Percentage of the txfee which must be provided as collateral when
  -- including non-native scripts.
  , forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'NetworkGroup 'NoStakePoolGroup) f Word16
cppMaxCollateralInputs :: !(THKD ('PPGroups 'NetworkGroup 'NoStakePoolGroup) f Word16)
  -- ^ Maximum number of collateral inputs allowed in a transaction
  , -- New ones for Conway:
    forall (f :: * -> *) era.
ConwayPParams f era
-> THKD
     ('PPGroups 'GovGroup 'NoStakePoolGroup) f PoolVotingThresholds
cppPoolVotingThresholds :: !(THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f PoolVotingThresholds)
  -- ^ Thresholds for SPO votes
  , forall (f :: * -> *) era.
ConwayPParams f era
-> THKD
     ('PPGroups 'GovGroup 'NoStakePoolGroup) f DRepVotingThresholds
cppDRepVotingThresholds :: !(THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f DRepVotingThresholds)
  -- ^ Thresholds for DRep votes
  , forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f Word16
cppCommitteeMinSize :: !(THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f Word16)
  -- ^ Minimum size of the Constitutional Committee
  , forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f EpochInterval
cppCommitteeMaxTermLength :: !(THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f EpochInterval)
  -- ^ The Constitutional Committee Term limit in number of Slots
  , forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f EpochInterval
cppGovActionLifetime :: !(THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f EpochInterval)
  -- ^ Gov action lifetime in number of Epochs
  , forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'GovGroup 'SecurityGroup) f Coin
cppGovActionDeposit :: !(THKD ('PPGroups 'GovGroup 'SecurityGroup) f Coin)
  -- ^ The amount of the Gov Action deposit
  , forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f Coin
cppDRepDeposit :: !(THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f Coin)
  -- ^ The amount of a DRep registration deposit
  , forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f EpochInterval
cppDRepActivity :: !(THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f EpochInterval)
  -- ^ The number of Epochs that a DRep can perform no activity without losing their @Active@ status.
  , forall (f :: * -> *) era.
ConwayPParams f era
-> THKD
     ('PPGroups 'EconomicGroup 'SecurityGroup) f NonNegativeInterval
cppMinFeeRefScriptCostPerByte ::
      !(THKD ('PPGroups 'EconomicGroup 'SecurityGroup) f NonNegativeInterval)
  -- ^ Reference scripts fee for the minimum fee calculation
  }
  deriving ((forall x. ConwayPParams f era -> Rep (ConwayPParams f era) x)
-> (forall x. Rep (ConwayPParams f era) x -> ConwayPParams f era)
-> Generic (ConwayPParams f era)
forall x. Rep (ConwayPParams f era) x -> ConwayPParams f era
forall x. ConwayPParams f era -> Rep (ConwayPParams f era) x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
forall (f :: * -> *) era x.
Rep (ConwayPParams f era) x -> ConwayPParams f era
forall (f :: * -> *) era x.
ConwayPParams f era -> Rep (ConwayPParams f era) x
$cfrom :: forall (f :: * -> *) era x.
ConwayPParams f era -> Rep (ConwayPParams f era) x
from :: forall x. ConwayPParams f era -> Rep (ConwayPParams f era) x
$cto :: forall (f :: * -> *) era x.
Rep (ConwayPParams f era) x -> ConwayPParams f era
to :: forall x. Rep (ConwayPParams f era) x -> ConwayPParams f era
Generic)

deriving instance Eq (ConwayPParams Identity era)

deriving instance Ord (ConwayPParams Identity era)

deriving instance Show (ConwayPParams Identity era)

instance NoThunks (ConwayPParams Identity era)

instance NFData (ConwayPParams Identity era)

deriving instance Eq (ConwayPParams StrictMaybe era)

deriving instance Ord (ConwayPParams StrictMaybe era)

deriving instance Show (ConwayPParams StrictMaybe era)

instance NoThunks (ConwayPParams StrictMaybe era)

instance NFData (ConwayPParams StrictMaybe era)

data UpgradeConwayPParams f = UpgradeConwayPParams
  { forall (f :: * -> *).
UpgradeConwayPParams f -> HKD f PoolVotingThresholds
ucppPoolVotingThresholds :: !(HKD f PoolVotingThresholds)
  , forall (f :: * -> *).
UpgradeConwayPParams f -> HKD f DRepVotingThresholds
ucppDRepVotingThresholds :: !(HKD f DRepVotingThresholds)
  , forall (f :: * -> *). UpgradeConwayPParams f -> HKD f Word16
ucppCommitteeMinSize :: !(HKD f Word16)
  , forall (f :: * -> *). UpgradeConwayPParams f -> HKD f EpochInterval
ucppCommitteeMaxTermLength :: !(HKD f EpochInterval)
  , forall (f :: * -> *). UpgradeConwayPParams f -> HKD f EpochInterval
ucppGovActionLifetime :: !(HKD f EpochInterval)
  , forall (f :: * -> *). UpgradeConwayPParams f -> HKD f Coin
ucppGovActionDeposit :: !(HKD f Coin)
  , forall (f :: * -> *). UpgradeConwayPParams f -> HKD f Coin
ucppDRepDeposit :: !(HKD f Coin)
  , forall (f :: * -> *). UpgradeConwayPParams f -> HKD f EpochInterval
ucppDRepActivity :: !(HKD f EpochInterval)
  , forall (f :: * -> *).
UpgradeConwayPParams f -> HKD f NonNegativeInterval
ucppMinFeeRefScriptCostPerByte :: !(HKD f NonNegativeInterval)
  , forall (f :: * -> *). UpgradeConwayPParams f -> HKD f CostModel
ucppPlutusV3CostModel :: !(HKD f CostModel)
  }
  deriving ((forall x.
 UpgradeConwayPParams f -> Rep (UpgradeConwayPParams f) x)
-> (forall x.
    Rep (UpgradeConwayPParams f) x -> UpgradeConwayPParams f)
-> Generic (UpgradeConwayPParams f)
forall x. Rep (UpgradeConwayPParams f) x -> UpgradeConwayPParams f
forall x. UpgradeConwayPParams f -> Rep (UpgradeConwayPParams f) x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
forall (f :: * -> *) x.
Rep (UpgradeConwayPParams f) x -> UpgradeConwayPParams f
forall (f :: * -> *) x.
UpgradeConwayPParams f -> Rep (UpgradeConwayPParams f) x
$cfrom :: forall (f :: * -> *) x.
UpgradeConwayPParams f -> Rep (UpgradeConwayPParams f) x
from :: forall x. UpgradeConwayPParams f -> Rep (UpgradeConwayPParams f) x
$cto :: forall (f :: * -> *) x.
Rep (UpgradeConwayPParams f) x -> UpgradeConwayPParams f
to :: forall x. Rep (UpgradeConwayPParams f) x -> UpgradeConwayPParams f
Generic)

deriving instance Eq (UpgradeConwayPParams Identity)

deriving instance Ord (UpgradeConwayPParams Identity)

deriving instance Show (UpgradeConwayPParams Identity)

instance NoThunks (UpgradeConwayPParams Identity)

instance NFData (UpgradeConwayPParams Identity)

deriving instance Eq (UpgradeConwayPParams StrictMaybe)

deriving instance Ord (UpgradeConwayPParams StrictMaybe)

deriving instance Show (UpgradeConwayPParams StrictMaybe)

instance NoThunks (UpgradeConwayPParams StrictMaybe)

instance NFData (UpgradeConwayPParams StrictMaybe)

instance Default (UpgradeConwayPParams StrictMaybe) where
  def :: UpgradeConwayPParams StrictMaybe
def =
    UpgradeConwayPParams
      { ucppPoolVotingThresholds :: HKD StrictMaybe PoolVotingThresholds
ucppPoolVotingThresholds = StrictMaybe PoolVotingThresholds
HKD StrictMaybe PoolVotingThresholds
forall a. StrictMaybe a
SNothing
      , ucppDRepVotingThresholds :: HKD StrictMaybe DRepVotingThresholds
ucppDRepVotingThresholds = StrictMaybe DRepVotingThresholds
HKD StrictMaybe DRepVotingThresholds
forall a. StrictMaybe a
SNothing
      , ucppCommitteeMinSize :: HKD StrictMaybe Word16
ucppCommitteeMinSize = StrictMaybe Word16
HKD StrictMaybe Word16
forall a. StrictMaybe a
SNothing
      , ucppCommitteeMaxTermLength :: HKD StrictMaybe EpochInterval
ucppCommitteeMaxTermLength = StrictMaybe EpochInterval
HKD StrictMaybe EpochInterval
forall a. StrictMaybe a
SNothing
      , ucppGovActionLifetime :: HKD StrictMaybe EpochInterval
ucppGovActionLifetime = StrictMaybe EpochInterval
HKD StrictMaybe EpochInterval
forall a. StrictMaybe a
SNothing
      , ucppGovActionDeposit :: HKD StrictMaybe Coin
ucppGovActionDeposit = StrictMaybe Coin
HKD StrictMaybe Coin
forall a. StrictMaybe a
SNothing
      , ucppDRepDeposit :: HKD StrictMaybe Coin
ucppDRepDeposit = StrictMaybe Coin
HKD StrictMaybe Coin
forall a. StrictMaybe a
SNothing
      , ucppDRepActivity :: HKD StrictMaybe EpochInterval
ucppDRepActivity = StrictMaybe EpochInterval
HKD StrictMaybe EpochInterval
forall a. StrictMaybe a
SNothing
      , ucppMinFeeRefScriptCostPerByte :: HKD StrictMaybe NonNegativeInterval
ucppMinFeeRefScriptCostPerByte = StrictMaybe NonNegativeInterval
HKD StrictMaybe NonNegativeInterval
forall a. StrictMaybe a
SNothing
      , ucppPlutusV3CostModel :: HKD StrictMaybe CostModel
ucppPlutusV3CostModel = StrictMaybe CostModel
HKD StrictMaybe CostModel
forall a. StrictMaybe a
SNothing
      }

instance EncCBOR (UpgradeConwayPParams Identity) where
  encCBOR :: UpgradeConwayPParams Identity -> Encoding
encCBOR UpgradeConwayPParams {HKD Identity Word16
HKD Identity CostModel
HKD Identity EpochInterval
HKD Identity NonNegativeInterval
HKD Identity Coin
HKD Identity DRepVotingThresholds
HKD Identity PoolVotingThresholds
ucppPoolVotingThresholds :: forall (f :: * -> *).
UpgradeConwayPParams f -> HKD f PoolVotingThresholds
ucppDRepVotingThresholds :: forall (f :: * -> *).
UpgradeConwayPParams f -> HKD f DRepVotingThresholds
ucppCommitteeMinSize :: forall (f :: * -> *). UpgradeConwayPParams f -> HKD f Word16
ucppCommitteeMaxTermLength :: forall (f :: * -> *). UpgradeConwayPParams f -> HKD f EpochInterval
ucppGovActionLifetime :: forall (f :: * -> *). UpgradeConwayPParams f -> HKD f EpochInterval
ucppGovActionDeposit :: forall (f :: * -> *). UpgradeConwayPParams f -> HKD f Coin
ucppDRepDeposit :: forall (f :: * -> *). UpgradeConwayPParams f -> HKD f Coin
ucppDRepActivity :: forall (f :: * -> *). UpgradeConwayPParams f -> HKD f EpochInterval
ucppMinFeeRefScriptCostPerByte :: forall (f :: * -> *).
UpgradeConwayPParams f -> HKD f NonNegativeInterval
ucppPlutusV3CostModel :: forall (f :: * -> *). UpgradeConwayPParams f -> HKD f CostModel
ucppPoolVotingThresholds :: HKD Identity PoolVotingThresholds
ucppDRepVotingThresholds :: HKD Identity DRepVotingThresholds
ucppCommitteeMinSize :: HKD Identity Word16
ucppCommitteeMaxTermLength :: HKD Identity EpochInterval
ucppGovActionLifetime :: HKD Identity EpochInterval
ucppGovActionDeposit :: HKD Identity Coin
ucppDRepDeposit :: HKD Identity Coin
ucppDRepActivity :: HKD Identity EpochInterval
ucppMinFeeRefScriptCostPerByte :: HKD Identity NonNegativeInterval
ucppPlutusV3CostModel :: HKD Identity CostModel
..} =
    Encode ('Closed 'Dense) (UpgradeConwayPParams Identity) -> Encoding
forall (w :: Wrapped) t. Encode w t -> Encoding
encode (Encode ('Closed 'Dense) (UpgradeConwayPParams Identity)
 -> Encoding)
-> Encode ('Closed 'Dense) (UpgradeConwayPParams Identity)
-> Encoding
forall a b. (a -> b) -> a -> b
$
      (PoolVotingThresholds
 -> DRepVotingThresholds
 -> Word16
 -> EpochInterval
 -> EpochInterval
 -> Coin
 -> Coin
 -> EpochInterval
 -> NonNegativeInterval
 -> CostModel
 -> UpgradeConwayPParams Identity)
-> Encode
     ('Closed 'Dense)
     (PoolVotingThresholds
      -> DRepVotingThresholds
      -> Word16
      -> EpochInterval
      -> EpochInterval
      -> Coin
      -> Coin
      -> EpochInterval
      -> NonNegativeInterval
      -> CostModel
      -> UpgradeConwayPParams Identity)
forall t. t -> Encode ('Closed 'Dense) t
Rec (forall (f :: * -> *).
HKD f PoolVotingThresholds
-> HKD f DRepVotingThresholds
-> HKD f Word16
-> HKD f EpochInterval
-> HKD f EpochInterval
-> HKD f Coin
-> HKD f Coin
-> HKD f EpochInterval
-> HKD f NonNegativeInterval
-> HKD f CostModel
-> UpgradeConwayPParams f
UpgradeConwayPParams @Identity)
        Encode
  ('Closed 'Dense)
  (PoolVotingThresholds
   -> DRepVotingThresholds
   -> Word16
   -> EpochInterval
   -> EpochInterval
   -> Coin
   -> Coin
   -> EpochInterval
   -> NonNegativeInterval
   -> CostModel
   -> UpgradeConwayPParams Identity)
-> Encode ('Closed 'Dense) PoolVotingThresholds
-> Encode
     ('Closed 'Dense)
     (DRepVotingThresholds
      -> Word16
      -> EpochInterval
      -> EpochInterval
      -> Coin
      -> Coin
      -> EpochInterval
      -> NonNegativeInterval
      -> CostModel
      -> UpgradeConwayPParams Identity)
forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode ('Closed r) a -> Encode w t
!> PoolVotingThresholds
-> Encode ('Closed 'Dense) PoolVotingThresholds
forall t. EncCBOR t => t -> Encode ('Closed 'Dense) t
To HKD Identity PoolVotingThresholds
PoolVotingThresholds
ucppPoolVotingThresholds
        Encode
  ('Closed 'Dense)
  (DRepVotingThresholds
   -> Word16
   -> EpochInterval
   -> EpochInterval
   -> Coin
   -> Coin
   -> EpochInterval
   -> NonNegativeInterval
   -> CostModel
   -> UpgradeConwayPParams Identity)
-> Encode ('Closed 'Dense) DRepVotingThresholds
-> Encode
     ('Closed 'Dense)
     (Word16
      -> EpochInterval
      -> EpochInterval
      -> Coin
      -> Coin
      -> EpochInterval
      -> NonNegativeInterval
      -> CostModel
      -> UpgradeConwayPParams Identity)
forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode ('Closed r) a -> Encode w t
!> DRepVotingThresholds
-> Encode ('Closed 'Dense) DRepVotingThresholds
forall t. EncCBOR t => t -> Encode ('Closed 'Dense) t
To HKD Identity DRepVotingThresholds
DRepVotingThresholds
ucppDRepVotingThresholds
        Encode
  ('Closed 'Dense)
  (Word16
   -> EpochInterval
   -> EpochInterval
   -> Coin
   -> Coin
   -> EpochInterval
   -> NonNegativeInterval
   -> CostModel
   -> UpgradeConwayPParams Identity)
-> Encode ('Closed 'Dense) Word16
-> Encode
     ('Closed 'Dense)
     (EpochInterval
      -> EpochInterval
      -> Coin
      -> Coin
      -> EpochInterval
      -> NonNegativeInterval
      -> CostModel
      -> UpgradeConwayPParams Identity)
forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode ('Closed r) a -> Encode w t
!> Word16 -> Encode ('Closed 'Dense) Word16
forall t. EncCBOR t => t -> Encode ('Closed 'Dense) t
To Word16
HKD Identity Word16
ucppCommitteeMinSize
        Encode
  ('Closed 'Dense)
  (EpochInterval
   -> EpochInterval
   -> Coin
   -> Coin
   -> EpochInterval
   -> NonNegativeInterval
   -> CostModel
   -> UpgradeConwayPParams Identity)
-> Encode ('Closed 'Dense) EpochInterval
-> Encode
     ('Closed 'Dense)
     (EpochInterval
      -> Coin
      -> Coin
      -> EpochInterval
      -> NonNegativeInterval
      -> CostModel
      -> UpgradeConwayPParams Identity)
forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode ('Closed r) a -> Encode w t
!> EpochInterval -> Encode ('Closed 'Dense) EpochInterval
forall t. EncCBOR t => t -> Encode ('Closed 'Dense) t
To EpochInterval
HKD Identity EpochInterval
ucppCommitteeMaxTermLength
        Encode
  ('Closed 'Dense)
  (EpochInterval
   -> Coin
   -> Coin
   -> EpochInterval
   -> NonNegativeInterval
   -> CostModel
   -> UpgradeConwayPParams Identity)
-> Encode ('Closed 'Dense) EpochInterval
-> Encode
     ('Closed 'Dense)
     (Coin
      -> Coin
      -> EpochInterval
      -> NonNegativeInterval
      -> CostModel
      -> UpgradeConwayPParams Identity)
forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode ('Closed r) a -> Encode w t
!> EpochInterval -> Encode ('Closed 'Dense) EpochInterval
forall t. EncCBOR t => t -> Encode ('Closed 'Dense) t
To EpochInterval
HKD Identity EpochInterval
ucppGovActionLifetime
        Encode
  ('Closed 'Dense)
  (Coin
   -> Coin
   -> EpochInterval
   -> NonNegativeInterval
   -> CostModel
   -> UpgradeConwayPParams Identity)
-> Encode ('Closed 'Dense) Coin
-> Encode
     ('Closed 'Dense)
     (Coin
      -> EpochInterval
      -> NonNegativeInterval
      -> CostModel
      -> UpgradeConwayPParams Identity)
forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode ('Closed r) a -> Encode w t
!> Coin -> Encode ('Closed 'Dense) Coin
forall t. EncCBOR t => t -> Encode ('Closed 'Dense) t
To HKD Identity Coin
Coin
ucppGovActionDeposit
        Encode
  ('Closed 'Dense)
  (Coin
   -> EpochInterval
   -> NonNegativeInterval
   -> CostModel
   -> UpgradeConwayPParams Identity)
-> Encode ('Closed 'Dense) Coin
-> Encode
     ('Closed 'Dense)
     (EpochInterval
      -> NonNegativeInterval
      -> CostModel
      -> UpgradeConwayPParams Identity)
forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode ('Closed r) a -> Encode w t
!> Coin -> Encode ('Closed 'Dense) Coin
forall t. EncCBOR t => t -> Encode ('Closed 'Dense) t
To HKD Identity Coin
Coin
ucppDRepDeposit
        Encode
  ('Closed 'Dense)
  (EpochInterval
   -> NonNegativeInterval
   -> CostModel
   -> UpgradeConwayPParams Identity)
-> Encode ('Closed 'Dense) EpochInterval
-> Encode
     ('Closed 'Dense)
     (NonNegativeInterval -> CostModel -> UpgradeConwayPParams Identity)
forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode ('Closed r) a -> Encode w t
!> EpochInterval -> Encode ('Closed 'Dense) EpochInterval
forall t. EncCBOR t => t -> Encode ('Closed 'Dense) t
To EpochInterval
HKD Identity EpochInterval
ucppDRepActivity
        Encode
  ('Closed 'Dense)
  (NonNegativeInterval -> CostModel -> UpgradeConwayPParams Identity)
-> Encode ('Closed 'Dense) NonNegativeInterval
-> Encode
     ('Closed 'Dense) (CostModel -> UpgradeConwayPParams Identity)
forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode ('Closed r) a -> Encode w t
!> NonNegativeInterval -> Encode ('Closed 'Dense) NonNegativeInterval
forall t. EncCBOR t => t -> Encode ('Closed 'Dense) t
To HKD Identity NonNegativeInterval
NonNegativeInterval
ucppMinFeeRefScriptCostPerByte
        Encode
  ('Closed 'Dense) (CostModel -> UpgradeConwayPParams Identity)
-> Encode ('Closed 'Dense) CostModel
-> Encode ('Closed 'Dense) (UpgradeConwayPParams Identity)
forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode ('Closed r) a -> Encode w t
!> (CostModel -> Encoding)
-> CostModel -> Encode ('Closed 'Dense) CostModel
forall t. (t -> Encoding) -> t -> Encode ('Closed 'Dense) t
E CostModel -> Encoding
encodeCostModel CostModel
HKD Identity CostModel
ucppPlutusV3CostModel

instance DecCBOR (UpgradeConwayPParams Identity) where
  decCBOR :: forall s. Decoder s (UpgradeConwayPParams Identity)
decCBOR =
    Decode ('Closed 'Dense) (UpgradeConwayPParams Identity)
-> Decoder s (UpgradeConwayPParams Identity)
forall t (w :: Wrapped) s. Typeable t => Decode w t -> Decoder s t
decode (Decode ('Closed 'Dense) (UpgradeConwayPParams Identity)
 -> Decoder s (UpgradeConwayPParams Identity))
-> Decode ('Closed 'Dense) (UpgradeConwayPParams Identity)
-> Decoder s (UpgradeConwayPParams Identity)
forall a b. (a -> b) -> a -> b
$
      (PoolVotingThresholds
 -> DRepVotingThresholds
 -> Word16
 -> EpochInterval
 -> EpochInterval
 -> Coin
 -> Coin
 -> EpochInterval
 -> NonNegativeInterval
 -> CostModel
 -> UpgradeConwayPParams Identity)
-> Decode
     ('Closed 'Dense)
     (PoolVotingThresholds
      -> DRepVotingThresholds
      -> Word16
      -> EpochInterval
      -> EpochInterval
      -> Coin
      -> Coin
      -> EpochInterval
      -> NonNegativeInterval
      -> CostModel
      -> UpgradeConwayPParams Identity)
forall t. t -> Decode ('Closed 'Dense) t
RecD HKD Identity PoolVotingThresholds
-> HKD Identity DRepVotingThresholds
-> HKD Identity Word16
-> HKD Identity EpochInterval
-> HKD Identity EpochInterval
-> HKD Identity Coin
-> HKD Identity Coin
-> HKD Identity EpochInterval
-> HKD Identity NonNegativeInterval
-> HKD Identity CostModel
-> UpgradeConwayPParams Identity
PoolVotingThresholds
-> DRepVotingThresholds
-> Word16
-> EpochInterval
-> EpochInterval
-> Coin
-> Coin
-> EpochInterval
-> NonNegativeInterval
-> CostModel
-> UpgradeConwayPParams Identity
forall (f :: * -> *).
HKD f PoolVotingThresholds
-> HKD f DRepVotingThresholds
-> HKD f Word16
-> HKD f EpochInterval
-> HKD f EpochInterval
-> HKD f Coin
-> HKD f Coin
-> HKD f EpochInterval
-> HKD f NonNegativeInterval
-> HKD f CostModel
-> UpgradeConwayPParams f
UpgradeConwayPParams
        Decode
  ('Closed 'Dense)
  (PoolVotingThresholds
   -> DRepVotingThresholds
   -> Word16
   -> EpochInterval
   -> EpochInterval
   -> Coin
   -> Coin
   -> EpochInterval
   -> NonNegativeInterval
   -> CostModel
   -> UpgradeConwayPParams Identity)
-> Decode ('Closed Any) PoolVotingThresholds
-> Decode
     ('Closed 'Dense)
     (DRepVotingThresholds
      -> Word16
      -> EpochInterval
      -> EpochInterval
      -> Coin
      -> Coin
      -> EpochInterval
      -> NonNegativeInterval
      -> CostModel
      -> UpgradeConwayPParams Identity)
forall a (w1 :: Wrapped) t (w :: Density).
Typeable a =>
Decode w1 (a -> t) -> Decode ('Closed w) a -> Decode w1 t
<! Decode ('Closed Any) PoolVotingThresholds
forall t (w :: Wrapped). DecCBOR t => Decode w t
From
        Decode
  ('Closed 'Dense)
  (DRepVotingThresholds
   -> Word16
   -> EpochInterval
   -> EpochInterval
   -> Coin
   -> Coin
   -> EpochInterval
   -> NonNegativeInterval
   -> CostModel
   -> UpgradeConwayPParams Identity)
-> Decode ('Closed Any) DRepVotingThresholds
-> Decode
     ('Closed 'Dense)
     (Word16
      -> EpochInterval
      -> EpochInterval
      -> Coin
      -> Coin
      -> EpochInterval
      -> NonNegativeInterval
      -> CostModel
      -> UpgradeConwayPParams Identity)
forall a (w1 :: Wrapped) t (w :: Density).
Typeable a =>
Decode w1 (a -> t) -> Decode ('Closed w) a -> Decode w1 t
<! Decode ('Closed Any) DRepVotingThresholds
forall t (w :: Wrapped). DecCBOR t => Decode w t
From
        Decode
  ('Closed 'Dense)
  (Word16
   -> EpochInterval
   -> EpochInterval
   -> Coin
   -> Coin
   -> EpochInterval
   -> NonNegativeInterval
   -> CostModel
   -> UpgradeConwayPParams Identity)
-> Decode ('Closed Any) Word16
-> Decode
     ('Closed 'Dense)
     (EpochInterval
      -> EpochInterval
      -> Coin
      -> Coin
      -> EpochInterval
      -> NonNegativeInterval
      -> CostModel
      -> UpgradeConwayPParams Identity)
forall a (w1 :: Wrapped) t (w :: Density).
Typeable a =>
Decode w1 (a -> t) -> Decode ('Closed w) a -> Decode w1 t
<! Decode ('Closed Any) Word16
forall t (w :: Wrapped). DecCBOR t => Decode w t
From
        Decode
  ('Closed 'Dense)
  (EpochInterval
   -> EpochInterval
   -> Coin
   -> Coin
   -> EpochInterval
   -> NonNegativeInterval
   -> CostModel
   -> UpgradeConwayPParams Identity)
-> Decode ('Closed Any) EpochInterval
-> Decode
     ('Closed 'Dense)
     (EpochInterval
      -> Coin
      -> Coin
      -> EpochInterval
      -> NonNegativeInterval
      -> CostModel
      -> UpgradeConwayPParams Identity)
forall a (w1 :: Wrapped) t (w :: Density).
Typeable a =>
Decode w1 (a -> t) -> Decode ('Closed w) a -> Decode w1 t
<! Decode ('Closed Any) EpochInterval
forall t (w :: Wrapped). DecCBOR t => Decode w t
From
        Decode
  ('Closed 'Dense)
  (EpochInterval
   -> Coin
   -> Coin
   -> EpochInterval
   -> NonNegativeInterval
   -> CostModel
   -> UpgradeConwayPParams Identity)
-> Decode ('Closed Any) EpochInterval
-> Decode
     ('Closed 'Dense)
     (Coin
      -> Coin
      -> EpochInterval
      -> NonNegativeInterval
      -> CostModel
      -> UpgradeConwayPParams Identity)
forall a (w1 :: Wrapped) t (w :: Density).
Typeable a =>
Decode w1 (a -> t) -> Decode ('Closed w) a -> Decode w1 t
<! Decode ('Closed Any) EpochInterval
forall t (w :: Wrapped). DecCBOR t => Decode w t
From
        Decode
  ('Closed 'Dense)
  (Coin
   -> Coin
   -> EpochInterval
   -> NonNegativeInterval
   -> CostModel
   -> UpgradeConwayPParams Identity)
-> Decode ('Closed Any) Coin
-> Decode
     ('Closed 'Dense)
     (Coin
      -> EpochInterval
      -> NonNegativeInterval
      -> CostModel
      -> UpgradeConwayPParams Identity)
forall a (w1 :: Wrapped) t (w :: Density).
Typeable a =>
Decode w1 (a -> t) -> Decode ('Closed w) a -> Decode w1 t
<! Decode ('Closed Any) Coin
forall t (w :: Wrapped). DecCBOR t => Decode w t
From
        Decode
  ('Closed 'Dense)
  (Coin
   -> EpochInterval
   -> NonNegativeInterval
   -> CostModel
   -> UpgradeConwayPParams Identity)
-> Decode ('Closed Any) Coin
-> Decode
     ('Closed 'Dense)
     (EpochInterval
      -> NonNegativeInterval
      -> CostModel
      -> UpgradeConwayPParams Identity)
forall a (w1 :: Wrapped) t (w :: Density).
Typeable a =>
Decode w1 (a -> t) -> Decode ('Closed w) a -> Decode w1 t
<! Decode ('Closed Any) Coin
forall t (w :: Wrapped). DecCBOR t => Decode w t
From
        Decode
  ('Closed 'Dense)
  (EpochInterval
   -> NonNegativeInterval
   -> CostModel
   -> UpgradeConwayPParams Identity)
-> Decode ('Closed Any) EpochInterval
-> Decode
     ('Closed 'Dense)
     (NonNegativeInterval -> CostModel -> UpgradeConwayPParams Identity)
forall a (w1 :: Wrapped) t (w :: Density).
Typeable a =>
Decode w1 (a -> t) -> Decode ('Closed w) a -> Decode w1 t
<! Decode ('Closed Any) EpochInterval
forall t (w :: Wrapped). DecCBOR t => Decode w t
From
        Decode
  ('Closed 'Dense)
  (NonNegativeInterval -> CostModel -> UpgradeConwayPParams Identity)
-> Decode ('Closed Any) NonNegativeInterval
-> Decode
     ('Closed 'Dense) (CostModel -> UpgradeConwayPParams Identity)
forall a (w1 :: Wrapped) t (w :: Density).
Typeable a =>
Decode w1 (a -> t) -> Decode ('Closed w) a -> Decode w1 t
<! Decode ('Closed Any) NonNegativeInterval
forall t (w :: Wrapped). DecCBOR t => Decode w t
From
        Decode
  ('Closed 'Dense) (CostModel -> UpgradeConwayPParams Identity)
-> Decode ('Closed 'Dense) CostModel
-> Decode ('Closed 'Dense) (UpgradeConwayPParams Identity)
forall a (w1 :: Wrapped) t (w :: Density).
Typeable a =>
Decode w1 (a -> t) -> Decode ('Closed w) a -> Decode w1 t
<! (forall s. Decoder s CostModel)
-> Decode ('Closed 'Dense) CostModel
forall t. (forall s. Decoder s t) -> Decode ('Closed 'Dense) t
D (Language -> Decoder s CostModel
forall s. Language -> Decoder s CostModel
decodeCostModel Language
PlutusV3)

instance EraPParams ConwayEra where
  type PParamsHKD f ConwayEra = ConwayPParams f ConwayEra
  type UpgradePParams f ConwayEra = UpgradeConwayPParams f
  type DowngradePParams f ConwayEra = ()

  applyPPUpdates :: PParams ConwayEra -> PParamsUpdate ConwayEra -> PParams ConwayEra
applyPPUpdates (PParams PParamsHKD Identity ConwayEra
pp) (PParamsUpdate PParamsHKD StrictMaybe ConwayEra
ppu) =
    PParamsHKD Identity ConwayEra -> PParams ConwayEra
forall era. PParamsHKD Identity era -> PParams era
PParams (PParamsHKD Identity ConwayEra -> PParams ConwayEra)
-> PParamsHKD Identity ConwayEra -> PParams ConwayEra
forall a b. (a -> b) -> a -> b
$ ConwayPParams Identity ConwayEra
-> ConwayPParams StrictMaybe ConwayEra
-> ConwayPParams Identity ConwayEra
forall era.
ConwayPParams Identity era
-> ConwayPParams StrictMaybe era -> ConwayPParams Identity era
conwayApplyPPUpdates PParamsHKD Identity ConwayEra
ConwayPParams Identity ConwayEra
pp PParamsHKD StrictMaybe ConwayEra
ConwayPParams StrictMaybe ConwayEra
ppu

  emptyPParamsIdentity :: PParamsHKD Identity ConwayEra
emptyPParamsIdentity = PParamsHKD Identity ConwayEra
ConwayPParams Identity ConwayEra
forall era. Era era => ConwayPParams Identity era
emptyConwayPParams
  emptyPParamsStrictMaybe :: PParamsHKD StrictMaybe ConwayEra
emptyPParamsStrictMaybe = PParamsHKD StrictMaybe ConwayEra
ConwayPParams StrictMaybe ConwayEra
forall era. ConwayPParams StrictMaybe era
emptyConwayPParamsUpdate

  upgradePParamsHKD :: forall (f :: * -> *).
(HKDApplicative f, EraPParams (PreviousEra ConwayEra)) =>
UpgradePParams f ConwayEra
-> PParamsHKD f (PreviousEra ConwayEra) -> PParamsHKD f ConwayEra
upgradePParamsHKD = UpgradePParams f ConwayEra
-> PParamsHKD f (PreviousEra ConwayEra) -> PParamsHKD f ConwayEra
UpgradeConwayPParams f
-> PParamsHKD f BabbageEra -> ConwayPParams f ConwayEra
forall (f :: * -> *).
HKDApplicative f =>
UpgradeConwayPParams f
-> PParamsHKD f BabbageEra -> ConwayPParams f ConwayEra
upgradeConwayPParams
  downgradePParamsHKD :: forall (f :: * -> *).
(HKDFunctor f, EraPParams (PreviousEra ConwayEra)) =>
DowngradePParams f ConwayEra
-> PParamsHKD f ConwayEra -> PParamsHKD f (PreviousEra ConwayEra)
downgradePParamsHKD () = PParamsHKD f ConwayEra -> PParamsHKD f (PreviousEra ConwayEra)
ConwayPParams f ConwayEra -> PParamsHKD f BabbageEra
forall (f :: * -> *).
HKDFunctor f =>
ConwayPParams f ConwayEra -> PParamsHKD f BabbageEra
downgradeConwayPParams

  hkdMinFeeAL :: forall (f :: * -> *).
HKDFunctor f =>
Lens' (PParamsHKD f ConwayEra) (HKD f Coin)
hkdMinFeeAL = (PParamsHKD f ConwayEra -> HKD f Coin)
-> (PParamsHKD f ConwayEra -> HKD f Coin -> PParamsHKD f ConwayEra)
-> forall {f :: * -> *}.
   Functor f =>
   (HKD f Coin -> f (HKD f Coin))
   -> PParamsHKD f ConwayEra -> f (PParamsHKD f ConwayEra)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens (THKD ('PPGroups 'EconomicGroup 'SecurityGroup) f Coin -> HKD f Coin
forall (t :: PPGroups) (f :: * -> *) a. THKD t f a -> HKD f a
unTHKD (THKD ('PPGroups 'EconomicGroup 'SecurityGroup) f Coin
 -> HKD f Coin)
-> (ConwayPParams f ConwayEra
    -> THKD ('PPGroups 'EconomicGroup 'SecurityGroup) f Coin)
-> ConwayPParams f ConwayEra
-> HKD f Coin
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ConwayPParams f ConwayEra
-> THKD ('PPGroups 'EconomicGroup 'SecurityGroup) f Coin
forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'EconomicGroup 'SecurityGroup) f Coin
cppMinFeeA) ((PParamsHKD f ConwayEra -> HKD f Coin -> PParamsHKD f ConwayEra)
 -> forall {f :: * -> *}.
    Functor f =>
    (HKD f Coin -> f (HKD f Coin))
    -> PParamsHKD f ConwayEra -> f (PParamsHKD f ConwayEra))
-> (PParamsHKD f ConwayEra -> HKD f Coin -> PParamsHKD f ConwayEra)
-> forall {f :: * -> *}.
   Functor f =>
   (HKD f Coin -> f (HKD f Coin))
   -> PParamsHKD f ConwayEra -> f (PParamsHKD f ConwayEra)
forall a b. (a -> b) -> a -> b
$ \PParamsHKD f ConwayEra
pp HKD f Coin
x -> PParamsHKD f ConwayEra
pp {cppMinFeeA = THKD x}
  hkdMinFeeBL :: forall (f :: * -> *).
HKDFunctor f =>
Lens' (PParamsHKD f ConwayEra) (HKD f Coin)
hkdMinFeeBL = (PParamsHKD f ConwayEra -> HKD f Coin)
-> (PParamsHKD f ConwayEra -> HKD f Coin -> PParamsHKD f ConwayEra)
-> forall {f :: * -> *}.
   Functor f =>
   (HKD f Coin -> f (HKD f Coin))
   -> PParamsHKD f ConwayEra -> f (PParamsHKD f ConwayEra)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens (THKD ('PPGroups 'EconomicGroup 'SecurityGroup) f Coin -> HKD f Coin
forall (t :: PPGroups) (f :: * -> *) a. THKD t f a -> HKD f a
unTHKD (THKD ('PPGroups 'EconomicGroup 'SecurityGroup) f Coin
 -> HKD f Coin)
-> (ConwayPParams f ConwayEra
    -> THKD ('PPGroups 'EconomicGroup 'SecurityGroup) f Coin)
-> ConwayPParams f ConwayEra
-> HKD f Coin
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ConwayPParams f ConwayEra
-> THKD ('PPGroups 'EconomicGroup 'SecurityGroup) f Coin
forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'EconomicGroup 'SecurityGroup) f Coin
cppMinFeeB) ((PParamsHKD f ConwayEra -> HKD f Coin -> PParamsHKD f ConwayEra)
 -> forall {f :: * -> *}.
    Functor f =>
    (HKD f Coin -> f (HKD f Coin))
    -> PParamsHKD f ConwayEra -> f (PParamsHKD f ConwayEra))
-> (PParamsHKD f ConwayEra -> HKD f Coin -> PParamsHKD f ConwayEra)
-> forall {f :: * -> *}.
   Functor f =>
   (HKD f Coin -> f (HKD f Coin))
   -> PParamsHKD f ConwayEra -> f (PParamsHKD f ConwayEra)
forall a b. (a -> b) -> a -> b
$ \PParamsHKD f ConwayEra
pp HKD f Coin
x -> PParamsHKD f ConwayEra
pp {cppMinFeeB = THKD x}
  hkdMaxBBSizeL :: forall (f :: * -> *).
HKDFunctor f =>
Lens' (PParamsHKD f ConwayEra) (HKD f Word32)
hkdMaxBBSizeL = (PParamsHKD f ConwayEra -> HKD f Word32)
-> (PParamsHKD f ConwayEra
    -> HKD f Word32 -> PParamsHKD f ConwayEra)
-> forall {f :: * -> *}.
   Functor f =>
   (HKD f Word32 -> f (HKD f Word32))
   -> PParamsHKD f ConwayEra -> f (PParamsHKD f ConwayEra)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens (THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f Word32
-> HKD f Word32
forall (t :: PPGroups) (f :: * -> *) a. THKD t f a -> HKD f a
unTHKD (THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f Word32
 -> HKD f Word32)
-> (ConwayPParams f ConwayEra
    -> THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f Word32)
-> ConwayPParams f ConwayEra
-> HKD f Word32
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ConwayPParams f ConwayEra
-> THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f Word32
forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f Word32
cppMaxBBSize) ((PParamsHKD f ConwayEra -> HKD f Word32 -> PParamsHKD f ConwayEra)
 -> forall {f :: * -> *}.
    Functor f =>
    (HKD f Word32 -> f (HKD f Word32))
    -> PParamsHKD f ConwayEra -> f (PParamsHKD f ConwayEra))
-> (PParamsHKD f ConwayEra
    -> HKD f Word32 -> PParamsHKD f ConwayEra)
-> forall {f :: * -> *}.
   Functor f =>
   (HKD f Word32 -> f (HKD f Word32))
   -> PParamsHKD f ConwayEra -> f (PParamsHKD f ConwayEra)
forall a b. (a -> b) -> a -> b
$ \PParamsHKD f ConwayEra
pp HKD f Word32
x -> PParamsHKD f ConwayEra
pp {cppMaxBBSize = THKD x}
  hkdMaxTxSizeL :: forall (f :: * -> *).
HKDFunctor f =>
Lens' (PParamsHKD f ConwayEra) (HKD f Word32)
hkdMaxTxSizeL = (PParamsHKD f ConwayEra -> HKD f Word32)
-> (PParamsHKD f ConwayEra
    -> HKD f Word32 -> PParamsHKD f ConwayEra)
-> forall {f :: * -> *}.
   Functor f =>
   (HKD f Word32 -> f (HKD f Word32))
   -> PParamsHKD f ConwayEra -> f (PParamsHKD f ConwayEra)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens (THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f Word32
-> HKD f Word32
forall (t :: PPGroups) (f :: * -> *) a. THKD t f a -> HKD f a
unTHKD (THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f Word32
 -> HKD f Word32)
-> (ConwayPParams f ConwayEra
    -> THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f Word32)
-> ConwayPParams f ConwayEra
-> HKD f Word32
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ConwayPParams f ConwayEra
-> THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f Word32
forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f Word32
cppMaxTxSize) ((PParamsHKD f ConwayEra -> HKD f Word32 -> PParamsHKD f ConwayEra)
 -> forall {f :: * -> *}.
    Functor f =>
    (HKD f Word32 -> f (HKD f Word32))
    -> PParamsHKD f ConwayEra -> f (PParamsHKD f ConwayEra))
-> (PParamsHKD f ConwayEra
    -> HKD f Word32 -> PParamsHKD f ConwayEra)
-> forall {f :: * -> *}.
   Functor f =>
   (HKD f Word32 -> f (HKD f Word32))
   -> PParamsHKD f ConwayEra -> f (PParamsHKD f ConwayEra)
forall a b. (a -> b) -> a -> b
$ \PParamsHKD f ConwayEra
pp HKD f Word32
x -> PParamsHKD f ConwayEra
pp {cppMaxTxSize = THKD x}
  hkdMaxBHSizeL :: forall (f :: * -> *).
HKDFunctor f =>
Lens' (PParamsHKD f ConwayEra) (HKD f Word16)
hkdMaxBHSizeL = (PParamsHKD f ConwayEra -> HKD f Word16)
-> (PParamsHKD f ConwayEra
    -> HKD f Word16 -> PParamsHKD f ConwayEra)
-> forall {f :: * -> *}.
   Functor f =>
   (HKD f Word16 -> f (HKD f Word16))
   -> PParamsHKD f ConwayEra -> f (PParamsHKD f ConwayEra)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens (THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f Word16
-> HKD f Word16
forall (t :: PPGroups) (f :: * -> *) a. THKD t f a -> HKD f a
unTHKD (THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f Word16
 -> HKD f Word16)
-> (ConwayPParams f ConwayEra
    -> THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f Word16)
-> ConwayPParams f ConwayEra
-> HKD f Word16
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ConwayPParams f ConwayEra
-> THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f Word16
forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f Word16
cppMaxBHSize) ((PParamsHKD f ConwayEra -> HKD f Word16 -> PParamsHKD f ConwayEra)
 -> forall {f :: * -> *}.
    Functor f =>
    (HKD f Word16 -> f (HKD f Word16))
    -> PParamsHKD f ConwayEra -> f (PParamsHKD f ConwayEra))
-> (PParamsHKD f ConwayEra
    -> HKD f Word16 -> PParamsHKD f ConwayEra)
-> forall {f :: * -> *}.
   Functor f =>
   (HKD f Word16 -> f (HKD f Word16))
   -> PParamsHKD f ConwayEra -> f (PParamsHKD f ConwayEra)
forall a b. (a -> b) -> a -> b
$ \PParamsHKD f ConwayEra
pp HKD f Word16
x -> PParamsHKD f ConwayEra
pp {cppMaxBHSize = THKD x}
  hkdKeyDepositL :: forall (f :: * -> *).
HKDFunctor f =>
Lens' (PParamsHKD f ConwayEra) (HKD f Coin)
hkdKeyDepositL = (PParamsHKD f ConwayEra -> HKD f Coin)
-> (PParamsHKD f ConwayEra -> HKD f Coin -> PParamsHKD f ConwayEra)
-> forall {f :: * -> *}.
   Functor f =>
   (HKD f Coin -> f (HKD f Coin))
   -> PParamsHKD f ConwayEra -> f (PParamsHKD f ConwayEra)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens (THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f Coin
-> HKD f Coin
forall (t :: PPGroups) (f :: * -> *) a. THKD t f a -> HKD f a
unTHKD (THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f Coin
 -> HKD f Coin)
-> (ConwayPParams f ConwayEra
    -> THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f Coin)
-> ConwayPParams f ConwayEra
-> HKD f Coin
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ConwayPParams f ConwayEra
-> THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f Coin
forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f Coin
cppKeyDeposit) ((PParamsHKD f ConwayEra -> HKD f Coin -> PParamsHKD f ConwayEra)
 -> forall {f :: * -> *}.
    Functor f =>
    (HKD f Coin -> f (HKD f Coin))
    -> PParamsHKD f ConwayEra -> f (PParamsHKD f ConwayEra))
-> (PParamsHKD f ConwayEra -> HKD f Coin -> PParamsHKD f ConwayEra)
-> forall {f :: * -> *}.
   Functor f =>
   (HKD f Coin -> f (HKD f Coin))
   -> PParamsHKD f ConwayEra -> f (PParamsHKD f ConwayEra)
forall a b. (a -> b) -> a -> b
$ \PParamsHKD f ConwayEra
pp HKD f Coin
x -> PParamsHKD f ConwayEra
pp {cppKeyDeposit = THKD x}
  hkdPoolDepositL :: forall (f :: * -> *).
HKDFunctor f =>
Lens' (PParamsHKD f ConwayEra) (HKD f Coin)
hkdPoolDepositL = (PParamsHKD f ConwayEra -> HKD f Coin)
-> (PParamsHKD f ConwayEra -> HKD f Coin -> PParamsHKD f ConwayEra)
-> forall {f :: * -> *}.
   Functor f =>
   (HKD f Coin -> f (HKD f Coin))
   -> PParamsHKD f ConwayEra -> f (PParamsHKD f ConwayEra)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens (THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f Coin
-> HKD f Coin
forall (t :: PPGroups) (f :: * -> *) a. THKD t f a -> HKD f a
unTHKD (THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f Coin
 -> HKD f Coin)
-> (ConwayPParams f ConwayEra
    -> THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f Coin)
-> ConwayPParams f ConwayEra
-> HKD f Coin
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ConwayPParams f ConwayEra
-> THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f Coin
forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f Coin
cppPoolDeposit) ((PParamsHKD f ConwayEra -> HKD f Coin -> PParamsHKD f ConwayEra)
 -> forall {f :: * -> *}.
    Functor f =>
    (HKD f Coin -> f (HKD f Coin))
    -> PParamsHKD f ConwayEra -> f (PParamsHKD f ConwayEra))
-> (PParamsHKD f ConwayEra -> HKD f Coin -> PParamsHKD f ConwayEra)
-> forall {f :: * -> *}.
   Functor f =>
   (HKD f Coin -> f (HKD f Coin))
   -> PParamsHKD f ConwayEra -> f (PParamsHKD f ConwayEra)
forall a b. (a -> b) -> a -> b
$ \PParamsHKD f ConwayEra
pp HKD f Coin
x -> PParamsHKD f ConwayEra
pp {cppPoolDeposit = THKD x}
  hkdEMaxL :: forall (f :: * -> *).
HKDFunctor f =>
Lens' (PParamsHKD f ConwayEra) (HKD f EpochInterval)
hkdEMaxL = (PParamsHKD f ConwayEra -> HKD f EpochInterval)
-> (PParamsHKD f ConwayEra
    -> HKD f EpochInterval -> PParamsHKD f ConwayEra)
-> forall {f :: * -> *}.
   Functor f =>
   (HKD f EpochInterval -> f (HKD f EpochInterval))
   -> PParamsHKD f ConwayEra -> f (PParamsHKD f ConwayEra)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens (THKD ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f EpochInterval
-> HKD f EpochInterval
forall (t :: PPGroups) (f :: * -> *) a. THKD t f a -> HKD f a
unTHKD (THKD ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f EpochInterval
 -> HKD f EpochInterval)
-> (ConwayPParams f ConwayEra
    -> THKD
         ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f EpochInterval)
-> ConwayPParams f ConwayEra
-> HKD f EpochInterval
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ConwayPParams f ConwayEra
-> THKD
     ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f EpochInterval
forall (f :: * -> *) era.
ConwayPParams f era
-> THKD
     ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f EpochInterval
cppEMax) ((PParamsHKD f ConwayEra
  -> HKD f EpochInterval -> PParamsHKD f ConwayEra)
 -> forall {f :: * -> *}.
    Functor f =>
    (HKD f EpochInterval -> f (HKD f EpochInterval))
    -> PParamsHKD f ConwayEra -> f (PParamsHKD f ConwayEra))
-> (PParamsHKD f ConwayEra
    -> HKD f EpochInterval -> PParamsHKD f ConwayEra)
-> forall {f :: * -> *}.
   Functor f =>
   (HKD f EpochInterval -> f (HKD f EpochInterval))
   -> PParamsHKD f ConwayEra -> f (PParamsHKD f ConwayEra)
forall a b. (a -> b) -> a -> b
$ \PParamsHKD f ConwayEra
pp HKD f EpochInterval
x -> PParamsHKD f ConwayEra
pp {cppEMax = THKD x}
  hkdNOptL :: forall (f :: * -> *).
HKDFunctor f =>
Lens' (PParamsHKD f ConwayEra) (HKD f Word16)
hkdNOptL = (PParamsHKD f ConwayEra -> HKD f Word16)
-> (PParamsHKD f ConwayEra
    -> HKD f Word16 -> PParamsHKD f ConwayEra)
-> forall {f :: * -> *}.
   Functor f =>
   (HKD f Word16 -> f (HKD f Word16))
   -> PParamsHKD f ConwayEra -> f (PParamsHKD f ConwayEra)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens (THKD ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f Word16
-> HKD f Word16
forall (t :: PPGroups) (f :: * -> *) a. THKD t f a -> HKD f a
unTHKD (THKD ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f Word16
 -> HKD f Word16)
-> (ConwayPParams f ConwayEra
    -> THKD ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f Word16)
-> ConwayPParams f ConwayEra
-> HKD f Word16
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ConwayPParams f ConwayEra
-> THKD ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f Word16
forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f Word16
cppNOpt) ((PParamsHKD f ConwayEra -> HKD f Word16 -> PParamsHKD f ConwayEra)
 -> forall {f :: * -> *}.
    Functor f =>
    (HKD f Word16 -> f (HKD f Word16))
    -> PParamsHKD f ConwayEra -> f (PParamsHKD f ConwayEra))
-> (PParamsHKD f ConwayEra
    -> HKD f Word16 -> PParamsHKD f ConwayEra)
-> forall {f :: * -> *}.
   Functor f =>
   (HKD f Word16 -> f (HKD f Word16))
   -> PParamsHKD f ConwayEra -> f (PParamsHKD f ConwayEra)
forall a b. (a -> b) -> a -> b
$ \PParamsHKD f ConwayEra
pp HKD f Word16
x -> PParamsHKD f ConwayEra
pp {cppNOpt = THKD x}
  hkdA0L :: forall (f :: * -> *).
HKDFunctor f =>
Lens' (PParamsHKD f ConwayEra) (HKD f NonNegativeInterval)
hkdA0L = (PParamsHKD f ConwayEra -> HKD f NonNegativeInterval)
-> (PParamsHKD f ConwayEra
    -> HKD f NonNegativeInterval -> PParamsHKD f ConwayEra)
-> forall {f :: * -> *}.
   Functor f =>
   (HKD f NonNegativeInterval -> f (HKD f NonNegativeInterval))
   -> PParamsHKD f ConwayEra -> f (PParamsHKD f ConwayEra)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens (THKD
  ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f NonNegativeInterval
-> HKD f NonNegativeInterval
forall (t :: PPGroups) (f :: * -> *) a. THKD t f a -> HKD f a
unTHKD (THKD
   ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f NonNegativeInterval
 -> HKD f NonNegativeInterval)
-> (ConwayPParams f ConwayEra
    -> THKD
         ('PPGroups 'TechnicalGroup 'NoStakePoolGroup)
         f
         NonNegativeInterval)
-> ConwayPParams f ConwayEra
-> HKD f NonNegativeInterval
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ConwayPParams f ConwayEra
-> THKD
     ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f NonNegativeInterval
forall (f :: * -> *) era.
ConwayPParams f era
-> THKD
     ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f NonNegativeInterval
cppA0) ((PParamsHKD f ConwayEra
  -> HKD f NonNegativeInterval -> PParamsHKD f ConwayEra)
 -> forall {f :: * -> *}.
    Functor f =>
    (HKD f NonNegativeInterval -> f (HKD f NonNegativeInterval))
    -> PParamsHKD f ConwayEra -> f (PParamsHKD f ConwayEra))
-> (PParamsHKD f ConwayEra
    -> HKD f NonNegativeInterval -> PParamsHKD f ConwayEra)
-> forall {f :: * -> *}.
   Functor f =>
   (HKD f NonNegativeInterval -> f (HKD f NonNegativeInterval))
   -> PParamsHKD f ConwayEra -> f (PParamsHKD f ConwayEra)
forall a b. (a -> b) -> a -> b
$ \PParamsHKD f ConwayEra
pp HKD f NonNegativeInterval
x -> PParamsHKD f ConwayEra
pp {cppA0 = THKD x}
  hkdRhoL :: forall (f :: * -> *).
HKDFunctor f =>
Lens' (PParamsHKD f ConwayEra) (HKD f UnitInterval)
hkdRhoL = (PParamsHKD f ConwayEra -> HKD f UnitInterval)
-> (PParamsHKD f ConwayEra
    -> HKD f UnitInterval -> PParamsHKD f ConwayEra)
-> forall {f :: * -> *}.
   Functor f =>
   (HKD f UnitInterval -> f (HKD f UnitInterval))
   -> PParamsHKD f ConwayEra -> f (PParamsHKD f ConwayEra)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens (THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f UnitInterval
-> HKD f UnitInterval
forall (t :: PPGroups) (f :: * -> *) a. THKD t f a -> HKD f a
unTHKD (THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f UnitInterval
 -> HKD f UnitInterval)
-> (ConwayPParams f ConwayEra
    -> THKD
         ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f UnitInterval)
-> ConwayPParams f ConwayEra
-> HKD f UnitInterval
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ConwayPParams f ConwayEra
-> THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f UnitInterval
forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f UnitInterval
cppRho) ((PParamsHKD f ConwayEra
  -> HKD f UnitInterval -> PParamsHKD f ConwayEra)
 -> forall {f :: * -> *}.
    Functor f =>
    (HKD f UnitInterval -> f (HKD f UnitInterval))
    -> PParamsHKD f ConwayEra -> f (PParamsHKD f ConwayEra))
-> (PParamsHKD f ConwayEra
    -> HKD f UnitInterval -> PParamsHKD f ConwayEra)
-> forall {f :: * -> *}.
   Functor f =>
   (HKD f UnitInterval -> f (HKD f UnitInterval))
   -> PParamsHKD f ConwayEra -> f (PParamsHKD f ConwayEra)
forall a b. (a -> b) -> a -> b
$ \PParamsHKD f ConwayEra
pp HKD f UnitInterval
x -> PParamsHKD f ConwayEra
pp {cppRho = THKD x}
  hkdTauL :: forall (f :: * -> *).
HKDFunctor f =>
Lens' (PParamsHKD f ConwayEra) (HKD f UnitInterval)
hkdTauL = (PParamsHKD f ConwayEra -> HKD f UnitInterval)
-> (PParamsHKD f ConwayEra
    -> HKD f UnitInterval -> PParamsHKD f ConwayEra)
-> forall {f :: * -> *}.
   Functor f =>
   (HKD f UnitInterval -> f (HKD f UnitInterval))
   -> PParamsHKD f ConwayEra -> f (PParamsHKD f ConwayEra)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens (THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f UnitInterval
-> HKD f UnitInterval
forall (t :: PPGroups) (f :: * -> *) a. THKD t f a -> HKD f a
unTHKD (THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f UnitInterval
 -> HKD f UnitInterval)
-> (ConwayPParams f ConwayEra
    -> THKD
         ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f UnitInterval)
-> ConwayPParams f ConwayEra
-> HKD f UnitInterval
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ConwayPParams f ConwayEra
-> THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f UnitInterval
forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f UnitInterval
cppTau) ((PParamsHKD f ConwayEra
  -> HKD f UnitInterval -> PParamsHKD f ConwayEra)
 -> forall {f :: * -> *}.
    Functor f =>
    (HKD f UnitInterval -> f (HKD f UnitInterval))
    -> PParamsHKD f ConwayEra -> f (PParamsHKD f ConwayEra))
-> (PParamsHKD f ConwayEra
    -> HKD f UnitInterval -> PParamsHKD f ConwayEra)
-> forall {f :: * -> *}.
   Functor f =>
   (HKD f UnitInterval -> f (HKD f UnitInterval))
   -> PParamsHKD f ConwayEra -> f (PParamsHKD f ConwayEra)
forall a b. (a -> b) -> a -> b
$ \PParamsHKD f ConwayEra
pp HKD f UnitInterval
x -> PParamsHKD f ConwayEra
pp {cppTau = THKD x}
  hkdProtocolVersionL :: forall (f :: * -> *).
(HKDFunctor f, ProtVerAtMost ConwayEra 8) =>
Lens' (PParamsHKD f ConwayEra) (HKD f ProtVer)
hkdProtocolVersionL = (HKD f ProtVer -> f (HKD f ProtVer))
-> PParamsHKD f ConwayEra -> f (PParamsHKD f ConwayEra)
(HKD f ProtVer -> f (HKD f ProtVer))
-> ConwayPParams f ConwayEra -> f (ConwayPParams f ConwayEra)
forall a b. HasCallStack => Lens' a b
Lens' (ConwayPParams f ConwayEra) (HKD f ProtVer)
notSupportedInThisEraL
  hkdMinPoolCostL :: forall (f :: * -> *).
HKDFunctor f =>
Lens' (PParamsHKD f ConwayEra) (HKD f Coin)
hkdMinPoolCostL = (PParamsHKD f ConwayEra -> HKD f Coin)
-> (PParamsHKD f ConwayEra -> HKD f Coin -> PParamsHKD f ConwayEra)
-> forall {f :: * -> *}.
   Functor f =>
   (HKD f Coin -> f (HKD f Coin))
   -> PParamsHKD f ConwayEra -> f (PParamsHKD f ConwayEra)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens (THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f Coin
-> HKD f Coin
forall (t :: PPGroups) (f :: * -> *) a. THKD t f a -> HKD f a
unTHKD (THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f Coin
 -> HKD f Coin)
-> (ConwayPParams f ConwayEra
    -> THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f Coin)
-> ConwayPParams f ConwayEra
-> HKD f Coin
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ConwayPParams f ConwayEra
-> THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f Coin
forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f Coin
cppMinPoolCost) ((PParamsHKD f ConwayEra -> HKD f Coin -> PParamsHKD f ConwayEra)
 -> forall {f :: * -> *}.
    Functor f =>
    (HKD f Coin -> f (HKD f Coin))
    -> PParamsHKD f ConwayEra -> f (PParamsHKD f ConwayEra))
-> (PParamsHKD f ConwayEra -> HKD f Coin -> PParamsHKD f ConwayEra)
-> forall {f :: * -> *}.
   Functor f =>
   (HKD f Coin -> f (HKD f Coin))
   -> PParamsHKD f ConwayEra -> f (PParamsHKD f ConwayEra)
forall a b. (a -> b) -> a -> b
$ \PParamsHKD f ConwayEra
pp HKD f Coin
x -> PParamsHKD f ConwayEra
pp {cppMinPoolCost = THKD x}
  ppProtocolVersionL :: Lens' (PParams ConwayEra) ProtVer
ppProtocolVersionL = (PParamsHKD Identity ConwayEra
 -> f (PParamsHKD Identity ConwayEra))
-> PParams ConwayEra -> f (PParams ConwayEra)
(ConwayPParams Identity ConwayEra
 -> f (ConwayPParams Identity ConwayEra))
-> PParams ConwayEra -> f (PParams ConwayEra)
forall era (f :: * -> *).
Functor f =>
(PParamsHKD Identity era -> f (PParamsHKD Identity era))
-> PParams era -> f (PParams era)
ppLensHKD ((ConwayPParams Identity ConwayEra
  -> f (ConwayPParams Identity ConwayEra))
 -> PParams ConwayEra -> f (PParams ConwayEra))
-> ((ProtVer -> f ProtVer)
    -> ConwayPParams Identity ConwayEra
    -> f (ConwayPParams Identity ConwayEra))
-> (ProtVer -> f ProtVer)
-> PParams ConwayEra
-> f (PParams ConwayEra)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (ConwayPParams Identity ConwayEra -> ProtVer)
-> (ConwayPParams Identity ConwayEra
    -> ProtVer -> ConwayPParams Identity ConwayEra)
-> Lens
     (ConwayPParams Identity ConwayEra)
     (ConwayPParams Identity ConwayEra)
     ProtVer
     ProtVer
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens ConwayPParams Identity ConwayEra -> HKDNoUpdate Identity ProtVer
ConwayPParams Identity ConwayEra -> ProtVer
forall (f :: * -> *) era.
ConwayPParams f era -> HKDNoUpdate f ProtVer
cppProtocolVersion (\ConwayPParams Identity ConwayEra
pp ProtVer
x -> ConwayPParams Identity ConwayEra
pp {cppProtocolVersion = x})

  ppDG :: SimpleGetter (PParams ConwayEra) UnitInterval
ppDG = (PParams ConwayEra -> UnitInterval)
-> SimpleGetter (PParams ConwayEra) UnitInterval
forall s a. (s -> a) -> SimpleGetter s a
to (UnitInterval -> PParams ConwayEra -> UnitInterval
forall a b. a -> b -> a
const UnitInterval
forall a. Bounded a => a
minBound)
  ppuProtocolVersionL :: ProtVerAtMost ConwayEra 8 =>
Lens' (PParamsUpdate ConwayEra) (StrictMaybe ProtVer)
ppuProtocolVersionL = (StrictMaybe ProtVer -> f (StrictMaybe ProtVer))
-> PParamsUpdate ConwayEra -> f (PParamsUpdate ConwayEra)
forall a b. HasCallStack => Lens' a b
Lens' (PParamsUpdate ConwayEra) (StrictMaybe ProtVer)
notSupportedInThisEraL
  hkdDL :: forall (f :: * -> *).
(HKDFunctor f, ProtVerAtMost ConwayEra 6) =>
Lens' (PParamsHKD f ConwayEra) (HKD f UnitInterval)
hkdDL = (HKD f UnitInterval -> f (HKD f UnitInterval))
-> PParamsHKD f ConwayEra -> f (PParamsHKD f ConwayEra)
(HKD f UnitInterval -> f (HKD f UnitInterval))
-> ConwayPParams f ConwayEra -> f (ConwayPParams f ConwayEra)
forall a b. HasCallStack => Lens' a b
Lens' (ConwayPParams f ConwayEra) (HKD f UnitInterval)
notSupportedInThisEraL
  hkdExtraEntropyL :: forall (f :: * -> *).
(HKDFunctor f, ProtVerAtMost ConwayEra 6) =>
Lens' (PParamsHKD f ConwayEra) (HKD f Nonce)
hkdExtraEntropyL = (HKD f Nonce -> f (HKD f Nonce))
-> PParamsHKD f ConwayEra -> f (PParamsHKD f ConwayEra)
(HKD f Nonce -> f (HKD f Nonce))
-> ConwayPParams f ConwayEra -> f (ConwayPParams f ConwayEra)
forall a b. HasCallStack => Lens' a b
Lens' (ConwayPParams f ConwayEra) (HKD f Nonce)
notSupportedInThisEraL
  hkdMinUTxOValueL :: forall (f :: * -> *).
(HKDFunctor f, ProtVerAtMost ConwayEra 4) =>
Lens' (PParamsHKD f ConwayEra) (HKD f Coin)
hkdMinUTxOValueL = (HKD f Coin -> f (HKD f Coin))
-> PParamsHKD f ConwayEra -> f (PParamsHKD f ConwayEra)
(HKD f Coin -> f (HKD f Coin))
-> ConwayPParams f ConwayEra -> f (ConwayPParams f ConwayEra)
forall a b. HasCallStack => Lens' a b
Lens' (ConwayPParams f ConwayEra) (HKD f Coin)
notSupportedInThisEraL

  eraPParams :: [PParam ConwayEra]
eraPParams =
    [ PParam ConwayEra
forall era. EraPParams era => PParam era
ppMinFeeA
    , PParam ConwayEra
forall era. EraPParams era => PParam era
ppMinFeeB
    , PParam ConwayEra
forall era. EraPParams era => PParam era
ppMaxBBSize
    , PParam ConwayEra
forall era. EraPParams era => PParam era
ppMaxTxSize
    , PParam ConwayEra
forall era. EraPParams era => PParam era
ppMaxBHSize
    , PParam ConwayEra
forall era. EraPParams era => PParam era
ppKeyDeposit
    , PParam ConwayEra
forall era. EraPParams era => PParam era
ppPoolDeposit
    , PParam ConwayEra
forall era. EraPParams era => PParam era
ppEMax
    , PParam ConwayEra
forall era. EraPParams era => PParam era
ppNOpt
    , PParam ConwayEra
forall era. EraPParams era => PParam era
ppA0
    , PParam ConwayEra
forall era. EraPParams era => PParam era
ppRho
    , PParam ConwayEra
forall era. EraPParams era => PParam era
ppTau
    , PParam ConwayEra
forall era. ConwayEraPParams era => PParam era
ppGovProtocolVersion
    , PParam ConwayEra
forall era. EraPParams era => PParam era
ppMinPoolCost
    , PParam ConwayEra
forall era. BabbageEraPParams era => PParam era
ppCoinsPerUTxOByte
    , PParam ConwayEra
forall era. AlonzoEraPParams era => PParam era
ppCostModels
    , PParam ConwayEra
forall era. AlonzoEraPParams era => PParam era
ppPrices
    , PParam ConwayEra
forall era. AlonzoEraPParams era => PParam era
ppMaxTxExUnits
    , PParam ConwayEra
forall era. AlonzoEraPParams era => PParam era
ppMaxBlockExUnits
    , PParam ConwayEra
forall era. AlonzoEraPParams era => PParam era
ppMaxValSize
    , PParam ConwayEra
forall era. AlonzoEraPParams era => PParam era
ppCollateralPercentage
    , PParam ConwayEra
forall era. AlonzoEraPParams era => PParam era
ppMaxCollateralInputs
    , PParam ConwayEra
forall era. ConwayEraPParams era => PParam era
ppPoolVotingThresholds
    , PParam ConwayEra
forall era. ConwayEraPParams era => PParam era
ppDRepVotingThresholds
    , PParam ConwayEra
forall era. ConwayEraPParams era => PParam era
ppCommitteeMinSize
    , PParam ConwayEra
forall era. ConwayEraPParams era => PParam era
ppCommitteeMaxTermLength
    , PParam ConwayEra
forall era. ConwayEraPParams era => PParam era
ppGovActionLifetime
    , PParam ConwayEra
forall era. ConwayEraPParams era => PParam era
ppGovActionDeposit
    , PParam ConwayEra
forall era. ConwayEraPParams era => PParam era
ppDRepDeposit
    , PParam ConwayEra
forall era. ConwayEraPParams era => PParam era
ppDRepActivity
    , PParam ConwayEra
forall era. ConwayEraPParams era => PParam era
ppMinFeeRefScriptCostPerByte
    ]

instance AlonzoEraPParams ConwayEra where
  hkdCoinsPerUTxOWordL :: forall (f :: * -> *).
(HKDFunctor f, ExactEra AlonzoEra ConwayEra) =>
Lens' (PParamsHKD f ConwayEra) (HKD f CoinPerWord)
hkdCoinsPerUTxOWordL = (HKD f CoinPerWord -> f (HKD f CoinPerWord))
-> PParamsHKD f ConwayEra -> f (PParamsHKD f ConwayEra)
(HKD f CoinPerWord -> f (HKD f CoinPerWord))
-> ConwayPParams f ConwayEra -> f (ConwayPParams f ConwayEra)
forall a b. HasCallStack => Lens' a b
Lens' (ConwayPParams f ConwayEra) (HKD f CoinPerWord)
notSupportedInThisEraL
  hkdCostModelsL :: forall (f :: * -> *).
HKDFunctor f =>
Lens' (PParamsHKD f ConwayEra) (HKD f CostModels)
hkdCostModelsL = (PParamsHKD f ConwayEra -> HKD f CostModels)
-> (PParamsHKD f ConwayEra
    -> HKD f CostModels -> PParamsHKD f ConwayEra)
-> forall {f :: * -> *}.
   Functor f =>
   (HKD f CostModels -> f (HKD f CostModels))
   -> PParamsHKD f ConwayEra -> f (PParamsHKD f ConwayEra)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens (THKD ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f CostModels
-> HKD f CostModels
forall (t :: PPGroups) (f :: * -> *) a. THKD t f a -> HKD f a
unTHKD (THKD ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f CostModels
 -> HKD f CostModels)
-> (ConwayPParams f ConwayEra
    -> THKD ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f CostModels)
-> ConwayPParams f ConwayEra
-> HKD f CostModels
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ConwayPParams f ConwayEra
-> THKD ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f CostModels
forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f CostModels
cppCostModels) ((PParamsHKD f ConwayEra
  -> HKD f CostModels -> PParamsHKD f ConwayEra)
 -> forall {f :: * -> *}.
    Functor f =>
    (HKD f CostModels -> f (HKD f CostModels))
    -> PParamsHKD f ConwayEra -> f (PParamsHKD f ConwayEra))
-> (PParamsHKD f ConwayEra
    -> HKD f CostModels -> PParamsHKD f ConwayEra)
-> forall {f :: * -> *}.
   Functor f =>
   (HKD f CostModels -> f (HKD f CostModels))
   -> PParamsHKD f ConwayEra -> f (PParamsHKD f ConwayEra)
forall a b. (a -> b) -> a -> b
$ \PParamsHKD f ConwayEra
pp HKD f CostModels
x -> PParamsHKD f ConwayEra
pp {cppCostModels = THKD x}
  hkdPricesL :: forall (f :: * -> *).
HKDFunctor f =>
Lens' (PParamsHKD f ConwayEra) (HKD f Prices)
hkdPricesL = (PParamsHKD f ConwayEra -> HKD f Prices)
-> (PParamsHKD f ConwayEra
    -> HKD f Prices -> PParamsHKD f ConwayEra)
-> forall {f :: * -> *}.
   Functor f =>
   (HKD f Prices -> f (HKD f Prices))
   -> PParamsHKD f ConwayEra -> f (PParamsHKD f ConwayEra)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens (THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f Prices
-> HKD f Prices
forall (t :: PPGroups) (f :: * -> *) a. THKD t f a -> HKD f a
unTHKD (THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f Prices
 -> HKD f Prices)
-> (ConwayPParams f ConwayEra
    -> THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f Prices)
-> ConwayPParams f ConwayEra
-> HKD f Prices
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ConwayPParams f ConwayEra
-> THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f Prices
forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f Prices
cppPrices) ((PParamsHKD f ConwayEra -> HKD f Prices -> PParamsHKD f ConwayEra)
 -> forall {f :: * -> *}.
    Functor f =>
    (HKD f Prices -> f (HKD f Prices))
    -> PParamsHKD f ConwayEra -> f (PParamsHKD f ConwayEra))
-> (PParamsHKD f ConwayEra
    -> HKD f Prices -> PParamsHKD f ConwayEra)
-> forall {f :: * -> *}.
   Functor f =>
   (HKD f Prices -> f (HKD f Prices))
   -> PParamsHKD f ConwayEra -> f (PParamsHKD f ConwayEra)
forall a b. (a -> b) -> a -> b
$ \PParamsHKD f ConwayEra
pp HKD f Prices
x -> PParamsHKD f ConwayEra
pp {cppPrices = THKD x}

  hkdMaxTxExUnitsL :: forall f. HKDFunctor f => Lens' (PParamsHKD f ConwayEra) (HKD f ExUnits)
  hkdMaxTxExUnitsL :: forall (f :: * -> *).
HKDFunctor f =>
Lens' (PParamsHKD f ConwayEra) (HKD f ExUnits)
hkdMaxTxExUnitsL =
    (PParamsHKD f ConwayEra -> HKD f ExUnits)
-> (PParamsHKD f ConwayEra
    -> HKD f ExUnits -> PParamsHKD f ConwayEra)
-> forall {f :: * -> *}.
   Functor f =>
   (HKD f ExUnits -> f (HKD f ExUnits))
   -> PParamsHKD f ConwayEra -> f (PParamsHKD f ConwayEra)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens (Proxy f
-> (OrdExUnits -> ExUnits) -> HKD f OrdExUnits -> HKD f ExUnits
forall (f :: * -> *) (proxy :: (* -> *) -> *) a b.
HKDFunctor f =>
proxy f -> (a -> b) -> HKD f a -> HKD f b
forall (proxy :: (* -> *) -> *) a b.
proxy f -> (a -> b) -> HKD f a -> HKD f b
hkdMap (forall {k} (t :: k). Proxy t
forall (t :: * -> *). Proxy t
Proxy @f) OrdExUnits -> ExUnits
unOrdExUnits (HKD f OrdExUnits -> HKD f ExUnits)
-> (ConwayPParams f ConwayEra -> HKD f OrdExUnits)
-> ConwayPParams f ConwayEra
-> HKD f ExUnits
forall b c a. (b -> c) -> (a -> b) -> a -> c
. THKD ('PPGroups 'NetworkGroup 'NoStakePoolGroup) f OrdExUnits
-> HKD f OrdExUnits
forall (t :: PPGroups) (f :: * -> *) a. THKD t f a -> HKD f a
unTHKD (THKD ('PPGroups 'NetworkGroup 'NoStakePoolGroup) f OrdExUnits
 -> HKD f OrdExUnits)
-> (ConwayPParams f ConwayEra
    -> THKD ('PPGroups 'NetworkGroup 'NoStakePoolGroup) f OrdExUnits)
-> ConwayPParams f ConwayEra
-> HKD f OrdExUnits
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ConwayPParams f ConwayEra
-> THKD ('PPGroups 'NetworkGroup 'NoStakePoolGroup) f OrdExUnits
forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'NetworkGroup 'NoStakePoolGroup) f OrdExUnits
cppMaxTxExUnits) ((PParamsHKD f ConwayEra
  -> HKD f ExUnits -> PParamsHKD f ConwayEra)
 -> forall {f :: * -> *}.
    Functor f =>
    (HKD f ExUnits -> f (HKD f ExUnits))
    -> PParamsHKD f ConwayEra -> f (PParamsHKD f ConwayEra))
-> (PParamsHKD f ConwayEra
    -> HKD f ExUnits -> PParamsHKD f ConwayEra)
-> forall {f :: * -> *}.
   Functor f =>
   (HKD f ExUnits -> f (HKD f ExUnits))
   -> PParamsHKD f ConwayEra -> f (PParamsHKD f ConwayEra)
forall a b. (a -> b) -> a -> b
$ \PParamsHKD f ConwayEra
pp HKD f ExUnits
x ->
      PParamsHKD f ConwayEra
pp {cppMaxTxExUnits = THKD $ hkdMap (Proxy @f) OrdExUnits x}
  hkdMaxBlockExUnitsL :: forall f. HKDFunctor f => Lens' (PParamsHKD f ConwayEra) (HKD f ExUnits)
  hkdMaxBlockExUnitsL :: forall (f :: * -> *).
HKDFunctor f =>
Lens' (PParamsHKD f ConwayEra) (HKD f ExUnits)
hkdMaxBlockExUnitsL =
    (PParamsHKD f ConwayEra -> HKD f ExUnits)
-> (PParamsHKD f ConwayEra
    -> HKD f ExUnits -> PParamsHKD f ConwayEra)
-> forall {f :: * -> *}.
   Functor f =>
   (HKD f ExUnits -> f (HKD f ExUnits))
   -> PParamsHKD f ConwayEra -> f (PParamsHKD f ConwayEra)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens (Proxy f
-> (OrdExUnits -> ExUnits) -> HKD f OrdExUnits -> HKD f ExUnits
forall (f :: * -> *) (proxy :: (* -> *) -> *) a b.
HKDFunctor f =>
proxy f -> (a -> b) -> HKD f a -> HKD f b
forall (proxy :: (* -> *) -> *) a b.
proxy f -> (a -> b) -> HKD f a -> HKD f b
hkdMap (forall {k} (t :: k). Proxy t
forall (t :: * -> *). Proxy t
Proxy @f) OrdExUnits -> ExUnits
unOrdExUnits (HKD f OrdExUnits -> HKD f ExUnits)
-> (ConwayPParams f ConwayEra -> HKD f OrdExUnits)
-> ConwayPParams f ConwayEra
-> HKD f ExUnits
forall b c a. (b -> c) -> (a -> b) -> a -> c
. THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f OrdExUnits
-> HKD f OrdExUnits
forall (t :: PPGroups) (f :: * -> *) a. THKD t f a -> HKD f a
unTHKD (THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f OrdExUnits
 -> HKD f OrdExUnits)
-> (ConwayPParams f ConwayEra
    -> THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f OrdExUnits)
-> ConwayPParams f ConwayEra
-> HKD f OrdExUnits
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ConwayPParams f ConwayEra
-> THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f OrdExUnits
forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f OrdExUnits
cppMaxBlockExUnits) ((PParamsHKD f ConwayEra
  -> HKD f ExUnits -> PParamsHKD f ConwayEra)
 -> forall {f :: * -> *}.
    Functor f =>
    (HKD f ExUnits -> f (HKD f ExUnits))
    -> PParamsHKD f ConwayEra -> f (PParamsHKD f ConwayEra))
-> (PParamsHKD f ConwayEra
    -> HKD f ExUnits -> PParamsHKD f ConwayEra)
-> forall {f :: * -> *}.
   Functor f =>
   (HKD f ExUnits -> f (HKD f ExUnits))
   -> PParamsHKD f ConwayEra -> f (PParamsHKD f ConwayEra)
forall a b. (a -> b) -> a -> b
$ \PParamsHKD f ConwayEra
pp HKD f ExUnits
x ->
      PParamsHKD f ConwayEra
pp {cppMaxBlockExUnits = THKD $ hkdMap (Proxy @f) OrdExUnits x}
  hkdMaxValSizeL :: forall f. HKDFunctor f => Lens' (PParamsHKD f ConwayEra) (HKD f Natural)
  hkdMaxValSizeL :: forall (f :: * -> *).
HKDFunctor f =>
Lens' (PParamsHKD f ConwayEra) (HKD f Natural)
hkdMaxValSizeL =
    (PParamsHKD f ConwayEra -> HKD f Natural)
-> (PParamsHKD f ConwayEra
    -> HKD f Natural -> PParamsHKD f ConwayEra)
-> forall {f :: * -> *}.
   Functor f =>
   (HKD f Natural -> f (HKD f Natural))
   -> PParamsHKD f ConwayEra -> f (PParamsHKD f ConwayEra)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens (forall (f :: * -> *) i.
(HKDFunctor f, Integral i) =>
HKD f i -> HKD f Natural
asNaturalHKD @f @Word32 (HKD f Word32 -> HKD f Natural)
-> (ConwayPParams f ConwayEra -> HKD f Word32)
-> ConwayPParams f ConwayEra
-> HKD f Natural
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f Word32
-> HKD f Word32
forall (t :: PPGroups) (f :: * -> *) a. THKD t f a -> HKD f a
unTHKD (THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f Word32
 -> HKD f Word32)
-> (ConwayPParams f ConwayEra
    -> THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f Word32)
-> ConwayPParams f ConwayEra
-> HKD f Word32
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ConwayPParams f ConwayEra
-> THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f Word32
forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f Word32
cppMaxValSize)) ((PParamsHKD f ConwayEra
  -> HKD f Natural -> PParamsHKD f ConwayEra)
 -> forall {f :: * -> *}.
    Functor f =>
    (HKD f Natural -> f (HKD f Natural))
    -> PParamsHKD f ConwayEra -> f (PParamsHKD f ConwayEra))
-> (PParamsHKD f ConwayEra
    -> HKD f Natural -> PParamsHKD f ConwayEra)
-> forall {f :: * -> *}.
   Functor f =>
   (HKD f Natural -> f (HKD f Natural))
   -> PParamsHKD f ConwayEra -> f (PParamsHKD f ConwayEra)
forall a b. (a -> b) -> a -> b
$
      \PParamsHKD f ConwayEra
pp HKD f Natural
x -> PParamsHKD f ConwayEra
pp {cppMaxValSize = THKD (asBoundedIntegralHKD @f @Natural @Word32 x)}
  hkdCollateralPercentageL ::
    forall f. HKDFunctor f => Lens' (PParamsHKD f ConwayEra) (HKD f Natural)
  hkdCollateralPercentageL :: forall (f :: * -> *).
HKDFunctor f =>
Lens' (PParamsHKD f ConwayEra) (HKD f Natural)
hkdCollateralPercentageL =
    (PParamsHKD f ConwayEra -> HKD f Natural)
-> (PParamsHKD f ConwayEra
    -> HKD f Natural -> PParamsHKD f ConwayEra)
-> forall {f :: * -> *}.
   Functor f =>
   (HKD f Natural -> f (HKD f Natural))
   -> PParamsHKD f ConwayEra -> f (PParamsHKD f ConwayEra)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens (forall (f :: * -> *) i.
(HKDFunctor f, Integral i) =>
HKD f i -> HKD f Natural
asNaturalHKD @f @Word16 (HKD f Word16 -> HKD f Natural)
-> (ConwayPParams f ConwayEra -> HKD f Word16)
-> ConwayPParams f ConwayEra
-> HKD f Natural
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (THKD ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f Word16
-> HKD f Word16
forall (t :: PPGroups) (f :: * -> *) a. THKD t f a -> HKD f a
unTHKD (THKD ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f Word16
 -> HKD f Word16)
-> (ConwayPParams f ConwayEra
    -> THKD ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f Word16)
-> ConwayPParams f ConwayEra
-> HKD f Word16
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ConwayPParams f ConwayEra
-> THKD ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f Word16
forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f Word16
cppCollateralPercentage)) ((PParamsHKD f ConwayEra
  -> HKD f Natural -> PParamsHKD f ConwayEra)
 -> forall {f :: * -> *}.
    Functor f =>
    (HKD f Natural -> f (HKD f Natural))
    -> PParamsHKD f ConwayEra -> f (PParamsHKD f ConwayEra))
-> (PParamsHKD f ConwayEra
    -> HKD f Natural -> PParamsHKD f ConwayEra)
-> forall {f :: * -> *}.
   Functor f =>
   (HKD f Natural -> f (HKD f Natural))
   -> PParamsHKD f ConwayEra -> f (PParamsHKD f ConwayEra)
forall a b. (a -> b) -> a -> b
$
      \PParamsHKD f ConwayEra
pp HKD f Natural
x -> PParamsHKD f ConwayEra
pp {cppCollateralPercentage = THKD (asBoundedIntegralHKD @f @Natural @Word16 x)}
  hkdMaxCollateralInputsL ::
    forall f. HKDFunctor f => Lens' (PParamsHKD f ConwayEra) (HKD f Natural)
  hkdMaxCollateralInputsL :: forall (f :: * -> *).
HKDFunctor f =>
Lens' (PParamsHKD f ConwayEra) (HKD f Natural)
hkdMaxCollateralInputsL =
    (PParamsHKD f ConwayEra -> HKD f Natural)
-> (PParamsHKD f ConwayEra
    -> HKD f Natural -> PParamsHKD f ConwayEra)
-> forall {f :: * -> *}.
   Functor f =>
   (HKD f Natural -> f (HKD f Natural))
   -> PParamsHKD f ConwayEra -> f (PParamsHKD f ConwayEra)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens (forall (f :: * -> *) i.
(HKDFunctor f, Integral i) =>
HKD f i -> HKD f Natural
asNaturalHKD @f @Word16 (HKD f Word16 -> HKD f Natural)
-> (ConwayPParams f ConwayEra -> HKD f Word16)
-> ConwayPParams f ConwayEra
-> HKD f Natural
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (THKD ('PPGroups 'NetworkGroup 'NoStakePoolGroup) f Word16
-> HKD f Word16
forall (t :: PPGroups) (f :: * -> *) a. THKD t f a -> HKD f a
unTHKD (THKD ('PPGroups 'NetworkGroup 'NoStakePoolGroup) f Word16
 -> HKD f Word16)
-> (ConwayPParams f ConwayEra
    -> THKD ('PPGroups 'NetworkGroup 'NoStakePoolGroup) f Word16)
-> ConwayPParams f ConwayEra
-> HKD f Word16
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ConwayPParams f ConwayEra
-> THKD ('PPGroups 'NetworkGroup 'NoStakePoolGroup) f Word16
forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'NetworkGroup 'NoStakePoolGroup) f Word16
cppMaxCollateralInputs)) ((PParamsHKD f ConwayEra
  -> HKD f Natural -> PParamsHKD f ConwayEra)
 -> forall {f :: * -> *}.
    Functor f =>
    (HKD f Natural -> f (HKD f Natural))
    -> PParamsHKD f ConwayEra -> f (PParamsHKD f ConwayEra))
-> (PParamsHKD f ConwayEra
    -> HKD f Natural -> PParamsHKD f ConwayEra)
-> forall {f :: * -> *}.
   Functor f =>
   (HKD f Natural -> f (HKD f Natural))
   -> PParamsHKD f ConwayEra -> f (PParamsHKD f ConwayEra)
forall a b. (a -> b) -> a -> b
$
      \PParamsHKD f ConwayEra
pp HKD f Natural
x -> PParamsHKD f ConwayEra
pp {cppMaxCollateralInputs = THKD (asBoundedIntegralHKD @f @Natural @Word16 x)}

instance BabbageEraPParams ConwayEra where
  hkdCoinsPerUTxOByteL :: forall (f :: * -> *).
HKDFunctor f =>
Lens' (PParamsHKD f ConwayEra) (HKD f CoinPerByte)
hkdCoinsPerUTxOByteL =
    (PParamsHKD f ConwayEra -> HKD f CoinPerByte)
-> (PParamsHKD f ConwayEra
    -> HKD f CoinPerByte -> PParamsHKD f ConwayEra)
-> forall {f :: * -> *}.
   Functor f =>
   (HKD f CoinPerByte -> f (HKD f CoinPerByte))
   -> PParamsHKD f ConwayEra -> f (PParamsHKD f ConwayEra)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens (THKD ('PPGroups 'EconomicGroup 'SecurityGroup) f CoinPerByte
-> HKD f CoinPerByte
forall (t :: PPGroups) (f :: * -> *) a. THKD t f a -> HKD f a
unTHKD (THKD ('PPGroups 'EconomicGroup 'SecurityGroup) f CoinPerByte
 -> HKD f CoinPerByte)
-> (ConwayPParams f ConwayEra
    -> THKD ('PPGroups 'EconomicGroup 'SecurityGroup) f CoinPerByte)
-> ConwayPParams f ConwayEra
-> HKD f CoinPerByte
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ConwayPParams f ConwayEra
-> THKD ('PPGroups 'EconomicGroup 'SecurityGroup) f CoinPerByte
forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'EconomicGroup 'SecurityGroup) f CoinPerByte
cppCoinsPerUTxOByte) ((PParamsHKD f ConwayEra
  -> HKD f CoinPerByte -> PParamsHKD f ConwayEra)
 -> forall {f :: * -> *}.
    Functor f =>
    (HKD f CoinPerByte -> f (HKD f CoinPerByte))
    -> PParamsHKD f ConwayEra -> f (PParamsHKD f ConwayEra))
-> (PParamsHKD f ConwayEra
    -> HKD f CoinPerByte -> PParamsHKD f ConwayEra)
-> forall {f :: * -> *}.
   Functor f =>
   (HKD f CoinPerByte -> f (HKD f CoinPerByte))
   -> PParamsHKD f ConwayEra -> f (PParamsHKD f ConwayEra)
forall a b. (a -> b) -> a -> b
$ \PParamsHKD f ConwayEra
pp HKD f CoinPerByte
x -> PParamsHKD f ConwayEra
pp {cppCoinsPerUTxOByte = THKD x}

instance ConwayEraPParams ConwayEra where
  modifiedPPGroups :: PParamsUpdate ConwayEra -> Set PPGroups
modifiedPPGroups (PParamsUpdate PParamsHKD StrictMaybe ConwayEra
ppu) = ConwayPParams StrictMaybe ConwayEra -> Set PPGroups
forall era. ConwayPParams StrictMaybe era -> Set PPGroups
conwayModifiedPPGroups PParamsHKD StrictMaybe ConwayEra
ConwayPParams StrictMaybe ConwayEra
ppu
  ppuWellFormed :: ProtVer -> PParamsUpdate ConwayEra -> Bool
ppuWellFormed ProtVer
pv PParamsUpdate ConwayEra
ppu =
    [Bool] -> Bool
forall (t :: * -> *). Foldable t => t Bool -> Bool
and
      [ -- Numbers
        (Word32 -> Bool)
-> Lens' (PParamsUpdate ConwayEra) (StrictMaybe Word32) -> Bool
forall t.
(t -> Bool)
-> Lens' (PParamsUpdate ConwayEra) (StrictMaybe t) -> Bool
isValid (Word32 -> Word32 -> Bool
forall a. Eq a => a -> a -> Bool
/= Word32
0) (StrictMaybe Word32 -> f (StrictMaybe Word32))
-> PParamsUpdate ConwayEra -> f (PParamsUpdate ConwayEra)
forall era.
EraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe Word32)
Lens' (PParamsUpdate ConwayEra) (StrictMaybe Word32)
ppuMaxBBSizeL
      , (Word32 -> Bool)
-> Lens' (PParamsUpdate ConwayEra) (StrictMaybe Word32) -> Bool
forall t.
(t -> Bool)
-> Lens' (PParamsUpdate ConwayEra) (StrictMaybe t) -> Bool
isValid (Word32 -> Word32 -> Bool
forall a. Eq a => a -> a -> Bool
/= Word32
0) (StrictMaybe Word32 -> f (StrictMaybe Word32))
-> PParamsUpdate ConwayEra -> f (PParamsUpdate ConwayEra)
forall era.
EraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe Word32)
Lens' (PParamsUpdate ConwayEra) (StrictMaybe Word32)
ppuMaxTxSizeL
      , (Word16 -> Bool)
-> Lens' (PParamsUpdate ConwayEra) (StrictMaybe Word16) -> Bool
forall t.
(t -> Bool)
-> Lens' (PParamsUpdate ConwayEra) (StrictMaybe t) -> Bool
isValid (Word16 -> Word16 -> Bool
forall a. Eq a => a -> a -> Bool
/= Word16
0) (StrictMaybe Word16 -> f (StrictMaybe Word16))
-> PParamsUpdate ConwayEra -> f (PParamsUpdate ConwayEra)
forall era.
EraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe Word16)
Lens' (PParamsUpdate ConwayEra) (StrictMaybe Word16)
ppuMaxBHSizeL
      , (Natural -> Bool)
-> Lens' (PParamsUpdate ConwayEra) (StrictMaybe Natural) -> Bool
forall t.
(t -> Bool)
-> Lens' (PParamsUpdate ConwayEra) (StrictMaybe t) -> Bool
isValid (Natural -> Natural -> Bool
forall a. Eq a => a -> a -> Bool
/= Natural
0) (StrictMaybe Natural -> f (StrictMaybe Natural))
-> PParamsUpdate ConwayEra -> f (PParamsUpdate ConwayEra)
forall era.
AlonzoEraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe Natural)
Lens' (PParamsUpdate ConwayEra) (StrictMaybe Natural)
ppuMaxValSizeL
      , (Natural -> Bool)
-> Lens' (PParamsUpdate ConwayEra) (StrictMaybe Natural) -> Bool
forall t.
(t -> Bool)
-> Lens' (PParamsUpdate ConwayEra) (StrictMaybe t) -> Bool
isValid (Natural -> Natural -> Bool
forall a. Eq a => a -> a -> Bool
/= Natural
0) (StrictMaybe Natural -> f (StrictMaybe Natural))
-> PParamsUpdate ConwayEra -> f (PParamsUpdate ConwayEra)
forall era.
AlonzoEraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe Natural)
Lens' (PParamsUpdate ConwayEra) (StrictMaybe Natural)
ppuCollateralPercentageL
      , (EpochInterval -> Bool)
-> Lens' (PParamsUpdate ConwayEra) (StrictMaybe EpochInterval)
-> Bool
forall t.
(t -> Bool)
-> Lens' (PParamsUpdate ConwayEra) (StrictMaybe t) -> Bool
isValid (EpochInterval -> EpochInterval -> Bool
forall a. Eq a => a -> a -> Bool
/= Word32 -> EpochInterval
EpochInterval Word32
0) (StrictMaybe EpochInterval -> f (StrictMaybe EpochInterval))
-> PParamsUpdate ConwayEra -> f (PParamsUpdate ConwayEra)
forall era.
ConwayEraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe EpochInterval)
Lens' (PParamsUpdate ConwayEra) (StrictMaybe EpochInterval)
ppuCommitteeMaxTermLengthL
      , (EpochInterval -> Bool)
-> Lens' (PParamsUpdate ConwayEra) (StrictMaybe EpochInterval)
-> Bool
forall t.
(t -> Bool)
-> Lens' (PParamsUpdate ConwayEra) (StrictMaybe t) -> Bool
isValid (EpochInterval -> EpochInterval -> Bool
forall a. Eq a => a -> a -> Bool
/= Word32 -> EpochInterval
EpochInterval Word32
0) (StrictMaybe EpochInterval -> f (StrictMaybe EpochInterval))
-> PParamsUpdate ConwayEra -> f (PParamsUpdate ConwayEra)
forall era.
ConwayEraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe EpochInterval)
Lens' (PParamsUpdate ConwayEra) (StrictMaybe EpochInterval)
ppuGovActionLifetimeL
      , -- Coins
        (Coin -> Bool)
-> Lens' (PParamsUpdate ConwayEra) (StrictMaybe Coin) -> Bool
forall t.
(t -> Bool)
-> Lens' (PParamsUpdate ConwayEra) (StrictMaybe t) -> Bool
isValid (Coin -> Coin -> Bool
forall a. Eq a => a -> a -> Bool
/= Coin
forall t. Val t => t
zero) (StrictMaybe Coin -> f (StrictMaybe Coin))
-> PParamsUpdate ConwayEra -> f (PParamsUpdate ConwayEra)
forall era.
EraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe Coin)
Lens' (PParamsUpdate ConwayEra) (StrictMaybe Coin)
ppuPoolDepositL
      , (Coin -> Bool)
-> Lens' (PParamsUpdate ConwayEra) (StrictMaybe Coin) -> Bool
forall t.
(t -> Bool)
-> Lens' (PParamsUpdate ConwayEra) (StrictMaybe t) -> Bool
isValid (Coin -> Coin -> Bool
forall a. Eq a => a -> a -> Bool
/= Coin
forall t. Val t => t
zero) (StrictMaybe Coin -> f (StrictMaybe Coin))
-> PParamsUpdate ConwayEra -> f (PParamsUpdate ConwayEra)
forall era.
ConwayEraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe Coin)
Lens' (PParamsUpdate ConwayEra) (StrictMaybe Coin)
ppuGovActionDepositL
      , (Coin -> Bool)
-> Lens' (PParamsUpdate ConwayEra) (StrictMaybe Coin) -> Bool
forall t.
(t -> Bool)
-> Lens' (PParamsUpdate ConwayEra) (StrictMaybe t) -> Bool
isValid (Coin -> Coin -> Bool
forall a. Eq a => a -> a -> Bool
/= Coin
forall t. Val t => t
zero) (StrictMaybe Coin -> f (StrictMaybe Coin))
-> PParamsUpdate ConwayEra -> f (PParamsUpdate ConwayEra)
forall era.
ConwayEraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe Coin)
Lens' (PParamsUpdate ConwayEra) (StrictMaybe Coin)
ppuDRepDepositL
      , ProtVer -> Bool
bootstrapPhase ProtVer
pv
          Bool -> Bool -> Bool
|| (CoinPerByte -> Bool)
-> Lens' (PParamsUpdate ConwayEra) (StrictMaybe CoinPerByte)
-> Bool
forall t.
(t -> Bool)
-> Lens' (PParamsUpdate ConwayEra) (StrictMaybe t) -> Bool
isValid ((Coin -> Coin -> Bool
forall a. Eq a => a -> a -> Bool
/= Coin
forall t. Val t => t
zero) (Coin -> Bool) -> (CoinPerByte -> Coin) -> CoinPerByte -> Bool
forall b c a. (b -> c) -> (a -> b) -> a -> c
. CoinPerByte -> Coin
unCoinPerByte) (StrictMaybe CoinPerByte -> f (StrictMaybe CoinPerByte))
-> PParamsUpdate ConwayEra -> f (PParamsUpdate ConwayEra)
forall era.
BabbageEraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe CoinPerByte)
Lens' (PParamsUpdate ConwayEra) (StrictMaybe CoinPerByte)
ppuCoinsPerUTxOByteL
      , PParamsUpdate ConwayEra
ppu PParamsUpdate ConwayEra -> PParamsUpdate ConwayEra -> Bool
forall a. Eq a => a -> a -> Bool
/= PParamsUpdate ConwayEra
forall era. EraPParams era => PParamsUpdate era
emptyPParamsUpdate
      ]
    where
      isValid ::
        (t -> Bool) ->
        Lens' (PParamsUpdate ConwayEra) (StrictMaybe t) ->
        Bool
      isValid :: forall t.
(t -> Bool)
-> Lens' (PParamsUpdate ConwayEra) (StrictMaybe t) -> Bool
isValid t -> Bool
p Lens' (PParamsUpdate ConwayEra) (StrictMaybe t)
l = case PParamsUpdate ConwayEra
ppu PParamsUpdate ConwayEra
-> Getting
     (StrictMaybe t) (PParamsUpdate ConwayEra) (StrictMaybe t)
-> StrictMaybe t
forall s a. s -> Getting a s a -> a
^. Getting (StrictMaybe t) (PParamsUpdate ConwayEra) (StrictMaybe t)
Lens' (PParamsUpdate ConwayEra) (StrictMaybe t)
l of
        SJust t
x -> t -> Bool
p t
x
        StrictMaybe t
SNothing -> Bool
True
  hkdPoolVotingThresholdsL :: forall (f :: * -> *).
HKDFunctor f =>
Lens' (PParamsHKD f ConwayEra) (HKD f PoolVotingThresholds)
hkdPoolVotingThresholdsL =
    (PParamsHKD f ConwayEra -> HKD f PoolVotingThresholds)
-> (PParamsHKD f ConwayEra
    -> HKD f PoolVotingThresholds -> PParamsHKD f ConwayEra)
-> forall {f :: * -> *}.
   Functor f =>
   (HKD f PoolVotingThresholds -> f (HKD f PoolVotingThresholds))
   -> PParamsHKD f ConwayEra -> f (PParamsHKD f ConwayEra)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens (THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f PoolVotingThresholds
-> HKD f PoolVotingThresholds
forall (t :: PPGroups) (f :: * -> *) a. THKD t f a -> HKD f a
unTHKD (THKD
   ('PPGroups 'GovGroup 'NoStakePoolGroup) f PoolVotingThresholds
 -> HKD f PoolVotingThresholds)
-> (ConwayPParams f ConwayEra
    -> THKD
         ('PPGroups 'GovGroup 'NoStakePoolGroup) f PoolVotingThresholds)
-> ConwayPParams f ConwayEra
-> HKD f PoolVotingThresholds
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ConwayPParams f ConwayEra
-> THKD
     ('PPGroups 'GovGroup 'NoStakePoolGroup) f PoolVotingThresholds
forall (f :: * -> *) era.
ConwayPParams f era
-> THKD
     ('PPGroups 'GovGroup 'NoStakePoolGroup) f PoolVotingThresholds
cppPoolVotingThresholds) ((PParamsHKD f ConwayEra
  -> HKD f PoolVotingThresholds -> PParamsHKD f ConwayEra)
 -> forall {f :: * -> *}.
    Functor f =>
    (HKD f PoolVotingThresholds -> f (HKD f PoolVotingThresholds))
    -> PParamsHKD f ConwayEra -> f (PParamsHKD f ConwayEra))
-> (PParamsHKD f ConwayEra
    -> HKD f PoolVotingThresholds -> PParamsHKD f ConwayEra)
-> forall {f :: * -> *}.
   Functor f =>
   (HKD f PoolVotingThresholds -> f (HKD f PoolVotingThresholds))
   -> PParamsHKD f ConwayEra -> f (PParamsHKD f ConwayEra)
forall a b. (a -> b) -> a -> b
$ \PParamsHKD f ConwayEra
pp HKD f PoolVotingThresholds
x -> PParamsHKD f ConwayEra
pp {cppPoolVotingThresholds = THKD x}
  hkdDRepVotingThresholdsL :: forall (f :: * -> *).
HKDFunctor f =>
Lens' (PParamsHKD f ConwayEra) (HKD f DRepVotingThresholds)
hkdDRepVotingThresholdsL =
    (PParamsHKD f ConwayEra -> HKD f DRepVotingThresholds)
-> (PParamsHKD f ConwayEra
    -> HKD f DRepVotingThresholds -> PParamsHKD f ConwayEra)
-> forall {f :: * -> *}.
   Functor f =>
   (HKD f DRepVotingThresholds -> f (HKD f DRepVotingThresholds))
   -> PParamsHKD f ConwayEra -> f (PParamsHKD f ConwayEra)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens (THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f DRepVotingThresholds
-> HKD f DRepVotingThresholds
forall (t :: PPGroups) (f :: * -> *) a. THKD t f a -> HKD f a
unTHKD (THKD
   ('PPGroups 'GovGroup 'NoStakePoolGroup) f DRepVotingThresholds
 -> HKD f DRepVotingThresholds)
-> (ConwayPParams f ConwayEra
    -> THKD
         ('PPGroups 'GovGroup 'NoStakePoolGroup) f DRepVotingThresholds)
-> ConwayPParams f ConwayEra
-> HKD f DRepVotingThresholds
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ConwayPParams f ConwayEra
-> THKD
     ('PPGroups 'GovGroup 'NoStakePoolGroup) f DRepVotingThresholds
forall (f :: * -> *) era.
ConwayPParams f era
-> THKD
     ('PPGroups 'GovGroup 'NoStakePoolGroup) f DRepVotingThresholds
cppDRepVotingThresholds) ((PParamsHKD f ConwayEra
  -> HKD f DRepVotingThresholds -> PParamsHKD f ConwayEra)
 -> forall {f :: * -> *}.
    Functor f =>
    (HKD f DRepVotingThresholds -> f (HKD f DRepVotingThresholds))
    -> PParamsHKD f ConwayEra -> f (PParamsHKD f ConwayEra))
-> (PParamsHKD f ConwayEra
    -> HKD f DRepVotingThresholds -> PParamsHKD f ConwayEra)
-> forall {f :: * -> *}.
   Functor f =>
   (HKD f DRepVotingThresholds -> f (HKD f DRepVotingThresholds))
   -> PParamsHKD f ConwayEra -> f (PParamsHKD f ConwayEra)
forall a b. (a -> b) -> a -> b
$ \PParamsHKD f ConwayEra
pp HKD f DRepVotingThresholds
x -> PParamsHKD f ConwayEra
pp {cppDRepVotingThresholds = THKD x}
  hkdCommitteeMinSizeL :: forall f. HKDFunctor f => Lens' (PParamsHKD f ConwayEra) (HKD f Natural)
  hkdCommitteeMinSizeL :: forall (f :: * -> *).
HKDFunctor f =>
Lens' (PParamsHKD f ConwayEra) (HKD f Natural)
hkdCommitteeMinSizeL =
    (PParamsHKD f ConwayEra -> HKD f Natural)
-> (PParamsHKD f ConwayEra
    -> HKD f Natural -> PParamsHKD f ConwayEra)
-> forall {f :: * -> *}.
   Functor f =>
   (HKD f Natural -> f (HKD f Natural))
   -> PParamsHKD f ConwayEra -> f (PParamsHKD f ConwayEra)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens (forall (f :: * -> *) i.
(HKDFunctor f, Integral i) =>
HKD f i -> HKD f Natural
asNaturalHKD @f @Word16 (HKD f Word16 -> HKD f Natural)
-> (ConwayPParams f ConwayEra -> HKD f Word16)
-> ConwayPParams f ConwayEra
-> HKD f Natural
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f Word16
-> HKD f Word16
forall (t :: PPGroups) (f :: * -> *) a. THKD t f a -> HKD f a
unTHKD (THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f Word16
 -> HKD f Word16)
-> (ConwayPParams f ConwayEra
    -> THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f Word16)
-> ConwayPParams f ConwayEra
-> HKD f Word16
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ConwayPParams f ConwayEra
-> THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f Word16
forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f Word16
cppCommitteeMinSize)) ((PParamsHKD f ConwayEra
  -> HKD f Natural -> PParamsHKD f ConwayEra)
 -> forall {f :: * -> *}.
    Functor f =>
    (HKD f Natural -> f (HKD f Natural))
    -> PParamsHKD f ConwayEra -> f (PParamsHKD f ConwayEra))
-> (PParamsHKD f ConwayEra
    -> HKD f Natural -> PParamsHKD f ConwayEra)
-> forall {f :: * -> *}.
   Functor f =>
   (HKD f Natural -> f (HKD f Natural))
   -> PParamsHKD f ConwayEra -> f (PParamsHKD f ConwayEra)
forall a b. (a -> b) -> a -> b
$
      \PParamsHKD f ConwayEra
pp HKD f Natural
x -> PParamsHKD f ConwayEra
pp {cppCommitteeMinSize = THKD (asBoundedIntegralHKD @f @Natural @Word16 x)}
  hkdCommitteeMaxTermLengthL :: forall (f :: * -> *).
HKDFunctor f =>
Lens' (PParamsHKD f ConwayEra) (HKD f EpochInterval)
hkdCommitteeMaxTermLengthL =
    (PParamsHKD f ConwayEra -> HKD f EpochInterval)
-> (PParamsHKD f ConwayEra
    -> HKD f EpochInterval -> PParamsHKD f ConwayEra)
-> forall {f :: * -> *}.
   Functor f =>
   (HKD f EpochInterval -> f (HKD f EpochInterval))
   -> PParamsHKD f ConwayEra -> f (PParamsHKD f ConwayEra)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens (THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f EpochInterval
-> HKD f EpochInterval
forall (t :: PPGroups) (f :: * -> *) a. THKD t f a -> HKD f a
unTHKD (THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f EpochInterval
 -> HKD f EpochInterval)
-> (ConwayPParams f ConwayEra
    -> THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f EpochInterval)
-> ConwayPParams f ConwayEra
-> HKD f EpochInterval
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ConwayPParams f ConwayEra
-> THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f EpochInterval
forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f EpochInterval
cppCommitteeMaxTermLength) ((PParamsHKD f ConwayEra
  -> HKD f EpochInterval -> PParamsHKD f ConwayEra)
 -> forall {f :: * -> *}.
    Functor f =>
    (HKD f EpochInterval -> f (HKD f EpochInterval))
    -> PParamsHKD f ConwayEra -> f (PParamsHKD f ConwayEra))
-> (PParamsHKD f ConwayEra
    -> HKD f EpochInterval -> PParamsHKD f ConwayEra)
-> forall {f :: * -> *}.
   Functor f =>
   (HKD f EpochInterval -> f (HKD f EpochInterval))
   -> PParamsHKD f ConwayEra -> f (PParamsHKD f ConwayEra)
forall a b. (a -> b) -> a -> b
$ \PParamsHKD f ConwayEra
pp HKD f EpochInterval
x -> PParamsHKD f ConwayEra
pp {cppCommitteeMaxTermLength = THKD x}
  hkdGovActionLifetimeL :: forall (f :: * -> *).
HKDFunctor f =>
Lens' (PParamsHKD f ConwayEra) (HKD f EpochInterval)
hkdGovActionLifetimeL =
    (PParamsHKD f ConwayEra -> HKD f EpochInterval)
-> (PParamsHKD f ConwayEra
    -> HKD f EpochInterval -> PParamsHKD f ConwayEra)
-> forall {f :: * -> *}.
   Functor f =>
   (HKD f EpochInterval -> f (HKD f EpochInterval))
   -> PParamsHKD f ConwayEra -> f (PParamsHKD f ConwayEra)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens (THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f EpochInterval
-> HKD f EpochInterval
forall (t :: PPGroups) (f :: * -> *) a. THKD t f a -> HKD f a
unTHKD (THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f EpochInterval
 -> HKD f EpochInterval)
-> (ConwayPParams f ConwayEra
    -> THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f EpochInterval)
-> ConwayPParams f ConwayEra
-> HKD f EpochInterval
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ConwayPParams f ConwayEra
-> THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f EpochInterval
forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f EpochInterval
cppGovActionLifetime) ((PParamsHKD f ConwayEra
  -> HKD f EpochInterval -> PParamsHKD f ConwayEra)
 -> forall {f :: * -> *}.
    Functor f =>
    (HKD f EpochInterval -> f (HKD f EpochInterval))
    -> PParamsHKD f ConwayEra -> f (PParamsHKD f ConwayEra))
-> (PParamsHKD f ConwayEra
    -> HKD f EpochInterval -> PParamsHKD f ConwayEra)
-> forall {f :: * -> *}.
   Functor f =>
   (HKD f EpochInterval -> f (HKD f EpochInterval))
   -> PParamsHKD f ConwayEra -> f (PParamsHKD f ConwayEra)
forall a b. (a -> b) -> a -> b
$ \PParamsHKD f ConwayEra
pp HKD f EpochInterval
x -> PParamsHKD f ConwayEra
pp {cppGovActionLifetime = THKD x}
  hkdGovActionDepositL :: forall (f :: * -> *).
HKDFunctor f =>
Lens' (PParamsHKD f ConwayEra) (HKD f Coin)
hkdGovActionDepositL =
    (PParamsHKD f ConwayEra -> HKD f Coin)
-> (PParamsHKD f ConwayEra -> HKD f Coin -> PParamsHKD f ConwayEra)
-> forall {f :: * -> *}.
   Functor f =>
   (HKD f Coin -> f (HKD f Coin))
   -> PParamsHKD f ConwayEra -> f (PParamsHKD f ConwayEra)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens (THKD ('PPGroups 'GovGroup 'SecurityGroup) f Coin -> HKD f Coin
forall (t :: PPGroups) (f :: * -> *) a. THKD t f a -> HKD f a
unTHKD (THKD ('PPGroups 'GovGroup 'SecurityGroup) f Coin -> HKD f Coin)
-> (ConwayPParams f ConwayEra
    -> THKD ('PPGroups 'GovGroup 'SecurityGroup) f Coin)
-> ConwayPParams f ConwayEra
-> HKD f Coin
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ConwayPParams f ConwayEra
-> THKD ('PPGroups 'GovGroup 'SecurityGroup) f Coin
forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'GovGroup 'SecurityGroup) f Coin
cppGovActionDeposit) ((PParamsHKD f ConwayEra -> HKD f Coin -> PParamsHKD f ConwayEra)
 -> forall {f :: * -> *}.
    Functor f =>
    (HKD f Coin -> f (HKD f Coin))
    -> PParamsHKD f ConwayEra -> f (PParamsHKD f ConwayEra))
-> (PParamsHKD f ConwayEra -> HKD f Coin -> PParamsHKD f ConwayEra)
-> forall {f :: * -> *}.
   Functor f =>
   (HKD f Coin -> f (HKD f Coin))
   -> PParamsHKD f ConwayEra -> f (PParamsHKD f ConwayEra)
forall a b. (a -> b) -> a -> b
$ \PParamsHKD f ConwayEra
pp HKD f Coin
x -> PParamsHKD f ConwayEra
pp {cppGovActionDeposit = THKD x}
  hkdDRepDepositL :: forall (f :: * -> *).
HKDFunctor f =>
Lens' (PParamsHKD f ConwayEra) (HKD f Coin)
hkdDRepDepositL =
    (PParamsHKD f ConwayEra -> HKD f Coin)
-> (PParamsHKD f ConwayEra -> HKD f Coin -> PParamsHKD f ConwayEra)
-> forall {f :: * -> *}.
   Functor f =>
   (HKD f Coin -> f (HKD f Coin))
   -> PParamsHKD f ConwayEra -> f (PParamsHKD f ConwayEra)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens (THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f Coin -> HKD f Coin
forall (t :: PPGroups) (f :: * -> *) a. THKD t f a -> HKD f a
unTHKD (THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f Coin -> HKD f Coin)
-> (ConwayPParams f ConwayEra
    -> THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f Coin)
-> ConwayPParams f ConwayEra
-> HKD f Coin
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ConwayPParams f ConwayEra
-> THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f Coin
forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f Coin
cppDRepDeposit) ((PParamsHKD f ConwayEra -> HKD f Coin -> PParamsHKD f ConwayEra)
 -> forall {f :: * -> *}.
    Functor f =>
    (HKD f Coin -> f (HKD f Coin))
    -> PParamsHKD f ConwayEra -> f (PParamsHKD f ConwayEra))
-> (PParamsHKD f ConwayEra -> HKD f Coin -> PParamsHKD f ConwayEra)
-> forall {f :: * -> *}.
   Functor f =>
   (HKD f Coin -> f (HKD f Coin))
   -> PParamsHKD f ConwayEra -> f (PParamsHKD f ConwayEra)
forall a b. (a -> b) -> a -> b
$ \PParamsHKD f ConwayEra
pp HKD f Coin
x -> PParamsHKD f ConwayEra
pp {cppDRepDeposit = THKD x}
  hkdDRepActivityL :: forall (f :: * -> *).
HKDFunctor f =>
Lens' (PParamsHKD f ConwayEra) (HKD f EpochInterval)
hkdDRepActivityL =
    (PParamsHKD f ConwayEra -> HKD f EpochInterval)
-> (PParamsHKD f ConwayEra
    -> HKD f EpochInterval -> PParamsHKD f ConwayEra)
-> forall {f :: * -> *}.
   Functor f =>
   (HKD f EpochInterval -> f (HKD f EpochInterval))
   -> PParamsHKD f ConwayEra -> f (PParamsHKD f ConwayEra)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens (THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f EpochInterval
-> HKD f EpochInterval
forall (t :: PPGroups) (f :: * -> *) a. THKD t f a -> HKD f a
unTHKD (THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f EpochInterval
 -> HKD f EpochInterval)
-> (ConwayPParams f ConwayEra
    -> THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f EpochInterval)
-> ConwayPParams f ConwayEra
-> HKD f EpochInterval
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ConwayPParams f ConwayEra
-> THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f EpochInterval
forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f EpochInterval
cppDRepActivity) ((PParamsHKD f ConwayEra
  -> HKD f EpochInterval -> PParamsHKD f ConwayEra)
 -> forall {f :: * -> *}.
    Functor f =>
    (HKD f EpochInterval -> f (HKD f EpochInterval))
    -> PParamsHKD f ConwayEra -> f (PParamsHKD f ConwayEra))
-> (PParamsHKD f ConwayEra
    -> HKD f EpochInterval -> PParamsHKD f ConwayEra)
-> forall {f :: * -> *}.
   Functor f =>
   (HKD f EpochInterval -> f (HKD f EpochInterval))
   -> PParamsHKD f ConwayEra -> f (PParamsHKD f ConwayEra)
forall a b. (a -> b) -> a -> b
$ \PParamsHKD f ConwayEra
pp HKD f EpochInterval
x -> PParamsHKD f ConwayEra
pp {cppDRepActivity = THKD x}
  hkdMinFeeRefScriptCostPerByteL :: forall (f :: * -> *).
HKDFunctor f =>
Lens' (PParamsHKD f ConwayEra) (HKD f NonNegativeInterval)
hkdMinFeeRefScriptCostPerByteL =
    (PParamsHKD f ConwayEra -> HKD f NonNegativeInterval)
-> (PParamsHKD f ConwayEra
    -> HKD f NonNegativeInterval -> PParamsHKD f ConwayEra)
-> forall {f :: * -> *}.
   Functor f =>
   (HKD f NonNegativeInterval -> f (HKD f NonNegativeInterval))
   -> PParamsHKD f ConwayEra -> f (PParamsHKD f ConwayEra)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens (THKD
  ('PPGroups 'EconomicGroup 'SecurityGroup) f NonNegativeInterval
-> HKD f NonNegativeInterval
forall (t :: PPGroups) (f :: * -> *) a. THKD t f a -> HKD f a
unTHKD (THKD
   ('PPGroups 'EconomicGroup 'SecurityGroup) f NonNegativeInterval
 -> HKD f NonNegativeInterval)
-> (ConwayPParams f ConwayEra
    -> THKD
         ('PPGroups 'EconomicGroup 'SecurityGroup) f NonNegativeInterval)
-> ConwayPParams f ConwayEra
-> HKD f NonNegativeInterval
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ConwayPParams f ConwayEra
-> THKD
     ('PPGroups 'EconomicGroup 'SecurityGroup) f NonNegativeInterval
forall (f :: * -> *) era.
ConwayPParams f era
-> THKD
     ('PPGroups 'EconomicGroup 'SecurityGroup) f NonNegativeInterval
cppMinFeeRefScriptCostPerByte) ((PParamsHKD f ConwayEra
  -> HKD f NonNegativeInterval -> PParamsHKD f ConwayEra)
 -> forall {f :: * -> *}.
    Functor f =>
    (HKD f NonNegativeInterval -> f (HKD f NonNegativeInterval))
    -> PParamsHKD f ConwayEra -> f (PParamsHKD f ConwayEra))
-> (PParamsHKD f ConwayEra
    -> HKD f NonNegativeInterval -> PParamsHKD f ConwayEra)
-> forall {f :: * -> *}.
   Functor f =>
   (HKD f NonNegativeInterval -> f (HKD f NonNegativeInterval))
   -> PParamsHKD f ConwayEra -> f (PParamsHKD f ConwayEra)
forall a b. (a -> b) -> a -> b
$ \PParamsHKD f ConwayEra
pp HKD f NonNegativeInterval
x -> PParamsHKD f ConwayEra
pp {cppMinFeeRefScriptCostPerByte = THKD x}

-- | Returns a basic "empty" `PParams` structure with all zero values.
emptyConwayPParams :: forall era. Era era => ConwayPParams Identity era
emptyConwayPParams :: forall era. Era era => ConwayPParams Identity era
emptyConwayPParams =
  ConwayPParams
    { cppMinFeeA :: THKD ('PPGroups 'EconomicGroup 'SecurityGroup) Identity Coin
cppMinFeeA = HKD Identity Coin
-> THKD ('PPGroups 'EconomicGroup 'SecurityGroup) Identity Coin
forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD (Integer -> Coin
Coin Integer
0)
    , cppMinFeeB :: THKD ('PPGroups 'EconomicGroup 'SecurityGroup) Identity Coin
cppMinFeeB = HKD Identity Coin
-> THKD ('PPGroups 'EconomicGroup 'SecurityGroup) Identity Coin
forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD (Integer -> Coin
Coin Integer
0)
    , cppMaxBBSize :: THKD ('PPGroups 'NetworkGroup 'SecurityGroup) Identity Word32
cppMaxBBSize = HKD Identity Word32
-> THKD ('PPGroups 'NetworkGroup 'SecurityGroup) Identity Word32
forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD Word32
HKD Identity Word32
0
    , cppMaxTxSize :: THKD ('PPGroups 'NetworkGroup 'SecurityGroup) Identity Word32
cppMaxTxSize = HKD Identity Word32
-> THKD ('PPGroups 'NetworkGroup 'SecurityGroup) Identity Word32
forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD Word32
HKD Identity Word32
2048
    , cppMaxBHSize :: THKD ('PPGroups 'NetworkGroup 'SecurityGroup) Identity Word16
cppMaxBHSize = HKD Identity Word16
-> THKD ('PPGroups 'NetworkGroup 'SecurityGroup) Identity Word16
forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD Word16
HKD Identity Word16
0
    , cppKeyDeposit :: THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) Identity Coin
cppKeyDeposit = HKD Identity Coin
-> THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) Identity Coin
forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD (Integer -> Coin
Coin Integer
0)
    , cppPoolDeposit :: THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) Identity Coin
cppPoolDeposit = HKD Identity Coin
-> THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) Identity Coin
forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD (Integer -> Coin
Coin Integer
0)
    , cppEMax :: THKD
  ('PPGroups 'TechnicalGroup 'NoStakePoolGroup)
  Identity
  EpochInterval
cppEMax = HKD Identity EpochInterval
-> THKD
     ('PPGroups 'TechnicalGroup 'NoStakePoolGroup)
     Identity
     EpochInterval
forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD (Word32 -> EpochInterval
EpochInterval Word32
0)
    , cppNOpt :: THKD ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) Identity Word16
cppNOpt = HKD Identity Word16
-> THKD
     ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) Identity Word16
forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD Word16
HKD Identity Word16
100
    , cppA0 :: THKD
  ('PPGroups 'TechnicalGroup 'NoStakePoolGroup)
  Identity
  NonNegativeInterval
cppA0 = HKD Identity NonNegativeInterval
-> THKD
     ('PPGroups 'TechnicalGroup 'NoStakePoolGroup)
     Identity
     NonNegativeInterval
forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD HKD Identity NonNegativeInterval
NonNegativeInterval
forall a. Bounded a => a
minBound
    , cppRho :: THKD
  ('PPGroups 'EconomicGroup 'NoStakePoolGroup) Identity UnitInterval
cppRho = HKD Identity UnitInterval
-> THKD
     ('PPGroups 'EconomicGroup 'NoStakePoolGroup) Identity UnitInterval
forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD HKD Identity UnitInterval
UnitInterval
forall a. Bounded a => a
minBound
    , cppTau :: THKD
  ('PPGroups 'EconomicGroup 'NoStakePoolGroup) Identity UnitInterval
cppTau = HKD Identity UnitInterval
-> THKD
     ('PPGroups 'EconomicGroup 'NoStakePoolGroup) Identity UnitInterval
forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD HKD Identity UnitInterval
UnitInterval
forall a. Bounded a => a
minBound
    , cppProtocolVersion :: HKDNoUpdate Identity ProtVer
cppProtocolVersion = Version -> Natural -> ProtVer
ProtVer (forall era. Era era => Version
eraProtVerLow @era) Natural
0
    , cppMinPoolCost :: THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) Identity Coin
cppMinPoolCost = HKD Identity Coin
-> THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) Identity Coin
forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD HKD Identity Coin
Coin
forall a. Monoid a => a
mempty
    , cppCoinsPerUTxOByte :: THKD ('PPGroups 'EconomicGroup 'SecurityGroup) Identity CoinPerByte
cppCoinsPerUTxOByte = HKD Identity CoinPerByte
-> THKD
     ('PPGroups 'EconomicGroup 'SecurityGroup) Identity CoinPerByte
forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD (Coin -> CoinPerByte
CoinPerByte (Coin -> CoinPerByte) -> Coin -> CoinPerByte
forall a b. (a -> b) -> a -> b
$ Integer -> Coin
Coin Integer
0)
    , cppCostModels :: THKD
  ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) Identity CostModels
cppCostModels = HKD Identity CostModels
-> THKD
     ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) Identity CostModels
forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD CostModels
HKD Identity CostModels
emptyCostModels
    , cppPrices :: THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) Identity Prices
cppPrices = HKD Identity Prices
-> THKD
     ('PPGroups 'EconomicGroup 'NoStakePoolGroup) Identity Prices
forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD (NonNegativeInterval -> NonNegativeInterval -> Prices
Prices NonNegativeInterval
forall a. Bounded a => a
minBound NonNegativeInterval
forall a. Bounded a => a
minBound)
    , cppMaxTxExUnits :: THKD
  ('PPGroups 'NetworkGroup 'NoStakePoolGroup) Identity OrdExUnits
cppMaxTxExUnits = HKD Identity OrdExUnits
-> THKD
     ('PPGroups 'NetworkGroup 'NoStakePoolGroup) Identity OrdExUnits
forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD (ExUnits -> OrdExUnits
OrdExUnits (ExUnits -> OrdExUnits) -> ExUnits -> OrdExUnits
forall a b. (a -> b) -> a -> b
$ Natural -> Natural -> ExUnits
ExUnits Natural
0 Natural
0)
    , cppMaxBlockExUnits :: THKD ('PPGroups 'NetworkGroup 'SecurityGroup) Identity OrdExUnits
cppMaxBlockExUnits = HKD Identity OrdExUnits
-> THKD
     ('PPGroups 'NetworkGroup 'SecurityGroup) Identity OrdExUnits
forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD (ExUnits -> OrdExUnits
OrdExUnits (ExUnits -> OrdExUnits) -> ExUnits -> OrdExUnits
forall a b. (a -> b) -> a -> b
$ Natural -> Natural -> ExUnits
ExUnits Natural
0 Natural
0)
    , cppMaxValSize :: THKD ('PPGroups 'NetworkGroup 'SecurityGroup) Identity Word32
cppMaxValSize = HKD Identity Word32
-> THKD ('PPGroups 'NetworkGroup 'SecurityGroup) Identity Word32
forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD Word32
HKD Identity Word32
0
    , cppCollateralPercentage :: THKD ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) Identity Word16
cppCollateralPercentage = HKD Identity Word16
-> THKD
     ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) Identity Word16
forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD Word16
HKD Identity Word16
150
    , cppMaxCollateralInputs :: THKD ('PPGroups 'NetworkGroup 'NoStakePoolGroup) Identity Word16
cppMaxCollateralInputs = HKD Identity Word16
-> THKD ('PPGroups 'NetworkGroup 'NoStakePoolGroup) Identity Word16
forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD Word16
HKD Identity Word16
5
    , -- New in Conway
      cppPoolVotingThresholds :: THKD
  ('PPGroups 'GovGroup 'NoStakePoolGroup)
  Identity
  PoolVotingThresholds
cppPoolVotingThresholds = HKD Identity PoolVotingThresholds
-> THKD
     ('PPGroups 'GovGroup 'NoStakePoolGroup)
     Identity
     PoolVotingThresholds
forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD HKD Identity PoolVotingThresholds
PoolVotingThresholds
forall a. Default a => a
def
    , cppDRepVotingThresholds :: THKD
  ('PPGroups 'GovGroup 'NoStakePoolGroup)
  Identity
  DRepVotingThresholds
cppDRepVotingThresholds = HKD Identity DRepVotingThresholds
-> THKD
     ('PPGroups 'GovGroup 'NoStakePoolGroup)
     Identity
     DRepVotingThresholds
forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD HKD Identity DRepVotingThresholds
DRepVotingThresholds
forall a. Default a => a
def
    , cppCommitteeMinSize :: THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) Identity Word16
cppCommitteeMinSize = HKD Identity Word16
-> THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) Identity Word16
forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD Word16
HKD Identity Word16
0
    , cppCommitteeMaxTermLength :: THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) Identity EpochInterval
cppCommitteeMaxTermLength = HKD Identity EpochInterval
-> THKD
     ('PPGroups 'GovGroup 'NoStakePoolGroup) Identity EpochInterval
forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD (Word32 -> EpochInterval
EpochInterval Word32
0)
    , cppGovActionLifetime :: THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) Identity EpochInterval
cppGovActionLifetime = HKD Identity EpochInterval
-> THKD
     ('PPGroups 'GovGroup 'NoStakePoolGroup) Identity EpochInterval
forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD (Word32 -> EpochInterval
EpochInterval Word32
0)
    , cppGovActionDeposit :: THKD ('PPGroups 'GovGroup 'SecurityGroup) Identity Coin
cppGovActionDeposit = HKD Identity Coin
-> THKD ('PPGroups 'GovGroup 'SecurityGroup) Identity Coin
forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD (Integer -> Coin
Coin Integer
0)
    , cppDRepDeposit :: THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) Identity Coin
cppDRepDeposit = HKD Identity Coin
-> THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) Identity Coin
forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD (Integer -> Coin
Coin Integer
0)
    , cppDRepActivity :: THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) Identity EpochInterval
cppDRepActivity = HKD Identity EpochInterval
-> THKD
     ('PPGroups 'GovGroup 'NoStakePoolGroup) Identity EpochInterval
forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD (Word32 -> EpochInterval
EpochInterval Word32
0)
    , cppMinFeeRefScriptCostPerByte :: THKD
  ('PPGroups 'EconomicGroup 'SecurityGroup)
  Identity
  NonNegativeInterval
cppMinFeeRefScriptCostPerByte = HKD Identity NonNegativeInterval
-> THKD
     ('PPGroups 'EconomicGroup 'SecurityGroup)
     Identity
     NonNegativeInterval
forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD HKD Identity NonNegativeInterval
NonNegativeInterval
forall a. Bounded a => a
minBound
    }

emptyConwayPParamsUpdate :: ConwayPParams StrictMaybe era
emptyConwayPParamsUpdate :: forall era. ConwayPParams StrictMaybe era
emptyConwayPParamsUpdate =
  ConwayPParams
    { cppMinFeeA :: THKD ('PPGroups 'EconomicGroup 'SecurityGroup) StrictMaybe Coin
cppMinFeeA = HKD StrictMaybe Coin
-> THKD ('PPGroups 'EconomicGroup 'SecurityGroup) StrictMaybe Coin
forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD StrictMaybe Coin
HKD StrictMaybe Coin
forall a. StrictMaybe a
SNothing
    , cppMinFeeB :: THKD ('PPGroups 'EconomicGroup 'SecurityGroup) StrictMaybe Coin
cppMinFeeB = HKD StrictMaybe Coin
-> THKD ('PPGroups 'EconomicGroup 'SecurityGroup) StrictMaybe Coin
forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD StrictMaybe Coin
HKD StrictMaybe Coin
forall a. StrictMaybe a
SNothing
    , cppMaxBBSize :: THKD ('PPGroups 'NetworkGroup 'SecurityGroup) StrictMaybe Word32
cppMaxBBSize = HKD StrictMaybe Word32
-> THKD ('PPGroups 'NetworkGroup 'SecurityGroup) StrictMaybe Word32
forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD StrictMaybe Word32
HKD StrictMaybe Word32
forall a. StrictMaybe a
SNothing
    , cppMaxTxSize :: THKD ('PPGroups 'NetworkGroup 'SecurityGroup) StrictMaybe Word32
cppMaxTxSize = HKD StrictMaybe Word32
-> THKD ('PPGroups 'NetworkGroup 'SecurityGroup) StrictMaybe Word32
forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD StrictMaybe Word32
HKD StrictMaybe Word32
forall a. StrictMaybe a
SNothing
    , cppMaxBHSize :: THKD ('PPGroups 'NetworkGroup 'SecurityGroup) StrictMaybe Word16
cppMaxBHSize = HKD StrictMaybe Word16
-> THKD ('PPGroups 'NetworkGroup 'SecurityGroup) StrictMaybe Word16
forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD StrictMaybe Word16
HKD StrictMaybe Word16
forall a. StrictMaybe a
SNothing
    , cppKeyDeposit :: THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) StrictMaybe Coin
cppKeyDeposit = HKD StrictMaybe Coin
-> THKD
     ('PPGroups 'EconomicGroup 'NoStakePoolGroup) StrictMaybe Coin
forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD StrictMaybe Coin
HKD StrictMaybe Coin
forall a. StrictMaybe a
SNothing
    , cppPoolDeposit :: THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) StrictMaybe Coin
cppPoolDeposit = HKD StrictMaybe Coin
-> THKD
     ('PPGroups 'EconomicGroup 'NoStakePoolGroup) StrictMaybe Coin
forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD StrictMaybe Coin
HKD StrictMaybe Coin
forall a. StrictMaybe a
SNothing
    , cppEMax :: THKD
  ('PPGroups 'TechnicalGroup 'NoStakePoolGroup)
  StrictMaybe
  EpochInterval
cppEMax = HKD StrictMaybe EpochInterval
-> THKD
     ('PPGroups 'TechnicalGroup 'NoStakePoolGroup)
     StrictMaybe
     EpochInterval
forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD StrictMaybe EpochInterval
HKD StrictMaybe EpochInterval
forall a. StrictMaybe a
SNothing
    , cppNOpt :: THKD
  ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) StrictMaybe Word16
cppNOpt = HKD StrictMaybe Word16
-> THKD
     ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) StrictMaybe Word16
forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD StrictMaybe Word16
HKD StrictMaybe Word16
forall a. StrictMaybe a
SNothing
    , cppA0 :: THKD
  ('PPGroups 'TechnicalGroup 'NoStakePoolGroup)
  StrictMaybe
  NonNegativeInterval
cppA0 = HKD StrictMaybe NonNegativeInterval
-> THKD
     ('PPGroups 'TechnicalGroup 'NoStakePoolGroup)
     StrictMaybe
     NonNegativeInterval
forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD StrictMaybe NonNegativeInterval
HKD StrictMaybe NonNegativeInterval
forall a. StrictMaybe a
SNothing
    , cppRho :: THKD
  ('PPGroups 'EconomicGroup 'NoStakePoolGroup)
  StrictMaybe
  UnitInterval
cppRho = HKD StrictMaybe UnitInterval
-> THKD
     ('PPGroups 'EconomicGroup 'NoStakePoolGroup)
     StrictMaybe
     UnitInterval
forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD StrictMaybe UnitInterval
HKD StrictMaybe UnitInterval
forall a. StrictMaybe a
SNothing
    , cppTau :: THKD
  ('PPGroups 'EconomicGroup 'NoStakePoolGroup)
  StrictMaybe
  UnitInterval
cppTau = HKD StrictMaybe UnitInterval
-> THKD
     ('PPGroups 'EconomicGroup 'NoStakePoolGroup)
     StrictMaybe
     UnitInterval
forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD StrictMaybe UnitInterval
HKD StrictMaybe UnitInterval
forall a. StrictMaybe a
SNothing
    , cppProtocolVersion :: HKDNoUpdate StrictMaybe ProtVer
cppProtocolVersion = HKDNoUpdate StrictMaybe ProtVer
NoUpdate ProtVer
forall a. NoUpdate a
NoUpdate
    , cppMinPoolCost :: THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) StrictMaybe Coin
cppMinPoolCost = HKD StrictMaybe Coin
-> THKD
     ('PPGroups 'EconomicGroup 'NoStakePoolGroup) StrictMaybe Coin
forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD StrictMaybe Coin
HKD StrictMaybe Coin
forall a. StrictMaybe a
SNothing
    , cppCoinsPerUTxOByte :: THKD
  ('PPGroups 'EconomicGroup 'SecurityGroup) StrictMaybe CoinPerByte
cppCoinsPerUTxOByte = HKD StrictMaybe CoinPerByte
-> THKD
     ('PPGroups 'EconomicGroup 'SecurityGroup) StrictMaybe CoinPerByte
forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD StrictMaybe CoinPerByte
HKD StrictMaybe CoinPerByte
forall a. StrictMaybe a
SNothing
    , cppCostModels :: THKD
  ('PPGroups 'TechnicalGroup 'NoStakePoolGroup)
  StrictMaybe
  CostModels
cppCostModels = HKD StrictMaybe CostModels
-> THKD
     ('PPGroups 'TechnicalGroup 'NoStakePoolGroup)
     StrictMaybe
     CostModels
forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD StrictMaybe CostModels
HKD StrictMaybe CostModels
forall a. StrictMaybe a
SNothing
    , cppPrices :: THKD
  ('PPGroups 'EconomicGroup 'NoStakePoolGroup) StrictMaybe Prices
cppPrices = HKD StrictMaybe Prices
-> THKD
     ('PPGroups 'EconomicGroup 'NoStakePoolGroup) StrictMaybe Prices
forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD StrictMaybe Prices
HKD StrictMaybe Prices
forall a. StrictMaybe a
SNothing
    , cppMaxTxExUnits :: THKD
  ('PPGroups 'NetworkGroup 'NoStakePoolGroup) StrictMaybe OrdExUnits
cppMaxTxExUnits = HKD StrictMaybe OrdExUnits
-> THKD
     ('PPGroups 'NetworkGroup 'NoStakePoolGroup) StrictMaybe OrdExUnits
forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD StrictMaybe OrdExUnits
HKD StrictMaybe OrdExUnits
forall a. StrictMaybe a
SNothing
    , cppMaxBlockExUnits :: THKD
  ('PPGroups 'NetworkGroup 'SecurityGroup) StrictMaybe OrdExUnits
cppMaxBlockExUnits = HKD StrictMaybe OrdExUnits
-> THKD
     ('PPGroups 'NetworkGroup 'SecurityGroup) StrictMaybe OrdExUnits
forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD StrictMaybe OrdExUnits
HKD StrictMaybe OrdExUnits
forall a. StrictMaybe a
SNothing
    , cppMaxValSize :: THKD ('PPGroups 'NetworkGroup 'SecurityGroup) StrictMaybe Word32
cppMaxValSize = HKD StrictMaybe Word32
-> THKD ('PPGroups 'NetworkGroup 'SecurityGroup) StrictMaybe Word32
forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD StrictMaybe Word32
HKD StrictMaybe Word32
forall a. StrictMaybe a
SNothing
    , cppCollateralPercentage :: THKD
  ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) StrictMaybe Word16
cppCollateralPercentage = HKD StrictMaybe Word16
-> THKD
     ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) StrictMaybe Word16
forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD StrictMaybe Word16
HKD StrictMaybe Word16
forall a. StrictMaybe a
SNothing
    , cppMaxCollateralInputs :: THKD ('PPGroups 'NetworkGroup 'NoStakePoolGroup) StrictMaybe Word16
cppMaxCollateralInputs = HKD StrictMaybe Word16
-> THKD
     ('PPGroups 'NetworkGroup 'NoStakePoolGroup) StrictMaybe Word16
forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD StrictMaybe Word16
HKD StrictMaybe Word16
forall a. StrictMaybe a
SNothing
    , -- New for Conway
      cppPoolVotingThresholds :: THKD
  ('PPGroups 'GovGroup 'NoStakePoolGroup)
  StrictMaybe
  PoolVotingThresholds
cppPoolVotingThresholds = HKD StrictMaybe PoolVotingThresholds
-> THKD
     ('PPGroups 'GovGroup 'NoStakePoolGroup)
     StrictMaybe
     PoolVotingThresholds
forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD StrictMaybe PoolVotingThresholds
HKD StrictMaybe PoolVotingThresholds
forall a. StrictMaybe a
SNothing
    , cppDRepVotingThresholds :: THKD
  ('PPGroups 'GovGroup 'NoStakePoolGroup)
  StrictMaybe
  DRepVotingThresholds
cppDRepVotingThresholds = HKD StrictMaybe DRepVotingThresholds
-> THKD
     ('PPGroups 'GovGroup 'NoStakePoolGroup)
     StrictMaybe
     DRepVotingThresholds
forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD StrictMaybe DRepVotingThresholds
HKD StrictMaybe DRepVotingThresholds
forall a. StrictMaybe a
SNothing
    , cppCommitteeMinSize :: THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) StrictMaybe Word16
cppCommitteeMinSize = HKD StrictMaybe Word16
-> THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) StrictMaybe Word16
forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD StrictMaybe Word16
HKD StrictMaybe Word16
forall a. StrictMaybe a
SNothing
    , cppCommitteeMaxTermLength :: THKD
  ('PPGroups 'GovGroup 'NoStakePoolGroup) StrictMaybe EpochInterval
cppCommitteeMaxTermLength = HKD StrictMaybe EpochInterval
-> THKD
     ('PPGroups 'GovGroup 'NoStakePoolGroup) StrictMaybe EpochInterval
forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD StrictMaybe EpochInterval
HKD StrictMaybe EpochInterval
forall a. StrictMaybe a
SNothing
    , cppGovActionLifetime :: THKD
  ('PPGroups 'GovGroup 'NoStakePoolGroup) StrictMaybe EpochInterval
cppGovActionLifetime = HKD StrictMaybe EpochInterval
-> THKD
     ('PPGroups 'GovGroup 'NoStakePoolGroup) StrictMaybe EpochInterval
forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD StrictMaybe EpochInterval
HKD StrictMaybe EpochInterval
forall a. StrictMaybe a
SNothing
    , cppGovActionDeposit :: THKD ('PPGroups 'GovGroup 'SecurityGroup) StrictMaybe Coin
cppGovActionDeposit = HKD StrictMaybe Coin
-> THKD ('PPGroups 'GovGroup 'SecurityGroup) StrictMaybe Coin
forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD StrictMaybe Coin
HKD StrictMaybe Coin
forall a. StrictMaybe a
SNothing
    , cppDRepDeposit :: THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) StrictMaybe Coin
cppDRepDeposit = HKD StrictMaybe Coin
-> THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) StrictMaybe Coin
forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD StrictMaybe Coin
HKD StrictMaybe Coin
forall a. StrictMaybe a
SNothing
    , cppDRepActivity :: THKD
  ('PPGroups 'GovGroup 'NoStakePoolGroup) StrictMaybe EpochInterval
cppDRepActivity = HKD StrictMaybe EpochInterval
-> THKD
     ('PPGroups 'GovGroup 'NoStakePoolGroup) StrictMaybe EpochInterval
forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD StrictMaybe EpochInterval
HKD StrictMaybe EpochInterval
forall a. StrictMaybe a
SNothing
    , cppMinFeeRefScriptCostPerByte :: THKD
  ('PPGroups 'EconomicGroup 'SecurityGroup)
  StrictMaybe
  NonNegativeInterval
cppMinFeeRefScriptCostPerByte = HKD StrictMaybe NonNegativeInterval
-> THKD
     ('PPGroups 'EconomicGroup 'SecurityGroup)
     StrictMaybe
     NonNegativeInterval
forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD StrictMaybe NonNegativeInterval
HKD StrictMaybe NonNegativeInterval
forall a. StrictMaybe a
SNothing
    }

instance ToJSON (UpgradeConwayPParams Identity) where
  toJSON :: UpgradeConwayPParams Identity -> Value
toJSON = [Pair] -> Value
object ([Pair] -> Value)
-> (UpgradeConwayPParams Identity -> [Pair])
-> UpgradeConwayPParams Identity
-> Value
forall b c a. (b -> c) -> (a -> b) -> a -> c
. UpgradeConwayPParams Identity -> [Pair]
forall e a. KeyValue e a => UpgradeConwayPParams Identity -> [a]
toUpgradeConwayPParamsUpdatePairs
  toEncoding :: UpgradeConwayPParams Identity -> Encoding
toEncoding = Series -> Encoding
pairs (Series -> Encoding)
-> (UpgradeConwayPParams Identity -> Series)
-> UpgradeConwayPParams Identity
-> Encoding
forall b c a. (b -> c) -> (a -> b) -> a -> c
. [Series] -> Series
forall a. Monoid a => [a] -> a
mconcat ([Series] -> Series)
-> (UpgradeConwayPParams Identity -> [Series])
-> UpgradeConwayPParams Identity
-> Series
forall b c a. (b -> c) -> (a -> b) -> a -> c
. UpgradeConwayPParams Identity -> [Series]
forall e a. KeyValue e a => UpgradeConwayPParams Identity -> [a]
toUpgradeConwayPParamsUpdatePairs

toUpgradeConwayPParamsUpdatePairs :: KeyValue e a => UpgradeConwayPParams Identity -> [a]
toUpgradeConwayPParamsUpdatePairs :: forall e a. KeyValue e a => UpgradeConwayPParams Identity -> [a]
toUpgradeConwayPParamsUpdatePairs UpgradeConwayPParams Identity
upp =
  (Key -> Value -> a) -> Pair -> a
forall a b c. (a -> b -> c) -> (a, b) -> c
uncurry Key -> Value -> a
forall v. ToJSON v => Key -> v -> a
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(.=) (Pair -> a) -> [Pair] -> [a]
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> UpgradeConwayPParams Identity -> [Pair]
upgradeConwayPParamsHKDPairs UpgradeConwayPParams Identity
upp

upgradeConwayPParamsHKDPairs :: UpgradeConwayPParams Identity -> [(Key, Aeson.Value)]
upgradeConwayPParamsHKDPairs :: UpgradeConwayPParams Identity -> [Pair]
upgradeConwayPParamsHKDPairs UpgradeConwayPParams {HKD Identity Word16
HKD Identity CostModel
HKD Identity EpochInterval
HKD Identity NonNegativeInterval
HKD Identity Coin
HKD Identity DRepVotingThresholds
HKD Identity PoolVotingThresholds
ucppPoolVotingThresholds :: forall (f :: * -> *).
UpgradeConwayPParams f -> HKD f PoolVotingThresholds
ucppDRepVotingThresholds :: forall (f :: * -> *).
UpgradeConwayPParams f -> HKD f DRepVotingThresholds
ucppCommitteeMinSize :: forall (f :: * -> *). UpgradeConwayPParams f -> HKD f Word16
ucppCommitteeMaxTermLength :: forall (f :: * -> *). UpgradeConwayPParams f -> HKD f EpochInterval
ucppGovActionLifetime :: forall (f :: * -> *). UpgradeConwayPParams f -> HKD f EpochInterval
ucppGovActionDeposit :: forall (f :: * -> *). UpgradeConwayPParams f -> HKD f Coin
ucppDRepDeposit :: forall (f :: * -> *). UpgradeConwayPParams f -> HKD f Coin
ucppDRepActivity :: forall (f :: * -> *). UpgradeConwayPParams f -> HKD f EpochInterval
ucppMinFeeRefScriptCostPerByte :: forall (f :: * -> *).
UpgradeConwayPParams f -> HKD f NonNegativeInterval
ucppPlutusV3CostModel :: forall (f :: * -> *). UpgradeConwayPParams f -> HKD f CostModel
ucppPoolVotingThresholds :: HKD Identity PoolVotingThresholds
ucppDRepVotingThresholds :: HKD Identity DRepVotingThresholds
ucppCommitteeMinSize :: HKD Identity Word16
ucppCommitteeMaxTermLength :: HKD Identity EpochInterval
ucppGovActionLifetime :: HKD Identity EpochInterval
ucppGovActionDeposit :: HKD Identity Coin
ucppDRepDeposit :: HKD Identity Coin
ucppDRepActivity :: HKD Identity EpochInterval
ucppMinFeeRefScriptCostPerByte :: HKD Identity NonNegativeInterval
ucppPlutusV3CostModel :: HKD Identity CostModel
..} =
  [ (Key
"poolVotingThresholds", (forall a. ToJSON a => a -> Value
toJSON @PoolVotingThresholds) HKD Identity PoolVotingThresholds
PoolVotingThresholds
ucppPoolVotingThresholds)
  , (Key
"dRepVotingThresholds", (forall a. ToJSON a => a -> Value
toJSON @DRepVotingThresholds) HKD Identity DRepVotingThresholds
DRepVotingThresholds
ucppDRepVotingThresholds)
  , (Key
"committeeMinSize", (forall a. ToJSON a => a -> Value
toJSON @Word16) Word16
HKD Identity Word16
ucppCommitteeMinSize)
  , (Key
"committeeMaxTermLength", (forall a. ToJSON a => a -> Value
toJSON @EpochInterval) EpochInterval
HKD Identity EpochInterval
ucppCommitteeMaxTermLength)
  , (Key
"govActionLifetime", (forall a. ToJSON a => a -> Value
toJSON @EpochInterval) EpochInterval
HKD Identity EpochInterval
ucppGovActionLifetime)
  , (Key
"govActionDeposit", (forall a. ToJSON a => a -> Value
toJSON @Coin) HKD Identity Coin
Coin
ucppGovActionDeposit)
  , (Key
"dRepDeposit", (forall a. ToJSON a => a -> Value
toJSON @Coin) HKD Identity Coin
Coin
ucppDRepDeposit)
  , (Key
"dRepActivity", (forall a. ToJSON a => a -> Value
toJSON @EpochInterval) EpochInterval
HKD Identity EpochInterval
ucppDRepActivity)
  , (Key
"minFeeRefScriptCostPerByte", (forall a. ToJSON a => a -> Value
toJSON @NonNegativeInterval) HKD Identity NonNegativeInterval
NonNegativeInterval
ucppMinFeeRefScriptCostPerByte)
  , (Key
"plutusV3CostModel", (forall a. ToJSON a => a -> Value
toJSON @CostModel) CostModel
HKD Identity CostModel
ucppPlutusV3CostModel)
  ]

instance FromJSON (UpgradeConwayPParams Identity) where
  parseJSON :: Value -> Parser (UpgradeConwayPParams Identity)
parseJSON =
    String
-> (Object -> Parser (UpgradeConwayPParams Identity))
-> Value
-> Parser (UpgradeConwayPParams Identity)
forall a. String -> (Object -> Parser a) -> Value -> Parser a
withObject String
"UpgradeConwayPParams" ((Object -> Parser (UpgradeConwayPParams Identity))
 -> Value -> Parser (UpgradeConwayPParams Identity))
-> (Object -> Parser (UpgradeConwayPParams Identity))
-> Value
-> Parser (UpgradeConwayPParams Identity)
forall a b. (a -> b) -> a -> b
$ \Object
o ->
      HKD Identity PoolVotingThresholds
-> HKD Identity DRepVotingThresholds
-> HKD Identity Word16
-> HKD Identity EpochInterval
-> HKD Identity EpochInterval
-> HKD Identity Coin
-> HKD Identity Coin
-> HKD Identity EpochInterval
-> HKD Identity NonNegativeInterval
-> HKD Identity CostModel
-> UpgradeConwayPParams Identity
PoolVotingThresholds
-> DRepVotingThresholds
-> Word16
-> EpochInterval
-> EpochInterval
-> Coin
-> Coin
-> EpochInterval
-> NonNegativeInterval
-> CostModel
-> UpgradeConwayPParams Identity
forall (f :: * -> *).
HKD f PoolVotingThresholds
-> HKD f DRepVotingThresholds
-> HKD f Word16
-> HKD f EpochInterval
-> HKD f EpochInterval
-> HKD f Coin
-> HKD f Coin
-> HKD f EpochInterval
-> HKD f NonNegativeInterval
-> HKD f CostModel
-> UpgradeConwayPParams f
UpgradeConwayPParams
        (PoolVotingThresholds
 -> DRepVotingThresholds
 -> Word16
 -> EpochInterval
 -> EpochInterval
 -> Coin
 -> Coin
 -> EpochInterval
 -> NonNegativeInterval
 -> CostModel
 -> UpgradeConwayPParams Identity)
-> Parser PoolVotingThresholds
-> Parser
     (DRepVotingThresholds
      -> Word16
      -> EpochInterval
      -> EpochInterval
      -> Coin
      -> Coin
      -> EpochInterval
      -> NonNegativeInterval
      -> CostModel
      -> UpgradeConwayPParams Identity)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
o Object -> Key -> Parser PoolVotingThresholds
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"poolVotingThresholds"
        Parser
  (DRepVotingThresholds
   -> Word16
   -> EpochInterval
   -> EpochInterval
   -> Coin
   -> Coin
   -> EpochInterval
   -> NonNegativeInterval
   -> CostModel
   -> UpgradeConwayPParams Identity)
-> Parser DRepVotingThresholds
-> Parser
     (Word16
      -> EpochInterval
      -> EpochInterval
      -> Coin
      -> Coin
      -> EpochInterval
      -> NonNegativeInterval
      -> CostModel
      -> UpgradeConwayPParams Identity)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser DRepVotingThresholds
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"dRepVotingThresholds"
        Parser
  (Word16
   -> EpochInterval
   -> EpochInterval
   -> Coin
   -> Coin
   -> EpochInterval
   -> NonNegativeInterval
   -> CostModel
   -> UpgradeConwayPParams Identity)
-> Parser Word16
-> Parser
     (EpochInterval
      -> EpochInterval
      -> Coin
      -> Coin
      -> EpochInterval
      -> NonNegativeInterval
      -> CostModel
      -> UpgradeConwayPParams Identity)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser Word16
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"committeeMinSize"
        Parser
  (EpochInterval
   -> EpochInterval
   -> Coin
   -> Coin
   -> EpochInterval
   -> NonNegativeInterval
   -> CostModel
   -> UpgradeConwayPParams Identity)
-> Parser EpochInterval
-> Parser
     (EpochInterval
      -> Coin
      -> Coin
      -> EpochInterval
      -> NonNegativeInterval
      -> CostModel
      -> UpgradeConwayPParams Identity)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser EpochInterval
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"committeeMaxTermLength"
        Parser
  (EpochInterval
   -> Coin
   -> Coin
   -> EpochInterval
   -> NonNegativeInterval
   -> CostModel
   -> UpgradeConwayPParams Identity)
-> Parser EpochInterval
-> Parser
     (Coin
      -> Coin
      -> EpochInterval
      -> NonNegativeInterval
      -> CostModel
      -> UpgradeConwayPParams Identity)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser EpochInterval
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"govActionLifetime"
        Parser
  (Coin
   -> Coin
   -> EpochInterval
   -> NonNegativeInterval
   -> CostModel
   -> UpgradeConwayPParams Identity)
-> Parser Coin
-> Parser
     (Coin
      -> EpochInterval
      -> NonNegativeInterval
      -> CostModel
      -> UpgradeConwayPParams Identity)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser Coin
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"govActionDeposit"
        Parser
  (Coin
   -> EpochInterval
   -> NonNegativeInterval
   -> CostModel
   -> UpgradeConwayPParams Identity)
-> Parser Coin
-> Parser
     (EpochInterval
      -> NonNegativeInterval
      -> CostModel
      -> UpgradeConwayPParams Identity)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser Coin
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"dRepDeposit"
        Parser
  (EpochInterval
   -> NonNegativeInterval
   -> CostModel
   -> UpgradeConwayPParams Identity)
-> Parser EpochInterval
-> Parser
     (NonNegativeInterval -> CostModel -> UpgradeConwayPParams Identity)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser EpochInterval
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"dRepActivity"
        Parser
  (NonNegativeInterval -> CostModel -> UpgradeConwayPParams Identity)
-> Parser NonNegativeInterval
-> Parser (CostModel -> UpgradeConwayPParams Identity)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser NonNegativeInterval
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"minFeeRefScriptCostPerByte"
        Parser (CostModel -> UpgradeConwayPParams Identity)
-> Parser CostModel -> Parser (UpgradeConwayPParams Identity)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> ((CostModelApplyError -> Parser CostModel)
-> (CostModel -> Parser CostModel)
-> Either CostModelApplyError CostModel
-> Parser CostModel
forall a c b. (a -> c) -> (b -> c) -> Either a b -> c
either (String -> Parser CostModel
forall a. String -> Parser a
forall (m :: * -> *) a. MonadFail m => String -> m a
fail (String -> Parser CostModel)
-> (CostModelApplyError -> String)
-> CostModelApplyError
-> Parser CostModel
forall b c a. (b -> c) -> (a -> b) -> a -> c
. CostModelApplyError -> String
forall a. Show a => a -> String
show) CostModel -> Parser CostModel
forall a. a -> Parser a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (Either CostModelApplyError CostModel -> Parser CostModel)
-> ([Int64] -> Either CostModelApplyError CostModel)
-> [Int64]
-> Parser CostModel
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Language -> [Int64] -> Either CostModelApplyError CostModel
mkCostModel Language
PlutusV3 ([Int64] -> Parser CostModel) -> Parser [Int64] -> Parser CostModel
forall (m :: * -> *) a b. Monad m => (a -> m b) -> m a -> m b
=<< Object
o Object -> Key -> Parser [Int64]
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"plutusV3CostModel")

upgradeConwayPParams ::
  forall f.
  HKDApplicative f =>
  UpgradeConwayPParams f ->
  PParamsHKD f BabbageEra ->
  ConwayPParams f ConwayEra
upgradeConwayPParams :: forall (f :: * -> *).
HKDApplicative f =>
UpgradeConwayPParams f
-> PParamsHKD f BabbageEra -> ConwayPParams f ConwayEra
upgradeConwayPParams UpgradeConwayPParams {HKD f Word16
HKD f CostModel
HKD f EpochInterval
HKD f NonNegativeInterval
HKD f Coin
HKD f DRepVotingThresholds
HKD f PoolVotingThresholds
ucppPoolVotingThresholds :: forall (f :: * -> *).
UpgradeConwayPParams f -> HKD f PoolVotingThresholds
ucppDRepVotingThresholds :: forall (f :: * -> *).
UpgradeConwayPParams f -> HKD f DRepVotingThresholds
ucppCommitteeMinSize :: forall (f :: * -> *). UpgradeConwayPParams f -> HKD f Word16
ucppCommitteeMaxTermLength :: forall (f :: * -> *). UpgradeConwayPParams f -> HKD f EpochInterval
ucppGovActionLifetime :: forall (f :: * -> *). UpgradeConwayPParams f -> HKD f EpochInterval
ucppGovActionDeposit :: forall (f :: * -> *). UpgradeConwayPParams f -> HKD f Coin
ucppDRepDeposit :: forall (f :: * -> *). UpgradeConwayPParams f -> HKD f Coin
ucppDRepActivity :: forall (f :: * -> *). UpgradeConwayPParams f -> HKD f EpochInterval
ucppMinFeeRefScriptCostPerByte :: forall (f :: * -> *).
UpgradeConwayPParams f -> HKD f NonNegativeInterval
ucppPlutusV3CostModel :: forall (f :: * -> *). UpgradeConwayPParams f -> HKD f CostModel
ucppPoolVotingThresholds :: HKD f PoolVotingThresholds
ucppDRepVotingThresholds :: HKD f DRepVotingThresholds
ucppCommitteeMinSize :: HKD f Word16
ucppCommitteeMaxTermLength :: HKD f EpochInterval
ucppGovActionLifetime :: HKD f EpochInterval
ucppGovActionDeposit :: HKD f Coin
ucppDRepDeposit :: HKD f Coin
ucppDRepActivity :: HKD f EpochInterval
ucppMinFeeRefScriptCostPerByte :: HKD f NonNegativeInterval
ucppPlutusV3CostModel :: HKD f CostModel
..} BabbagePParams {HKD f Natural
HKD f Word16
HKD f Word32
HKD f OrdExUnits
HKD f CostModels
HKD f Prices
HKD f CoinPerByte
HKD f EpochInterval
HKD f UnitInterval
HKD f NonNegativeInterval
HKD f ProtVer
HKD f Coin
bppMinFeeA :: HKD f Coin
bppMinFeeB :: HKD f Coin
bppMaxBBSize :: HKD f Word32
bppMaxTxSize :: HKD f Word32
bppMaxBHSize :: HKD f Word16
bppKeyDeposit :: HKD f Coin
bppPoolDeposit :: HKD f Coin
bppEMax :: HKD f EpochInterval
bppNOpt :: HKD f Word16
bppA0 :: HKD f NonNegativeInterval
bppRho :: HKD f UnitInterval
bppTau :: HKD f UnitInterval
bppProtocolVersion :: HKD f ProtVer
bppMinPoolCost :: HKD f Coin
bppCoinsPerUTxOByte :: HKD f CoinPerByte
bppCostModels :: HKD f CostModels
bppPrices :: HKD f Prices
bppMaxTxExUnits :: HKD f OrdExUnits
bppMaxBlockExUnits :: HKD f OrdExUnits
bppMaxValSize :: HKD f Natural
bppCollateralPercentage :: HKD f Natural
bppMaxCollateralInputs :: HKD f Natural
bppMinFeeA :: forall (f :: * -> *) era. BabbagePParams f era -> HKD f Coin
bppMinFeeB :: forall (f :: * -> *) era. BabbagePParams f era -> HKD f Coin
bppMaxBBSize :: forall (f :: * -> *) era. BabbagePParams f era -> HKD f Word32
bppMaxTxSize :: forall (f :: * -> *) era. BabbagePParams f era -> HKD f Word32
bppMaxBHSize :: forall (f :: * -> *) era. BabbagePParams f era -> HKD f Word16
bppKeyDeposit :: forall (f :: * -> *) era. BabbagePParams f era -> HKD f Coin
bppPoolDeposit :: forall (f :: * -> *) era. BabbagePParams f era -> HKD f Coin
bppEMax :: forall (f :: * -> *) era.
BabbagePParams f era -> HKD f EpochInterval
bppNOpt :: forall (f :: * -> *) era. BabbagePParams f era -> HKD f Word16
bppA0 :: forall (f :: * -> *) era.
BabbagePParams f era -> HKD f NonNegativeInterval
bppRho :: forall (f :: * -> *) era.
BabbagePParams f era -> HKD f UnitInterval
bppTau :: forall (f :: * -> *) era.
BabbagePParams f era -> HKD f UnitInterval
bppProtocolVersion :: forall (f :: * -> *) era. BabbagePParams f era -> HKD f ProtVer
bppMinPoolCost :: forall (f :: * -> *) era. BabbagePParams f era -> HKD f Coin
bppCoinsPerUTxOByte :: forall (f :: * -> *) era. BabbagePParams f era -> HKD f CoinPerByte
bppCostModels :: forall (f :: * -> *) era. BabbagePParams f era -> HKD f CostModels
bppPrices :: forall (f :: * -> *) era. BabbagePParams f era -> HKD f Prices
bppMaxTxExUnits :: forall (f :: * -> *) era. BabbagePParams f era -> HKD f OrdExUnits
bppMaxBlockExUnits :: forall (f :: * -> *) era. BabbagePParams f era -> HKD f OrdExUnits
bppMaxValSize :: forall (f :: * -> *) era. BabbagePParams f era -> HKD f Natural
bppCollateralPercentage :: forall (f :: * -> *) era. BabbagePParams f era -> HKD f Natural
bppMaxCollateralInputs :: forall (f :: * -> *) era. BabbagePParams f era -> HKD f Natural
..} =
  ConwayPParams
    { cppMinFeeA :: THKD ('PPGroups 'EconomicGroup 'SecurityGroup) f Coin
cppMinFeeA = HKD f Coin -> THKD ('PPGroups 'EconomicGroup 'SecurityGroup) f Coin
forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD HKD f Coin
bppMinFeeA
    , cppMinFeeB :: THKD ('PPGroups 'EconomicGroup 'SecurityGroup) f Coin
cppMinFeeB = HKD f Coin -> THKD ('PPGroups 'EconomicGroup 'SecurityGroup) f Coin
forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD HKD f Coin
bppMinFeeB
    , cppMaxBBSize :: THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f Word32
cppMaxBBSize = HKD f Word32
-> THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f Word32
forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD HKD f Word32
bppMaxBBSize
    , cppMaxTxSize :: THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f Word32
cppMaxTxSize = HKD f Word32
-> THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f Word32
forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD HKD f Word32
bppMaxTxSize
    , cppMaxBHSize :: THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f Word16
cppMaxBHSize = HKD f Word16
-> THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f Word16
forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD HKD f Word16
bppMaxBHSize
    , cppKeyDeposit :: THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f Coin
cppKeyDeposit = HKD f Coin
-> THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f Coin
forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD HKD f Coin
bppKeyDeposit
    , cppPoolDeposit :: THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f Coin
cppPoolDeposit = HKD f Coin
-> THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f Coin
forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD HKD f Coin
bppPoolDeposit
    , cppEMax :: THKD ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f EpochInterval
cppEMax = HKD f EpochInterval
-> THKD
     ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f EpochInterval
forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD HKD f EpochInterval
bppEMax
    , cppNOpt :: THKD ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f Word16
cppNOpt = HKD f Word16
-> THKD ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f Word16
forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD HKD f Word16
bppNOpt
    , cppA0 :: THKD
  ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f NonNegativeInterval
cppA0 = HKD f NonNegativeInterval
-> THKD
     ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f NonNegativeInterval
forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD HKD f NonNegativeInterval
bppA0
    , cppRho :: THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f UnitInterval
cppRho = HKD f UnitInterval
-> THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f UnitInterval
forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD HKD f UnitInterval
bppRho
    , cppTau :: THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f UnitInterval
cppTau = HKD f UnitInterval
-> THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f UnitInterval
forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD HKD f UnitInterval
bppTau
    , cppProtocolVersion :: HKDNoUpdate f ProtVer
cppProtocolVersion = forall (f :: * -> *) a. HKDFunctor f => HKD f a -> HKDNoUpdate f a
toNoUpdate @f @ProtVer HKD f ProtVer
bppProtocolVersion
    , cppMinPoolCost :: THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f Coin
cppMinPoolCost = HKD f Coin
-> THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f Coin
forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD HKD f Coin
bppMinPoolCost
    , cppCoinsPerUTxOByte :: THKD ('PPGroups 'EconomicGroup 'SecurityGroup) f CoinPerByte
cppCoinsPerUTxOByte = HKD f CoinPerByte
-> THKD ('PPGroups 'EconomicGroup 'SecurityGroup) f CoinPerByte
forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD HKD f CoinPerByte
bppCoinsPerUTxOByte
    , cppCostModels :: THKD ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f CostModels
cppCostModels =
        HKD f CostModels
-> THKD ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f CostModels
forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD (HKD f CostModels
 -> THKD ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f CostModels)
-> HKD f CostModels
-> THKD ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f CostModels
forall a b. (a -> b) -> a -> b
$
          -- We add the PlutusV3 CostModel from ConwayGenesis to the ConwayPParams here
          forall (f :: * -> *) a b c.
HKDApplicative f =>
(a -> b -> c) -> HKD f a -> HKD f b -> HKD f c
hkdLiftA2 @f
            CostModels -> CostModels -> CostModels
updateCostModels
            HKD f CostModels
bppCostModels
            ( Proxy f
-> (CostModel -> CostModels) -> HKD f CostModel -> HKD f CostModels
forall (f :: * -> *) (proxy :: (* -> *) -> *) a b.
HKDFunctor f =>
proxy f -> (a -> b) -> HKD f a -> HKD f b
forall (proxy :: (* -> *) -> *) a b.
proxy f -> (a -> b) -> HKD f a -> HKD f b
hkdMap
                (forall {k} (t :: k). Proxy t
forall (t :: * -> *). Proxy t
Proxy @f)
                (Map Language CostModel -> CostModels
mkCostModels (Map Language CostModel -> CostModels)
-> (CostModel -> Map Language CostModel) -> CostModel -> CostModels
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Language -> CostModel -> Map Language CostModel
forall k a. k -> a -> Map k a
Map.singleton Language
PlutusV3)
                HKD f CostModel
ucppPlutusV3CostModel
            )
    , cppPrices :: THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f Prices
cppPrices = HKD f Prices
-> THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f Prices
forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD HKD f Prices
bppPrices
    , cppMaxTxExUnits :: THKD ('PPGroups 'NetworkGroup 'NoStakePoolGroup) f OrdExUnits
cppMaxTxExUnits = HKD f OrdExUnits
-> THKD ('PPGroups 'NetworkGroup 'NoStakePoolGroup) f OrdExUnits
forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD HKD f OrdExUnits
bppMaxTxExUnits
    , cppMaxBlockExUnits :: THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f OrdExUnits
cppMaxBlockExUnits = HKD f OrdExUnits
-> THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f OrdExUnits
forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD HKD f OrdExUnits
bppMaxBlockExUnits
    , cppMaxValSize :: THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f Word32
cppMaxValSize =
        HKD f Word32
-> THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f Word32
forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD (forall (f :: * -> *) i b.
(HKDFunctor f, Integral i, Integral b, Bounded b, HasCallStack) =>
HKD f i -> HKD f b
asBoundedIntegralHKD @f @Natural @Word32 HKD f Natural
bppMaxValSize)
    , cppCollateralPercentage :: THKD ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f Word16
cppCollateralPercentage =
        HKD f Word16
-> THKD ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f Word16
forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD (forall (f :: * -> *) i b.
(HKDFunctor f, Integral i, Integral b, Bounded b, HasCallStack) =>
HKD f i -> HKD f b
asBoundedIntegralHKD @f @Natural @Word16 HKD f Natural
bppCollateralPercentage)
    , cppMaxCollateralInputs :: THKD ('PPGroups 'NetworkGroup 'NoStakePoolGroup) f Word16
cppMaxCollateralInputs =
        HKD f Word16
-> THKD ('PPGroups 'NetworkGroup 'NoStakePoolGroup) f Word16
forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD (forall (f :: * -> *) i b.
(HKDFunctor f, Integral i, Integral b, Bounded b, HasCallStack) =>
HKD f i -> HKD f b
asBoundedIntegralHKD @f @Natural @Word16 HKD f Natural
bppMaxCollateralInputs)
    , -- New for Conway
      cppPoolVotingThresholds :: THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f PoolVotingThresholds
cppPoolVotingThresholds = HKD f PoolVotingThresholds
-> THKD
     ('PPGroups 'GovGroup 'NoStakePoolGroup) f PoolVotingThresholds
forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD HKD f PoolVotingThresholds
ucppPoolVotingThresholds
    , cppDRepVotingThresholds :: THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f DRepVotingThresholds
cppDRepVotingThresholds = HKD f DRepVotingThresholds
-> THKD
     ('PPGroups 'GovGroup 'NoStakePoolGroup) f DRepVotingThresholds
forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD HKD f DRepVotingThresholds
ucppDRepVotingThresholds
    , cppCommitteeMinSize :: THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f Word16
cppCommitteeMinSize = HKD f Word16
-> THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f Word16
forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD HKD f Word16
ucppCommitteeMinSize
    , cppCommitteeMaxTermLength :: THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f EpochInterval
cppCommitteeMaxTermLength = HKD f EpochInterval
-> THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f EpochInterval
forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD HKD f EpochInterval
ucppCommitteeMaxTermLength
    , cppGovActionLifetime :: THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f EpochInterval
cppGovActionLifetime = HKD f EpochInterval
-> THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f EpochInterval
forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD HKD f EpochInterval
ucppGovActionLifetime
    , cppGovActionDeposit :: THKD ('PPGroups 'GovGroup 'SecurityGroup) f Coin
cppGovActionDeposit = HKD f Coin -> THKD ('PPGroups 'GovGroup 'SecurityGroup) f Coin
forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD HKD f Coin
ucppGovActionDeposit
    , cppDRepDeposit :: THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f Coin
cppDRepDeposit = HKD f Coin -> THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f Coin
forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD HKD f Coin
ucppDRepDeposit
    , cppDRepActivity :: THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f EpochInterval
cppDRepActivity = HKD f EpochInterval
-> THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f EpochInterval
forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD HKD f EpochInterval
ucppDRepActivity
    , cppMinFeeRefScriptCostPerByte :: THKD
  ('PPGroups 'EconomicGroup 'SecurityGroup) f NonNegativeInterval
cppMinFeeRefScriptCostPerByte = HKD f NonNegativeInterval
-> THKD
     ('PPGroups 'EconomicGroup 'SecurityGroup) f NonNegativeInterval
forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD HKD f NonNegativeInterval
ucppMinFeeRefScriptCostPerByte
    }

downgradeConwayPParams ::
  forall f.
  HKDFunctor f =>
  ConwayPParams f ConwayEra ->
  PParamsHKD f BabbageEra
downgradeConwayPParams :: forall (f :: * -> *).
HKDFunctor f =>
ConwayPParams f ConwayEra -> PParamsHKD f BabbageEra
downgradeConwayPParams ConwayPParams {HKDNoUpdate f ProtVer
THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f Word16
THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f Word32
THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f OrdExUnits
THKD ('PPGroups 'NetworkGroup 'NoStakePoolGroup) f Word16
THKD ('PPGroups 'NetworkGroup 'NoStakePoolGroup) f OrdExUnits
THKD ('PPGroups 'EconomicGroup 'SecurityGroup) f CoinPerByte
THKD
  ('PPGroups 'EconomicGroup 'SecurityGroup) f NonNegativeInterval
THKD ('PPGroups 'EconomicGroup 'SecurityGroup) f Coin
THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f Prices
THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f UnitInterval
THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f Coin
THKD ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f Word16
THKD ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f CostModels
THKD ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f EpochInterval
THKD
  ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f NonNegativeInterval
THKD ('PPGroups 'GovGroup 'SecurityGroup) f Coin
THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f Word16
THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f EpochInterval
THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f Coin
THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f DRepVotingThresholds
THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f PoolVotingThresholds
cppMinFeeA :: forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'EconomicGroup 'SecurityGroup) f Coin
cppMinFeeB :: forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'EconomicGroup 'SecurityGroup) f Coin
cppMaxBBSize :: forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f Word32
cppMaxTxSize :: forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f Word32
cppMaxBHSize :: forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f Word16
cppKeyDeposit :: forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f Coin
cppPoolDeposit :: forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f Coin
cppEMax :: forall (f :: * -> *) era.
ConwayPParams f era
-> THKD
     ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f EpochInterval
cppNOpt :: forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f Word16
cppA0 :: forall (f :: * -> *) era.
ConwayPParams f era
-> THKD
     ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f NonNegativeInterval
cppRho :: forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f UnitInterval
cppTau :: forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f UnitInterval
cppProtocolVersion :: forall (f :: * -> *) era.
ConwayPParams f era -> HKDNoUpdate f ProtVer
cppMinPoolCost :: forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f Coin
cppCoinsPerUTxOByte :: forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'EconomicGroup 'SecurityGroup) f CoinPerByte
cppCostModels :: forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f CostModels
cppPrices :: forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f Prices
cppMaxTxExUnits :: forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'NetworkGroup 'NoStakePoolGroup) f OrdExUnits
cppMaxBlockExUnits :: forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f OrdExUnits
cppMaxValSize :: forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f Word32
cppCollateralPercentage :: forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f Word16
cppMaxCollateralInputs :: forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'NetworkGroup 'NoStakePoolGroup) f Word16
cppPoolVotingThresholds :: forall (f :: * -> *) era.
ConwayPParams f era
-> THKD
     ('PPGroups 'GovGroup 'NoStakePoolGroup) f PoolVotingThresholds
cppDRepVotingThresholds :: forall (f :: * -> *) era.
ConwayPParams f era
-> THKD
     ('PPGroups 'GovGroup 'NoStakePoolGroup) f DRepVotingThresholds
cppCommitteeMinSize :: forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f Word16
cppCommitteeMaxTermLength :: forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f EpochInterval
cppGovActionLifetime :: forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f EpochInterval
cppGovActionDeposit :: forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'GovGroup 'SecurityGroup) f Coin
cppDRepDeposit :: forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f Coin
cppDRepActivity :: forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f EpochInterval
cppMinFeeRefScriptCostPerByte :: forall (f :: * -> *) era.
ConwayPParams f era
-> THKD
     ('PPGroups 'EconomicGroup 'SecurityGroup) f NonNegativeInterval
cppMinFeeA :: THKD ('PPGroups 'EconomicGroup 'SecurityGroup) f Coin
cppMinFeeB :: THKD ('PPGroups 'EconomicGroup 'SecurityGroup) f Coin
cppMaxBBSize :: THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f Word32
cppMaxTxSize :: THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f Word32
cppMaxBHSize :: THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f Word16
cppKeyDeposit :: THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f Coin
cppPoolDeposit :: THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f Coin
cppEMax :: THKD ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f EpochInterval
cppNOpt :: THKD ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f Word16
cppA0 :: THKD
  ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f NonNegativeInterval
cppRho :: THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f UnitInterval
cppTau :: THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f UnitInterval
cppProtocolVersion :: HKDNoUpdate f ProtVer
cppMinPoolCost :: THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f Coin
cppCoinsPerUTxOByte :: THKD ('PPGroups 'EconomicGroup 'SecurityGroup) f CoinPerByte
cppCostModels :: THKD ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f CostModels
cppPrices :: THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f Prices
cppMaxTxExUnits :: THKD ('PPGroups 'NetworkGroup 'NoStakePoolGroup) f OrdExUnits
cppMaxBlockExUnits :: THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f OrdExUnits
cppMaxValSize :: THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f Word32
cppCollateralPercentage :: THKD ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f Word16
cppMaxCollateralInputs :: THKD ('PPGroups 'NetworkGroup 'NoStakePoolGroup) f Word16
cppPoolVotingThresholds :: THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f PoolVotingThresholds
cppDRepVotingThresholds :: THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f DRepVotingThresholds
cppCommitteeMinSize :: THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f Word16
cppCommitteeMaxTermLength :: THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f EpochInterval
cppGovActionLifetime :: THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f EpochInterval
cppGovActionDeposit :: THKD ('PPGroups 'GovGroup 'SecurityGroup) f Coin
cppDRepDeposit :: THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f Coin
cppDRepActivity :: THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f EpochInterval
cppMinFeeRefScriptCostPerByte :: THKD
  ('PPGroups 'EconomicGroup 'SecurityGroup) f NonNegativeInterval
..} =
  BabbagePParams
    { bppMinFeeA :: HKD f Coin
bppMinFeeA = THKD ('PPGroups 'EconomicGroup 'SecurityGroup) f Coin -> HKD f Coin
forall (t :: PPGroups) (f :: * -> *) a. THKD t f a -> HKD f a
unTHKD THKD ('PPGroups 'EconomicGroup 'SecurityGroup) f Coin
cppMinFeeA
    , bppMinFeeB :: HKD f Coin
bppMinFeeB = THKD ('PPGroups 'EconomicGroup 'SecurityGroup) f Coin -> HKD f Coin
forall (t :: PPGroups) (f :: * -> *) a. THKD t f a -> HKD f a
unTHKD THKD ('PPGroups 'EconomicGroup 'SecurityGroup) f Coin
cppMinFeeB
    , bppMaxBBSize :: HKD f Word32
bppMaxBBSize = THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f Word32
-> HKD f Word32
forall (t :: PPGroups) (f :: * -> *) a. THKD t f a -> HKD f a
unTHKD THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f Word32
cppMaxBBSize
    , bppMaxTxSize :: HKD f Word32
bppMaxTxSize = THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f Word32
-> HKD f Word32
forall (t :: PPGroups) (f :: * -> *) a. THKD t f a -> HKD f a
unTHKD THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f Word32
cppMaxTxSize
    , bppMaxBHSize :: HKD f Word16
bppMaxBHSize = THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f Word16
-> HKD f Word16
forall (t :: PPGroups) (f :: * -> *) a. THKD t f a -> HKD f a
unTHKD THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f Word16
cppMaxBHSize
    , bppKeyDeposit :: HKD f Coin
bppKeyDeposit = THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f Coin
-> HKD f Coin
forall (t :: PPGroups) (f :: * -> *) a. THKD t f a -> HKD f a
unTHKD THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f Coin
cppKeyDeposit
    , bppPoolDeposit :: HKD f Coin
bppPoolDeposit = THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f Coin
-> HKD f Coin
forall (t :: PPGroups) (f :: * -> *) a. THKD t f a -> HKD f a
unTHKD THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f Coin
cppPoolDeposit
    , bppEMax :: HKD f EpochInterval
bppEMax = THKD ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f EpochInterval
-> HKD f EpochInterval
forall (t :: PPGroups) (f :: * -> *) a. THKD t f a -> HKD f a
unTHKD THKD ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f EpochInterval
cppEMax
    , bppNOpt :: HKD f Word16
bppNOpt = THKD ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f Word16
-> HKD f Word16
forall (t :: PPGroups) (f :: * -> *) a. THKD t f a -> HKD f a
unTHKD THKD ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f Word16
cppNOpt
    , bppA0 :: HKD f NonNegativeInterval
bppA0 = THKD
  ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f NonNegativeInterval
-> HKD f NonNegativeInterval
forall (t :: PPGroups) (f :: * -> *) a. THKD t f a -> HKD f a
unTHKD THKD
  ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f NonNegativeInterval
cppA0
    , bppRho :: HKD f UnitInterval
bppRho = THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f UnitInterval
-> HKD f UnitInterval
forall (t :: PPGroups) (f :: * -> *) a. THKD t f a -> HKD f a
unTHKD THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f UnitInterval
cppRho
    , bppTau :: HKD f UnitInterval
bppTau = THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f UnitInterval
-> HKD f UnitInterval
forall (t :: PPGroups) (f :: * -> *) a. THKD t f a -> HKD f a
unTHKD THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f UnitInterval
cppTau
    , bppProtocolVersion :: HKD f ProtVer
bppProtocolVersion = forall (f :: * -> *) a. HKDFunctor f => HKDNoUpdate f a -> HKD f a
fromNoUpdate @f @ProtVer HKDNoUpdate f ProtVer
cppProtocolVersion
    , bppMinPoolCost :: HKD f Coin
bppMinPoolCost = THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f Coin
-> HKD f Coin
forall (t :: PPGroups) (f :: * -> *) a. THKD t f a -> HKD f a
unTHKD THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f Coin
cppMinPoolCost
    , bppCoinsPerUTxOByte :: HKD f CoinPerByte
bppCoinsPerUTxOByte = THKD ('PPGroups 'EconomicGroup 'SecurityGroup) f CoinPerByte
-> HKD f CoinPerByte
forall (t :: PPGroups) (f :: * -> *) a. THKD t f a -> HKD f a
unTHKD THKD ('PPGroups 'EconomicGroup 'SecurityGroup) f CoinPerByte
cppCoinsPerUTxOByte
    , bppCostModels :: HKD f CostModels
bppCostModels = THKD ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f CostModels
-> HKD f CostModels
forall (t :: PPGroups) (f :: * -> *) a. THKD t f a -> HKD f a
unTHKD THKD ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f CostModels
cppCostModels
    , bppPrices :: HKD f Prices
bppPrices = THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f Prices
-> HKD f Prices
forall (t :: PPGroups) (f :: * -> *) a. THKD t f a -> HKD f a
unTHKD THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f Prices
cppPrices
    , bppMaxTxExUnits :: HKD f OrdExUnits
bppMaxTxExUnits = THKD ('PPGroups 'NetworkGroup 'NoStakePoolGroup) f OrdExUnits
-> HKD f OrdExUnits
forall (t :: PPGroups) (f :: * -> *) a. THKD t f a -> HKD f a
unTHKD THKD ('PPGroups 'NetworkGroup 'NoStakePoolGroup) f OrdExUnits
cppMaxTxExUnits
    , bppMaxBlockExUnits :: HKD f OrdExUnits
bppMaxBlockExUnits = THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f OrdExUnits
-> HKD f OrdExUnits
forall (t :: PPGroups) (f :: * -> *) a. THKD t f a -> HKD f a
unTHKD THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f OrdExUnits
cppMaxBlockExUnits
    , bppMaxValSize :: HKD f Natural
bppMaxValSize = forall (f :: * -> *) i.
(HKDFunctor f, Integral i) =>
HKD f i -> HKD f Natural
asNaturalHKD @f @Word32 (THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f Word32
-> HKD f Word32
forall (t :: PPGroups) (f :: * -> *) a. THKD t f a -> HKD f a
unTHKD THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f Word32
cppMaxValSize)
    , bppCollateralPercentage :: HKD f Natural
bppCollateralPercentage = forall (f :: * -> *) i.
(HKDFunctor f, Integral i) =>
HKD f i -> HKD f Natural
asNaturalHKD @f @Word16 (THKD ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f Word16
-> HKD f Word16
forall (t :: PPGroups) (f :: * -> *) a. THKD t f a -> HKD f a
unTHKD THKD ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f Word16
cppCollateralPercentage)
    , bppMaxCollateralInputs :: HKD f Natural
bppMaxCollateralInputs = forall (f :: * -> *) i.
(HKDFunctor f, Integral i) =>
HKD f i -> HKD f Natural
asNaturalHKD @f @Word16 (THKD ('PPGroups 'NetworkGroup 'NoStakePoolGroup) f Word16
-> HKD f Word16
forall (t :: PPGroups) (f :: * -> *) a. THKD t f a -> HKD f a
unTHKD THKD ('PPGroups 'NetworkGroup 'NoStakePoolGroup) f Word16
cppMaxCollateralInputs)
    }

conwayApplyPPUpdates ::
  ConwayPParams Identity era ->
  ConwayPParams StrictMaybe era ->
  ConwayPParams Identity era
conwayApplyPPUpdates :: forall era.
ConwayPParams Identity era
-> ConwayPParams StrictMaybe era -> ConwayPParams Identity era
conwayApplyPPUpdates ConwayPParams Identity era
pp ConwayPParams StrictMaybe era
ppu =
  ConwayPParams
    { cppMinFeeA :: THKD ('PPGroups 'EconomicGroup 'SecurityGroup) Identity Coin
cppMinFeeA = THKD ('PPGroups 'EconomicGroup 'SecurityGroup) Identity Coin
-> THKD ('PPGroups 'EconomicGroup 'SecurityGroup) StrictMaybe Coin
-> THKD ('PPGroups 'EconomicGroup 'SecurityGroup) Identity Coin
forall (f :: PPGroups) a.
THKD f Identity a -> THKD f StrictMaybe a -> THKD f Identity a
ppUpdate (ConwayPParams Identity era
-> THKD ('PPGroups 'EconomicGroup 'SecurityGroup) Identity Coin
forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'EconomicGroup 'SecurityGroup) f Coin
cppMinFeeA ConwayPParams Identity era
pp) (ConwayPParams StrictMaybe era
-> THKD ('PPGroups 'EconomicGroup 'SecurityGroup) StrictMaybe Coin
forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'EconomicGroup 'SecurityGroup) f Coin
cppMinFeeA ConwayPParams StrictMaybe era
ppu)
    , cppMinFeeB :: THKD ('PPGroups 'EconomicGroup 'SecurityGroup) Identity Coin
cppMinFeeB = THKD ('PPGroups 'EconomicGroup 'SecurityGroup) Identity Coin
-> THKD ('PPGroups 'EconomicGroup 'SecurityGroup) StrictMaybe Coin
-> THKD ('PPGroups 'EconomicGroup 'SecurityGroup) Identity Coin
forall (f :: PPGroups) a.
THKD f Identity a -> THKD f StrictMaybe a -> THKD f Identity a
ppUpdate (ConwayPParams Identity era
-> THKD ('PPGroups 'EconomicGroup 'SecurityGroup) Identity Coin
forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'EconomicGroup 'SecurityGroup) f Coin
cppMinFeeB ConwayPParams Identity era
pp) (ConwayPParams StrictMaybe era
-> THKD ('PPGroups 'EconomicGroup 'SecurityGroup) StrictMaybe Coin
forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'EconomicGroup 'SecurityGroup) f Coin
cppMinFeeB ConwayPParams StrictMaybe era
ppu)
    , cppMaxBBSize :: THKD ('PPGroups 'NetworkGroup 'SecurityGroup) Identity Word32
cppMaxBBSize = THKD ('PPGroups 'NetworkGroup 'SecurityGroup) Identity Word32
-> THKD ('PPGroups 'NetworkGroup 'SecurityGroup) StrictMaybe Word32
-> THKD ('PPGroups 'NetworkGroup 'SecurityGroup) Identity Word32
forall (f :: PPGroups) a.
THKD f Identity a -> THKD f StrictMaybe a -> THKD f Identity a
ppUpdate (ConwayPParams Identity era
-> THKD ('PPGroups 'NetworkGroup 'SecurityGroup) Identity Word32
forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f Word32
cppMaxBBSize ConwayPParams Identity era
pp) (ConwayPParams StrictMaybe era
-> THKD ('PPGroups 'NetworkGroup 'SecurityGroup) StrictMaybe Word32
forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f Word32
cppMaxBBSize ConwayPParams StrictMaybe era
ppu)
    , cppMaxTxSize :: THKD ('PPGroups 'NetworkGroup 'SecurityGroup) Identity Word32
cppMaxTxSize = THKD ('PPGroups 'NetworkGroup 'SecurityGroup) Identity Word32
-> THKD ('PPGroups 'NetworkGroup 'SecurityGroup) StrictMaybe Word32
-> THKD ('PPGroups 'NetworkGroup 'SecurityGroup) Identity Word32
forall (f :: PPGroups) a.
THKD f Identity a -> THKD f StrictMaybe a -> THKD f Identity a
ppUpdate (ConwayPParams Identity era
-> THKD ('PPGroups 'NetworkGroup 'SecurityGroup) Identity Word32
forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f Word32
cppMaxTxSize ConwayPParams Identity era
pp) (ConwayPParams StrictMaybe era
-> THKD ('PPGroups 'NetworkGroup 'SecurityGroup) StrictMaybe Word32
forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f Word32
cppMaxTxSize ConwayPParams StrictMaybe era
ppu)
    , cppMaxBHSize :: THKD ('PPGroups 'NetworkGroup 'SecurityGroup) Identity Word16
cppMaxBHSize = THKD ('PPGroups 'NetworkGroup 'SecurityGroup) Identity Word16
-> THKD ('PPGroups 'NetworkGroup 'SecurityGroup) StrictMaybe Word16
-> THKD ('PPGroups 'NetworkGroup 'SecurityGroup) Identity Word16
forall (f :: PPGroups) a.
THKD f Identity a -> THKD f StrictMaybe a -> THKD f Identity a
ppUpdate (ConwayPParams Identity era
-> THKD ('PPGroups 'NetworkGroup 'SecurityGroup) Identity Word16
forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f Word16
cppMaxBHSize ConwayPParams Identity era
pp) (ConwayPParams StrictMaybe era
-> THKD ('PPGroups 'NetworkGroup 'SecurityGroup) StrictMaybe Word16
forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f Word16
cppMaxBHSize ConwayPParams StrictMaybe era
ppu)
    , cppKeyDeposit :: THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) Identity Coin
cppKeyDeposit = THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) Identity Coin
-> THKD
     ('PPGroups 'EconomicGroup 'NoStakePoolGroup) StrictMaybe Coin
-> THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) Identity Coin
forall (f :: PPGroups) a.
THKD f Identity a -> THKD f StrictMaybe a -> THKD f Identity a
ppUpdate (ConwayPParams Identity era
-> THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) Identity Coin
forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f Coin
cppKeyDeposit ConwayPParams Identity era
pp) (ConwayPParams StrictMaybe era
-> THKD
     ('PPGroups 'EconomicGroup 'NoStakePoolGroup) StrictMaybe Coin
forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f Coin
cppKeyDeposit ConwayPParams StrictMaybe era
ppu)
    , cppPoolDeposit :: THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) Identity Coin
cppPoolDeposit = THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) Identity Coin
-> THKD
     ('PPGroups 'EconomicGroup 'NoStakePoolGroup) StrictMaybe Coin
-> THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) Identity Coin
forall (f :: PPGroups) a.
THKD f Identity a -> THKD f StrictMaybe a -> THKD f Identity a
ppUpdate (ConwayPParams Identity era
-> THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) Identity Coin
forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f Coin
cppPoolDeposit ConwayPParams Identity era
pp) (ConwayPParams StrictMaybe era
-> THKD
     ('PPGroups 'EconomicGroup 'NoStakePoolGroup) StrictMaybe Coin
forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f Coin
cppPoolDeposit ConwayPParams StrictMaybe era
ppu)
    , cppEMax :: THKD
  ('PPGroups 'TechnicalGroup 'NoStakePoolGroup)
  Identity
  EpochInterval
cppEMax = THKD
  ('PPGroups 'TechnicalGroup 'NoStakePoolGroup)
  Identity
  EpochInterval
-> THKD
     ('PPGroups 'TechnicalGroup 'NoStakePoolGroup)
     StrictMaybe
     EpochInterval
-> THKD
     ('PPGroups 'TechnicalGroup 'NoStakePoolGroup)
     Identity
     EpochInterval
forall (f :: PPGroups) a.
THKD f Identity a -> THKD f StrictMaybe a -> THKD f Identity a
ppUpdate (ConwayPParams Identity era
-> THKD
     ('PPGroups 'TechnicalGroup 'NoStakePoolGroup)
     Identity
     EpochInterval
forall (f :: * -> *) era.
ConwayPParams f era
-> THKD
     ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f EpochInterval
cppEMax ConwayPParams Identity era
pp) (ConwayPParams StrictMaybe era
-> THKD
     ('PPGroups 'TechnicalGroup 'NoStakePoolGroup)
     StrictMaybe
     EpochInterval
forall (f :: * -> *) era.
ConwayPParams f era
-> THKD
     ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f EpochInterval
cppEMax ConwayPParams StrictMaybe era
ppu)
    , cppNOpt :: THKD ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) Identity Word16
cppNOpt = THKD ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) Identity Word16
-> THKD
     ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) StrictMaybe Word16
-> THKD
     ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) Identity Word16
forall (f :: PPGroups) a.
THKD f Identity a -> THKD f StrictMaybe a -> THKD f Identity a
ppUpdate (ConwayPParams Identity era
-> THKD
     ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) Identity Word16
forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f Word16
cppNOpt ConwayPParams Identity era
pp) (ConwayPParams StrictMaybe era
-> THKD
     ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) StrictMaybe Word16
forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f Word16
cppNOpt ConwayPParams StrictMaybe era
ppu)
    , cppA0 :: THKD
  ('PPGroups 'TechnicalGroup 'NoStakePoolGroup)
  Identity
  NonNegativeInterval
cppA0 = THKD
  ('PPGroups 'TechnicalGroup 'NoStakePoolGroup)
  Identity
  NonNegativeInterval
-> THKD
     ('PPGroups 'TechnicalGroup 'NoStakePoolGroup)
     StrictMaybe
     NonNegativeInterval
-> THKD
     ('PPGroups 'TechnicalGroup 'NoStakePoolGroup)
     Identity
     NonNegativeInterval
forall (f :: PPGroups) a.
THKD f Identity a -> THKD f StrictMaybe a -> THKD f Identity a
ppUpdate (ConwayPParams Identity era
-> THKD
     ('PPGroups 'TechnicalGroup 'NoStakePoolGroup)
     Identity
     NonNegativeInterval
forall (f :: * -> *) era.
ConwayPParams f era
-> THKD
     ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f NonNegativeInterval
cppA0 ConwayPParams Identity era
pp) (ConwayPParams StrictMaybe era
-> THKD
     ('PPGroups 'TechnicalGroup 'NoStakePoolGroup)
     StrictMaybe
     NonNegativeInterval
forall (f :: * -> *) era.
ConwayPParams f era
-> THKD
     ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f NonNegativeInterval
cppA0 ConwayPParams StrictMaybe era
ppu)
    , cppRho :: THKD
  ('PPGroups 'EconomicGroup 'NoStakePoolGroup) Identity UnitInterval
cppRho = THKD
  ('PPGroups 'EconomicGroup 'NoStakePoolGroup) Identity UnitInterval
-> THKD
     ('PPGroups 'EconomicGroup 'NoStakePoolGroup)
     StrictMaybe
     UnitInterval
-> THKD
     ('PPGroups 'EconomicGroup 'NoStakePoolGroup) Identity UnitInterval
forall (f :: PPGroups) a.
THKD f Identity a -> THKD f StrictMaybe a -> THKD f Identity a
ppUpdate (ConwayPParams Identity era
-> THKD
     ('PPGroups 'EconomicGroup 'NoStakePoolGroup) Identity UnitInterval
forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f UnitInterval
cppRho ConwayPParams Identity era
pp) (ConwayPParams StrictMaybe era
-> THKD
     ('PPGroups 'EconomicGroup 'NoStakePoolGroup)
     StrictMaybe
     UnitInterval
forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f UnitInterval
cppRho ConwayPParams StrictMaybe era
ppu)
    , cppTau :: THKD
  ('PPGroups 'EconomicGroup 'NoStakePoolGroup) Identity UnitInterval
cppTau = THKD
  ('PPGroups 'EconomicGroup 'NoStakePoolGroup) Identity UnitInterval
-> THKD
     ('PPGroups 'EconomicGroup 'NoStakePoolGroup)
     StrictMaybe
     UnitInterval
-> THKD
     ('PPGroups 'EconomicGroup 'NoStakePoolGroup) Identity UnitInterval
forall (f :: PPGroups) a.
THKD f Identity a -> THKD f StrictMaybe a -> THKD f Identity a
ppUpdate (ConwayPParams Identity era
-> THKD
     ('PPGroups 'EconomicGroup 'NoStakePoolGroup) Identity UnitInterval
forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f UnitInterval
cppTau ConwayPParams Identity era
pp) (ConwayPParams StrictMaybe era
-> THKD
     ('PPGroups 'EconomicGroup 'NoStakePoolGroup)
     StrictMaybe
     UnitInterval
forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f UnitInterval
cppTau ConwayPParams StrictMaybe era
ppu)
    , cppProtocolVersion :: HKDNoUpdate Identity ProtVer
cppProtocolVersion = ConwayPParams Identity era -> HKDNoUpdate Identity ProtVer
forall (f :: * -> *) era.
ConwayPParams f era -> HKDNoUpdate f ProtVer
cppProtocolVersion ConwayPParams Identity era
pp
    , cppMinPoolCost :: THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) Identity Coin
cppMinPoolCost = THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) Identity Coin
-> THKD
     ('PPGroups 'EconomicGroup 'NoStakePoolGroup) StrictMaybe Coin
-> THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) Identity Coin
forall (f :: PPGroups) a.
THKD f Identity a -> THKD f StrictMaybe a -> THKD f Identity a
ppUpdate (ConwayPParams Identity era
-> THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) Identity Coin
forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f Coin
cppMinPoolCost ConwayPParams Identity era
pp) (ConwayPParams StrictMaybe era
-> THKD
     ('PPGroups 'EconomicGroup 'NoStakePoolGroup) StrictMaybe Coin
forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f Coin
cppMinPoolCost ConwayPParams StrictMaybe era
ppu)
    , cppCoinsPerUTxOByte :: THKD ('PPGroups 'EconomicGroup 'SecurityGroup) Identity CoinPerByte
cppCoinsPerUTxOByte = THKD ('PPGroups 'EconomicGroup 'SecurityGroup) Identity CoinPerByte
-> THKD
     ('PPGroups 'EconomicGroup 'SecurityGroup) StrictMaybe CoinPerByte
-> THKD
     ('PPGroups 'EconomicGroup 'SecurityGroup) Identity CoinPerByte
forall (f :: PPGroups) a.
THKD f Identity a -> THKD f StrictMaybe a -> THKD f Identity a
ppUpdate (ConwayPParams Identity era
-> THKD
     ('PPGroups 'EconomicGroup 'SecurityGroup) Identity CoinPerByte
forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'EconomicGroup 'SecurityGroup) f CoinPerByte
cppCoinsPerUTxOByte ConwayPParams Identity era
pp) (ConwayPParams StrictMaybe era
-> THKD
     ('PPGroups 'EconomicGroup 'SecurityGroup) StrictMaybe CoinPerByte
forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'EconomicGroup 'SecurityGroup) f CoinPerByte
cppCoinsPerUTxOByte ConwayPParams StrictMaybe era
ppu)
    , cppCostModels :: THKD
  ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) Identity CostModels
cppCostModels = THKD
  ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) Identity CostModels
-> THKD
     ('PPGroups 'TechnicalGroup 'NoStakePoolGroup)
     StrictMaybe
     CostModels
-> THKD
     ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) Identity CostModels
forall (f :: PPGroups).
THKD f Identity CostModels
-> THKD f StrictMaybe CostModels -> THKD f Identity CostModels
ppUpdateCostModels (ConwayPParams Identity era
-> THKD
     ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) Identity CostModels
forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f CostModels
cppCostModels ConwayPParams Identity era
pp) (ConwayPParams StrictMaybe era
-> THKD
     ('PPGroups 'TechnicalGroup 'NoStakePoolGroup)
     StrictMaybe
     CostModels
forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f CostModels
cppCostModels ConwayPParams StrictMaybe era
ppu)
    , cppPrices :: THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) Identity Prices
cppPrices = THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) Identity Prices
-> THKD
     ('PPGroups 'EconomicGroup 'NoStakePoolGroup) StrictMaybe Prices
-> THKD
     ('PPGroups 'EconomicGroup 'NoStakePoolGroup) Identity Prices
forall (f :: PPGroups) a.
THKD f Identity a -> THKD f StrictMaybe a -> THKD f Identity a
ppUpdate (ConwayPParams Identity era
-> THKD
     ('PPGroups 'EconomicGroup 'NoStakePoolGroup) Identity Prices
forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f Prices
cppPrices ConwayPParams Identity era
pp) (ConwayPParams StrictMaybe era
-> THKD
     ('PPGroups 'EconomicGroup 'NoStakePoolGroup) StrictMaybe Prices
forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f Prices
cppPrices ConwayPParams StrictMaybe era
ppu)
    , cppMaxTxExUnits :: THKD
  ('PPGroups 'NetworkGroup 'NoStakePoolGroup) Identity OrdExUnits
cppMaxTxExUnits = THKD
  ('PPGroups 'NetworkGroup 'NoStakePoolGroup) Identity OrdExUnits
-> THKD
     ('PPGroups 'NetworkGroup 'NoStakePoolGroup) StrictMaybe OrdExUnits
-> THKD
     ('PPGroups 'NetworkGroup 'NoStakePoolGroup) Identity OrdExUnits
forall (f :: PPGroups) a.
THKD f Identity a -> THKD f StrictMaybe a -> THKD f Identity a
ppUpdate (ConwayPParams Identity era
-> THKD
     ('PPGroups 'NetworkGroup 'NoStakePoolGroup) Identity OrdExUnits
forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'NetworkGroup 'NoStakePoolGroup) f OrdExUnits
cppMaxTxExUnits ConwayPParams Identity era
pp) (ConwayPParams StrictMaybe era
-> THKD
     ('PPGroups 'NetworkGroup 'NoStakePoolGroup) StrictMaybe OrdExUnits
forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'NetworkGroup 'NoStakePoolGroup) f OrdExUnits
cppMaxTxExUnits ConwayPParams StrictMaybe era
ppu)
    , cppMaxBlockExUnits :: THKD ('PPGroups 'NetworkGroup 'SecurityGroup) Identity OrdExUnits
cppMaxBlockExUnits = THKD ('PPGroups 'NetworkGroup 'SecurityGroup) Identity OrdExUnits
-> THKD
     ('PPGroups 'NetworkGroup 'SecurityGroup) StrictMaybe OrdExUnits
-> THKD
     ('PPGroups 'NetworkGroup 'SecurityGroup) Identity OrdExUnits
forall (f :: PPGroups) a.
THKD f Identity a -> THKD f StrictMaybe a -> THKD f Identity a
ppUpdate (ConwayPParams Identity era
-> THKD
     ('PPGroups 'NetworkGroup 'SecurityGroup) Identity OrdExUnits
forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f OrdExUnits
cppMaxBlockExUnits ConwayPParams Identity era
pp) (ConwayPParams StrictMaybe era
-> THKD
     ('PPGroups 'NetworkGroup 'SecurityGroup) StrictMaybe OrdExUnits
forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f OrdExUnits
cppMaxBlockExUnits ConwayPParams StrictMaybe era
ppu)
    , cppMaxValSize :: THKD ('PPGroups 'NetworkGroup 'SecurityGroup) Identity Word32
cppMaxValSize = THKD ('PPGroups 'NetworkGroup 'SecurityGroup) Identity Word32
-> THKD ('PPGroups 'NetworkGroup 'SecurityGroup) StrictMaybe Word32
-> THKD ('PPGroups 'NetworkGroup 'SecurityGroup) Identity Word32
forall (f :: PPGroups) a.
THKD f Identity a -> THKD f StrictMaybe a -> THKD f Identity a
ppUpdate (ConwayPParams Identity era
-> THKD ('PPGroups 'NetworkGroup 'SecurityGroup) Identity Word32
forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f Word32
cppMaxValSize ConwayPParams Identity era
pp) (ConwayPParams StrictMaybe era
-> THKD ('PPGroups 'NetworkGroup 'SecurityGroup) StrictMaybe Word32
forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f Word32
cppMaxValSize ConwayPParams StrictMaybe era
ppu)
    , cppCollateralPercentage :: THKD ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) Identity Word16
cppCollateralPercentage = THKD ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) Identity Word16
-> THKD
     ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) StrictMaybe Word16
-> THKD
     ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) Identity Word16
forall (f :: PPGroups) a.
THKD f Identity a -> THKD f StrictMaybe a -> THKD f Identity a
ppUpdate (ConwayPParams Identity era
-> THKD
     ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) Identity Word16
forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f Word16
cppCollateralPercentage ConwayPParams Identity era
pp) (ConwayPParams StrictMaybe era
-> THKD
     ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) StrictMaybe Word16
forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f Word16
cppCollateralPercentage ConwayPParams StrictMaybe era
ppu)
    , cppMaxCollateralInputs :: THKD ('PPGroups 'NetworkGroup 'NoStakePoolGroup) Identity Word16
cppMaxCollateralInputs = THKD ('PPGroups 'NetworkGroup 'NoStakePoolGroup) Identity Word16
-> THKD
     ('PPGroups 'NetworkGroup 'NoStakePoolGroup) StrictMaybe Word16
-> THKD ('PPGroups 'NetworkGroup 'NoStakePoolGroup) Identity Word16
forall (f :: PPGroups) a.
THKD f Identity a -> THKD f StrictMaybe a -> THKD f Identity a
ppUpdate (ConwayPParams Identity era
-> THKD ('PPGroups 'NetworkGroup 'NoStakePoolGroup) Identity Word16
forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'NetworkGroup 'NoStakePoolGroup) f Word16
cppMaxCollateralInputs ConwayPParams Identity era
pp) (ConwayPParams StrictMaybe era
-> THKD
     ('PPGroups 'NetworkGroup 'NoStakePoolGroup) StrictMaybe Word16
forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'NetworkGroup 'NoStakePoolGroup) f Word16
cppMaxCollateralInputs ConwayPParams StrictMaybe era
ppu)
    , cppPoolVotingThresholds :: THKD
  ('PPGroups 'GovGroup 'NoStakePoolGroup)
  Identity
  PoolVotingThresholds
cppPoolVotingThresholds = THKD
  ('PPGroups 'GovGroup 'NoStakePoolGroup)
  Identity
  PoolVotingThresholds
-> THKD
     ('PPGroups 'GovGroup 'NoStakePoolGroup)
     StrictMaybe
     PoolVotingThresholds
-> THKD
     ('PPGroups 'GovGroup 'NoStakePoolGroup)
     Identity
     PoolVotingThresholds
forall (f :: PPGroups) a.
THKD f Identity a -> THKD f StrictMaybe a -> THKD f Identity a
ppUpdate (ConwayPParams Identity era
-> THKD
     ('PPGroups 'GovGroup 'NoStakePoolGroup)
     Identity
     PoolVotingThresholds
forall (f :: * -> *) era.
ConwayPParams f era
-> THKD
     ('PPGroups 'GovGroup 'NoStakePoolGroup) f PoolVotingThresholds
cppPoolVotingThresholds ConwayPParams Identity era
pp) (ConwayPParams StrictMaybe era
-> THKD
     ('PPGroups 'GovGroup 'NoStakePoolGroup)
     StrictMaybe
     PoolVotingThresholds
forall (f :: * -> *) era.
ConwayPParams f era
-> THKD
     ('PPGroups 'GovGroup 'NoStakePoolGroup) f PoolVotingThresholds
cppPoolVotingThresholds ConwayPParams StrictMaybe era
ppu)
    , cppDRepVotingThresholds :: THKD
  ('PPGroups 'GovGroup 'NoStakePoolGroup)
  Identity
  DRepVotingThresholds
cppDRepVotingThresholds = THKD
  ('PPGroups 'GovGroup 'NoStakePoolGroup)
  Identity
  DRepVotingThresholds
-> THKD
     ('PPGroups 'GovGroup 'NoStakePoolGroup)
     StrictMaybe
     DRepVotingThresholds
-> THKD
     ('PPGroups 'GovGroup 'NoStakePoolGroup)
     Identity
     DRepVotingThresholds
forall (f :: PPGroups) a.
THKD f Identity a -> THKD f StrictMaybe a -> THKD f Identity a
ppUpdate (ConwayPParams Identity era
-> THKD
     ('PPGroups 'GovGroup 'NoStakePoolGroup)
     Identity
     DRepVotingThresholds
forall (f :: * -> *) era.
ConwayPParams f era
-> THKD
     ('PPGroups 'GovGroup 'NoStakePoolGroup) f DRepVotingThresholds
cppDRepVotingThresholds ConwayPParams Identity era
pp) (ConwayPParams StrictMaybe era
-> THKD
     ('PPGroups 'GovGroup 'NoStakePoolGroup)
     StrictMaybe
     DRepVotingThresholds
forall (f :: * -> *) era.
ConwayPParams f era
-> THKD
     ('PPGroups 'GovGroup 'NoStakePoolGroup) f DRepVotingThresholds
cppDRepVotingThresholds ConwayPParams StrictMaybe era
ppu)
    , cppCommitteeMinSize :: THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) Identity Word16
cppCommitteeMinSize = THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) Identity Word16
-> THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) StrictMaybe Word16
-> THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) Identity Word16
forall (f :: PPGroups) a.
THKD f Identity a -> THKD f StrictMaybe a -> THKD f Identity a
ppUpdate (ConwayPParams Identity era
-> THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) Identity Word16
forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f Word16
cppCommitteeMinSize ConwayPParams Identity era
pp) (ConwayPParams StrictMaybe era
-> THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) StrictMaybe Word16
forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f Word16
cppCommitteeMinSize ConwayPParams StrictMaybe era
ppu)
    , cppCommitteeMaxTermLength :: THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) Identity EpochInterval
cppCommitteeMaxTermLength =
        THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) Identity EpochInterval
-> THKD
     ('PPGroups 'GovGroup 'NoStakePoolGroup) StrictMaybe EpochInterval
-> THKD
     ('PPGroups 'GovGroup 'NoStakePoolGroup) Identity EpochInterval
forall (f :: PPGroups) a.
THKD f Identity a -> THKD f StrictMaybe a -> THKD f Identity a
ppUpdate (ConwayPParams Identity era
-> THKD
     ('PPGroups 'GovGroup 'NoStakePoolGroup) Identity EpochInterval
forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f EpochInterval
cppCommitteeMaxTermLength ConwayPParams Identity era
pp) (ConwayPParams StrictMaybe era
-> THKD
     ('PPGroups 'GovGroup 'NoStakePoolGroup) StrictMaybe EpochInterval
forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f EpochInterval
cppCommitteeMaxTermLength ConwayPParams StrictMaybe era
ppu)
    , cppGovActionLifetime :: THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) Identity EpochInterval
cppGovActionLifetime = THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) Identity EpochInterval
-> THKD
     ('PPGroups 'GovGroup 'NoStakePoolGroup) StrictMaybe EpochInterval
-> THKD
     ('PPGroups 'GovGroup 'NoStakePoolGroup) Identity EpochInterval
forall (f :: PPGroups) a.
THKD f Identity a -> THKD f StrictMaybe a -> THKD f Identity a
ppUpdate (ConwayPParams Identity era
-> THKD
     ('PPGroups 'GovGroup 'NoStakePoolGroup) Identity EpochInterval
forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f EpochInterval
cppGovActionLifetime ConwayPParams Identity era
pp) (ConwayPParams StrictMaybe era
-> THKD
     ('PPGroups 'GovGroup 'NoStakePoolGroup) StrictMaybe EpochInterval
forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f EpochInterval
cppGovActionLifetime ConwayPParams StrictMaybe era
ppu)
    , cppGovActionDeposit :: THKD ('PPGroups 'GovGroup 'SecurityGroup) Identity Coin
cppGovActionDeposit = THKD ('PPGroups 'GovGroup 'SecurityGroup) Identity Coin
-> THKD ('PPGroups 'GovGroup 'SecurityGroup) StrictMaybe Coin
-> THKD ('PPGroups 'GovGroup 'SecurityGroup) Identity Coin
forall (f :: PPGroups) a.
THKD f Identity a -> THKD f StrictMaybe a -> THKD f Identity a
ppUpdate (ConwayPParams Identity era
-> THKD ('PPGroups 'GovGroup 'SecurityGroup) Identity Coin
forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'GovGroup 'SecurityGroup) f Coin
cppGovActionDeposit ConwayPParams Identity era
pp) (ConwayPParams StrictMaybe era
-> THKD ('PPGroups 'GovGroup 'SecurityGroup) StrictMaybe Coin
forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'GovGroup 'SecurityGroup) f Coin
cppGovActionDeposit ConwayPParams StrictMaybe era
ppu)
    , cppDRepDeposit :: THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) Identity Coin
cppDRepDeposit = THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) Identity Coin
-> THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) StrictMaybe Coin
-> THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) Identity Coin
forall (f :: PPGroups) a.
THKD f Identity a -> THKD f StrictMaybe a -> THKD f Identity a
ppUpdate (ConwayPParams Identity era
-> THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) Identity Coin
forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f Coin
cppDRepDeposit ConwayPParams Identity era
pp) (ConwayPParams StrictMaybe era
-> THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) StrictMaybe Coin
forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f Coin
cppDRepDeposit ConwayPParams StrictMaybe era
ppu)
    , cppDRepActivity :: THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) Identity EpochInterval
cppDRepActivity = THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) Identity EpochInterval
-> THKD
     ('PPGroups 'GovGroup 'NoStakePoolGroup) StrictMaybe EpochInterval
-> THKD
     ('PPGroups 'GovGroup 'NoStakePoolGroup) Identity EpochInterval
forall (f :: PPGroups) a.
THKD f Identity a -> THKD f StrictMaybe a -> THKD f Identity a
ppUpdate (ConwayPParams Identity era
-> THKD
     ('PPGroups 'GovGroup 'NoStakePoolGroup) Identity EpochInterval
forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f EpochInterval
cppDRepActivity ConwayPParams Identity era
pp) (ConwayPParams StrictMaybe era
-> THKD
     ('PPGroups 'GovGroup 'NoStakePoolGroup) StrictMaybe EpochInterval
forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f EpochInterval
cppDRepActivity ConwayPParams StrictMaybe era
ppu)
    , cppMinFeeRefScriptCostPerByte :: THKD
  ('PPGroups 'EconomicGroup 'SecurityGroup)
  Identity
  NonNegativeInterval
cppMinFeeRefScriptCostPerByte =
        THKD
  ('PPGroups 'EconomicGroup 'SecurityGroup)
  Identity
  NonNegativeInterval
-> THKD
     ('PPGroups 'EconomicGroup 'SecurityGroup)
     StrictMaybe
     NonNegativeInterval
-> THKD
     ('PPGroups 'EconomicGroup 'SecurityGroup)
     Identity
     NonNegativeInterval
forall (f :: PPGroups) a.
THKD f Identity a -> THKD f StrictMaybe a -> THKD f Identity a
ppUpdate (ConwayPParams Identity era
-> THKD
     ('PPGroups 'EconomicGroup 'SecurityGroup)
     Identity
     NonNegativeInterval
forall (f :: * -> *) era.
ConwayPParams f era
-> THKD
     ('PPGroups 'EconomicGroup 'SecurityGroup) f NonNegativeInterval
cppMinFeeRefScriptCostPerByte ConwayPParams Identity era
pp) (ConwayPParams StrictMaybe era
-> THKD
     ('PPGroups 'EconomicGroup 'SecurityGroup)
     StrictMaybe
     NonNegativeInterval
forall (f :: * -> *) era.
ConwayPParams f era
-> THKD
     ('PPGroups 'EconomicGroup 'SecurityGroup) f NonNegativeInterval
cppMinFeeRefScriptCostPerByte ConwayPParams StrictMaybe era
ppu)
    }
  where
    ppUpdate ::
      THKD f Identity a ->
      THKD f StrictMaybe a ->
      THKD f Identity a
    ppUpdate :: forall (f :: PPGroups) a.
THKD f Identity a -> THKD f StrictMaybe a -> THKD f Identity a
ppUpdate (THKD HKD Identity a
ppCurValue) (THKD HKD StrictMaybe a
ppuValue) =
      case HKD StrictMaybe a
ppuValue of
        StrictMaybe a
HKD StrictMaybe a
SNothing -> HKD Identity a -> THKD f Identity a
forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD HKD Identity a
ppCurValue
        SJust a
ppNewValue -> HKD Identity a -> THKD f Identity a
forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD a
HKD Identity a
ppNewValue

    ppUpdateCostModels ::
      THKD f Identity CostModels ->
      THKD f StrictMaybe CostModels ->
      THKD f Identity CostModels
    ppUpdateCostModels :: forall (f :: PPGroups).
THKD f Identity CostModels
-> THKD f StrictMaybe CostModels -> THKD f Identity CostModels
ppUpdateCostModels (THKD HKD Identity CostModels
curCostModel) (THKD HKD StrictMaybe CostModels
ppuCostModel) =
      case HKD StrictMaybe CostModels
ppuCostModel of
        StrictMaybe CostModels
HKD StrictMaybe CostModels
SNothing -> HKD Identity CostModels -> THKD f Identity CostModels
forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD HKD Identity CostModels
curCostModel
        SJust CostModels
costModelUpdate -> HKD Identity CostModels -> THKD f Identity CostModels
forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD (HKD Identity CostModels -> THKD f Identity CostModels)
-> HKD Identity CostModels -> THKD f Identity CostModels
forall a b. (a -> b) -> a -> b
$ CostModels -> CostModels -> CostModels
updateCostModels CostModels
HKD Identity CostModels
curCostModel CostModels
costModelUpdate

conwayModifiedPPGroups :: ConwayPParams StrictMaybe era -> Set PPGroups
conwayModifiedPPGroups :: forall era. ConwayPParams StrictMaybe era -> Set PPGroups
conwayModifiedPPGroups
  ( ConwayPParams
      THKD ('PPGroups 'EconomicGroup 'SecurityGroup) StrictMaybe Coin
p01
      THKD ('PPGroups 'EconomicGroup 'SecurityGroup) StrictMaybe Coin
p02
      THKD ('PPGroups 'NetworkGroup 'SecurityGroup) StrictMaybe Word32
p03
      THKD ('PPGroups 'NetworkGroup 'SecurityGroup) StrictMaybe Word32
p04
      THKD ('PPGroups 'NetworkGroup 'SecurityGroup) StrictMaybe Word16
p05
      THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) StrictMaybe Coin
p06
      THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) StrictMaybe Coin
p07
      THKD
  ('PPGroups 'TechnicalGroup 'NoStakePoolGroup)
  StrictMaybe
  EpochInterval
p08
      THKD
  ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) StrictMaybe Word16
p09
      THKD
  ('PPGroups 'TechnicalGroup 'NoStakePoolGroup)
  StrictMaybe
  NonNegativeInterval
p10
      THKD
  ('PPGroups 'EconomicGroup 'NoStakePoolGroup)
  StrictMaybe
  UnitInterval
p11
      THKD
  ('PPGroups 'EconomicGroup 'NoStakePoolGroup)
  StrictMaybe
  UnitInterval
p12
      HKDNoUpdate StrictMaybe ProtVer
_protocolVersion
      THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) StrictMaybe Coin
p14
      THKD
  ('PPGroups 'EconomicGroup 'SecurityGroup) StrictMaybe CoinPerByte
p15
      THKD
  ('PPGroups 'TechnicalGroup 'NoStakePoolGroup)
  StrictMaybe
  CostModels
p16
      THKD
  ('PPGroups 'EconomicGroup 'NoStakePoolGroup) StrictMaybe Prices
p17
      THKD
  ('PPGroups 'NetworkGroup 'NoStakePoolGroup) StrictMaybe OrdExUnits
p18
      THKD
  ('PPGroups 'NetworkGroup 'SecurityGroup) StrictMaybe OrdExUnits
p19
      THKD ('PPGroups 'NetworkGroup 'SecurityGroup) StrictMaybe Word32
p20
      THKD
  ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) StrictMaybe Word16
p21
      THKD ('PPGroups 'NetworkGroup 'NoStakePoolGroup) StrictMaybe Word16
p22
      THKD
  ('PPGroups 'GovGroup 'NoStakePoolGroup)
  StrictMaybe
  PoolVotingThresholds
p23
      THKD
  ('PPGroups 'GovGroup 'NoStakePoolGroup)
  StrictMaybe
  DRepVotingThresholds
p24
      THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) StrictMaybe Word16
p25
      THKD
  ('PPGroups 'GovGroup 'NoStakePoolGroup) StrictMaybe EpochInterval
p26
      THKD
  ('PPGroups 'GovGroup 'NoStakePoolGroup) StrictMaybe EpochInterval
p27
      THKD ('PPGroups 'GovGroup 'SecurityGroup) StrictMaybe Coin
p28
      THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) StrictMaybe Coin
p29
      THKD
  ('PPGroups 'GovGroup 'NoStakePoolGroup) StrictMaybe EpochInterval
p30
      THKD
  ('PPGroups 'EconomicGroup 'SecurityGroup)
  StrictMaybe
  NonNegativeInterval
p31
    ) =
    [Set PPGroups] -> Set PPGroups
forall a. Monoid a => [a] -> a
mconcat
      [ THKD ('PPGroups 'EconomicGroup 'SecurityGroup) StrictMaybe Coin
-> Set PPGroups
forall (t :: DRepGroup) (s :: StakePoolGroup) a.
(ToDRepGroup t, ToStakePoolGroup s) =>
THKD ('PPGroups t s) StrictMaybe a -> Set PPGroups
ppGroup THKD ('PPGroups 'EconomicGroup 'SecurityGroup) StrictMaybe Coin
p01
      , THKD ('PPGroups 'EconomicGroup 'SecurityGroup) StrictMaybe Coin
-> Set PPGroups
forall (t :: DRepGroup) (s :: StakePoolGroup) a.
(ToDRepGroup t, ToStakePoolGroup s) =>
THKD ('PPGroups t s) StrictMaybe a -> Set PPGroups
ppGroup THKD ('PPGroups 'EconomicGroup 'SecurityGroup) StrictMaybe Coin
p02
      , THKD ('PPGroups 'NetworkGroup 'SecurityGroup) StrictMaybe Word32
-> Set PPGroups
forall (t :: DRepGroup) (s :: StakePoolGroup) a.
(ToDRepGroup t, ToStakePoolGroup s) =>
THKD ('PPGroups t s) StrictMaybe a -> Set PPGroups
ppGroup THKD ('PPGroups 'NetworkGroup 'SecurityGroup) StrictMaybe Word32
p03
      , THKD ('PPGroups 'NetworkGroup 'SecurityGroup) StrictMaybe Word32
-> Set PPGroups
forall (t :: DRepGroup) (s :: StakePoolGroup) a.
(ToDRepGroup t, ToStakePoolGroup s) =>
THKD ('PPGroups t s) StrictMaybe a -> Set PPGroups
ppGroup THKD ('PPGroups 'NetworkGroup 'SecurityGroup) StrictMaybe Word32
p04
      , THKD ('PPGroups 'NetworkGroup 'SecurityGroup) StrictMaybe Word16
-> Set PPGroups
forall (t :: DRepGroup) (s :: StakePoolGroup) a.
(ToDRepGroup t, ToStakePoolGroup s) =>
THKD ('PPGroups t s) StrictMaybe a -> Set PPGroups
ppGroup THKD ('PPGroups 'NetworkGroup 'SecurityGroup) StrictMaybe Word16
p05
      , THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) StrictMaybe Coin
-> Set PPGroups
forall (t :: DRepGroup) (s :: StakePoolGroup) a.
(ToDRepGroup t, ToStakePoolGroup s) =>
THKD ('PPGroups t s) StrictMaybe a -> Set PPGroups
ppGroup THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) StrictMaybe Coin
p06
      , THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) StrictMaybe Coin
-> Set PPGroups
forall (t :: DRepGroup) (s :: StakePoolGroup) a.
(ToDRepGroup t, ToStakePoolGroup s) =>
THKD ('PPGroups t s) StrictMaybe a -> Set PPGroups
ppGroup THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) StrictMaybe Coin
p07
      , THKD
  ('PPGroups 'TechnicalGroup 'NoStakePoolGroup)
  StrictMaybe
  EpochInterval
-> Set PPGroups
forall (t :: DRepGroup) (s :: StakePoolGroup) a.
(ToDRepGroup t, ToStakePoolGroup s) =>
THKD ('PPGroups t s) StrictMaybe a -> Set PPGroups
ppGroup THKD
  ('PPGroups 'TechnicalGroup 'NoStakePoolGroup)
  StrictMaybe
  EpochInterval
p08
      , THKD
  ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) StrictMaybe Word16
-> Set PPGroups
forall (t :: DRepGroup) (s :: StakePoolGroup) a.
(ToDRepGroup t, ToStakePoolGroup s) =>
THKD ('PPGroups t s) StrictMaybe a -> Set PPGroups
ppGroup THKD
  ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) StrictMaybe Word16
p09
      , THKD
  ('PPGroups 'TechnicalGroup 'NoStakePoolGroup)
  StrictMaybe
  NonNegativeInterval
-> Set PPGroups
forall (t :: DRepGroup) (s :: StakePoolGroup) a.
(ToDRepGroup t, ToStakePoolGroup s) =>
THKD ('PPGroups t s) StrictMaybe a -> Set PPGroups
ppGroup THKD
  ('PPGroups 'TechnicalGroup 'NoStakePoolGroup)
  StrictMaybe
  NonNegativeInterval
p10
      , THKD
  ('PPGroups 'EconomicGroup 'NoStakePoolGroup)
  StrictMaybe
  UnitInterval
-> Set PPGroups
forall (t :: DRepGroup) (s :: StakePoolGroup) a.
(ToDRepGroup t, ToStakePoolGroup s) =>
THKD ('PPGroups t s) StrictMaybe a -> Set PPGroups
ppGroup THKD
  ('PPGroups 'EconomicGroup 'NoStakePoolGroup)
  StrictMaybe
  UnitInterval
p11
      , THKD
  ('PPGroups 'EconomicGroup 'NoStakePoolGroup)
  StrictMaybe
  UnitInterval
-> Set PPGroups
forall (t :: DRepGroup) (s :: StakePoolGroup) a.
(ToDRepGroup t, ToStakePoolGroup s) =>
THKD ('PPGroups t s) StrictMaybe a -> Set PPGroups
ppGroup THKD
  ('PPGroups 'EconomicGroup 'NoStakePoolGroup)
  StrictMaybe
  UnitInterval
p12
      , THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) StrictMaybe Coin
-> Set PPGroups
forall (t :: DRepGroup) (s :: StakePoolGroup) a.
(ToDRepGroup t, ToStakePoolGroup s) =>
THKD ('PPGroups t s) StrictMaybe a -> Set PPGroups
ppGroup THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) StrictMaybe Coin
p14
      , THKD
  ('PPGroups 'EconomicGroup 'SecurityGroup) StrictMaybe CoinPerByte
-> Set PPGroups
forall (t :: DRepGroup) (s :: StakePoolGroup) a.
(ToDRepGroup t, ToStakePoolGroup s) =>
THKD ('PPGroups t s) StrictMaybe a -> Set PPGroups
ppGroup THKD
  ('PPGroups 'EconomicGroup 'SecurityGroup) StrictMaybe CoinPerByte
p15
      , THKD
  ('PPGroups 'TechnicalGroup 'NoStakePoolGroup)
  StrictMaybe
  CostModels
-> Set PPGroups
forall (t :: DRepGroup) (s :: StakePoolGroup) a.
(ToDRepGroup t, ToStakePoolGroup s) =>
THKD ('PPGroups t s) StrictMaybe a -> Set PPGroups
ppGroup THKD
  ('PPGroups 'TechnicalGroup 'NoStakePoolGroup)
  StrictMaybe
  CostModels
p16
      , THKD
  ('PPGroups 'EconomicGroup 'NoStakePoolGroup) StrictMaybe Prices
-> Set PPGroups
forall (t :: DRepGroup) (s :: StakePoolGroup) a.
(ToDRepGroup t, ToStakePoolGroup s) =>
THKD ('PPGroups t s) StrictMaybe a -> Set PPGroups
ppGroup THKD
  ('PPGroups 'EconomicGroup 'NoStakePoolGroup) StrictMaybe Prices
p17
      , THKD
  ('PPGroups 'NetworkGroup 'NoStakePoolGroup) StrictMaybe OrdExUnits
-> Set PPGroups
forall (t :: DRepGroup) (s :: StakePoolGroup) a.
(ToDRepGroup t, ToStakePoolGroup s) =>
THKD ('PPGroups t s) StrictMaybe a -> Set PPGroups
ppGroup THKD
  ('PPGroups 'NetworkGroup 'NoStakePoolGroup) StrictMaybe OrdExUnits
p18
      , THKD
  ('PPGroups 'NetworkGroup 'SecurityGroup) StrictMaybe OrdExUnits
-> Set PPGroups
forall (t :: DRepGroup) (s :: StakePoolGroup) a.
(ToDRepGroup t, ToStakePoolGroup s) =>
THKD ('PPGroups t s) StrictMaybe a -> Set PPGroups
ppGroup THKD
  ('PPGroups 'NetworkGroup 'SecurityGroup) StrictMaybe OrdExUnits
p19
      , THKD ('PPGroups 'NetworkGroup 'SecurityGroup) StrictMaybe Word32
-> Set PPGroups
forall (t :: DRepGroup) (s :: StakePoolGroup) a.
(ToDRepGroup t, ToStakePoolGroup s) =>
THKD ('PPGroups t s) StrictMaybe a -> Set PPGroups
ppGroup THKD ('PPGroups 'NetworkGroup 'SecurityGroup) StrictMaybe Word32
p20
      , THKD
  ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) StrictMaybe Word16
-> Set PPGroups
forall (t :: DRepGroup) (s :: StakePoolGroup) a.
(ToDRepGroup t, ToStakePoolGroup s) =>
THKD ('PPGroups t s) StrictMaybe a -> Set PPGroups
ppGroup THKD
  ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) StrictMaybe Word16
p21
      , THKD ('PPGroups 'NetworkGroup 'NoStakePoolGroup) StrictMaybe Word16
-> Set PPGroups
forall (t :: DRepGroup) (s :: StakePoolGroup) a.
(ToDRepGroup t, ToStakePoolGroup s) =>
THKD ('PPGroups t s) StrictMaybe a -> Set PPGroups
ppGroup THKD ('PPGroups 'NetworkGroup 'NoStakePoolGroup) StrictMaybe Word16
p22
      , THKD
  ('PPGroups 'GovGroup 'NoStakePoolGroup)
  StrictMaybe
  PoolVotingThresholds
-> Set PPGroups
forall (t :: DRepGroup) (s :: StakePoolGroup) a.
(ToDRepGroup t, ToStakePoolGroup s) =>
THKD ('PPGroups t s) StrictMaybe a -> Set PPGroups
ppGroup THKD
  ('PPGroups 'GovGroup 'NoStakePoolGroup)
  StrictMaybe
  PoolVotingThresholds
p23
      , THKD
  ('PPGroups 'GovGroup 'NoStakePoolGroup)
  StrictMaybe
  DRepVotingThresholds
-> Set PPGroups
forall (t :: DRepGroup) (s :: StakePoolGroup) a.
(ToDRepGroup t, ToStakePoolGroup s) =>
THKD ('PPGroups t s) StrictMaybe a -> Set PPGroups
ppGroup THKD
  ('PPGroups 'GovGroup 'NoStakePoolGroup)
  StrictMaybe
  DRepVotingThresholds
p24
      , THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) StrictMaybe Word16
-> Set PPGroups
forall (t :: DRepGroup) (s :: StakePoolGroup) a.
(ToDRepGroup t, ToStakePoolGroup s) =>
THKD ('PPGroups t s) StrictMaybe a -> Set PPGroups
ppGroup THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) StrictMaybe Word16
p25
      , THKD
  ('PPGroups 'GovGroup 'NoStakePoolGroup) StrictMaybe EpochInterval
-> Set PPGroups
forall (t :: DRepGroup) (s :: StakePoolGroup) a.
(ToDRepGroup t, ToStakePoolGroup s) =>
THKD ('PPGroups t s) StrictMaybe a -> Set PPGroups
ppGroup THKD
  ('PPGroups 'GovGroup 'NoStakePoolGroup) StrictMaybe EpochInterval
p26
      , THKD
  ('PPGroups 'GovGroup 'NoStakePoolGroup) StrictMaybe EpochInterval
-> Set PPGroups
forall (t :: DRepGroup) (s :: StakePoolGroup) a.
(ToDRepGroup t, ToStakePoolGroup s) =>
THKD ('PPGroups t s) StrictMaybe a -> Set PPGroups
ppGroup THKD
  ('PPGroups 'GovGroup 'NoStakePoolGroup) StrictMaybe EpochInterval
p27
      , THKD ('PPGroups 'GovGroup 'SecurityGroup) StrictMaybe Coin
-> Set PPGroups
forall (t :: DRepGroup) (s :: StakePoolGroup) a.
(ToDRepGroup t, ToStakePoolGroup s) =>
THKD ('PPGroups t s) StrictMaybe a -> Set PPGroups
ppGroup THKD ('PPGroups 'GovGroup 'SecurityGroup) StrictMaybe Coin
p28
      , THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) StrictMaybe Coin
-> Set PPGroups
forall (t :: DRepGroup) (s :: StakePoolGroup) a.
(ToDRepGroup t, ToStakePoolGroup s) =>
THKD ('PPGroups t s) StrictMaybe a -> Set PPGroups
ppGroup THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) StrictMaybe Coin
p29
      , THKD
  ('PPGroups 'GovGroup 'NoStakePoolGroup) StrictMaybe EpochInterval
-> Set PPGroups
forall (t :: DRepGroup) (s :: StakePoolGroup) a.
(ToDRepGroup t, ToStakePoolGroup s) =>
THKD ('PPGroups t s) StrictMaybe a -> Set PPGroups
ppGroup THKD
  ('PPGroups 'GovGroup 'NoStakePoolGroup) StrictMaybe EpochInterval
p30
      , THKD
  ('PPGroups 'EconomicGroup 'SecurityGroup)
  StrictMaybe
  NonNegativeInterval
-> Set PPGroups
forall (t :: DRepGroup) (s :: StakePoolGroup) a.
(ToDRepGroup t, ToStakePoolGroup s) =>
THKD ('PPGroups t s) StrictMaybe a -> Set PPGroups
ppGroup THKD
  ('PPGroups 'EconomicGroup 'SecurityGroup)
  StrictMaybe
  NonNegativeInterval
p31
      ]

asNaturalHKD :: forall f i. (HKDFunctor f, Integral i) => HKD f i -> HKD f Natural
asNaturalHKD :: forall (f :: * -> *) i.
(HKDFunctor f, Integral i) =>
HKD f i -> HKD f Natural
asNaturalHKD = Proxy f -> (i -> Natural) -> HKD f i -> HKD f Natural
forall (f :: * -> *) (proxy :: (* -> *) -> *) a b.
HKDFunctor f =>
proxy f -> (a -> b) -> HKD f a -> HKD f b
forall (proxy :: (* -> *) -> *) a b.
proxy f -> (a -> b) -> HKD f a -> HKD f b
hkdMap (forall {k} (t :: k). Proxy t
forall (t :: * -> *). Proxy t
Proxy @f) (forall a b. (Integral a, Num b) => a -> b
fromIntegral @i @Natural)

asBoundedIntegralHKD ::
  forall f i b.
  (HKDFunctor f, Integral i, Integral b, Bounded b, HasCallStack) =>
  HKD f i ->
  HKD f b
asBoundedIntegralHKD :: forall (f :: * -> *) i b.
(HKDFunctor f, Integral i, Integral b, Bounded b, HasCallStack) =>
HKD f i -> HKD f b
asBoundedIntegralHKD = Proxy f -> (i -> b) -> HKD f i -> HKD f b
forall (f :: * -> *) (proxy :: (* -> *) -> *) a b.
HKDFunctor f =>
proxy f -> (a -> b) -> HKD f a -> HKD f b
forall (proxy :: (* -> *) -> *) a b.
proxy f -> (a -> b) -> HKD f a -> HKD f b
hkdMap (forall {k} (t :: k). Proxy t
forall (t :: * -> *). Proxy t
Proxy @f) ((i -> b) -> HKD f i -> HKD f b) -> (i -> b) -> HKD f i -> HKD f b
forall a b. (a -> b) -> a -> b
$ \i
x ->
  case forall i b (m :: * -> *).
(Integral i, Integral b, Bounded b, MonadFail m) =>
i -> m b
integralToBounded @i @b @Maybe i
x of
    Just b
b -> b
b
    Maybe b
Nothing ->
      String -> b
forall a. HasCallStack => String -> a
error (String -> b) -> String -> b
forall a b. (a -> b) -> a -> b
$
        String
"Value: "
          String -> ShowS
forall a. Semigroup a => a -> a -> a
<> Integer -> String
forall a. Show a => a -> String
show (i -> Integer
forall a. Integral a => a -> Integer
toInteger i
x)
          String -> ShowS
forall a. Semigroup a => a -> a -> a
<> String
" is out of the valid range: ["
          String -> ShowS
forall a. Semigroup a => a -> a -> a
<> Integer -> String
forall a. Show a => a -> String
show (b -> Integer
forall a. Integral a => a -> Integer
toInteger (forall a. Bounded a => a
minBound @b))
          String -> ShowS
forall a. Semigroup a => a -> a -> a
<> String
","
          String -> ShowS
forall a. Semigroup a => a -> a -> a
<> Integer -> String
forall a. Show a => a -> String
show (b -> Integer
forall a. Integral a => a -> Integer
toInteger (forall a. Bounded a => a
maxBound @b))
          String -> ShowS
forall a. Semigroup a => a -> a -> a
<> String
"]"

ppPoolVotingThresholds :: ConwayEraPParams era => PParam era
ppPoolVotingThresholds :: forall era. ConwayEraPParams era => PParam era
ppPoolVotingThresholds =
  PParam
    { ppName :: Text
ppName = Text
"poolVotingThresholds"
    , ppLens :: Lens' (PParams era) PoolVotingThresholds
ppLens = (PoolVotingThresholds -> f PoolVotingThresholds)
-> PParams era -> f (PParams era)
forall era.
ConwayEraPParams era =>
Lens' (PParams era) PoolVotingThresholds
Lens' (PParams era) PoolVotingThresholds
ppPoolVotingThresholdsL
    , ppUpdate :: Maybe (PParamUpdate era PoolVotingThresholds)
ppUpdate = PParamUpdate era PoolVotingThresholds
-> Maybe (PParamUpdate era PoolVotingThresholds)
forall a. a -> Maybe a
Just (PParamUpdate era PoolVotingThresholds
 -> Maybe (PParamUpdate era PoolVotingThresholds))
-> PParamUpdate era PoolVotingThresholds
-> Maybe (PParamUpdate era PoolVotingThresholds)
forall a b. (a -> b) -> a -> b
$ Word
-> Lens' (PParamsUpdate era) (StrictMaybe PoolVotingThresholds)
-> PParamUpdate era PoolVotingThresholds
forall era t.
Word
-> Lens' (PParamsUpdate era) (StrictMaybe t) -> PParamUpdate era t
PParamUpdate Word
25 (StrictMaybe PoolVotingThresholds
 -> f (StrictMaybe PoolVotingThresholds))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
ConwayEraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe PoolVotingThresholds)
Lens' (PParamsUpdate era) (StrictMaybe PoolVotingThresholds)
ppuPoolVotingThresholdsL
    }

ppDRepVotingThresholds :: ConwayEraPParams era => PParam era
ppDRepVotingThresholds :: forall era. ConwayEraPParams era => PParam era
ppDRepVotingThresholds =
  PParam
    { ppName :: Text
ppName = Text
"dRepVotingThresholds"
    , ppLens :: Lens' (PParams era) DRepVotingThresholds
ppLens = (DRepVotingThresholds -> f DRepVotingThresholds)
-> PParams era -> f (PParams era)
forall era.
ConwayEraPParams era =>
Lens' (PParams era) DRepVotingThresholds
Lens' (PParams era) DRepVotingThresholds
ppDRepVotingThresholdsL
    , ppUpdate :: Maybe (PParamUpdate era DRepVotingThresholds)
ppUpdate = PParamUpdate era DRepVotingThresholds
-> Maybe (PParamUpdate era DRepVotingThresholds)
forall a. a -> Maybe a
Just (PParamUpdate era DRepVotingThresholds
 -> Maybe (PParamUpdate era DRepVotingThresholds))
-> PParamUpdate era DRepVotingThresholds
-> Maybe (PParamUpdate era DRepVotingThresholds)
forall a b. (a -> b) -> a -> b
$ Word
-> Lens' (PParamsUpdate era) (StrictMaybe DRepVotingThresholds)
-> PParamUpdate era DRepVotingThresholds
forall era t.
Word
-> Lens' (PParamsUpdate era) (StrictMaybe t) -> PParamUpdate era t
PParamUpdate Word
26 (StrictMaybe DRepVotingThresholds
 -> f (StrictMaybe DRepVotingThresholds))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
ConwayEraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe DRepVotingThresholds)
Lens' (PParamsUpdate era) (StrictMaybe DRepVotingThresholds)
ppuDRepVotingThresholdsL
    }

ppCommitteeMinSize :: ConwayEraPParams era => PParam era
ppCommitteeMinSize :: forall era. ConwayEraPParams era => PParam era
ppCommitteeMinSize =
  PParam
    { ppName :: Text
ppName = Text
"committeeMinSize"
    , ppLens :: Lens' (PParams era) Natural
ppLens = (Natural -> f Natural) -> PParams era -> f (PParams era)
forall era. ConwayEraPParams era => Lens' (PParams era) Natural
Lens' (PParams era) Natural
ppCommitteeMinSizeL
    , ppUpdate :: Maybe (PParamUpdate era Natural)
ppUpdate = PParamUpdate era Natural -> Maybe (PParamUpdate era Natural)
forall a. a -> Maybe a
Just (PParamUpdate era Natural -> Maybe (PParamUpdate era Natural))
-> PParamUpdate era Natural -> Maybe (PParamUpdate era Natural)
forall a b. (a -> b) -> a -> b
$ Word
-> Lens' (PParamsUpdate era) (StrictMaybe Natural)
-> PParamUpdate era Natural
forall era t.
Word
-> Lens' (PParamsUpdate era) (StrictMaybe t) -> PParamUpdate era t
PParamUpdate Word
27 (StrictMaybe Natural -> f (StrictMaybe Natural))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
ConwayEraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe Natural)
Lens' (PParamsUpdate era) (StrictMaybe Natural)
ppuCommitteeMinSizeL
    }

ppCommitteeMaxTermLength :: ConwayEraPParams era => PParam era
ppCommitteeMaxTermLength :: forall era. ConwayEraPParams era => PParam era
ppCommitteeMaxTermLength =
  PParam
    { ppName :: Text
ppName = Text
"committeeMaxTermLength"
    , ppLens :: Lens' (PParams era) EpochInterval
ppLens = (EpochInterval -> f EpochInterval)
-> PParams era -> f (PParams era)
forall era.
ConwayEraPParams era =>
Lens' (PParams era) EpochInterval
Lens' (PParams era) EpochInterval
ppCommitteeMaxTermLengthL
    , ppUpdate :: Maybe (PParamUpdate era EpochInterval)
ppUpdate = PParamUpdate era EpochInterval
-> Maybe (PParamUpdate era EpochInterval)
forall a. a -> Maybe a
Just (PParamUpdate era EpochInterval
 -> Maybe (PParamUpdate era EpochInterval))
-> PParamUpdate era EpochInterval
-> Maybe (PParamUpdate era EpochInterval)
forall a b. (a -> b) -> a -> b
$ Word
-> Lens' (PParamsUpdate era) (StrictMaybe EpochInterval)
-> PParamUpdate era EpochInterval
forall era t.
Word
-> Lens' (PParamsUpdate era) (StrictMaybe t) -> PParamUpdate era t
PParamUpdate Word
28 (StrictMaybe EpochInterval -> f (StrictMaybe EpochInterval))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
ConwayEraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe EpochInterval)
Lens' (PParamsUpdate era) (StrictMaybe EpochInterval)
ppuCommitteeMaxTermLengthL
    }

ppGovActionLifetime :: ConwayEraPParams era => PParam era
ppGovActionLifetime :: forall era. ConwayEraPParams era => PParam era
ppGovActionLifetime =
  PParam
    { ppName :: Text
ppName = Text
"govActionLifetime"
    , ppLens :: Lens' (PParams era) EpochInterval
ppLens = (EpochInterval -> f EpochInterval)
-> PParams era -> f (PParams era)
forall era.
ConwayEraPParams era =>
Lens' (PParams era) EpochInterval
Lens' (PParams era) EpochInterval
ppGovActionLifetimeL
    , ppUpdate :: Maybe (PParamUpdate era EpochInterval)
ppUpdate = PParamUpdate era EpochInterval
-> Maybe (PParamUpdate era EpochInterval)
forall a. a -> Maybe a
Just (PParamUpdate era EpochInterval
 -> Maybe (PParamUpdate era EpochInterval))
-> PParamUpdate era EpochInterval
-> Maybe (PParamUpdate era EpochInterval)
forall a b. (a -> b) -> a -> b
$ Word
-> Lens' (PParamsUpdate era) (StrictMaybe EpochInterval)
-> PParamUpdate era EpochInterval
forall era t.
Word
-> Lens' (PParamsUpdate era) (StrictMaybe t) -> PParamUpdate era t
PParamUpdate Word
29 (StrictMaybe EpochInterval -> f (StrictMaybe EpochInterval))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
ConwayEraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe EpochInterval)
Lens' (PParamsUpdate era) (StrictMaybe EpochInterval)
ppuGovActionLifetimeL
    }

ppGovActionDeposit :: ConwayEraPParams era => PParam era
ppGovActionDeposit :: forall era. ConwayEraPParams era => PParam era
ppGovActionDeposit =
  PParam
    { ppName :: Text
ppName = Text
"govActionDeposit"
    , ppLens :: Lens' (PParams era) Coin
ppLens = (Coin -> f Coin) -> PParams era -> f (PParams era)
forall era. ConwayEraPParams era => Lens' (PParams era) Coin
Lens' (PParams era) Coin
ppGovActionDepositL
    , ppUpdate :: Maybe (PParamUpdate era Coin)
ppUpdate = PParamUpdate era Coin -> Maybe (PParamUpdate era Coin)
forall a. a -> Maybe a
Just (PParamUpdate era Coin -> Maybe (PParamUpdate era Coin))
-> PParamUpdate era Coin -> Maybe (PParamUpdate era Coin)
forall a b. (a -> b) -> a -> b
$ Word
-> Lens' (PParamsUpdate era) (StrictMaybe Coin)
-> PParamUpdate era Coin
forall era t.
Word
-> Lens' (PParamsUpdate era) (StrictMaybe t) -> PParamUpdate era t
PParamUpdate Word
30 (StrictMaybe Coin -> f (StrictMaybe Coin))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
ConwayEraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe Coin)
Lens' (PParamsUpdate era) (StrictMaybe Coin)
ppuGovActionDepositL
    }

ppDRepDeposit :: ConwayEraPParams era => PParam era
ppDRepDeposit :: forall era. ConwayEraPParams era => PParam era
ppDRepDeposit =
  PParam
    { ppName :: Text
ppName = Text
"dRepDeposit"
    , ppLens :: Lens' (PParams era) Coin
ppLens = (Coin -> f Coin) -> PParams era -> f (PParams era)
forall era. ConwayEraPParams era => Lens' (PParams era) Coin
Lens' (PParams era) Coin
ppDRepDepositL
    , ppUpdate :: Maybe (PParamUpdate era Coin)
ppUpdate = PParamUpdate era Coin -> Maybe (PParamUpdate era Coin)
forall a. a -> Maybe a
Just (PParamUpdate era Coin -> Maybe (PParamUpdate era Coin))
-> PParamUpdate era Coin -> Maybe (PParamUpdate era Coin)
forall a b. (a -> b) -> a -> b
$ Word
-> Lens' (PParamsUpdate era) (StrictMaybe Coin)
-> PParamUpdate era Coin
forall era t.
Word
-> Lens' (PParamsUpdate era) (StrictMaybe t) -> PParamUpdate era t
PParamUpdate Word
31 (StrictMaybe Coin -> f (StrictMaybe Coin))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
ConwayEraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe Coin)
Lens' (PParamsUpdate era) (StrictMaybe Coin)
ppuDRepDepositL
    }

ppDRepActivity :: ConwayEraPParams era => PParam era
ppDRepActivity :: forall era. ConwayEraPParams era => PParam era
ppDRepActivity =
  PParam
    { ppName :: Text
ppName = Text
"dRepActivity"
    , ppLens :: Lens' (PParams era) EpochInterval
ppLens = (EpochInterval -> f EpochInterval)
-> PParams era -> f (PParams era)
forall era.
ConwayEraPParams era =>
Lens' (PParams era) EpochInterval
Lens' (PParams era) EpochInterval
ppDRepActivityL
    , ppUpdate :: Maybe (PParamUpdate era EpochInterval)
ppUpdate = PParamUpdate era EpochInterval
-> Maybe (PParamUpdate era EpochInterval)
forall a. a -> Maybe a
Just (PParamUpdate era EpochInterval
 -> Maybe (PParamUpdate era EpochInterval))
-> PParamUpdate era EpochInterval
-> Maybe (PParamUpdate era EpochInterval)
forall a b. (a -> b) -> a -> b
$ Word
-> Lens' (PParamsUpdate era) (StrictMaybe EpochInterval)
-> PParamUpdate era EpochInterval
forall era t.
Word
-> Lens' (PParamsUpdate era) (StrictMaybe t) -> PParamUpdate era t
PParamUpdate Word
32 (StrictMaybe EpochInterval -> f (StrictMaybe EpochInterval))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
ConwayEraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe EpochInterval)
Lens' (PParamsUpdate era) (StrictMaybe EpochInterval)
ppuDRepActivityL
    }

ppMinFeeRefScriptCostPerByte :: ConwayEraPParams era => PParam era
ppMinFeeRefScriptCostPerByte :: forall era. ConwayEraPParams era => PParam era
ppMinFeeRefScriptCostPerByte =
  PParam
    { ppName :: Text
ppName = Text
"minFeeRefScriptCostPerByte"
    , ppLens :: Lens' (PParams era) NonNegativeInterval
ppLens = (NonNegativeInterval -> f NonNegativeInterval)
-> PParams era -> f (PParams era)
forall era.
ConwayEraPParams era =>
Lens' (PParams era) NonNegativeInterval
Lens' (PParams era) NonNegativeInterval
ppMinFeeRefScriptCostPerByteL
    , ppUpdate :: Maybe (PParamUpdate era NonNegativeInterval)
ppUpdate = PParamUpdate era NonNegativeInterval
-> Maybe (PParamUpdate era NonNegativeInterval)
forall a. a -> Maybe a
Just (PParamUpdate era NonNegativeInterval
 -> Maybe (PParamUpdate era NonNegativeInterval))
-> PParamUpdate era NonNegativeInterval
-> Maybe (PParamUpdate era NonNegativeInterval)
forall a b. (a -> b) -> a -> b
$ Word
-> Lens' (PParamsUpdate era) (StrictMaybe NonNegativeInterval)
-> PParamUpdate era NonNegativeInterval
forall era t.
Word
-> Lens' (PParamsUpdate era) (StrictMaybe t) -> PParamUpdate era t
PParamUpdate Word
33 (StrictMaybe NonNegativeInterval
 -> f (StrictMaybe NonNegativeInterval))
-> PParamsUpdate era -> f (PParamsUpdate era)
forall era.
ConwayEraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe NonNegativeInterval)
Lens' (PParamsUpdate era) (StrictMaybe NonNegativeInterval)
ppuMinFeeRefScriptCostPerByteL
    }

ppGovProtocolVersion :: ConwayEraPParams era => PParam era
ppGovProtocolVersion :: forall era. ConwayEraPParams era => PParam era
ppGovProtocolVersion =
  PParam
    { ppName :: Text
ppName = Text
"protocolVersion"
    , ppLens :: Lens' (PParams era) ProtVer
ppLens = (ProtVer -> f ProtVer) -> PParams era -> f (PParams era)
forall era. EraPParams era => Lens' (PParams era) ProtVer
Lens' (PParams era) ProtVer
ppProtocolVersionL
    , ppUpdate :: Maybe (PParamUpdate era ProtVer)
ppUpdate = Maybe (PParamUpdate era ProtVer)
forall a. Maybe a
Nothing
    }