{-# 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 qualified Cardano.Ledger.Shelley.Rules as Shelley import Data.List.NonEmpty (NonEmpty) import GHC.Generics (Generic) instance ApplyTx AllegraEra where newtype ApplyTxError AllegraEra = AllegraApplyTxError (NonEmpty (Shelley.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 internalApplyTxWithValidation :: ValidationPolicy -> Globals -> MempoolEnv AllegraEra -> MempoolState AllegraEra -> Tx TopTx AllegraEra -> Either (ApplyTxError AllegraEra) (MempoolState AllegraEra, ValidatedTx AllegraEra) internalApplyTxWithValidation = forall (rule :: Symbol) era. (ApplyTx 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) => (NonEmpty (PredicateFailure (EraRule rule era)) -> ApplyTxError era) -> ValidationPolicy -> Globals -> LedgerEnv era -> MempoolState era -> Tx TopTx era -> Either (ApplyTxError era) (MempoolState era, ValidatedTx era) defaultApplyTxWithValidation @"LEDGER" NonEmpty (PredicateFailure (EraRule "LEDGER" AllegraEra)) -> ApplyTxError AllegraEra NonEmpty (ShelleyLedgerPredFailure AllegraEra) -> ApplyTxError AllegraEra AllegraApplyTxError internalReapplyValidatedTx :: Globals -> MempoolEnv AllegraEra -> MempoolState AllegraEra -> ValidatedTx AllegraEra -> Either (ApplyTxError AllegraEra) (MempoolState AllegraEra) internalReapplyValidatedTx = forall (rule :: Symbol) era. (ApplyTx 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) => (NonEmpty (PredicateFailure (EraRule rule era)) -> ApplyTxError era) -> Globals -> LedgerEnv era -> MempoolState era -> ValidatedTx era -> Either (ApplyTxError era) (MempoolState era) defaultReapplyValidatedTx @"LEDGER" NonEmpty (PredicateFailure (EraRule "LEDGER" AllegraEra)) -> ApplyTxError AllegraEra NonEmpty (ShelleyLedgerPredFailure AllegraEra) -> ApplyTxError AllegraEra AllegraApplyTxError instance ApplyTick AllegraEra instance EraBlockHeader h AllegraEra => ApplyBlock h AllegraEra