{-# 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.Babbage ( BabbageEra, BabbageTxOut, TxBody (BabbageTxBody), Tx (..), ApplyTxError (..), AlonzoScript, AlonzoTxAuxData, ) where import Cardano.Ledger.Alonzo.Scripts (AlonzoScript (..)) import Cardano.Ledger.Alonzo.TxAuxData (AlonzoTxAuxData (..)) import Cardano.Ledger.Babbage.BlockBody () import Cardano.Ledger.Babbage.Era (BabbageEra) import Cardano.Ledger.Babbage.Rules () import Cardano.Ledger.Babbage.State () import Cardano.Ledger.Babbage.Transition () import Cardano.Ledger.Babbage.Translation () import Cardano.Ledger.Babbage.Tx (Tx (..)) import Cardano.Ledger.Babbage.TxBody (BabbageTxOut, TxBody (BabbageTxBody)) import Cardano.Ledger.Babbage.TxInfo () import Cardano.Ledger.Babbage.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 BabbageEra where newtype ApplyTxError BabbageEra = BabbageApplyTxError (NonEmpty (ShelleyLedgerPredFailure BabbageEra)) deriving (ApplyTxError BabbageEra -> ApplyTxError BabbageEra -> Bool (ApplyTxError BabbageEra -> ApplyTxError BabbageEra -> Bool) -> (ApplyTxError BabbageEra -> ApplyTxError BabbageEra -> Bool) -> Eq (ApplyTxError BabbageEra) forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a $c== :: ApplyTxError BabbageEra -> ApplyTxError BabbageEra -> Bool == :: ApplyTxError BabbageEra -> ApplyTxError BabbageEra -> Bool $c/= :: ApplyTxError BabbageEra -> ApplyTxError BabbageEra -> Bool /= :: ApplyTxError BabbageEra -> ApplyTxError BabbageEra -> Bool Eq, Int -> ApplyTxError BabbageEra -> ShowS [ApplyTxError BabbageEra] -> ShowS ApplyTxError BabbageEra -> String (Int -> ApplyTxError BabbageEra -> ShowS) -> (ApplyTxError BabbageEra -> String) -> ([ApplyTxError BabbageEra] -> ShowS) -> Show (ApplyTxError BabbageEra) forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a $cshowsPrec :: Int -> ApplyTxError BabbageEra -> ShowS showsPrec :: Int -> ApplyTxError BabbageEra -> ShowS $cshow :: ApplyTxError BabbageEra -> String show :: ApplyTxError BabbageEra -> String $cshowList :: [ApplyTxError BabbageEra] -> ShowS showList :: [ApplyTxError BabbageEra] -> ShowS Show) deriving newtype (ApplyTxError BabbageEra -> Encoding (ApplyTxError BabbageEra -> Encoding) -> EncCBOR (ApplyTxError BabbageEra) forall a. (a -> Encoding) -> EncCBOR a $cencCBOR :: ApplyTxError BabbageEra -> Encoding encCBOR :: ApplyTxError BabbageEra -> Encoding EncCBOR, Typeable (ApplyTxError BabbageEra) Typeable (ApplyTxError BabbageEra) => (forall s. Decoder s (ApplyTxError BabbageEra)) -> (forall s. Proxy (ApplyTxError BabbageEra) -> Decoder s ()) -> (Proxy (ApplyTxError BabbageEra) -> Text) -> DecCBOR (ApplyTxError BabbageEra) Proxy (ApplyTxError BabbageEra) -> Text forall s. Decoder s (ApplyTxError BabbageEra) forall a. Typeable a => (forall s. Decoder s a) -> (forall s. Proxy a -> Decoder s ()) -> (Proxy a -> Text) -> DecCBOR a forall s. Proxy (ApplyTxError BabbageEra) -> Decoder s () $cdecCBOR :: forall s. Decoder s (ApplyTxError BabbageEra) decCBOR :: forall s. Decoder s (ApplyTxError BabbageEra) $cdropCBOR :: forall s. Proxy (ApplyTxError BabbageEra) -> Decoder s () dropCBOR :: forall s. Proxy (ApplyTxError BabbageEra) -> Decoder s () $clabel :: Proxy (ApplyTxError BabbageEra) -> Text label :: Proxy (ApplyTxError BabbageEra) -> Text DecCBOR, NonEmpty (ApplyTxError BabbageEra) -> ApplyTxError BabbageEra ApplyTxError BabbageEra -> ApplyTxError BabbageEra -> ApplyTxError BabbageEra (ApplyTxError BabbageEra -> ApplyTxError BabbageEra -> ApplyTxError BabbageEra) -> (NonEmpty (ApplyTxError BabbageEra) -> ApplyTxError BabbageEra) -> (forall b. Integral b => b -> ApplyTxError BabbageEra -> ApplyTxError BabbageEra) -> Semigroup (ApplyTxError BabbageEra) forall b. Integral b => b -> ApplyTxError BabbageEra -> ApplyTxError BabbageEra forall a. (a -> a -> a) -> (NonEmpty a -> a) -> (forall b. Integral b => b -> a -> a) -> Semigroup a $c<> :: ApplyTxError BabbageEra -> ApplyTxError BabbageEra -> ApplyTxError BabbageEra <> :: ApplyTxError BabbageEra -> ApplyTxError BabbageEra -> ApplyTxError BabbageEra $csconcat :: NonEmpty (ApplyTxError BabbageEra) -> ApplyTxError BabbageEra sconcat :: NonEmpty (ApplyTxError BabbageEra) -> ApplyTxError BabbageEra $cstimes :: forall b. Integral b => b -> ApplyTxError BabbageEra -> ApplyTxError BabbageEra stimes :: forall b. Integral b => b -> ApplyTxError BabbageEra -> ApplyTxError BabbageEra Semigroup, (forall x. ApplyTxError BabbageEra -> Rep (ApplyTxError BabbageEra) x) -> (forall x. Rep (ApplyTxError BabbageEra) x -> ApplyTxError BabbageEra) -> Generic (ApplyTxError BabbageEra) forall x. Rep (ApplyTxError BabbageEra) x -> ApplyTxError BabbageEra forall x. ApplyTxError BabbageEra -> Rep (ApplyTxError BabbageEra) x forall a. (forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a $cfrom :: forall x. ApplyTxError BabbageEra -> Rep (ApplyTxError BabbageEra) x from :: forall x. ApplyTxError BabbageEra -> Rep (ApplyTxError BabbageEra) x $cto :: forall x. Rep (ApplyTxError BabbageEra) x -> ApplyTxError BabbageEra to :: forall x. Rep (ApplyTxError BabbageEra) x -> ApplyTxError BabbageEra Generic) applyTxValidation :: ValidationPolicy -> Globals -> MempoolEnv BabbageEra -> MempoolState BabbageEra -> Tx TopTx BabbageEra -> Either (ApplyTxError BabbageEra) (MempoolState BabbageEra, Validated (Tx TopTx BabbageEra)) applyTxValidation ValidationPolicy validationPolicy Globals globals MempoolEnv BabbageEra env MempoolState BabbageEra state Tx TopTx BabbageEra tx = (NonEmpty (ShelleyLedgerPredFailure BabbageEra) -> ApplyTxError BabbageEra) -> Either (NonEmpty (ShelleyLedgerPredFailure BabbageEra)) (MempoolState BabbageEra, Validated (Tx TopTx BabbageEra)) -> Either (ApplyTxError BabbageEra) (MempoolState BabbageEra, Validated (Tx TopTx BabbageEra)) 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 BabbageEra) -> ApplyTxError BabbageEra BabbageApplyTxError (Either (NonEmpty (ShelleyLedgerPredFailure BabbageEra)) (MempoolState BabbageEra, Validated (Tx TopTx BabbageEra)) -> Either (ApplyTxError BabbageEra) (MempoolState BabbageEra, Validated (Tx TopTx BabbageEra))) -> Either (NonEmpty (ShelleyLedgerPredFailure BabbageEra)) (MempoolState BabbageEra, Validated (Tx TopTx BabbageEra)) -> Either (ApplyTxError BabbageEra) (MempoolState BabbageEra, Validated (Tx TopTx BabbageEra)) 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 BabbageEra env MempoolState BabbageEra state Tx TopTx BabbageEra tx instance EraBlockHeader h BabbageEra => ApplyBlock h BabbageEra