{-# LANGUAGE UndecidableSuperClasses #-}
{-# OPTIONS_GHC -Wno-orphans #-}

module Test.Cardano.Ledger.Babbage.Era (
  module Test.Cardano.Ledger.Alonzo.Era,
  BabbageEraTest,
) where

import Cardano.Ledger.Babbage
import Cardano.Ledger.Babbage.Core
import Cardano.Ledger.Plutus (Language (..))
import Test.Cardano.Ledger.Alonzo.Era
import Test.Cardano.Ledger.Babbage.Arbitrary ()
import Test.Cardano.Ledger.Babbage.TreeDiff ()
import Test.Cardano.Ledger.Plutus (zeroTestingCostModels)

class
  ( AlonzoEraTest era
  , BabbageEraTxBody era
  , BabbageEraPParams era
  ) =>
  BabbageEraTest era

instance EraTest BabbageEra where
  zeroCostModels :: CostModels
zeroCostModels = HasCallStack => [Language] -> CostModels
[Language] -> CostModels
zeroTestingCostModels [Language
PlutusV1 .. Language
PlutusV2]
  mkTestAccountState :: HasCallStack =>
Maybe Ptr
-> CompactForm Coin
-> Maybe (KeyHash 'StakePool)
-> Maybe DRep
-> AccountState BabbageEra
mkTestAccountState = Maybe Ptr
-> CompactForm Coin
-> Maybe (KeyHash 'StakePool)
-> Maybe DRep
-> AccountState BabbageEra
forall era.
(HasCallStack, ShelleyEraAccounts era) =>
Maybe Ptr
-> CompactForm Coin
-> Maybe (KeyHash 'StakePool)
-> Maybe DRep
-> AccountState era
mkShelleyTestAccountState

  accountsFromAccountsMap :: Map (Credential 'Staking) (AccountState BabbageEra)
-> Accounts BabbageEra
accountsFromAccountsMap = Map (Credential 'Staking) (AccountState BabbageEra)
-> Accounts BabbageEra
forall era.
(Accounts era ~ ShelleyAccounts era,
 AccountState era ~ ShelleyAccountState era,
 ShelleyEraAccounts era) =>
Map (Credential 'Staking) (AccountState era) -> Accounts era
shelleyAccountsFromAccountsMap

  accountsToUMap :: Accounts BabbageEra -> UMap
accountsToUMap = Accounts BabbageEra -> UMap
forall era. ShelleyEraAccounts era => Accounts era -> UMap
shelleyAccountsToUMap

instance ShelleyEraTest BabbageEra

instance AllegraEraTest BabbageEra

instance MaryEraTest BabbageEra

instance AlonzoEraTest BabbageEra

instance BabbageEraTest BabbageEra