diff --git a/eras/allegra/impl/testlib/Test/Cardano/Ledger/Allegra/Binary/Annotator.hs b/eras/allegra/impl/testlib/Test/Cardano/Ledger/Allegra/Binary/Annotator.hs index dc268c6916d..91b80075e79 100644 --- a/eras/allegra/impl/testlib/Test/Cardano/Ledger/Allegra/Binary/Annotator.hs +++ b/eras/allegra/impl/testlib/Test/Cardano/Ledger/Allegra/Binary/Annotator.hs @@ -20,7 +20,6 @@ import Cardano.Ledger.Allegra.Scripts import Cardano.Ledger.Allegra.TxAuxData import Cardano.Ledger.Allegra.TxBody import Cardano.Ledger.Binary -import Cardano.Ledger.Binary.Coders import Cardano.Ledger.Core import Cardano.Ledger.MemoBytes (decodeMemoized) import qualified Data.Sequence.Strict as StrictSeq @@ -46,31 +45,38 @@ instance TypeListLenIndef -> decodeFromList _ -> fail "Failed to decode AuxiliaryDataRaw" where - decodeFromMap = - decode - ( Emit AllegraTxAuxDataRaw - decCBOR <*> decCBOR deriving newtype instance (AllegraEraScript era, DecCBOR (NativeScript era)) => DecCBOR (AllegraTxAuxData era) instance Era era => DecCBOR (TimelockRaw era) where - decCBOR = decode $ Summands "TimelockRaw" $ \case - 0 -> SumD TimelockSignature SumD TimelockAllOf SumD TimelockAnyOf SumD TimelockMOf SumD TimelockTimeStart SumD TimelockTimeExpire Invalid n + decCBOR = decodeRecordSum "TimelockRaw" $ \case + 0 -> do + keyHash <- decCBOR + pure (2, TimelockSignature keyHash) + 1 -> do + timelocks <- decCBOR + pure (2, TimelockAllOf timelocks) + 2 -> do + timelocks <- decCBOR + pure (2, TimelockAnyOf timelocks) + 3 -> do + requiredCount <- decCBOR + timelocks <- decCBOR + pure (3, TimelockMOf requiredCount timelocks) + 4 -> do + slot <- decCBOR + pure (2, TimelockTimeStart slot) + 5 -> do + slot <- decCBOR + pure (2, TimelockTimeExpire slot) + k -> invalidKey k instance Era era => DecCBOR (Timelock era) where decCBOR = MkTimelock <$> decodeMemoized decCBOR diff --git a/eras/alonzo/impl/testlib/Test/Cardano/Ledger/Alonzo/Binary/Annotator.hs b/eras/alonzo/impl/testlib/Test/Cardano/Ledger/Alonzo/Binary/Annotator.hs index 30aaf49eed1..9926e0650c5 100644 --- a/eras/alonzo/impl/testlib/Test/Cardano/Ledger/Alonzo/Binary/Annotator.hs +++ b/eras/alonzo/impl/testlib/Test/Cardano/Ledger/Alonzo/Binary/Annotator.hs @@ -27,7 +27,6 @@ import Cardano.Ledger.Alonzo.TxAuxData import Cardano.Ledger.Alonzo.TxBody import Cardano.Ledger.Alonzo.TxWits import Cardano.Ledger.Binary -import Cardano.Ledger.Binary.Coders import Cardano.Ledger.Core import Cardano.Ledger.Plutus import Cardano.Ledger.Shelley.BlockBody (auxDataSeqDecoder) @@ -107,22 +106,12 @@ instance ) => DecCBOR (AlonzoTx TopTx era) where - decCBOR = - ifDecoderVersionAtLeast (natVersion @12) decodeAlonzoTxPv12 $ - decode $ - RecD AlonzoTx - decCBOR <*> decCBOR <*> pure Map.empty - {-# INLINE decodeAllegraPv12 #-} - decodeAllegra = - decode - (RecD AlonzoTxAuxDataRaw Word -> Maybe (Decoder s (AlonzoTxAuxDataRaw era)) decoderByKey acc = \case @@ -179,23 +158,10 @@ instance {-# INLINE decodeAddPlutus #-} {-# INLINE decoderByKey #-} - auxDataField :: Word -> Field (AlonzoTxAuxDataRaw era) - auxDataField 0 = field (\x ad -> ad {atadrMetadata = x}) From - auxDataField 1 = field (\x ad -> ad {atadrNativeScripts = atadrNativeScripts ad <> x}) From - auxDataField 2 = field (addPlutusScripts PlutusV1) (D (guardPlutus PlutusV1 >> decCBOR)) - auxDataField 3 = field (addPlutusScripts PlutusV2) (D (guardPlutus PlutusV2 >> decCBOR)) - auxDataField 4 = field (addPlutusScripts PlutusV3) (D (guardPlutus PlutusV3 >> decCBOR)) - auxDataField 5 = field (addPlutusScripts PlutusV4) (D (guardPlutus PlutusV4 >> decCBOR)) - auxDataField n = invalidField n - deriving newtype instance (Era era, DecCBOR (NativeScript era)) => DecCBOR (AlonzoTxAuxData era) instance (AlonzoEraScript era, DecCBOR (NativeScript era)) => DecCBOR (AlonzoTxWitsRaw era) where - decCBOR = - ifDecoderVersionAtLeast - (natVersion @12) - (decodeSparseKeyed TypeName [] emptyTxWitsRaw decoderByKey) - (decode $ SparseKeyed "AlonzoTxWits" emptyTxWitsRaw txWitnessField []) + decCBOR = decodeSparseKeyed TypeName [] emptyTxWitsRaw decoderByKey where setDecoder :: (Ord a, DecCBOR a) => Decoder s (Set a) setDecoder = @@ -227,34 +193,6 @@ instance (AlonzoEraScript era, DecCBOR (NativeScript era)) => DecCBOR (AlonzoTxW (Set.fromList <$> decodeList decCBOR) {-# INLINE addrWitsSetDecoder #-} - txWitnessField :: Word -> Field (AlonzoTxWitsRaw era) - txWitnessField 0 = - field - (\x wits -> wits {atwrAddrTxWits = x}) - ( D $ - ifDecoderVersionAtLeast - (natVersion @9) - addrWitsSetDecoder - (Set.fromList <$> decodeList decCBOR) - ) - txWitnessField 1 = field addScriptsTxWitsRaw (D nativeScriptsDecoder) - txWitnessField 2 = - field - (\x wits -> wits {atwrBootAddrTxWits = x}) - ( D $ - ifDecoderVersionAtLeast - (natVersion @9) - setDecoder - (Set.fromList <$> decodeList decCBOR) - ) - txWitnessField 3 = field addScriptsTxWitsRaw (decodeAlonzoPlutusScript SPlutusV1) - txWitnessField 4 = field (\x wits -> wits {atwrDatsTxWits = x}) From - txWitnessField 5 = field (\x wits -> wits {atwrRdmrsTxWits = x}) From - txWitnessField 6 = field addScriptsTxWitsRaw (decodeAlonzoPlutusScript SPlutusV2) - txWitnessField 7 = field addScriptsTxWitsRaw (decodeAlonzoPlutusScript SPlutusV3) - txWitnessField n = invalidField n - {-# INLINE txWitnessField #-} - decoderByKey :: AlonzoTxWitsRaw era -> Word -> Maybe (Decoder s (AlonzoTxWitsRaw era)) decoderByKey acc = \case 0 -> Just $ do @@ -361,33 +299,20 @@ instance AlonzoEraScript era => DecCBOR (RedeemersRaw era) where deriving newtype instance AlonzoEraScript era => DecCBOR (Redeemers era) instance (AlonzoEraScript era, DecCBOR (NativeScript era)) => DecCBOR (AlonzoScript era) where - decCBOR = - ifDecoderVersionAtLeast (natVersion @12) decodeAlonzoScriptPv12 $ - decode (Summands "AlonzoScript" decodeScript) + decCBOR = decodeRecordSum "AlonzoScript" $ \case + 0 -> do + ns <- decCBOR + pure (2, NativeScript ns) + 1 -> decodePlutusVariant SPlutusV1 + 2 -> decodePlutusVariant SPlutusV2 + 3 -> decodePlutusVariant SPlutusV3 + 4 -> decodePlutusVariant SPlutusV4 + n -> invalidKey n where - decodeScript = \case - 0 -> SumD NativeScript decodePlutus SPlutusV1 - 2 -> decodePlutus SPlutusV2 - 3 -> decodePlutus SPlutusV3 - 4 -> decodePlutus SPlutusV4 - n -> Invalid n - decodePlutus slang = - SumD PlutusScript do - ns <- decCBOR - pure (2, NativeScript ns) - 1 -> decodePlutusVariant SPlutusV1 - 2 -> decodePlutusVariant SPlutusV2 - 3 -> decodePlutusVariant SPlutusV3 - 4 -> decodePlutusVariant SPlutusV4 - n -> invalidKey n - {-# INLINE decodeAlonzoScriptPv12 #-} -- | Decodes a set of `a`'s and maps a function over it to get key-value pairs. -- If the key-value pairs create a non-empty Map without duplicates, then that map is returned, diff --git a/eras/alonzo/impl/testlib/Test/Cardano/Ledger/Alonzo/Translation/TranslationInstance.hs b/eras/alonzo/impl/testlib/Test/Cardano/Ledger/Alonzo/Translation/TranslationInstance.hs index f8652a2e6b8..5567b2f5451 100644 --- a/eras/alonzo/impl/testlib/Test/Cardano/Ledger/Alonzo/Translation/TranslationInstance.hs +++ b/eras/alonzo/impl/testlib/Test/Cardano/Ledger/Alonzo/Translation/TranslationInstance.hs @@ -4,6 +4,7 @@ {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE FlexibleInstances #-} +{-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE StandaloneDeriving #-} {-# LANGUAGE TypeApplications #-} @@ -25,17 +26,11 @@ import Cardano.Ledger.Binary ( DecoderError, EncCBOR (..), decodeFull, + decodeRecordNamed, + encodeListLen, fromPlainDecoder, fromPlainEncoding, ) -import Cardano.Ledger.Binary.Coders ( - Decode (..), - Encode (..), - decode, - encode, - (!>), - ( To pp - !> To l - !> To u - !> To tx - !> To p - !> To r + encodeListLen 6 + <> encCBOR pp + <> encCBOR l + <> encCBOR u + <> encCBOR tx + <> encCBOR p + <> encCBOR r instance ( DecCBOR (PParams era) @@ -205,14 +199,14 @@ instance DecCBOR (TranslationInstance era) where decCBOR = - decode $ - RecD TranslationInstance - decCBOR + <*> decCBOR + <*> decCBOR + <*> decCBOR + <*> decCBOR + <*> decCBOR deserializeTranslationInstances :: forall era. diff --git a/eras/shelley/impl/testlib/Test/Cardano/Ledger/Shelley/Binary/Annotator.hs b/eras/shelley/impl/testlib/Test/Cardano/Ledger/Shelley/Binary/Annotator.hs index 7609d5760ce..f161ea1414d 100644 --- a/eras/shelley/impl/testlib/Test/Cardano/Ledger/Shelley/Binary/Annotator.hs +++ b/eras/shelley/impl/testlib/Test/Cardano/Ledger/Shelley/Binary/Annotator.hs @@ -15,9 +15,9 @@ module Test.Cardano.Ledger.Shelley.Binary.Annotator ( module Test.Cardano.Ledger.Core.Binary.Annotator, ) where +import Cardano.Base.Typeable (TypeName (TypeName)) import Cardano.Ledger.BaseTypes (maybeToStrictMaybe) import Cardano.Ledger.Binary -import Cardano.Ledger.Binary.Coders import Cardano.Ledger.Core import Cardano.Ledger.MemoBytes (decodeMemoized) import Cardano.Ledger.Shelley (ShelleyEra) @@ -83,11 +83,11 @@ instance DecCBOR (ShelleyTx TopTx era) where decCBOR = - decode $ - RecD ShelleyTx - decCBOR + <*> decCBOR + <*> decodeNullStrictMaybe decCBOR deriving newtype instance DecCBOR (TxBody TopTx ShelleyEra) @@ -96,22 +96,21 @@ deriving newtype instance DecCBOR (Tx TopTx ShelleyEra) deriving newtype instance Era era => DecCBOR (ShelleyTxAuxData era) instance (EraScript era, DecCBOR (Script era)) => DecCBOR (ShelleyTxWitsRaw era) where - decCBOR = - decode $ - SparseKeyed - "ShelleyTxWits" - (ShelleyTxWitsRaw mempty mempty mempty) - witField - [] + decCBOR = decodeSparseKeyed TypeName [] (ShelleyTxWitsRaw mempty mempty mempty) decoderByKey where - witField :: Word -> Field (ShelleyTxWitsRaw era) - witField 0 = field (\x wits -> wits {stwrAddrTxWits = x}) From - witField 1 = - field - (\x wits -> wits {stwrScriptTxWits = x}) - (D $ Map.fromElems (hashScript @era) <$> decodeList decCBOR) - witField 2 = field (\x wits -> wits {stwrBootAddrTxWits = x}) From - witField n = invalidField n + decoderByKey :: ShelleyTxWitsRaw era -> Word -> Maybe (Decoder s (ShelleyTxWitsRaw era)) + decoderByKey acc = \case + 0 -> Just $ do + x <- decCBOR + pure $ acc {stwrAddrTxWits = x} + 1 -> Just $ do + x <- Map.fromElems (hashScript @era) <$> decodeList decCBOR + pure $ acc {stwrScriptTxWits = x} + 2 -> Just $ do + x <- decCBOR + pure $ acc {stwrBootAddrTxWits = x} + _ -> Nothing + {-# INLINE decoderByKey #-} instance (EraScript era, DecCBOR (Script era)) => DecCBOR (ShelleyTxWits era) where decCBOR = MkShelleyTxWits <$> decodeMemoized decCBOR diff --git a/libs/cardano-ledger-conformance/src/Test/Cardano/Ledger/Conformance/ExecSpecRule/Conway/Cert.hs b/libs/cardano-ledger-conformance/src/Test/Cardano/Ledger/Conformance/ExecSpecRule/Conway/Cert.hs index 5fc1b8ee436..987b12f601c 100644 --- a/libs/cardano-ledger-conformance/src/Test/Cardano/Ledger/Conformance/ExecSpecRule/Conway/Cert.hs +++ b/libs/cardano-ledger-conformance/src/Test/Cardano/Ledger/Conformance/ExecSpecRule/Conway/Cert.hs @@ -3,6 +3,7 @@ {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE MultiParamTypeClasses #-} +{-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE RecordWildCards #-} {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE TypeFamilies #-} @@ -14,8 +15,7 @@ module Test.Cardano.Ledger.Conformance.ExecSpecRule.Conway.Cert ( ) where import Cardano.Ledger.Address (AccountAddress) -import Cardano.Ledger.Binary (DecCBOR (..), EncCBOR (..)) -import Cardano.Ledger.Binary.Coders (Decode (..), Encode (..), decode, encode, (!>), ( Arbitrary (ConwayCertExecContext era) where instance Era era => EncCBOR (ConwayCertExecContext era) where encCBOR x@(ConwayCertExecContext _ _) = let ConwayCertExecContext {..} = x - in encode $ - Rec ConwayCertExecContext - !> To ccecWithdrawals - !> To ccecVotes + in encodeListLen 2 + <> encCBOR ccecWithdrawals + <> encCBOR ccecVotes instance Era era => DecCBOR (ConwayCertExecContext era) where decCBOR = - decode $ - RecD ConwayCertExecContext - decCBOR <*> decCBOR instance Era era => ToExpr (ConwayCertExecContext era) diff --git a/libs/cardano-ledger-conformance/src/Test/Cardano/Ledger/Conformance/ExecSpecRule/Conway/Ledger.hs b/libs/cardano-ledger-conformance/src/Test/Cardano/Ledger/Conformance/ExecSpecRule/Conway/Ledger.hs index 1812562c45c..1d539e7f4ab 100644 --- a/libs/cardano-ledger-conformance/src/Test/Cardano/Ledger/Conformance/ExecSpecRule/Conway/Ledger.hs +++ b/libs/cardano-ledger-conformance/src/Test/Cardano/Ledger/Conformance/ExecSpecRule/Conway/Ledger.hs @@ -14,8 +14,7 @@ module Test.Cardano.Ledger.Conformance.ExecSpecRule.Conway.Ledger (ConwayLedgerExecContext (..)) where import Cardano.Ledger.BaseTypes (StrictMaybe) -import Cardano.Ledger.Binary (EncCBOR (..)) -import Cardano.Ledger.Binary.Coders (Encode (..), encode, (!>)) +import Cardano.Ledger.Binary (EncCBOR (..), encodeListLen) import Cardano.Ledger.Conway (ConwayEra) import Cardano.Ledger.Conway.Core ( EraPParams (..), @@ -96,11 +95,10 @@ instance EncCBOR (ConwayLedgerExecContext era) where encCBOR ConwayLedgerExecContext {..} = - encode $ - Rec ConwayLedgerExecContext - !> To clecGuardrailsScriptHash - !> To clecEnactState - !> To clecUtxoExecContext + encodeListLen 3 + <> encCBOR clecGuardrailsScriptHash + <> encCBOR clecEnactState + <> encCBOR clecUtxoExecContext instance ExecSpecRule "LEDGER" ConwayEra where type ExecContext "LEDGER" ConwayEra = ConwayLedgerExecContext ConwayEra diff --git a/libs/cardano-ledger-core/testlib/Test/Cardano/Ledger/Core/KeyPair.hs b/libs/cardano-ledger-core/testlib/Test/Cardano/Ledger/Core/KeyPair.hs index 9e366253aad..ec7ac344395 100644 --- a/libs/cardano-ledger-core/testlib/Test/Cardano/Ledger/Core/KeyPair.hs +++ b/libs/cardano-ledger-core/testlib/Test/Cardano/Ledger/Core/KeyPair.hs @@ -43,9 +43,7 @@ import qualified Cardano.Crypto.Signing as Byron ( ) import Cardano.Ledger.Address import Cardano.Ledger.BaseTypes (Network (Testnet)) -import Cardano.Ledger.Binary (EncCBOR (encCBOR)) -import Cardano.Ledger.Binary.Coders (Encode (..), encode, (!>)) -import qualified Cardano.Ledger.Binary.Coders as Coders +import Cardano.Ledger.Binary (EncCBOR (encCBOR), encodeListLen) import qualified Cardano.Ledger.Binary.Plain as Plain import Cardano.Ledger.Core import Cardano.Ledger.Credential ( @@ -106,7 +104,7 @@ instance Uniform (KeyPair kd) where <$> uniformByteStringM (fromIntegral (DSIGN.seedSizeDSIGN (Proxy @DSIGN))) g instance EncCBOR (KeyPair r) where - encCBOR (KeyPair x y) = encode $ Coders.Rec KeyPair !> To x !> To y + encCBOR (KeyPair x y) = encodeListLen 2 <> encCBOR x <> encCBOR y deriving instance Typeable r => Eq (KeyPair r) diff --git a/libs/cardano-ledger-test/src/Test/Cardano/Ledger/Constrained/Conway/Instances/Ledger.hs b/libs/cardano-ledger-test/src/Test/Cardano/Ledger/Constrained/Conway/Instances/Ledger.hs index 24ed4ac97ba..5d379425943 100644 --- a/libs/cardano-ledger-test/src/Test/Cardano/Ledger/Constrained/Conway/Instances/Ledger.hs +++ b/libs/cardano-ledger-test/src/Test/Cardano/Ledger/Constrained/Conway/Instances/Ledger.hs @@ -12,6 +12,7 @@ {-# LANGUAGE InstanceSigs #-} {-# LANGUAGE LambdaCase #-} {-# LANGUAGE MultiParamTypeClasses #-} +{-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE PartialTypeSignatures #-} {-# LANGUAGE RecordWildCards #-} {-# LANGUAGE ScopedTypeVariables #-} @@ -76,8 +77,13 @@ import Cardano.Ledger.Alonzo.TxOut import Cardano.Ledger.Alonzo.TxWits import Cardano.Ledger.Babbage.TxBody (BabbageTxOut (..)) import Cardano.Ledger.BaseTypes hiding (inject) -import Cardano.Ledger.Binary (DecCBOR (..), EncCBOR (..), Sized (..)) -import Cardano.Ledger.Binary.Coders +import Cardano.Ledger.Binary ( + DecCBOR (..), + EncCBOR (..), + Sized (..), + decodeRecordNamed, + encodeListLen, + ) import Cardano.Ledger.Coin import Cardano.Ledger.Compactible import Cardano.Ledger.Conway (ConwayEra, Tx (..)) @@ -1271,23 +1277,17 @@ data ProposalsSplit = ProposalsSplit instance EncCBOR ProposalsSplit where encCBOR x@(ProposalsSplit _ _ _ _ _) = let ProposalsSplit {..} = x - in encode $ - Rec ProposalsSplit - !> To psPPChange - !> To psHFInitiation - !> To psUpdateCommittee - !> To psNewConstitution - !> To psOthers + in encodeListLen 5 + <> encCBOR psPPChange + <> encCBOR psHFInitiation + <> encCBOR psUpdateCommittee + <> encCBOR psNewConstitution + <> encCBOR psOthers instance DecCBOR ProposalsSplit where decCBOR = - decode $ - RecD ProposalsSplit - decCBOR <*> decCBOR <*> decCBOR <*> decCBOR <*> decCBOR instance ToExpr ProposalsSplit diff --git a/libs/cardano-ledger-test/src/Test/Cardano/Ledger/Constrained/Conway/Utxo.hs b/libs/cardano-ledger-test/src/Test/Cardano/Ledger/Constrained/Conway/Utxo.hs index 815ce84a1f3..22f11479bcc 100644 --- a/libs/cardano-ledger-test/src/Test/Cardano/Ledger/Constrained/Conway/Utxo.hs +++ b/libs/cardano-ledger-test/src/Test/Cardano/Ledger/Constrained/Conway/Utxo.hs @@ -21,8 +21,15 @@ module Test.Cardano.Ledger.Constrained.Conway.Utxo where import Cardano.Ledger.Babbage.TxOut import Cardano.Ledger.BaseTypes -import Cardano.Ledger.Binary (DecCBOR (..), EncCBOR (..)) -import Cardano.Ledger.Binary.Coders (Decode (..), Encode (..), decode, encode, (!>), ( SumD CredentialDeposit SumD PoolDeposit SumD DRepDeposit SumD GovActionDeposit Invalid k + decCBOR = decodeRecordSum "DepositPurpose" $ \case + 0 -> do + c <- decCBOR + pure (2, CredentialDeposit c) + 1 -> do + kh <- decCBOR + pure (2, PoolDeposit kh) + 2 -> do + c <- decCBOR + pure (2, DRepDeposit c) + 3 -> do + gaid <- decCBOR + pure (2, GovActionDeposit gaid) + k -> invalidKey k instance EncCBOR DepositPurpose where - encCBOR = - encode . \case - CredentialDeposit c -> Sum CredentialDeposit 0 !> To c - PoolDeposit kh -> Sum PoolDeposit 1 !> To kh - DRepDeposit c -> Sum DRepDeposit 2 !> To c - GovActionDeposit gaid -> Sum GovActionDeposit 3 !> To gaid + encCBOR = \case + CredentialDeposit c -> encodeListLen 2 <> encodeWord 0 <> encCBOR c + PoolDeposit kh -> encodeListLen 2 <> encodeWord 1 <> encCBOR kh + DRepDeposit c -> encodeListLen 2 <> encodeWord 2 <> encCBOR c + GovActionDeposit gaid -> encodeListLen 2 <> encodeWord 3 <> encCBOR gaid instance NFData DepositPurpose @@ -189,11 +201,10 @@ instance where encCBOR x@(UtxoExecContext _ _ _) = let UtxoExecContext {..} = x - in encode $ - Rec UtxoExecContext - !> To uecTx - !> To uecUTxO - !> To uecUtxoEnv + in encodeListLen 3 + <> encCBOR uecTx + <> encCBOR uecUTxO + <> encCBOR uecUtxoEnv instance CertState era ~ ConwayCertState era => Inject (UtxoExecContext era) (ConwayCertState era) where inject ctx = (uecUtxoEnv ctx) ^. Shelley.utxoEnvCertStateL diff --git a/libs/cardano-ledger-test/src/Test/Cardano/Ledger/Constrained/Conway/WitnessUniverse.hs b/libs/cardano-ledger-test/src/Test/Cardano/Ledger/Constrained/Conway/WitnessUniverse.hs index b1552ef9284..8067ec24d29 100644 --- a/libs/cardano-ledger-test/src/Test/Cardano/Ledger/Constrained/Conway/WitnessUniverse.hs +++ b/libs/cardano-ledger-test/src/Test/Cardano/Ledger/Constrained/Conway/WitnessUniverse.hs @@ -42,8 +42,7 @@ import Cardano.Ledger.Alonzo.Scripts (AlonzoEraScript (..), AsIx (..), PlutusPur import Cardano.Ledger.Alonzo.TxWits (AlonzoEraTxWits (..), Redeemers (..), TxDats (..)) import Cardano.Ledger.Babbage (BabbageEra) import Cardano.Ledger.BaseTypes (Network (..), SlotNo (..)) -import Cardano.Ledger.Binary (EncCBOR (encCBOR)) -import Cardano.Ledger.Binary.Coders (Encode (..), encode, (!>)) +import Cardano.Ledger.Binary (EncCBOR (encCBOR), encodeListLen) import Cardano.Ledger.Conway (ConwayEra) import Cardano.Ledger.Conway.Governance import Cardano.Ledger.Conway.State ( @@ -327,7 +326,8 @@ instance Show (WitUniv era) where ++ "\n" instance Era era => EncCBOR (WitUniv era) where - encCBOR (WitUniv n w x y z) = encode $ Rec WitUniv !> To n !> To w !> To x !> To y !> To z + encCBOR (WitUniv n w x y z) = + encodeListLen 5 <> encCBOR n <> encCBOR w <> encCBOR x <> encCBOR y <> encCBOR z -- ==================================================================== -- Purpose 1) To efficiently constrain objects to be witnessed when using constraint generators