{-# 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) mkStAnnTx :: EpochInfo (Either Text) -> SystemStart -> PParams AllegraEra -> UTxO AllegraEra -> Tx TopTx AllegraEra -> StAnnTx TopTx AllegraEra mkStAnnTx EpochInfo (Either Text) _ SystemStart _ PParams AllegraEra _ UTxO AllegraEra _ = Tx TopTx AllegraEra -> Tx TopTx AllegraEra Tx TopTx AllegraEra -> StAnnTx TopTx AllegraEra forall a. a -> a id applyTxValidation :: ValidationPolicy -> Globals -> MempoolEnv AllegraEra -> MempoolState AllegraEra -> StAnnTx TopTx AllegraEra -> Either (ApplyTxError AllegraEra) (MempoolState AllegraEra, Validated (Tx TopTx AllegraEra)) applyTxValidation ValidationPolicy validationPolicy Globals globals MempoolEnv AllegraEra env MempoolState AllegraEra state StAnnTx TopTx AllegraEra stAnnTx = (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. (EraTx 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) ~ StAnnTx TopTx era) => ValidationPolicy -> Globals -> LedgerEnv era -> MempoolState era -> StAnnTx 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 StAnnTx TopTx AllegraEra stAnnTx instance ApplyTick AllegraEra instance EraBlockHeader h AllegraEra => ApplyBlock h AllegraEra