{-# LANGUAGE DefaultSignatures #-}
{-# LANGUAGE UndecidableSuperClasses #-}
module Cardano.Ledger.Api.Tx.Wits (
EraTxWits (TxWits),
mkBasicTxWits,
addrTxWitsL,
KeyRole (Witness),
WitVKey (WitVKey),
witVKeyHash,
bootAddrTxWitsL,
BootstrapWitness,
scriptTxWitsL,
hashScriptTxWitsL,
AnyEraTxWits (..),
AlonzoEraTxWits,
datsTxWitsL,
hashDataTxWitsL,
TxDats (..),
unTxDats,
unTxDatsL,
rdmrsTxWitsL,
Redeemers (..),
unRedeemers,
unRedeemersL,
PlutusPurpose,
AlonzoPlutusPurpose (..),
AsIx (..),
AsItem (..),
ConwayPlutusPurpose (..),
binaryUpgradeTxWits,
upgradeTxWits,
) where
import Cardano.Ledger.Alonzo.Scripts (
AlonzoPlutusPurpose (..),
AsItem (..),
AsIx (..),
PlutusPurpose,
)
import Cardano.Ledger.Alonzo.TxWits (
AlonzoEraTxWits,
Redeemers (..),
TxDats (..),
datsTxWitsL,
hashDataTxWitsL,
rdmrsTxWitsL,
unRedeemers,
unRedeemersL,
unTxDats,
unTxDatsL,
)
import Cardano.Ledger.Api.Era
import Cardano.Ledger.Api.Scripts (AnyEraScript)
import Cardano.Ledger.Conway.Scripts (ConwayPlutusPurpose (..))
import Cardano.Ledger.Core (EraTxWits (..), binaryUpgradeTxWits, hashScriptTxWitsL)
import Cardano.Ledger.Keys (KeyRole (Witness))
import Cardano.Ledger.Keys.Bootstrap (BootstrapWitness)
import Cardano.Ledger.Keys.WitVKey (WitVKey (WitVKey), witVKeyHash)
import Lens.Micro
class (EraTxWits era, AnyEraScript era) => AnyEraTxWits era where
datsTxWitsG :: SimpleGetter (TxWits era) (Maybe (TxDats era))
default datsTxWitsG :: AlonzoEraTxWits era => SimpleGetter (TxWits era) (Maybe (TxDats era))
datsTxWitsG = (TxDats era -> Const r (TxDats era))
-> TxWits era -> Const r (TxWits era)
forall era. AlonzoEraTxWits era => Lens' (TxWits era) (TxDats era)
Lens' (TxWits era) (TxDats era)
datsTxWitsL ((TxDats era -> Const r (TxDats era))
-> TxWits era -> Const r (TxWits era))
-> ((Maybe (TxDats era) -> Const r (Maybe (TxDats era)))
-> TxDats era -> Const r (TxDats era))
-> (Maybe (TxDats era) -> Const r (Maybe (TxDats era)))
-> TxWits era
-> Const r (TxWits era)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (TxDats era -> Maybe (TxDats era))
-> SimpleGetter (TxDats era) (Maybe (TxDats era))
forall s a. (s -> a) -> SimpleGetter s a
to TxDats era -> Maybe (TxDats era)
forall a. a -> Maybe a
Just
rdmrsTxWitsG :: SimpleGetter (TxWits era) (Maybe (Redeemers era))
default rdmrsTxWitsG :: AlonzoEraTxWits era => SimpleGetter (TxWits era) (Maybe (Redeemers era))
rdmrsTxWitsG = (Redeemers era -> Const r (Redeemers era))
-> TxWits era -> Const r (TxWits era)
forall era.
AlonzoEraTxWits era =>
Lens' (TxWits era) (Redeemers era)
Lens' (TxWits era) (Redeemers era)
rdmrsTxWitsL ((Redeemers era -> Const r (Redeemers era))
-> TxWits era -> Const r (TxWits era))
-> ((Maybe (Redeemers era) -> Const r (Maybe (Redeemers era)))
-> Redeemers era -> Const r (Redeemers era))
-> (Maybe (Redeemers era) -> Const r (Maybe (Redeemers era)))
-> TxWits era
-> Const r (TxWits era)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Redeemers era -> Maybe (Redeemers era))
-> SimpleGetter (Redeemers era) (Maybe (Redeemers era))
forall s a. (s -> a) -> SimpleGetter s a
to Redeemers era -> Maybe (Redeemers era)
forall a. a -> Maybe a
Just
instance AnyEraTxWits ShelleyEra where
datsTxWitsG :: SimpleGetter (TxWits ShelleyEra) (Maybe (TxDats ShelleyEra))
datsTxWitsG = (ShelleyTxWits ShelleyEra -> Maybe (TxDats ShelleyEra))
-> SimpleGetter
(ShelleyTxWits ShelleyEra) (Maybe (TxDats ShelleyEra))
forall s a. (s -> a) -> SimpleGetter s a
to (Maybe (TxDats ShelleyEra)
-> ShelleyTxWits ShelleyEra -> Maybe (TxDats ShelleyEra)
forall a b. a -> b -> a
const Maybe (TxDats ShelleyEra)
forall a. Maybe a
Nothing)
rdmrsTxWitsG :: SimpleGetter (TxWits ShelleyEra) (Maybe (Redeemers ShelleyEra))
rdmrsTxWitsG = (ShelleyTxWits ShelleyEra -> Maybe (Redeemers ShelleyEra))
-> SimpleGetter
(ShelleyTxWits ShelleyEra) (Maybe (Redeemers ShelleyEra))
forall s a. (s -> a) -> SimpleGetter s a
to (Maybe (Redeemers ShelleyEra)
-> ShelleyTxWits ShelleyEra -> Maybe (Redeemers ShelleyEra)
forall a b. a -> b -> a
const Maybe (Redeemers ShelleyEra)
forall a. Maybe a
Nothing)
instance AnyEraTxWits AllegraEra where
datsTxWitsG :: SimpleGetter (TxWits AllegraEra) (Maybe (TxDats AllegraEra))
datsTxWitsG = (ShelleyTxWits AllegraEra -> Maybe (TxDats AllegraEra))
-> SimpleGetter
(ShelleyTxWits AllegraEra) (Maybe (TxDats AllegraEra))
forall s a. (s -> a) -> SimpleGetter s a
to (Maybe (TxDats AllegraEra)
-> ShelleyTxWits AllegraEra -> Maybe (TxDats AllegraEra)
forall a b. a -> b -> a
const Maybe (TxDats AllegraEra)
forall a. Maybe a
Nothing)
rdmrsTxWitsG :: SimpleGetter (TxWits AllegraEra) (Maybe (Redeemers AllegraEra))
rdmrsTxWitsG = (ShelleyTxWits AllegraEra -> Maybe (Redeemers AllegraEra))
-> SimpleGetter
(ShelleyTxWits AllegraEra) (Maybe (Redeemers AllegraEra))
forall s a. (s -> a) -> SimpleGetter s a
to (Maybe (Redeemers AllegraEra)
-> ShelleyTxWits AllegraEra -> Maybe (Redeemers AllegraEra)
forall a b. a -> b -> a
const Maybe (Redeemers AllegraEra)
forall a. Maybe a
Nothing)
instance AnyEraTxWits MaryEra where
datsTxWitsG :: SimpleGetter (TxWits MaryEra) (Maybe (TxDats MaryEra))
datsTxWitsG = (ShelleyTxWits MaryEra -> Maybe (TxDats MaryEra))
-> SimpleGetter (ShelleyTxWits MaryEra) (Maybe (TxDats MaryEra))
forall s a. (s -> a) -> SimpleGetter s a
to (Maybe (TxDats MaryEra)
-> ShelleyTxWits MaryEra -> Maybe (TxDats MaryEra)
forall a b. a -> b -> a
const Maybe (TxDats MaryEra)
forall a. Maybe a
Nothing)
rdmrsTxWitsG :: SimpleGetter (TxWits MaryEra) (Maybe (Redeemers MaryEra))
rdmrsTxWitsG = (ShelleyTxWits MaryEra -> Maybe (Redeemers MaryEra))
-> SimpleGetter (ShelleyTxWits MaryEra) (Maybe (Redeemers MaryEra))
forall s a. (s -> a) -> SimpleGetter s a
to (Maybe (Redeemers MaryEra)
-> ShelleyTxWits MaryEra -> Maybe (Redeemers MaryEra)
forall a b. a -> b -> a
const Maybe (Redeemers MaryEra)
forall a. Maybe a
Nothing)
instance AnyEraTxWits AlonzoEra
instance AnyEraTxWits BabbageEra
instance AnyEraTxWits ConwayEra
instance AnyEraTxWits DijkstraEra