{-# LANGUAGE AllowAmbiguousTypes #-} {-# LANGUAGE DataKinds #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE TypeApplications #-} {-# LANGUAGE TypeFamilies #-} module Test.Cardano.Ledger.Babbage.Imp (spec) where import Cardano.Ledger.Alonzo.Plutus.Context (ContextError) import Cardano.Ledger.Alonzo.Rules ( AlonzoUtxoPredFailure, AlonzoUtxosPredFailure, AlonzoUtxowPredFailure, ) import Cardano.Ledger.Babbage.Core (BabbageEraTxBody, InjectRuleFailure) import Cardano.Ledger.Babbage.Rules (BabbageUtxoPredFailure, BabbageUtxowPredFailure) import Cardano.Ledger.Babbage.TxInfo (BabbageContextError) import Cardano.Ledger.BaseTypes (Inject) import Cardano.Ledger.Shelley.Rules ( ShelleyDelegPredFailure, ShelleyUtxoPredFailure, ShelleyUtxowPredFailure, ) import qualified Test.Cardano.Ledger.Alonzo.Imp as AlonzoImp import Test.Cardano.Ledger.Alonzo.ImpTest (AlonzoEraImp, LedgerSpec) import qualified Test.Cardano.Ledger.Babbage.Imp.UtxoSpec as Utxo import qualified Test.Cardano.Ledger.Babbage.Imp.UtxosSpec as Utxos import qualified Test.Cardano.Ledger.Babbage.Imp.UtxowSpec as Utxow import Test.Cardano.Ledger.Imp.Common spec :: forall era. ( AlonzoEraImp era , BabbageEraTxBody era , InjectRuleFailure "LEDGER" ShelleyDelegPredFailure era , InjectRuleFailure "LEDGER" ShelleyUtxoPredFailure era , InjectRuleFailure "LEDGER" AlonzoUtxoPredFailure era , InjectRuleFailure "LEDGER" AlonzoUtxosPredFailure era , InjectRuleFailure "LEDGER" AlonzoUtxowPredFailure era , InjectRuleFailure "LEDGER" ShelleyUtxowPredFailure era , InjectRuleFailure "LEDGER" BabbageUtxoPredFailure era , InjectRuleFailure "LEDGER" BabbageUtxowPredFailure era , Inject (BabbageContextError era) (ContextError era) ) => Spec spec :: forall era. (AlonzoEraImp era, BabbageEraTxBody era, InjectRuleFailure "LEDGER" ShelleyDelegPredFailure era, InjectRuleFailure "LEDGER" ShelleyUtxoPredFailure era, InjectRuleFailure "LEDGER" AlonzoUtxoPredFailure era, InjectRuleFailure "LEDGER" AlonzoUtxosPredFailure era, InjectRuleFailure "LEDGER" AlonzoUtxowPredFailure era, InjectRuleFailure "LEDGER" ShelleyUtxowPredFailure era, InjectRuleFailure "LEDGER" BabbageUtxoPredFailure era, InjectRuleFailure "LEDGER" BabbageUtxowPredFailure era, Inject (BabbageContextError era) (ContextError era)) => Spec spec = do forall era. (AlonzoEraImp era, InjectRuleFailure "LEDGER" ShelleyDelegPredFailure era, InjectRuleFailure "LEDGER" ShelleyUtxoPredFailure era, InjectRuleFailure "LEDGER" ShelleyUtxowPredFailure era, InjectRuleFailure "LEDGER" AlonzoUtxoPredFailure era, InjectRuleFailure "LEDGER" AlonzoUtxosPredFailure era, InjectRuleFailure "LEDGER" AlonzoUtxowPredFailure era) => Spec AlonzoImp.spec @era forall t. ImpSpec t => SpecWith (ImpInit t) -> Spec withImpInit @(LedgerSpec era) (SpecWith (ImpInit (LedgerSpec era)) -> Spec) -> SpecWith (ImpInit (LedgerSpec era)) -> Spec forall a b. (a -> b) -> a -> b $ String -> SpecWith (ImpInit (LedgerSpec era)) -> SpecWith (ImpInit (LedgerSpec era)) forall a. HasCallStack => String -> SpecWith a -> SpecWith a describe String "BabbageImpSpec" (SpecWith (ImpInit (LedgerSpec era)) -> SpecWith (ImpInit (LedgerSpec era))) -> SpecWith (ImpInit (LedgerSpec era)) -> SpecWith (ImpInit (LedgerSpec era)) forall a b. (a -> b) -> a -> b $ do SpecWith (ImpInit (LedgerSpec era)) forall era. (AlonzoEraImp era, BabbageEraTxBody era, InjectRuleFailure "LEDGER" BabbageUtxoPredFailure era) => SpecWith (ImpInit (LedgerSpec era)) Utxo.spec SpecWith (ImpInit (LedgerSpec era)) forall era. (AlonzoEraImp era, BabbageEraTxBody era, InjectRuleFailure "LEDGER" ShelleyUtxowPredFailure era, InjectRuleFailure "LEDGER" BabbageUtxowPredFailure era, InjectRuleFailure "LEDGER" AlonzoUtxosPredFailure era, InjectRuleFailure "LEDGER" AlonzoUtxowPredFailure era, Inject (BabbageContextError era) (ContextError era)) => SpecWith (ImpInit (LedgerSpec era)) Utxow.spec forall era. (AlonzoEraImp era, BabbageEraTxBody era, InjectRuleFailure "LEDGER" AlonzoUtxosPredFailure era, Inject (BabbageContextError era) (ContextError era)) => SpecWith (ImpInit (LedgerSpec era)) Utxos.spec @era