{-# LANGUAGE TypeApplications #-} module Main where import Cardano.Ledger.Dijkstra (DijkstraEra) import Cardano.Ledger.Dijkstra.Rules () import Cardano.Ledger.Plutus (SLanguage (..)) import Test.Cardano.Ledger.Babbage.TxInfoSpec (txInfoSpec) import qualified Test.Cardano.Ledger.Babbage.TxInfoSpec as BabbageTxInfo import Test.Cardano.Ledger.Common import Test.Cardano.Ledger.Dijkstra.Binary.Annotator () import qualified Test.Cardano.Ledger.Dijkstra.Binary.CddlSpec as Cddl import Test.Cardano.Ledger.Dijkstra.Binary.RoundTrip () import qualified Test.Cardano.Ledger.Dijkstra.GoldenSpec as GoldenSpec import qualified Test.Cardano.Ledger.Dijkstra.Imp as Imp import Test.Cardano.Ledger.Dijkstra.ImpTest () import Test.Cardano.Ledger.Shelley.JSON (roundTripJsonShelleyEraSpec) main :: IO () IO () main = Spec -> IO () ledgerTestMain (Spec -> IO ()) -> Spec -> IO () forall a b. (a -> b) -> a -> b $ String -> Spec -> Spec forall a. HasCallStack => String -> SpecWith a -> SpecWith a describe String "Dijkstra" (Spec -> Spec) -> Spec -> Spec forall a b. (a -> b) -> a -> b $ do Spec Cddl.spec Spec GoldenSpec.spec forall era. ShelleyEraTest era => Spec roundTripJsonShelleyEraSpec @DijkstraEra String -> Spec -> Spec forall a. HasCallStack => String -> SpecWith a -> SpecWith a describe String "Imp" (Spec -> Spec) -> Spec -> Spec forall a b. (a -> b) -> a -> b $ do forall era. (DijkstraEraImp era, EraSpecificSpec era, Event (EraRule "EPOCH" era) ~ ConwayEpochEvent era, Event (EraRule "NEWEPOCH" era) ~ ConwayNewEpochEvent era, Event (EraRule "HARDFORK" era) ~ ConwayHardForkEvent era) => Spec Imp.spec @DijkstraEra String -> Spec -> Spec forall a. HasCallStack => String -> SpecWith a -> SpecWith a describe String "TxInfo" (Spec -> Spec) -> Spec -> Spec forall a b. (a -> b) -> a -> b $ do forall era. (EraTx era, BabbageEraTxBody era, Value era ~ MaryValue, Inject (BabbageContextError era) (ContextError era), EraPlutusTxInfo 'PlutusV1 era, EraPlutusTxInfo 'PlutusV2 era) => Spec BabbageTxInfo.spec @DijkstraEra forall era (l :: Language). (EraTx era, EraPlutusTxInfo l era, EraPlutusTxInfo 'PlutusV2 era, BabbageEraTxBody era, Value era ~ MaryValue, Inject (BabbageContextError era) (ContextError era), Show (PlutusTxInInfo era l), Eq (PlutusTxInInfo era l)) => SLanguage l -> Spec txInfoSpec @DijkstraEra SLanguage 'PlutusV3 SPlutusV3 forall era (l :: Language). (EraTx era, EraPlutusTxInfo l era, EraPlutusTxInfo 'PlutusV2 era, BabbageEraTxBody era, Value era ~ MaryValue, Inject (BabbageContextError era) (ContextError era), Show (PlutusTxInInfo era l), Eq (PlutusTxInInfo era l)) => SLanguage l -> Spec txInfoSpec @DijkstraEra SLanguage 'PlutusV4 SPlutusV4