-- editorconfig-checker-disable-file
{-# LANGUAGE OverloadedLists #-}

module Cardano.Constitution.Validator
  ( module Export
  , defaultValidators
  , defaultValidatorsWithCodes
  ) where

import Cardano.Constitution.Validator.Common as Export
import Cardano.Constitution.Validator.Sorted qualified as S
import Cardano.Constitution.Validator.Unsorted qualified as U

-- import Cardano.Constitution.Validator.Reference.Script qualified as R

import Data.Map.Strict qualified as M
import PlutusTx.Code

defaultValidatorsWithCodes :: M.Map String (ConstitutionValidator, CompiledCode ConstitutionValidator)
defaultValidatorsWithCodes :: Map
  String (ConstitutionValidator, CompiledCode ConstitutionValidator)
defaultValidatorsWithCodes =
  [ (String
"sorted", (ConstitutionValidator
S.defaultConstitutionValidator, CompiledCode ConstitutionValidator
S.defaultConstitutionCode))
  , (String
"unsorted", (ConstitutionValidator
U.defaultConstitutionValidator, CompiledCode ConstitutionValidator
U.defaultConstitutionCode))
  -- Disabled, 7 tests fail
  -- , ("ref", (R.constitutionScript, R.compiledConstitutionScript))
  ]

defaultValidators :: M.Map String ConstitutionValidator
defaultValidators :: Map String ConstitutionValidator
defaultValidators = ((ConstitutionValidator, CompiledCode ConstitutionValidator)
 -> ConstitutionValidator)
-> Map
     String (ConstitutionValidator, CompiledCode ConstitutionValidator)
-> Map String ConstitutionValidator
forall a b. (a -> b) -> Map String a -> Map String b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap (ConstitutionValidator, CompiledCode ConstitutionValidator)
-> ConstitutionValidator
forall a b. (a, b) -> a
fst Map
  String (ConstitutionValidator, CompiledCode ConstitutionValidator)
defaultValidatorsWithCodes