{-# 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, EncCBOR (MempoolTx era),
 DecCBOR (Annotator (MempoolTx era)), Arbitrary (TxBody TopTx era),
 Arbitrary (TxWits era), Arbitrary (TxAuxData era),
 Arbitrary (Script era), Arbitrary (MempoolTx era), HasCallStack) =>
Spec
Binary.decoderEquivalenceCoreEraTypesSpec @ShelleyEra
  forall era.
(EraTx era, Arbitrary (Tx TopTx era), SafeToHash (TxWits era)) =>
Spec
Binary.txSizeSpec @ShelleyEra