@@ -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.
11231126conwayApplyPPUpdates ::
1127+ forall era .
11241128 ConwayPParams Identity era ->
11251129 ConwayPParams StrictMaybe era ->
11261130 ConwayPParams Identity era
11271131conwayApplyPPUpdates 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
11821176conwayModifiedPPGroups :: ConwayPParams StrictMaybe era -> Set PPGroups
11831177conwayModifiedPPGroups
0 commit comments