{-# LANGUAGE TypeFamilies #-} {-# OPTIONS_GHC -Wno-orphans #-} module Cardano.Ledger.Dijkstra.TxOut () where import Cardano.Ledger.Alonzo.Core (AlonzoEraTxOut (..)) import Cardano.Ledger.Babbage (BabbageTxOut) import Cardano.Ledger.Babbage.TxBody (BabbageTxOut (..)) import Cardano.Ledger.Babbage.TxOut ( BabbageEraTxOut (..), addrEitherBabbageTxOutL, babbageMinUTxOValue, dataBabbageTxOutL, dataHashBabbageTxOutL, datumBabbageTxOutL, getDatumBabbageTxOut, referenceScriptBabbageTxOutL, valueEitherBabbageTxOutL, ) import Cardano.Ledger.Conway.TxBody (upgradeBabbageTxOut) import Cardano.Ledger.Core (EraTxOut (..)) import Cardano.Ledger.Dijkstra.Era (DijkstraEra) import Cardano.Ledger.Dijkstra.Scripts () import Cardano.Ledger.Plutus (Datum (..)) import Data.Maybe.Strict (StrictMaybe (..)) import Lens.Micro (to) instance EraTxOut DijkstraEra where type TxOut DijkstraEra = BabbageTxOut DijkstraEra mkBasicTxOut :: HasCallStack => Addr -> Value DijkstraEra -> TxOut DijkstraEra mkBasicTxOut Addr addr Value DijkstraEra vl = Addr -> Value DijkstraEra -> Datum DijkstraEra -> StrictMaybe (Script DijkstraEra) -> BabbageTxOut DijkstraEra forall era. (Era era, Val (Value era), HasCallStack) => Addr -> Value era -> Datum era -> StrictMaybe (Script era) -> BabbageTxOut era BabbageTxOut Addr addr Value DijkstraEra vl Datum DijkstraEra forall era. Datum era NoDatum StrictMaybe (Script DijkstraEra) StrictMaybe (AlonzoScript DijkstraEra) forall a. StrictMaybe a SNothing upgradeTxOut :: EraTxOut (PreviousEra DijkstraEra) => TxOut (PreviousEra DijkstraEra) -> TxOut DijkstraEra upgradeTxOut = TxOut (PreviousEra DijkstraEra) -> TxOut DijkstraEra BabbageTxOut (PreviousEra DijkstraEra) -> BabbageTxOut DijkstraEra forall era. (Value era ~ Value (PreviousEra era), EraScript (PreviousEra era), EraScript era) => BabbageTxOut (PreviousEra era) -> BabbageTxOut era upgradeBabbageTxOut addrEitherTxOutL :: Lens' (TxOut DijkstraEra) (Either Addr CompactAddr) addrEitherTxOutL = (Either Addr CompactAddr -> f (Either Addr CompactAddr)) -> TxOut DijkstraEra -> f (TxOut DijkstraEra) (Either Addr CompactAddr -> f (Either Addr CompactAddr)) -> BabbageTxOut DijkstraEra -> f (BabbageTxOut DijkstraEra) forall era. EraTxOut era => Lens' (BabbageTxOut era) (Either Addr CompactAddr) Lens' (BabbageTxOut DijkstraEra) (Either Addr CompactAddr) addrEitherBabbageTxOutL {-# INLINE addrEitherTxOutL #-} valueEitherTxOutL :: Lens' (TxOut DijkstraEra) (Either (Value DijkstraEra) (CompactForm (Value DijkstraEra))) valueEitherTxOutL = (Either (Value DijkstraEra) (CompactForm (Value DijkstraEra)) -> f (Either (Value DijkstraEra) (CompactForm (Value DijkstraEra)))) -> TxOut DijkstraEra -> f (TxOut DijkstraEra) (Either (Value DijkstraEra) (CompactForm (Value DijkstraEra)) -> f (Either (Value DijkstraEra) (CompactForm (Value DijkstraEra)))) -> BabbageTxOut DijkstraEra -> f (BabbageTxOut DijkstraEra) forall era. EraTxOut era => Lens' (BabbageTxOut era) (Either (Value era) (CompactForm (Value era))) Lens' (BabbageTxOut DijkstraEra) (Either (Value DijkstraEra) (CompactForm (Value DijkstraEra))) valueEitherBabbageTxOutL {-# INLINE valueEitherTxOutL #-} getMinCoinSizedTxOut :: PParams DijkstraEra -> Sized (TxOut DijkstraEra) -> Coin getMinCoinSizedTxOut = PParams DijkstraEra -> Sized (TxOut DijkstraEra) -> Coin PParams DijkstraEra -> Sized (BabbageTxOut DijkstraEra) -> Coin forall era a. BabbageEraPParams era => PParams era -> Sized a -> Coin babbageMinUTxOValue instance AlonzoEraTxOut DijkstraEra where dataHashTxOutL :: Lens' (TxOut DijkstraEra) (StrictMaybe DataHash) dataHashTxOutL = (StrictMaybe DataHash -> f (StrictMaybe DataHash)) -> TxOut DijkstraEra -> f (TxOut DijkstraEra) (StrictMaybe DataHash -> f (StrictMaybe DataHash)) -> BabbageTxOut DijkstraEra -> f (BabbageTxOut DijkstraEra) forall era. EraTxOut era => Lens' (BabbageTxOut era) (StrictMaybe DataHash) Lens' (BabbageTxOut DijkstraEra) (StrictMaybe DataHash) dataHashBabbageTxOutL {-# INLINE dataHashTxOutL #-} datumTxOutF :: SimpleGetter (TxOut DijkstraEra) (Datum DijkstraEra) datumTxOutF = (BabbageTxOut DijkstraEra -> Datum DijkstraEra) -> SimpleGetter (BabbageTxOut DijkstraEra) (Datum DijkstraEra) forall s a. (s -> a) -> SimpleGetter s a to BabbageTxOut DijkstraEra -> Datum DijkstraEra forall era. BabbageTxOut era -> Datum era getDatumBabbageTxOut {-# INLINE datumTxOutF #-} instance BabbageEraTxOut DijkstraEra where dataTxOutL :: Lens' (TxOut DijkstraEra) (StrictMaybe (Data DijkstraEra)) dataTxOutL = (StrictMaybe (Data DijkstraEra) -> f (StrictMaybe (Data DijkstraEra))) -> TxOut DijkstraEra -> f (TxOut DijkstraEra) (StrictMaybe (Data DijkstraEra) -> f (StrictMaybe (Data DijkstraEra))) -> BabbageTxOut DijkstraEra -> f (BabbageTxOut DijkstraEra) forall era. EraTxOut era => Lens' (BabbageTxOut era) (StrictMaybe (Data era)) Lens' (BabbageTxOut DijkstraEra) (StrictMaybe (Data DijkstraEra)) dataBabbageTxOutL {-# INLINE dataTxOutL #-} datumTxOutL :: Lens' (TxOut DijkstraEra) (Datum DijkstraEra) datumTxOutL = (Datum DijkstraEra -> f (Datum DijkstraEra)) -> TxOut DijkstraEra -> f (TxOut DijkstraEra) (Datum DijkstraEra -> f (Datum DijkstraEra)) -> BabbageTxOut DijkstraEra -> f (BabbageTxOut DijkstraEra) forall era. EraTxOut era => Lens' (BabbageTxOut era) (Datum era) Lens' (BabbageTxOut DijkstraEra) (Datum DijkstraEra) datumBabbageTxOutL {-# INLINE datumTxOutL #-} referenceScriptTxOutL :: Lens' (TxOut DijkstraEra) (StrictMaybe (Script DijkstraEra)) referenceScriptTxOutL = (StrictMaybe (Script DijkstraEra) -> f (StrictMaybe (Script DijkstraEra))) -> TxOut DijkstraEra -> f (TxOut DijkstraEra) (StrictMaybe (Script DijkstraEra) -> f (StrictMaybe (Script DijkstraEra))) -> BabbageTxOut DijkstraEra -> f (BabbageTxOut DijkstraEra) forall era. EraTxOut era => Lens' (BabbageTxOut era) (StrictMaybe (Script era)) Lens' (BabbageTxOut DijkstraEra) (StrictMaybe (Script DijkstraEra)) referenceScriptBabbageTxOutL {-# INLINE referenceScriptTxOutL #-}