{-# LANGUAGE DefaultSignatures #-}
{-# LANGUAGE UndecidableSuperClasses #-}
module Cardano.Ledger.Api.Tx.AuxData (
EraTxAuxData (TxAuxData),
mkBasicTxAuxData,
metadataTxAuxDataL,
hashTxAuxData,
validateTxAuxData,
AnyEraTxAuxData (..),
ShelleyTxAuxData (..),
Metadatum (..),
AllegraEraTxAuxData,
nativeScriptsTxAuxDataL,
AllegraTxAuxData (..),
AlonzoEraTxAuxData,
plutusScriptsTxAuxDataL,
Language (..),
PlutusBinary (..),
AlonzoTxAuxData (..),
mkAlonzoTxAuxData,
getAlonzoTxAuxDataScripts,
binaryUpgradeTxAuxData,
upgradeTxAuxData,
) where
import Cardano.Ledger.Allegra.TxAuxData (AllegraEraTxAuxData (..), AllegraTxAuxData (..))
import Cardano.Ledger.Alonzo.TxAuxData (
AlonzoEraTxAuxData (..),
AlonzoTxAuxData (..),
getAlonzoTxAuxDataScripts,
mkAlonzoTxAuxData,
)
import Cardano.Ledger.Api.Era
import Cardano.Ledger.Core (EraTxAuxData (..), NativeScript, binaryUpgradeTxAuxData, hashTxAuxData)
import Cardano.Ledger.Plutus.Language (Language (..), PlutusBinary (..))
import Cardano.Ledger.Shelley.TxAuxData (Metadatum (..), ShelleyTxAuxData (..))
import Data.List.NonEmpty (NonEmpty)
import Data.Map (Map)
import Data.Sequence.Strict (StrictSeq)
import Lens.Micro
class EraTxAuxData era => AnyEraTxAuxData era where
nativeScriptsTxAuxDataG :: SimpleGetter (TxAuxData era) (Maybe (StrictSeq (NativeScript era)))
default nativeScriptsTxAuxDataG ::
AllegraEraTxAuxData era =>
SimpleGetter (TxAuxData era) (Maybe (StrictSeq (NativeScript era)))
nativeScriptsTxAuxDataG = (StrictSeq (NativeScript era)
-> Const r (StrictSeq (NativeScript era)))
-> TxAuxData era -> Const r (TxAuxData era)
forall era.
AllegraEraTxAuxData era =>
Lens' (TxAuxData era) (StrictSeq (NativeScript era))
Lens' (TxAuxData era) (StrictSeq (NativeScript era))
nativeScriptsTxAuxDataL ((StrictSeq (NativeScript era)
-> Const r (StrictSeq (NativeScript era)))
-> TxAuxData era -> Const r (TxAuxData era))
-> ((Maybe (StrictSeq (NativeScript era))
-> Const r (Maybe (StrictSeq (NativeScript era))))
-> StrictSeq (NativeScript era)
-> Const r (StrictSeq (NativeScript era)))
-> (Maybe (StrictSeq (NativeScript era))
-> Const r (Maybe (StrictSeq (NativeScript era))))
-> TxAuxData era
-> Const r (TxAuxData era)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (StrictSeq (NativeScript era)
-> Maybe (StrictSeq (NativeScript era)))
-> SimpleGetter
(StrictSeq (NativeScript era))
(Maybe (StrictSeq (NativeScript era)))
forall s a. (s -> a) -> SimpleGetter s a
to StrictSeq (NativeScript era)
-> Maybe (StrictSeq (NativeScript era))
forall a. a -> Maybe a
Just
plutusScriptsTxAuxDataG ::
SimpleGetter (TxAuxData era) (Maybe (Map Language (NonEmpty PlutusBinary)))
default plutusScriptsTxAuxDataG ::
AlonzoEraTxAuxData era =>
SimpleGetter (TxAuxData era) (Maybe (Map Language (NonEmpty PlutusBinary)))
plutusScriptsTxAuxDataG = (Map Language (NonEmpty PlutusBinary)
-> Const r (Map Language (NonEmpty PlutusBinary)))
-> TxAuxData era -> Const r (TxAuxData era)
forall era.
AlonzoEraTxAuxData era =>
Lens' (TxAuxData era) (Map Language (NonEmpty PlutusBinary))
Lens' (TxAuxData era) (Map Language (NonEmpty PlutusBinary))
plutusScriptsTxAuxDataL ((Map Language (NonEmpty PlutusBinary)
-> Const r (Map Language (NonEmpty PlutusBinary)))
-> TxAuxData era -> Const r (TxAuxData era))
-> ((Maybe (Map Language (NonEmpty PlutusBinary))
-> Const r (Maybe (Map Language (NonEmpty PlutusBinary))))
-> Map Language (NonEmpty PlutusBinary)
-> Const r (Map Language (NonEmpty PlutusBinary)))
-> (Maybe (Map Language (NonEmpty PlutusBinary))
-> Const r (Maybe (Map Language (NonEmpty PlutusBinary))))
-> TxAuxData era
-> Const r (TxAuxData era)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Map Language (NonEmpty PlutusBinary)
-> Maybe (Map Language (NonEmpty PlutusBinary)))
-> SimpleGetter
(Map Language (NonEmpty PlutusBinary))
(Maybe (Map Language (NonEmpty PlutusBinary)))
forall s a. (s -> a) -> SimpleGetter s a
to Map Language (NonEmpty PlutusBinary)
-> Maybe (Map Language (NonEmpty PlutusBinary))
forall a. a -> Maybe a
Just
instance AnyEraTxAuxData ShelleyEra where
nativeScriptsTxAuxDataG :: SimpleGetter
(TxAuxData ShelleyEra)
(Maybe (StrictSeq (NativeScript ShelleyEra)))
nativeScriptsTxAuxDataG = (ShelleyTxAuxData ShelleyEra
-> Maybe (StrictSeq (MultiSig ShelleyEra)))
-> SimpleGetter
(ShelleyTxAuxData ShelleyEra)
(Maybe (StrictSeq (MultiSig ShelleyEra)))
forall s a. (s -> a) -> SimpleGetter s a
to (Maybe (StrictSeq (MultiSig ShelleyEra))
-> ShelleyTxAuxData ShelleyEra
-> Maybe (StrictSeq (MultiSig ShelleyEra))
forall a b. a -> b -> a
const Maybe (StrictSeq (MultiSig ShelleyEra))
forall a. Maybe a
Nothing)
plutusScriptsTxAuxDataG :: SimpleGetter
(TxAuxData ShelleyEra)
(Maybe (Map Language (NonEmpty PlutusBinary)))
plutusScriptsTxAuxDataG = (ShelleyTxAuxData ShelleyEra
-> Maybe (Map Language (NonEmpty PlutusBinary)))
-> SimpleGetter
(ShelleyTxAuxData ShelleyEra)
(Maybe (Map Language (NonEmpty PlutusBinary)))
forall s a. (s -> a) -> SimpleGetter s a
to (Maybe (Map Language (NonEmpty PlutusBinary))
-> ShelleyTxAuxData ShelleyEra
-> Maybe (Map Language (NonEmpty PlutusBinary))
forall a b. a -> b -> a
const Maybe (Map Language (NonEmpty PlutusBinary))
forall a. Maybe a
Nothing)
instance AnyEraTxAuxData AllegraEra where
plutusScriptsTxAuxDataG :: SimpleGetter
(TxAuxData AllegraEra)
(Maybe (Map Language (NonEmpty PlutusBinary)))
plutusScriptsTxAuxDataG = (AllegraTxAuxData AllegraEra
-> Maybe (Map Language (NonEmpty PlutusBinary)))
-> SimpleGetter
(AllegraTxAuxData AllegraEra)
(Maybe (Map Language (NonEmpty PlutusBinary)))
forall s a. (s -> a) -> SimpleGetter s a
to (Maybe (Map Language (NonEmpty PlutusBinary))
-> AllegraTxAuxData AllegraEra
-> Maybe (Map Language (NonEmpty PlutusBinary))
forall a b. a -> b -> a
const Maybe (Map Language (NonEmpty PlutusBinary))
forall a. Maybe a
Nothing)
instance AnyEraTxAuxData MaryEra where
plutusScriptsTxAuxDataG :: SimpleGetter
(TxAuxData MaryEra) (Maybe (Map Language (NonEmpty PlutusBinary)))
plutusScriptsTxAuxDataG = (AllegraTxAuxData MaryEra
-> Maybe (Map Language (NonEmpty PlutusBinary)))
-> SimpleGetter
(AllegraTxAuxData MaryEra)
(Maybe (Map Language (NonEmpty PlutusBinary)))
forall s a. (s -> a) -> SimpleGetter s a
to (Maybe (Map Language (NonEmpty PlutusBinary))
-> AllegraTxAuxData MaryEra
-> Maybe (Map Language (NonEmpty PlutusBinary))
forall a b. a -> b -> a
const Maybe (Map Language (NonEmpty PlutusBinary))
forall a. Maybe a
Nothing)
instance AnyEraTxAuxData AlonzoEra
instance AnyEraTxAuxData BabbageEra
instance AnyEraTxAuxData ConwayEra
instance AnyEraTxAuxData DijkstraEra