content: module Cardano.Ledger.Api.PParams (
    -- * PParams
    PParams,
    emptyPParams,
    UpgradePParams,
    upgradePParams,
    DowngradePParams,
    downgradePParams,
  
    -- * PParamsUpdate
    PParamsUpdate,
    emptyPParamsUpdate,
    upgradePParamsUpdate,
    downgradePParamsUpdate,
  
    -- * Shelley params
  
    -- | Protocol parameters introduced in Shelley era
  
    -- ** @MinFeeA@
  
    -- | Min fee factor
    ppMinFeeAL,
    ppuMinFeeAL,
  
    -- ** @MinFeeB@
  
    -- | Min fee constant
    ppMinFeeBL,
    ppuMinFeeBL,
  
    -- ** @MaxBBSize@
  
    -- | Max block body size
    ppMaxBBSizeL,
    ppuMaxBBSizeL,
  
    -- ** @AaxBHSize@
  
    -- | Max block header size
    ppMaxBHSizeL,
    ppuMaxBHSizeL,
  
    -- ** @PoolDeposit@
  
    -- | Stake pool deposit
    ppPoolDepositL,
    ppuPoolDepositL,
  
    -- ** @EMax@
  
    -- | Epoch bound on pool retirement
    ppEMaxL,
    ppuEMaxL,
  
    -- ** @NOpt@
  
    -- | Desired number of pools
    ppNOptL,
    ppuNOptL,
  
    -- ** @A0@
  
    -- | Pool influence
    ppA0L,
    ppuA0L,
  
    -- ** @Tau@
  
    -- | Treasury expansion
    ppTauL,
    ppuTauL,
  
    -- ** @Rho@
  
    -- | Monetary expansion
    ppRhoL,
    ppuRhoL,
  
    -- ** @D@
  
    -- | Decentralization paramteter
    --
    -- /Note/ - Removed in Babbage
    ppDL,
    ppDG,
    ppuDL,
  
    -- ** @ExtraEntropy@
  
    -- | Extra entropy
    --
    -- /Note/ - Removed in Babbage
    ppExtraEntropyL,
    ppuExtraEntropyL,
  
    -- ** @ProtocolVersion@
  
    -- | Protocol version
    ppProtocolVersionL,
    ppuProtocolVersionL,
  
    -- ** @MinUTxOValue@
  
    -- | Minimum allowed value of a new TxOut
    ppuMinUTxOValueL,
    ppMinUTxOValueL,
  
    -- ** @MinPoolCast@
  
    -- | Miminum allowed stake pool cost
    ppMinPoolCostL,
    ppuMinPoolCostL,
  
    -- ** @KeyDeposit@
    ppKeyDepositL,
    ppuKeyDepositL,
  
    -- ** @MaxTxSize@
    ppMaxTxSizeL,
    ppuMaxTxSizeL,
  
    -- * Alonzo params
  
    -- | Protocol parameters introduced in Alonzo era
    UpgradeAlonzoPParams (..),
    DowngradeAlonzoPParams (..),
    LangDepView (..),
    getLanguageView,
  
    -- ** @CostModels@
  
    -- | Plutus `Cardano.Ledegr.Api.Scripts.CostModels`
    --
    -- To convert resource primitives into the more abstract
    -- `Cardano.Ledegr.Api.Scripts.ExUnits` during script execution a cost model needs to be
    -- supplied to the interpreter. The cost models required for this purpose are recorded
    -- in the @CostModels@ protocol parameter.
    ppCostModelsL,
    ppuCostModelsL,
  
    -- ** @Prices@
  
    -- | The calculation of the actual cost, in Ada, of running a script that takes
    -- `Cardano.Ledegr.Api.Scripts.ExUnits` resources to run, is done by a formula in the
    -- ledger rules, which uses the @Prices@ parameter
    ppPricesL,
    ppuPricesL,
  
    -- ** @MaxTxExUnits@
  
    -- | Limit the total per-transaction resource use for phase-2 scripts.
    ppMaxTxExUnitsL,
    ppuMaxTxExUnitsL,
  
    -- ** @MaxBlockExUnits@
  
    -- | Limit the total per-transaction and per-block resource use for phase-2 scripts.
    ppMaxBlockExUnitsL,
    ppuMaxBlockExUnitsL,
  
    -- ** @MaxValSize@
  
    -- | The new parameter maxValSize replaces the constant @maxValSize@ used Mary era to
    -- limit the size of the Value part of an output in a serialised transaction.
    ppMaxValSizeL,
    ppuMaxValSizeL,
  
    -- ** @CoinsPerUTxOWord@
  
    -- | In Alonzo, the protocol parameter @minUTxOValue@ is deprecated, and replaced by
    -- @coinsPerUTxOWord@. This specifies directly the deposit required for storing bytes of
    -- data on the ledger in the form of UTxO entries.
    CoinPerWord (..),
    ppCoinsPerUTxOWordL,
    ppuCoinsPerUTxOWordL,
  
    -- ** @CollateralPercentage@
  
    -- | The parameter collateralPercent is used to specify the percentage of the total
    -- transaction fee its collateral must (at minimum) cover.
    ppCollateralPercentageL,
    ppuCollateralPercentageL,
  
    -- ** @MaxCollateralInputs@
  
    -- | The parameter @maxCollateralInputs@ is used to limit, additionally, the total number
    -- of collateral inputs, and thus the total number of additional signatures that must be
    -- checked during validation.
    ppMaxCollateralInputsL,
    ppuMaxCollateralInputsL,
  
    -- * Babbage params
  
    -- | Protocol parameters introduced in Babbage era
    DowngradeBabbagePParams (..),
  
    -- ** @CoinsPerUTxOByte@
  
    -- | Cost in the amount of lovelace ber byte.
    --
    -- /Note/ - This parameter is a replacement for @coinsPerUTxOWord@
    CoinPerByte (..),
    coinsPerUTxOWordToCoinsPerUTxOByte,
    coinsPerUTxOByteToCoinsPerUTxOWord,
    ppCoinsPerUTxOByteL,
    ppuCoinsPerUTxOByteL,
  
    -- * Type classes
    EraPParams,
    AlonzoEraPParams,
    BabbageEraPParams,
  ) where
  
  import Cardano.Ledger.Alonzo.Core (
    AlonzoEraPParams,
    CoinPerWord (..),
    ppCoinsPerUTxOWordL,
    ppCollateralPercentageL,
    ppCostModelsL,
    ppMaxBlockExUnitsL,
    ppMaxCollateralInputsL,
    ppMaxTxExUnitsL,
    ppMaxValSizeL,
    ppPricesL,
    ppuCoinsPerUTxOWordL,
    ppuCollateralPercentageL,
    ppuCostModelsL,
    ppuMaxBlockExUnitsL,
    ppuMaxCollateralInputsL,
    ppuMaxTxExUnitsL,
    ppuMaxValSizeL,
    ppuPricesL,
   )
  import Cardano.Ledger.Alonzo.PParams (
    DowngradeAlonzoPParams (..),
    LangDepView (..),
    UpgradeAlonzoPParams (..),
    getLanguageView,
   )
  import Cardano.Ledger.Api.Era ()
  import Cardano.Ledger.Babbage.Core (
    BabbageEraPParams (..),
    CoinPerByte (..),
    ppCoinsPerUTxOByteL,
    ppuCoinsPerUTxOByteL,
   )
  import Cardano.Ledger.Babbage.PParams (
    DowngradeBabbagePParams (..),
    coinsPerUTxOByteToCoinsPerUTxOWord,
    coinsPerUTxOWordToCoinsPerUTxOByte,
   )
  import Cardano.Ledger.Core (
    EraPParams (DowngradePParams, UpgradePParams, ppDG),
    PParams (..),
    PParamsUpdate (..),
    downgradePParams,
    downgradePParamsUpdate,
    emptyPParams,
    emptyPParamsUpdate,
    ppA0L,
    ppDL,
    ppEMaxL,
    ppExtraEntropyL,
    ppKeyDepositL,
    ppMaxBBSizeL,
    ppMaxBHSizeL,
    ppMaxTxSizeL,
    ppMinFeeAL,
    ppMinFeeBL,
    ppMinPoolCostL,
    ppMinUTxOValueL,
    ppNOptL,
    ppPoolDepositL,
    ppProtocolVersionL,
    ppRhoL,
    ppTauL,
    ppuA0L,
    ppuDL,
    ppuEMaxL,
    ppuExtraEntropyL,
    ppuKeyDepositL,
    ppuMaxBBSizeL,
    ppuMaxBHSizeL,
    ppuMaxTxSizeL,
    ppuMinFeeAL,
    ppuMinFeeBL,
    ppuMinPoolCostL,
    ppuMinUTxOValueL,
    ppuNOptL,
    ppuPoolDepositL,
    ppuProtocolVersionL,
    ppuRhoL,
    ppuTauL,
    upgradePParams,
    upgradePParamsUpdate,
   )
  