{-# LANGUAGE AllowAmbiguousTypes #-}
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DerivingVia #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE GADTs #-}
{-# LANGUAGE InstanceSigs #-}
{-# LANGUAGE LambdaCase #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# 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 (..),
  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 (AlonzoEraPParams (..), OrdExUnits (..))
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,
 )
import Cardano.Ledger.Binary (
  DecCBOR (..),
  EncCBOR (..),
  Encoding,
  FromCBOR (..),
  ToCBOR (..),
  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.Crypto
import Cardano.Ledger.HKD (
  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.Shelley.HardForks (bootstrapPhase)
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.Functor.Identity (Identity)
import qualified Data.Map.Strict as Map
import Data.Maybe.Strict (StrictMaybe (..), isSNothing)
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)

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)

ppPoolVotingThresholdsL ::
  forall era. ConwayEraPParams era => Lens' (PParams era) PoolVotingThresholds
ppPoolVotingThresholdsL :: forall era.
ConwayEraPParams era =>
Lens' (PParams era) PoolVotingThresholds
ppPoolVotingThresholdsL = forall era. Lens' (PParams era) (PParamsHKD Identity era)
ppLens 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 = forall era. Lens' (PParams era) (PParamsHKD Identity era)
ppLens 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 = forall era. Lens' (PParams era) (PParamsHKD Identity era)
ppLens 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 = forall era. Lens' (PParams era) (PParamsHKD Identity era)
ppLens 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 = forall era. Lens' (PParams era) (PParamsHKD Identity era)
ppLens 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 = forall era. Lens' (PParams era) (PParamsHKD Identity era)
ppLens 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 = forall era. Lens' (PParams era) (PParamsHKD Identity era)
ppLens 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 = forall era. Lens' (PParams era) (PParamsHKD Identity era)
ppLens 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 = forall era. Lens' (PParams era) (PParamsHKD Identity era)
ppLens 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 = forall era. Lens' (PParamsUpdate era) (PParamsHKD StrictMaybe era)
ppuLens 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 = forall era. Lens' (PParamsUpdate era) (PParamsHKD StrictMaybe era)
ppuLens 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 = forall era. Lens' (PParamsUpdate era) (PParamsHKD StrictMaybe era)
ppuLens 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 = forall era. Lens' (PParamsUpdate era) (PParamsHKD StrictMaybe era)
ppuLens 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 = forall era. Lens' (PParamsUpdate era) (PParamsHKD StrictMaybe era)
ppuLens 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 = forall era. Lens' (PParamsUpdate era) (PParamsHKD StrictMaybe era)
ppuLens 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 = forall era. Lens' (PParamsUpdate era) (PParamsHKD StrictMaybe era)
ppuLens 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 = forall era. Lens' (PParamsUpdate era) (PParamsHKD StrictMaybe era)
ppuLens 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 = forall era. Lens' (PParamsUpdate era) (PParamsHKD StrictMaybe era)
ppuLens 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
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: PoolVotingThresholds -> PoolVotingThresholds -> Bool
$c/= :: PoolVotingThresholds -> PoolVotingThresholds -> Bool
== :: PoolVotingThresholds -> PoolVotingThresholds -> Bool
$c== :: PoolVotingThresholds -> PoolVotingThresholds -> Bool
Eq, Eq 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
min :: PoolVotingThresholds
-> PoolVotingThresholds -> PoolVotingThresholds
$cmin :: PoolVotingThresholds
-> PoolVotingThresholds -> PoolVotingThresholds
max :: PoolVotingThresholds
-> PoolVotingThresholds -> PoolVotingThresholds
$cmax :: PoolVotingThresholds
-> PoolVotingThresholds -> PoolVotingThresholds
>= :: PoolVotingThresholds -> PoolVotingThresholds -> Bool
$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
compare :: PoolVotingThresholds -> PoolVotingThresholds -> Ordering
$ccompare :: PoolVotingThresholds -> PoolVotingThresholds -> Ordering
Ord, Int -> PoolVotingThresholds -> ShowS
[PoolVotingThresholds] -> ShowS
PoolVotingThresholds -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [PoolVotingThresholds] -> ShowS
$cshowList :: [PoolVotingThresholds] -> ShowS
show :: PoolVotingThresholds -> String
$cshow :: PoolVotingThresholds -> String
showsPrec :: Int -> PoolVotingThresholds -> ShowS
$cshowsPrec :: Int -> PoolVotingThresholds -> ShowS
Show, 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
$cto :: forall x. Rep PoolVotingThresholds x -> PoolVotingThresholds
$cfrom :: forall x. PoolVotingThresholds -> Rep PoolVotingThresholds x
Generic)

pvtMotionNoConfidenceL :: Lens' PoolVotingThresholds UnitInterval
pvtMotionNoConfidenceL :: Lens' PoolVotingThresholds UnitInterval
pvtMotionNoConfidenceL = 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 :: UnitInterval
pvtMotionNoConfidence = UnitInterval
y})

pvtCommitteeNormalL :: Lens' PoolVotingThresholds UnitInterval
pvtCommitteeNormalL :: Lens' PoolVotingThresholds UnitInterval
pvtCommitteeNormalL = 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 :: UnitInterval
pvtCommitteeNormal = UnitInterval
y})

pvtCommitteeNoConfidenceL :: Lens' PoolVotingThresholds UnitInterval
pvtCommitteeNoConfidenceL :: Lens' PoolVotingThresholds UnitInterval
pvtCommitteeNoConfidenceL = 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 :: UnitInterval
pvtCommitteeNoConfidence = UnitInterval
y})

pvtPPSecurityGroupL :: Lens' PoolVotingThresholds UnitInterval
pvtPPSecurityGroupL :: Lens' PoolVotingThresholds UnitInterval
pvtPPSecurityGroupL = 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 :: UnitInterval
pvtPPSecurityGroup = UnitInterval
y})

pvtHardForkInitiationL :: Lens' PoolVotingThresholds UnitInterval
pvtHardForkInitiationL :: Lens' PoolVotingThresholds UnitInterval
pvtHardForkInitiationL = 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 :: UnitInterval
pvtHardForkInitiation = UnitInterval
y})

instance NoThunks PoolVotingThresholds

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

instance Default PoolVotingThresholds where
  def :: PoolVotingThresholds
def = UnitInterval
-> UnitInterval
-> UnitInterval
-> UnitInterval
-> UnitInterval
-> PoolVotingThresholds
PoolVotingThresholds forall a. Default a => a
def forall a. Default a => a
def forall a. Default a => a
def forall a. Default a => a
def 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
pvtPPSecurityGroup :: UnitInterval
pvtHardForkInitiation :: UnitInterval
pvtCommitteeNoConfidence :: UnitInterval
pvtCommitteeNormal :: UnitInterval
pvtMotionNoConfidence :: UnitInterval
pvtPPSecurityGroup :: PoolVotingThresholds -> UnitInterval
pvtHardForkInitiation :: PoolVotingThresholds -> UnitInterval
pvtCommitteeNoConfidence :: PoolVotingThresholds -> UnitInterval
pvtCommitteeNormal :: PoolVotingThresholds -> UnitInterval
pvtMotionNoConfidence :: PoolVotingThresholds -> UnitInterval
..} = PoolVotingThresholds
pvt
     in [Pair] -> Value
object
          [ (Key
"motionNoConfidence", forall a. ToJSON a => a -> Value
toJSON UnitInterval
pvtMotionNoConfidence)
          , (Key
"committeeNormal", forall a. ToJSON a => a -> Value
toJSON UnitInterval
pvtCommitteeNormal)
          , (Key
"committeeNoConfidence", forall a. ToJSON a => a -> Value
toJSON UnitInterval
pvtCommitteeNoConfidence)
          , (Key
"hardForkInitiation", forall a. ToJSON a => a -> Value
toJSON UnitInterval
pvtHardForkInitiation)
          , (Key
"ppSecurityGroup", forall a. ToJSON a => a -> Value
toJSON UnitInterval
pvtPPSecurityGroup)
          ]

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

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

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

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
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DRepVotingThresholds -> DRepVotingThresholds -> Bool
$c/= :: DRepVotingThresholds -> DRepVotingThresholds -> Bool
== :: DRepVotingThresholds -> DRepVotingThresholds -> Bool
$c== :: DRepVotingThresholds -> DRepVotingThresholds -> Bool
Eq, Eq 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
min :: DRepVotingThresholds
-> DRepVotingThresholds -> DRepVotingThresholds
$cmin :: DRepVotingThresholds
-> DRepVotingThresholds -> DRepVotingThresholds
max :: DRepVotingThresholds
-> DRepVotingThresholds -> DRepVotingThresholds
$cmax :: DRepVotingThresholds
-> DRepVotingThresholds -> DRepVotingThresholds
>= :: DRepVotingThresholds -> DRepVotingThresholds -> Bool
$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
compare :: DRepVotingThresholds -> DRepVotingThresholds -> Ordering
$ccompare :: DRepVotingThresholds -> DRepVotingThresholds -> Ordering
Ord, Int -> DRepVotingThresholds -> ShowS
[DRepVotingThresholds] -> ShowS
DRepVotingThresholds -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [DRepVotingThresholds] -> ShowS
$cshowList :: [DRepVotingThresholds] -> ShowS
show :: DRepVotingThresholds -> String
$cshow :: DRepVotingThresholds -> String
showsPrec :: Int -> DRepVotingThresholds -> ShowS
$cshowsPrec :: Int -> DRepVotingThresholds -> ShowS
Show, 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
$cto :: forall x. Rep DRepVotingThresholds x -> DRepVotingThresholds
$cfrom :: forall x. DRepVotingThresholds -> Rep DRepVotingThresholds x
Generic)

instance NoThunks DRepVotingThresholds

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

instance Default DRepVotingThresholds where
  def :: DRepVotingThresholds
def = UnitInterval
-> UnitInterval
-> UnitInterval
-> UnitInterval
-> UnitInterval
-> UnitInterval
-> UnitInterval
-> UnitInterval
-> UnitInterval
-> UnitInterval
-> DRepVotingThresholds
DRepVotingThresholds forall a. Default a => a
def forall a. Default a => a
def forall a. Default a => a
def forall a. Default a => a
def forall a. Default a => a
def forall a. Default a => a
def forall a. Default a => a
def forall a. Default a => a
def forall a. Default a => a
def 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
dvtTreasuryWithdrawal :: UnitInterval
dvtPPGovGroup :: UnitInterval
dvtPPTechnicalGroup :: UnitInterval
dvtPPEconomicGroup :: UnitInterval
dvtPPNetworkGroup :: UnitInterval
dvtHardForkInitiation :: UnitInterval
dvtUpdateToConstitution :: UnitInterval
dvtCommitteeNoConfidence :: UnitInterval
dvtCommitteeNormal :: UnitInterval
dvtMotionNoConfidence :: UnitInterval
dvtTreasuryWithdrawal :: DRepVotingThresholds -> UnitInterval
dvtPPGovGroup :: DRepVotingThresholds -> UnitInterval
dvtPPTechnicalGroup :: DRepVotingThresholds -> UnitInterval
dvtPPEconomicGroup :: DRepVotingThresholds -> UnitInterval
dvtPPNetworkGroup :: DRepVotingThresholds -> UnitInterval
dvtHardForkInitiation :: DRepVotingThresholds -> UnitInterval
dvtUpdateToConstitution :: DRepVotingThresholds -> UnitInterval
dvtCommitteeNoConfidence :: DRepVotingThresholds -> UnitInterval
dvtCommitteeNormal :: DRepVotingThresholds -> UnitInterval
dvtMotionNoConfidence :: DRepVotingThresholds -> UnitInterval
..} = DRepVotingThresholds
pvt
     in [Pair] -> Value
object
          [ (Key
"motionNoConfidence", forall a. ToJSON a => a -> Value
toJSON UnitInterval
dvtMotionNoConfidence)
          , (Key
"committeeNormal", forall a. ToJSON a => a -> Value
toJSON UnitInterval
dvtCommitteeNormal)
          , (Key
"committeeNoConfidence", forall a. ToJSON a => a -> Value
toJSON UnitInterval
dvtCommitteeNoConfidence)
          , (Key
"updateToConstitution", forall a. ToJSON a => a -> Value
toJSON UnitInterval
dvtUpdateToConstitution)
          , (Key
"hardForkInitiation", forall a. ToJSON a => a -> Value
toJSON UnitInterval
dvtHardForkInitiation)
          , (Key
"ppNetworkGroup", forall a. ToJSON a => a -> Value
toJSON UnitInterval
dvtPPNetworkGroup)
          , (Key
"ppEconomicGroup", forall a. ToJSON a => a -> Value
toJSON UnitInterval
dvtPPEconomicGroup)
          , (Key
"ppTechnicalGroup", forall a. ToJSON a => a -> Value
toJSON UnitInterval
dvtPPTechnicalGroup)
          , (Key
"ppGovGroup", forall a. ToJSON a => a -> Value
toJSON UnitInterval
dvtPPGovGroup)
          , (Key
"treasuryWithdrawal", forall a. ToJSON a => a -> Value
toJSON UnitInterval
dvtTreasuryWithdrawal)
          ]

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

dvtPPNetworkGroupL :: Lens' DRepVotingThresholds UnitInterval
dvtPPNetworkGroupL :: Lens' DRepVotingThresholds UnitInterval
dvtPPNetworkGroupL = 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 :: UnitInterval
dvtPPNetworkGroup = UnitInterval
y})

dvtPPEconomicGroupL :: Lens' DRepVotingThresholds UnitInterval
dvtPPEconomicGroupL :: Lens' DRepVotingThresholds UnitInterval
dvtPPEconomicGroupL = 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 :: UnitInterval
dvtPPEconomicGroup = UnitInterval
y})

dvtPPTechnicalGroupL :: Lens' DRepVotingThresholds UnitInterval
dvtPPTechnicalGroupL :: Lens' DRepVotingThresholds UnitInterval
dvtPPTechnicalGroupL = 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 :: UnitInterval
dvtPPTechnicalGroup = UnitInterval
y})

dvtPPGovGroupL :: Lens' DRepVotingThresholds UnitInterval
dvtPPGovGroupL :: Lens' DRepVotingThresholds UnitInterval
dvtPPGovGroupL = 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 :: UnitInterval
dvtPPGovGroup = UnitInterval
y})

dvtUpdateToConstitutionL :: Lens' DRepVotingThresholds UnitInterval
dvtUpdateToConstitutionL :: Lens' DRepVotingThresholds UnitInterval
dvtUpdateToConstitutionL = 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 :: UnitInterval
dvtUpdateToConstitution = UnitInterval
y})

dvtCommitteeNoConfidenceL :: Lens' DRepVotingThresholds UnitInterval
dvtCommitteeNoConfidenceL :: Lens' DRepVotingThresholds UnitInterval
dvtCommitteeNoConfidenceL = 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 :: UnitInterval
dvtCommitteeNoConfidence = UnitInterval
y})

dvtCommitteeNormalL :: Lens' DRepVotingThresholds UnitInterval
dvtCommitteeNormalL :: Lens' DRepVotingThresholds UnitInterval
dvtCommitteeNormalL = 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 :: UnitInterval
dvtCommitteeNormal = UnitInterval
y})

dvtMotionNoConfidenceL :: Lens' DRepVotingThresholds UnitInterval
dvtMotionNoConfidenceL :: Lens' DRepVotingThresholds UnitInterval
dvtMotionNoConfidenceL = 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 :: UnitInterval
dvtMotionNoConfidence = UnitInterval
y})

dvtHardForkInitiationL :: Lens' DRepVotingThresholds UnitInterval
dvtHardForkInitiationL :: Lens' DRepVotingThresholds UnitInterval
dvtHardForkInitiationL = 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 :: UnitInterval
dvtHardForkInitiation = UnitInterval
y})

dvtTreasuryWithdrawalL :: Lens' DRepVotingThresholds UnitInterval
dvtTreasuryWithdrawalL :: Lens' DRepVotingThresholds UnitInterval
dvtTreasuryWithdrawalL = 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 :: UnitInterval
dvtTreasuryWithdrawal = UnitInterval
y})

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

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

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

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

data StakePoolGroup
  = SecurityGroup
  | NoStakePoolGroup
  deriving (StakePoolGroup -> StakePoolGroup -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: StakePoolGroup -> StakePoolGroup -> Bool
$c/= :: StakePoolGroup -> StakePoolGroup -> Bool
== :: StakePoolGroup -> StakePoolGroup -> Bool
$c== :: StakePoolGroup -> StakePoolGroup -> Bool
Eq, Eq 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
min :: StakePoolGroup -> StakePoolGroup -> StakePoolGroup
$cmin :: StakePoolGroup -> StakePoolGroup -> StakePoolGroup
max :: StakePoolGroup -> StakePoolGroup -> StakePoolGroup
$cmax :: StakePoolGroup -> StakePoolGroup -> StakePoolGroup
>= :: StakePoolGroup -> StakePoolGroup -> Bool
$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
compare :: StakePoolGroup -> StakePoolGroup -> Ordering
$ccompare :: StakePoolGroup -> StakePoolGroup -> Ordering
Ord, Int -> StakePoolGroup -> ShowS
[StakePoolGroup] -> ShowS
StakePoolGroup -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [StakePoolGroup] -> ShowS
$cshowList :: [StakePoolGroup] -> ShowS
show :: StakePoolGroup -> String
$cshow :: StakePoolGroup -> String
showsPrec :: Int -> StakePoolGroup -> ShowS
$cshowsPrec :: Int -> 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 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) = 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 = forall a. Show a => a -> String
show forall b c a. (b -> c) -> (a -> b) -> a -> c
. 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 = forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD forall a b. (a -> b) -> a -> b
$ forall (t :: PPGroups) (f :: * -> *) a. THKD t f a -> HKD f a
unTHKD THKD t f a
a forall a. Semigroup a => a -> a -> 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 = forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD 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 = forall a. NoThunks a => Context -> a -> IO (Maybe ThunkInfo)
noThunks Context
ctx forall b c a. (b -> c) -> (a -> b) -> a -> c
. 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 = forall a. NoThunks a => Context -> a -> IO (Maybe ThunkInfo)
wNoThunks Context
ctx forall b c a. (b -> c) -> (a -> b) -> a -> c
. 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)
_ = forall a. NoThunks a => Proxy a -> String
showTypeOf (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 = forall a. NFData a => a -> ()
rnf forall b c a. (b -> c) -> (a -> b) -> a -> c
. 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 = forall a. EncCBOR a => a -> Encoding
encCBOR forall b c a. (b -> c) -> (a -> b) -> a -> c
. 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 = forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> 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 = forall a. EncCBOR a => a -> Encoding
encCBOR forall b c a. (b -> c) -> (a -> b) -> a -> c
. 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 = forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> 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 = forall a. ToJSON a => a -> Value
toJSON forall b c a. (b -> c) -> (a -> b) -> a -> c
. 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 = forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD forall b c a. (b -> c) -> (a -> b) -> a -> c
. 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 = forall a. ToJSON a => a -> Value
toJSON forall b c a. (b -> c) -> (a -> b) -> a -> c
. 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 = forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD forall b c a. (b -> c) -> (a -> b) -> a -> c
. 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 -> forall a. Set a
Set.empty
  THKD SJust {} -> forall a. a -> Set a
Set.singleton 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 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
$cto :: forall (f :: * -> *) era x.
Rep (ConwayPParams f era) x -> ConwayPParams f era
$cfrom :: forall (f :: * -> *) era x.
ConwayPParams f era -> Rep (ConwayPParams f era) x
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 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
$cto :: forall (f :: * -> *) x.
Rep (UpgradeConwayPParams f) x -> UpgradeConwayPParams f
$cfrom :: forall (f :: * -> *) x.
UpgradeConwayPParams f -> Rep (UpgradeConwayPParams f) x
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 = forall a. StrictMaybe a
SNothing
      , ucppDRepVotingThresholds :: HKD StrictMaybe DRepVotingThresholds
ucppDRepVotingThresholds = forall a. StrictMaybe a
SNothing
      , ucppCommitteeMinSize :: HKD StrictMaybe Word16
ucppCommitteeMinSize = forall a. StrictMaybe a
SNothing
      , ucppCommitteeMaxTermLength :: HKD StrictMaybe EpochInterval
ucppCommitteeMaxTermLength = forall a. StrictMaybe a
SNothing
      , ucppGovActionLifetime :: HKD StrictMaybe EpochInterval
ucppGovActionLifetime = forall a. StrictMaybe a
SNothing
      , ucppGovActionDeposit :: HKD StrictMaybe Coin
ucppGovActionDeposit = forall a. StrictMaybe a
SNothing
      , ucppDRepDeposit :: HKD StrictMaybe Coin
ucppDRepDeposit = forall a. StrictMaybe a
SNothing
      , ucppDRepActivity :: HKD StrictMaybe EpochInterval
ucppDRepActivity = forall a. StrictMaybe a
SNothing
      , ucppMinFeeRefScriptCostPerByte :: HKD StrictMaybe NonNegativeInterval
ucppMinFeeRefScriptCostPerByte = forall a. StrictMaybe a
SNothing
      , ucppPlutusV3CostModel :: HKD StrictMaybe CostModel
ucppPlutusV3CostModel = forall a. StrictMaybe a
SNothing
      }

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

instance DecCBOR (UpgradeConwayPParams Identity) where
  decCBOR :: forall s. Decoder s (UpgradeConwayPParams Identity)
decCBOR =
    forall (w :: Wrapped) t s. Decode w t -> Decoder s t
decode forall a b. (a -> b) -> a -> b
$
      forall t. t -> Decode ('Closed 'Dense) t
RecD 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
        forall (w1 :: Wrapped) a t (w :: Density).
Decode w1 (a -> t) -> Decode ('Closed w) a -> Decode w1 t
<! forall t (w :: Wrapped). DecCBOR t => Decode w t
From
        forall (w1 :: Wrapped) a t (w :: Density).
Decode w1 (a -> t) -> Decode ('Closed w) a -> Decode w1 t
<! forall t (w :: Wrapped). DecCBOR t => Decode w t
From
        forall (w1 :: Wrapped) a t (w :: Density).
Decode w1 (a -> t) -> Decode ('Closed w) a -> Decode w1 t
<! forall t (w :: Wrapped). DecCBOR t => Decode w t
From
        forall (w1 :: Wrapped) a t (w :: Density).
Decode w1 (a -> t) -> Decode ('Closed w) a -> Decode w1 t
<! forall t (w :: Wrapped). DecCBOR t => Decode w t
From
        forall (w1 :: Wrapped) a t (w :: Density).
Decode w1 (a -> t) -> Decode ('Closed w) a -> Decode w1 t
<! forall t (w :: Wrapped). DecCBOR t => Decode w t
From
        forall (w1 :: Wrapped) a t (w :: Density).
Decode w1 (a -> t) -> Decode ('Closed w) a -> Decode w1 t
<! forall t (w :: Wrapped). DecCBOR t => Decode w t
From
        forall (w1 :: Wrapped) a t (w :: Density).
Decode w1 (a -> t) -> Decode ('Closed w) a -> Decode w1 t
<! forall t (w :: Wrapped). DecCBOR t => Decode w t
From
        forall (w1 :: Wrapped) a t (w :: Density).
Decode w1 (a -> t) -> Decode ('Closed w) a -> Decode w1 t
<! forall t (w :: Wrapped). DecCBOR t => Decode w t
From
        forall (w1 :: Wrapped) a t (w :: Density).
Decode w1 (a -> t) -> Decode ('Closed w) a -> Decode w1 t
<! forall t (w :: Wrapped). DecCBOR t => Decode w t
From
        forall (w1 :: Wrapped) a t (w :: Density).
Decode w1 (a -> t) -> Decode ('Closed w) a -> Decode w1 t
<! forall t. (forall s. Decoder s t) -> Decode ('Closed 'Dense) t
D (forall s. Language -> Decoder s CostModel
decodeCostModel Language
PlutusV3)

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

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

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

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

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

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

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

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

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

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

instance Era era => EncCBOR (ConwayPParams Identity era) where
  encCBOR :: ConwayPParams Identity era -> Encoding
encCBOR ConwayPParams {HKDNoUpdate Identity ProtVer
THKD ('PPGroups 'NetworkGroup 'SecurityGroup) Identity Word16
THKD ('PPGroups 'NetworkGroup 'SecurityGroup) Identity Word32
THKD ('PPGroups 'NetworkGroup 'SecurityGroup) Identity OrdExUnits
THKD ('PPGroups 'NetworkGroup 'NoStakePoolGroup) Identity Word16
THKD
  ('PPGroups 'NetworkGroup 'NoStakePoolGroup) Identity OrdExUnits
THKD ('PPGroups 'EconomicGroup 'SecurityGroup) Identity CoinPerByte
THKD ('PPGroups 'EconomicGroup 'SecurityGroup) Identity Coin
THKD
  ('PPGroups 'EconomicGroup 'SecurityGroup)
  Identity
  NonNegativeInterval
THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) Identity Prices
THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) Identity Coin
THKD
  ('PPGroups 'EconomicGroup 'NoStakePoolGroup) Identity UnitInterval
THKD ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) Identity Word16
THKD
  ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) Identity CostModels
THKD
  ('PPGroups 'TechnicalGroup 'NoStakePoolGroup)
  Identity
  NonNegativeInterval
THKD
  ('PPGroups 'TechnicalGroup 'NoStakePoolGroup)
  Identity
  EpochInterval
THKD ('PPGroups 'GovGroup 'SecurityGroup) Identity Coin
THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) Identity Word16
THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) Identity Coin
THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) Identity EpochInterval
THKD
  ('PPGroups 'GovGroup 'NoStakePoolGroup)
  Identity
  DRepVotingThresholds
THKD
  ('PPGroups 'GovGroup 'NoStakePoolGroup)
  Identity
  PoolVotingThresholds
cppMinFeeRefScriptCostPerByte :: THKD
  ('PPGroups 'EconomicGroup 'SecurityGroup)
  Identity
  NonNegativeInterval
cppDRepActivity :: THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) Identity EpochInterval
cppDRepDeposit :: THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) Identity Coin
cppGovActionDeposit :: THKD ('PPGroups 'GovGroup 'SecurityGroup) Identity Coin
cppGovActionLifetime :: THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) Identity EpochInterval
cppCommitteeMaxTermLength :: THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) Identity EpochInterval
cppCommitteeMinSize :: THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) Identity Word16
cppDRepVotingThresholds :: THKD
  ('PPGroups 'GovGroup 'NoStakePoolGroup)
  Identity
  DRepVotingThresholds
cppPoolVotingThresholds :: THKD
  ('PPGroups 'GovGroup 'NoStakePoolGroup)
  Identity
  PoolVotingThresholds
cppMaxCollateralInputs :: THKD ('PPGroups 'NetworkGroup 'NoStakePoolGroup) Identity Word16
cppCollateralPercentage :: THKD ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) Identity Word16
cppMaxValSize :: THKD ('PPGroups 'NetworkGroup 'SecurityGroup) Identity Word32
cppMaxBlockExUnits :: THKD ('PPGroups 'NetworkGroup 'SecurityGroup) Identity OrdExUnits
cppMaxTxExUnits :: THKD
  ('PPGroups 'NetworkGroup 'NoStakePoolGroup) Identity OrdExUnits
cppPrices :: THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) Identity Prices
cppCostModels :: THKD
  ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) Identity CostModels
cppCoinsPerUTxOByte :: THKD ('PPGroups 'EconomicGroup 'SecurityGroup) Identity CoinPerByte
cppMinPoolCost :: THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) Identity Coin
cppProtocolVersion :: HKDNoUpdate Identity ProtVer
cppTau :: THKD
  ('PPGroups 'EconomicGroup 'NoStakePoolGroup) Identity UnitInterval
cppRho :: THKD
  ('PPGroups 'EconomicGroup 'NoStakePoolGroup) Identity UnitInterval
cppA0 :: THKD
  ('PPGroups 'TechnicalGroup 'NoStakePoolGroup)
  Identity
  NonNegativeInterval
cppNOpt :: THKD ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) Identity Word16
cppEMax :: THKD
  ('PPGroups 'TechnicalGroup 'NoStakePoolGroup)
  Identity
  EpochInterval
cppPoolDeposit :: THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) Identity Coin
cppKeyDeposit :: THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) Identity Coin
cppMaxBHSize :: THKD ('PPGroups 'NetworkGroup 'SecurityGroup) Identity Word16
cppMaxTxSize :: THKD ('PPGroups 'NetworkGroup 'SecurityGroup) Identity Word32
cppMaxBBSize :: THKD ('PPGroups 'NetworkGroup 'SecurityGroup) Identity Word32
cppMinFeeB :: THKD ('PPGroups 'EconomicGroup 'SecurityGroup) Identity Coin
cppMinFeeA :: THKD ('PPGroups 'EconomicGroup 'SecurityGroup) Identity Coin
cppMinFeeRefScriptCostPerByte :: forall (f :: * -> *) era.
ConwayPParams f era
-> THKD
     ('PPGroups 'EconomicGroup 'SecurityGroup) f NonNegativeInterval
cppDRepActivity :: forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f EpochInterval
cppDRepDeposit :: forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f Coin
cppGovActionDeposit :: forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'GovGroup 'SecurityGroup) f Coin
cppGovActionLifetime :: forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f EpochInterval
cppCommitteeMaxTermLength :: forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f EpochInterval
cppCommitteeMinSize :: forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f Word16
cppDRepVotingThresholds :: forall (f :: * -> *) era.
ConwayPParams f era
-> THKD
     ('PPGroups 'GovGroup 'NoStakePoolGroup) f DRepVotingThresholds
cppPoolVotingThresholds :: forall (f :: * -> *) era.
ConwayPParams f era
-> THKD
     ('PPGroups 'GovGroup 'NoStakePoolGroup) f PoolVotingThresholds
cppMaxCollateralInputs :: forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'NetworkGroup 'NoStakePoolGroup) f Word16
cppCollateralPercentage :: forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f Word16
cppMaxValSize :: forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f Word32
cppMaxBlockExUnits :: forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f OrdExUnits
cppMaxTxExUnits :: forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'NetworkGroup 'NoStakePoolGroup) f OrdExUnits
cppPrices :: forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f Prices
cppCostModels :: forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f CostModels
cppCoinsPerUTxOByte :: forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'EconomicGroup 'SecurityGroup) f CoinPerByte
cppMinPoolCost :: forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f Coin
cppProtocolVersion :: forall (f :: * -> *) era.
ConwayPParams f era -> HKDNoUpdate f ProtVer
cppTau :: forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f UnitInterval
cppRho :: forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f UnitInterval
cppA0 :: forall (f :: * -> *) era.
ConwayPParams f era
-> THKD
     ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f NonNegativeInterval
cppNOpt :: forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f Word16
cppEMax :: forall (f :: * -> *) era.
ConwayPParams f era
-> THKD
     ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f EpochInterval
cppPoolDeposit :: forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f Coin
cppKeyDeposit :: forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f Coin
cppMaxBHSize :: forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f Word16
cppMaxTxSize :: forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f Word32
cppMaxBBSize :: forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f Word32
cppMinFeeB :: forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'EconomicGroup 'SecurityGroup) f Coin
cppMinFeeA :: forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'EconomicGroup 'SecurityGroup) f Coin
..} =
    forall (w :: Wrapped) t. Encode w t -> Encoding
encode forall a b. (a -> b) -> a -> b
$
      forall t. t -> Encode ('Closed 'Dense) t
Rec (forall (f :: * -> *) era.
THKD ('PPGroups 'EconomicGroup 'SecurityGroup) f Coin
-> THKD ('PPGroups 'EconomicGroup 'SecurityGroup) f Coin
-> THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f Word32
-> THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f Word32
-> THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f Word16
-> THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f Coin
-> THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f Coin
-> THKD
     ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f EpochInterval
-> THKD ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f Word16
-> THKD
     ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f NonNegativeInterval
-> THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f UnitInterval
-> THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f UnitInterval
-> HKDNoUpdate f ProtVer
-> THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f Coin
-> THKD ('PPGroups 'EconomicGroup 'SecurityGroup) f CoinPerByte
-> THKD ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f CostModels
-> THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f Prices
-> THKD ('PPGroups 'NetworkGroup 'NoStakePoolGroup) f OrdExUnits
-> THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f OrdExUnits
-> THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f Word32
-> THKD ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f Word16
-> THKD ('PPGroups 'NetworkGroup 'NoStakePoolGroup) f Word16
-> THKD
     ('PPGroups 'GovGroup 'NoStakePoolGroup) f PoolVotingThresholds
-> THKD
     ('PPGroups 'GovGroup 'NoStakePoolGroup) f DRepVotingThresholds
-> THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f Word16
-> THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f EpochInterval
-> THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f EpochInterval
-> THKD ('PPGroups 'GovGroup 'SecurityGroup) f Coin
-> THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f Coin
-> THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f EpochInterval
-> THKD
     ('PPGroups 'EconomicGroup 'SecurityGroup) f NonNegativeInterval
-> ConwayPParams f era
ConwayPParams @Identity)
        forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode ('Closed r) a -> Encode w t
!> forall t. EncCBOR t => t -> Encode ('Closed 'Dense) t
To THKD ('PPGroups 'EconomicGroup 'SecurityGroup) Identity Coin
cppMinFeeA
        forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode ('Closed r) a -> Encode w t
!> forall t. EncCBOR t => t -> Encode ('Closed 'Dense) t
To THKD ('PPGroups 'EconomicGroup 'SecurityGroup) Identity Coin
cppMinFeeB
        forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode ('Closed r) a -> Encode w t
!> forall t. EncCBOR t => t -> Encode ('Closed 'Dense) t
To THKD ('PPGroups 'NetworkGroup 'SecurityGroup) Identity Word32
cppMaxBBSize
        forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode ('Closed r) a -> Encode w t
!> forall t. EncCBOR t => t -> Encode ('Closed 'Dense) t
To THKD ('PPGroups 'NetworkGroup 'SecurityGroup) Identity Word32
cppMaxTxSize
        forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode ('Closed r) a -> Encode w t
!> forall t. EncCBOR t => t -> Encode ('Closed 'Dense) t
To THKD ('PPGroups 'NetworkGroup 'SecurityGroup) Identity Word16
cppMaxBHSize
        forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode ('Closed r) a -> Encode w t
!> forall t. EncCBOR t => t -> Encode ('Closed 'Dense) t
To THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) Identity Coin
cppKeyDeposit
        forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode ('Closed r) a -> Encode w t
!> forall t. EncCBOR t => t -> Encode ('Closed 'Dense) t
To THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) Identity Coin
cppPoolDeposit
        forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode ('Closed r) a -> Encode w t
!> forall t. EncCBOR t => t -> Encode ('Closed 'Dense) t
To THKD
  ('PPGroups 'TechnicalGroup 'NoStakePoolGroup)
  Identity
  EpochInterval
cppEMax
        forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode ('Closed r) a -> Encode w t
!> forall t. EncCBOR t => t -> Encode ('Closed 'Dense) t
To THKD ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) Identity Word16
cppNOpt
        forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode ('Closed r) a -> Encode w t
!> forall t. EncCBOR t => t -> Encode ('Closed 'Dense) t
To THKD
  ('PPGroups 'TechnicalGroup 'NoStakePoolGroup)
  Identity
  NonNegativeInterval
cppA0
        forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode ('Closed r) a -> Encode w t
!> forall t. EncCBOR t => t -> Encode ('Closed 'Dense) t
To THKD
  ('PPGroups 'EconomicGroup 'NoStakePoolGroup) Identity UnitInterval
cppRho
        forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode ('Closed r) a -> Encode w t
!> forall t. EncCBOR t => t -> Encode ('Closed 'Dense) t
To THKD
  ('PPGroups 'EconomicGroup 'NoStakePoolGroup) Identity UnitInterval
cppTau
        forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode ('Closed r) a -> Encode w t
!> forall t. EncCBOR t => t -> Encode ('Closed 'Dense) t
To HKDNoUpdate Identity ProtVer
cppProtocolVersion
        forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode ('Closed r) a -> Encode w t
!> forall t. EncCBOR t => t -> Encode ('Closed 'Dense) t
To THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) Identity Coin
cppMinPoolCost
        forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode ('Closed r) a -> Encode w t
!> forall t. EncCBOR t => t -> Encode ('Closed 'Dense) t
To THKD ('PPGroups 'EconomicGroup 'SecurityGroup) Identity CoinPerByte
cppCoinsPerUTxOByte
        forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode ('Closed r) a -> Encode w t
!> forall t. EncCBOR t => t -> Encode ('Closed 'Dense) t
To THKD
  ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) Identity CostModels
cppCostModels
        forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode ('Closed r) a -> Encode w t
!> forall t. EncCBOR t => t -> Encode ('Closed 'Dense) t
To THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) Identity Prices
cppPrices
        forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode ('Closed r) a -> Encode w t
!> forall t. EncCBOR t => t -> Encode ('Closed 'Dense) t
To THKD
  ('PPGroups 'NetworkGroup 'NoStakePoolGroup) Identity OrdExUnits
cppMaxTxExUnits
        forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode ('Closed r) a -> Encode w t
!> forall t. EncCBOR t => t -> Encode ('Closed 'Dense) t
To THKD ('PPGroups 'NetworkGroup 'SecurityGroup) Identity OrdExUnits
cppMaxBlockExUnits
        forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode ('Closed r) a -> Encode w t
!> forall t. EncCBOR t => t -> Encode ('Closed 'Dense) t
To THKD ('PPGroups 'NetworkGroup 'SecurityGroup) Identity Word32
cppMaxValSize
        forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode ('Closed r) a -> Encode w t
!> forall t. EncCBOR t => t -> Encode ('Closed 'Dense) t
To THKD ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) Identity Word16
cppCollateralPercentage
        forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode ('Closed r) a -> Encode w t
!> forall t. EncCBOR t => t -> Encode ('Closed 'Dense) t
To THKD ('PPGroups 'NetworkGroup 'NoStakePoolGroup) Identity Word16
cppMaxCollateralInputs
        -- New for Conway
        forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode ('Closed r) a -> Encode w t
!> forall t. EncCBOR t => t -> Encode ('Closed 'Dense) t
To THKD
  ('PPGroups 'GovGroup 'NoStakePoolGroup)
  Identity
  PoolVotingThresholds
cppPoolVotingThresholds
        forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode ('Closed r) a -> Encode w t
!> forall t. EncCBOR t => t -> Encode ('Closed 'Dense) t
To THKD
  ('PPGroups 'GovGroup 'NoStakePoolGroup)
  Identity
  DRepVotingThresholds
cppDRepVotingThresholds
        forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode ('Closed r) a -> Encode w t
!> forall t. EncCBOR t => t -> Encode ('Closed 'Dense) t
To THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) Identity Word16
cppCommitteeMinSize
        forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode ('Closed r) a -> Encode w t
!> forall t. EncCBOR t => t -> Encode ('Closed 'Dense) t
To THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) Identity EpochInterval
cppCommitteeMaxTermLength
        forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode ('Closed r) a -> Encode w t
!> forall t. EncCBOR t => t -> Encode ('Closed 'Dense) t
To THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) Identity EpochInterval
cppGovActionLifetime
        forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode ('Closed r) a -> Encode w t
!> forall t. EncCBOR t => t -> Encode ('Closed 'Dense) t
To THKD ('PPGroups 'GovGroup 'SecurityGroup) Identity Coin
cppGovActionDeposit
        forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode ('Closed r) a -> Encode w t
!> forall t. EncCBOR t => t -> Encode ('Closed 'Dense) t
To THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) Identity Coin
cppDRepDeposit
        forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode ('Closed r) a -> Encode w t
!> forall t. EncCBOR t => t -> Encode ('Closed 'Dense) t
To THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) Identity EpochInterval
cppDRepActivity
        forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode ('Closed r) a -> Encode w t
!> forall t. EncCBOR t => t -> Encode ('Closed 'Dense) t
To THKD
  ('PPGroups 'EconomicGroup 'SecurityGroup)
  Identity
  NonNegativeInterval
cppMinFeeRefScriptCostPerByte

instance Era era => ToCBOR (ConwayPParams Identity era) where
  toCBOR :: ConwayPParams Identity era -> Encoding
toCBOR = forall era t. (Era era, EncCBOR t) => t -> Encoding
toEraCBOR @era

instance Era era => DecCBOR (ConwayPParams Identity era) where
  decCBOR :: forall s. Decoder s (ConwayPParams Identity era)
decCBOR =
    forall (w :: Wrapped) t s. Decode w t -> Decoder s t
decode forall a b. (a -> b) -> a -> b
$
      forall t. t -> Decode ('Closed 'Dense) t
RecD (forall (f :: * -> *) era.
THKD ('PPGroups 'EconomicGroup 'SecurityGroup) f Coin
-> THKD ('PPGroups 'EconomicGroup 'SecurityGroup) f Coin
-> THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f Word32
-> THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f Word32
-> THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f Word16
-> THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f Coin
-> THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f Coin
-> THKD
     ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f EpochInterval
-> THKD ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f Word16
-> THKD
     ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f NonNegativeInterval
-> THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f UnitInterval
-> THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f UnitInterval
-> HKDNoUpdate f ProtVer
-> THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f Coin
-> THKD ('PPGroups 'EconomicGroup 'SecurityGroup) f CoinPerByte
-> THKD ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f CostModels
-> THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f Prices
-> THKD ('PPGroups 'NetworkGroup 'NoStakePoolGroup) f OrdExUnits
-> THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f OrdExUnits
-> THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f Word32
-> THKD ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f Word16
-> THKD ('PPGroups 'NetworkGroup 'NoStakePoolGroup) f Word16
-> THKD
     ('PPGroups 'GovGroup 'NoStakePoolGroup) f PoolVotingThresholds
-> THKD
     ('PPGroups 'GovGroup 'NoStakePoolGroup) f DRepVotingThresholds
-> THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f Word16
-> THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f EpochInterval
-> THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f EpochInterval
-> THKD ('PPGroups 'GovGroup 'SecurityGroup) f Coin
-> THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f Coin
-> THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f EpochInterval
-> THKD
     ('PPGroups 'EconomicGroup 'SecurityGroup) f NonNegativeInterval
-> ConwayPParams f era
ConwayPParams @Identity)
        forall (w1 :: Wrapped) a t (w :: Density).
Decode w1 (a -> t) -> Decode ('Closed w) a -> Decode w1 t
<! forall t (w :: Wrapped). DecCBOR t => Decode w t
From
        forall (w1 :: Wrapped) a t (w :: Density).
Decode w1 (a -> t) -> Decode ('Closed w) a -> Decode w1 t
<! forall t (w :: Wrapped). DecCBOR t => Decode w t
From
        forall (w1 :: Wrapped) a t (w :: Density).
Decode w1 (a -> t) -> Decode ('Closed w) a -> Decode w1 t
<! forall t (w :: Wrapped). DecCBOR t => Decode w t
From
        forall (w1 :: Wrapped) a t (w :: Density).
Decode w1 (a -> t) -> Decode ('Closed w) a -> Decode w1 t
<! forall t (w :: Wrapped). DecCBOR t => Decode w t
From
        forall (w1 :: Wrapped) a t (w :: Density).
Decode w1 (a -> t) -> Decode ('Closed w) a -> Decode w1 t
<! forall t (w :: Wrapped). DecCBOR t => Decode w t
From
        forall (w1 :: Wrapped) a t (w :: Density).
Decode w1 (a -> t) -> Decode ('Closed w) a -> Decode w1 t
<! forall t (w :: Wrapped). DecCBOR t => Decode w t
From
        forall (w1 :: Wrapped) a t (w :: Density).
Decode w1 (a -> t) -> Decode ('Closed w) a -> Decode w1 t
<! forall t (w :: Wrapped). DecCBOR t => Decode w t
From
        forall (w1 :: Wrapped) a t (w :: Density).
Decode w1 (a -> t) -> Decode ('Closed w) a -> Decode w1 t
<! forall t (w :: Wrapped). DecCBOR t => Decode w t
From
        forall (w1 :: Wrapped) a t (w :: Density).
Decode w1 (a -> t) -> Decode ('Closed w) a -> Decode w1 t
<! forall t (w :: Wrapped). DecCBOR t => Decode w t
From
        forall (w1 :: Wrapped) a t (w :: Density).
Decode w1 (a -> t) -> Decode ('Closed w) a -> Decode w1 t
<! forall t (w :: Wrapped). DecCBOR t => Decode w t
From
        forall (w1 :: Wrapped) a t (w :: Density).
Decode w1 (a -> t) -> Decode ('Closed w) a -> Decode w1 t
<! forall t (w :: Wrapped). DecCBOR t => Decode w t
From
        forall (w1 :: Wrapped) a t (w :: Density).
Decode w1 (a -> t) -> Decode ('Closed w) a -> Decode w1 t
<! forall t (w :: Wrapped). DecCBOR t => Decode w t
From
        forall (w1 :: Wrapped) a t (w :: Density).
Decode w1 (a -> t) -> Decode ('Closed w) a -> Decode w1 t
<! forall t (w :: Wrapped). DecCBOR t => Decode w t
From
        forall (w1 :: Wrapped) a t (w :: Density).
Decode w1 (a -> t) -> Decode ('Closed w) a -> Decode w1 t
<! forall t (w :: Wrapped). DecCBOR t => Decode w t
From
        forall (w1 :: Wrapped) a t (w :: Density).
Decode w1 (a -> t) -> Decode ('Closed w) a -> Decode w1 t
<! forall t (w :: Wrapped). DecCBOR t => Decode w t
From
        forall (w1 :: Wrapped) a t (w :: Density).
Decode w1 (a -> t) -> Decode ('Closed w) a -> Decode w1 t
<! forall t (w :: Wrapped). DecCBOR t => Decode w t
From
        forall (w1 :: Wrapped) a t (w :: Density).
Decode w1 (a -> t) -> Decode ('Closed w) a -> Decode w1 t
<! forall t (w :: Wrapped). DecCBOR t => Decode w t
From
        forall (w1 :: Wrapped) a t (w :: Density).
Decode w1 (a -> t) -> Decode ('Closed w) a -> Decode w1 t
<! forall t (w :: Wrapped). DecCBOR t => Decode w t
From
        forall (w1 :: Wrapped) a t (w :: Density).
Decode w1 (a -> t) -> Decode ('Closed w) a -> Decode w1 t
<! forall t (w :: Wrapped). DecCBOR t => Decode w t
From
        forall (w1 :: Wrapped) a t (w :: Density).
Decode w1 (a -> t) -> Decode ('Closed w) a -> Decode w1 t
<! forall t (w :: Wrapped). DecCBOR t => Decode w t
From
        forall (w1 :: Wrapped) a t (w :: Density).
Decode w1 (a -> t) -> Decode ('Closed w) a -> Decode w1 t
<! forall t (w :: Wrapped). DecCBOR t => Decode w t
From
        forall (w1 :: Wrapped) a t (w :: Density).
Decode w1 (a -> t) -> Decode ('Closed w) a -> Decode w1 t
<! forall t (w :: Wrapped). DecCBOR t => Decode w t
From
        --  -- New for Conway
        forall (w1 :: Wrapped) a t (w :: Density).
Decode w1 (a -> t) -> Decode ('Closed w) a -> Decode w1 t
<! forall t (w :: Wrapped). DecCBOR t => Decode w t
From
        forall (w1 :: Wrapped) a t (w :: Density).
Decode w1 (a -> t) -> Decode ('Closed w) a -> Decode w1 t
<! forall t (w :: Wrapped). DecCBOR t => Decode w t
From
        forall (w1 :: Wrapped) a t (w :: Density).
Decode w1 (a -> t) -> Decode ('Closed w) a -> Decode w1 t
<! forall t (w :: Wrapped). DecCBOR t => Decode w t
From
        forall (w1 :: Wrapped) a t (w :: Density).
Decode w1 (a -> t) -> Decode ('Closed w) a -> Decode w1 t
<! forall t (w :: Wrapped). DecCBOR t => Decode w t
From
        forall (w1 :: Wrapped) a t (w :: Density).
Decode w1 (a -> t) -> Decode ('Closed w) a -> Decode w1 t
<! forall t (w :: Wrapped). DecCBOR t => Decode w t
From
        forall (w1 :: Wrapped) a t (w :: Density).
Decode w1 (a -> t) -> Decode ('Closed w) a -> Decode w1 t
<! forall t (w :: Wrapped). DecCBOR t => Decode w t
From
        forall (w1 :: Wrapped) a t (w :: Density).
Decode w1 (a -> t) -> Decode ('Closed w) a -> Decode w1 t
<! forall t (w :: Wrapped). DecCBOR t => Decode w t
From
        forall (w1 :: Wrapped) a t (w :: Density).
Decode w1 (a -> t) -> Decode ('Closed w) a -> Decode w1 t
<! forall t (w :: Wrapped). DecCBOR t => Decode w t
From
        forall (w1 :: Wrapped) a t (w :: Density).
Decode w1 (a -> t) -> Decode ('Closed w) a -> Decode w1 t
<! forall t (w :: Wrapped). DecCBOR t => Decode w t
From

instance Era era => FromCBOR (ConwayPParams Identity era) where
  fromCBOR :: forall s. Decoder s (ConwayPParams Identity era)
fromCBOR = forall era t s. (Era era, DecCBOR t) => Decoder s t
fromEraCBOR @era

instance Crypto c => ToJSON (ConwayPParams Identity (ConwayEra c)) where
  toJSON :: ConwayPParams Identity (ConwayEra c) -> Value
toJSON = [Pair] -> Value
object forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall era a e.
(ConwayEraPParams era, KeyValue e a) =>
PParamsHKD Identity era -> [a]
conwayPParamsPairs
  toEncoding :: ConwayPParams Identity (ConwayEra c) -> Encoding
toEncoding = Series -> Encoding
pairs forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a. Monoid a => [a] -> a
mconcat forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall era a e.
(ConwayEraPParams era, KeyValue e a) =>
PParamsHKD Identity era -> [a]
conwayPParamsPairs

conwayPParamsPairs ::
  forall era a e.
  (ConwayEraPParams era, KeyValue e a) =>
  PParamsHKD Identity era ->
  [a]
conwayPParamsPairs :: forall era a e.
(ConwayEraPParams era, KeyValue e a) =>
PParamsHKD Identity era -> [a]
conwayPParamsPairs PParamsHKD Identity era
pp =
  forall a b c. (a -> b -> c) -> (a, b) -> c
uncurry forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(.=)
    forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> forall era (f :: * -> *).
(ConwayEraPParams era, HKDFunctor f) =>
Proxy f -> PParamsHKD f era -> [(Key, HKD f Value)]
conwayPParamsHKDPairs (forall {k} (t :: k). Proxy t
Proxy @Identity) PParamsHKD Identity era
pp
      forall a. Semigroup a => a -> a -> a
<> [(Key
"protocolVersion", forall a. ToJSON a => a -> Value
toJSON forall a b. (a -> b) -> a -> b
$ forall era. PParamsHKD Identity era -> PParams era
PParams PParamsHKD Identity era
pp forall s a. s -> Getting a s a -> a
^. forall era. EraPParams era => Lens' (PParams era) ProtVer
ppProtocolVersionL)]

instance Era era => FromJSON (ConwayPParams Identity era) where
  parseJSON :: Value -> Parser (ConwayPParams Identity era)
parseJSON =
    forall a. String -> (Object -> Parser a) -> Value -> Parser a
withObject String
"ProtocolParameters" forall a b. (a -> b) -> a -> b
$ \Object
obj ->
      forall (f :: * -> *) era.
THKD ('PPGroups 'EconomicGroup 'SecurityGroup) f Coin
-> THKD ('PPGroups 'EconomicGroup 'SecurityGroup) f Coin
-> THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f Word32
-> THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f Word32
-> THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f Word16
-> THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f Coin
-> THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f Coin
-> THKD
     ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f EpochInterval
-> THKD ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f Word16
-> THKD
     ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f NonNegativeInterval
-> THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f UnitInterval
-> THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f UnitInterval
-> HKDNoUpdate f ProtVer
-> THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f Coin
-> THKD ('PPGroups 'EconomicGroup 'SecurityGroup) f CoinPerByte
-> THKD ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f CostModels
-> THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f Prices
-> THKD ('PPGroups 'NetworkGroup 'NoStakePoolGroup) f OrdExUnits
-> THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f OrdExUnits
-> THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f Word32
-> THKD ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f Word16
-> THKD ('PPGroups 'NetworkGroup 'NoStakePoolGroup) f Word16
-> THKD
     ('PPGroups 'GovGroup 'NoStakePoolGroup) f PoolVotingThresholds
-> THKD
     ('PPGroups 'GovGroup 'NoStakePoolGroup) f DRepVotingThresholds
-> THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f Word16
-> THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f EpochInterval
-> THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f EpochInterval
-> THKD ('PPGroups 'GovGroup 'SecurityGroup) f Coin
-> THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f Coin
-> THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f EpochInterval
-> THKD
     ('PPGroups 'EconomicGroup 'SecurityGroup) f NonNegativeInterval
-> ConwayPParams f era
ConwayPParams
        forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
obj forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"txFeePerByte"
        forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
obj forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"txFeeFixed"
        forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
obj forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"maxBlockBodySize"
        forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
obj forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"maxTxSize"
        forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
obj forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"maxBlockHeaderSize"
        forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
obj forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"stakeAddressDeposit"
        forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
obj forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"stakePoolDeposit"
        forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
obj forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"poolRetireMaxEpoch"
        forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
obj forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"stakePoolTargetNum"
        forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
obj forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"poolPledgeInfluence"
        forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
obj forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"monetaryExpansion"
        forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
obj forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"treasuryCut"
        forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
obj forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"protocolVersion"
        forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
obj forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"minPoolCost" forall a. Parser (Maybe a) -> a -> Parser a
.!= forall a. Monoid a => a
mempty
        forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
obj forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"utxoCostPerByte"
        forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
obj forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"costModels"
        forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
obj forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"executionUnitPrices"
        forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
obj forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"maxTxExecutionUnits"
        forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
obj forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"maxBlockExecutionUnits"
        forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
obj forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"maxValueSize"
        forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
obj forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"collateralPercentage"
        forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
obj forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"maxCollateralInputs"
        forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
obj forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"poolVotingThresholds"
        forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
obj forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"dRepVotingThresholds"
        forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
obj forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"committeeMinSize"
        forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
obj forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"committeeMaxTermLength"
        forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
obj forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"govActionLifetime"
        forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
obj forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"govActionDeposit"
        forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
obj forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"dRepDeposit"
        forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
obj forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"dRepActivity"
        forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
obj forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"minFeeRefScriptCostPerByte"

-- | 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 = 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 = 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 = forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD Word32
0
    , cppMaxTxSize :: THKD ('PPGroups 'NetworkGroup 'SecurityGroup) Identity Word32
cppMaxTxSize = forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD Word32
2048
    , cppMaxBHSize :: THKD ('PPGroups 'NetworkGroup 'SecurityGroup) Identity Word16
cppMaxBHSize = forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD Word16
0
    , cppKeyDeposit :: THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) Identity Coin
cppKeyDeposit = 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 = 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 = 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 = forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD Word16
100
    , cppA0 :: THKD
  ('PPGroups 'TechnicalGroup 'NoStakePoolGroup)
  Identity
  NonNegativeInterval
cppA0 = forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD forall a. Bounded a => a
minBound
    , cppRho :: THKD
  ('PPGroups 'EconomicGroup 'NoStakePoolGroup) Identity UnitInterval
cppRho = forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD forall a. Bounded a => a
minBound
    , cppTau :: THKD
  ('PPGroups 'EconomicGroup 'NoStakePoolGroup) Identity UnitInterval
cppTau = forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD 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 = forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD forall a. Monoid a => a
mempty
    , cppCoinsPerUTxOByte :: THKD ('PPGroups 'EconomicGroup 'SecurityGroup) Identity CoinPerByte
cppCoinsPerUTxOByte = forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD (Coin -> CoinPerByte
CoinPerByte forall a b. (a -> b) -> a -> b
$ Integer -> Coin
Coin Integer
0)
    , cppCostModels :: THKD
  ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) Identity CostModels
cppCostModels = forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD CostModels
emptyCostModels
    , cppPrices :: THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) Identity Prices
cppPrices = forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD (NonNegativeInterval -> NonNegativeInterval -> Prices
Prices forall a. Bounded a => a
minBound forall a. Bounded a => a
minBound)
    , cppMaxTxExUnits :: THKD
  ('PPGroups 'NetworkGroup 'NoStakePoolGroup) Identity OrdExUnits
cppMaxTxExUnits = forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD (ExUnits -> OrdExUnits
OrdExUnits forall a b. (a -> b) -> a -> b
$ Natural -> Natural -> ExUnits
ExUnits Natural
0 Natural
0)
    , cppMaxBlockExUnits :: THKD ('PPGroups 'NetworkGroup 'SecurityGroup) Identity OrdExUnits
cppMaxBlockExUnits = forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD (ExUnits -> OrdExUnits
OrdExUnits forall a b. (a -> b) -> a -> b
$ Natural -> Natural -> ExUnits
ExUnits Natural
0 Natural
0)
    , cppMaxValSize :: THKD ('PPGroups 'NetworkGroup 'SecurityGroup) Identity Word32
cppMaxValSize = forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD Word32
0
    , cppCollateralPercentage :: THKD ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) Identity Word16
cppCollateralPercentage = forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD Word16
150
    , cppMaxCollateralInputs :: THKD ('PPGroups 'NetworkGroup 'NoStakePoolGroup) Identity Word16
cppMaxCollateralInputs = forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD Word16
5
    , -- New in Conway
      cppPoolVotingThresholds :: THKD
  ('PPGroups 'GovGroup 'NoStakePoolGroup)
  Identity
  PoolVotingThresholds
cppPoolVotingThresholds = forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD forall a. Default a => a
def
    , cppDRepVotingThresholds :: THKD
  ('PPGroups 'GovGroup 'NoStakePoolGroup)
  Identity
  DRepVotingThresholds
cppDRepVotingThresholds = forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD forall a. Default a => a
def
    , cppCommitteeMinSize :: THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) Identity Word16
cppCommitteeMinSize = forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD Word16
0
    , cppCommitteeMaxTermLength :: THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) Identity EpochInterval
cppCommitteeMaxTermLength = 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 = 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 = 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 = 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 = 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 = forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD 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 = forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD forall a. StrictMaybe a
SNothing
    , cppMinFeeB :: THKD ('PPGroups 'EconomicGroup 'SecurityGroup) StrictMaybe Coin
cppMinFeeB = forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD forall a. StrictMaybe a
SNothing
    , cppMaxBBSize :: THKD ('PPGroups 'NetworkGroup 'SecurityGroup) StrictMaybe Word32
cppMaxBBSize = forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD forall a. StrictMaybe a
SNothing
    , cppMaxTxSize :: THKD ('PPGroups 'NetworkGroup 'SecurityGroup) StrictMaybe Word32
cppMaxTxSize = forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD forall a. StrictMaybe a
SNothing
    , cppMaxBHSize :: THKD ('PPGroups 'NetworkGroup 'SecurityGroup) StrictMaybe Word16
cppMaxBHSize = forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD forall a. StrictMaybe a
SNothing
    , cppKeyDeposit :: THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) StrictMaybe Coin
cppKeyDeposit = forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD forall a. StrictMaybe a
SNothing
    , cppPoolDeposit :: THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) StrictMaybe Coin
cppPoolDeposit = forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD forall a. StrictMaybe a
SNothing
    , cppEMax :: THKD
  ('PPGroups 'TechnicalGroup 'NoStakePoolGroup)
  StrictMaybe
  EpochInterval
cppEMax = forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD forall a. StrictMaybe a
SNothing
    , cppNOpt :: THKD
  ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) StrictMaybe Word16
cppNOpt = forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD forall a. StrictMaybe a
SNothing
    , cppA0 :: THKD
  ('PPGroups 'TechnicalGroup 'NoStakePoolGroup)
  StrictMaybe
  NonNegativeInterval
cppA0 = forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD forall a. StrictMaybe a
SNothing
    , cppRho :: THKD
  ('PPGroups 'EconomicGroup 'NoStakePoolGroup)
  StrictMaybe
  UnitInterval
cppRho = forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD forall a. StrictMaybe a
SNothing
    , cppTau :: THKD
  ('PPGroups 'EconomicGroup 'NoStakePoolGroup)
  StrictMaybe
  UnitInterval
cppTau = forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD forall a. StrictMaybe a
SNothing
    , cppProtocolVersion :: HKDNoUpdate StrictMaybe ProtVer
cppProtocolVersion = forall a. NoUpdate a
NoUpdate
    , cppMinPoolCost :: THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) StrictMaybe Coin
cppMinPoolCost = forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD forall a. StrictMaybe a
SNothing
    , cppCoinsPerUTxOByte :: THKD
  ('PPGroups 'EconomicGroup 'SecurityGroup) StrictMaybe CoinPerByte
cppCoinsPerUTxOByte = forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD forall a. StrictMaybe a
SNothing
    , cppCostModels :: THKD
  ('PPGroups 'TechnicalGroup 'NoStakePoolGroup)
  StrictMaybe
  CostModels
cppCostModels = forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD forall a. StrictMaybe a
SNothing
    , cppPrices :: THKD
  ('PPGroups 'EconomicGroup 'NoStakePoolGroup) StrictMaybe Prices
cppPrices = forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD forall a. StrictMaybe a
SNothing
    , cppMaxTxExUnits :: THKD
  ('PPGroups 'NetworkGroup 'NoStakePoolGroup) StrictMaybe OrdExUnits
cppMaxTxExUnits = forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD forall a. StrictMaybe a
SNothing
    , cppMaxBlockExUnits :: THKD
  ('PPGroups 'NetworkGroup 'SecurityGroup) StrictMaybe OrdExUnits
cppMaxBlockExUnits = forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD forall a. StrictMaybe a
SNothing
    , cppMaxValSize :: THKD ('PPGroups 'NetworkGroup 'SecurityGroup) StrictMaybe Word32
cppMaxValSize = forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD forall a. StrictMaybe a
SNothing
    , cppCollateralPercentage :: THKD
  ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) StrictMaybe Word16
cppCollateralPercentage = forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD forall a. StrictMaybe a
SNothing
    , cppMaxCollateralInputs :: THKD ('PPGroups 'NetworkGroup 'NoStakePoolGroup) StrictMaybe Word16
cppMaxCollateralInputs = forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD forall a. StrictMaybe a
SNothing
    , -- New for Conway
      cppPoolVotingThresholds :: THKD
  ('PPGroups 'GovGroup 'NoStakePoolGroup)
  StrictMaybe
  PoolVotingThresholds
cppPoolVotingThresholds = forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD forall a. StrictMaybe a
SNothing
    , cppDRepVotingThresholds :: THKD
  ('PPGroups 'GovGroup 'NoStakePoolGroup)
  StrictMaybe
  DRepVotingThresholds
cppDRepVotingThresholds = forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD forall a. StrictMaybe a
SNothing
    , cppCommitteeMinSize :: THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) StrictMaybe Word16
cppCommitteeMinSize = forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD forall a. StrictMaybe a
SNothing
    , cppCommitteeMaxTermLength :: THKD
  ('PPGroups 'GovGroup 'NoStakePoolGroup) StrictMaybe EpochInterval
cppCommitteeMaxTermLength = forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD forall a. StrictMaybe a
SNothing
    , cppGovActionLifetime :: THKD
  ('PPGroups 'GovGroup 'NoStakePoolGroup) StrictMaybe EpochInterval
cppGovActionLifetime = forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD forall a. StrictMaybe a
SNothing
    , cppGovActionDeposit :: THKD ('PPGroups 'GovGroup 'SecurityGroup) StrictMaybe Coin
cppGovActionDeposit = forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD forall a. StrictMaybe a
SNothing
    , cppDRepDeposit :: THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) StrictMaybe Coin
cppDRepDeposit = forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD forall a. StrictMaybe a
SNothing
    , cppDRepActivity :: THKD
  ('PPGroups 'GovGroup 'NoStakePoolGroup) StrictMaybe EpochInterval
cppDRepActivity = forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD forall a. StrictMaybe a
SNothing
    , cppMinFeeRefScriptCostPerByte :: THKD
  ('PPGroups 'EconomicGroup 'SecurityGroup)
  StrictMaybe
  NonNegativeInterval
cppMinFeeRefScriptCostPerByte = forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD forall a. StrictMaybe a
SNothing
    }

encodePParamsUpdate ::
  ConwayPParams StrictMaybe era ->
  Encode ('Closed 'Sparse) (ConwayPParams StrictMaybe era)
encodePParamsUpdate :: forall era.
ConwayPParams StrictMaybe era
-> Encode ('Closed 'Sparse) (ConwayPParams StrictMaybe era)
encodePParamsUpdate ConwayPParams StrictMaybe era
ppu =
  forall t. t -> Encode ('Closed 'Sparse) t
Keyed forall (f :: * -> *) era.
THKD ('PPGroups 'EconomicGroup 'SecurityGroup) f Coin
-> THKD ('PPGroups 'EconomicGroup 'SecurityGroup) f Coin
-> THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f Word32
-> THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f Word32
-> THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f Word16
-> THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f Coin
-> THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f Coin
-> THKD
     ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f EpochInterval
-> THKD ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f Word16
-> THKD
     ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f NonNegativeInterval
-> THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f UnitInterval
-> THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f UnitInterval
-> HKDNoUpdate f ProtVer
-> THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f Coin
-> THKD ('PPGroups 'EconomicGroup 'SecurityGroup) f CoinPerByte
-> THKD ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f CostModels
-> THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f Prices
-> THKD ('PPGroups 'NetworkGroup 'NoStakePoolGroup) f OrdExUnits
-> THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f OrdExUnits
-> THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f Word32
-> THKD ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f Word16
-> THKD ('PPGroups 'NetworkGroup 'NoStakePoolGroup) f Word16
-> THKD
     ('PPGroups 'GovGroup 'NoStakePoolGroup) f PoolVotingThresholds
-> THKD
     ('PPGroups 'GovGroup 'NoStakePoolGroup) f DRepVotingThresholds
-> THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f Word16
-> THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f EpochInterval
-> THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f EpochInterval
-> THKD ('PPGroups 'GovGroup 'SecurityGroup) f Coin
-> THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f Coin
-> THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f EpochInterval
-> THKD
     ('PPGroups 'EconomicGroup 'SecurityGroup) f NonNegativeInterval
-> ConwayPParams f era
ConwayPParams
    forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode ('Closed r) a -> Encode w t
!> forall (t :: PPGroups) a.
Word
-> THKD t StrictMaybe a
-> (a -> Encoding)
-> Encode ('Closed 'Sparse) (THKD t StrictMaybe a)
omitStrictMaybe Word
0 (forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'EconomicGroup 'SecurityGroup) f Coin
cppMinFeeA ConwayPParams StrictMaybe era
ppu) forall a. EncCBOR a => a -> Encoding
encCBOR
    forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode ('Closed r) a -> Encode w t
!> forall (t :: PPGroups) a.
Word
-> THKD t StrictMaybe a
-> (a -> Encoding)
-> Encode ('Closed 'Sparse) (THKD t StrictMaybe a)
omitStrictMaybe Word
1 (forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'EconomicGroup 'SecurityGroup) f Coin
cppMinFeeB ConwayPParams StrictMaybe era
ppu) forall a. EncCBOR a => a -> Encoding
encCBOR
    forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode ('Closed r) a -> Encode w t
!> forall (t :: PPGroups) a.
Word
-> THKD t StrictMaybe a
-> (a -> Encoding)
-> Encode ('Closed 'Sparse) (THKD t StrictMaybe a)
omitStrictMaybe Word
2 (forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f Word32
cppMaxBBSize ConwayPParams StrictMaybe era
ppu) forall a. EncCBOR a => a -> Encoding
encCBOR
    forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode ('Closed r) a -> Encode w t
!> forall (t :: PPGroups) a.
Word
-> THKD t StrictMaybe a
-> (a -> Encoding)
-> Encode ('Closed 'Sparse) (THKD t StrictMaybe a)
omitStrictMaybe Word
3 (forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f Word32
cppMaxTxSize ConwayPParams StrictMaybe era
ppu) forall a. EncCBOR a => a -> Encoding
encCBOR
    forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode ('Closed r) a -> Encode w t
!> forall (t :: PPGroups) a.
Word
-> THKD t StrictMaybe a
-> (a -> Encoding)
-> Encode ('Closed 'Sparse) (THKD t StrictMaybe a)
omitStrictMaybe Word
4 (forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f Word16
cppMaxBHSize ConwayPParams StrictMaybe era
ppu) forall a. EncCBOR a => a -> Encoding
encCBOR
    forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode ('Closed r) a -> Encode w t
!> forall (t :: PPGroups) a.
Word
-> THKD t StrictMaybe a
-> (a -> Encoding)
-> Encode ('Closed 'Sparse) (THKD t StrictMaybe a)
omitStrictMaybe Word
5 (forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f Coin
cppKeyDeposit ConwayPParams StrictMaybe era
ppu) forall a. EncCBOR a => a -> Encoding
encCBOR
    forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode ('Closed r) a -> Encode w t
!> forall (t :: PPGroups) a.
Word
-> THKD t StrictMaybe a
-> (a -> Encoding)
-> Encode ('Closed 'Sparse) (THKD t StrictMaybe a)
omitStrictMaybe Word
6 (forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f Coin
cppPoolDeposit ConwayPParams StrictMaybe era
ppu) forall a. EncCBOR a => a -> Encoding
encCBOR
    forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode ('Closed r) a -> Encode w t
!> forall (t :: PPGroups) a.
Word
-> THKD t StrictMaybe a
-> (a -> Encoding)
-> Encode ('Closed 'Sparse) (THKD t StrictMaybe a)
omitStrictMaybe Word
7 (forall (f :: * -> *) era.
ConwayPParams f era
-> THKD
     ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f EpochInterval
cppEMax ConwayPParams StrictMaybe era
ppu) forall a. EncCBOR a => a -> Encoding
encCBOR
    forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode ('Closed r) a -> Encode w t
!> forall (t :: PPGroups) a.
Word
-> THKD t StrictMaybe a
-> (a -> Encoding)
-> Encode ('Closed 'Sparse) (THKD t StrictMaybe a)
omitStrictMaybe Word
8 (forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f Word16
cppNOpt ConwayPParams StrictMaybe era
ppu) forall a. EncCBOR a => a -> Encoding
encCBOR
    forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode ('Closed r) a -> Encode w t
!> forall (t :: PPGroups) a.
Word
-> THKD t StrictMaybe a
-> (a -> Encoding)
-> Encode ('Closed 'Sparse) (THKD t StrictMaybe a)
omitStrictMaybe Word
9 (forall (f :: * -> *) era.
ConwayPParams f era
-> THKD
     ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f NonNegativeInterval
cppA0 ConwayPParams StrictMaybe era
ppu) forall a. EncCBOR a => a -> Encoding
encCBOR
    forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode ('Closed r) a -> Encode w t
!> forall (t :: PPGroups) a.
Word
-> THKD t StrictMaybe a
-> (a -> Encoding)
-> Encode ('Closed 'Sparse) (THKD t StrictMaybe a)
omitStrictMaybe Word
10 (forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f UnitInterval
cppRho ConwayPParams StrictMaybe era
ppu) forall a. EncCBOR a => a -> Encoding
encCBOR
    forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode ('Closed r) a -> Encode w t
!> forall (t :: PPGroups) a.
Word
-> THKD t StrictMaybe a
-> (a -> Encoding)
-> Encode ('Closed 'Sparse) (THKD t StrictMaybe a)
omitStrictMaybe Word
11 (forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f UnitInterval
cppTau ConwayPParams StrictMaybe era
ppu) forall a. EncCBOR a => a -> Encoding
encCBOR
    forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode ('Closed r) a -> Encode w t
!> forall t (w :: Wrapped). t -> Encode w t
OmitC forall a. NoUpdate a
NoUpdate
    forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode ('Closed r) a -> Encode w t
!> forall (t :: PPGroups) a.
Word
-> THKD t StrictMaybe a
-> (a -> Encoding)
-> Encode ('Closed 'Sparse) (THKD t StrictMaybe a)
omitStrictMaybe Word
16 (forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f Coin
cppMinPoolCost ConwayPParams StrictMaybe era
ppu) forall a. EncCBOR a => a -> Encoding
encCBOR
    forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode ('Closed r) a -> Encode w t
!> forall (t :: PPGroups) a.
Word
-> THKD t StrictMaybe a
-> (a -> Encoding)
-> Encode ('Closed 'Sparse) (THKD t StrictMaybe a)
omitStrictMaybe Word
17 (forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'EconomicGroup 'SecurityGroup) f CoinPerByte
cppCoinsPerUTxOByte ConwayPParams StrictMaybe era
ppu) forall a. EncCBOR a => a -> Encoding
encCBOR
    forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode ('Closed r) a -> Encode w t
!> forall (t :: PPGroups) a.
Word
-> THKD t StrictMaybe a
-> (a -> Encoding)
-> Encode ('Closed 'Sparse) (THKD t StrictMaybe a)
omitStrictMaybe Word
18 (forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f CostModels
cppCostModels ConwayPParams StrictMaybe era
ppu) forall a. EncCBOR a => a -> Encoding
encCBOR
    forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode ('Closed r) a -> Encode w t
!> forall (t :: PPGroups) a.
Word
-> THKD t StrictMaybe a
-> (a -> Encoding)
-> Encode ('Closed 'Sparse) (THKD t StrictMaybe a)
omitStrictMaybe Word
19 (forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f Prices
cppPrices ConwayPParams StrictMaybe era
ppu) forall a. EncCBOR a => a -> Encoding
encCBOR
    forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode ('Closed r) a -> Encode w t
!> forall (t :: PPGroups) a.
Word
-> THKD t StrictMaybe a
-> (a -> Encoding)
-> Encode ('Closed 'Sparse) (THKD t StrictMaybe a)
omitStrictMaybe Word
20 (forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'NetworkGroup 'NoStakePoolGroup) f OrdExUnits
cppMaxTxExUnits ConwayPParams StrictMaybe era
ppu) forall a. EncCBOR a => a -> Encoding
encCBOR
    forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode ('Closed r) a -> Encode w t
!> forall (t :: PPGroups) a.
Word
-> THKD t StrictMaybe a
-> (a -> Encoding)
-> Encode ('Closed 'Sparse) (THKD t StrictMaybe a)
omitStrictMaybe Word
21 (forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f OrdExUnits
cppMaxBlockExUnits ConwayPParams StrictMaybe era
ppu) forall a. EncCBOR a => a -> Encoding
encCBOR
    forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode ('Closed r) a -> Encode w t
!> forall (t :: PPGroups) a.
Word
-> THKD t StrictMaybe a
-> (a -> Encoding)
-> Encode ('Closed 'Sparse) (THKD t StrictMaybe a)
omitStrictMaybe Word
22 (forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f Word32
cppMaxValSize ConwayPParams StrictMaybe era
ppu) forall a. EncCBOR a => a -> Encoding
encCBOR
    forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode ('Closed r) a -> Encode w t
!> forall (t :: PPGroups) a.
Word
-> THKD t StrictMaybe a
-> (a -> Encoding)
-> Encode ('Closed 'Sparse) (THKD t StrictMaybe a)
omitStrictMaybe Word
23 (forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f Word16
cppCollateralPercentage ConwayPParams StrictMaybe era
ppu) forall a. EncCBOR a => a -> Encoding
encCBOR
    forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode ('Closed r) a -> Encode w t
!> forall (t :: PPGroups) a.
Word
-> THKD t StrictMaybe a
-> (a -> Encoding)
-> Encode ('Closed 'Sparse) (THKD t StrictMaybe a)
omitStrictMaybe Word
24 (forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'NetworkGroup 'NoStakePoolGroup) f Word16
cppMaxCollateralInputs ConwayPParams StrictMaybe era
ppu) forall a. EncCBOR a => a -> Encoding
encCBOR
    -- New for Conway
    forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode ('Closed r) a -> Encode w t
!> forall (t :: PPGroups) a.
Word
-> THKD t StrictMaybe a
-> (a -> Encoding)
-> Encode ('Closed 'Sparse) (THKD t StrictMaybe a)
omitStrictMaybe Word
25 (forall (f :: * -> *) era.
ConwayPParams f era
-> THKD
     ('PPGroups 'GovGroup 'NoStakePoolGroup) f PoolVotingThresholds
cppPoolVotingThresholds ConwayPParams StrictMaybe era
ppu) forall a. EncCBOR a => a -> Encoding
encCBOR
    forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode ('Closed r) a -> Encode w t
!> forall (t :: PPGroups) a.
Word
-> THKD t StrictMaybe a
-> (a -> Encoding)
-> Encode ('Closed 'Sparse) (THKD t StrictMaybe a)
omitStrictMaybe Word
26 (forall (f :: * -> *) era.
ConwayPParams f era
-> THKD
     ('PPGroups 'GovGroup 'NoStakePoolGroup) f DRepVotingThresholds
cppDRepVotingThresholds ConwayPParams StrictMaybe era
ppu) forall a. EncCBOR a => a -> Encoding
encCBOR
    forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode ('Closed r) a -> Encode w t
!> forall (t :: PPGroups) a.
Word
-> THKD t StrictMaybe a
-> (a -> Encoding)
-> Encode ('Closed 'Sparse) (THKD t StrictMaybe a)
omitStrictMaybe Word
27 (forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f Word16
cppCommitteeMinSize ConwayPParams StrictMaybe era
ppu) forall a. EncCBOR a => a -> Encoding
encCBOR
    forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode ('Closed r) a -> Encode w t
!> forall (t :: PPGroups) a.
Word
-> THKD t StrictMaybe a
-> (a -> Encoding)
-> Encode ('Closed 'Sparse) (THKD t StrictMaybe a)
omitStrictMaybe Word
28 (forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f EpochInterval
cppCommitteeMaxTermLength ConwayPParams StrictMaybe era
ppu) forall a. EncCBOR a => a -> Encoding
encCBOR
    forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode ('Closed r) a -> Encode w t
!> forall (t :: PPGroups) a.
Word
-> THKD t StrictMaybe a
-> (a -> Encoding)
-> Encode ('Closed 'Sparse) (THKD t StrictMaybe a)
omitStrictMaybe Word
29 (forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f EpochInterval
cppGovActionLifetime ConwayPParams StrictMaybe era
ppu) forall a. EncCBOR a => a -> Encoding
encCBOR
    forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode ('Closed r) a -> Encode w t
!> forall (t :: PPGroups) a.
Word
-> THKD t StrictMaybe a
-> (a -> Encoding)
-> Encode ('Closed 'Sparse) (THKD t StrictMaybe a)
omitStrictMaybe Word
30 (forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'GovGroup 'SecurityGroup) f Coin
cppGovActionDeposit ConwayPParams StrictMaybe era
ppu) forall a. EncCBOR a => a -> Encoding
encCBOR
    forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode ('Closed r) a -> Encode w t
!> forall (t :: PPGroups) a.
Word
-> THKD t StrictMaybe a
-> (a -> Encoding)
-> Encode ('Closed 'Sparse) (THKD t StrictMaybe a)
omitStrictMaybe Word
31 (forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f Coin
cppDRepDeposit ConwayPParams StrictMaybe era
ppu) forall a. EncCBOR a => a -> Encoding
encCBOR
    forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode ('Closed r) a -> Encode w t
!> forall (t :: PPGroups) a.
Word
-> THKD t StrictMaybe a
-> (a -> Encoding)
-> Encode ('Closed 'Sparse) (THKD t StrictMaybe a)
omitStrictMaybe Word
32 (forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f EpochInterval
cppDRepActivity ConwayPParams StrictMaybe era
ppu) forall a. EncCBOR a => a -> Encoding
encCBOR
    forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode ('Closed r) a -> Encode w t
!> forall (t :: PPGroups) a.
Word
-> THKD t StrictMaybe a
-> (a -> Encoding)
-> Encode ('Closed 'Sparse) (THKD t StrictMaybe a)
omitStrictMaybe Word
33 (forall (f :: * -> *) era.
ConwayPParams f era
-> THKD
     ('PPGroups 'EconomicGroup 'SecurityGroup) f NonNegativeInterval
cppMinFeeRefScriptCostPerByte ConwayPParams StrictMaybe era
ppu) forall a. EncCBOR a => a -> Encoding
encCBOR
  where
    omitStrictMaybe ::
      Word ->
      THKD t StrictMaybe a ->
      (a -> Encoding) ->
      Encode ('Closed 'Sparse) (THKD t StrictMaybe a)
    omitStrictMaybe :: forall (t :: PPGroups) a.
Word
-> THKD t StrictMaybe a
-> (a -> Encoding)
-> Encode ('Closed 'Sparse) (THKD t StrictMaybe a)
omitStrictMaybe Word
key THKD t StrictMaybe a
x a -> Encoding
enc =
      forall t.
(t -> Bool)
-> Encode ('Closed 'Sparse) t -> Encode ('Closed 'Sparse) t
Omit (forall a. StrictMaybe a -> Bool
isSNothing forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall (t :: PPGroups) (f :: * -> *) a. THKD t f a -> HKD f a
unTHKD) (forall t.
Word -> Encode ('Closed 'Dense) t -> Encode ('Closed 'Sparse) t
Key Word
key (forall t. (t -> Encoding) -> t -> Encode ('Closed 'Dense) t
E (a -> Encoding
enc forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a. StrictMaybe a -> a
fromSJust forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall (t :: PPGroups) (f :: * -> *) a. THKD t f a -> HKD f a
unTHKD) THKD t StrictMaybe a
x))

    fromSJust :: StrictMaybe a -> a
    fromSJust :: forall a. StrictMaybe a -> a
fromSJust (SJust a
x) = a
x
    fromSJust StrictMaybe a
SNothing =
      forall a. HasCallStack => String -> a
error String
"SNothing in fromSJust. This should never happen, it is guarded by isSNothing."

instance Era era => EncCBOR (ConwayPParams StrictMaybe era) where
  encCBOR :: ConwayPParams StrictMaybe era -> Encoding
encCBOR ConwayPParams StrictMaybe era
ppup = forall (w :: Wrapped) t. Encode w t -> Encoding
encode (forall era.
ConwayPParams StrictMaybe era
-> Encode ('Closed 'Sparse) (ConwayPParams StrictMaybe era)
encodePParamsUpdate ConwayPParams StrictMaybe era
ppup)

updateField :: Word -> Field (ConwayPParams StrictMaybe era)
updateField :: forall era. Word -> Field (ConwayPParams StrictMaybe era)
updateField = \case
  Word
0 -> forall x t (d :: Density).
(x -> t -> t) -> Decode ('Closed d) x -> Field t
field (\Coin
x ConwayPParams StrictMaybe era
up -> ConwayPParams StrictMaybe era
up {cppMinFeeA :: THKD ('PPGroups 'EconomicGroup 'SecurityGroup) StrictMaybe Coin
cppMinFeeA = forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD (forall a. a -> StrictMaybe a
SJust Coin
x)}) forall t (w :: Wrapped). DecCBOR t => Decode w t
From
  Word
1 -> forall x t (d :: Density).
(x -> t -> t) -> Decode ('Closed d) x -> Field t
field (\Coin
x ConwayPParams StrictMaybe era
up -> ConwayPParams StrictMaybe era
up {cppMinFeeB :: THKD ('PPGroups 'EconomicGroup 'SecurityGroup) StrictMaybe Coin
cppMinFeeB = forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD (forall a. a -> StrictMaybe a
SJust Coin
x)}) forall t (w :: Wrapped). DecCBOR t => Decode w t
From
  Word
2 -> forall x t (d :: Density).
(x -> t -> t) -> Decode ('Closed d) x -> Field t
field (\Word32
x ConwayPParams StrictMaybe era
up -> ConwayPParams StrictMaybe era
up {cppMaxBBSize :: THKD ('PPGroups 'NetworkGroup 'SecurityGroup) StrictMaybe Word32
cppMaxBBSize = forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD (forall a. a -> StrictMaybe a
SJust Word32
x)}) forall t (w :: Wrapped). DecCBOR t => Decode w t
From
  Word
3 -> forall x t (d :: Density).
(x -> t -> t) -> Decode ('Closed d) x -> Field t
field (\Word32
x ConwayPParams StrictMaybe era
up -> ConwayPParams StrictMaybe era
up {cppMaxTxSize :: THKD ('PPGroups 'NetworkGroup 'SecurityGroup) StrictMaybe Word32
cppMaxTxSize = forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD (forall a. a -> StrictMaybe a
SJust Word32
x)}) forall t (w :: Wrapped). DecCBOR t => Decode w t
From
  Word
4 -> forall x t (d :: Density).
(x -> t -> t) -> Decode ('Closed d) x -> Field t
field (\Word16
x ConwayPParams StrictMaybe era
up -> ConwayPParams StrictMaybe era
up {cppMaxBHSize :: THKD ('PPGroups 'NetworkGroup 'SecurityGroup) StrictMaybe Word16
cppMaxBHSize = forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD (forall a. a -> StrictMaybe a
SJust Word16
x)}) forall t (w :: Wrapped). DecCBOR t => Decode w t
From
  Word
5 -> forall x t (d :: Density).
(x -> t -> t) -> Decode ('Closed d) x -> Field t
field (\Coin
x ConwayPParams StrictMaybe era
up -> ConwayPParams StrictMaybe era
up {cppKeyDeposit :: THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) StrictMaybe Coin
cppKeyDeposit = forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD (forall a. a -> StrictMaybe a
SJust Coin
x)}) forall t (w :: Wrapped). DecCBOR t => Decode w t
From
  Word
6 -> forall x t (d :: Density).
(x -> t -> t) -> Decode ('Closed d) x -> Field t
field (\Coin
x ConwayPParams StrictMaybe era
up -> ConwayPParams StrictMaybe era
up {cppPoolDeposit :: THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) StrictMaybe Coin
cppPoolDeposit = forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD (forall a. a -> StrictMaybe a
SJust Coin
x)}) forall t (w :: Wrapped). DecCBOR t => Decode w t
From
  Word
7 -> forall x t (d :: Density).
(x -> t -> t) -> Decode ('Closed d) x -> Field t
field (\EpochInterval
x ConwayPParams StrictMaybe era
up -> ConwayPParams StrictMaybe era
up {cppEMax :: THKD
  ('PPGroups 'TechnicalGroup 'NoStakePoolGroup)
  StrictMaybe
  EpochInterval
cppEMax = forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD (forall a. a -> StrictMaybe a
SJust EpochInterval
x)}) forall t (w :: Wrapped). DecCBOR t => Decode w t
From
  Word
8 -> forall x t (d :: Density).
(x -> t -> t) -> Decode ('Closed d) x -> Field t
field (\Word16
x ConwayPParams StrictMaybe era
up -> ConwayPParams StrictMaybe era
up {cppNOpt :: THKD
  ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) StrictMaybe Word16
cppNOpt = forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD (forall a. a -> StrictMaybe a
SJust Word16
x)}) forall t (w :: Wrapped). DecCBOR t => Decode w t
From
  Word
9 -> forall x t (d :: Density).
(x -> t -> t) -> Decode ('Closed d) x -> Field t
field (\NonNegativeInterval
x ConwayPParams StrictMaybe era
up -> ConwayPParams StrictMaybe era
up {cppA0 :: THKD
  ('PPGroups 'TechnicalGroup 'NoStakePoolGroup)
  StrictMaybe
  NonNegativeInterval
cppA0 = forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD (forall a. a -> StrictMaybe a
SJust NonNegativeInterval
x)}) forall t (w :: Wrapped). DecCBOR t => Decode w t
From
  Word
10 -> forall x t (d :: Density).
(x -> t -> t) -> Decode ('Closed d) x -> Field t
field (\UnitInterval
x ConwayPParams StrictMaybe era
up -> ConwayPParams StrictMaybe era
up {cppRho :: THKD
  ('PPGroups 'EconomicGroup 'NoStakePoolGroup)
  StrictMaybe
  UnitInterval
cppRho = forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD (forall a. a -> StrictMaybe a
SJust UnitInterval
x)}) forall t (w :: Wrapped). DecCBOR t => Decode w t
From
  Word
11 -> forall x t (d :: Density).
(x -> t -> t) -> Decode ('Closed d) x -> Field t
field (\UnitInterval
x ConwayPParams StrictMaybe era
up -> ConwayPParams StrictMaybe era
up {cppTau :: THKD
  ('PPGroups 'EconomicGroup 'NoStakePoolGroup)
  StrictMaybe
  UnitInterval
cppTau = forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD (forall a. a -> StrictMaybe a
SJust UnitInterval
x)}) forall t (w :: Wrapped). DecCBOR t => Decode w t
From
  Word
16 -> forall x t (d :: Density).
(x -> t -> t) -> Decode ('Closed d) x -> Field t
field (\Coin
x ConwayPParams StrictMaybe era
up -> ConwayPParams StrictMaybe era
up {cppMinPoolCost :: THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) StrictMaybe Coin
cppMinPoolCost = forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD (forall a. a -> StrictMaybe a
SJust Coin
x)}) forall t (w :: Wrapped). DecCBOR t => Decode w t
From
  Word
17 -> forall x t (d :: Density).
(x -> t -> t) -> Decode ('Closed d) x -> Field t
field (\CoinPerByte
x ConwayPParams StrictMaybe era
up -> ConwayPParams StrictMaybe era
up {cppCoinsPerUTxOByte :: THKD
  ('PPGroups 'EconomicGroup 'SecurityGroup) StrictMaybe CoinPerByte
cppCoinsPerUTxOByte = forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD (forall a. a -> StrictMaybe a
SJust CoinPerByte
x)}) forall t (w :: Wrapped). DecCBOR t => Decode w t
From
  Word
18 -> forall x t (d :: Density).
(x -> t -> t) -> Decode ('Closed d) x -> Field t
field (\CostModels
x ConwayPParams StrictMaybe era
up -> ConwayPParams StrictMaybe era
up {cppCostModels :: THKD
  ('PPGroups 'TechnicalGroup 'NoStakePoolGroup)
  StrictMaybe
  CostModels
cppCostModels = forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD (forall a. a -> StrictMaybe a
SJust CostModels
x)}) forall t (w :: Wrapped). DecCBOR t => Decode w t
From
  Word
19 -> forall x t (d :: Density).
(x -> t -> t) -> Decode ('Closed d) x -> Field t
field (\Prices
x ConwayPParams StrictMaybe era
up -> ConwayPParams StrictMaybe era
up {cppPrices :: THKD
  ('PPGroups 'EconomicGroup 'NoStakePoolGroup) StrictMaybe Prices
cppPrices = forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD (forall a. a -> StrictMaybe a
SJust Prices
x)}) forall t (w :: Wrapped). DecCBOR t => Decode w t
From
  Word
20 -> forall x t (d :: Density).
(x -> t -> t) -> Decode ('Closed d) x -> Field t
field (\OrdExUnits
x ConwayPParams StrictMaybe era
up -> ConwayPParams StrictMaybe era
up {cppMaxTxExUnits :: THKD
  ('PPGroups 'NetworkGroup 'NoStakePoolGroup) StrictMaybe OrdExUnits
cppMaxTxExUnits = forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD (forall a. a -> StrictMaybe a
SJust OrdExUnits
x)}) forall t (w :: Wrapped). DecCBOR t => Decode w t
From
  Word
21 -> forall x t (d :: Density).
(x -> t -> t) -> Decode ('Closed d) x -> Field t
field (\OrdExUnits
x ConwayPParams StrictMaybe era
up -> ConwayPParams StrictMaybe era
up {cppMaxBlockExUnits :: THKD
  ('PPGroups 'NetworkGroup 'SecurityGroup) StrictMaybe OrdExUnits
cppMaxBlockExUnits = forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD (forall a. a -> StrictMaybe a
SJust OrdExUnits
x)}) forall t (w :: Wrapped). DecCBOR t => Decode w t
From
  Word
22 -> forall x t (d :: Density).
(x -> t -> t) -> Decode ('Closed d) x -> Field t
field (\Word32
x ConwayPParams StrictMaybe era
up -> ConwayPParams StrictMaybe era
up {cppMaxValSize :: THKD ('PPGroups 'NetworkGroup 'SecurityGroup) StrictMaybe Word32
cppMaxValSize = forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD (forall a. a -> StrictMaybe a
SJust Word32
x)}) forall t (w :: Wrapped). DecCBOR t => Decode w t
From
  Word
23 -> forall x t (d :: Density).
(x -> t -> t) -> Decode ('Closed d) x -> Field t
field (\Word16
x ConwayPParams StrictMaybe era
up -> ConwayPParams StrictMaybe era
up {cppCollateralPercentage :: THKD
  ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) StrictMaybe Word16
cppCollateralPercentage = forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD (forall a. a -> StrictMaybe a
SJust Word16
x)}) forall t (w :: Wrapped). DecCBOR t => Decode w t
From
  Word
24 -> forall x t (d :: Density).
(x -> t -> t) -> Decode ('Closed d) x -> Field t
field (\Word16
x ConwayPParams StrictMaybe era
up -> ConwayPParams StrictMaybe era
up {cppMaxCollateralInputs :: THKD ('PPGroups 'NetworkGroup 'NoStakePoolGroup) StrictMaybe Word16
cppMaxCollateralInputs = forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD (forall a. a -> StrictMaybe a
SJust Word16
x)}) forall t (w :: Wrapped). DecCBOR t => Decode w t
From
  -- New for Conway
  Word
25 -> forall x t (d :: Density).
(x -> t -> t) -> Decode ('Closed d) x -> Field t
field (\PoolVotingThresholds
x ConwayPParams StrictMaybe era
up -> ConwayPParams StrictMaybe era
up {cppPoolVotingThresholds :: THKD
  ('PPGroups 'GovGroup 'NoStakePoolGroup)
  StrictMaybe
  PoolVotingThresholds
cppPoolVotingThresholds = forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD (forall a. a -> StrictMaybe a
SJust PoolVotingThresholds
x)}) forall t (w :: Wrapped). DecCBOR t => Decode w t
From
  Word
26 -> forall x t (d :: Density).
(x -> t -> t) -> Decode ('Closed d) x -> Field t
field (\DRepVotingThresholds
x ConwayPParams StrictMaybe era
up -> ConwayPParams StrictMaybe era
up {cppDRepVotingThresholds :: THKD
  ('PPGroups 'GovGroup 'NoStakePoolGroup)
  StrictMaybe
  DRepVotingThresholds
cppDRepVotingThresholds = forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD (forall a. a -> StrictMaybe a
SJust DRepVotingThresholds
x)}) forall t (w :: Wrapped). DecCBOR t => Decode w t
From
  Word
27 -> forall x t (d :: Density).
(x -> t -> t) -> Decode ('Closed d) x -> Field t
field (\Word16
x ConwayPParams StrictMaybe era
up -> ConwayPParams StrictMaybe era
up {cppCommitteeMinSize :: THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) StrictMaybe Word16
cppCommitteeMinSize = forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD (forall a. a -> StrictMaybe a
SJust Word16
x)}) forall t (w :: Wrapped). DecCBOR t => Decode w t
From
  Word
28 -> forall x t (d :: Density).
(x -> t -> t) -> Decode ('Closed d) x -> Field t
field (\EpochInterval
x ConwayPParams StrictMaybe era
up -> ConwayPParams StrictMaybe era
up {cppCommitteeMaxTermLength :: THKD
  ('PPGroups 'GovGroup 'NoStakePoolGroup) StrictMaybe EpochInterval
cppCommitteeMaxTermLength = forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD (forall a. a -> StrictMaybe a
SJust EpochInterval
x)}) forall t (w :: Wrapped). DecCBOR t => Decode w t
From
  Word
29 -> forall x t (d :: Density).
(x -> t -> t) -> Decode ('Closed d) x -> Field t
field (\EpochInterval
x ConwayPParams StrictMaybe era
up -> ConwayPParams StrictMaybe era
up {cppGovActionLifetime :: THKD
  ('PPGroups 'GovGroup 'NoStakePoolGroup) StrictMaybe EpochInterval
cppGovActionLifetime = forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD (forall a. a -> StrictMaybe a
SJust EpochInterval
x)}) forall t (w :: Wrapped). DecCBOR t => Decode w t
From
  Word
30 -> forall x t (d :: Density).
(x -> t -> t) -> Decode ('Closed d) x -> Field t
field (\Coin
x ConwayPParams StrictMaybe era
up -> ConwayPParams StrictMaybe era
up {cppGovActionDeposit :: THKD ('PPGroups 'GovGroup 'SecurityGroup) StrictMaybe Coin
cppGovActionDeposit = forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD (forall a. a -> StrictMaybe a
SJust Coin
x)}) forall t (w :: Wrapped). DecCBOR t => Decode w t
From
  Word
31 -> forall x t (d :: Density).
(x -> t -> t) -> Decode ('Closed d) x -> Field t
field (\Coin
x ConwayPParams StrictMaybe era
up -> ConwayPParams StrictMaybe era
up {cppDRepDeposit :: THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) StrictMaybe Coin
cppDRepDeposit = forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD (forall a. a -> StrictMaybe a
SJust Coin
x)}) forall t (w :: Wrapped). DecCBOR t => Decode w t
From
  Word
32 -> forall x t (d :: Density).
(x -> t -> t) -> Decode ('Closed d) x -> Field t
field (\EpochInterval
x ConwayPParams StrictMaybe era
up -> ConwayPParams StrictMaybe era
up {cppDRepActivity :: THKD
  ('PPGroups 'GovGroup 'NoStakePoolGroup) StrictMaybe EpochInterval
cppDRepActivity = forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD (forall a. a -> StrictMaybe a
SJust EpochInterval
x)}) forall t (w :: Wrapped). DecCBOR t => Decode w t
From
  Word
33 -> forall x t (d :: Density).
(x -> t -> t) -> Decode ('Closed d) x -> Field t
field (\NonNegativeInterval
x ConwayPParams StrictMaybe era
up -> ConwayPParams StrictMaybe era
up {cppMinFeeRefScriptCostPerByte :: THKD
  ('PPGroups 'EconomicGroup 'SecurityGroup)
  StrictMaybe
  NonNegativeInterval
cppMinFeeRefScriptCostPerByte = forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD (forall a. a -> StrictMaybe a
SJust NonNegativeInterval
x)}) forall t (w :: Wrapped). DecCBOR t => Decode w t
From
  Word
k -> forall x t (d :: Density).
(x -> t -> t) -> Decode ('Closed d) x -> Field t
field (\Any
_x ConwayPParams StrictMaybe era
up -> ConwayPParams StrictMaybe era
up) (forall (w :: Wrapped) t. Word -> Decode w t
Invalid Word
k)

instance Era era => DecCBOR (ConwayPParams StrictMaybe era) where
  decCBOR :: forall s. Decoder s (ConwayPParams StrictMaybe era)
decCBOR = forall (w :: Wrapped) t s. Decode w t -> Decoder s t
decode (forall t.
Typeable t =>
String
-> t
-> (Word -> Field t)
-> [(Word, String)]
-> Decode ('Closed 'Dense) t
SparseKeyed String
"PParamsUpdate" forall era. ConwayPParams StrictMaybe era
emptyConwayPParamsUpdate forall era. Word -> Field (ConwayPParams StrictMaybe era)
updateField [])

instance Era era => ToCBOR (ConwayPParams StrictMaybe era) where
  toCBOR :: ConwayPParams StrictMaybe era -> Encoding
toCBOR = forall era t. (Era era, EncCBOR t) => t -> Encoding
toEraCBOR @era

instance Era era => FromCBOR (ConwayPParams StrictMaybe era) where
  fromCBOR :: forall s. Decoder s (ConwayPParams StrictMaybe era)
fromCBOR = forall era t s. (Era era, DecCBOR t) => Decoder s t
fromEraCBOR @era

instance
  ( ConwayEraPParams era
  , PParamsHKD StrictMaybe era ~ ConwayPParams StrictMaybe era
  ) =>
  ToJSON (ConwayPParams StrictMaybe era)
  where
  toJSON :: ConwayPParams StrictMaybe era -> Value
toJSON = [Pair] -> Value
object forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall era a e.
(ConwayEraPParams era, KeyValue e a) =>
PParamsHKD StrictMaybe era -> [a]
conwayPParamsUpdatePairs
  toEncoding :: ConwayPParams StrictMaybe era -> Encoding
toEncoding = Series -> Encoding
pairs forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a. Monoid a => [a] -> a
mconcat forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall era a e.
(ConwayEraPParams era, KeyValue e a) =>
PParamsHKD StrictMaybe era -> [a]
conwayPParamsUpdatePairs

conwayPParamsUpdatePairs ::
  forall era a e.
  (ConwayEraPParams era, KeyValue e a) =>
  PParamsHKD StrictMaybe era ->
  [a]
conwayPParamsUpdatePairs :: forall era a e.
(ConwayEraPParams era, KeyValue e a) =>
PParamsHKD StrictMaybe era -> [a]
conwayPParamsUpdatePairs PParamsHKD StrictMaybe era
pp =
  [ Key
k forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Value
v
  | (Key
k, SJust Value
v) <- forall era (f :: * -> *).
(ConwayEraPParams era, HKDFunctor f) =>
Proxy f -> PParamsHKD f era -> [(Key, HKD f Value)]
conwayPParamsHKDPairs (forall {k} (t :: k). Proxy t
Proxy @StrictMaybe) PParamsHKD StrictMaybe era
pp
  ]

conwayPParamsHKDPairs ::
  forall era f.
  (ConwayEraPParams era, HKDFunctor f) =>
  Proxy f ->
  PParamsHKD f era ->
  [(Key, HKD f Aeson.Value)]
conwayPParamsHKDPairs :: forall era (f :: * -> *).
(ConwayEraPParams era, HKDFunctor f) =>
Proxy f -> PParamsHKD f era -> [(Key, HKD f Value)]
conwayPParamsHKDPairs Proxy f
px PParamsHKD f era
pp =
  forall era (f :: * -> *).
(BabbageEraPParams era, HKDFunctor f) =>
Proxy f -> PParamsHKD f era -> [(Key, HKD f Value)]
babbageCommonPParamsHKDPairs Proxy f
px PParamsHKD f era
pp
    forall a. Semigroup a => a -> a -> a
<> forall era (f :: * -> *).
(ConwayEraPParams era, HKDFunctor f) =>
Proxy f -> PParamsHKD f era -> [(Key, HKD f Value)]
conwayUpgradePParamsHKDPairs Proxy f
px PParamsHKD f era
pp

conwayUpgradePParamsHKDPairs ::
  forall era f.
  (ConwayEraPParams era, HKDFunctor f) =>
  Proxy f ->
  PParamsHKD f era ->
  [(Key, HKD f Aeson.Value)]
conwayUpgradePParamsHKDPairs :: forall era (f :: * -> *).
(ConwayEraPParams era, HKDFunctor f) =>
Proxy f -> PParamsHKD f era -> [(Key, HKD f Value)]
conwayUpgradePParamsHKDPairs Proxy f
px PParamsHKD f era
pp =
  [
    ( Key
"poolVotingThresholds"
    , forall (f :: * -> *) (proxy :: (* -> *) -> *) a b.
HKDFunctor f =>
proxy f -> (a -> b) -> HKD f a -> HKD f b
hkdMap Proxy f
px (forall a. ToJSON a => a -> Value
toJSON @PoolVotingThresholds) (PParamsHKD f era
pp forall s a. s -> Getting a s a -> a
^. forall era (f :: * -> *).
(ConwayEraPParams era, HKDFunctor f) =>
Lens' (PParamsHKD f era) (HKD f PoolVotingThresholds)
hkdPoolVotingThresholdsL @era @f)
    )
  ,
    ( Key
"dRepVotingThresholds"
    , forall (f :: * -> *) (proxy :: (* -> *) -> *) a b.
HKDFunctor f =>
proxy f -> (a -> b) -> HKD f a -> HKD f b
hkdMap Proxy f
px (forall a. ToJSON a => a -> Value
toJSON @DRepVotingThresholds) (PParamsHKD f era
pp forall s a. s -> Getting a s a -> a
^. forall era (f :: * -> *).
(ConwayEraPParams era, HKDFunctor f) =>
Lens' (PParamsHKD f era) (HKD f DRepVotingThresholds)
hkdDRepVotingThresholdsL @era @f)
    )
  , (Key
"committeeMinSize", forall (f :: * -> *) (proxy :: (* -> *) -> *) a b.
HKDFunctor f =>
proxy f -> (a -> b) -> HKD f a -> HKD f b
hkdMap Proxy f
px (forall a. ToJSON a => a -> Value
toJSON @Natural) (PParamsHKD f era
pp forall s a. s -> Getting a s a -> a
^. forall era (f :: * -> *).
(ConwayEraPParams era, HKDFunctor f) =>
Lens' (PParamsHKD f era) (HKD f Natural)
hkdCommitteeMinSizeL @era @f))
  ,
    ( Key
"committeeMaxTermLength"
    , forall (f :: * -> *) (proxy :: (* -> *) -> *) a b.
HKDFunctor f =>
proxy f -> (a -> b) -> HKD f a -> HKD f b
hkdMap Proxy f
px (forall a. ToJSON a => a -> Value
toJSON @EpochInterval) (PParamsHKD f era
pp forall s a. s -> Getting a s a -> a
^. forall era (f :: * -> *).
(ConwayEraPParams era, HKDFunctor f) =>
Lens' (PParamsHKD f era) (HKD f EpochInterval)
hkdCommitteeMaxTermLengthL @era @f)
    )
  , (Key
"govActionLifetime", forall (f :: * -> *) (proxy :: (* -> *) -> *) a b.
HKDFunctor f =>
proxy f -> (a -> b) -> HKD f a -> HKD f b
hkdMap Proxy f
px (forall a. ToJSON a => a -> Value
toJSON @EpochInterval) (PParamsHKD f era
pp forall s a. s -> Getting a s a -> a
^. forall era (f :: * -> *).
(ConwayEraPParams era, HKDFunctor f) =>
Lens' (PParamsHKD f era) (HKD f EpochInterval)
hkdGovActionLifetimeL @era @f))
  , (Key
"govActionDeposit", forall (f :: * -> *) (proxy :: (* -> *) -> *) a b.
HKDFunctor f =>
proxy f -> (a -> b) -> HKD f a -> HKD f b
hkdMap Proxy f
px (forall a. ToJSON a => a -> Value
toJSON @Coin) (PParamsHKD f era
pp forall s a. s -> Getting a s a -> a
^. forall era (f :: * -> *).
(ConwayEraPParams era, HKDFunctor f) =>
Lens' (PParamsHKD f era) (HKD f Coin)
hkdGovActionDepositL @era @f))
  , (Key
"dRepDeposit", forall (f :: * -> *) (proxy :: (* -> *) -> *) a b.
HKDFunctor f =>
proxy f -> (a -> b) -> HKD f a -> HKD f b
hkdMap Proxy f
px (forall a. ToJSON a => a -> Value
toJSON @Coin) (PParamsHKD f era
pp forall s a. s -> Getting a s a -> a
^. forall era (f :: * -> *).
(ConwayEraPParams era, HKDFunctor f) =>
Lens' (PParamsHKD f era) (HKD f Coin)
hkdDRepDepositL @era @f))
  , (Key
"dRepActivity", forall (f :: * -> *) (proxy :: (* -> *) -> *) a b.
HKDFunctor f =>
proxy f -> (a -> b) -> HKD f a -> HKD f b
hkdMap Proxy f
px (forall a. ToJSON a => a -> Value
toJSON @EpochInterval) (PParamsHKD f era
pp forall s a. s -> Getting a s a -> a
^. forall era (f :: * -> *).
(ConwayEraPParams era, HKDFunctor f) =>
Lens' (PParamsHKD f era) (HKD f EpochInterval)
hkdDRepActivityL @era @f))
  ,
    ( Key
"minFeeRefScriptCostPerByte"
    , forall (f :: * -> *) (proxy :: (* -> *) -> *) a b.
HKDFunctor f =>
proxy f -> (a -> b) -> HKD f a -> HKD f b
hkdMap Proxy f
px (forall a. ToJSON a => a -> Value
toJSON @NonNegativeInterval) (PParamsHKD f era
pp forall s a. s -> Getting a s a -> a
^. forall era (f :: * -> *).
(ConwayEraPParams era, HKDFunctor f) =>
Lens' (PParamsHKD f era) (HKD f NonNegativeInterval)
hkdMinFeeRefScriptCostPerByteL @era @f)
    )
  ]

instance ToJSON (UpgradeConwayPParams Identity) where
  toJSON :: UpgradeConwayPParams Identity -> Value
toJSON = [Pair] -> Value
object forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall e a. KeyValue e a => UpgradeConwayPParams Identity -> [a]
toUpgradeConwayPParamsUpdatePairs
  toEncoding :: UpgradeConwayPParams Identity -> Encoding
toEncoding = Series -> Encoding
pairs forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a. Monoid a => [a] -> a
mconcat forall b c a. (b -> c) -> (a -> b) -> a -> c
. 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 =
  forall a b c. (a -> b -> c) -> (a, b) -> c
uncurry forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
(.=) 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 Coin
HKD Identity NonNegativeInterval
HKD Identity EpochInterval
HKD Identity DRepVotingThresholds
HKD Identity PoolVotingThresholds
ucppPlutusV3CostModel :: HKD Identity CostModel
ucppMinFeeRefScriptCostPerByte :: HKD Identity NonNegativeInterval
ucppDRepActivity :: HKD Identity EpochInterval
ucppDRepDeposit :: HKD Identity Coin
ucppGovActionDeposit :: HKD Identity Coin
ucppGovActionLifetime :: HKD Identity EpochInterval
ucppCommitteeMaxTermLength :: HKD Identity EpochInterval
ucppCommitteeMinSize :: HKD Identity Word16
ucppDRepVotingThresholds :: HKD Identity DRepVotingThresholds
ucppPoolVotingThresholds :: HKD Identity PoolVotingThresholds
ucppPlutusV3CostModel :: forall (f :: * -> *). UpgradeConwayPParams f -> HKD f CostModel
ucppMinFeeRefScriptCostPerByte :: forall (f :: * -> *).
UpgradeConwayPParams f -> HKD f NonNegativeInterval
ucppDRepActivity :: forall (f :: * -> *). UpgradeConwayPParams f -> HKD f EpochInterval
ucppDRepDeposit :: forall (f :: * -> *). UpgradeConwayPParams f -> HKD f Coin
ucppGovActionDeposit :: forall (f :: * -> *). UpgradeConwayPParams f -> HKD f Coin
ucppGovActionLifetime :: forall (f :: * -> *). UpgradeConwayPParams f -> HKD f EpochInterval
ucppCommitteeMaxTermLength :: forall (f :: * -> *). UpgradeConwayPParams f -> HKD f EpochInterval
ucppCommitteeMinSize :: forall (f :: * -> *). UpgradeConwayPParams f -> HKD f Word16
ucppDRepVotingThresholds :: forall (f :: * -> *).
UpgradeConwayPParams f -> HKD f DRepVotingThresholds
ucppPoolVotingThresholds :: forall (f :: * -> *).
UpgradeConwayPParams f -> HKD f PoolVotingThresholds
..} =
  [ (Key
"poolVotingThresholds", (forall a. ToJSON a => a -> Value
toJSON @PoolVotingThresholds) HKD Identity PoolVotingThresholds
ucppPoolVotingThresholds)
  , (Key
"dRepVotingThresholds", (forall a. ToJSON a => a -> Value
toJSON @DRepVotingThresholds) HKD Identity DRepVotingThresholds
ucppDRepVotingThresholds)
  , (Key
"committeeMinSize", (forall a. ToJSON a => a -> Value
toJSON @Word16) HKD Identity Word16
ucppCommitteeMinSize)
  , (Key
"committeeMaxTermLength", (forall a. ToJSON a => a -> Value
toJSON @EpochInterval) HKD Identity EpochInterval
ucppCommitteeMaxTermLength)
  , (Key
"govActionLifetime", (forall a. ToJSON a => a -> Value
toJSON @EpochInterval) HKD Identity EpochInterval
ucppGovActionLifetime)
  , (Key
"govActionDeposit", (forall a. ToJSON a => a -> Value
toJSON @Coin) HKD Identity Coin
ucppGovActionDeposit)
  , (Key
"dRepDeposit", (forall a. ToJSON a => a -> Value
toJSON @Coin) HKD Identity Coin
ucppDRepDeposit)
  , (Key
"dRepActivity", (forall a. ToJSON a => a -> Value
toJSON @EpochInterval) HKD Identity EpochInterval
ucppDRepActivity)
  , (Key
"minFeeRefScriptCostPerByte", (forall a. ToJSON a => a -> Value
toJSON @NonNegativeInterval) HKD Identity NonNegativeInterval
ucppMinFeeRefScriptCostPerByte)
  , (Key
"plutusV3CostModel", (forall a. ToJSON a => a -> Value
toJSON @CostModel) HKD Identity CostModel
ucppPlutusV3CostModel)
  ]

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

upgradeConwayPParams ::
  forall f c.
  HKDApplicative f =>
  UpgradeConwayPParams f ->
  PParamsHKD f (BabbageEra c) ->
  ConwayPParams f (ConwayEra c)
upgradeConwayPParams :: forall (f :: * -> *) c.
HKDApplicative f =>
UpgradeConwayPParams f
-> PParamsHKD f (BabbageEra c) -> ConwayPParams f (ConwayEra c)
upgradeConwayPParams UpgradeConwayPParams {HKD f Word16
HKD f CostModel
HKD f Coin
HKD f NonNegativeInterval
HKD f EpochInterval
HKD f DRepVotingThresholds
HKD f PoolVotingThresholds
ucppPlutusV3CostModel :: HKD f CostModel
ucppMinFeeRefScriptCostPerByte :: HKD f NonNegativeInterval
ucppDRepActivity :: HKD f EpochInterval
ucppDRepDeposit :: HKD f Coin
ucppGovActionDeposit :: HKD f Coin
ucppGovActionLifetime :: HKD f EpochInterval
ucppCommitteeMaxTermLength :: HKD f EpochInterval
ucppCommitteeMinSize :: HKD f Word16
ucppDRepVotingThresholds :: HKD f DRepVotingThresholds
ucppPoolVotingThresholds :: HKD f PoolVotingThresholds
ucppPlutusV3CostModel :: forall (f :: * -> *). UpgradeConwayPParams f -> HKD f CostModel
ucppMinFeeRefScriptCostPerByte :: forall (f :: * -> *).
UpgradeConwayPParams f -> HKD f NonNegativeInterval
ucppDRepActivity :: forall (f :: * -> *). UpgradeConwayPParams f -> HKD f EpochInterval
ucppDRepDeposit :: forall (f :: * -> *). UpgradeConwayPParams f -> HKD f Coin
ucppGovActionDeposit :: forall (f :: * -> *). UpgradeConwayPParams f -> HKD f Coin
ucppGovActionLifetime :: forall (f :: * -> *). UpgradeConwayPParams f -> HKD f EpochInterval
ucppCommitteeMaxTermLength :: forall (f :: * -> *). UpgradeConwayPParams f -> HKD f EpochInterval
ucppCommitteeMinSize :: forall (f :: * -> *). UpgradeConwayPParams f -> HKD f Word16
ucppDRepVotingThresholds :: forall (f :: * -> *).
UpgradeConwayPParams f -> HKD f DRepVotingThresholds
ucppPoolVotingThresholds :: forall (f :: * -> *).
UpgradeConwayPParams f -> HKD f PoolVotingThresholds
..} BabbagePParams {HKD f Natural
HKD f Word16
HKD f Word32
HKD f CostModels
HKD f Prices
HKD f OrdExUnits
HKD f CoinPerByte
HKD f Coin
HKD f ProtVer
HKD f NonNegativeInterval
HKD f UnitInterval
HKD f EpochInterval
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 Natural
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
bppMaxCollateralInputs :: HKD f Natural
bppCollateralPercentage :: HKD f Natural
bppMaxValSize :: HKD f Natural
bppMaxBlockExUnits :: HKD f OrdExUnits
bppMaxTxExUnits :: HKD f OrdExUnits
bppPrices :: HKD f Prices
bppCostModels :: HKD f CostModels
bppCoinsPerUTxOByte :: HKD f CoinPerByte
bppMinPoolCost :: HKD f Coin
bppProtocolVersion :: HKD f ProtVer
bppTau :: HKD f UnitInterval
bppRho :: HKD f UnitInterval
bppA0 :: HKD f NonNegativeInterval
bppNOpt :: HKD f Natural
bppEMax :: HKD f EpochInterval
bppPoolDeposit :: HKD f Coin
bppKeyDeposit :: HKD f Coin
bppMaxBHSize :: HKD f Word16
bppMaxTxSize :: HKD f Word32
bppMaxBBSize :: HKD f Word32
bppMinFeeB :: HKD f Coin
bppMinFeeA :: HKD f Coin
..} =
  ConwayPParams
    { cppMinFeeA :: THKD ('PPGroups 'EconomicGroup 'SecurityGroup) f Coin
cppMinFeeA = 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 = 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 = 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 = 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 = 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 = 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 = 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 = 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 = 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
bppNOpt)
    , cppA0 :: THKD
  ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f NonNegativeInterval
cppA0 = 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 = 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 = 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 = 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 = 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 =
        forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD 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
            ( forall (f :: * -> *) (proxy :: (* -> *) -> *) a b.
HKDFunctor f =>
proxy f -> (a -> b) -> HKD f a -> HKD f b
hkdMap
                (forall {k} (t :: k). Proxy t
Proxy @f)
                (Map Language CostModel -> CostModels
mkCostModels forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall k a. k -> a -> Map k a
Map.singleton Language
PlutusV3)
                HKD f CostModel
ucppPlutusV3CostModel
            )
    , cppPrices :: THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f Prices
cppPrices = 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 = 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 = 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 =
        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 =
        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 =
        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 = 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 = 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 = 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 = 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 = 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 = 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 = 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 = 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 = forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD HKD f NonNegativeInterval
ucppMinFeeRefScriptCostPerByte
    }

downgradeConwayPParams ::
  forall f c.
  HKDFunctor f =>
  ConwayPParams f (ConwayEra c) ->
  PParamsHKD f (BabbageEra c)
downgradeConwayPParams :: forall (f :: * -> *) c.
HKDFunctor f =>
ConwayPParams f (ConwayEra c) -> PParamsHKD f (BabbageEra c)
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 Coin
THKD
  ('PPGroups 'EconomicGroup 'SecurityGroup) f NonNegativeInterval
THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f Prices
THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f Coin
THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f UnitInterval
THKD ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f Word16
THKD ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f CostModels
THKD
  ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f NonNegativeInterval
THKD ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f EpochInterval
THKD ('PPGroups 'GovGroup 'SecurityGroup) f Coin
THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f Word16
THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f Coin
THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f EpochInterval
THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f DRepVotingThresholds
THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f PoolVotingThresholds
cppMinFeeRefScriptCostPerByte :: THKD
  ('PPGroups 'EconomicGroup 'SecurityGroup) f NonNegativeInterval
cppDRepActivity :: THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f EpochInterval
cppDRepDeposit :: THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f Coin
cppGovActionDeposit :: THKD ('PPGroups 'GovGroup 'SecurityGroup) f Coin
cppGovActionLifetime :: THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f EpochInterval
cppCommitteeMaxTermLength :: THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f EpochInterval
cppCommitteeMinSize :: THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f Word16
cppDRepVotingThresholds :: THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f DRepVotingThresholds
cppPoolVotingThresholds :: THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f PoolVotingThresholds
cppMaxCollateralInputs :: THKD ('PPGroups 'NetworkGroup 'NoStakePoolGroup) f Word16
cppCollateralPercentage :: THKD ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f Word16
cppMaxValSize :: THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f Word32
cppMaxBlockExUnits :: THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f OrdExUnits
cppMaxTxExUnits :: THKD ('PPGroups 'NetworkGroup 'NoStakePoolGroup) f OrdExUnits
cppPrices :: THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f Prices
cppCostModels :: THKD ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f CostModels
cppCoinsPerUTxOByte :: THKD ('PPGroups 'EconomicGroup 'SecurityGroup) f CoinPerByte
cppMinPoolCost :: THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f Coin
cppProtocolVersion :: HKDNoUpdate f ProtVer
cppTau :: THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f UnitInterval
cppRho :: THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f UnitInterval
cppA0 :: THKD
  ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f NonNegativeInterval
cppNOpt :: THKD ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f Word16
cppEMax :: THKD ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f EpochInterval
cppPoolDeposit :: THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f Coin
cppKeyDeposit :: THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f Coin
cppMaxBHSize :: THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f Word16
cppMaxTxSize :: THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f Word32
cppMaxBBSize :: THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f Word32
cppMinFeeB :: THKD ('PPGroups 'EconomicGroup 'SecurityGroup) f Coin
cppMinFeeA :: THKD ('PPGroups 'EconomicGroup 'SecurityGroup) f Coin
cppMinFeeRefScriptCostPerByte :: forall (f :: * -> *) era.
ConwayPParams f era
-> THKD
     ('PPGroups 'EconomicGroup 'SecurityGroup) f NonNegativeInterval
cppDRepActivity :: forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f EpochInterval
cppDRepDeposit :: forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f Coin
cppGovActionDeposit :: forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'GovGroup 'SecurityGroup) f Coin
cppGovActionLifetime :: forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f EpochInterval
cppCommitteeMaxTermLength :: forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f EpochInterval
cppCommitteeMinSize :: forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f Word16
cppDRepVotingThresholds :: forall (f :: * -> *) era.
ConwayPParams f era
-> THKD
     ('PPGroups 'GovGroup 'NoStakePoolGroup) f DRepVotingThresholds
cppPoolVotingThresholds :: forall (f :: * -> *) era.
ConwayPParams f era
-> THKD
     ('PPGroups 'GovGroup 'NoStakePoolGroup) f PoolVotingThresholds
cppMaxCollateralInputs :: forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'NetworkGroup 'NoStakePoolGroup) f Word16
cppCollateralPercentage :: forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f Word16
cppMaxValSize :: forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f Word32
cppMaxBlockExUnits :: forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f OrdExUnits
cppMaxTxExUnits :: forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'NetworkGroup 'NoStakePoolGroup) f OrdExUnits
cppPrices :: forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f Prices
cppCostModels :: forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f CostModels
cppCoinsPerUTxOByte :: forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'EconomicGroup 'SecurityGroup) f CoinPerByte
cppMinPoolCost :: forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f Coin
cppProtocolVersion :: forall (f :: * -> *) era.
ConwayPParams f era -> HKDNoUpdate f ProtVer
cppTau :: forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f UnitInterval
cppRho :: forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f UnitInterval
cppA0 :: forall (f :: * -> *) era.
ConwayPParams f era
-> THKD
     ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f NonNegativeInterval
cppNOpt :: forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f Word16
cppEMax :: forall (f :: * -> *) era.
ConwayPParams f era
-> THKD
     ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f EpochInterval
cppPoolDeposit :: forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f Coin
cppKeyDeposit :: forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f Coin
cppMaxBHSize :: forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f Word16
cppMaxTxSize :: forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f Word32
cppMaxBBSize :: forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f Word32
cppMinFeeB :: forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'EconomicGroup 'SecurityGroup) f Coin
cppMinFeeA :: forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'EconomicGroup 'SecurityGroup) f Coin
..} =
  BabbagePParams
    { bppMinFeeA :: HKD f Coin
bppMinFeeA = 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 = 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 = 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 = 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 = 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 = 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 = 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 = forall (t :: PPGroups) (f :: * -> *) a. THKD t f a -> HKD f a
unTHKD THKD ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f EpochInterval
cppEMax
    , bppNOpt :: HKD f Natural
bppNOpt = forall (f :: * -> *) i.
(HKDFunctor f, Integral i) =>
HKD f i -> HKD f Natural
asNaturalHKD @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 = 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 = 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 = 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 = 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 = 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 = 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 = 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 = 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 = 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 (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 (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 (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 = forall (f :: PPGroups) a.
THKD f Identity a -> THKD f StrictMaybe a -> THKD f Identity a
ppUpdate (forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'EconomicGroup 'SecurityGroup) f Coin
cppMinFeeA ConwayPParams Identity era
pp) (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 = forall (f :: PPGroups) a.
THKD f Identity a -> THKD f StrictMaybe a -> THKD f Identity a
ppUpdate (forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'EconomicGroup 'SecurityGroup) f Coin
cppMinFeeB ConwayPParams Identity era
pp) (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 = forall (f :: PPGroups) a.
THKD f Identity a -> THKD f StrictMaybe a -> THKD f Identity a
ppUpdate (forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f Word32
cppMaxBBSize ConwayPParams Identity era
pp) (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 = forall (f :: PPGroups) a.
THKD f Identity a -> THKD f StrictMaybe a -> THKD f Identity a
ppUpdate (forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f Word32
cppMaxTxSize ConwayPParams Identity era
pp) (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 = forall (f :: PPGroups) a.
THKD f Identity a -> THKD f StrictMaybe a -> THKD f Identity a
ppUpdate (forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f Word16
cppMaxBHSize ConwayPParams Identity era
pp) (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 = forall (f :: PPGroups) a.
THKD f Identity a -> THKD f StrictMaybe a -> THKD f Identity a
ppUpdate (forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f Coin
cppKeyDeposit ConwayPParams Identity era
pp) (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 = forall (f :: PPGroups) a.
THKD f Identity a -> THKD f StrictMaybe a -> THKD f Identity a
ppUpdate (forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f Coin
cppPoolDeposit ConwayPParams Identity era
pp) (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 = forall (f :: PPGroups) a.
THKD f Identity a -> THKD f StrictMaybe a -> THKD f Identity a
ppUpdate (forall (f :: * -> *) era.
ConwayPParams f era
-> THKD
     ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f EpochInterval
cppEMax ConwayPParams Identity era
pp) (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 = forall (f :: PPGroups) a.
THKD f Identity a -> THKD f StrictMaybe a -> THKD f Identity a
ppUpdate (forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f Word16
cppNOpt ConwayPParams Identity era
pp) (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 = forall (f :: PPGroups) a.
THKD f Identity a -> THKD f StrictMaybe a -> THKD f Identity a
ppUpdate (forall (f :: * -> *) era.
ConwayPParams f era
-> THKD
     ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f NonNegativeInterval
cppA0 ConwayPParams Identity era
pp) (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 = forall (f :: PPGroups) a.
THKD f Identity a -> THKD f StrictMaybe a -> THKD f Identity a
ppUpdate (forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f UnitInterval
cppRho ConwayPParams Identity era
pp) (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 = forall (f :: PPGroups) a.
THKD f Identity a -> THKD f StrictMaybe a -> THKD f Identity a
ppUpdate (forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f UnitInterval
cppTau ConwayPParams Identity era
pp) (forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f UnitInterval
cppTau ConwayPParams StrictMaybe era
ppu)
    , cppProtocolVersion :: HKDNoUpdate Identity ProtVer
cppProtocolVersion = forall (f :: * -> *) era.
ConwayPParams f era -> HKDNoUpdate f ProtVer
cppProtocolVersion ConwayPParams Identity era
pp
    , cppMinPoolCost :: THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) Identity Coin
cppMinPoolCost = forall (f :: PPGroups) a.
THKD f Identity a -> THKD f StrictMaybe a -> THKD f Identity a
ppUpdate (forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f Coin
cppMinPoolCost ConwayPParams Identity era
pp) (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 = forall (f :: PPGroups) a.
THKD f Identity a -> THKD f StrictMaybe a -> THKD f Identity a
ppUpdate (forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'EconomicGroup 'SecurityGroup) f CoinPerByte
cppCoinsPerUTxOByte ConwayPParams Identity era
pp) (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 = forall (f :: PPGroups).
THKD f Identity CostModels
-> THKD f StrictMaybe CostModels -> THKD f Identity CostModels
ppUpdateCostModels (forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f CostModels
cppCostModels ConwayPParams Identity era
pp) (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 = forall (f :: PPGroups) a.
THKD f Identity a -> THKD f StrictMaybe a -> THKD f Identity a
ppUpdate (forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'EconomicGroup 'NoStakePoolGroup) f Prices
cppPrices ConwayPParams Identity era
pp) (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 = forall (f :: PPGroups) a.
THKD f Identity a -> THKD f StrictMaybe a -> THKD f Identity a
ppUpdate (forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'NetworkGroup 'NoStakePoolGroup) f OrdExUnits
cppMaxTxExUnits ConwayPParams Identity era
pp) (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 = forall (f :: PPGroups) a.
THKD f Identity a -> THKD f StrictMaybe a -> THKD f Identity a
ppUpdate (forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f OrdExUnits
cppMaxBlockExUnits ConwayPParams Identity era
pp) (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 = forall (f :: PPGroups) a.
THKD f Identity a -> THKD f StrictMaybe a -> THKD f Identity a
ppUpdate (forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'NetworkGroup 'SecurityGroup) f Word32
cppMaxValSize ConwayPParams Identity era
pp) (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 = forall (f :: PPGroups) a.
THKD f Identity a -> THKD f StrictMaybe a -> THKD f Identity a
ppUpdate (forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'TechnicalGroup 'NoStakePoolGroup) f Word16
cppCollateralPercentage ConwayPParams Identity era
pp) (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 = forall (f :: PPGroups) a.
THKD f Identity a -> THKD f StrictMaybe a -> THKD f Identity a
ppUpdate (forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'NetworkGroup 'NoStakePoolGroup) f Word16
cppMaxCollateralInputs ConwayPParams Identity era
pp) (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 = forall (f :: PPGroups) a.
THKD f Identity a -> THKD f StrictMaybe a -> THKD f Identity a
ppUpdate (forall (f :: * -> *) era.
ConwayPParams f era
-> THKD
     ('PPGroups 'GovGroup 'NoStakePoolGroup) f PoolVotingThresholds
cppPoolVotingThresholds ConwayPParams Identity era
pp) (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 = forall (f :: PPGroups) a.
THKD f Identity a -> THKD f StrictMaybe a -> THKD f Identity a
ppUpdate (forall (f :: * -> *) era.
ConwayPParams f era
-> THKD
     ('PPGroups 'GovGroup 'NoStakePoolGroup) f DRepVotingThresholds
cppDRepVotingThresholds ConwayPParams Identity era
pp) (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 = forall (f :: PPGroups) a.
THKD f Identity a -> THKD f StrictMaybe a -> THKD f Identity a
ppUpdate (forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f Word16
cppCommitteeMinSize ConwayPParams Identity era
pp) (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 =
        forall (f :: PPGroups) a.
THKD f Identity a -> THKD f StrictMaybe a -> THKD f Identity a
ppUpdate (forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f EpochInterval
cppCommitteeMaxTermLength ConwayPParams Identity era
pp) (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 = forall (f :: PPGroups) a.
THKD f Identity a -> THKD f StrictMaybe a -> THKD f Identity a
ppUpdate (forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f EpochInterval
cppGovActionLifetime ConwayPParams Identity era
pp) (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 = forall (f :: PPGroups) a.
THKD f Identity a -> THKD f StrictMaybe a -> THKD f Identity a
ppUpdate (forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'GovGroup 'SecurityGroup) f Coin
cppGovActionDeposit ConwayPParams Identity era
pp) (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 = forall (f :: PPGroups) a.
THKD f Identity a -> THKD f StrictMaybe a -> THKD f Identity a
ppUpdate (forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f Coin
cppDRepDeposit ConwayPParams Identity era
pp) (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 = forall (f :: PPGroups) a.
THKD f Identity a -> THKD f StrictMaybe a -> THKD f Identity a
ppUpdate (forall (f :: * -> *) era.
ConwayPParams f era
-> THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f EpochInterval
cppDRepActivity ConwayPParams Identity era
pp) (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 =
        forall (f :: PPGroups) a.
THKD f Identity a -> THKD f StrictMaybe a -> THKD f Identity a
ppUpdate (forall (f :: * -> *) era.
ConwayPParams f era
-> THKD
     ('PPGroups 'EconomicGroup 'SecurityGroup) f NonNegativeInterval
cppMinFeeRefScriptCostPerByte ConwayPParams Identity era
pp) (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 -> forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD HKD Identity a
ppCurValue
        SJust a
ppNewValue -> forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD 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 -> forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD HKD Identity CostModels
curCostModel
        SJust CostModels
costModelUpdate -> forall (t :: PPGroups) (f :: * -> *) a. HKD f a -> THKD t f a
THKD forall a b. (a -> b) -> a -> b
$ CostModels -> CostModels -> CostModels
updateCostModels 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
    ) =
    forall a. Monoid a => [a] -> a
mconcat
      [ 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
      , 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
      , 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
      , 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
      , 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
      , 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
      , 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
      , 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
      , 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
      , 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
      , 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
      , 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
      , 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
      , 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
      , 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
      , 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
      , 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
      , 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
      , 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
      , 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
      , 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
      , 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
      , 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
      , 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
      , 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
      , 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
      , 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
      , 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
      , 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
      , 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 = forall (f :: * -> *) (proxy :: (* -> *) -> *) a b.
HKDFunctor f =>
proxy f -> (a -> b) -> HKD f a -> HKD f b
hkdMap (forall {k} (t :: k). 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 = forall (f :: * -> *) (proxy :: (* -> *) -> *) a b.
HKDFunctor f =>
proxy f -> (a -> b) -> HKD f a -> HKD f b
hkdMap (forall {k} (t :: k). Proxy t
Proxy @f) 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 ->
      forall a. HasCallStack => String -> a
error forall a b. (a -> b) -> a -> b
$
        String
"Value: "
          forall a. Semigroup a => a -> a -> a
<> forall a. Show a => a -> String
show (forall a. Integral a => a -> Integer
toInteger i
x)
          forall a. Semigroup a => a -> a -> a
<> String
" is out of the valid range: ["
          forall a. Semigroup a => a -> a -> a
<> forall a. Show a => a -> String
show (forall a. Integral a => a -> Integer
toInteger (forall a. Bounded a => a
minBound @b))
          forall a. Semigroup a => a -> a -> a
<> String
","
          forall a. Semigroup a => a -> a -> a
<> forall a. Show a => a -> String
show (forall a. Integral a => a -> Integer
toInteger (forall a. Bounded a => a
maxBound @b))
          forall a. Semigroup a => a -> a -> a
<> String
"]"