{-# LANGUAGE DataKinds #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE TypeFamilies #-} {-# LANGUAGE UndecidableInstances #-} {-# OPTIONS_GHC -Wno-orphans #-} module Cardano.Ledger.Mary.TxWits () where import Cardano.Ledger.Core (EraTxWits (..), upgradeScript) import Cardano.Ledger.Mary.Era (MaryEra) import Cardano.Ledger.Mary.TxAuxData () import Cardano.Ledger.Shelley.TxWits ( ShelleyTxWits (..), addrShelleyTxWitsL, bootAddrShelleyTxWitsL, scriptShelleyTxWitsL, ) instance EraTxWits MaryEra where type TxWits MaryEra = ShelleyTxWits MaryEra mkBasicTxWits :: TxWits MaryEra mkBasicTxWits = forall a. Monoid a => a mempty addrTxWitsL :: Lens' (TxWits MaryEra) (Set (WitVKey 'Witness)) addrTxWitsL = forall era. EraScript era => Lens' (ShelleyTxWits era) (Set (WitVKey 'Witness)) addrShelleyTxWitsL {-# INLINE addrTxWitsL #-} bootAddrTxWitsL :: Lens' (TxWits MaryEra) (Set BootstrapWitness) bootAddrTxWitsL = forall era. EraScript era => Lens' (ShelleyTxWits era) (Set BootstrapWitness) bootAddrShelleyTxWitsL {-# INLINE bootAddrTxWitsL #-} scriptTxWitsL :: Lens' (TxWits MaryEra) (Map ScriptHash (Script MaryEra)) scriptTxWitsL = forall era. EraScript era => Lens' (ShelleyTxWits era) (Map ScriptHash (Script era)) scriptShelleyTxWitsL {-# INLINE scriptTxWitsL #-} upgradeTxWits :: EraTxWits (PreviousEra MaryEra) => TxWits (PreviousEra MaryEra) -> TxWits MaryEra upgradeTxWits TxWits (PreviousEra MaryEra) stw = forall era. EraScript era => Set (WitVKey 'Witness) -> Map ScriptHash (Script era) -> Set BootstrapWitness -> ShelleyTxWits era ShelleyTxWits (forall era. EraScript era => ShelleyTxWits era -> Set (WitVKey 'Witness) addrWits TxWits (PreviousEra MaryEra) stw) (forall era. (EraScript era, EraScript (PreviousEra era)) => Script (PreviousEra era) -> Script era upgradeScript forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> forall era. EraScript era => ShelleyTxWits era -> Map ScriptHash (Script era) scriptWits TxWits (PreviousEra MaryEra) stw) (forall era. EraScript era => ShelleyTxWits era -> Set BootstrapWitness bootWits TxWits (PreviousEra MaryEra) stw)