From 0a3e7d3ebbb911cdb57055c31b424b0da529d039 Mon Sep 17 00:00:00 2001 From: Alexey Kuleshevich Date: Tue, 23 May 2023 17:34:05 +0300 Subject: [PATCH 1/2] Revert back to the group serialization for ProtVer for PParams --- eras/alonzo/impl/CHANGELOG.md | 5 + .../impl/src/Cardano/Ledger/Alonzo/PParams.hs | 141 ++++++++---------- eras/babbage/impl/CHANGELOG.md | 5 + .../src/Cardano/Ledger/Babbage/PParams.hs | 102 ++++++------- .../Cardano/Ledger/Binary/Decoding/Decoder.hs | 1 - 5 files changed, 121 insertions(+), 133 deletions(-) diff --git a/eras/alonzo/impl/CHANGELOG.md b/eras/alonzo/impl/CHANGELOG.md index d80aa917255..67445d15b4a 100644 --- a/eras/alonzo/impl/CHANGELOG.md +++ b/eras/alonzo/impl/CHANGELOG.md @@ -1,5 +1,10 @@ # Version history for `cardano-ledger-alonzo` + +## 1.2.1.0 + +* Fix `PParams AlonzoEra` serialization. [#3440](https://github.com/input-output-hk/cardano-ledger/pull/3440) + ## 1.2.0.0 * Replace `DPState c` with `CertState era` diff --git a/eras/alonzo/impl/src/Cardano/Ledger/Alonzo/PParams.hs b/eras/alonzo/impl/src/Cardano/Ledger/Alonzo/PParams.hs index cb7301fcd34..2dee59a37cf 100644 --- a/eras/alonzo/impl/src/Cardano/Ledger/Alonzo/PParams.hs +++ b/eras/alonzo/impl/src/Cardano/Ledger/Alonzo/PParams.hs @@ -84,11 +84,16 @@ import Cardano.Ledger.Binary ( Encoding, FromCBOR (..), ToCBOR (..), + decCBORGroup, + decodeRecordNamed, + encCBORGroup, encodeFoldableAsDefLenList, encodeFoldableAsIndefLenList, + encodeListLen, encodeMapLen, encodeNull, encodePreEncoded, + listLen, serialize', ) import Cardano.Ledger.Binary.Coders ( @@ -101,7 +106,6 @@ import Cardano.Ledger.Binary.Coders ( encode, field, (!>), - ( EraGovernance (AlonzoEra c) where getProposedPPUpdates = Just . proposals instance Era era => EncCBOR (AlonzoPParams Identity era) where - encCBOR - AlonzoPParams - { appMinFeeA - , appMinFeeB - , appMaxBBSize - , appMaxTxSize - , appMaxBHSize - , appKeyDeposit - , appPoolDeposit - , appEMax - , appNOpt - , appA0 - , appRho - , appTau - , appD - , appExtraEntropy - , appProtocolVersion - , appMinPoolCost - , appCoinsPerUTxOWord - , appCostModels - , appPrices - , appMaxTxExUnits - , appMaxBlockExUnits - , appMaxValSize - , appCollateralPercentage - , appMaxCollateralInputs - } = - encode $ - Rec (AlonzoPParams @Identity) - !> To appMinFeeA - !> To appMinFeeB - !> To appMaxBBSize - !> To appMaxTxSize - !> To appMaxBHSize - !> To appKeyDeposit - !> To appPoolDeposit - !> To appEMax - !> To appNOpt - !> To appA0 - !> To appRho - !> To appTau - !> To appD - !> To appExtraEntropy - !> To appProtocolVersion - !> To appMinPoolCost - -- new/updated for alonzo - !> To appCoinsPerUTxOWord - !> To appCostModels - !> To appPrices - !> To appMaxTxExUnits - !> To appMaxBlockExUnits - !> To appMaxValSize - !> To appCollateralPercentage - !> To appMaxCollateralInputs + encCBOR AlonzoPParams {..} = + encodeListLen (23 + listLen appProtocolVersion) + <> encCBOR appMinFeeA + <> encCBOR appMinFeeB + <> encCBOR appMaxBBSize + <> encCBOR appMaxTxSize + <> encCBOR appMaxBHSize + <> encCBOR appKeyDeposit + <> encCBOR appPoolDeposit + <> encCBOR appEMax + <> encCBOR appNOpt + <> encCBOR appA0 + <> encCBOR appRho + <> encCBOR appTau + <> encCBOR appD + <> encCBOR appExtraEntropy + <> encCBORGroup appProtocolVersion + <> encCBOR appMinPoolCost + -- new/updated for alonzo + <> encCBOR appCoinsPerUTxOWord + <> encCBOR appCostModels + <> encCBOR appPrices + <> encCBOR appMaxTxExUnits + <> encCBOR appMaxBlockExUnits + <> encCBOR appMaxValSize + <> encCBOR appCollateralPercentage + <> encCBOR appMaxCollateralInputs instance Era era => DecCBOR (AlonzoPParams Identity era) where decCBOR = - decode $ - RecD AlonzoPParams - 23 + fromIntegral (listLen (appProtocolVersion pp))) $ do + appMinFeeA <- decCBOR + appMinFeeB <- decCBOR + appMaxBBSize <- decCBOR + appMaxTxSize <- decCBOR + appMaxBHSize <- decCBOR + appKeyDeposit <- decCBOR + appPoolDeposit <- decCBOR + appEMax <- decCBOR + appNOpt <- decCBOR + appA0 <- decCBOR + appRho <- decCBOR + appTau <- decCBOR + appD <- decCBOR + appExtraEntropy <- decCBOR + appProtocolVersion <- decCBORGroup + appMinPoolCost <- decCBOR + -- new/updated for alonzo + appCoinsPerUTxOWord <- decCBOR + appCostModels <- decCBOR + appPrices <- decCBOR + appMaxTxExUnits <- decCBOR + appMaxBlockExUnits <- decCBOR + appMaxValSize <- decCBOR + appCollateralPercentage <- decCBOR + appMaxCollateralInputs <- decCBOR + pure AlonzoPParams {..} instance Era era => ToCBOR (AlonzoPParams Identity era) where toCBOR = toEraCBOR @era diff --git a/eras/babbage/impl/CHANGELOG.md b/eras/babbage/impl/CHANGELOG.md index 65c4bbc933d..a8adc158145 100644 --- a/eras/babbage/impl/CHANGELOG.md +++ b/eras/babbage/impl/CHANGELOG.md @@ -1,5 +1,10 @@ # Version history for `cardano-ledger-babbage` + +## 1.2.1.0 + +* Fix `PParams BabbageEra` serialization. [#3440](https://github.com/input-output-hk/cardano-ledger/pull/3440) + ## 1.2.0.0 * Replace `DPState c` with `CertState era` diff --git a/eras/babbage/impl/src/Cardano/Ledger/Babbage/PParams.hs b/eras/babbage/impl/src/Cardano/Ledger/Babbage/PParams.hs index 53ae8043889..4738aeecba1 100644 --- a/eras/babbage/impl/src/Cardano/Ledger/Babbage/PParams.hs +++ b/eras/babbage/impl/src/Cardano/Ledger/Babbage/PParams.hs @@ -60,6 +60,11 @@ import Cardano.Ledger.Binary ( Encoding, FromCBOR (..), ToCBOR (..), + decCBORGroup, + decodeRecordNamed, + encCBORGroup, + encodeListLen, + listLen, ) import Cardano.Ledger.Binary.Coders ( Decode (..), @@ -71,7 +76,6 @@ import Cardano.Ledger.Binary.Coders ( encode, field, (!>), - ( EraGovernance (BabbageEra c) where instance Era era => EncCBOR (BabbagePParams Identity era) where encCBOR BabbagePParams {..} = - encode - ( Rec (BabbagePParams @Identity) - !> To bppMinFeeA - !> To bppMinFeeB - !> To bppMaxBBSize - !> To bppMaxTxSize - !> To bppMaxBHSize - !> To bppKeyDeposit - !> To bppPoolDeposit - !> To bppEMax - !> To bppNOpt - !> To bppA0 - !> To bppRho - !> To bppTau - !> To bppProtocolVersion - !> To bppMinPoolCost - !> To bppCoinsPerUTxOByte - !> To bppCostModels - !> To bppPrices - !> To bppMaxTxExUnits - !> To bppMaxBlockExUnits - !> To bppMaxValSize - !> To bppCollateralPercentage - !> To bppMaxCollateralInputs - ) + encodeListLen (21 + listLen bppProtocolVersion) + <> encCBOR bppMinFeeA + <> encCBOR bppMinFeeB + <> encCBOR bppMaxBBSize + <> encCBOR bppMaxTxSize + <> encCBOR bppMaxBHSize + <> encCBOR bppKeyDeposit + <> encCBOR bppPoolDeposit + <> encCBOR bppEMax + <> encCBOR bppNOpt + <> encCBOR bppA0 + <> encCBOR bppRho + <> encCBOR bppTau + <> encCBORGroup bppProtocolVersion + <> encCBOR bppMinPoolCost + <> encCBOR bppCoinsPerUTxOByte + <> encCBOR bppCostModels + <> encCBOR bppPrices + <> encCBOR bppMaxTxExUnits + <> encCBOR bppMaxBlockExUnits + <> encCBOR bppMaxValSize + <> encCBOR bppCollateralPercentage + <> encCBOR bppMaxCollateralInputs instance Era era => ToCBOR (BabbagePParams Identity era) where toCBOR = toEraCBOR @era instance Era era => DecCBOR (BabbagePParams Identity era) where decCBOR = - decode $ - RecD BabbagePParams - 21 + fromIntegral (listLen (bppProtocolVersion pp))) $ do + bppMinFeeA <- decCBOR + bppMinFeeB <- decCBOR + bppMaxBBSize <- decCBOR + bppMaxTxSize <- decCBOR + bppMaxBHSize <- decCBOR + bppKeyDeposit <- decCBOR + bppPoolDeposit <- decCBOR + bppEMax <- decCBOR + bppNOpt <- decCBOR + bppA0 <- decCBOR + bppRho <- decCBOR + bppTau <- decCBOR + bppProtocolVersion <- decCBORGroup + bppMinPoolCost <- decCBOR + bppCoinsPerUTxOByte <- decCBOR + bppCostModels <- decCBOR + bppPrices <- decCBOR + bppMaxTxExUnits <- decCBOR + bppMaxBlockExUnits <- decCBOR + bppMaxValSize <- decCBOR + bppCollateralPercentage <- decCBOR + bppMaxCollateralInputs <- decCBOR + pure BabbagePParams {..} instance Era era => FromCBOR (BabbagePParams Identity era) where fromCBOR = fromEraCBOR @era diff --git a/libs/cardano-ledger-binary/src/Cardano/Ledger/Binary/Decoding/Decoder.hs b/libs/cardano-ledger-binary/src/Cardano/Ledger/Binary/Decoding/Decoder.hs index 1e07810b7c6..4624d8c3cd6 100644 --- a/libs/cardano-ledger-binary/src/Cardano/Ledger/Binary/Decoding/Decoder.hs +++ b/libs/cardano-ledger-binary/src/Cardano/Ledger/Binary/Decoding/Decoder.hs @@ -3,7 +3,6 @@ {-# LANGUAGE DataKinds #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE LambdaCase #-} -{-# LANGUAGE NumericUnderscores #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE RankNTypes #-} {-# LANGUAGE ScopedTypeVariables #-} From cfae930c160e4c94f3cb2d83c5e158fae189712c Mon Sep 17 00:00:00 2001 From: Alexey Kuleshevich Date: Tue, 23 May 2023 18:37:57 +0300 Subject: [PATCH 2/2] Bump up the version for `cardano-ledger-[alonzo|babbage]` --- eras/alonzo/impl/CHANGELOG.md | 1 - eras/alonzo/impl/cardano-ledger-alonzo.cabal | 2 +- eras/babbage/impl/CHANGELOG.md | 1 - eras/babbage/impl/cardano-ledger-babbage.cabal | 2 +- 4 files changed, 2 insertions(+), 4 deletions(-) diff --git a/eras/alonzo/impl/CHANGELOG.md b/eras/alonzo/impl/CHANGELOG.md index 67445d15b4a..79586261f35 100644 --- a/eras/alonzo/impl/CHANGELOG.md +++ b/eras/alonzo/impl/CHANGELOG.md @@ -1,6 +1,5 @@ # Version history for `cardano-ledger-alonzo` - ## 1.2.1.0 * Fix `PParams AlonzoEra` serialization. [#3440](https://github.com/input-output-hk/cardano-ledger/pull/3440) diff --git a/eras/alonzo/impl/cardano-ledger-alonzo.cabal b/eras/alonzo/impl/cardano-ledger-alonzo.cabal index 476a0f5a621..298f1cface2 100644 --- a/eras/alonzo/impl/cardano-ledger-alonzo.cabal +++ b/eras/alonzo/impl/cardano-ledger-alonzo.cabal @@ -1,6 +1,6 @@ cabal-version: 3.0 name: cardano-ledger-alonzo -version: 1.2.0.0 +version: 1.2.1.0 license: Apache-2.0 maintainer: operations@iohk.io author: IOHK diff --git a/eras/babbage/impl/CHANGELOG.md b/eras/babbage/impl/CHANGELOG.md index a8adc158145..dd0c2140aaf 100644 --- a/eras/babbage/impl/CHANGELOG.md +++ b/eras/babbage/impl/CHANGELOG.md @@ -1,6 +1,5 @@ # Version history for `cardano-ledger-babbage` - ## 1.2.1.0 * Fix `PParams BabbageEra` serialization. [#3440](https://github.com/input-output-hk/cardano-ledger/pull/3440) diff --git a/eras/babbage/impl/cardano-ledger-babbage.cabal b/eras/babbage/impl/cardano-ledger-babbage.cabal index c4a480779e1..aaced768f83 100644 --- a/eras/babbage/impl/cardano-ledger-babbage.cabal +++ b/eras/babbage/impl/cardano-ledger-babbage.cabal @@ -1,6 +1,6 @@ cabal-version: 3.0 name: cardano-ledger-babbage -version: 1.2.0.0 +version: 1.2.1.0 license: Apache-2.0 maintainer: operations@iohk.io author: IOHK