{-# LANGUAGE DataKinds #-} {-# LANGUAGE TypeFamilies #-} {-# OPTIONS_GHC -Wno-orphans #-} module Cardano.Ledger.Allegra.TxOut () where import Cardano.Ledger.Allegra.Era (AllegraEra) import Cardano.Ledger.Allegra.PParams () import Cardano.Ledger.Core import Cardano.Ledger.Shelley.TxOut ( ShelleyTxOut (..), addrEitherShelleyTxOutL, valueEitherShelleyTxOutL, ) import Data.Coerce (coerce) import Lens.Micro ((^.)) instance EraTxOut AllegraEra where type TxOut AllegraEra = ShelleyTxOut AllegraEra mkBasicTxOut :: HasCallStack => Addr -> Value AllegraEra -> TxOut AllegraEra mkBasicTxOut = Addr -> Value AllegraEra -> TxOut AllegraEra Addr -> Value AllegraEra -> ShelleyTxOut AllegraEra forall era. (HasCallStack, Era era, Val (Value era)) => Addr -> Value era -> ShelleyTxOut era ShelleyTxOut upgradeTxOut :: EraTxOut (PreviousEra AllegraEra) => TxOut (PreviousEra AllegraEra) -> TxOut AllegraEra upgradeTxOut (TxOutCompact CompactAddr addr CompactForm (Value ShelleyEra) cfval) = CompactAddr -> CompactForm (Value AllegraEra) -> ShelleyTxOut AllegraEra forall era. CompactAddr -> CompactForm (Value era) -> ShelleyTxOut era TxOutCompact (CompactAddr -> CompactAddr forall a b. Coercible a b => a -> b coerce CompactAddr addr) CompactForm (Value ShelleyEra) CompactForm (Value AllegraEra) cfval addrEitherTxOutL :: Lens' (TxOut AllegraEra) (Either Addr CompactAddr) addrEitherTxOutL = (Either Addr CompactAddr -> f (Either Addr CompactAddr)) -> TxOut AllegraEra -> f (TxOut AllegraEra) (Either Addr CompactAddr -> f (Either Addr CompactAddr)) -> ShelleyTxOut AllegraEra -> f (ShelleyTxOut AllegraEra) forall era (f :: * -> *). Functor f => (Either Addr CompactAddr -> f (Either Addr CompactAddr)) -> ShelleyTxOut era -> f (ShelleyTxOut era) addrEitherShelleyTxOutL {-# INLINE addrEitherTxOutL #-} valueEitherTxOutL :: Lens' (TxOut AllegraEra) (Either (Value AllegraEra) (CompactForm (Value AllegraEra))) valueEitherTxOutL = (Either (Value AllegraEra) (CompactForm (Value AllegraEra)) -> f (Either (Value AllegraEra) (CompactForm (Value AllegraEra)))) -> TxOut AllegraEra -> f (TxOut AllegraEra) (Either (Value AllegraEra) (CompactForm (Value AllegraEra)) -> f (Either (Value AllegraEra) (CompactForm (Value AllegraEra)))) -> ShelleyTxOut AllegraEra -> f (ShelleyTxOut AllegraEra) forall era. Val (Value era) => Lens' (ShelleyTxOut era) (Either (Value era) (CompactForm (Value era))) Lens' (ShelleyTxOut AllegraEra) (Either (Value AllegraEra) (CompactForm (Value AllegraEra))) valueEitherShelleyTxOutL {-# INLINE valueEitherTxOutL #-} getMinCoinTxOut :: PParams AllegraEra -> TxOut AllegraEra -> Coin getMinCoinTxOut PParams AllegraEra pp TxOut AllegraEra _txOut = PParams AllegraEra pp PParams AllegraEra -> Getting Coin (PParams AllegraEra) Coin -> Coin forall s a. s -> Getting a s a -> a ^. Getting Coin (PParams AllegraEra) Coin forall era. (EraPParams era, ProtVerAtMost era 4) => Lens' (PParams era) Coin Lens' (PParams AllegraEra) Coin ppMinUTxOValueL