{-# LANGUAGE DataKinds #-} {-# LANGUAGE DerivingStrategies #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-} {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE TypeApplications #-} {-# LANGUAGE TypeFamilies #-} {-# LANGUAGE UndecidableInstances #-} {-# OPTIONS_GHC -Wno-orphans #-} module Cardano.Ledger.Allegra ( AllegraEra, Tx (..), ApplyTxError (..), ) where import Cardano.Ledger.Allegra.BlockBody () import Cardano.Ledger.Allegra.Era (AllegraEra) import Cardano.Ledger.Allegra.Forecast () import Cardano.Ledger.Allegra.PParams () import Cardano.Ledger.Allegra.Rules () import Cardano.Ledger.Allegra.Scripts () import Cardano.Ledger.Allegra.State () import Cardano.Ledger.Allegra.Transition () import Cardano.Ledger.Allegra.Translation () import Cardano.Ledger.Allegra.Tx (Tx (..)) import Cardano.Ledger.Allegra.UTxO () import Cardano.Ledger.Binary (DecCBOR, EncCBOR) import Cardano.Ledger.Block (EraBlockHeader) import Cardano.Ledger.Shelley.API import Cardano.Ledger.Shelley.Rules (ShelleyLedgerPredFailure) import Data.Bifunctor (Bifunctor (first)) import Data.List.NonEmpty (NonEmpty) import GHC.Generics (Generic) instance ApplyTx AllegraEra where newtype ApplyTxError AllegraEra = AllegraApplyTxError (NonEmpty (ShelleyLedgerPredFailure AllegraEra)) deriving (ApplyTxError AllegraEra -> ApplyTxError AllegraEra -> Bool (ApplyTxError AllegraEra -> ApplyTxError AllegraEra -> Bool) -> (ApplyTxError AllegraEra -> ApplyTxError AllegraEra -> Bool) -> Eq (ApplyTxError AllegraEra) forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a $c== :: ApplyTxError AllegraEra -> ApplyTxError AllegraEra -> Bool == :: ApplyTxError AllegraEra -> ApplyTxError AllegraEra -> Bool $c/= :: ApplyTxError AllegraEra -> ApplyTxError AllegraEra -> Bool /= :: ApplyTxError AllegraEra -> ApplyTxError AllegraEra -> Bool Eq, Int -> ApplyTxError AllegraEra -> ShowS [ApplyTxError AllegraEra] -> ShowS ApplyTxError AllegraEra -> String (Int -> ApplyTxError AllegraEra -> ShowS) -> (ApplyTxError AllegraEra -> String) -> ([ApplyTxError AllegraEra] -> ShowS) -> Show (ApplyTxError AllegraEra) forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a $cshowsPrec :: Int -> ApplyTxError AllegraEra -> ShowS showsPrec :: Int -> ApplyTxError AllegraEra -> ShowS $cshow :: ApplyTxError AllegraEra -> String show :: ApplyTxError AllegraEra -> String $cshowList :: [ApplyTxError AllegraEra] -> ShowS showList :: [ApplyTxError AllegraEra] -> ShowS Show) deriving newtype (ApplyTxError AllegraEra -> Encoding (ApplyTxError AllegraEra -> Encoding) -> EncCBOR (ApplyTxError AllegraEra) forall a. (a -> Encoding) -> EncCBOR a $cencCBOR :: ApplyTxError AllegraEra -> Encoding encCBOR :: ApplyTxError AllegraEra -> Encoding EncCBOR, Typeable (ApplyTxError AllegraEra) Typeable (ApplyTxError AllegraEra) => (forall s. Decoder s (ApplyTxError AllegraEra)) -> (forall s. Proxy (ApplyTxError AllegraEra) -> Decoder s ()) -> (Proxy (ApplyTxError AllegraEra) -> Text) -> DecCBOR (ApplyTxError AllegraEra) Proxy (ApplyTxError AllegraEra) -> Text forall s. Decoder s (ApplyTxError AllegraEra) forall a. Typeable a => (forall s. Decoder s a) -> (forall s. Proxy a -> Decoder s ()) -> (Proxy a -> Text) -> DecCBOR a forall s. Proxy (ApplyTxError AllegraEra) -> Decoder s () $cdecCBOR :: forall s. Decoder s (ApplyTxError AllegraEra) decCBOR :: forall s. Decoder s (ApplyTxError AllegraEra) $cdropCBOR :: forall s. Proxy (ApplyTxError AllegraEra) -> Decoder s () dropCBOR :: forall s. Proxy (ApplyTxError AllegraEra) -> Decoder s () $clabel :: Proxy (ApplyTxError AllegraEra) -> Text label :: Proxy (ApplyTxError AllegraEra) -> Text DecCBOR, NonEmpty (ApplyTxError AllegraEra) -> ApplyTxError AllegraEra ApplyTxError AllegraEra -> ApplyTxError AllegraEra -> ApplyTxError AllegraEra (ApplyTxError AllegraEra -> ApplyTxError AllegraEra -> ApplyTxError AllegraEra) -> (NonEmpty (ApplyTxError AllegraEra) -> ApplyTxError AllegraEra) -> (forall b. Integral b => b -> ApplyTxError AllegraEra -> ApplyTxError AllegraEra) -> Semigroup (ApplyTxError AllegraEra) forall b. Integral b => b -> ApplyTxError AllegraEra -> ApplyTxError AllegraEra forall a. (a -> a -> a) -> (NonEmpty a -> a) -> (forall b. Integral b => b -> a -> a) -> Semigroup a $c<> :: ApplyTxError AllegraEra -> ApplyTxError AllegraEra -> ApplyTxError AllegraEra <> :: ApplyTxError AllegraEra -> ApplyTxError AllegraEra -> ApplyTxError AllegraEra $csconcat :: NonEmpty (ApplyTxError AllegraEra) -> ApplyTxError AllegraEra sconcat :: NonEmpty (ApplyTxError AllegraEra) -> ApplyTxError AllegraEra $cstimes :: forall b. Integral b => b -> ApplyTxError AllegraEra -> ApplyTxError AllegraEra stimes :: forall b. Integral b => b -> ApplyTxError AllegraEra -> ApplyTxError AllegraEra Semigroup, (forall x. ApplyTxError AllegraEra -> Rep (ApplyTxError AllegraEra) x) -> (forall x. Rep (ApplyTxError AllegraEra) x -> ApplyTxError AllegraEra) -> Generic (ApplyTxError AllegraEra) forall x. Rep (ApplyTxError AllegraEra) x -> ApplyTxError AllegraEra forall x. ApplyTxError AllegraEra -> Rep (ApplyTxError AllegraEra) x forall a. (forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a $cfrom :: forall x. ApplyTxError AllegraEra -> Rep (ApplyTxError AllegraEra) x from :: forall x. ApplyTxError AllegraEra -> Rep (ApplyTxError AllegraEra) x $cto :: forall x. Rep (ApplyTxError AllegraEra) x -> ApplyTxError AllegraEra to :: forall x. Rep (ApplyTxError AllegraEra) x -> ApplyTxError AllegraEra Generic) applyTxValidation :: ValidationPolicy -> Globals -> MempoolEnv AllegraEra -> MempoolState AllegraEra -> Tx TopTx AllegraEra -> Either (ApplyTxError AllegraEra) (MempoolState AllegraEra, Validated (Tx TopTx AllegraEra)) applyTxValidation ValidationPolicy validationPolicy Globals globals MempoolEnv AllegraEra env MempoolState AllegraEra state Tx TopTx AllegraEra tx = (NonEmpty (ShelleyLedgerPredFailure AllegraEra) -> ApplyTxError AllegraEra) -> Either (NonEmpty (ShelleyLedgerPredFailure AllegraEra)) (MempoolState AllegraEra, Validated (Tx TopTx AllegraEra)) -> Either (ApplyTxError AllegraEra) (MempoolState AllegraEra, Validated (Tx TopTx AllegraEra)) forall a b c. (a -> b) -> Either a c -> Either b c forall (p :: * -> * -> *) a b c. Bifunctor p => (a -> b) -> p a c -> p b c first NonEmpty (ShelleyLedgerPredFailure AllegraEra) -> ApplyTxError AllegraEra AllegraApplyTxError (Either (NonEmpty (ShelleyLedgerPredFailure AllegraEra)) (MempoolState AllegraEra, Validated (Tx TopTx AllegraEra)) -> Either (ApplyTxError AllegraEra) (MempoolState AllegraEra, Validated (Tx TopTx AllegraEra))) -> Either (NonEmpty (ShelleyLedgerPredFailure AllegraEra)) (MempoolState AllegraEra, Validated (Tx TopTx AllegraEra)) -> Either (ApplyTxError AllegraEra) (MempoolState AllegraEra, Validated (Tx TopTx AllegraEra)) forall a b. (a -> b) -> a -> b $ forall (rule :: Symbol) era. (STS (EraRule rule era), BaseM (EraRule rule era) ~ ShelleyBase, Environment (EraRule rule era) ~ LedgerEnv era, State (EraRule rule era) ~ MempoolState era, Signal (EraRule rule era) ~ Tx TopTx era) => ValidationPolicy -> Globals -> LedgerEnv era -> MempoolState era -> Tx TopTx era -> Either (NonEmpty (PredicateFailure (EraRule rule era))) (MempoolState era, Validated (Tx TopTx era)) ruleApplyTxValidation @"LEDGER" ValidationPolicy validationPolicy Globals globals MempoolEnv AllegraEra env MempoolState AllegraEra state Tx TopTx AllegraEra tx instance ApplyTick AllegraEra instance EraBlockHeader h AllegraEra => ApplyBlock h AllegraEra