@@ -27,6 +27,7 @@ module Cardano.Ledger.Conway.PParams (
2727 ppCommitteeMinSize ,
2828 ppDRepActivity ,
2929 ppDRepDeposit ,
30+ ppDRepDepositCompactL ,
3031 ppDRepVotingThresholds ,
3132 ppGovActionDeposit ,
3233 ppGovActionLifetime ,
@@ -85,6 +86,7 @@ module Cardano.Ledger.Conway.PParams (
8586 emptyConwayPParamsUpdate ,
8687 asNaturalHKD ,
8788 asBoundedIntegralHKD ,
89+ asCompactCoinHKD ,
8890) where
8991
9092import Cardano.Ledger.Alonzo.PParams
@@ -113,7 +115,8 @@ import Cardano.Ledger.Binary (
113115 encodeListLen ,
114116 )
115117import Cardano.Ledger.Binary.Coders
116- import Cardano.Ledger.Coin (Coin (Coin ), CompactForm (.. ))
118+ import Cardano.Ledger.Coin (Coin (Coin ), CompactForm (.. ), compactCoinOrError , partialCompactCoinL )
119+ import Cardano.Ledger.Compactible (partialCompactFL )
117120import Cardano.Ledger.Conway.Era (ConwayEra , hardforkConwayBootstrapPhase )
118121import Cardano.Ledger.Core (EraPParams (.. ))
119122import Cardano.Ledger.HKD (
@@ -165,7 +168,7 @@ class BabbageEraPParams era => ConwayEraPParams era where
165168 hkdCommitteeMaxTermLengthL :: HKDFunctor f => Lens' (PParamsHKD f era ) (HKD f EpochInterval )
166169 hkdGovActionLifetimeL :: HKDFunctor f => Lens' (PParamsHKD f era ) (HKD f EpochInterval )
167170 hkdGovActionDepositL :: HKDFunctor f => Lens' (PParamsHKD f era ) (HKD f Coin )
168- hkdDRepDepositL :: HKDFunctor f => Lens' (PParamsHKD f era ) (HKD f Coin )
171+ hkdDRepDepositCompactL :: HKDFunctor f => Lens' (PParamsHKD f era ) (HKD f ( CompactForm Coin ) )
169172 hkdDRepActivityL :: HKDFunctor f => Lens' (PParamsHKD f era ) (HKD f EpochInterval )
170173 hkdMinFeeRefScriptCostPerByteL ::
171174 HKDFunctor f => Lens' (PParamsHKD f era ) (HKD f NonNegativeInterval )
@@ -214,8 +217,11 @@ ppGovActionLifetimeL = ppLensHKD . hkdGovActionLifetimeL @era @Identity
214217ppGovActionDepositL :: forall era . ConwayEraPParams era => Lens' (PParams era ) Coin
215218ppGovActionDepositL = ppLensHKD . hkdGovActionDepositL @ era @ Identity
216219
217- ppDRepDepositL :: forall era . ConwayEraPParams era => Lens' (PParams era ) Coin
218- ppDRepDepositL = ppLensHKD . hkdDRepDepositL @ era @ Identity
220+ ppDRepDepositCompactL :: forall era . ConwayEraPParams era => Lens' (PParams era ) (CompactForm Coin )
221+ ppDRepDepositCompactL = ppLensHKD . hkdDRepDepositCompactL @ era @ Identity
222+
223+ ppDRepDepositL :: ConwayEraPParams era => Lens' (PParams era ) Coin
224+ ppDRepDepositL = ppDRepDepositCompactL . partialCompactCoinL
219225
220226ppDRepActivityL :: forall era . ConwayEraPParams era => Lens' (PParams era ) EpochInterval
221227ppDRepActivityL = ppLensHKD . hkdDRepActivityL @ era @ Identity
@@ -248,9 +254,13 @@ ppuGovActionDepositL ::
248254 forall era . ConwayEraPParams era => Lens' (PParamsUpdate era ) (StrictMaybe Coin )
249255ppuGovActionDepositL = ppuLensHKD . hkdGovActionDepositL @ era @ StrictMaybe
250256
257+ ppuDRepDepositCompactL ::
258+ forall era . ConwayEraPParams era => Lens' (PParamsUpdate era ) (StrictMaybe (CompactForm Coin ))
259+ ppuDRepDepositCompactL = ppuLensHKD . hkdDRepDepositCompactL @ era @ StrictMaybe
260+
251261ppuDRepDepositL ::
252262 forall era . ConwayEraPParams era => Lens' (PParamsUpdate era ) (StrictMaybe Coin )
253- ppuDRepDepositL = ppuLensHKD . hkdDRepDepositL @ era @ StrictMaybe
263+ ppuDRepDepositL = ppuDRepDepositCompactL . partialCompactFL
254264
255265ppuDRepActivityL ::
256266 forall era . ConwayEraPParams era => Lens' (PParamsUpdate era ) (StrictMaybe EpochInterval )
@@ -659,7 +669,7 @@ data ConwayPParams f era = ConwayPParams
659669 -- ^ Gov action lifetime in number of Epochs
660670 , cppGovActionDeposit :: ! (THKD ('PPGroups 'GovGroup 'SecurityGroup) f Coin )
661671 -- ^ The amount of the Gov Action deposit
662- , cppDRepDeposit :: ! (THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f Coin )
672+ , cppDRepDeposit :: ! (THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f ( CompactForm Coin ) )
663673 -- ^ The amount of a DRep registration deposit
664674 , cppDRepActivity :: ! (THKD ('PPGroups 'GovGroup 'NoStakePoolGroup) f EpochInterval )
665675 -- ^ The number of Epochs that a DRep can perform no activity without losing their @Active@ status.
@@ -912,7 +922,7 @@ instance ConwayEraPParams ConwayEra where
912922 lens (unTHKD . cppGovActionLifetime) $ \ pp x -> pp {cppGovActionLifetime = THKD x}
913923 hkdGovActionDepositL =
914924 lens (unTHKD . cppGovActionDeposit) $ \ pp x -> pp {cppGovActionDeposit = THKD x}
915- hkdDRepDepositL =
925+ hkdDRepDepositCompactL =
916926 lens (unTHKD . cppDRepDeposit) $ \ pp x -> pp {cppDRepDeposit = THKD x}
917927 hkdDRepActivityL =
918928 lens (unTHKD . cppDRepActivity) $ \ pp x -> pp {cppDRepActivity = THKD x}
@@ -952,7 +962,7 @@ emptyConwayPParams =
952962 , cppCommitteeMaxTermLength = THKD (EpochInterval 0 )
953963 , cppGovActionLifetime = THKD (EpochInterval 0 )
954964 , cppGovActionDeposit = THKD (Coin 0 )
955- , cppDRepDeposit = THKD (Coin 0 )
965+ , cppDRepDeposit = THKD (CompactCoin 0 )
956966 , cppDRepActivity = THKD (EpochInterval 0 )
957967 , cppMinFeeRefScriptCostPerByte = THKD minBound
958968 }
@@ -1084,7 +1094,7 @@ upgradeConwayPParams UpgradeConwayPParams {..} BabbagePParams {..} =
10841094 , cppCommitteeMaxTermLength = THKD ucppCommitteeMaxTermLength
10851095 , cppGovActionLifetime = THKD ucppGovActionLifetime
10861096 , cppGovActionDeposit = THKD ucppGovActionDeposit
1087- , cppDRepDeposit = THKD ucppDRepDeposit
1097+ , cppDRepDeposit = THKD $ asCompactCoinHKD @ f ucppDRepDeposit
10881098 , cppDRepActivity = THKD ucppDRepActivity
10891099 , cppMinFeeRefScriptCostPerByte = THKD ucppMinFeeRefScriptCostPerByte
10901100 }
@@ -1241,6 +1251,9 @@ conwayModifiedPPGroups
12411251 , ppGroup p31
12421252 ]
12431253
1254+ asCompactCoinHKD :: forall f . HKDFunctor f => HKD f Coin -> HKD f (CompactForm Coin )
1255+ asCompactCoinHKD = hkdMap (Proxy @ f ) compactCoinOrError
1256+
12441257-- | Care should be taken to not apply this function to signed values, otherwise it will result in
12451258-- an `ArithmeticUnderflow` exception for negative numbers.
12461259asNaturalHKD :: forall f i . (HKDFunctor f , Integral i ) => HKD f i -> HKD f Natural
0 commit comments