{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE DerivingStrategies #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-} {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE TypeFamilies #-} {-# OPTIONS_GHC -Wno-orphans #-} module Cardano.Ledger.Babbage.Tx ( AlonzoTx (..), TxBody (..), Tx (..), module X, ) where import Cardano.Ledger.Allegra.Tx (validateTimelock) import Cardano.Ledger.Alonzo.Tx as X import Cardano.Ledger.Babbage.Era (BabbageEra) import Cardano.Ledger.Babbage.TxAuxData () import Cardano.Ledger.Babbage.TxBody ( TxBody (..), ) import Cardano.Ledger.Babbage.TxWits () import Cardano.Ledger.Binary (Annotator, DecCBOR (..), EncCBOR, ToCBOR) import Cardano.Ledger.Core import Cardano.Ledger.MemoBytes (EqRaw (..)) import Control.DeepSeq (NFData) import GHC.Generics (Generic) import Lens.Micro (Lens', lens) import NoThunks.Class (NoThunks) instance EraTx BabbageEra where newtype Tx BabbageEra = MkBabbageTx {Tx BabbageEra -> AlonzoTx BabbageEra unBabbageTx :: AlonzoTx BabbageEra} deriving newtype (Tx BabbageEra -> Tx BabbageEra -> Bool (Tx BabbageEra -> Tx BabbageEra -> Bool) -> (Tx BabbageEra -> Tx BabbageEra -> Bool) -> Eq (Tx BabbageEra) forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a $c== :: Tx BabbageEra -> Tx BabbageEra -> Bool == :: Tx BabbageEra -> Tx BabbageEra -> Bool $c/= :: Tx BabbageEra -> Tx BabbageEra -> Bool /= :: Tx BabbageEra -> Tx BabbageEra -> Bool Eq, Tx BabbageEra -> () (Tx BabbageEra -> ()) -> NFData (Tx BabbageEra) forall a. (a -> ()) -> NFData a $crnf :: Tx BabbageEra -> () rnf :: Tx BabbageEra -> () NFData, Int -> Tx BabbageEra -> ShowS [Tx BabbageEra] -> ShowS Tx BabbageEra -> String (Int -> Tx BabbageEra -> ShowS) -> (Tx BabbageEra -> String) -> ([Tx BabbageEra] -> ShowS) -> Show (Tx BabbageEra) forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a $cshowsPrec :: Int -> Tx BabbageEra -> ShowS showsPrec :: Int -> Tx BabbageEra -> ShowS $cshow :: Tx BabbageEra -> String show :: Tx BabbageEra -> String $cshowList :: [Tx BabbageEra] -> ShowS showList :: [Tx BabbageEra] -> ShowS Show, Context -> Tx BabbageEra -> IO (Maybe ThunkInfo) Proxy (Tx BabbageEra) -> String (Context -> Tx BabbageEra -> IO (Maybe ThunkInfo)) -> (Context -> Tx BabbageEra -> IO (Maybe ThunkInfo)) -> (Proxy (Tx BabbageEra) -> String) -> NoThunks (Tx BabbageEra) forall a. (Context -> a -> IO (Maybe ThunkInfo)) -> (Context -> a -> IO (Maybe ThunkInfo)) -> (Proxy a -> String) -> NoThunks a $cnoThunks :: Context -> Tx BabbageEra -> IO (Maybe ThunkInfo) noThunks :: Context -> Tx BabbageEra -> IO (Maybe ThunkInfo) $cwNoThunks :: Context -> Tx BabbageEra -> IO (Maybe ThunkInfo) wNoThunks :: Context -> Tx BabbageEra -> IO (Maybe ThunkInfo) $cshowTypeOf :: Proxy (Tx BabbageEra) -> String showTypeOf :: Proxy (Tx BabbageEra) -> String NoThunks, Typeable (Tx BabbageEra) Typeable (Tx BabbageEra) => (Tx BabbageEra -> Encoding) -> ((forall t. ToCBOR t => Proxy t -> Size) -> Proxy (Tx BabbageEra) -> Size) -> ((forall t. ToCBOR t => Proxy t -> Size) -> Proxy [Tx BabbageEra] -> Size) -> ToCBOR (Tx BabbageEra) Tx BabbageEra -> Encoding (forall t. ToCBOR t => Proxy t -> Size) -> Proxy [Tx BabbageEra] -> Size (forall t. ToCBOR t => Proxy t -> Size) -> Proxy (Tx BabbageEra) -> Size forall a. Typeable a => (a -> Encoding) -> ((forall t. ToCBOR t => Proxy t -> Size) -> Proxy a -> Size) -> ((forall t. ToCBOR t => Proxy t -> Size) -> Proxy [a] -> Size) -> ToCBOR a $ctoCBOR :: Tx BabbageEra -> Encoding toCBOR :: Tx BabbageEra -> Encoding $cencodedSizeExpr :: (forall t. ToCBOR t => Proxy t -> Size) -> Proxy (Tx BabbageEra) -> Size encodedSizeExpr :: (forall t. ToCBOR t => Proxy t -> Size) -> Proxy (Tx BabbageEra) -> Size $cencodedListSizeExpr :: (forall t. ToCBOR t => Proxy t -> Size) -> Proxy [Tx BabbageEra] -> Size encodedListSizeExpr :: (forall t. ToCBOR t => Proxy t -> Size) -> Proxy [Tx BabbageEra] -> Size ToCBOR, Typeable (Tx BabbageEra) Typeable (Tx BabbageEra) => (Tx BabbageEra -> Encoding) -> ((forall t. EncCBOR t => Proxy t -> Size) -> Proxy (Tx BabbageEra) -> Size) -> ((forall t. EncCBOR t => Proxy t -> Size) -> Proxy [Tx BabbageEra] -> Size) -> EncCBOR (Tx BabbageEra) Tx BabbageEra -> Encoding (forall t. EncCBOR t => Proxy t -> Size) -> Proxy [Tx BabbageEra] -> Size (forall t. EncCBOR t => Proxy t -> Size) -> Proxy (Tx BabbageEra) -> Size forall a. Typeable a => (a -> Encoding) -> ((forall t. EncCBOR t => Proxy t -> Size) -> Proxy a -> Size) -> ((forall t. EncCBOR t => Proxy t -> Size) -> Proxy [a] -> Size) -> EncCBOR a $cencCBOR :: Tx BabbageEra -> Encoding encCBOR :: Tx BabbageEra -> Encoding $cencodedSizeExpr :: (forall t. EncCBOR t => Proxy t -> Size) -> Proxy (Tx BabbageEra) -> Size encodedSizeExpr :: (forall t. EncCBOR t => Proxy t -> Size) -> Proxy (Tx BabbageEra) -> Size $cencodedListSizeExpr :: (forall t. EncCBOR t => Proxy t -> Size) -> Proxy [Tx BabbageEra] -> Size encodedListSizeExpr :: (forall t. EncCBOR t => Proxy t -> Size) -> Proxy [Tx BabbageEra] -> Size EncCBOR) deriving ((forall x. Tx BabbageEra -> Rep (Tx BabbageEra) x) -> (forall x. Rep (Tx BabbageEra) x -> Tx BabbageEra) -> Generic (Tx BabbageEra) forall x. Rep (Tx BabbageEra) x -> Tx BabbageEra forall x. Tx BabbageEra -> Rep (Tx BabbageEra) x forall a. (forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a $cfrom :: forall x. Tx BabbageEra -> Rep (Tx BabbageEra) x from :: forall x. Tx BabbageEra -> Rep (Tx BabbageEra) x $cto :: forall x. Rep (Tx BabbageEra) x -> Tx BabbageEra to :: forall x. Rep (Tx BabbageEra) x -> Tx BabbageEra Generic) mkBasicTx :: TxBody BabbageEra -> Tx BabbageEra mkBasicTx = AlonzoTx BabbageEra -> Tx BabbageEra MkBabbageTx (AlonzoTx BabbageEra -> Tx BabbageEra) -> (TxBody BabbageEra -> AlonzoTx BabbageEra) -> TxBody BabbageEra -> Tx BabbageEra forall b c a. (b -> c) -> (a -> b) -> a -> c . TxBody BabbageEra -> AlonzoTx BabbageEra forall era. Monoid (TxWits era) => TxBody era -> AlonzoTx era mkBasicAlonzoTx bodyTxL :: Lens' (Tx BabbageEra) (TxBody BabbageEra) bodyTxL = (AlonzoTx BabbageEra -> f (AlonzoTx BabbageEra)) -> Tx BabbageEra -> f (Tx BabbageEra) Lens' (Tx BabbageEra) (AlonzoTx BabbageEra) babbageTxL ((AlonzoTx BabbageEra -> f (AlonzoTx BabbageEra)) -> Tx BabbageEra -> f (Tx BabbageEra)) -> ((TxBody BabbageEra -> f (TxBody BabbageEra)) -> AlonzoTx BabbageEra -> f (AlonzoTx BabbageEra)) -> (TxBody BabbageEra -> f (TxBody BabbageEra)) -> Tx BabbageEra -> f (Tx BabbageEra) forall b c a. (b -> c) -> (a -> b) -> a -> c . (TxBody BabbageEra -> f (TxBody BabbageEra)) -> AlonzoTx BabbageEra -> f (AlonzoTx BabbageEra) forall era (f :: * -> *). Functor f => (TxBody era -> f (TxBody era)) -> AlonzoTx era -> f (AlonzoTx era) bodyAlonzoTxL {-# INLINE bodyTxL #-} witsTxL :: Lens' (Tx BabbageEra) (TxWits BabbageEra) witsTxL = (AlonzoTx BabbageEra -> f (AlonzoTx BabbageEra)) -> Tx BabbageEra -> f (Tx BabbageEra) Lens' (Tx BabbageEra) (AlonzoTx BabbageEra) babbageTxL ((AlonzoTx BabbageEra -> f (AlonzoTx BabbageEra)) -> Tx BabbageEra -> f (Tx BabbageEra)) -> ((AlonzoTxWits BabbageEra -> f (AlonzoTxWits BabbageEra)) -> AlonzoTx BabbageEra -> f (AlonzoTx BabbageEra)) -> (AlonzoTxWits BabbageEra -> f (AlonzoTxWits BabbageEra)) -> Tx BabbageEra -> f (Tx BabbageEra) forall b c a. (b -> c) -> (a -> b) -> a -> c . (TxWits BabbageEra -> f (TxWits BabbageEra)) -> AlonzoTx BabbageEra -> f (AlonzoTx BabbageEra) (AlonzoTxWits BabbageEra -> f (AlonzoTxWits BabbageEra)) -> AlonzoTx BabbageEra -> f (AlonzoTx BabbageEra) forall era (f :: * -> *). Functor f => (TxWits era -> f (TxWits era)) -> AlonzoTx era -> f (AlonzoTx era) witsAlonzoTxL {-# INLINE witsTxL #-} auxDataTxL :: Lens' (Tx BabbageEra) (StrictMaybe (TxAuxData BabbageEra)) auxDataTxL = (AlonzoTx BabbageEra -> f (AlonzoTx BabbageEra)) -> Tx BabbageEra -> f (Tx BabbageEra) Lens' (Tx BabbageEra) (AlonzoTx BabbageEra) babbageTxL ((AlonzoTx BabbageEra -> f (AlonzoTx BabbageEra)) -> Tx BabbageEra -> f (Tx BabbageEra)) -> ((StrictMaybe (AlonzoTxAuxData BabbageEra) -> f (StrictMaybe (AlonzoTxAuxData BabbageEra))) -> AlonzoTx BabbageEra -> f (AlonzoTx BabbageEra)) -> (StrictMaybe (AlonzoTxAuxData BabbageEra) -> f (StrictMaybe (AlonzoTxAuxData BabbageEra))) -> Tx BabbageEra -> f (Tx BabbageEra) forall b c a. (b -> c) -> (a -> b) -> a -> c . (StrictMaybe (TxAuxData BabbageEra) -> f (StrictMaybe (TxAuxData BabbageEra))) -> AlonzoTx BabbageEra -> f (AlonzoTx BabbageEra) (StrictMaybe (AlonzoTxAuxData BabbageEra) -> f (StrictMaybe (AlonzoTxAuxData BabbageEra))) -> AlonzoTx BabbageEra -> f (AlonzoTx BabbageEra) forall era (f :: * -> *). Functor f => (StrictMaybe (TxAuxData era) -> f (StrictMaybe (TxAuxData era))) -> AlonzoTx era -> f (AlonzoTx era) auxDataAlonzoTxL {-# INLINE auxDataTxL #-} sizeTxF :: SimpleGetter (Tx BabbageEra) Integer sizeTxF = (AlonzoTx BabbageEra -> Const r (AlonzoTx BabbageEra)) -> Tx BabbageEra -> Const r (Tx BabbageEra) Lens' (Tx BabbageEra) (AlonzoTx BabbageEra) babbageTxL ((AlonzoTx BabbageEra -> Const r (AlonzoTx BabbageEra)) -> Tx BabbageEra -> Const r (Tx BabbageEra)) -> ((Integer -> Const r Integer) -> AlonzoTx BabbageEra -> Const r (AlonzoTx BabbageEra)) -> (Integer -> Const r Integer) -> Tx BabbageEra -> Const r (Tx BabbageEra) forall b c a. (b -> c) -> (a -> b) -> a -> c . (Integer -> Const r Integer) -> AlonzoTx BabbageEra -> Const r (AlonzoTx BabbageEra) forall era. EraTx era => SimpleGetter (AlonzoTx era) Integer SimpleGetter (AlonzoTx BabbageEra) Integer sizeAlonzoTxF {-# INLINE sizeTxF #-} validateNativeScript :: Tx BabbageEra -> NativeScript BabbageEra -> Bool validateNativeScript = Tx BabbageEra -> NativeScript BabbageEra -> Bool forall era. (EraTx era, AllegraEraTxBody era, AllegraEraScript era, NativeScript era ~ Timelock era) => Tx era -> NativeScript era -> Bool validateTimelock {-# INLINE validateNativeScript #-} getMinFeeTx :: PParams BabbageEra -> Tx BabbageEra -> Int -> Coin getMinFeeTx PParams BabbageEra pp Tx BabbageEra tx Int _ = PParams BabbageEra -> Tx BabbageEra -> Coin forall era. (EraTx era, AlonzoEraTxWits era, AlonzoEraPParams era) => PParams era -> Tx era -> Coin alonzoMinFeeTx PParams BabbageEra pp Tx BabbageEra tx instance EqRaw (Tx BabbageEra) where eqRaw :: Tx BabbageEra -> Tx BabbageEra -> Bool eqRaw = Tx BabbageEra -> Tx BabbageEra -> Bool forall era. AlonzoEraTx era => Tx era -> Tx era -> Bool alonzoTxEqRaw instance AlonzoEraTx BabbageEra where isValidTxL :: Lens' (Tx BabbageEra) IsValid isValidTxL = (AlonzoTx BabbageEra -> f (AlonzoTx BabbageEra)) -> Tx BabbageEra -> f (Tx BabbageEra) Lens' (Tx BabbageEra) (AlonzoTx BabbageEra) babbageTxL ((AlonzoTx BabbageEra -> f (AlonzoTx BabbageEra)) -> Tx BabbageEra -> f (Tx BabbageEra)) -> ((IsValid -> f IsValid) -> AlonzoTx BabbageEra -> f (AlonzoTx BabbageEra)) -> (IsValid -> f IsValid) -> Tx BabbageEra -> f (Tx BabbageEra) forall b c a. (b -> c) -> (a -> b) -> a -> c . (IsValid -> f IsValid) -> AlonzoTx BabbageEra -> f (AlonzoTx BabbageEra) forall era (f :: * -> *). Functor f => (IsValid -> f IsValid) -> AlonzoTx era -> f (AlonzoTx era) isValidAlonzoTxL {-# INLINE isValidTxL #-} instance DecCBOR (Annotator (Tx BabbageEra)) where decCBOR :: forall s. Decoder s (Annotator (Tx BabbageEra)) decCBOR = (AlonzoTx BabbageEra -> Tx BabbageEra) -> Annotator (AlonzoTx BabbageEra) -> Annotator (Tx BabbageEra) forall a b. (a -> b) -> Annotator a -> Annotator b forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b fmap AlonzoTx BabbageEra -> Tx BabbageEra MkBabbageTx (Annotator (AlonzoTx BabbageEra) -> Annotator (Tx BabbageEra)) -> Decoder s (Annotator (AlonzoTx BabbageEra)) -> Decoder s (Annotator (Tx BabbageEra)) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> Decoder s (Annotator (AlonzoTx BabbageEra)) forall s. Decoder s (Annotator (AlonzoTx BabbageEra)) forall a s. DecCBOR a => Decoder s a decCBOR babbageTxL :: Lens' (Tx BabbageEra) (AlonzoTx BabbageEra) babbageTxL :: Lens' (Tx BabbageEra) (AlonzoTx BabbageEra) babbageTxL = (Tx BabbageEra -> AlonzoTx BabbageEra) -> (Tx BabbageEra -> AlonzoTx BabbageEra -> Tx BabbageEra) -> Lens' (Tx BabbageEra) (AlonzoTx BabbageEra) forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b lens Tx BabbageEra -> AlonzoTx BabbageEra unBabbageTx (\Tx BabbageEra x AlonzoTx BabbageEra y -> Tx BabbageEra x {unBabbageTx = y})