{-# LANGUAGE AllowAmbiguousTypes #-} {-# LANGUAGE DataKinds #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE TypeApplications #-} {-# LANGUAGE TypeFamilies #-} {-# LANGUAGE TypeOperators #-} {-# OPTIONS_GHC -Wno-orphans #-} module Test.Cardano.Ledger.Conway.Binary.RoundTrip ( roundTripConwayCommonSpec, roundTripConwayEraTypesSpec, ) where import Cardano.Ledger.BaseTypes (StrictMaybe) import Cardano.Ledger.Compactible import Cardano.Ledger.Conway (ConwayEra) import Cardano.Ledger.Conway.Governance import Cardano.Ledger.Core import Cardano.Ledger.Crypto (Crypto) import Cardano.Ledger.Plutus (CostModels) import Cardano.Ledger.Shelley.LedgerState import Test.Cardano.Ledger.Alonzo.Binary.RoundTrip (roundTripAlonzoCommonSpec) import Test.Cardano.Ledger.Common import Test.Cardano.Ledger.Conway.Arbitrary () import Test.Cardano.Ledger.Core.Binary.RoundTrip roundTripConwayCommonSpec :: forall era. ( EraTx era , EraGov era , StashedAVVMAddresses era ~ () , Arbitrary (Tx era) , Arbitrary (TxBody era) , Arbitrary (TxOut era) , Arbitrary (TxCert era) , Arbitrary (TxWits era) , Arbitrary (TxAuxData era) , Arbitrary (Value era) , Arbitrary (CompactForm (Value era)) , Arbitrary (Script era) , Arbitrary (GovState era) , Arbitrary (PParams era) , Arbitrary (PParamsUpdate era) , Arbitrary (PParamsHKD StrictMaybe era) , RuleListEra era ) => Spec roundTripConwayCommonSpec :: forall era. (EraTx era, EraGov era, StashedAVVMAddresses era ~ (), Arbitrary (Tx era), Arbitrary (TxBody era), Arbitrary (TxOut era), Arbitrary (TxCert era), Arbitrary (TxWits era), Arbitrary (TxAuxData era), Arbitrary (Value era), Arbitrary (CompactForm (Value era)), Arbitrary (Script era), Arbitrary (GovState era), Arbitrary (PParams era), Arbitrary (PParamsUpdate era), Arbitrary (PParamsHKD StrictMaybe era), RuleListEra era) => Spec roundTripConwayCommonSpec = do forall era. (Arbitrary (PParams era), Arbitrary (PParamsUpdate era), Arbitrary (PParamsHKD StrictMaybe era), EraPParams era) => Spec roundTripConwayEraTypesSpec @era forall era. (EraTx era, EraGov era, StashedAVVMAddresses era ~ (), Arbitrary (Tx era), Arbitrary (TxBody era), Arbitrary (TxOut era), Arbitrary (TxCert era), Arbitrary (TxWits era), Arbitrary (TxAuxData era), Arbitrary (Value era), Arbitrary (CompactForm (Value era)), Arbitrary (Script era), Arbitrary (GovState era), Arbitrary (PParams era), Arbitrary (PParamsUpdate era), RuleListEra era) => Spec roundTripAlonzoCommonSpec @era roundTripConwayEraTypesSpec :: forall era. ( Arbitrary (PParams era) , Arbitrary (PParamsUpdate era) , Arbitrary (PParamsHKD StrictMaybe era) , EraPParams era ) => Spec roundTripConwayEraTypesSpec :: forall era. (Arbitrary (PParams era), Arbitrary (PParamsUpdate era), Arbitrary (PParamsHKD StrictMaybe era), EraPParams era) => Spec roundTripConwayEraTypesSpec = do forall a. HasCallStack => String -> SpecWith a -> SpecWith a describe String "Conway Transaction Types" forall a b. (a -> b) -> a -> b $ do forall era (t :: * -> *). (Era era, Show (t era), Eq (t era), EncCBOR (t era), DecCBOR (t era), Arbitrary (t era), HasCallStack) => Spec roundTripEraTypeSpec @era @GovAction forall era (t :: * -> *). (Era era, Show (t era), Eq (t era), EncCBOR (t era), DecCBOR (t era), Arbitrary (t era), HasCallStack) => Spec roundTripEraTypeSpec @era @VotingProcedure forall era (t :: * -> *). (Era era, Show (t era), Eq (t era), EncCBOR (t era), DecCBOR (t era), Arbitrary (t era), HasCallStack) => Spec roundTripEraTypeSpec @era @VotingProcedures forall era (t :: * -> *). (Era era, Show (t era), Eq (t era), EncCBOR (t era), DecCBOR (t era), Arbitrary (t era), HasCallStack) => Spec roundTripEraTypeSpec @era @ProposalProcedure forall era (t :: * -> *). (Era era, Show (t era), Eq (t era), EncCBOR (t era), DecCBOR (t era), Arbitrary (t era), HasCallStack) => Spec roundTripEraTypeSpec @era @Constitution forall prop. (HasCallStack, Testable prop) => String -> prop -> Spec prop String "CostModels" forall a b. (a -> b) -> a -> b $ forall era t. (Era era, Show t, Eq t, EncCBOR t, DecCBOR t, HasCallStack) => t -> Expectation roundTripEraExpectation @era @CostModels forall a. HasCallStack => String -> SpecWith a -> SpecWith a describe String "Conway State Types" forall a b. (a -> b) -> a -> b $ do forall era (t :: * -> *). (Era era, Show (t era), Eq (t era), EncCBOR (t era), DecShareCBOR (t era), Arbitrary (t era), HasCallStack) => Spec roundTripShareEraTypeSpec @era @EnactState forall era (t :: * -> *). (Era era, Show (t era), Eq (t era), EncCBOR (t era), DecShareCBOR (t era), Arbitrary (t era), HasCallStack) => Spec roundTripShareEraTypeSpec @era @GovActionState forall era (t :: * -> *). (Era era, Show (t era), Eq (t era), EncCBOR (t era), DecShareCBOR (t era), Arbitrary (t era), HasCallStack) => Spec roundTripShareEraTypeSpec @era @Proposals forall era (t :: * -> *). (Era era, Show (t era), Eq (t era), EncCBOR (t era), DecShareCBOR (t era), Arbitrary (t era), HasCallStack) => Spec roundTripShareEraTypeSpec @era @DRepPulsingState forall era (t :: * -> *). (Era era, Show (t era), Eq (t era), EncCBOR (t era), DecShareCBOR (t era), Arbitrary (t era), HasCallStack) => Spec roundTripShareEraTypeSpec @era @PulsingSnapshot forall era (t :: * -> *). (Era era, Show (t era), Eq (t era), EncCBOR (t era), DecShareCBOR (t era), Arbitrary (t era), HasCallStack) => Spec roundTripShareEraTypeSpec @era @RatifyState instance Crypto c => RuleListEra (ConwayEra c) where type EraRules (ConwayEra c) = '[ "GOV" , "UTXOS" , "LEDGER" , "CERTS" , "CERT" , "DELEG" , "GOVCERT" , "UTXOW" , "UTXO" , "LEDGERS" , "POOL" ]