{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE GADTs #-}
{-# LANGUAGE LambdaCase #-}
{-# LANGUAGE RankNTypes #-}

module Test.Gen.Cardano.Api.Era
  ( shelleyBasedEraTestConstraints
  , conwayEraOnwardsTestConstraints
  )
where

import Cardano.Api hiding (txIns)

import Cardano.Ledger.Core qualified as Ledger

import Data.Maybe.Strict

import Test.Gen.Cardano.Api.Orphans ()

import Test.QuickCheck

shelleyBasedEraTestConstraints
  :: ()
  => ShelleyBasedEra era
  -> ( ( Ledger.Era (ShelleyLedgerEra era)
       , Arbitrary (Ledger.PParams (ShelleyLedgerEra era))
       )
       => a
     )
  -> a
shelleyBasedEraTestConstraints :: forall era a.
ShelleyBasedEra era
-> ((Era (ShelleyLedgerEra era),
     Arbitrary (PParams (ShelleyLedgerEra era))) =>
    a)
-> a
shelleyBasedEraTestConstraints = \case
  ShelleyBasedEra era
ShelleyBasedEraShelley -> a -> a
((Era (ShelleyLedgerEra era),
  Arbitrary (PParams (ShelleyLedgerEra era))) =>
 a)
-> a
forall a. a -> a
id
  ShelleyBasedEra era
ShelleyBasedEraAllegra -> a -> a
((Era (ShelleyLedgerEra era),
  Arbitrary (PParams (ShelleyLedgerEra era))) =>
 a)
-> a
forall a. a -> a
id
  ShelleyBasedEra era
ShelleyBasedEraMary -> a -> a
((Era (ShelleyLedgerEra era),
  Arbitrary (PParams (ShelleyLedgerEra era))) =>
 a)
-> a
forall a. a -> a
id
  ShelleyBasedEra era
ShelleyBasedEraAlonzo -> a -> a
((Era (ShelleyLedgerEra era),
  Arbitrary (PParams (ShelleyLedgerEra era))) =>
 a)
-> a
forall a. a -> a
id
  ShelleyBasedEra era
ShelleyBasedEraBabbage -> a -> a
((Era (ShelleyLedgerEra era),
  Arbitrary (PParams (ShelleyLedgerEra era))) =>
 a)
-> a
forall a. a -> a
id
  ShelleyBasedEra era
ShelleyBasedEraConway -> a -> a
((Era (ShelleyLedgerEra era),
  Arbitrary (PParams (ShelleyLedgerEra era))) =>
 a)
-> a
forall a. a -> a
id

conwayEraOnwardsTestConstraints
  :: ()
  => ConwayEraOnwards era
  -> ( ( Ledger.Era (ShelleyLedgerEra era)
       , Arbitrary (Ledger.PParamsHKD StrictMaybe (ShelleyLedgerEra era))
       )
       => a
     )
  -> a
conwayEraOnwardsTestConstraints :: forall era a.
ConwayEraOnwards era
-> ((Era (ShelleyLedgerEra era),
     Arbitrary (PParamsHKD StrictMaybe (ShelleyLedgerEra era))) =>
    a)
-> a
conwayEraOnwardsTestConstraints = \case
  ConwayEraOnwards era
ConwayEraOnwardsConway -> a -> a
((Era (ShelleyLedgerEra era),
  Arbitrary (PParamsHKD StrictMaybe (ShelleyLedgerEra era))) =>
 a)
-> a
forall a. a -> a
id