{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE TypeApplications #-}

module Test.Cardano.Ledger.Shelley.BinarySpec (spec) where

import Cardano.Ledger.Shelley (ShelleyEra)
import Test.Cardano.Ledger.Common
import Test.Cardano.Ledger.Core.Binary as Binary (decoderEquivalenceCoreEraTypesSpec, txSizeSpec)
import qualified Test.Cardano.Ledger.Shelley.Binary.GoldenSpec as Golden
import qualified Test.Cardano.Ledger.Shelley.Binary.RoundTripSpec as RoundTrip

spec :: Spec
spec :: Spec
spec = do
  Spec
Golden.spec
  Spec
RoundTrip.spec
  forall era.
(EraTx era, Arbitrary (Tx era), Arbitrary (TxBody era),
 Arbitrary (TxWits era), Arbitrary (TxAuxData era),
 Arbitrary (Script era), DecCBOR (Annotator (Tx era)),
 DecCBOR (Annotator (TxBody era)), DecCBOR (Annotator (TxWits era)),
 DecCBOR (Annotator (TxAuxData era)),
 DecCBOR (Annotator (Script era)), HasCallStack) =>
Spec
Binary.decoderEquivalenceCoreEraTypesSpec @ShelleyEra
  forall era.
(EraTx era, Arbitrary (Tx era), SafeToHash (TxWits era)) =>
Spec
Binary.txSizeSpec @ShelleyEra