Skip to content

Commit 0eccc88

Browse files
lehinsSoupstraw
authored andcommitted
Simplify Implementation of conwayApplyPPUpdates
1 parent e2853c0 commit 0eccc88

File tree

1 file changed

+43
-49
lines changed
  • eras/conway/impl/src/Cardano/Ledger/Conway

1 file changed

+43
-49
lines changed

eras/conway/impl/src/Cardano/Ledger/Conway/PParams.hs

Lines changed: 43 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -1120,64 +1120,58 @@ downgradeConwayPParams ConwayPParams {..} =
11201120
, bppMaxCollateralInputs = asNaturalHKD @f @Word16 (unTHKD cppMaxCollateralInputs)
11211121
}
11221122

1123+
-- | Functionality for updating protocol parameters in Conway era. Worth noting that, unlike previous
1124+
-- eras, `ProtocolVersion` can no longer be updated using this mechanism and `CostModels` update
1125+
-- differs form other protocol parameters.
11231126
conwayApplyPPUpdates ::
1127+
forall era.
11241128
ConwayPParams Identity era ->
11251129
ConwayPParams StrictMaybe era ->
11261130
ConwayPParams Identity era
11271131
conwayApplyPPUpdates pp ppu =
11281132
ConwayPParams
1129-
{ cppMinFeeA = ppUpdate (cppMinFeeA pp) (cppMinFeeA ppu)
1130-
, cppMinFeeB = ppUpdate (cppMinFeeB pp) (cppMinFeeB ppu)
1131-
, cppMaxBBSize = ppUpdate (cppMaxBBSize pp) (cppMaxBBSize ppu)
1132-
, cppMaxTxSize = ppUpdate (cppMaxTxSize pp) (cppMaxTxSize ppu)
1133-
, cppMaxBHSize = ppUpdate (cppMaxBHSize pp) (cppMaxBHSize ppu)
1134-
, cppKeyDeposit = ppUpdate (cppKeyDeposit pp) (cppKeyDeposit ppu)
1135-
, cppPoolDeposit = ppUpdate (cppPoolDeposit pp) (cppPoolDeposit ppu)
1136-
, cppEMax = ppUpdate (cppEMax pp) (cppEMax ppu)
1137-
, cppNOpt = ppUpdate (cppNOpt pp) (cppNOpt ppu)
1138-
, cppA0 = ppUpdate (cppA0 pp) (cppA0 ppu)
1139-
, cppRho = ppUpdate (cppRho pp) (cppRho ppu)
1140-
, cppTau = ppUpdate (cppTau pp) (cppTau ppu)
1133+
{ cppMinFeeA = ppApplyUpdate cppMinFeeA
1134+
, cppMinFeeB = ppApplyUpdate cppMinFeeB
1135+
, cppMaxBBSize = ppApplyUpdate cppMaxBBSize
1136+
, cppMaxTxSize = ppApplyUpdate cppMaxTxSize
1137+
, cppMaxBHSize = ppApplyUpdate cppMaxBHSize
1138+
, cppKeyDeposit = ppApplyUpdate cppKeyDeposit
1139+
, cppPoolDeposit = ppApplyUpdate cppPoolDeposit
1140+
, cppEMax = ppApplyUpdate cppEMax
1141+
, cppNOpt = ppApplyUpdate cppNOpt
1142+
, cppA0 = ppApplyUpdate cppA0
1143+
, cppRho = ppApplyUpdate cppRho
1144+
, cppTau = ppApplyUpdate cppTau
11411145
, cppProtocolVersion = cppProtocolVersion pp
1142-
, cppMinPoolCost = ppUpdate (cppMinPoolCost pp) (cppMinPoolCost ppu)
1143-
, cppCoinsPerUTxOByte = ppUpdate (cppCoinsPerUTxOByte pp) (cppCoinsPerUTxOByte ppu)
1144-
, cppCostModels = ppUpdateCostModels (cppCostModels pp) (cppCostModels ppu)
1145-
, cppPrices = ppUpdate (cppPrices pp) (cppPrices ppu)
1146-
, cppMaxTxExUnits = ppUpdate (cppMaxTxExUnits pp) (cppMaxTxExUnits ppu)
1147-
, cppMaxBlockExUnits = ppUpdate (cppMaxBlockExUnits pp) (cppMaxBlockExUnits ppu)
1148-
, cppMaxValSize = ppUpdate (cppMaxValSize pp) (cppMaxValSize ppu)
1149-
, cppCollateralPercentage = ppUpdate (cppCollateralPercentage pp) (cppCollateralPercentage ppu)
1150-
, cppMaxCollateralInputs = ppUpdate (cppMaxCollateralInputs pp) (cppMaxCollateralInputs ppu)
1151-
, cppPoolVotingThresholds = ppUpdate (cppPoolVotingThresholds pp) (cppPoolVotingThresholds ppu)
1152-
, cppDRepVotingThresholds = ppUpdate (cppDRepVotingThresholds pp) (cppDRepVotingThresholds ppu)
1153-
, cppCommitteeMinSize = ppUpdate (cppCommitteeMinSize pp) (cppCommitteeMinSize ppu)
1154-
, cppCommitteeMaxTermLength =
1155-
ppUpdate (cppCommitteeMaxTermLength pp) (cppCommitteeMaxTermLength ppu)
1156-
, cppGovActionLifetime = ppUpdate (cppGovActionLifetime pp) (cppGovActionLifetime ppu)
1157-
, cppGovActionDeposit = ppUpdate (cppGovActionDeposit pp) (cppGovActionDeposit ppu)
1158-
, cppDRepDeposit = ppUpdate (cppDRepDeposit pp) (cppDRepDeposit ppu)
1159-
, cppDRepActivity = ppUpdate (cppDRepActivity pp) (cppDRepActivity ppu)
1160-
, cppMinFeeRefScriptCostPerByte =
1161-
ppUpdate (cppMinFeeRefScriptCostPerByte pp) (cppMinFeeRefScriptCostPerByte ppu)
1146+
, cppMinPoolCost = ppApplyUpdate cppMinPoolCost
1147+
, cppCoinsPerUTxOByte = ppApplyUpdate cppCoinsPerUTxOByte
1148+
, cppCostModels =
1149+
case cppCostModels ppu of
1150+
THKD SNothing -> cppCostModels pp
1151+
THKD (SJust costModelUpdate) ->
1152+
THKD $ updateCostModels (unTHKD (cppCostModels pp)) costModelUpdate
1153+
, cppPrices = ppApplyUpdate cppPrices
1154+
, cppMaxTxExUnits = ppApplyUpdate cppMaxTxExUnits
1155+
, cppMaxBlockExUnits = ppApplyUpdate cppMaxBlockExUnits
1156+
, cppMaxValSize = ppApplyUpdate cppMaxValSize
1157+
, cppCollateralPercentage = ppApplyUpdate cppCollateralPercentage
1158+
, cppMaxCollateralInputs = ppApplyUpdate cppMaxCollateralInputs
1159+
, cppPoolVotingThresholds = ppApplyUpdate cppPoolVotingThresholds
1160+
, cppDRepVotingThresholds = ppApplyUpdate cppDRepVotingThresholds
1161+
, cppCommitteeMinSize = ppApplyUpdate cppCommitteeMinSize
1162+
, cppCommitteeMaxTermLength = ppApplyUpdate cppCommitteeMaxTermLength
1163+
, cppGovActionLifetime = ppApplyUpdate cppGovActionLifetime
1164+
, cppGovActionDeposit = ppApplyUpdate cppGovActionDeposit
1165+
, cppDRepDeposit = ppApplyUpdate cppDRepDeposit
1166+
, cppDRepActivity = ppApplyUpdate cppDRepActivity
1167+
, cppMinFeeRefScriptCostPerByte = ppApplyUpdate cppMinFeeRefScriptCostPerByte
11621168
}
11631169
where
1164-
ppUpdate ::
1165-
THKD f Identity a ->
1166-
THKD f StrictMaybe a ->
1167-
THKD f Identity a
1168-
ppUpdate (THKD ppCurValue) (THKD ppuValue) =
1169-
case ppuValue of
1170-
SNothing -> THKD ppCurValue
1171-
SJust ppNewValue -> THKD ppNewValue
1172-
1173-
ppUpdateCostModels ::
1174-
THKD f Identity CostModels ->
1175-
THKD f StrictMaybe CostModels ->
1176-
THKD f Identity CostModels
1177-
ppUpdateCostModels (THKD curCostModel) (THKD ppuCostModel) =
1178-
case ppuCostModel of
1179-
SNothing -> THKD curCostModel
1180-
SJust costModelUpdate -> THKD $ updateCostModels curCostModel costModelUpdate
1170+
ppApplyUpdate :: (forall f. ConwayPParams f era -> THKD g f a) -> THKD g Identity a
1171+
ppApplyUpdate cppGet =
1172+
case cppGet ppu of
1173+
THKD SNothing -> cppGet pp
1174+
THKD (SJust ppNewValue) -> THKD ppNewValue
11811175

11821176
conwayModifiedPPGroups :: ConwayPParams StrictMaybe era -> Set PPGroups
11831177
conwayModifiedPPGroups

0 commit comments

Comments
 (0)