{-# LANGUAGE DataKinds #-} {-# LANGUAGE DerivingStrategies #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-} {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE TypeApplications #-} {-# LANGUAGE TypeFamilies #-} {-# LANGUAGE UndecidableInstances #-} {-# OPTIONS_GHC -Wno-orphans #-} module Cardano.Ledger.Mary ( MaryEra, ShelleyTx, ShelleyTxOut, MaryValue, TxBody (..), Tx (..), ApplyTxError (..), ) where import Cardano.Ledger.Binary (DecCBOR, EncCBOR) import Cardano.Ledger.Mary.BlockBody () import Cardano.Ledger.Mary.Era (MaryEra) import Cardano.Ledger.Mary.PParams () import Cardano.Ledger.Mary.Rules () import Cardano.Ledger.Mary.Scripts () import Cardano.Ledger.Mary.State () import Cardano.Ledger.Mary.Transition () import Cardano.Ledger.Mary.Translation () import Cardano.Ledger.Mary.Tx (Tx (..)) import Cardano.Ledger.Mary.TxAuxData () import Cardano.Ledger.Mary.TxBody (TxBody (..)) import Cardano.Ledger.Mary.UTxO () import Cardano.Ledger.Mary.Value (MaryValue) import Cardano.Ledger.Shelley.API import Cardano.Ledger.Shelley.Rules (ShelleyLedgerPredFailure) import Data.Bifunctor (Bifunctor (first)) import Data.List.NonEmpty (NonEmpty) instance ApplyTx MaryEra where newtype ApplyTxError MaryEra = MaryApplyTxError (NonEmpty (ShelleyLedgerPredFailure MaryEra)) deriving (ApplyTxError MaryEra -> ApplyTxError MaryEra -> Bool (ApplyTxError MaryEra -> ApplyTxError MaryEra -> Bool) -> (ApplyTxError MaryEra -> ApplyTxError MaryEra -> Bool) -> Eq (ApplyTxError MaryEra) forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a $c== :: ApplyTxError MaryEra -> ApplyTxError MaryEra -> Bool == :: ApplyTxError MaryEra -> ApplyTxError MaryEra -> Bool $c/= :: ApplyTxError MaryEra -> ApplyTxError MaryEra -> Bool /= :: ApplyTxError MaryEra -> ApplyTxError MaryEra -> Bool Eq, Int -> ApplyTxError MaryEra -> ShowS [ApplyTxError MaryEra] -> ShowS ApplyTxError MaryEra -> String (Int -> ApplyTxError MaryEra -> ShowS) -> (ApplyTxError MaryEra -> String) -> ([ApplyTxError MaryEra] -> ShowS) -> Show (ApplyTxError MaryEra) forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a $cshowsPrec :: Int -> ApplyTxError MaryEra -> ShowS showsPrec :: Int -> ApplyTxError MaryEra -> ShowS $cshow :: ApplyTxError MaryEra -> String show :: ApplyTxError MaryEra -> String $cshowList :: [ApplyTxError MaryEra] -> ShowS showList :: [ApplyTxError MaryEra] -> ShowS Show) deriving newtype (ApplyTxError MaryEra -> Encoding (ApplyTxError MaryEra -> Encoding) -> EncCBOR (ApplyTxError MaryEra) forall a. (a -> Encoding) -> EncCBOR a $cencCBOR :: ApplyTxError MaryEra -> Encoding encCBOR :: ApplyTxError MaryEra -> Encoding EncCBOR, Typeable (ApplyTxError MaryEra) Typeable (ApplyTxError MaryEra) => (forall s. Decoder s (ApplyTxError MaryEra)) -> (forall s. Proxy (ApplyTxError MaryEra) -> Decoder s ()) -> (Proxy (ApplyTxError MaryEra) -> Text) -> DecCBOR (ApplyTxError MaryEra) Proxy (ApplyTxError MaryEra) -> Text forall s. Decoder s (ApplyTxError MaryEra) forall a. Typeable a => (forall s. Decoder s a) -> (forall s. Proxy a -> Decoder s ()) -> (Proxy a -> Text) -> DecCBOR a forall s. Proxy (ApplyTxError MaryEra) -> Decoder s () $cdecCBOR :: forall s. Decoder s (ApplyTxError MaryEra) decCBOR :: forall s. Decoder s (ApplyTxError MaryEra) $cdropCBOR :: forall s. Proxy (ApplyTxError MaryEra) -> Decoder s () dropCBOR :: forall s. Proxy (ApplyTxError MaryEra) -> Decoder s () $clabel :: Proxy (ApplyTxError MaryEra) -> Text label :: Proxy (ApplyTxError MaryEra) -> Text DecCBOR) applyTxValidation :: ValidationPolicy -> Globals -> MempoolEnv MaryEra -> MempoolState MaryEra -> Tx TopTx MaryEra -> Either (ApplyTxError MaryEra) (MempoolState MaryEra, Validated (Tx TopTx MaryEra)) applyTxValidation ValidationPolicy validationPolicy Globals globals MempoolEnv MaryEra env MempoolState MaryEra state Tx TopTx MaryEra tx = (NonEmpty (ShelleyLedgerPredFailure MaryEra) -> ApplyTxError MaryEra) -> Either (NonEmpty (ShelleyLedgerPredFailure MaryEra)) (MempoolState MaryEra, Validated (Tx TopTx MaryEra)) -> Either (ApplyTxError MaryEra) (MempoolState MaryEra, Validated (Tx TopTx MaryEra)) 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 MaryEra) -> ApplyTxError MaryEra MaryApplyTxError (Either (NonEmpty (ShelleyLedgerPredFailure MaryEra)) (MempoolState MaryEra, Validated (Tx TopTx MaryEra)) -> Either (ApplyTxError MaryEra) (MempoolState MaryEra, Validated (Tx TopTx MaryEra))) -> Either (NonEmpty (ShelleyLedgerPredFailure MaryEra)) (MempoolState MaryEra, Validated (Tx TopTx MaryEra)) -> Either (ApplyTxError MaryEra) (MempoolState MaryEra, Validated (Tx TopTx MaryEra)) 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 MaryEra env MempoolState MaryEra state Tx TopTx MaryEra tx instance ApplyBlock MaryEra