{-# OPTIONS_GHC -Wno-orphans #-}

module Test.Cardano.Ledger.Dijkstra.Era (
  module Test.Cardano.Ledger.Conway.Era,
) where

import Cardano.Ledger.Dijkstra (DijkstraEra)
import Cardano.Ledger.Dijkstra.State
import Cardano.Ledger.Plutus (Language (..))
import Data.Coerce
import Test.Cardano.Ledger.Conway.Era
import Test.Cardano.Ledger.Dijkstra.Arbitrary ()
import Test.Cardano.Ledger.Dijkstra.TreeDiff ()
import Test.Cardano.Ledger.Plutus (zeroTestingCostModels)

instance EraTest DijkstraEra where
  zeroCostModels :: CostModels
zeroCostModels = HasCallStack => [Language] -> CostModels
[Language] -> CostModels
zeroTestingCostModels [Language
PlutusV1 .. Language
PlutusV4]

  mkTestAccountState :: HasCallStack =>
Maybe Ptr
-> CompactForm Coin
-> Maybe (KeyHash 'StakePool)
-> Maybe DRep
-> AccountState DijkstraEra
mkTestAccountState Maybe Ptr
_ptr = CompactForm Coin
-> Maybe (KeyHash 'StakePool)
-> Maybe DRep
-> AccountState DijkstraEra
forall era.
ConwayEraAccounts era =>
CompactForm Coin
-> Maybe (KeyHash 'StakePool) -> Maybe DRep -> AccountState era
mkConwayTestAccountState

  accountsFromAccountsMap :: Map (Credential 'Staking) (AccountState DijkstraEra)
-> Accounts DijkstraEra
accountsFromAccountsMap = Map (Credential 'Staking) (AccountState DijkstraEra)
-> Accounts DijkstraEra
Map (Credential 'Staking) (ConwayAccountState DijkstraEra)
-> ConwayAccounts DijkstraEra
forall a b. Coercible a b => a -> b
coerce

  accountsToUMap :: Accounts DijkstraEra -> UMap
accountsToUMap = Accounts DijkstraEra -> UMap
forall era. ConwayEraAccounts era => Accounts era -> UMap
conwayAccountsToUMap

instance ShelleyEraTest DijkstraEra

instance AllegraEraTest DijkstraEra

instance MaryEraTest DijkstraEra

instance AlonzoEraTest DijkstraEra

instance BabbageEraTest DijkstraEra

instance ConwayEraTest DijkstraEra