{-# LANGUAGE AllowAmbiguousTypes #-}
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE DeriveAnyClass #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DerivingStrategies #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE GADTs #-}
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
{-# LANGUAGE InstanceSigs #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE StandaloneDeriving #-}
{-# LANGUAGE TypeApplications #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE UndecidableInstances #-}
{-# LANGUAGE UndecidableSuperClasses #-}
{-# OPTIONS_GHC -Wno-orphans #-}
module Cardano.Ledger.Alonzo.PParams (
AlonzoEraPParams (..),
ppCoinsPerUTxOWordL,
ppCostModelsL,
ppPricesL,
ppMaxTxExUnitsL,
ppMaxBlockExUnitsL,
ppMaxValSizeL,
ppCollateralPercentageL,
ppMaxCollateralInputsL,
ppuCoinsPerUTxOWordL,
ppuCostModelsL,
ppuPricesL,
ppuMaxTxExUnitsL,
ppuMaxBlockExUnitsL,
ppuMaxValSizeL,
ppuCollateralPercentageL,
ppuMaxCollateralInputsL,
AlonzoPParams (..),
UpgradeAlonzoPParams (..),
DowngradeAlonzoPParams (..),
emptyAlonzoPParams,
emptyAlonzoPParamsUpdate,
upgradeAlonzoPParams,
downgradeAlonzoPParams,
getLanguageView,
LangDepView (..),
encodeLangViews,
OrdExUnits (..),
CoinPerWord (..),
alonzoCommonPParamsHKDPairs,
)
where
import Cardano.Ledger.Alonzo.Era (AlonzoEra)
import Cardano.Ledger.BaseTypes (
EpochInterval (..),
NonNegativeInterval,
Nonce (NeutralNonce),
StrictMaybe (..),
UnitInterval,
isSNothing,
)
import qualified Cardano.Ledger.BaseTypes as BT (ProtVer (..))
import Cardano.Ledger.Binary (
DecCBOR (..),
EncCBOR (..),
Encoding,
FromCBOR (..),
ToCBOR (..),
decCBORGroup,
decodeRecordNamed,
encCBORGroup,
encodeFoldableAsDefLenList,
encodeFoldableAsIndefLenList,
encodeListLen,
encodeMapLen,
encodeNull,
encodePreEncoded,
listLen,
serialize',
)
import Cardano.Ledger.Binary.Coders (
Decode (..),
Density (..),
Encode (..),
Field (..),
Wrapped (..),
decode,
encode,
field,
(!>),
)
import Cardano.Ledger.Coin (Coin (..))
import Cardano.Ledger.Core (EraPParams (..))
import Cardano.Ledger.HKD (HKD, HKDFunctor (..))
import Cardano.Ledger.Mary.Core
import Cardano.Ledger.Plutus.CostModels (
CostModel,
CostModels,
costModelsValid,
emptyCostModels,
getCostModelLanguage,
getCostModelParams,
)
import Cardano.Ledger.Plutus.ExUnits (
ExUnits (..),
Prices (..),
zipSemiExUnits,
)
import Cardano.Ledger.Plutus.Language (Language (..))
import Cardano.Ledger.Shelley.PParams (
ShelleyPParams (..),
shelleyCommonPParamsHKDPairs,
shelleyCommonPParamsHKDPairsV6,
shelleyCommonPParamsHKDPairsV8,
)
import Control.DeepSeq (NFData)
import Data.Aeson as Aeson (
FromJSON (parseJSON),
Key,
KeyValue ((.=)),
ToJSON (..),
object,
pairs,
withObject,
(.!=),
(.:),
)
import qualified Data.Aeson.Types as Aeson
import Data.ByteString (ByteString)
import qualified Data.ByteString as BS
import Data.Coerce (coerce)
import Data.Default (Default (def))
import Data.Function (on)
import Data.Functor.Identity (Identity (..))
import Data.List (sortBy)
import qualified Data.Map.Strict as Map
import Data.Proxy (Proxy (Proxy))
import Data.Set (Set)
import qualified Data.Set as Set
import Data.Word (Word16, Word32)
import GHC.Generics (Generic)
import Lens.Micro (Lens', lens, (^.))
import NoThunks.Class (NoThunks (..))
import Numeric.Natural (Natural)
class EraPParams era => AlonzoEraPParams era where
hkdCoinsPerUTxOWordL ::
(HKDFunctor f, ExactEra AlonzoEra era) =>
Lens' (PParamsHKD f era) (HKD f CoinPerWord)
hkdCostModelsL :: HKDFunctor f => Lens' (PParamsHKD f era) (HKD f CostModels)
hkdPricesL :: HKDFunctor f => Lens' (PParamsHKD f era) (HKD f Prices)
hkdMaxTxExUnitsL :: HKDFunctor f => Lens' (PParamsHKD f era) (HKD f ExUnits)
hkdMaxBlockExUnitsL :: HKDFunctor f => Lens' (PParamsHKD f era) (HKD f ExUnits)
hkdMaxValSizeL :: HKDFunctor f => Lens' (PParamsHKD f era) (HKD f Natural)
hkdCollateralPercentageL :: HKDFunctor f => Lens' (PParamsHKD f era) (HKD f Natural)
hkdMaxCollateralInputsL :: HKDFunctor f => Lens' (PParamsHKD f era) (HKD f Natural)
ppCoinsPerUTxOWordL ::
forall era.
(AlonzoEraPParams era, ExactEra AlonzoEra era) =>
Lens' (PParams era) CoinPerWord
ppCoinsPerUTxOWordL :: forall era.
(AlonzoEraPParams era, ExactEra AlonzoEra era) =>
Lens' (PParams era) CoinPerWord
ppCoinsPerUTxOWordL = forall era. Lens' (PParams era) (PParamsHKD Identity era)
ppLens forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall era (f :: * -> *).
(AlonzoEraPParams era, HKDFunctor f, ExactEra AlonzoEra era) =>
Lens' (PParamsHKD f era) (HKD f CoinPerWord)
hkdCoinsPerUTxOWordL @era @Identity
ppCostModelsL :: forall era. AlonzoEraPParams era => Lens' (PParams era) CostModels
ppCostModelsL :: forall era. AlonzoEraPParams era => Lens' (PParams era) CostModels
ppCostModelsL = forall era. Lens' (PParams era) (PParamsHKD Identity era)
ppLens forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall era (f :: * -> *).
(AlonzoEraPParams era, HKDFunctor f) =>
Lens' (PParamsHKD f era) (HKD f CostModels)
hkdCostModelsL @era @Identity
ppPricesL :: forall era. AlonzoEraPParams era => Lens' (PParams era) Prices
ppPricesL :: forall era. AlonzoEraPParams era => Lens' (PParams era) Prices
ppPricesL = forall era. Lens' (PParams era) (PParamsHKD Identity era)
ppLens forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall era (f :: * -> *).
(AlonzoEraPParams era, HKDFunctor f) =>
Lens' (PParamsHKD f era) (HKD f Prices)
hkdPricesL @era @Identity
ppMaxTxExUnitsL :: forall era. AlonzoEraPParams era => Lens' (PParams era) ExUnits
ppMaxTxExUnitsL :: forall era. AlonzoEraPParams era => Lens' (PParams era) ExUnits
ppMaxTxExUnitsL = forall era. Lens' (PParams era) (PParamsHKD Identity era)
ppLens forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall era (f :: * -> *).
(AlonzoEraPParams era, HKDFunctor f) =>
Lens' (PParamsHKD f era) (HKD f ExUnits)
hkdMaxTxExUnitsL @era @Identity
ppMaxBlockExUnitsL :: forall era. AlonzoEraPParams era => Lens' (PParams era) ExUnits
ppMaxBlockExUnitsL :: forall era. AlonzoEraPParams era => Lens' (PParams era) ExUnits
ppMaxBlockExUnitsL = forall era. Lens' (PParams era) (PParamsHKD Identity era)
ppLens forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall era (f :: * -> *).
(AlonzoEraPParams era, HKDFunctor f) =>
Lens' (PParamsHKD f era) (HKD f ExUnits)
hkdMaxBlockExUnitsL @era @Identity
ppMaxValSizeL :: forall era. AlonzoEraPParams era => Lens' (PParams era) Natural
ppMaxValSizeL :: forall era. AlonzoEraPParams era => Lens' (PParams era) Natural
ppMaxValSizeL = forall era. Lens' (PParams era) (PParamsHKD Identity era)
ppLens forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall era (f :: * -> *).
(AlonzoEraPParams era, HKDFunctor f) =>
Lens' (PParamsHKD f era) (HKD f Natural)
hkdMaxValSizeL @era @Identity
ppCollateralPercentageL :: forall era. AlonzoEraPParams era => Lens' (PParams era) Natural
ppCollateralPercentageL :: forall era. AlonzoEraPParams era => Lens' (PParams era) Natural
ppCollateralPercentageL = forall era. Lens' (PParams era) (PParamsHKD Identity era)
ppLens forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall era (f :: * -> *).
(AlonzoEraPParams era, HKDFunctor f) =>
Lens' (PParamsHKD f era) (HKD f Natural)
hkdCollateralPercentageL @era @Identity
ppMaxCollateralInputsL :: forall era. AlonzoEraPParams era => Lens' (PParams era) Natural
ppMaxCollateralInputsL :: forall era. AlonzoEraPParams era => Lens' (PParams era) Natural
ppMaxCollateralInputsL = forall era. Lens' (PParams era) (PParamsHKD Identity era)
ppLens forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall era (f :: * -> *).
(AlonzoEraPParams era, HKDFunctor f) =>
Lens' (PParamsHKD f era) (HKD f Natural)
hkdMaxCollateralInputsL @era @Identity
ppuCoinsPerUTxOWordL ::
forall era.
(AlonzoEraPParams era, ExactEra AlonzoEra era) =>
Lens' (PParamsUpdate era) (StrictMaybe CoinPerWord)
ppuCoinsPerUTxOWordL :: forall era.
(AlonzoEraPParams era, ExactEra AlonzoEra era) =>
Lens' (PParamsUpdate era) (StrictMaybe CoinPerWord)
ppuCoinsPerUTxOWordL = forall era. Lens' (PParamsUpdate era) (PParamsHKD StrictMaybe era)
ppuLens forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall era (f :: * -> *).
(AlonzoEraPParams era, HKDFunctor f, ExactEra AlonzoEra era) =>
Lens' (PParamsHKD f era) (HKD f CoinPerWord)
hkdCoinsPerUTxOWordL @era @StrictMaybe
ppuCostModelsL ::
forall era.
AlonzoEraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe CostModels)
ppuCostModelsL :: forall era.
AlonzoEraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe CostModels)
ppuCostModelsL = forall era. Lens' (PParamsUpdate era) (PParamsHKD StrictMaybe era)
ppuLens forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall era (f :: * -> *).
(AlonzoEraPParams era, HKDFunctor f) =>
Lens' (PParamsHKD f era) (HKD f CostModels)
hkdCostModelsL @era @StrictMaybe
ppuPricesL ::
forall era.
AlonzoEraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe Prices)
ppuPricesL :: forall era.
AlonzoEraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe Prices)
ppuPricesL = forall era. Lens' (PParamsUpdate era) (PParamsHKD StrictMaybe era)
ppuLens forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall era (f :: * -> *).
(AlonzoEraPParams era, HKDFunctor f) =>
Lens' (PParamsHKD f era) (HKD f Prices)
hkdPricesL @era @StrictMaybe
ppuMaxTxExUnitsL ::
forall era.
AlonzoEraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe ExUnits)
ppuMaxTxExUnitsL :: forall era.
AlonzoEraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe ExUnits)
ppuMaxTxExUnitsL = forall era. Lens' (PParamsUpdate era) (PParamsHKD StrictMaybe era)
ppuLens forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall era (f :: * -> *).
(AlonzoEraPParams era, HKDFunctor f) =>
Lens' (PParamsHKD f era) (HKD f ExUnits)
hkdMaxTxExUnitsL @era @StrictMaybe
ppuMaxBlockExUnitsL ::
forall era.
AlonzoEraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe ExUnits)
ppuMaxBlockExUnitsL :: forall era.
AlonzoEraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe ExUnits)
ppuMaxBlockExUnitsL = forall era. Lens' (PParamsUpdate era) (PParamsHKD StrictMaybe era)
ppuLens forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall era (f :: * -> *).
(AlonzoEraPParams era, HKDFunctor f) =>
Lens' (PParamsHKD f era) (HKD f ExUnits)
hkdMaxBlockExUnitsL @era @StrictMaybe
ppuMaxValSizeL ::
forall era.
AlonzoEraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe Natural)
ppuMaxValSizeL :: forall era.
AlonzoEraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe Natural)
ppuMaxValSizeL = forall era. Lens' (PParamsUpdate era) (PParamsHKD StrictMaybe era)
ppuLens forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall era (f :: * -> *).
(AlonzoEraPParams era, HKDFunctor f) =>
Lens' (PParamsHKD f era) (HKD f Natural)
hkdMaxValSizeL @era @StrictMaybe
ppuCollateralPercentageL ::
forall era.
AlonzoEraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe Natural)
ppuCollateralPercentageL :: forall era.
AlonzoEraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe Natural)
ppuCollateralPercentageL = forall era. Lens' (PParamsUpdate era) (PParamsHKD StrictMaybe era)
ppuLens forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall era (f :: * -> *).
(AlonzoEraPParams era, HKDFunctor f) =>
Lens' (PParamsHKD f era) (HKD f Natural)
hkdCollateralPercentageL @era @StrictMaybe
ppuMaxCollateralInputsL ::
forall era.
AlonzoEraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe Natural)
ppuMaxCollateralInputsL :: forall era.
AlonzoEraPParams era =>
Lens' (PParamsUpdate era) (StrictMaybe Natural)
ppuMaxCollateralInputsL = forall era. Lens' (PParamsUpdate era) (PParamsHKD StrictMaybe era)
ppuLens forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall era (f :: * -> *).
(AlonzoEraPParams era, HKDFunctor f) =>
Lens' (PParamsHKD f era) (HKD f Natural)
hkdMaxCollateralInputsL @era @StrictMaybe
data AlonzoPParams f era = AlonzoPParams
{ forall (f :: * -> *) era. AlonzoPParams f era -> HKD f Coin
appMinFeeA :: !(HKD f Coin)
, forall (f :: * -> *) era. AlonzoPParams f era -> HKD f Coin
appMinFeeB :: !(HKD f Coin)
, forall (f :: * -> *) era. AlonzoPParams f era -> HKD f Word32
appMaxBBSize :: !(HKD f Word32)
, forall (f :: * -> *) era. AlonzoPParams f era -> HKD f Word32
appMaxTxSize :: !(HKD f Word32)
, forall (f :: * -> *) era. AlonzoPParams f era -> HKD f Word16
appMaxBHSize :: !(HKD f Word16)
, forall (f :: * -> *) era. AlonzoPParams f era -> HKD f Coin
appKeyDeposit :: !(HKD f Coin)
, forall (f :: * -> *) era. AlonzoPParams f era -> HKD f Coin
appPoolDeposit :: !(HKD f Coin)
, forall (f :: * -> *) era.
AlonzoPParams f era -> HKD f EpochInterval
appEMax :: !(HKD f EpochInterval)
, forall (f :: * -> *) era. AlonzoPParams f era -> HKD f Word16
appNOpt :: !(HKD f Word16)
, forall (f :: * -> *) era.
AlonzoPParams f era -> HKD f NonNegativeInterval
appA0 :: !(HKD f NonNegativeInterval)
, forall (f :: * -> *) era. AlonzoPParams f era -> HKD f UnitInterval
appRho :: !(HKD f UnitInterval)
, forall (f :: * -> *) era. AlonzoPParams f era -> HKD f UnitInterval
appTau :: !(HKD f UnitInterval)
, forall (f :: * -> *) era. AlonzoPParams f era -> HKD f UnitInterval
appD :: !(HKD f UnitInterval)
, :: !(HKD f Nonce)
, forall (f :: * -> *) era. AlonzoPParams f era -> HKD f ProtVer
appProtocolVersion :: !(HKD f BT.ProtVer)
, forall (f :: * -> *) era. AlonzoPParams f era -> HKD f Coin
appMinPoolCost :: !(HKD f Coin)
,
forall (f :: * -> *) era. AlonzoPParams f era -> HKD f CoinPerWord
appCoinsPerUTxOWord :: !(HKD f CoinPerWord)
, forall (f :: * -> *) era. AlonzoPParams f era -> HKD f CostModels
appCostModels :: !(HKD f CostModels)
, forall (f :: * -> *) era. AlonzoPParams f era -> HKD f Prices
appPrices :: !(HKD f Prices)
, forall (f :: * -> *) era. AlonzoPParams f era -> HKD f OrdExUnits
appMaxTxExUnits :: !(HKD f OrdExUnits)
, forall (f :: * -> *) era. AlonzoPParams f era -> HKD f OrdExUnits
appMaxBlockExUnits :: !(HKD f OrdExUnits)
, forall (f :: * -> *) era. AlonzoPParams f era -> HKD f Natural
appMaxValSize :: !(HKD f Natural)
, forall (f :: * -> *) era. AlonzoPParams f era -> HKD f Natural
appCollateralPercentage :: !(HKD f Natural)
, forall (f :: * -> *) era. AlonzoPParams f era -> HKD f Natural
appMaxCollateralInputs :: !(HKD f Natural)
}
deriving (forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
forall (f :: * -> *) era x.
Rep (AlonzoPParams f era) x -> AlonzoPParams f era
forall (f :: * -> *) era x.
AlonzoPParams f era -> Rep (AlonzoPParams f era) x
$cto :: forall (f :: * -> *) era x.
Rep (AlonzoPParams f era) x -> AlonzoPParams f era
$cfrom :: forall (f :: * -> *) era x.
AlonzoPParams f era -> Rep (AlonzoPParams f era) x
Generic)
deriving instance Eq (AlonzoPParams Identity era)
deriving instance Ord (AlonzoPParams Identity era)
deriving instance Show (AlonzoPParams Identity era)
instance NoThunks (AlonzoPParams Identity era)
instance NFData (AlonzoPParams Identity era)
deriving instance Eq (AlonzoPParams StrictMaybe era)
deriving instance Ord (AlonzoPParams StrictMaybe era)
deriving instance Show (AlonzoPParams StrictMaybe era)
instance NoThunks (AlonzoPParams StrictMaybe era)
instance NFData (AlonzoPParams StrictMaybe era)
instance EraPParams AlonzoEra where
type PParamsHKD f AlonzoEra = AlonzoPParams f AlonzoEra
type UpgradePParams f AlonzoEra = UpgradeAlonzoPParams f
type DowngradePParams f AlonzoEra = DowngradeAlonzoPParams f
emptyPParamsIdentity :: PParamsHKD Identity AlonzoEra
emptyPParamsIdentity = forall era. Era era => AlonzoPParams Identity era
emptyAlonzoPParams
emptyPParamsStrictMaybe :: PParamsHKD StrictMaybe AlonzoEra
emptyPParamsStrictMaybe = forall era. AlonzoPParams StrictMaybe era
emptyAlonzoPParamsUpdate
upgradePParamsHKD :: forall (f :: * -> *).
(HKDApplicative f, EraPParams (PreviousEra AlonzoEra)) =>
UpgradePParams f AlonzoEra
-> PParamsHKD f (PreviousEra AlonzoEra) -> PParamsHKD f AlonzoEra
upgradePParamsHKD = forall (f :: * -> *) era1 era2.
HKDFunctor f =>
UpgradeAlonzoPParams f
-> ShelleyPParams f era1 -> AlonzoPParams f era2
upgradeAlonzoPParams
downgradePParamsHKD :: forall (f :: * -> *).
(HKDFunctor f, EraPParams (PreviousEra AlonzoEra)) =>
DowngradePParams f AlonzoEra
-> PParamsHKD f AlonzoEra -> PParamsHKD f (PreviousEra AlonzoEra)
downgradePParamsHKD = forall (f :: * -> *) era2 era1.
DowngradeAlonzoPParams f
-> AlonzoPParams f era2 -> ShelleyPParams f era1
downgradeAlonzoPParams
hkdMinFeeAL :: forall (f :: * -> *).
HKDFunctor f =>
Lens' (PParamsHKD f AlonzoEra) (HKD f Coin)
hkdMinFeeAL = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens forall (f :: * -> *) era. AlonzoPParams f era -> HKD f Coin
appMinFeeA forall a b. (a -> b) -> a -> b
$ \PParamsHKD f AlonzoEra
pp HKD f Coin
x -> PParamsHKD f AlonzoEra
pp {appMinFeeA :: HKD f Coin
appMinFeeA = HKD f Coin
x}
hkdMinFeeBL :: forall (f :: * -> *).
HKDFunctor f =>
Lens' (PParamsHKD f AlonzoEra) (HKD f Coin)
hkdMinFeeBL = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens forall (f :: * -> *) era. AlonzoPParams f era -> HKD f Coin
appMinFeeB forall a b. (a -> b) -> a -> b
$ \PParamsHKD f AlonzoEra
pp HKD f Coin
x -> PParamsHKD f AlonzoEra
pp {appMinFeeB :: HKD f Coin
appMinFeeB = HKD f Coin
x}
hkdMaxBBSizeL :: forall (f :: * -> *).
HKDFunctor f =>
Lens' (PParamsHKD f AlonzoEra) (HKD f Word32)
hkdMaxBBSizeL = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens forall (f :: * -> *) era. AlonzoPParams f era -> HKD f Word32
appMaxBBSize forall a b. (a -> b) -> a -> b
$ \PParamsHKD f AlonzoEra
pp HKD f Word32
x -> PParamsHKD f AlonzoEra
pp {appMaxBBSize :: HKD f Word32
appMaxBBSize = HKD f Word32
x}
hkdMaxTxSizeL :: forall (f :: * -> *).
HKDFunctor f =>
Lens' (PParamsHKD f AlonzoEra) (HKD f Word32)
hkdMaxTxSizeL = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens forall (f :: * -> *) era. AlonzoPParams f era -> HKD f Word32
appMaxTxSize forall a b. (a -> b) -> a -> b
$ \PParamsHKD f AlonzoEra
pp HKD f Word32
x -> PParamsHKD f AlonzoEra
pp {appMaxTxSize :: HKD f Word32
appMaxTxSize = HKD f Word32
x}
hkdMaxBHSizeL :: forall (f :: * -> *).
HKDFunctor f =>
Lens' (PParamsHKD f AlonzoEra) (HKD f Word16)
hkdMaxBHSizeL = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens forall (f :: * -> *) era. AlonzoPParams f era -> HKD f Word16
appMaxBHSize forall a b. (a -> b) -> a -> b
$ \PParamsHKD f AlonzoEra
pp HKD f Word16
x -> PParamsHKD f AlonzoEra
pp {appMaxBHSize :: HKD f Word16
appMaxBHSize = HKD f Word16
x}
hkdKeyDepositL :: forall (f :: * -> *).
HKDFunctor f =>
Lens' (PParamsHKD f AlonzoEra) (HKD f Coin)
hkdKeyDepositL = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens forall (f :: * -> *) era. AlonzoPParams f era -> HKD f Coin
appKeyDeposit forall a b. (a -> b) -> a -> b
$ \PParamsHKD f AlonzoEra
pp HKD f Coin
x -> PParamsHKD f AlonzoEra
pp {appKeyDeposit :: HKD f Coin
appKeyDeposit = HKD f Coin
x}
hkdPoolDepositL :: forall (f :: * -> *).
HKDFunctor f =>
Lens' (PParamsHKD f AlonzoEra) (HKD f Coin)
hkdPoolDepositL = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens forall (f :: * -> *) era. AlonzoPParams f era -> HKD f Coin
appPoolDeposit forall a b. (a -> b) -> a -> b
$ \PParamsHKD f AlonzoEra
pp HKD f Coin
x -> PParamsHKD f AlonzoEra
pp {appPoolDeposit :: HKD f Coin
appPoolDeposit = HKD f Coin
x}
hkdEMaxL :: forall (f :: * -> *).
HKDFunctor f =>
Lens' (PParamsHKD f AlonzoEra) (HKD f EpochInterval)
hkdEMaxL = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens forall (f :: * -> *) era.
AlonzoPParams f era -> HKD f EpochInterval
appEMax forall a b. (a -> b) -> a -> b
$ \PParamsHKD f AlonzoEra
pp HKD f EpochInterval
x -> PParamsHKD f AlonzoEra
pp {appEMax :: HKD f EpochInterval
appEMax = HKD f EpochInterval
x}
hkdNOptL :: forall (f :: * -> *).
HKDFunctor f =>
Lens' (PParamsHKD f AlonzoEra) (HKD f Word16)
hkdNOptL = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens forall (f :: * -> *) era. AlonzoPParams f era -> HKD f Word16
appNOpt forall a b. (a -> b) -> a -> b
$ \PParamsHKD f AlonzoEra
pp HKD f Word16
x -> PParamsHKD f AlonzoEra
pp {appNOpt :: HKD f Word16
appNOpt = HKD f Word16
x}
hkdA0L :: forall (f :: * -> *).
HKDFunctor f =>
Lens' (PParamsHKD f AlonzoEra) (HKD f NonNegativeInterval)
hkdA0L = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens forall (f :: * -> *) era.
AlonzoPParams f era -> HKD f NonNegativeInterval
appA0 forall a b. (a -> b) -> a -> b
$ \PParamsHKD f AlonzoEra
pp HKD f NonNegativeInterval
x -> PParamsHKD f AlonzoEra
pp {appA0 :: HKD f NonNegativeInterval
appA0 = HKD f NonNegativeInterval
x}
hkdRhoL :: forall (f :: * -> *).
HKDFunctor f =>
Lens' (PParamsHKD f AlonzoEra) (HKD f UnitInterval)
hkdRhoL = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens forall (f :: * -> *) era. AlonzoPParams f era -> HKD f UnitInterval
appRho forall a b. (a -> b) -> a -> b
$ \PParamsHKD f AlonzoEra
pp HKD f UnitInterval
x -> PParamsHKD f AlonzoEra
pp {appRho :: HKD f UnitInterval
appRho = HKD f UnitInterval
x}
hkdTauL :: forall (f :: * -> *).
HKDFunctor f =>
Lens' (PParamsHKD f AlonzoEra) (HKD f UnitInterval)
hkdTauL = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens forall (f :: * -> *) era. AlonzoPParams f era -> HKD f UnitInterval
appTau forall a b. (a -> b) -> a -> b
$ \PParamsHKD f AlonzoEra
pp HKD f UnitInterval
x -> PParamsHKD f AlonzoEra
pp {appTau :: HKD f UnitInterval
appTau = HKD f UnitInterval
x}
hkdDL :: forall (f :: * -> *).
(HKDFunctor f, ProtVerAtMost AlonzoEra 6) =>
Lens' (PParamsHKD f AlonzoEra) (HKD f UnitInterval)
hkdDL = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens forall (f :: * -> *) era. AlonzoPParams f era -> HKD f UnitInterval
appD forall a b. (a -> b) -> a -> b
$ \PParamsHKD f AlonzoEra
pp HKD f UnitInterval
x -> PParamsHKD f AlonzoEra
pp {appD :: HKD f UnitInterval
appD = HKD f UnitInterval
x}
hkdExtraEntropyL :: forall (f :: * -> *).
(HKDFunctor f, ProtVerAtMost AlonzoEra 6) =>
Lens' (PParamsHKD f AlonzoEra) (HKD f Nonce)
hkdExtraEntropyL = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens forall (f :: * -> *) era. AlonzoPParams f era -> HKD f Nonce
appExtraEntropy forall a b. (a -> b) -> a -> b
$ \PParamsHKD f AlonzoEra
pp HKD f Nonce
x -> PParamsHKD f AlonzoEra
pp {appExtraEntropy :: HKD f Nonce
appExtraEntropy = HKD f Nonce
x}
hkdProtocolVersionL :: forall (f :: * -> *).
(HKDFunctor f, ProtVerAtMost AlonzoEra 8) =>
Lens' (PParamsHKD f AlonzoEra) (HKD f ProtVer)
hkdProtocolVersionL = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens forall (f :: * -> *) era. AlonzoPParams f era -> HKD f ProtVer
appProtocolVersion forall a b. (a -> b) -> a -> b
$ \PParamsHKD f AlonzoEra
pp HKD f ProtVer
x -> PParamsHKD f AlonzoEra
pp {appProtocolVersion :: HKD f ProtVer
appProtocolVersion = HKD f ProtVer
x}
hkdMinUTxOValueL :: forall (f :: * -> *).
(HKDFunctor f, ProtVerAtMost AlonzoEra 4) =>
Lens' (PParamsHKD f AlonzoEra) (HKD f Coin)
hkdMinUTxOValueL = forall a b. HasCallStack => Lens' a b
notSupportedInThisEraL
hkdMinPoolCostL :: forall (f :: * -> *).
HKDFunctor f =>
Lens' (PParamsHKD f AlonzoEra) (HKD f Coin)
hkdMinPoolCostL = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens forall (f :: * -> *) era. AlonzoPParams f era -> HKD f Coin
appMinPoolCost forall a b. (a -> b) -> a -> b
$ \PParamsHKD f AlonzoEra
pp HKD f Coin
x -> PParamsHKD f AlonzoEra
pp {appMinPoolCost :: HKD f Coin
appMinPoolCost = HKD f Coin
x}
instance AlonzoEraPParams AlonzoEra where
hkdCoinsPerUTxOWordL :: forall (f :: * -> *).
(HKDFunctor f, ExactEra AlonzoEra AlonzoEra) =>
Lens' (PParamsHKD f AlonzoEra) (HKD f CoinPerWord)
hkdCoinsPerUTxOWordL = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens forall (f :: * -> *) era. AlonzoPParams f era -> HKD f CoinPerWord
appCoinsPerUTxOWord forall a b. (a -> b) -> a -> b
$ \PParamsHKD f AlonzoEra
pp HKD f CoinPerWord
x -> PParamsHKD f AlonzoEra
pp {appCoinsPerUTxOWord :: HKD f CoinPerWord
appCoinsPerUTxOWord = HKD f CoinPerWord
x}
hkdCostModelsL :: forall (f :: * -> *).
HKDFunctor f =>
Lens' (PParamsHKD f AlonzoEra) (HKD f CostModels)
hkdCostModelsL = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens forall (f :: * -> *) era. AlonzoPParams f era -> HKD f CostModels
appCostModels forall a b. (a -> b) -> a -> b
$ \PParamsHKD f AlonzoEra
pp HKD f CostModels
x -> PParamsHKD f AlonzoEra
pp {appCostModels :: HKD f CostModels
appCostModels = HKD f CostModels
x}
hkdPricesL :: forall (f :: * -> *).
HKDFunctor f =>
Lens' (PParamsHKD f AlonzoEra) (HKD f Prices)
hkdPricesL = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens forall (f :: * -> *) era. AlonzoPParams f era -> HKD f Prices
appPrices forall a b. (a -> b) -> a -> b
$ \PParamsHKD f AlonzoEra
pp HKD f Prices
x -> PParamsHKD f AlonzoEra
pp {appPrices :: HKD f Prices
appPrices = HKD f Prices
x}
hkdMaxTxExUnitsL :: forall f. HKDFunctor f => Lens' (PParamsHKD f AlonzoEra) (HKD f ExUnits)
hkdMaxTxExUnitsL :: forall (f :: * -> *).
HKDFunctor f =>
Lens' (PParamsHKD f AlonzoEra) (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 (f :: * -> *) era. AlonzoPParams f era -> HKD f OrdExUnits
appMaxTxExUnits) forall a b. (a -> b) -> a -> b
$ \PParamsHKD f AlonzoEra
pp HKD f ExUnits
x ->
PParamsHKD f AlonzoEra
pp {appMaxTxExUnits :: HKD f OrdExUnits
appMaxTxExUnits = 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 AlonzoEra) (HKD f ExUnits)
hkdMaxBlockExUnitsL :: forall (f :: * -> *).
HKDFunctor f =>
Lens' (PParamsHKD f AlonzoEra) (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 (f :: * -> *) era. AlonzoPParams f era -> HKD f OrdExUnits
appMaxBlockExUnits) forall a b. (a -> b) -> a -> b
$ \PParamsHKD f AlonzoEra
pp HKD f ExUnits
x ->
PParamsHKD f AlonzoEra
pp {appMaxBlockExUnits :: HKD f OrdExUnits
appMaxBlockExUnits = 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 AlonzoEra) (HKD f Natural)
hkdMaxValSizeL = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens forall (f :: * -> *) era. AlonzoPParams f era -> HKD f Natural
appMaxValSize forall a b. (a -> b) -> a -> b
$ \PParamsHKD f AlonzoEra
pp HKD f Natural
x -> PParamsHKD f AlonzoEra
pp {appMaxValSize :: HKD f Natural
appMaxValSize = HKD f Natural
x}
hkdCollateralPercentageL :: forall (f :: * -> *).
HKDFunctor f =>
Lens' (PParamsHKD f AlonzoEra) (HKD f Natural)
hkdCollateralPercentageL =
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens forall (f :: * -> *) era. AlonzoPParams f era -> HKD f Natural
appCollateralPercentage forall a b. (a -> b) -> a -> b
$ \PParamsHKD f AlonzoEra
pp HKD f Natural
x -> PParamsHKD f AlonzoEra
pp {appCollateralPercentage :: HKD f Natural
appCollateralPercentage = HKD f Natural
x}
hkdMaxCollateralInputsL :: forall (f :: * -> *).
HKDFunctor f =>
Lens' (PParamsHKD f AlonzoEra) (HKD f Natural)
hkdMaxCollateralInputsL =
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens forall (f :: * -> *) era. AlonzoPParams f era -> HKD f Natural
appMaxCollateralInputs forall a b. (a -> b) -> a -> b
$ \PParamsHKD f AlonzoEra
pp HKD f Natural
x -> PParamsHKD f AlonzoEra
pp {appMaxCollateralInputs :: HKD f Natural
appMaxCollateralInputs = HKD f Natural
x}
instance EraGov AlonzoEra where
type GovState AlonzoEra = ShelleyGovState AlonzoEra
emptyGovState :: GovState AlonzoEra
emptyGovState = forall era. EraPParams era => ShelleyGovState era
emptyShelleyGovState
getProposedPPUpdates :: GovState AlonzoEra -> Maybe (ProposedPPUpdates AlonzoEra)
getProposedPPUpdates = forall a. a -> Maybe a
Just forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall era. ShelleyGovState era -> ProposedPPUpdates era
sgsCurProposals
curPParamsGovStateL :: Lens' (GovState AlonzoEra) (PParams AlonzoEra)
curPParamsGovStateL = forall era. Lens' (ShelleyGovState era) (PParams era)
curPParamsShelleyGovStateL
prevPParamsGovStateL :: Lens' (GovState AlonzoEra) (PParams AlonzoEra)
prevPParamsGovStateL = forall era. Lens' (ShelleyGovState era) (PParams era)
prevPParamsShelleyGovStateL
futurePParamsGovStateL :: Lens' (GovState AlonzoEra) (FuturePParams AlonzoEra)
futurePParamsGovStateL = forall era. Lens' (ShelleyGovState era) (FuturePParams era)
futurePParamsShelleyGovStateL
obligationGovState :: GovState AlonzoEra -> Obligations
obligationGovState = forall a b. a -> b -> a
const forall a. Monoid a => a
mempty
instance Era era => EncCBOR (AlonzoPParams Identity era) where
encCBOR :: AlonzoPParams Identity era -> Encoding
encCBOR AlonzoPParams {HKD Identity Natural
HKD Identity Word16
HKD Identity Word32
HKD Identity CostModels
HKD Identity Prices
HKD Identity Coin
HKD Identity ProtVer
HKD Identity NonNegativeInterval
HKD Identity UnitInterval
HKD Identity Nonce
HKD Identity EpochInterval
HKD Identity OrdExUnits
HKD Identity CoinPerWord
appMaxCollateralInputs :: HKD Identity Natural
appCollateralPercentage :: HKD Identity Natural
appMaxValSize :: HKD Identity Natural
appMaxBlockExUnits :: HKD Identity OrdExUnits
appMaxTxExUnits :: HKD Identity OrdExUnits
appPrices :: HKD Identity Prices
appCostModels :: HKD Identity CostModels
appCoinsPerUTxOWord :: HKD Identity CoinPerWord
appMinPoolCost :: HKD Identity Coin
appProtocolVersion :: HKD Identity ProtVer
appExtraEntropy :: HKD Identity Nonce
appD :: HKD Identity UnitInterval
appTau :: HKD Identity UnitInterval
appRho :: HKD Identity UnitInterval
appA0 :: HKD Identity NonNegativeInterval
appNOpt :: HKD Identity Word16
appEMax :: HKD Identity EpochInterval
appPoolDeposit :: HKD Identity Coin
appKeyDeposit :: HKD Identity Coin
appMaxBHSize :: HKD Identity Word16
appMaxTxSize :: HKD Identity Word32
appMaxBBSize :: HKD Identity Word32
appMinFeeB :: HKD Identity Coin
appMinFeeA :: HKD Identity Coin
appMaxCollateralInputs :: forall (f :: * -> *) era. AlonzoPParams f era -> HKD f Natural
appCollateralPercentage :: forall (f :: * -> *) era. AlonzoPParams f era -> HKD f Natural
appMaxValSize :: forall (f :: * -> *) era. AlonzoPParams f era -> HKD f Natural
appMaxBlockExUnits :: forall (f :: * -> *) era. AlonzoPParams f era -> HKD f OrdExUnits
appMaxTxExUnits :: forall (f :: * -> *) era. AlonzoPParams f era -> HKD f OrdExUnits
appPrices :: forall (f :: * -> *) era. AlonzoPParams f era -> HKD f Prices
appCostModels :: forall (f :: * -> *) era. AlonzoPParams f era -> HKD f CostModels
appCoinsPerUTxOWord :: forall (f :: * -> *) era. AlonzoPParams f era -> HKD f CoinPerWord
appMinPoolCost :: forall (f :: * -> *) era. AlonzoPParams f era -> HKD f Coin
appProtocolVersion :: forall (f :: * -> *) era. AlonzoPParams f era -> HKD f ProtVer
appExtraEntropy :: forall (f :: * -> *) era. AlonzoPParams f era -> HKD f Nonce
appD :: forall (f :: * -> *) era. AlonzoPParams f era -> HKD f UnitInterval
appTau :: forall (f :: * -> *) era. AlonzoPParams f era -> HKD f UnitInterval
appRho :: forall (f :: * -> *) era. AlonzoPParams f era -> HKD f UnitInterval
appA0 :: forall (f :: * -> *) era.
AlonzoPParams f era -> HKD f NonNegativeInterval
appNOpt :: forall (f :: * -> *) era. AlonzoPParams f era -> HKD f Word16
appEMax :: forall (f :: * -> *) era.
AlonzoPParams f era -> HKD f EpochInterval
appPoolDeposit :: forall (f :: * -> *) era. AlonzoPParams f era -> HKD f Coin
appKeyDeposit :: forall (f :: * -> *) era. AlonzoPParams f era -> HKD f Coin
appMaxBHSize :: forall (f :: * -> *) era. AlonzoPParams f era -> HKD f Word16
appMaxTxSize :: forall (f :: * -> *) era. AlonzoPParams f era -> HKD f Word32
appMaxBBSize :: forall (f :: * -> *) era. AlonzoPParams f era -> HKD f Word32
appMinFeeB :: forall (f :: * -> *) era. AlonzoPParams f era -> HKD f Coin
appMinFeeA :: forall (f :: * -> *) era. AlonzoPParams f era -> HKD f Coin
..} =
Word -> Encoding
encodeListLen (Word
23 forall a. Num a => a -> a -> a
+ forall a. EncCBORGroup a => a -> Word
listLen HKD Identity ProtVer
appProtocolVersion)
forall a. Semigroup a => a -> a -> a
<> forall a. EncCBOR a => a -> Encoding
encCBOR HKD Identity Coin
appMinFeeA
forall a. Semigroup a => a -> a -> a
<> forall a. EncCBOR a => a -> Encoding
encCBOR HKD Identity Coin
appMinFeeB
forall a. Semigroup a => a -> a -> a
<> forall a. EncCBOR a => a -> Encoding
encCBOR HKD Identity Word32
appMaxBBSize
forall a. Semigroup a => a -> a -> a
<> forall a. EncCBOR a => a -> Encoding
encCBOR HKD Identity Word32
appMaxTxSize
forall a. Semigroup a => a -> a -> a
<> forall a. EncCBOR a => a -> Encoding
encCBOR HKD Identity Word16
appMaxBHSize
forall a. Semigroup a => a -> a -> a
<> forall a. EncCBOR a => a -> Encoding
encCBOR HKD Identity Coin
appKeyDeposit
forall a. Semigroup a => a -> a -> a
<> forall a. EncCBOR a => a -> Encoding
encCBOR HKD Identity Coin
appPoolDeposit
forall a. Semigroup a => a -> a -> a
<> forall a. EncCBOR a => a -> Encoding
encCBOR HKD Identity EpochInterval
appEMax
forall a. Semigroup a => a -> a -> a
<> forall a. EncCBOR a => a -> Encoding
encCBOR HKD Identity Word16
appNOpt
forall a. Semigroup a => a -> a -> a
<> forall a. EncCBOR a => a -> Encoding
encCBOR HKD Identity NonNegativeInterval
appA0
forall a. Semigroup a => a -> a -> a
<> forall a. EncCBOR a => a -> Encoding
encCBOR HKD Identity UnitInterval
appRho
forall a. Semigroup a => a -> a -> a
<> forall a. EncCBOR a => a -> Encoding
encCBOR HKD Identity UnitInterval
appTau
forall a. Semigroup a => a -> a -> a
<> forall a. EncCBOR a => a -> Encoding
encCBOR HKD Identity UnitInterval
appD
forall a. Semigroup a => a -> a -> a
<> forall a. EncCBOR a => a -> Encoding
encCBOR HKD Identity Nonce
appExtraEntropy
forall a. Semigroup a => a -> a -> a
<> forall a. EncCBORGroup a => a -> Encoding
encCBORGroup HKD Identity ProtVer
appProtocolVersion
forall a. Semigroup a => a -> a -> a
<> forall a. EncCBOR a => a -> Encoding
encCBOR HKD Identity Coin
appMinPoolCost
forall a. Semigroup a => a -> a -> a
<> forall a. EncCBOR a => a -> Encoding
encCBOR HKD Identity CoinPerWord
appCoinsPerUTxOWord
forall a. Semigroup a => a -> a -> a
<> forall a. EncCBOR a => a -> Encoding
encCBOR HKD Identity CostModels
appCostModels
forall a. Semigroup a => a -> a -> a
<> forall a. EncCBOR a => a -> Encoding
encCBOR HKD Identity Prices
appPrices
forall a. Semigroup a => a -> a -> a
<> forall a. EncCBOR a => a -> Encoding
encCBOR HKD Identity OrdExUnits
appMaxTxExUnits
forall a. Semigroup a => a -> a -> a
<> forall a. EncCBOR a => a -> Encoding
encCBOR HKD Identity OrdExUnits
appMaxBlockExUnits
forall a. Semigroup a => a -> a -> a
<> forall a. EncCBOR a => a -> Encoding
encCBOR HKD Identity Natural
appMaxValSize
forall a. Semigroup a => a -> a -> a
<> forall a. EncCBOR a => a -> Encoding
encCBOR HKD Identity Natural
appCollateralPercentage
forall a. Semigroup a => a -> a -> a
<> forall a. EncCBOR a => a -> Encoding
encCBOR HKD Identity Natural
appMaxCollateralInputs
instance Era era => DecCBOR (AlonzoPParams Identity era) where
decCBOR :: forall s. Decoder s (AlonzoPParams Identity era)
decCBOR =
forall a s. Text -> (a -> Int) -> Decoder s a -> Decoder s a
decodeRecordNamed Text
"PParams" (\AlonzoPParams Identity era
pp -> Int
23 forall a. Num a => a -> a -> a
+ forall a b. (Integral a, Num b) => a -> b
fromIntegral (forall a. EncCBORGroup a => a -> Word
listLen (forall (f :: * -> *) era. AlonzoPParams f era -> HKD f ProtVer
appProtocolVersion AlonzoPParams Identity era
pp))) forall a b. (a -> b) -> a -> b
$ do
Coin
appMinFeeA <- forall a s. DecCBOR a => Decoder s a
decCBOR
Coin
appMinFeeB <- forall a s. DecCBOR a => Decoder s a
decCBOR
Word32
appMaxBBSize <- forall a s. DecCBOR a => Decoder s a
decCBOR
Word32
appMaxTxSize <- forall a s. DecCBOR a => Decoder s a
decCBOR
Word16
appMaxBHSize <- forall a s. DecCBOR a => Decoder s a
decCBOR
Coin
appKeyDeposit <- forall a s. DecCBOR a => Decoder s a
decCBOR
Coin
appPoolDeposit <- forall a s. DecCBOR a => Decoder s a
decCBOR
EpochInterval
appEMax <- forall a s. DecCBOR a => Decoder s a
decCBOR
Word16
appNOpt <- forall a s. DecCBOR a => Decoder s a
decCBOR
NonNegativeInterval
appA0 <- forall a s. DecCBOR a => Decoder s a
decCBOR
UnitInterval
appRho <- forall a s. DecCBOR a => Decoder s a
decCBOR
UnitInterval
appTau <- forall a s. DecCBOR a => Decoder s a
decCBOR
UnitInterval
appD <- forall a s. DecCBOR a => Decoder s a
decCBOR
Nonce
appExtraEntropy <- forall a s. DecCBOR a => Decoder s a
decCBOR
ProtVer
appProtocolVersion <- forall a s. DecCBORGroup a => Decoder s a
decCBORGroup
Coin
appMinPoolCost <- forall a s. DecCBOR a => Decoder s a
decCBOR
CoinPerWord
appCoinsPerUTxOWord <- forall a s. DecCBOR a => Decoder s a
decCBOR
CostModels
appCostModels <- forall a s. DecCBOR a => Decoder s a
decCBOR
Prices
appPrices <- forall a s. DecCBOR a => Decoder s a
decCBOR
OrdExUnits
appMaxTxExUnits <- forall a s. DecCBOR a => Decoder s a
decCBOR
OrdExUnits
appMaxBlockExUnits <- forall a s. DecCBOR a => Decoder s a
decCBOR
Natural
appMaxValSize <- forall a s. DecCBOR a => Decoder s a
decCBOR
Natural
appCollateralPercentage <- forall a s. DecCBOR a => Decoder s a
decCBOR
Natural
appMaxCollateralInputs <- forall a s. DecCBOR a => Decoder s a
decCBOR
forall (f :: * -> *) a. Applicative f => a -> f a
pure AlonzoPParams {Natural
Word16
Word32
CostModels
Prices
Coin
ProtVer
NonNegativeInterval
UnitInterval
Nonce
EpochInterval
OrdExUnits
CoinPerWord
appMaxCollateralInputs :: Natural
appCollateralPercentage :: Natural
appMaxValSize :: Natural
appMaxBlockExUnits :: OrdExUnits
appMaxTxExUnits :: OrdExUnits
appPrices :: Prices
appCostModels :: CostModels
appCoinsPerUTxOWord :: CoinPerWord
appMinPoolCost :: Coin
appProtocolVersion :: ProtVer
appExtraEntropy :: Nonce
appD :: UnitInterval
appTau :: UnitInterval
appRho :: UnitInterval
appA0 :: NonNegativeInterval
appNOpt :: Word16
appEMax :: EpochInterval
appPoolDeposit :: Coin
appKeyDeposit :: Coin
appMaxBHSize :: Word16
appMaxTxSize :: Word32
appMaxBBSize :: Word32
appMinFeeB :: Coin
appMinFeeA :: Coin
appMaxCollateralInputs :: HKD Identity Natural
appCollateralPercentage :: HKD Identity Natural
appMaxValSize :: HKD Identity Natural
appMaxBlockExUnits :: HKD Identity OrdExUnits
appMaxTxExUnits :: HKD Identity OrdExUnits
appPrices :: HKD Identity Prices
appCostModels :: HKD Identity CostModels
appCoinsPerUTxOWord :: HKD Identity CoinPerWord
appMinPoolCost :: HKD Identity Coin
appProtocolVersion :: HKD Identity ProtVer
appExtraEntropy :: HKD Identity Nonce
appD :: HKD Identity UnitInterval
appTau :: HKD Identity UnitInterval
appRho :: HKD Identity UnitInterval
appA0 :: HKD Identity NonNegativeInterval
appNOpt :: HKD Identity Word16
appEMax :: HKD Identity EpochInterval
appPoolDeposit :: HKD Identity Coin
appKeyDeposit :: HKD Identity Coin
appMaxBHSize :: HKD Identity Word16
appMaxTxSize :: HKD Identity Word32
appMaxBBSize :: HKD Identity Word32
appMinFeeB :: HKD Identity Coin
appMinFeeA :: HKD Identity Coin
..}
instance Era era => ToCBOR (AlonzoPParams Identity era) where
toCBOR :: AlonzoPParams Identity era -> Encoding
toCBOR = forall era t. (Era era, EncCBOR t) => t -> Encoding
toEraCBOR @era
instance Era era => FromCBOR (AlonzoPParams Identity era) where
fromCBOR :: forall s. Decoder s (AlonzoPParams Identity era)
fromCBOR = forall era t s. (Era era, DecCBOR t) => Decoder s t
fromEraCBOR @era
instance ToJSON (AlonzoPParams Identity AlonzoEra) where
toJSON :: AlonzoPParams Identity AlonzoEra -> Value
toJSON = [Pair] -> Value
object forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a e. KeyValue e a => PParamsHKD Identity AlonzoEra -> [a]
alonzoPParamsPairs
toEncoding :: AlonzoPParams Identity AlonzoEra -> 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 a e. KeyValue e a => PParamsHKD Identity AlonzoEra -> [a]
alonzoPParamsPairs
alonzoPParamsPairs ::
forall a e.
KeyValue e a =>
PParamsHKD Identity AlonzoEra ->
[a]
alonzoPParamsPairs :: forall a e. KeyValue e a => PParamsHKD Identity AlonzoEra -> [a]
alonzoPParamsPairs PParamsHKD Identity AlonzoEra
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 (f :: * -> *).
HKDFunctor f =>
Proxy f -> PParamsHKD f AlonzoEra -> [(Key, HKD f Value)]
alonzoPParamsHKDPairs (forall {k} (t :: k). Proxy t
Proxy @Identity) PParamsHKD Identity AlonzoEra
pp
instance FromJSON (AlonzoPParams Identity era) where
parseJSON :: Value -> Parser (AlonzoPParams Identity era)
parseJSON =
forall a. String -> (Object -> Parser a) -> Value -> Parser a
Aeson.withObject String
"PParams" forall a b. (a -> b) -> a -> b
$ \Object
obj ->
forall (f :: * -> *) era.
HKD f Coin
-> HKD f Coin
-> HKD f Word32
-> HKD f Word32
-> HKD f Word16
-> HKD f Coin
-> HKD f Coin
-> HKD f EpochInterval
-> HKD f Word16
-> HKD f NonNegativeInterval
-> HKD f UnitInterval
-> HKD f UnitInterval
-> HKD f UnitInterval
-> HKD f Nonce
-> HKD f ProtVer
-> HKD f Coin
-> HKD f CoinPerWord
-> HKD f CostModels
-> HKD f Prices
-> HKD f OrdExUnits
-> HKD f OrdExUnits
-> HKD f Natural
-> HKD f Natural
-> HKD f Natural
-> AlonzoPParams f era
AlonzoPParams
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
"decentralization"
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
obj forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"extraPraosEntropy"
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"
newtype CoinPerWord = CoinPerWord {CoinPerWord -> Coin
unCoinPerWord :: Coin}
deriving stock (CoinPerWord -> CoinPerWord -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CoinPerWord -> CoinPerWord -> Bool
$c/= :: CoinPerWord -> CoinPerWord -> Bool
== :: CoinPerWord -> CoinPerWord -> Bool
$c== :: CoinPerWord -> CoinPerWord -> Bool
Eq, Eq CoinPerWord
CoinPerWord -> CoinPerWord -> Bool
CoinPerWord -> CoinPerWord -> Ordering
CoinPerWord -> CoinPerWord -> CoinPerWord
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 :: CoinPerWord -> CoinPerWord -> CoinPerWord
$cmin :: CoinPerWord -> CoinPerWord -> CoinPerWord
max :: CoinPerWord -> CoinPerWord -> CoinPerWord
$cmax :: CoinPerWord -> CoinPerWord -> CoinPerWord
>= :: CoinPerWord -> CoinPerWord -> Bool
$c>= :: CoinPerWord -> CoinPerWord -> Bool
> :: CoinPerWord -> CoinPerWord -> Bool
$c> :: CoinPerWord -> CoinPerWord -> Bool
<= :: CoinPerWord -> CoinPerWord -> Bool
$c<= :: CoinPerWord -> CoinPerWord -> Bool
< :: CoinPerWord -> CoinPerWord -> Bool
$c< :: CoinPerWord -> CoinPerWord -> Bool
compare :: CoinPerWord -> CoinPerWord -> Ordering
$ccompare :: CoinPerWord -> CoinPerWord -> Ordering
Ord)
deriving newtype (Typeable CoinPerWord
CoinPerWord -> Encoding
(forall t. EncCBOR t => Proxy t -> Size)
-> Proxy [CoinPerWord] -> Size
(forall t. EncCBOR t => Proxy t -> Size)
-> Proxy CoinPerWord -> Size
forall a.
Typeable a
-> (a -> Encoding)
-> ((forall t. EncCBOR t => Proxy t -> Size) -> Proxy a -> Size)
-> ((forall t. EncCBOR t => Proxy t -> Size) -> Proxy [a] -> Size)
-> EncCBOR a
encodedListSizeExpr :: (forall t. EncCBOR t => Proxy t -> Size)
-> Proxy [CoinPerWord] -> Size
$cencodedListSizeExpr :: (forall t. EncCBOR t => Proxy t -> Size)
-> Proxy [CoinPerWord] -> Size
encodedSizeExpr :: (forall t. EncCBOR t => Proxy t -> Size)
-> Proxy CoinPerWord -> Size
$cencodedSizeExpr :: (forall t. EncCBOR t => Proxy t -> Size)
-> Proxy CoinPerWord -> Size
encCBOR :: CoinPerWord -> Encoding
$cencCBOR :: CoinPerWord -> Encoding
EncCBOR, Typeable CoinPerWord
Proxy CoinPerWord -> Text
forall s. Decoder s CoinPerWord
forall a.
Typeable a
-> (forall s. Decoder s a)
-> (forall s. Proxy a -> Decoder s ())
-> (Proxy a -> Text)
-> DecCBOR a
forall s. Proxy CoinPerWord -> Decoder s ()
label :: Proxy CoinPerWord -> Text
$clabel :: Proxy CoinPerWord -> Text
dropCBOR :: forall s. Proxy CoinPerWord -> Decoder s ()
$cdropCBOR :: forall s. Proxy CoinPerWord -> Decoder s ()
decCBOR :: forall s. Decoder s CoinPerWord
$cdecCBOR :: forall s. Decoder s CoinPerWord
DecCBOR, [CoinPerWord] -> Encoding
[CoinPerWord] -> Value
CoinPerWord -> Bool
CoinPerWord -> Encoding
CoinPerWord -> Value
forall a.
(a -> Value)
-> (a -> Encoding)
-> ([a] -> Value)
-> ([a] -> Encoding)
-> (a -> Bool)
-> ToJSON a
omitField :: CoinPerWord -> Bool
$comitField :: CoinPerWord -> Bool
toEncodingList :: [CoinPerWord] -> Encoding
$ctoEncodingList :: [CoinPerWord] -> Encoding
toJSONList :: [CoinPerWord] -> Value
$ctoJSONList :: [CoinPerWord] -> Value
toEncoding :: CoinPerWord -> Encoding
$ctoEncoding :: CoinPerWord -> Encoding
toJSON :: CoinPerWord -> Value
$ctoJSON :: CoinPerWord -> Value
ToJSON, Maybe CoinPerWord
Value -> Parser [CoinPerWord]
Value -> Parser CoinPerWord
forall a.
(Value -> Parser a)
-> (Value -> Parser [a]) -> Maybe a -> FromJSON a
omittedField :: Maybe CoinPerWord
$comittedField :: Maybe CoinPerWord
parseJSONList :: Value -> Parser [CoinPerWord]
$cparseJSONList :: Value -> Parser [CoinPerWord]
parseJSON :: Value -> Parser CoinPerWord
$cparseJSON :: Value -> Parser CoinPerWord
FromJSON, CoinPerWord -> ()
forall a. (a -> ()) -> NFData a
rnf :: CoinPerWord -> ()
$crnf :: CoinPerWord -> ()
NFData, Context -> CoinPerWord -> IO (Maybe ThunkInfo)
Proxy CoinPerWord -> String
forall a.
(Context -> a -> IO (Maybe ThunkInfo))
-> (Context -> a -> IO (Maybe ThunkInfo))
-> (Proxy a -> String)
-> NoThunks a
showTypeOf :: Proxy CoinPerWord -> String
$cshowTypeOf :: Proxy CoinPerWord -> String
wNoThunks :: Context -> CoinPerWord -> IO (Maybe ThunkInfo)
$cwNoThunks :: Context -> CoinPerWord -> IO (Maybe ThunkInfo)
noThunks :: Context -> CoinPerWord -> IO (Maybe ThunkInfo)
$cnoThunks :: Context -> CoinPerWord -> IO (Maybe ThunkInfo)
NoThunks, Int -> CoinPerWord -> ShowS
[CoinPerWord] -> ShowS
CoinPerWord -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CoinPerWord] -> ShowS
$cshowList :: [CoinPerWord] -> ShowS
show :: CoinPerWord -> String
$cshow :: CoinPerWord -> String
showsPrec :: Int -> CoinPerWord -> ShowS
$cshowsPrec :: Int -> CoinPerWord -> ShowS
Show)
newtype OrdExUnits = OrdExUnits {OrdExUnits -> ExUnits
unOrdExUnits :: ExUnits}
deriving (OrdExUnits -> OrdExUnits -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: OrdExUnits -> OrdExUnits -> Bool
$c/= :: OrdExUnits -> OrdExUnits -> Bool
== :: OrdExUnits -> OrdExUnits -> Bool
$c== :: OrdExUnits -> OrdExUnits -> Bool
Eq)
deriving newtype (Int -> OrdExUnits -> ShowS
[OrdExUnits] -> ShowS
OrdExUnits -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [OrdExUnits] -> ShowS
$cshowList :: [OrdExUnits] -> ShowS
show :: OrdExUnits -> String
$cshow :: OrdExUnits -> String
showsPrec :: Int -> OrdExUnits -> ShowS
$cshowsPrec :: Int -> OrdExUnits -> ShowS
Show, Context -> OrdExUnits -> IO (Maybe ThunkInfo)
Proxy OrdExUnits -> String
forall a.
(Context -> a -> IO (Maybe ThunkInfo))
-> (Context -> a -> IO (Maybe ThunkInfo))
-> (Proxy a -> String)
-> NoThunks a
showTypeOf :: Proxy OrdExUnits -> String
$cshowTypeOf :: Proxy OrdExUnits -> String
wNoThunks :: Context -> OrdExUnits -> IO (Maybe ThunkInfo)
$cwNoThunks :: Context -> OrdExUnits -> IO (Maybe ThunkInfo)
noThunks :: Context -> OrdExUnits -> IO (Maybe ThunkInfo)
$cnoThunks :: Context -> OrdExUnits -> IO (Maybe ThunkInfo)
NoThunks, OrdExUnits -> ()
forall a. (a -> ()) -> NFData a
rnf :: OrdExUnits -> ()
$crnf :: OrdExUnits -> ()
NFData, Typeable OrdExUnits
Proxy OrdExUnits -> Text
forall s. Decoder s OrdExUnits
forall a.
Typeable a
-> (forall s. Decoder s a)
-> (forall s. Proxy a -> Decoder s ())
-> (Proxy a -> Text)
-> DecCBOR a
forall s. Proxy OrdExUnits -> Decoder s ()
label :: Proxy OrdExUnits -> Text
$clabel :: Proxy OrdExUnits -> Text
dropCBOR :: forall s. Proxy OrdExUnits -> Decoder s ()
$cdropCBOR :: forall s. Proxy OrdExUnits -> Decoder s ()
decCBOR :: forall s. Decoder s OrdExUnits
$cdecCBOR :: forall s. Decoder s OrdExUnits
DecCBOR, Typeable OrdExUnits
OrdExUnits -> Encoding
(forall t. EncCBOR t => Proxy t -> Size)
-> Proxy [OrdExUnits] -> Size
(forall t. EncCBOR t => Proxy t -> Size)
-> Proxy OrdExUnits -> Size
forall a.
Typeable a
-> (a -> Encoding)
-> ((forall t. EncCBOR t => Proxy t -> Size) -> Proxy a -> Size)
-> ((forall t. EncCBOR t => Proxy t -> Size) -> Proxy [a] -> Size)
-> EncCBOR a
encodedListSizeExpr :: (forall t. EncCBOR t => Proxy t -> Size)
-> Proxy [OrdExUnits] -> Size
$cencodedListSizeExpr :: (forall t. EncCBOR t => Proxy t -> Size)
-> Proxy [OrdExUnits] -> Size
encodedSizeExpr :: (forall t. EncCBOR t => Proxy t -> Size)
-> Proxy OrdExUnits -> Size
$cencodedSizeExpr :: (forall t. EncCBOR t => Proxy t -> Size)
-> Proxy OrdExUnits -> Size
encCBOR :: OrdExUnits -> Encoding
$cencCBOR :: OrdExUnits -> Encoding
EncCBOR, Maybe OrdExUnits
Value -> Parser [OrdExUnits]
Value -> Parser OrdExUnits
forall a.
(Value -> Parser a)
-> (Value -> Parser [a]) -> Maybe a -> FromJSON a
omittedField :: Maybe OrdExUnits
$comittedField :: Maybe OrdExUnits
parseJSONList :: Value -> Parser [OrdExUnits]
$cparseJSONList :: Value -> Parser [OrdExUnits]
parseJSON :: Value -> Parser OrdExUnits
$cparseJSON :: Value -> Parser OrdExUnits
FromJSON, [OrdExUnits] -> Encoding
[OrdExUnits] -> Value
OrdExUnits -> Bool
OrdExUnits -> Encoding
OrdExUnits -> Value
forall a.
(a -> Value)
-> (a -> Encoding)
-> ([a] -> Value)
-> ([a] -> Encoding)
-> (a -> Bool)
-> ToJSON a
omitField :: OrdExUnits -> Bool
$comitField :: OrdExUnits -> Bool
toEncodingList :: [OrdExUnits] -> Encoding
$ctoEncodingList :: [OrdExUnits] -> Encoding
toJSONList :: [OrdExUnits] -> Value
$ctoJSONList :: [OrdExUnits] -> Value
toEncoding :: OrdExUnits -> Encoding
$ctoEncoding :: OrdExUnits -> Encoding
toJSON :: OrdExUnits -> Value
$ctoJSON :: OrdExUnits -> Value
ToJSON)
instance Ord OrdExUnits where
compare :: OrdExUnits -> OrdExUnits -> Ordering
compare = coerce :: forall a b. Coercible a b => a -> b
coerce (forall a.
Semigroup a =>
(Natural -> Natural -> a) -> ExUnits -> ExUnits -> a
zipSemiExUnits forall a. Ord a => a -> a -> Ordering
compare)
data UpgradeAlonzoPParams f = UpgradeAlonzoPParams
{ forall (f :: * -> *). UpgradeAlonzoPParams f -> HKD f CoinPerWord
uappCoinsPerUTxOWord :: !(HKD f CoinPerWord)
, forall (f :: * -> *). UpgradeAlonzoPParams f -> HKD f CostModels
uappCostModels :: !(HKD f CostModels)
, forall (f :: * -> *). UpgradeAlonzoPParams f -> HKD f Prices
uappPrices :: !(HKD f Prices)
, forall (f :: * -> *). UpgradeAlonzoPParams f -> HKD f ExUnits
uappMaxTxExUnits :: !(HKD f ExUnits)
, forall (f :: * -> *). UpgradeAlonzoPParams f -> HKD f ExUnits
uappMaxBlockExUnits :: !(HKD f ExUnits)
, forall (f :: * -> *). UpgradeAlonzoPParams f -> HKD f Natural
uappMaxValSize :: !(HKD f Natural)
, forall (f :: * -> *). UpgradeAlonzoPParams f -> HKD f Natural
uappCollateralPercentage :: !(HKD f Natural)
, forall (f :: * -> *). UpgradeAlonzoPParams f -> HKD f Natural
uappMaxCollateralInputs :: !(HKD f Natural)
}
deriving (forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
forall (f :: * -> *) x.
Rep (UpgradeAlonzoPParams f) x -> UpgradeAlonzoPParams f
forall (f :: * -> *) x.
UpgradeAlonzoPParams f -> Rep (UpgradeAlonzoPParams f) x
$cto :: forall (f :: * -> *) x.
Rep (UpgradeAlonzoPParams f) x -> UpgradeAlonzoPParams f
$cfrom :: forall (f :: * -> *) x.
UpgradeAlonzoPParams f -> Rep (UpgradeAlonzoPParams f) x
Generic)
deriving instance Eq (UpgradeAlonzoPParams Identity)
deriving instance Show (UpgradeAlonzoPParams Identity)
instance NoThunks (UpgradeAlonzoPParams Identity)
instance NFData (UpgradeAlonzoPParams Identity)
instance Default (UpgradeAlonzoPParams StrictMaybe) where
def :: UpgradeAlonzoPParams StrictMaybe
def =
UpgradeAlonzoPParams
{ uappCoinsPerUTxOWord :: HKD StrictMaybe CoinPerWord
uappCoinsPerUTxOWord = forall a. StrictMaybe a
SNothing
, uappCostModels :: HKD StrictMaybe CostModels
uappCostModels = forall a. StrictMaybe a
SNothing
, uappPrices :: HKD StrictMaybe Prices
uappPrices = forall a. StrictMaybe a
SNothing
, uappMaxTxExUnits :: HKD StrictMaybe ExUnits
uappMaxTxExUnits = forall a. StrictMaybe a
SNothing
, uappMaxBlockExUnits :: HKD StrictMaybe ExUnits
uappMaxBlockExUnits = forall a. StrictMaybe a
SNothing
, uappMaxValSize :: HKD StrictMaybe Natural
uappMaxValSize = forall a. StrictMaybe a
SNothing
, uappCollateralPercentage :: HKD StrictMaybe Natural
uappCollateralPercentage = forall a. StrictMaybe a
SNothing
, uappMaxCollateralInputs :: HKD StrictMaybe Natural
uappMaxCollateralInputs = forall a. StrictMaybe a
SNothing
}
newtype DowngradeAlonzoPParams f = DowngradeAlonzoPParams
{ forall (f :: * -> *). DowngradeAlonzoPParams f -> HKD f Coin
dappMinUTxOValue :: HKD f Coin
}
deriving (forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
forall (f :: * -> *) x.
Rep (DowngradeAlonzoPParams f) x -> DowngradeAlonzoPParams f
forall (f :: * -> *) x.
DowngradeAlonzoPParams f -> Rep (DowngradeAlonzoPParams f) x
$cto :: forall (f :: * -> *) x.
Rep (DowngradeAlonzoPParams f) x -> DowngradeAlonzoPParams f
$cfrom :: forall (f :: * -> *) x.
DowngradeAlonzoPParams f -> Rep (DowngradeAlonzoPParams f) x
Generic)
deriving instance Eq (DowngradeAlonzoPParams Identity)
deriving instance Show (DowngradeAlonzoPParams Identity)
instance NoThunks (DowngradeAlonzoPParams Identity)
instance NFData (DowngradeAlonzoPParams Identity)
emptyAlonzoPParams :: forall era. Era era => AlonzoPParams Identity era
emptyAlonzoPParams :: forall era. Era era => AlonzoPParams Identity era
emptyAlonzoPParams =
AlonzoPParams
{ appMinFeeA :: HKD Identity Coin
appMinFeeA = Integer -> Coin
Coin Integer
0
, appMinFeeB :: HKD Identity Coin
appMinFeeB = Integer -> Coin
Coin Integer
0
, appMaxBBSize :: HKD Identity Word32
appMaxBBSize = Word32
0
, appMaxTxSize :: HKD Identity Word32
appMaxTxSize = Word32
2048
, appMaxBHSize :: HKD Identity Word16
appMaxBHSize = Word16
0
, appKeyDeposit :: HKD Identity Coin
appKeyDeposit = Integer -> Coin
Coin Integer
0
, appPoolDeposit :: HKD Identity Coin
appPoolDeposit = Integer -> Coin
Coin Integer
0
, appEMax :: HKD Identity EpochInterval
appEMax = Word32 -> EpochInterval
EpochInterval Word32
0
, appNOpt :: HKD Identity Word16
appNOpt = Word16
100
, appA0 :: HKD Identity NonNegativeInterval
appA0 = forall a. Bounded a => a
minBound
, appRho :: HKD Identity UnitInterval
appRho = forall a. Bounded a => a
minBound
, appTau :: HKD Identity UnitInterval
appTau = forall a. Bounded a => a
minBound
, appD :: HKD Identity UnitInterval
appD = forall a. Bounded a => a
minBound
, appExtraEntropy :: HKD Identity Nonce
appExtraEntropy = Nonce
NeutralNonce
, appProtocolVersion :: HKD Identity ProtVer
appProtocolVersion = Version -> Natural -> ProtVer
BT.ProtVer (forall era. Era era => Version
eraProtVerLow @era) Natural
0
, appMinPoolCost :: HKD Identity Coin
appMinPoolCost = forall a. Monoid a => a
mempty
,
appCoinsPerUTxOWord :: HKD Identity CoinPerWord
appCoinsPerUTxOWord = Coin -> CoinPerWord
CoinPerWord (Integer -> Coin
Coin Integer
0)
, appCostModels :: HKD Identity CostModels
appCostModels = CostModels
emptyCostModels
, appPrices :: HKD Identity Prices
appPrices = NonNegativeInterval -> NonNegativeInterval -> Prices
Prices forall a. Bounded a => a
minBound forall a. Bounded a => a
minBound
, appMaxTxExUnits :: HKD Identity OrdExUnits
appMaxTxExUnits = ExUnits -> OrdExUnits
OrdExUnits forall a b. (a -> b) -> a -> b
$ Natural -> Natural -> ExUnits
ExUnits Natural
0 Natural
0
, appMaxBlockExUnits :: HKD Identity OrdExUnits
appMaxBlockExUnits = ExUnits -> OrdExUnits
OrdExUnits forall a b. (a -> b) -> a -> b
$ Natural -> Natural -> ExUnits
ExUnits Natural
0 Natural
0
, appMaxValSize :: HKD Identity Natural
appMaxValSize = Natural
0
, appCollateralPercentage :: HKD Identity Natural
appCollateralPercentage = Natural
150
, appMaxCollateralInputs :: HKD Identity Natural
appMaxCollateralInputs = Natural
5
}
emptyAlonzoPParamsUpdate :: AlonzoPParams StrictMaybe era
emptyAlonzoPParamsUpdate :: forall era. AlonzoPParams StrictMaybe era
emptyAlonzoPParamsUpdate =
AlonzoPParams
{ appMinFeeA :: HKD StrictMaybe Coin
appMinFeeA = forall a. StrictMaybe a
SNothing
, appMinFeeB :: HKD StrictMaybe Coin
appMinFeeB = forall a. StrictMaybe a
SNothing
, appMaxBBSize :: HKD StrictMaybe Word32
appMaxBBSize = forall a. StrictMaybe a
SNothing
, appMaxTxSize :: HKD StrictMaybe Word32
appMaxTxSize = forall a. StrictMaybe a
SNothing
, appMaxBHSize :: HKD StrictMaybe Word16
appMaxBHSize = forall a. StrictMaybe a
SNothing
, appKeyDeposit :: HKD StrictMaybe Coin
appKeyDeposit = forall a. StrictMaybe a
SNothing
, appPoolDeposit :: HKD StrictMaybe Coin
appPoolDeposit = forall a. StrictMaybe a
SNothing
, appEMax :: HKD StrictMaybe EpochInterval
appEMax = forall a. StrictMaybe a
SNothing
, appNOpt :: HKD StrictMaybe Word16
appNOpt = forall a. StrictMaybe a
SNothing
, appA0 :: HKD StrictMaybe NonNegativeInterval
appA0 = forall a. StrictMaybe a
SNothing
, appRho :: HKD StrictMaybe UnitInterval
appRho = forall a. StrictMaybe a
SNothing
, appTau :: HKD StrictMaybe UnitInterval
appTau = forall a. StrictMaybe a
SNothing
, appD :: HKD StrictMaybe UnitInterval
appD = forall a. StrictMaybe a
SNothing
, appExtraEntropy :: HKD StrictMaybe Nonce
appExtraEntropy = forall a. StrictMaybe a
SNothing
, appProtocolVersion :: HKD StrictMaybe ProtVer
appProtocolVersion = forall a. StrictMaybe a
SNothing
, appMinPoolCost :: HKD StrictMaybe Coin
appMinPoolCost = forall a. StrictMaybe a
SNothing
,
appCoinsPerUTxOWord :: HKD StrictMaybe CoinPerWord
appCoinsPerUTxOWord = forall a. StrictMaybe a
SNothing
, appCostModels :: HKD StrictMaybe CostModels
appCostModels = forall a. StrictMaybe a
SNothing
, appPrices :: HKD StrictMaybe Prices
appPrices = forall a. StrictMaybe a
SNothing
, appMaxTxExUnits :: HKD StrictMaybe OrdExUnits
appMaxTxExUnits = forall a. StrictMaybe a
SNothing
, appMaxBlockExUnits :: HKD StrictMaybe OrdExUnits
appMaxBlockExUnits = forall a. StrictMaybe a
SNothing
, appMaxValSize :: HKD StrictMaybe Natural
appMaxValSize = forall a. StrictMaybe a
SNothing
, appCollateralPercentage :: HKD StrictMaybe Natural
appCollateralPercentage = forall a. StrictMaybe a
SNothing
, appMaxCollateralInputs :: HKD StrictMaybe Natural
appMaxCollateralInputs = forall a. StrictMaybe a
SNothing
}
encodePParamsUpdate ::
AlonzoPParams StrictMaybe era ->
Encode ('Closed 'Sparse) (AlonzoPParams StrictMaybe era)
encodePParamsUpdate :: forall era.
AlonzoPParams StrictMaybe era
-> Encode ('Closed 'Sparse) (AlonzoPParams StrictMaybe era)
encodePParamsUpdate AlonzoPParams StrictMaybe era
ppup =
forall t. t -> Encode ('Closed 'Sparse) t
Keyed forall (f :: * -> *) era.
HKD f Coin
-> HKD f Coin
-> HKD f Word32
-> HKD f Word32
-> HKD f Word16
-> HKD f Coin
-> HKD f Coin
-> HKD f EpochInterval
-> HKD f Word16
-> HKD f NonNegativeInterval
-> HKD f UnitInterval
-> HKD f UnitInterval
-> HKD f UnitInterval
-> HKD f Nonce
-> HKD f ProtVer
-> HKD f Coin
-> HKD f CoinPerWord
-> HKD f CostModels
-> HKD f Prices
-> HKD f OrdExUnits
-> HKD f OrdExUnits
-> HKD f Natural
-> HKD f Natural
-> HKD f Natural
-> AlonzoPParams f era
AlonzoPParams
forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode ('Closed r) a -> Encode w t
!> forall a.
Word
-> StrictMaybe a
-> (a -> Encoding)
-> Encode ('Closed 'Sparse) (StrictMaybe a)
omitStrictMaybe Word
0 (forall (f :: * -> *) era. AlonzoPParams f era -> HKD f Coin
appMinFeeA AlonzoPParams StrictMaybe era
ppup) 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 a.
Word
-> StrictMaybe a
-> (a -> Encoding)
-> Encode ('Closed 'Sparse) (StrictMaybe a)
omitStrictMaybe Word
1 (forall (f :: * -> *) era. AlonzoPParams f era -> HKD f Coin
appMinFeeB AlonzoPParams StrictMaybe era
ppup) 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 a.
Word
-> StrictMaybe a
-> (a -> Encoding)
-> Encode ('Closed 'Sparse) (StrictMaybe a)
omitStrictMaybe Word
2 (forall (f :: * -> *) era. AlonzoPParams f era -> HKD f Word32
appMaxBBSize AlonzoPParams StrictMaybe era
ppup) 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 a.
Word
-> StrictMaybe a
-> (a -> Encoding)
-> Encode ('Closed 'Sparse) (StrictMaybe a)
omitStrictMaybe Word
3 (forall (f :: * -> *) era. AlonzoPParams f era -> HKD f Word32
appMaxTxSize AlonzoPParams StrictMaybe era
ppup) 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 a.
Word
-> StrictMaybe a
-> (a -> Encoding)
-> Encode ('Closed 'Sparse) (StrictMaybe a)
omitStrictMaybe Word
4 (forall (f :: * -> *) era. AlonzoPParams f era -> HKD f Word16
appMaxBHSize AlonzoPParams StrictMaybe era
ppup) 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 a.
Word
-> StrictMaybe a
-> (a -> Encoding)
-> Encode ('Closed 'Sparse) (StrictMaybe a)
omitStrictMaybe Word
5 (forall (f :: * -> *) era. AlonzoPParams f era -> HKD f Coin
appKeyDeposit AlonzoPParams StrictMaybe era
ppup) 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 a.
Word
-> StrictMaybe a
-> (a -> Encoding)
-> Encode ('Closed 'Sparse) (StrictMaybe a)
omitStrictMaybe Word
6 (forall (f :: * -> *) era. AlonzoPParams f era -> HKD f Coin
appPoolDeposit AlonzoPParams StrictMaybe era
ppup) 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 a.
Word
-> StrictMaybe a
-> (a -> Encoding)
-> Encode ('Closed 'Sparse) (StrictMaybe a)
omitStrictMaybe Word
7 (forall (f :: * -> *) era.
AlonzoPParams f era -> HKD f EpochInterval
appEMax AlonzoPParams StrictMaybe era
ppup) 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 a.
Word
-> StrictMaybe a
-> (a -> Encoding)
-> Encode ('Closed 'Sparse) (StrictMaybe a)
omitStrictMaybe Word
8 (forall (f :: * -> *) era. AlonzoPParams f era -> HKD f Word16
appNOpt AlonzoPParams StrictMaybe era
ppup) 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 a.
Word
-> StrictMaybe a
-> (a -> Encoding)
-> Encode ('Closed 'Sparse) (StrictMaybe a)
omitStrictMaybe Word
9 (forall (f :: * -> *) era.
AlonzoPParams f era -> HKD f NonNegativeInterval
appA0 AlonzoPParams StrictMaybe era
ppup) 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 a.
Word
-> StrictMaybe a
-> (a -> Encoding)
-> Encode ('Closed 'Sparse) (StrictMaybe a)
omitStrictMaybe Word
10 (forall (f :: * -> *) era. AlonzoPParams f era -> HKD f UnitInterval
appRho AlonzoPParams StrictMaybe era
ppup) 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 a.
Word
-> StrictMaybe a
-> (a -> Encoding)
-> Encode ('Closed 'Sparse) (StrictMaybe a)
omitStrictMaybe Word
11 (forall (f :: * -> *) era. AlonzoPParams f era -> HKD f UnitInterval
appTau AlonzoPParams StrictMaybe era
ppup) 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 a.
Word
-> StrictMaybe a
-> (a -> Encoding)
-> Encode ('Closed 'Sparse) (StrictMaybe a)
omitStrictMaybe Word
12 (forall (f :: * -> *) era. AlonzoPParams f era -> HKD f UnitInterval
appD AlonzoPParams StrictMaybe era
ppup) 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 a.
Word
-> StrictMaybe a
-> (a -> Encoding)
-> Encode ('Closed 'Sparse) (StrictMaybe a)
omitStrictMaybe Word
13 (forall (f :: * -> *) era. AlonzoPParams f era -> HKD f Nonce
appExtraEntropy AlonzoPParams StrictMaybe era
ppup) 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 a.
Word
-> StrictMaybe a
-> (a -> Encoding)
-> Encode ('Closed 'Sparse) (StrictMaybe a)
omitStrictMaybe Word
14 (forall (f :: * -> *) era. AlonzoPParams f era -> HKD f ProtVer
appProtocolVersion AlonzoPParams StrictMaybe era
ppup) 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 a.
Word
-> StrictMaybe a
-> (a -> Encoding)
-> Encode ('Closed 'Sparse) (StrictMaybe a)
omitStrictMaybe Word
16 (forall (f :: * -> *) era. AlonzoPParams f era -> HKD f Coin
appMinPoolCost AlonzoPParams StrictMaybe era
ppup) 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 a.
Word
-> StrictMaybe a
-> (a -> Encoding)
-> Encode ('Closed 'Sparse) (StrictMaybe a)
omitStrictMaybe Word
17 (forall (f :: * -> *) era. AlonzoPParams f era -> HKD f CoinPerWord
appCoinsPerUTxOWord AlonzoPParams StrictMaybe era
ppup) 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 a.
Word
-> StrictMaybe a
-> (a -> Encoding)
-> Encode ('Closed 'Sparse) (StrictMaybe a)
omitStrictMaybe Word
18 (forall (f :: * -> *) era. AlonzoPParams f era -> HKD f CostModels
appCostModels AlonzoPParams StrictMaybe era
ppup) 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 a.
Word
-> StrictMaybe a
-> (a -> Encoding)
-> Encode ('Closed 'Sparse) (StrictMaybe a)
omitStrictMaybe Word
19 (forall (f :: * -> *) era. AlonzoPParams f era -> HKD f Prices
appPrices AlonzoPParams StrictMaybe era
ppup) 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 a.
Word
-> StrictMaybe a
-> (a -> Encoding)
-> Encode ('Closed 'Sparse) (StrictMaybe a)
omitStrictMaybe Word
20 (forall (f :: * -> *) era. AlonzoPParams f era -> HKD f OrdExUnits
appMaxTxExUnits AlonzoPParams StrictMaybe era
ppup) 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 a.
Word
-> StrictMaybe a
-> (a -> Encoding)
-> Encode ('Closed 'Sparse) (StrictMaybe a)
omitStrictMaybe Word
21 (forall (f :: * -> *) era. AlonzoPParams f era -> HKD f OrdExUnits
appMaxBlockExUnits AlonzoPParams StrictMaybe era
ppup) 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 a.
Word
-> StrictMaybe a
-> (a -> Encoding)
-> Encode ('Closed 'Sparse) (StrictMaybe a)
omitStrictMaybe Word
22 (forall (f :: * -> *) era. AlonzoPParams f era -> HKD f Natural
appMaxValSize AlonzoPParams StrictMaybe era
ppup) 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 a.
Word
-> StrictMaybe a
-> (a -> Encoding)
-> Encode ('Closed 'Sparse) (StrictMaybe a)
omitStrictMaybe Word
23 (forall (f :: * -> *) era. AlonzoPParams f era -> HKD f Natural
appCollateralPercentage AlonzoPParams StrictMaybe era
ppup) 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 a.
Word
-> StrictMaybe a
-> (a -> Encoding)
-> Encode ('Closed 'Sparse) (StrictMaybe a)
omitStrictMaybe Word
24 (forall (f :: * -> *) era. AlonzoPParams f era -> HKD f Natural
appMaxCollateralInputs AlonzoPParams StrictMaybe era
ppup) forall a. EncCBOR a => a -> Encoding
encCBOR
where
omitStrictMaybe ::
Word -> StrictMaybe a -> (a -> Encoding) -> Encode ('Closed 'Sparse) (StrictMaybe a)
omitStrictMaybe :: forall a.
Word
-> StrictMaybe a
-> (a -> Encoding)
-> Encode ('Closed 'Sparse) (StrictMaybe a)
omitStrictMaybe Word
key 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 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) 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 (AlonzoPParams StrictMaybe era) where
encCBOR :: AlonzoPParams StrictMaybe era -> Encoding
encCBOR AlonzoPParams StrictMaybe era
ppup = forall (w :: Wrapped) t. Encode w t -> Encoding
encode (forall era.
AlonzoPParams StrictMaybe era
-> Encode ('Closed 'Sparse) (AlonzoPParams StrictMaybe era)
encodePParamsUpdate AlonzoPParams StrictMaybe era
ppup)
updateField :: Word -> Field (AlonzoPParams StrictMaybe era)
updateField :: forall era. Word -> Field (AlonzoPParams StrictMaybe era)
updateField Word
0 = forall x t (d :: Density).
(x -> t -> t) -> Decode ('Closed d) x -> Field t
field (\Coin
x AlonzoPParams StrictMaybe era
up -> AlonzoPParams StrictMaybe era
up {appMinFeeA :: HKD StrictMaybe Coin
appMinFeeA = forall a. a -> StrictMaybe a
SJust Coin
x}) forall t (w :: Wrapped). DecCBOR t => Decode w t
From
updateField Word
1 = forall x t (d :: Density).
(x -> t -> t) -> Decode ('Closed d) x -> Field t
field (\Coin
x AlonzoPParams StrictMaybe era
up -> AlonzoPParams StrictMaybe era
up {appMinFeeB :: HKD StrictMaybe Coin
appMinFeeB = forall a. a -> StrictMaybe a
SJust Coin
x}) forall t (w :: Wrapped). DecCBOR t => Decode w t
From
updateField Word
2 = forall x t (d :: Density).
(x -> t -> t) -> Decode ('Closed d) x -> Field t
field (\Word32
x AlonzoPParams StrictMaybe era
up -> AlonzoPParams StrictMaybe era
up {appMaxBBSize :: HKD StrictMaybe Word32
appMaxBBSize = forall a. a -> StrictMaybe a
SJust Word32
x}) forall t (w :: Wrapped). DecCBOR t => Decode w t
From
updateField Word
3 = forall x t (d :: Density).
(x -> t -> t) -> Decode ('Closed d) x -> Field t
field (\Word32
x AlonzoPParams StrictMaybe era
up -> AlonzoPParams StrictMaybe era
up {appMaxTxSize :: HKD StrictMaybe Word32
appMaxTxSize = forall a. a -> StrictMaybe a
SJust Word32
x}) forall t (w :: Wrapped). DecCBOR t => Decode w t
From
updateField Word
4 = forall x t (d :: Density).
(x -> t -> t) -> Decode ('Closed d) x -> Field t
field (\Word16
x AlonzoPParams StrictMaybe era
up -> AlonzoPParams StrictMaybe era
up {appMaxBHSize :: HKD StrictMaybe Word16
appMaxBHSize = forall a. a -> StrictMaybe a
SJust Word16
x}) forall t (w :: Wrapped). DecCBOR t => Decode w t
From
updateField Word
5 = forall x t (d :: Density).
(x -> t -> t) -> Decode ('Closed d) x -> Field t
field (\Coin
x AlonzoPParams StrictMaybe era
up -> AlonzoPParams StrictMaybe era
up {appKeyDeposit :: HKD StrictMaybe Coin
appKeyDeposit = forall a. a -> StrictMaybe a
SJust Coin
x}) forall t (w :: Wrapped). DecCBOR t => Decode w t
From
updateField Word
6 = forall x t (d :: Density).
(x -> t -> t) -> Decode ('Closed d) x -> Field t
field (\Coin
x AlonzoPParams StrictMaybe era
up -> AlonzoPParams StrictMaybe era
up {appPoolDeposit :: HKD StrictMaybe Coin
appPoolDeposit = forall a. a -> StrictMaybe a
SJust Coin
x}) forall t (w :: Wrapped). DecCBOR t => Decode w t
From
updateField Word
7 = forall x t (d :: Density).
(x -> t -> t) -> Decode ('Closed d) x -> Field t
field (\EpochInterval
x AlonzoPParams StrictMaybe era
up -> AlonzoPParams StrictMaybe era
up {appEMax :: HKD StrictMaybe EpochInterval
appEMax = forall a. a -> StrictMaybe a
SJust EpochInterval
x}) forall t (w :: Wrapped). DecCBOR t => Decode w t
From
updateField Word
8 = forall x t (d :: Density).
(x -> t -> t) -> Decode ('Closed d) x -> Field t
field (\Word16
x AlonzoPParams StrictMaybe era
up -> AlonzoPParams StrictMaybe era
up {appNOpt :: HKD StrictMaybe Word16
appNOpt = forall a. a -> StrictMaybe a
SJust Word16
x}) forall t (w :: Wrapped). DecCBOR t => Decode w t
From
updateField Word
9 = forall x t (d :: Density).
(x -> t -> t) -> Decode ('Closed d) x -> Field t
field (\NonNegativeInterval
x AlonzoPParams StrictMaybe era
up -> AlonzoPParams StrictMaybe era
up {appA0 :: HKD StrictMaybe NonNegativeInterval
appA0 = forall a. a -> StrictMaybe a
SJust NonNegativeInterval
x}) forall t (w :: Wrapped). DecCBOR t => Decode w t
From
updateField Word
10 = forall x t (d :: Density).
(x -> t -> t) -> Decode ('Closed d) x -> Field t
field (\UnitInterval
x AlonzoPParams StrictMaybe era
up -> AlonzoPParams StrictMaybe era
up {appRho :: HKD StrictMaybe UnitInterval
appRho = forall a. a -> StrictMaybe a
SJust UnitInterval
x}) forall t (w :: Wrapped). DecCBOR t => Decode w t
From
updateField Word
11 = forall x t (d :: Density).
(x -> t -> t) -> Decode ('Closed d) x -> Field t
field (\UnitInterval
x AlonzoPParams StrictMaybe era
up -> AlonzoPParams StrictMaybe era
up {appTau :: HKD StrictMaybe UnitInterval
appTau = forall a. a -> StrictMaybe a
SJust UnitInterval
x}) forall t (w :: Wrapped). DecCBOR t => Decode w t
From
updateField Word
12 = forall x t (d :: Density).
(x -> t -> t) -> Decode ('Closed d) x -> Field t
field (\UnitInterval
x AlonzoPParams StrictMaybe era
up -> AlonzoPParams StrictMaybe era
up {appD :: HKD StrictMaybe UnitInterval
appD = forall a. a -> StrictMaybe a
SJust UnitInterval
x}) forall t (w :: Wrapped). DecCBOR t => Decode w t
From
updateField Word
13 = forall x t (d :: Density).
(x -> t -> t) -> Decode ('Closed d) x -> Field t
field (\Nonce
x AlonzoPParams StrictMaybe era
up -> AlonzoPParams StrictMaybe era
up {appExtraEntropy :: HKD StrictMaybe Nonce
appExtraEntropy = forall a. a -> StrictMaybe a
SJust Nonce
x}) forall t (w :: Wrapped). DecCBOR t => Decode w t
From
updateField Word
14 = forall x t (d :: Density).
(x -> t -> t) -> Decode ('Closed d) x -> Field t
field (\ProtVer
x AlonzoPParams StrictMaybe era
up -> AlonzoPParams StrictMaybe era
up {appProtocolVersion :: HKD StrictMaybe ProtVer
appProtocolVersion = forall a. a -> StrictMaybe a
SJust ProtVer
x}) forall t (w :: Wrapped). DecCBOR t => Decode w t
From
updateField Word
16 = forall x t (d :: Density).
(x -> t -> t) -> Decode ('Closed d) x -> Field t
field (\Coin
x AlonzoPParams StrictMaybe era
up -> AlonzoPParams StrictMaybe era
up {appMinPoolCost :: HKD StrictMaybe Coin
appMinPoolCost = forall a. a -> StrictMaybe a
SJust Coin
x}) forall t (w :: Wrapped). DecCBOR t => Decode w t
From
updateField Word
17 = forall x t (d :: Density).
(x -> t -> t) -> Decode ('Closed d) x -> Field t
field (\CoinPerWord
x AlonzoPParams StrictMaybe era
up -> AlonzoPParams StrictMaybe era
up {appCoinsPerUTxOWord :: HKD StrictMaybe CoinPerWord
appCoinsPerUTxOWord = forall a. a -> StrictMaybe a
SJust CoinPerWord
x}) forall t (w :: Wrapped). DecCBOR t => Decode w t
From
updateField Word
18 = forall x t (d :: Density).
(x -> t -> t) -> Decode ('Closed d) x -> Field t
field (\CostModels
x AlonzoPParams StrictMaybe era
up -> AlonzoPParams StrictMaybe era
up {appCostModels :: HKD StrictMaybe CostModels
appCostModels = forall a. a -> StrictMaybe a
SJust CostModels
x}) forall t (w :: Wrapped). DecCBOR t => Decode w t
From
updateField Word
19 = forall x t (d :: Density).
(x -> t -> t) -> Decode ('Closed d) x -> Field t
field (\Prices
x AlonzoPParams StrictMaybe era
up -> AlonzoPParams StrictMaybe era
up {appPrices :: HKD StrictMaybe Prices
appPrices = forall a. a -> StrictMaybe a
SJust Prices
x}) forall t (w :: Wrapped). DecCBOR t => Decode w t
From
updateField Word
20 = forall x t (d :: Density).
(x -> t -> t) -> Decode ('Closed d) x -> Field t
field (\OrdExUnits
x AlonzoPParams StrictMaybe era
up -> AlonzoPParams StrictMaybe era
up {appMaxTxExUnits :: HKD StrictMaybe OrdExUnits
appMaxTxExUnits = forall a. a -> StrictMaybe a
SJust OrdExUnits
x}) forall t (w :: Wrapped). DecCBOR t => Decode w t
From
updateField Word
21 = forall x t (d :: Density).
(x -> t -> t) -> Decode ('Closed d) x -> Field t
field (\OrdExUnits
x AlonzoPParams StrictMaybe era
up -> AlonzoPParams StrictMaybe era
up {appMaxBlockExUnits :: HKD StrictMaybe OrdExUnits
appMaxBlockExUnits = forall a. a -> StrictMaybe a
SJust OrdExUnits
x}) forall t (w :: Wrapped). DecCBOR t => Decode w t
From
updateField Word
22 = forall x t (d :: Density).
(x -> t -> t) -> Decode ('Closed d) x -> Field t
field (\Natural
x AlonzoPParams StrictMaybe era
up -> AlonzoPParams StrictMaybe era
up {appMaxValSize :: HKD StrictMaybe Natural
appMaxValSize = forall a. a -> StrictMaybe a
SJust Natural
x}) forall t (w :: Wrapped). DecCBOR t => Decode w t
From
updateField Word
23 = forall x t (d :: Density).
(x -> t -> t) -> Decode ('Closed d) x -> Field t
field (\Natural
x AlonzoPParams StrictMaybe era
up -> AlonzoPParams StrictMaybe era
up {appCollateralPercentage :: HKD StrictMaybe Natural
appCollateralPercentage = forall a. a -> StrictMaybe a
SJust Natural
x}) forall t (w :: Wrapped). DecCBOR t => Decode w t
From
updateField Word
24 = forall x t (d :: Density).
(x -> t -> t) -> Decode ('Closed d) x -> Field t
field (\Natural
x AlonzoPParams StrictMaybe era
up -> AlonzoPParams StrictMaybe era
up {appMaxCollateralInputs :: HKD StrictMaybe Natural
appMaxCollateralInputs = forall a. a -> StrictMaybe a
SJust Natural
x}) forall t (w :: Wrapped). DecCBOR t => Decode w t
From
updateField Word
k = forall x t (d :: Density).
(x -> t -> t) -> Decode ('Closed d) x -> Field t
field (\Any
_x AlonzoPParams StrictMaybe era
up -> AlonzoPParams StrictMaybe era
up) (forall (w :: Wrapped) t. Word -> Decode w t
Invalid Word
k)
instance Era era => DecCBOR (AlonzoPParams StrictMaybe era) where
decCBOR :: forall s. Decoder s (AlonzoPParams 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. AlonzoPParams StrictMaybe era
emptyAlonzoPParamsUpdate forall era. Word -> Field (AlonzoPParams StrictMaybe era)
updateField [])
instance Era era => ToCBOR (AlonzoPParams StrictMaybe era) where
toCBOR :: AlonzoPParams StrictMaybe era -> Encoding
toCBOR = forall era t. (Era era, EncCBOR t) => t -> Encoding
toEraCBOR @era
instance Era era => FromCBOR (AlonzoPParams StrictMaybe era) where
fromCBOR :: forall s. Decoder s (AlonzoPParams StrictMaybe era)
fromCBOR = forall era t s. (Era era, DecCBOR t) => Decoder s t
fromEraCBOR @era
instance ToJSON (AlonzoPParams StrictMaybe AlonzoEra) where
toJSON :: AlonzoPParams StrictMaybe AlonzoEra -> Value
toJSON = [Pair] -> Value
object forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a e. KeyValue e a => PParamsHKD StrictMaybe AlonzoEra -> [a]
alonzoPParamsUpdatePairs
toEncoding :: AlonzoPParams StrictMaybe AlonzoEra -> 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 a e. KeyValue e a => PParamsHKD StrictMaybe AlonzoEra -> [a]
alonzoPParamsUpdatePairs
alonzoPParamsUpdatePairs ::
forall a e.
KeyValue e a =>
PParamsHKD StrictMaybe AlonzoEra ->
[a]
alonzoPParamsUpdatePairs :: forall a e. KeyValue e a => PParamsHKD StrictMaybe AlonzoEra -> [a]
alonzoPParamsUpdatePairs PParamsHKD StrictMaybe AlonzoEra
pp =
[ Key
k forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= Value
v
| (Key
k, SJust Value
v) <- forall (f :: * -> *).
HKDFunctor f =>
Proxy f -> PParamsHKD f AlonzoEra -> [(Key, HKD f Value)]
alonzoPParamsHKDPairs (forall {k} (t :: k). Proxy t
Proxy @StrictMaybe) PParamsHKD StrictMaybe AlonzoEra
pp
]
alonzoPParamsHKDPairs ::
forall f.
HKDFunctor f =>
Proxy f ->
PParamsHKD f AlonzoEra ->
[(Key, HKD f Aeson.Value)]
alonzoPParamsHKDPairs :: forall (f :: * -> *).
HKDFunctor f =>
Proxy f -> PParamsHKD f AlonzoEra -> [(Key, HKD f Value)]
alonzoPParamsHKDPairs Proxy f
px PParamsHKD f AlonzoEra
pp =
forall (f :: * -> *) era.
(HKDFunctor f, AlonzoEraPParams era) =>
Proxy f -> PParamsHKD f era -> [(Key, HKD f Value)]
alonzoCommonPParamsHKDPairs Proxy f
px PParamsHKD f AlonzoEra
pp
forall a. [a] -> [a] -> [a]
++ forall (f :: * -> *) era.
(HKDFunctor f, EraPParams era, ProtVerAtMost era 8) =>
Proxy f -> PParamsHKD f era -> [(Key, HKD f Value)]
shelleyCommonPParamsHKDPairsV8 Proxy f
px PParamsHKD f AlonzoEra
pp
forall a. [a] -> [a] -> [a]
++ forall (f :: * -> *) era.
(HKDFunctor f, EraPParams era, ProtVerAtMost era 6) =>
Proxy f -> PParamsHKD f era -> [(Key, HKD f Value)]
shelleyCommonPParamsHKDPairsV6 Proxy f
px PParamsHKD f AlonzoEra
pp
forall a. [a] -> [a] -> [a]
++ [(Key
"utxoCostPerByte", 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 @CoinPerWord) (PParamsHKD f AlonzoEra
pp forall s a. s -> Getting a s a -> a
^. forall era (f :: * -> *).
(AlonzoEraPParams era, HKDFunctor f, ExactEra AlonzoEra era) =>
Lens' (PParamsHKD f era) (HKD f CoinPerWord)
hkdCoinsPerUTxOWordL @_ @f))]
alonzoCommonPParamsHKDPairs ::
forall f era.
(HKDFunctor f, AlonzoEraPParams era) =>
Proxy f ->
PParamsHKD f era ->
[(Key, HKD f Aeson.Value)]
alonzoCommonPParamsHKDPairs :: forall (f :: * -> *) era.
(HKDFunctor f, AlonzoEraPParams era) =>
Proxy f -> PParamsHKD f era -> [(Key, HKD f Value)]
alonzoCommonPParamsHKDPairs Proxy f
px PParamsHKD f era
pp =
forall (f :: * -> *) era.
(HKDFunctor f, EraPParams era) =>
Proxy f -> PParamsHKD f era -> [(Key, HKD f Value)]
shelleyCommonPParamsHKDPairs Proxy f
px PParamsHKD f era
pp
forall a. [a] -> [a] -> [a]
++ [ (Key
"costModels", 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 @CostModels) (PParamsHKD f era
pp forall s a. s -> Getting a s a -> a
^. forall era (f :: * -> *).
(AlonzoEraPParams era, HKDFunctor f) =>
Lens' (PParamsHKD f era) (HKD f CostModels)
hkdCostModelsL @era @f))
, (Key
"executionUnitPrices", 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 @Prices) (PParamsHKD f era
pp forall s a. s -> Getting a s a -> a
^. forall era (f :: * -> *).
(AlonzoEraPParams era, HKDFunctor f) =>
Lens' (PParamsHKD f era) (HKD f Prices)
hkdPricesL @era @f))
, (Key
"maxTxExecutionUnits", 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 @ExUnits) (PParamsHKD f era
pp forall s a. s -> Getting a s a -> a
^. forall era (f :: * -> *).
(AlonzoEraPParams era, HKDFunctor f) =>
Lens' (PParamsHKD f era) (HKD f ExUnits)
hkdMaxTxExUnitsL @era @f))
, (Key
"maxBlockExecutionUnits", 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 @ExUnits) (PParamsHKD f era
pp forall s a. s -> Getting a s a -> a
^. forall era (f :: * -> *).
(AlonzoEraPParams era, HKDFunctor f) =>
Lens' (PParamsHKD f era) (HKD f ExUnits)
hkdMaxBlockExUnitsL @era @f))
, (Key
"maxValueSize", 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 :: * -> *).
(AlonzoEraPParams era, HKDFunctor f) =>
Lens' (PParamsHKD f era) (HKD f Natural)
hkdMaxValSizeL @era @f))
, (Key
"collateralPercentage", 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 :: * -> *).
(AlonzoEraPParams era, HKDFunctor f) =>
Lens' (PParamsHKD f era) (HKD f Natural)
hkdCollateralPercentageL @era @f))
, (Key
"maxCollateralInputs", 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 :: * -> *).
(AlonzoEraPParams era, HKDFunctor f) =>
Lens' (PParamsHKD f era) (HKD f Natural)
hkdMaxCollateralInputsL @era @f))
]
data LangDepView = LangDepView {LangDepView -> ByteString
tag :: ByteString, LangDepView -> ByteString
params :: ByteString}
deriving (LangDepView -> LangDepView -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: LangDepView -> LangDepView -> Bool
$c/= :: LangDepView -> LangDepView -> Bool
== :: LangDepView -> LangDepView -> Bool
$c== :: LangDepView -> LangDepView -> Bool
Eq, Int -> LangDepView -> ShowS
[LangDepView] -> ShowS
LangDepView -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [LangDepView] -> ShowS
$cshowList :: [LangDepView] -> ShowS
show :: LangDepView -> String
$cshow :: LangDepView -> String
showsPrec :: Int -> LangDepView -> ShowS
$cshowsPrec :: Int -> LangDepView -> ShowS
Show, Eq LangDepView
LangDepView -> LangDepView -> Bool
LangDepView -> LangDepView -> Ordering
LangDepView -> LangDepView -> LangDepView
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 :: LangDepView -> LangDepView -> LangDepView
$cmin :: LangDepView -> LangDepView -> LangDepView
max :: LangDepView -> LangDepView -> LangDepView
$cmax :: LangDepView -> LangDepView -> LangDepView
>= :: LangDepView -> LangDepView -> Bool
$c>= :: LangDepView -> LangDepView -> Bool
> :: LangDepView -> LangDepView -> Bool
$c> :: LangDepView -> LangDepView -> Bool
<= :: LangDepView -> LangDepView -> Bool
$c<= :: LangDepView -> LangDepView -> Bool
< :: LangDepView -> LangDepView -> Bool
$c< :: LangDepView -> LangDepView -> Bool
compare :: LangDepView -> LangDepView -> Ordering
$ccompare :: LangDepView -> LangDepView -> Ordering
Ord, forall x. Rep LangDepView x -> LangDepView
forall x. LangDepView -> Rep LangDepView x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep LangDepView x -> LangDepView
$cfrom :: forall x. LangDepView -> Rep LangDepView x
Generic, Context -> LangDepView -> IO (Maybe ThunkInfo)
Proxy LangDepView -> String
forall a.
(Context -> a -> IO (Maybe ThunkInfo))
-> (Context -> a -> IO (Maybe ThunkInfo))
-> (Proxy a -> String)
-> NoThunks a
showTypeOf :: Proxy LangDepView -> String
$cshowTypeOf :: Proxy LangDepView -> String
wNoThunks :: Context -> LangDepView -> IO (Maybe ThunkInfo)
$cwNoThunks :: Context -> LangDepView -> IO (Maybe ThunkInfo)
noThunks :: Context -> LangDepView -> IO (Maybe ThunkInfo)
$cnoThunks :: Context -> LangDepView -> IO (Maybe ThunkInfo)
NoThunks)
encodeCostModel :: CostModel -> Encoding
encodeCostModel :: CostModel -> Encoding
encodeCostModel CostModel
cm =
case CostModel -> Language
getCostModelLanguage CostModel
cm of
Language
PlutusV1 -> forall (f :: * -> *) a.
Foldable f =>
(a -> Encoding) -> f a -> Encoding
encodeFoldableAsIndefLenList forall a. EncCBOR a => a -> Encoding
encCBOR forall a b. (a -> b) -> a -> b
$ CostModel -> [Int64]
getCostModelParams CostModel
cm
Language
PlutusV2 -> forall (f :: * -> *) a.
Foldable f =>
(a -> Encoding) -> f a -> Encoding
encodeFoldableAsDefLenList forall a. EncCBOR a => a -> Encoding
encCBOR forall a b. (a -> b) -> a -> b
$ CostModel -> [Int64]
getCostModelParams CostModel
cm
Language
PlutusV3 -> forall (f :: * -> *) a.
Foldable f =>
(a -> Encoding) -> f a -> Encoding
encodeFoldableAsDefLenList forall a. EncCBOR a => a -> Encoding
encCBOR forall a b. (a -> b) -> a -> b
$ CostModel -> [Int64]
getCostModelParams CostModel
cm
getLanguageView ::
AlonzoEraPParams era =>
PParams era ->
Language ->
LangDepView
getLanguageView :: forall era.
AlonzoEraPParams era =>
PParams era -> Language -> LangDepView
getLanguageView PParams era
pp Language
lang =
case Language
lang of
Language
PlutusV1 ->
ByteString -> ByteString -> LangDepView
LangDepView
(forall a. EncCBOR a => Version -> a -> ByteString
serialize' Version
version (forall a. EncCBOR a => Version -> a -> ByteString
serialize' Version
version Language
lang))
(forall a. EncCBOR a => Version -> a -> ByteString
serialize' Version
version ByteString
costModelEncoding)
Language
PlutusV2 -> LangDepView
latestLangDepView
Language
PlutusV3 -> LangDepView
latestLangDepView
where
latestLangDepView :: LangDepView
latestLangDepView = ByteString -> ByteString -> LangDepView
LangDepView (forall a. EncCBOR a => Version -> a -> ByteString
serialize' Version
version Language
lang) ByteString
costModelEncoding
costModel :: Maybe CostModel
costModel = forall k a. Ord k => k -> Map k a -> Maybe a
Map.lookup Language
lang (CostModels -> Map Language CostModel
costModelsValid forall a b. (a -> b) -> a -> b
$ PParams era
pp forall s a. s -> Getting a s a -> a
^. forall era. AlonzoEraPParams era => Lens' (PParams era) CostModels
ppCostModelsL)
costModelEncoding :: ByteString
costModelEncoding = forall a. EncCBOR a => Version -> a -> ByteString
serialize' Version
version forall a b. (a -> b) -> a -> b
$ forall b a. b -> (a -> b) -> Maybe a -> b
maybe Encoding
encodeNull CostModel -> Encoding
encodeCostModel Maybe CostModel
costModel
version :: Version
version = ProtVer -> Version
BT.pvMajor forall a b. (a -> b) -> a -> b
$ PParams era
pp forall s a. s -> Getting a s a -> a
^. forall era. EraPParams era => Lens' (PParams era) ProtVer
ppProtocolVersionL
encodeLangViews :: Set LangDepView -> Encoding
encodeLangViews :: Set LangDepView -> Encoding
encodeLangViews Set LangDepView
views = Word -> Encoding
encodeMapLen Word
n forall a. Semigroup a => a -> a -> a
<> forall (t :: * -> *) m a.
(Foldable t, Monoid m) =>
(a -> m) -> t a -> m
foldMap LangDepView -> Encoding
encPair [LangDepView]
ascending
where
n :: Word
n = forall a b. (Integral a, Num b) => a -> b
fromIntegral (forall a. Set a -> Int
Set.size Set LangDepView
views) :: Word
ascending :: [LangDepView]
ascending = forall a. (a -> a -> Ordering) -> [a] -> [a]
sortBy (ByteString -> ByteString -> Ordering
shortLex forall b c a. (b -> b -> c) -> (a -> b) -> a -> a -> c
`on` LangDepView -> ByteString
tag) forall a b. (a -> b) -> a -> b
$ forall a. Set a -> [a]
Set.toList Set LangDepView
views
encPair :: LangDepView -> Encoding
encPair (LangDepView ByteString
k ByteString
v) = ByteString -> Encoding
encodePreEncoded ByteString
k forall a. Semigroup a => a -> a -> a
<> ByteString -> Encoding
encodePreEncoded ByteString
v
shortLex :: ByteString -> ByteString -> Ordering
shortLex :: ByteString -> ByteString -> Ordering
shortLex ByteString
a ByteString
b
| ByteString -> Int
BS.length ByteString
a forall a. Ord a => a -> a -> Bool
< ByteString -> Int
BS.length ByteString
b = Ordering
LT
| ByteString -> Int
BS.length ByteString
a forall a. Ord a => a -> a -> Bool
> ByteString -> Int
BS.length ByteString
b = Ordering
GT
| Bool
otherwise = forall a. Ord a => a -> a -> Ordering
compare ByteString
a ByteString
b
upgradeAlonzoPParams ::
forall f era1 era2.
HKDFunctor f =>
UpgradeAlonzoPParams f ->
ShelleyPParams f era1 ->
AlonzoPParams f era2
upgradeAlonzoPParams :: forall (f :: * -> *) era1 era2.
HKDFunctor f =>
UpgradeAlonzoPParams f
-> ShelleyPParams f era1 -> AlonzoPParams f era2
upgradeAlonzoPParams UpgradeAlonzoPParams {HKD f Natural
HKD f CostModels
HKD f ExUnits
HKD f Prices
HKD f CoinPerWord
uappMaxCollateralInputs :: HKD f Natural
uappCollateralPercentage :: HKD f Natural
uappMaxValSize :: HKD f Natural
uappMaxBlockExUnits :: HKD f ExUnits
uappMaxTxExUnits :: HKD f ExUnits
uappPrices :: HKD f Prices
uappCostModels :: HKD f CostModels
uappCoinsPerUTxOWord :: HKD f CoinPerWord
uappMaxCollateralInputs :: forall (f :: * -> *). UpgradeAlonzoPParams f -> HKD f Natural
uappCollateralPercentage :: forall (f :: * -> *). UpgradeAlonzoPParams f -> HKD f Natural
uappMaxValSize :: forall (f :: * -> *). UpgradeAlonzoPParams f -> HKD f Natural
uappMaxBlockExUnits :: forall (f :: * -> *). UpgradeAlonzoPParams f -> HKD f ExUnits
uappMaxTxExUnits :: forall (f :: * -> *). UpgradeAlonzoPParams f -> HKD f ExUnits
uappPrices :: forall (f :: * -> *). UpgradeAlonzoPParams f -> HKD f Prices
uappCostModels :: forall (f :: * -> *). UpgradeAlonzoPParams f -> HKD f CostModels
uappCoinsPerUTxOWord :: forall (f :: * -> *). UpgradeAlonzoPParams f -> HKD f CoinPerWord
..} ShelleyPParams {HKD f Word16
HKD f Word32
HKD f Coin
HKD f ProtVer
HKD f NonNegativeInterval
HKD f UnitInterval
HKD f Nonce
HKD f EpochInterval
sppMinFeeA :: forall (f :: * -> *) era. ShelleyPParams f era -> HKD f Coin
sppMinFeeB :: forall (f :: * -> *) era. ShelleyPParams f era -> HKD f Coin
sppMaxBBSize :: forall (f :: * -> *) era. ShelleyPParams f era -> HKD f Word32
sppMaxTxSize :: forall (f :: * -> *) era. ShelleyPParams f era -> HKD f Word32
sppMaxBHSize :: forall (f :: * -> *) era. ShelleyPParams f era -> HKD f Word16
sppKeyDeposit :: forall (f :: * -> *) era. ShelleyPParams f era -> HKD f Coin
sppPoolDeposit :: forall (f :: * -> *) era. ShelleyPParams f era -> HKD f Coin
sppEMax :: forall (f :: * -> *) era.
ShelleyPParams f era -> HKD f EpochInterval
sppNOpt :: forall (f :: * -> *) era. ShelleyPParams f era -> HKD f Word16
sppA0 :: forall (f :: * -> *) era.
ShelleyPParams f era -> HKD f NonNegativeInterval
sppRho :: forall (f :: * -> *) era.
ShelleyPParams f era -> HKD f UnitInterval
sppTau :: forall (f :: * -> *) era.
ShelleyPParams f era -> HKD f UnitInterval
sppD :: forall (f :: * -> *) era.
ShelleyPParams f era -> HKD f UnitInterval
sppExtraEntropy :: forall (f :: * -> *) era. ShelleyPParams f era -> HKD f Nonce
sppProtocolVersion :: forall (f :: * -> *) era. ShelleyPParams f era -> HKD f ProtVer
sppMinUTxOValue :: forall (f :: * -> *) era. ShelleyPParams f era -> HKD f Coin
sppMinPoolCost :: forall (f :: * -> *) era. ShelleyPParams f era -> HKD f Coin
sppMinPoolCost :: HKD f Coin
sppMinUTxOValue :: HKD f Coin
sppProtocolVersion :: HKD f ProtVer
sppExtraEntropy :: HKD f Nonce
sppD :: HKD f UnitInterval
sppTau :: HKD f UnitInterval
sppRho :: HKD f UnitInterval
sppA0 :: HKD f NonNegativeInterval
sppNOpt :: HKD f Word16
sppEMax :: HKD f EpochInterval
sppPoolDeposit :: HKD f Coin
sppKeyDeposit :: HKD f Coin
sppMaxBHSize :: HKD f Word16
sppMaxTxSize :: HKD f Word32
sppMaxBBSize :: HKD f Word32
sppMinFeeB :: HKD f Coin
sppMinFeeA :: HKD f Coin
..} =
AlonzoPParams
{ appMinFeeA :: HKD f Coin
appMinFeeA = HKD f Coin
sppMinFeeA
, appMinFeeB :: HKD f Coin
appMinFeeB = HKD f Coin
sppMinFeeB
, appMaxBBSize :: HKD f Word32
appMaxBBSize = HKD f Word32
sppMaxBBSize
, appMaxTxSize :: HKD f Word32
appMaxTxSize = HKD f Word32
sppMaxTxSize
, appMaxBHSize :: HKD f Word16
appMaxBHSize = HKD f Word16
sppMaxBHSize
, appKeyDeposit :: HKD f Coin
appKeyDeposit = HKD f Coin
sppKeyDeposit
, appPoolDeposit :: HKD f Coin
appPoolDeposit = HKD f Coin
sppPoolDeposit
, appEMax :: HKD f EpochInterval
appEMax = HKD f EpochInterval
sppEMax
, appNOpt :: HKD f Word16
appNOpt = HKD f Word16
sppNOpt
, appA0 :: HKD f NonNegativeInterval
appA0 = HKD f NonNegativeInterval
sppA0
, appRho :: HKD f UnitInterval
appRho = HKD f UnitInterval
sppRho
, appTau :: HKD f UnitInterval
appTau = HKD f UnitInterval
sppTau
, appD :: HKD f UnitInterval
appD = HKD f UnitInterval
sppD
, appExtraEntropy :: HKD f Nonce
appExtraEntropy = HKD f Nonce
sppExtraEntropy
, appProtocolVersion :: HKD f ProtVer
appProtocolVersion = HKD f ProtVer
sppProtocolVersion
, appMinPoolCost :: HKD f Coin
appMinPoolCost = HKD f Coin
sppMinPoolCost
,
appCoinsPerUTxOWord :: HKD f CoinPerWord
appCoinsPerUTxOWord = HKD f CoinPerWord
uappCoinsPerUTxOWord
, appCostModels :: HKD f CostModels
appCostModels = HKD f CostModels
uappCostModels
, appPrices :: HKD f Prices
appPrices = HKD f Prices
uappPrices
, appMaxTxExUnits :: HKD f OrdExUnits
appMaxTxExUnits = 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
uappMaxTxExUnits
, appMaxBlockExUnits :: HKD f OrdExUnits
appMaxBlockExUnits = 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
uappMaxBlockExUnits
, appMaxValSize :: HKD f Natural
appMaxValSize = HKD f Natural
uappMaxValSize
, appCollateralPercentage :: HKD f Natural
appCollateralPercentage = HKD f Natural
uappCollateralPercentage
, appMaxCollateralInputs :: HKD f Natural
appMaxCollateralInputs = HKD f Natural
uappMaxCollateralInputs
}
downgradeAlonzoPParams :: DowngradeAlonzoPParams f -> AlonzoPParams f era2 -> ShelleyPParams f era1
downgradeAlonzoPParams :: forall (f :: * -> *) era2 era1.
DowngradeAlonzoPParams f
-> AlonzoPParams f era2 -> ShelleyPParams f era1
downgradeAlonzoPParams DowngradeAlonzoPParams {HKD f Coin
dappMinUTxOValue :: HKD f Coin
dappMinUTxOValue :: forall (f :: * -> *). DowngradeAlonzoPParams f -> HKD f Coin
dappMinUTxOValue} AlonzoPParams {HKD f Natural
HKD f Word16
HKD f Word32
HKD f CostModels
HKD f Prices
HKD f Coin
HKD f ProtVer
HKD f NonNegativeInterval
HKD f UnitInterval
HKD f Nonce
HKD f EpochInterval
HKD f OrdExUnits
HKD f CoinPerWord
appMaxCollateralInputs :: HKD f Natural
appCollateralPercentage :: HKD f Natural
appMaxValSize :: HKD f Natural
appMaxBlockExUnits :: HKD f OrdExUnits
appMaxTxExUnits :: HKD f OrdExUnits
appPrices :: HKD f Prices
appCostModels :: HKD f CostModels
appCoinsPerUTxOWord :: HKD f CoinPerWord
appMinPoolCost :: HKD f Coin
appProtocolVersion :: HKD f ProtVer
appExtraEntropy :: HKD f Nonce
appD :: HKD f UnitInterval
appTau :: HKD f UnitInterval
appRho :: HKD f UnitInterval
appA0 :: HKD f NonNegativeInterval
appNOpt :: HKD f Word16
appEMax :: HKD f EpochInterval
appPoolDeposit :: HKD f Coin
appKeyDeposit :: HKD f Coin
appMaxBHSize :: HKD f Word16
appMaxTxSize :: HKD f Word32
appMaxBBSize :: HKD f Word32
appMinFeeB :: HKD f Coin
appMinFeeA :: HKD f Coin
appMaxCollateralInputs :: forall (f :: * -> *) era. AlonzoPParams f era -> HKD f Natural
appCollateralPercentage :: forall (f :: * -> *) era. AlonzoPParams f era -> HKD f Natural
appMaxValSize :: forall (f :: * -> *) era. AlonzoPParams f era -> HKD f Natural
appMaxBlockExUnits :: forall (f :: * -> *) era. AlonzoPParams f era -> HKD f OrdExUnits
appMaxTxExUnits :: forall (f :: * -> *) era. AlonzoPParams f era -> HKD f OrdExUnits
appPrices :: forall (f :: * -> *) era. AlonzoPParams f era -> HKD f Prices
appCostModels :: forall (f :: * -> *) era. AlonzoPParams f era -> HKD f CostModels
appCoinsPerUTxOWord :: forall (f :: * -> *) era. AlonzoPParams f era -> HKD f CoinPerWord
appMinPoolCost :: forall (f :: * -> *) era. AlonzoPParams f era -> HKD f Coin
appProtocolVersion :: forall (f :: * -> *) era. AlonzoPParams f era -> HKD f ProtVer
appExtraEntropy :: forall (f :: * -> *) era. AlonzoPParams f era -> HKD f Nonce
appD :: forall (f :: * -> *) era. AlonzoPParams f era -> HKD f UnitInterval
appTau :: forall (f :: * -> *) era. AlonzoPParams f era -> HKD f UnitInterval
appRho :: forall (f :: * -> *) era. AlonzoPParams f era -> HKD f UnitInterval
appA0 :: forall (f :: * -> *) era.
AlonzoPParams f era -> HKD f NonNegativeInterval
appNOpt :: forall (f :: * -> *) era. AlonzoPParams f era -> HKD f Word16
appEMax :: forall (f :: * -> *) era.
AlonzoPParams f era -> HKD f EpochInterval
appPoolDeposit :: forall (f :: * -> *) era. AlonzoPParams f era -> HKD f Coin
appKeyDeposit :: forall (f :: * -> *) era. AlonzoPParams f era -> HKD f Coin
appMaxBHSize :: forall (f :: * -> *) era. AlonzoPParams f era -> HKD f Word16
appMaxTxSize :: forall (f :: * -> *) era. AlonzoPParams f era -> HKD f Word32
appMaxBBSize :: forall (f :: * -> *) era. AlonzoPParams f era -> HKD f Word32
appMinFeeB :: forall (f :: * -> *) era. AlonzoPParams f era -> HKD f Coin
appMinFeeA :: forall (f :: * -> *) era. AlonzoPParams f era -> HKD f Coin
..} =
ShelleyPParams
{ sppMinFeeA :: HKD f Coin
sppMinFeeA = HKD f Coin
appMinFeeA
, sppMinFeeB :: HKD f Coin
sppMinFeeB = HKD f Coin
appMinFeeB
, sppMaxBBSize :: HKD f Word32
sppMaxBBSize = HKD f Word32
appMaxBBSize
, sppMaxTxSize :: HKD f Word32
sppMaxTxSize = HKD f Word32
appMaxTxSize
, sppMaxBHSize :: HKD f Word16
sppMaxBHSize = HKD f Word16
appMaxBHSize
, sppKeyDeposit :: HKD f Coin
sppKeyDeposit = HKD f Coin
appKeyDeposit
, sppPoolDeposit :: HKD f Coin
sppPoolDeposit = HKD f Coin
appPoolDeposit
, sppEMax :: HKD f EpochInterval
sppEMax = HKD f EpochInterval
appEMax
, sppNOpt :: HKD f Word16
sppNOpt = HKD f Word16
appNOpt
, sppA0 :: HKD f NonNegativeInterval
sppA0 = HKD f NonNegativeInterval
appA0
, sppRho :: HKD f UnitInterval
sppRho = HKD f UnitInterval
appRho
, sppTau :: HKD f UnitInterval
sppTau = HKD f UnitInterval
appTau
, sppD :: HKD f UnitInterval
sppD = HKD f UnitInterval
appD
, sppExtraEntropy :: HKD f Nonce
sppExtraEntropy = HKD f Nonce
appExtraEntropy
, sppProtocolVersion :: HKD f ProtVer
sppProtocolVersion = HKD f ProtVer
appProtocolVersion
, sppMinUTxOValue :: HKD f Coin
sppMinUTxOValue = HKD f Coin
dappMinUTxOValue
, sppMinPoolCost :: HKD f Coin
sppMinPoolCost = HKD f Coin
appMinPoolCost
}