module Hydra.Cardano.Api.Tx where

import Hydra.Cardano.Api.Prelude

import Hydra.Cardano.Api.KeyWitness (
  fromLedgerTxWitness,
  toLedgerBootstrapWitness,
  toLedgerKeyWitness,
 )
import Hydra.Cardano.Api.TxScriptValidity (toLedgerScriptValidity)

import Cardano.Api.UTxO qualified as UTxO
import Cardano.Ledger.Allegra.Scripts (translateTimelock)
import Cardano.Ledger.Alonzo qualified as Ledger
import Cardano.Ledger.Alonzo.Scripts qualified as Ledger
import Cardano.Ledger.Alonzo.TxAuxData (translateAlonzoTxAuxData)
import Cardano.Ledger.Alonzo.TxWits qualified as Ledger
import Cardano.Ledger.Api (
  AlonzoPlutusPurpose (..),
  AsIndex (..),
  ConwayPlutusPurpose (..),
  EraTx (mkBasicTx),
  addrTxOutL,
  addrTxWitsL,
  auxDataHashTxBodyL,
  auxDataTxL,
  bodyTxL,
  bootAddrTxWitsL,
  collateralInputsTxBodyL,
  collateralReturnTxBodyL,
  dataTxOutL,
  datsTxWitsL,
  feeTxBodyL,
  hashScriptTxWitsL,
  inputsTxBodyL,
  isValidTxL,
  mintTxBodyL,
  mkBasicTxBody,
  mkBasicTxOut,
  mkBasicTxWits,
  networkIdTxBodyL,
  outputsTxBodyL,
  rdmrsTxWitsL,
  referenceInputsTxBodyL,
  referenceScriptTxOutL,
  reqSignerHashesTxBodyL,
  scriptIntegrityHashTxBodyL,
  scriptTxWitsL,
  totalCollateralTxBodyL,
  valueTxOutL,
  vldtTxBodyL,
  withdrawalsTxBodyL,
  witsTxL,
 )
import Cardano.Ledger.Api qualified as Ledger
import Cardano.Ledger.Babbage qualified as Ledger
import Cardano.Ledger.Babbage.Tx qualified as Ledger
import Cardano.Ledger.Babbage.TxWits (upgradeTxDats)
import Cardano.Ledger.BaseTypes (maybeToStrictMaybe, strictMaybeToMaybe)
import Cardano.Ledger.Coin (Coin (..))
import Cardano.Ledger.Conway.Scripts (PlutusScript (..))
import Cardano.Ledger.Conway.Scripts qualified as Conway
import Cardano.Ledger.Conway.TxBody qualified as Ledger
import Cardano.Ledger.Plutus.Data (upgradeData)
import Control.Lens ((&), (.~), (^.))
import Data.Bifunctor (bimap)
import Data.Functor ((<&>))
import Data.Map qualified as Map
import Data.Maybe (mapMaybe)
import Hydra.Cardano.Api.TxIn (mkTxIn)

-- * Extras

-- | Explicit downgrade from Conway to Babbage era.
--
-- NOTE: This is not a complete mapping and does silently drop things like
-- protocol updates, certificates and voting procedures.
convertConwayTx :: Tx ConwayEra -> Tx BabbageEra
convertConwayTx :: Tx ConwayEra -> Tx Era
convertConwayTx =
  AlonzoTx (BabbageEra StandardCrypto) -> Tx Era
Tx (ShelleyLedgerEra Era) -> Tx Era
fromLedgerTx (AlonzoTx (BabbageEra StandardCrypto) -> Tx Era)
-> (Tx ConwayEra -> AlonzoTx (BabbageEra StandardCrypto))
-> Tx ConwayEra
-> Tx Era
forall b c a. (b -> c) -> (a -> b) -> a -> c
. AlonzoTx (ConwayEra StandardCrypto)
-> AlonzoTx (BabbageEra StandardCrypto)
Tx (ConwayEra StandardCrypto) -> Tx (BabbageEra StandardCrypto)
convert (AlonzoTx (ConwayEra StandardCrypto)
 -> AlonzoTx (BabbageEra StandardCrypto))
-> (Tx ConwayEra -> AlonzoTx (ConwayEra StandardCrypto))
-> Tx ConwayEra
-> AlonzoTx (BabbageEra StandardCrypto)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Tx ConwayEra -> AlonzoTx (ConwayEra StandardCrypto)
Tx ConwayEra -> Tx (ShelleyLedgerEra ConwayEra)
forall era.
(EraCrypto (ShelleyLedgerEra era) ~ StandardCrypto,
 AlonzoEraTx (ShelleyLedgerEra era)) =>
Tx era -> Tx (ShelleyLedgerEra era)
toLedgerTx
 where
  convert :: Ledger.Tx (Ledger.ConwayEra StandardCrypto) -> Ledger.Tx (Ledger.BabbageEra StandardCrypto)
  convert :: Tx (ConwayEra StandardCrypto) -> Tx (BabbageEra StandardCrypto)
convert Tx (ConwayEra StandardCrypto)
tx =
    TxBody (BabbageEra StandardCrypto)
-> Tx (BabbageEra StandardCrypto)
forall era. EraTx era => TxBody era -> Tx era
mkBasicTx (ConwayTxBody (ConwayEra StandardCrypto)
-> BabbageTxBody (BabbageEra StandardCrypto)
translateBody (ConwayTxBody (ConwayEra StandardCrypto)
 -> BabbageTxBody (BabbageEra StandardCrypto))
-> ConwayTxBody (ConwayEra StandardCrypto)
-> BabbageTxBody (BabbageEra StandardCrypto)
forall a b. (a -> b) -> a -> b
$ AlonzoTx (ConwayEra StandardCrypto)
Tx (ConwayEra StandardCrypto)
tx AlonzoTx (ConwayEra StandardCrypto)
-> Getting
     (ConwayTxBody (ConwayEra StandardCrypto))
     (AlonzoTx (ConwayEra StandardCrypto))
     (ConwayTxBody (ConwayEra StandardCrypto))
-> ConwayTxBody (ConwayEra StandardCrypto)
forall s a. s -> Getting a s a -> a
^. (TxBody (ConwayEra StandardCrypto)
 -> Const
      (ConwayTxBody (ConwayEra StandardCrypto))
      (TxBody (ConwayEra StandardCrypto)))
-> Tx (ConwayEra StandardCrypto)
-> Const
     (ConwayTxBody (ConwayEra StandardCrypto))
     (Tx (ConwayEra StandardCrypto))
Getting
  (ConwayTxBody (ConwayEra StandardCrypto))
  (AlonzoTx (ConwayEra StandardCrypto))
  (ConwayTxBody (ConwayEra StandardCrypto))
forall era. EraTx era => Lens' (Tx era) (TxBody era)
Lens'
  (Tx (ConwayEra StandardCrypto)) (TxBody (ConwayEra StandardCrypto))
bodyTxL)
      Tx (BabbageEra StandardCrypto)
-> (Tx (BabbageEra StandardCrypto)
    -> AlonzoTx (BabbageEra StandardCrypto))
-> AlonzoTx (BabbageEra StandardCrypto)
forall a b. a -> (a -> b) -> b
& (TxWits (BabbageEra StandardCrypto)
 -> Identity (AlonzoTxWits (BabbageEra StandardCrypto)))
-> Tx (BabbageEra StandardCrypto)
-> Identity (AlonzoTx (BabbageEra StandardCrypto))
(TxWits (BabbageEra StandardCrypto)
 -> Identity (TxWits (BabbageEra StandardCrypto)))
-> Tx (BabbageEra StandardCrypto)
-> Identity (Tx (BabbageEra StandardCrypto))
forall era. EraTx era => Lens' (Tx era) (TxWits era)
Lens'
  (Tx (BabbageEra StandardCrypto))
  (TxWits (BabbageEra StandardCrypto))
witsTxL ((TxWits (BabbageEra StandardCrypto)
  -> Identity (AlonzoTxWits (BabbageEra StandardCrypto)))
 -> Tx (BabbageEra StandardCrypto)
 -> Identity (AlonzoTx (BabbageEra StandardCrypto)))
-> AlonzoTxWits (BabbageEra StandardCrypto)
-> Tx (BabbageEra StandardCrypto)
-> AlonzoTx (BabbageEra StandardCrypto)
forall s t a b. ASetter s t a b -> b -> s -> t
.~ AlonzoTxWits (ConwayEra StandardCrypto)
-> AlonzoTxWits (BabbageEra StandardCrypto)
translateWits (AlonzoTx (ConwayEra StandardCrypto)
Tx (ConwayEra StandardCrypto)
tx AlonzoTx (ConwayEra StandardCrypto)
-> Getting
     (AlonzoTxWits (ConwayEra StandardCrypto))
     (AlonzoTx (ConwayEra StandardCrypto))
     (AlonzoTxWits (ConwayEra StandardCrypto))
-> AlonzoTxWits (ConwayEra StandardCrypto)
forall s a. s -> Getting a s a -> a
^. Getting
  (AlonzoTxWits (ConwayEra StandardCrypto))
  (AlonzoTx (ConwayEra StandardCrypto))
  (AlonzoTxWits (ConwayEra StandardCrypto))
(TxWits (ConwayEra StandardCrypto)
 -> Const
      (AlonzoTxWits (ConwayEra StandardCrypto))
      (TxWits (ConwayEra StandardCrypto)))
-> Tx (ConwayEra StandardCrypto)
-> Const
     (AlonzoTxWits (ConwayEra StandardCrypto))
     (Tx (ConwayEra StandardCrypto))
forall era. EraTx era => Lens' (Tx era) (TxWits era)
Lens'
  (Tx (ConwayEra StandardCrypto)) (TxWits (ConwayEra StandardCrypto))
witsTxL)
      AlonzoTx (BabbageEra StandardCrypto)
-> (AlonzoTx (BabbageEra StandardCrypto)
    -> AlonzoTx (BabbageEra StandardCrypto))
-> AlonzoTx (BabbageEra StandardCrypto)
forall a b. a -> (a -> b) -> b
& (IsValid -> Identity IsValid)
-> AlonzoTx (BabbageEra StandardCrypto)
-> Identity (AlonzoTx (BabbageEra StandardCrypto))
(IsValid -> Identity IsValid)
-> Tx (BabbageEra StandardCrypto)
-> Identity (Tx (BabbageEra StandardCrypto))
forall era. AlonzoEraTx era => Lens' (Tx era) IsValid
Lens' (Tx (BabbageEra StandardCrypto)) IsValid
isValidTxL ((IsValid -> Identity IsValid)
 -> AlonzoTx (BabbageEra StandardCrypto)
 -> Identity (AlonzoTx (BabbageEra StandardCrypto)))
-> IsValid
-> AlonzoTx (BabbageEra StandardCrypto)
-> AlonzoTx (BabbageEra StandardCrypto)
forall s t a b. ASetter s t a b -> b -> s -> t
.~ AlonzoTx (ConwayEra StandardCrypto)
Tx (ConwayEra StandardCrypto)
tx AlonzoTx (ConwayEra StandardCrypto)
-> Getting IsValid (AlonzoTx (ConwayEra StandardCrypto)) IsValid
-> IsValid
forall s a. s -> Getting a s a -> a
^. Getting IsValid (AlonzoTx (ConwayEra StandardCrypto)) IsValid
(IsValid -> Const IsValid IsValid)
-> Tx (ConwayEra StandardCrypto)
-> Const IsValid (Tx (ConwayEra StandardCrypto))
forall era. AlonzoEraTx era => Lens' (Tx era) IsValid
Lens' (Tx (ConwayEra StandardCrypto)) IsValid
isValidTxL
      AlonzoTx (BabbageEra StandardCrypto)
-> (AlonzoTx (BabbageEra StandardCrypto)
    -> AlonzoTx (BabbageEra StandardCrypto))
-> AlonzoTx (BabbageEra StandardCrypto)
forall a b. a -> (a -> b) -> b
& (StrictMaybe (TxAuxData (BabbageEra StandardCrypto))
 -> Identity
      (StrictMaybe (AlonzoTxAuxData (BabbageEra StandardCrypto))))
-> AlonzoTx (BabbageEra StandardCrypto)
-> Identity (AlonzoTx (BabbageEra StandardCrypto))
(StrictMaybe (TxAuxData (BabbageEra StandardCrypto))
 -> Identity (StrictMaybe (TxAuxData (BabbageEra StandardCrypto))))
-> Tx (BabbageEra StandardCrypto)
-> Identity (Tx (BabbageEra StandardCrypto))
forall era.
EraTx era =>
Lens' (Tx era) (StrictMaybe (AuxiliaryData era))
Lens'
  (Tx (BabbageEra StandardCrypto))
  (StrictMaybe (TxAuxData (BabbageEra StandardCrypto)))
auxDataTxL ((StrictMaybe (TxAuxData (BabbageEra StandardCrypto))
  -> Identity
       (StrictMaybe (AlonzoTxAuxData (BabbageEra StandardCrypto))))
 -> AlonzoTx (BabbageEra StandardCrypto)
 -> Identity (AlonzoTx (BabbageEra StandardCrypto)))
-> StrictMaybe (AlonzoTxAuxData (BabbageEra StandardCrypto))
-> AlonzoTx (BabbageEra StandardCrypto)
-> AlonzoTx (BabbageEra StandardCrypto)
forall s t a b. ASetter s t a b -> b -> s -> t
.~ (AlonzoTxAuxData (ConwayEra StandardCrypto)
-> AlonzoTxAuxData (BabbageEra StandardCrypto)
forall era1 era2.
(AlonzoEraScript era1, AlonzoEraScript era2,
 EraCrypto era1 ~ EraCrypto era2) =>
AlonzoTxAuxData era1 -> AlonzoTxAuxData era2
translateAlonzoTxAuxData (AlonzoTxAuxData (ConwayEra StandardCrypto)
 -> AlonzoTxAuxData (BabbageEra StandardCrypto))
-> StrictMaybe (AlonzoTxAuxData (ConwayEra StandardCrypto))
-> StrictMaybe (AlonzoTxAuxData (BabbageEra StandardCrypto))
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> AlonzoTx (ConwayEra StandardCrypto)
Tx (ConwayEra StandardCrypto)
tx AlonzoTx (ConwayEra StandardCrypto)
-> Getting
     (StrictMaybe (AlonzoTxAuxData (ConwayEra StandardCrypto)))
     (AlonzoTx (ConwayEra StandardCrypto))
     (StrictMaybe (AlonzoTxAuxData (ConwayEra StandardCrypto)))
-> StrictMaybe (AlonzoTxAuxData (ConwayEra StandardCrypto))
forall s a. s -> Getting a s a -> a
^. Getting
  (StrictMaybe (AlonzoTxAuxData (ConwayEra StandardCrypto)))
  (AlonzoTx (ConwayEra StandardCrypto))
  (StrictMaybe (AlonzoTxAuxData (ConwayEra StandardCrypto)))
(StrictMaybe (AuxiliaryData (ConwayEra StandardCrypto))
 -> Const
      (StrictMaybe (AlonzoTxAuxData (ConwayEra StandardCrypto)))
      (StrictMaybe (AuxiliaryData (ConwayEra StandardCrypto))))
-> Tx (ConwayEra StandardCrypto)
-> Const
     (StrictMaybe (AlonzoTxAuxData (ConwayEra StandardCrypto)))
     (Tx (ConwayEra StandardCrypto))
forall era.
EraTx era =>
Lens' (Tx era) (StrictMaybe (AuxiliaryData era))
Lens'
  (Tx (ConwayEra StandardCrypto))
  (StrictMaybe (AuxiliaryData (ConwayEra StandardCrypto)))
auxDataTxL)

  translateBody ::
    Ledger.ConwayTxBody (Ledger.ConwayEra StandardCrypto) ->
    Ledger.BabbageTxBody (Ledger.BabbageEra StandardCrypto)
  translateBody :: ConwayTxBody (ConwayEra StandardCrypto)
-> BabbageTxBody (BabbageEra StandardCrypto)
translateBody ConwayTxBody (ConwayEra StandardCrypto)
body =
    TxBody (BabbageEra StandardCrypto)
forall era. EraTxBody era => TxBody era
mkBasicTxBody
      TxBody (BabbageEra StandardCrypto)
-> (TxBody (BabbageEra StandardCrypto)
    -> TxBody (BabbageEra StandardCrypto))
-> TxBody (BabbageEra StandardCrypto)
forall a b. a -> (a -> b) -> b
& (Set (TxIn (EraCrypto (BabbageEra StandardCrypto)))
 -> Identity (Set (TxIn (EraCrypto (BabbageEra StandardCrypto)))))
-> TxBody (BabbageEra StandardCrypto)
-> Identity (TxBody (BabbageEra StandardCrypto))
forall era.
EraTxBody era =>
Lens' (TxBody era) (Set (TxIn (EraCrypto era)))
Lens'
  (TxBody (BabbageEra StandardCrypto))
  (Set (TxIn (EraCrypto (BabbageEra StandardCrypto))))
inputsTxBodyL ((Set (TxIn (EraCrypto (BabbageEra StandardCrypto)))
  -> Identity (Set (TxIn (EraCrypto (BabbageEra StandardCrypto)))))
 -> TxBody (BabbageEra StandardCrypto)
 -> Identity (TxBody (BabbageEra StandardCrypto)))
-> Set (TxIn (EraCrypto (BabbageEra StandardCrypto)))
-> TxBody (BabbageEra StandardCrypto)
-> TxBody (BabbageEra StandardCrypto)
forall s t a b. ASetter s t a b -> b -> s -> t
.~ ConwayTxBody (ConwayEra StandardCrypto)
body ConwayTxBody (ConwayEra StandardCrypto)
-> Getting
     (Set (TxIn (EraCrypto (BabbageEra StandardCrypto))))
     (ConwayTxBody (ConwayEra StandardCrypto))
     (Set (TxIn (EraCrypto (BabbageEra StandardCrypto))))
-> Set (TxIn (EraCrypto (BabbageEra StandardCrypto)))
forall s a. s -> Getting a s a -> a
^. Getting
  (Set (TxIn (EraCrypto (BabbageEra StandardCrypto))))
  (ConwayTxBody (ConwayEra StandardCrypto))
  (Set (TxIn (EraCrypto (BabbageEra StandardCrypto))))
(Set (TxIn (EraCrypto (ConwayEra StandardCrypto)))
 -> Const
      (Set (TxIn (EraCrypto (BabbageEra StandardCrypto))))
      (Set (TxIn (EraCrypto (ConwayEra StandardCrypto)))))
-> TxBody (ConwayEra StandardCrypto)
-> Const
     (Set (TxIn (EraCrypto (BabbageEra StandardCrypto))))
     (TxBody (ConwayEra StandardCrypto))
forall era.
EraTxBody era =>
Lens' (TxBody era) (Set (TxIn (EraCrypto era)))
Lens'
  (TxBody (ConwayEra StandardCrypto))
  (Set (TxIn (EraCrypto (ConwayEra StandardCrypto))))
inputsTxBodyL
      TxBody (BabbageEra StandardCrypto)
-> (TxBody (BabbageEra StandardCrypto)
    -> BabbageTxBody (BabbageEra StandardCrypto))
-> BabbageTxBody (BabbageEra StandardCrypto)
forall a b. a -> (a -> b) -> b
& (StrictSeq (TxOut (BabbageEra StandardCrypto))
 -> Identity (StrictSeq (BabbageTxOut (BabbageEra StandardCrypto))))
-> TxBody (BabbageEra StandardCrypto)
-> Identity (BabbageTxBody (BabbageEra StandardCrypto))
(StrictSeq (TxOut (BabbageEra StandardCrypto))
 -> Identity (StrictSeq (TxOut (BabbageEra StandardCrypto))))
-> TxBody (BabbageEra StandardCrypto)
-> Identity (TxBody (BabbageEra StandardCrypto))
forall era.
EraTxBody era =>
Lens' (TxBody era) (StrictSeq (TxOut era))
Lens'
  (TxBody (BabbageEra StandardCrypto))
  (StrictSeq (TxOut (BabbageEra StandardCrypto)))
outputsTxBodyL ((StrictSeq (TxOut (BabbageEra StandardCrypto))
  -> Identity (StrictSeq (BabbageTxOut (BabbageEra StandardCrypto))))
 -> TxBody (BabbageEra StandardCrypto)
 -> Identity (BabbageTxBody (BabbageEra StandardCrypto)))
-> StrictSeq (BabbageTxOut (BabbageEra StandardCrypto))
-> TxBody (BabbageEra StandardCrypto)
-> BabbageTxBody (BabbageEra StandardCrypto)
forall s t a b. ASetter s t a b -> b -> s -> t
.~ (BabbageTxOut (ConwayEra StandardCrypto)
-> BabbageTxOut (BabbageEra StandardCrypto)
translateTxOut (BabbageTxOut (ConwayEra StandardCrypto)
 -> BabbageTxOut (BabbageEra StandardCrypto))
-> StrictSeq (BabbageTxOut (ConwayEra StandardCrypto))
-> StrictSeq (BabbageTxOut (BabbageEra StandardCrypto))
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> ConwayTxBody (ConwayEra StandardCrypto)
body ConwayTxBody (ConwayEra StandardCrypto)
-> Getting
     (StrictSeq (BabbageTxOut (ConwayEra StandardCrypto)))
     (ConwayTxBody (ConwayEra StandardCrypto))
     (StrictSeq (BabbageTxOut (ConwayEra StandardCrypto)))
-> StrictSeq (BabbageTxOut (ConwayEra StandardCrypto))
forall s a. s -> Getting a s a -> a
^. Getting
  (StrictSeq (BabbageTxOut (ConwayEra StandardCrypto)))
  (ConwayTxBody (ConwayEra StandardCrypto))
  (StrictSeq (BabbageTxOut (ConwayEra StandardCrypto)))
(StrictSeq (TxOut (ConwayEra StandardCrypto))
 -> Const
      (StrictSeq (BabbageTxOut (ConwayEra StandardCrypto)))
      (StrictSeq (TxOut (ConwayEra StandardCrypto))))
-> TxBody (ConwayEra StandardCrypto)
-> Const
     (StrictSeq (BabbageTxOut (ConwayEra StandardCrypto)))
     (TxBody (ConwayEra StandardCrypto))
forall era.
EraTxBody era =>
Lens' (TxBody era) (StrictSeq (TxOut era))
Lens'
  (TxBody (ConwayEra StandardCrypto))
  (StrictSeq (TxOut (ConwayEra StandardCrypto)))
outputsTxBodyL)
      BabbageTxBody (BabbageEra StandardCrypto)
-> (BabbageTxBody (BabbageEra StandardCrypto)
    -> BabbageTxBody (BabbageEra StandardCrypto))
-> BabbageTxBody (BabbageEra StandardCrypto)
forall a b. a -> (a -> b) -> b
& (Coin -> Identity Coin)
-> BabbageTxBody (BabbageEra StandardCrypto)
-> Identity (BabbageTxBody (BabbageEra StandardCrypto))
(Coin -> Identity Coin)
-> TxBody (BabbageEra StandardCrypto)
-> Identity (TxBody (BabbageEra StandardCrypto))
forall era. EraTxBody era => Lens' (TxBody era) Coin
Lens' (TxBody (BabbageEra StandardCrypto)) Coin
feeTxBodyL ((Coin -> Identity Coin)
 -> BabbageTxBody (BabbageEra StandardCrypto)
 -> Identity (BabbageTxBody (BabbageEra StandardCrypto)))
-> Coin
-> BabbageTxBody (BabbageEra StandardCrypto)
-> BabbageTxBody (BabbageEra StandardCrypto)
forall s t a b. ASetter s t a b -> b -> s -> t
.~ ConwayTxBody (ConwayEra StandardCrypto)
body ConwayTxBody (ConwayEra StandardCrypto)
-> Getting Coin (ConwayTxBody (ConwayEra StandardCrypto)) Coin
-> Coin
forall s a. s -> Getting a s a -> a
^. (Coin -> Const Coin Coin)
-> TxBody (ConwayEra StandardCrypto)
-> Const Coin (TxBody (ConwayEra StandardCrypto))
Getting Coin (ConwayTxBody (ConwayEra StandardCrypto)) Coin
forall era. EraTxBody era => Lens' (TxBody era) Coin
Lens' (TxBody (ConwayEra StandardCrypto)) Coin
feeTxBodyL
      BabbageTxBody (BabbageEra StandardCrypto)
-> (BabbageTxBody (BabbageEra StandardCrypto)
    -> BabbageTxBody (BabbageEra StandardCrypto))
-> BabbageTxBody (BabbageEra StandardCrypto)
forall a b. a -> (a -> b) -> b
& (Withdrawals (EraCrypto (BabbageEra StandardCrypto))
 -> Identity (Withdrawals (EraCrypto (BabbageEra StandardCrypto))))
-> BabbageTxBody (BabbageEra StandardCrypto)
-> Identity (BabbageTxBody (BabbageEra StandardCrypto))
(Withdrawals (EraCrypto (BabbageEra StandardCrypto))
 -> Identity (Withdrawals (EraCrypto (BabbageEra StandardCrypto))))
-> TxBody (BabbageEra StandardCrypto)
-> Identity (TxBody (BabbageEra StandardCrypto))
forall era.
EraTxBody era =>
Lens' (TxBody era) (Withdrawals (EraCrypto era))
Lens'
  (TxBody (BabbageEra StandardCrypto))
  (Withdrawals (EraCrypto (BabbageEra StandardCrypto)))
withdrawalsTxBodyL ((Withdrawals (EraCrypto (BabbageEra StandardCrypto))
  -> Identity (Withdrawals (EraCrypto (BabbageEra StandardCrypto))))
 -> BabbageTxBody (BabbageEra StandardCrypto)
 -> Identity (BabbageTxBody (BabbageEra StandardCrypto)))
-> Withdrawals (EraCrypto (BabbageEra StandardCrypto))
-> BabbageTxBody (BabbageEra StandardCrypto)
-> BabbageTxBody (BabbageEra StandardCrypto)
forall s t a b. ASetter s t a b -> b -> s -> t
.~ ConwayTxBody (ConwayEra StandardCrypto)
body ConwayTxBody (ConwayEra StandardCrypto)
-> Getting
     (Withdrawals (EraCrypto (BabbageEra StandardCrypto)))
     (ConwayTxBody (ConwayEra StandardCrypto))
     (Withdrawals (EraCrypto (BabbageEra StandardCrypto)))
-> Withdrawals (EraCrypto (BabbageEra StandardCrypto))
forall s a. s -> Getting a s a -> a
^. Getting
  (Withdrawals (EraCrypto (BabbageEra StandardCrypto)))
  (ConwayTxBody (ConwayEra StandardCrypto))
  (Withdrawals (EraCrypto (BabbageEra StandardCrypto)))
(Withdrawals (EraCrypto (ConwayEra StandardCrypto))
 -> Const
      (Withdrawals (EraCrypto (BabbageEra StandardCrypto)))
      (Withdrawals (EraCrypto (ConwayEra StandardCrypto))))
-> TxBody (ConwayEra StandardCrypto)
-> Const
     (Withdrawals (EraCrypto (BabbageEra StandardCrypto)))
     (TxBody (ConwayEra StandardCrypto))
forall era.
EraTxBody era =>
Lens' (TxBody era) (Withdrawals (EraCrypto era))
Lens'
  (TxBody (ConwayEra StandardCrypto))
  (Withdrawals (EraCrypto (ConwayEra StandardCrypto)))
withdrawalsTxBodyL
      BabbageTxBody (BabbageEra StandardCrypto)
-> (BabbageTxBody (BabbageEra StandardCrypto)
    -> BabbageTxBody (BabbageEra StandardCrypto))
-> BabbageTxBody (BabbageEra StandardCrypto)
forall a b. a -> (a -> b) -> b
& (StrictMaybe
   (AuxiliaryDataHash (EraCrypto (BabbageEra StandardCrypto)))
 -> Identity
      (StrictMaybe
         (AuxiliaryDataHash (EraCrypto (BabbageEra StandardCrypto)))))
-> BabbageTxBody (BabbageEra StandardCrypto)
-> Identity (BabbageTxBody (BabbageEra StandardCrypto))
(StrictMaybe
   (AuxiliaryDataHash (EraCrypto (BabbageEra StandardCrypto)))
 -> Identity
      (StrictMaybe
         (AuxiliaryDataHash (EraCrypto (BabbageEra StandardCrypto)))))
-> TxBody (BabbageEra StandardCrypto)
-> Identity (TxBody (BabbageEra StandardCrypto))
forall era.
EraTxBody era =>
Lens'
  (TxBody era) (StrictMaybe (AuxiliaryDataHash (EraCrypto era)))
Lens'
  (TxBody (BabbageEra StandardCrypto))
  (StrictMaybe
     (AuxiliaryDataHash (EraCrypto (BabbageEra StandardCrypto))))
auxDataHashTxBodyL ((StrictMaybe
    (AuxiliaryDataHash (EraCrypto (BabbageEra StandardCrypto)))
  -> Identity
       (StrictMaybe
          (AuxiliaryDataHash (EraCrypto (BabbageEra StandardCrypto)))))
 -> BabbageTxBody (BabbageEra StandardCrypto)
 -> Identity (BabbageTxBody (BabbageEra StandardCrypto)))
-> StrictMaybe
     (AuxiliaryDataHash (EraCrypto (BabbageEra StandardCrypto)))
-> BabbageTxBody (BabbageEra StandardCrypto)
-> BabbageTxBody (BabbageEra StandardCrypto)
forall s t a b. ASetter s t a b -> b -> s -> t
.~ ConwayTxBody (ConwayEra StandardCrypto)
body ConwayTxBody (ConwayEra StandardCrypto)
-> Getting
     (StrictMaybe
        (AuxiliaryDataHash (EraCrypto (BabbageEra StandardCrypto))))
     (ConwayTxBody (ConwayEra StandardCrypto))
     (StrictMaybe
        (AuxiliaryDataHash (EraCrypto (BabbageEra StandardCrypto))))
-> StrictMaybe
     (AuxiliaryDataHash (EraCrypto (BabbageEra StandardCrypto)))
forall s a. s -> Getting a s a -> a
^. Getting
  (StrictMaybe
     (AuxiliaryDataHash (EraCrypto (BabbageEra StandardCrypto))))
  (ConwayTxBody (ConwayEra StandardCrypto))
  (StrictMaybe
     (AuxiliaryDataHash (EraCrypto (BabbageEra StandardCrypto))))
(StrictMaybe
   (AuxiliaryDataHash (EraCrypto (ConwayEra StandardCrypto)))
 -> Const
      (StrictMaybe
         (AuxiliaryDataHash (EraCrypto (BabbageEra StandardCrypto))))
      (StrictMaybe
         (AuxiliaryDataHash (EraCrypto (ConwayEra StandardCrypto)))))
-> TxBody (ConwayEra StandardCrypto)
-> Const
     (StrictMaybe
        (AuxiliaryDataHash (EraCrypto (BabbageEra StandardCrypto))))
     (TxBody (ConwayEra StandardCrypto))
forall era.
EraTxBody era =>
Lens'
  (TxBody era) (StrictMaybe (AuxiliaryDataHash (EraCrypto era)))
Lens'
  (TxBody (ConwayEra StandardCrypto))
  (StrictMaybe
     (AuxiliaryDataHash (EraCrypto (ConwayEra StandardCrypto))))
auxDataHashTxBodyL
      -- NOTE: not considering 'updateTxBodyL' as upstream also does not upgrade it
      -- NOTE: not considering 'certsTxBodyL' as we are not interested in it
      BabbageTxBody (BabbageEra StandardCrypto)
-> (BabbageTxBody (BabbageEra StandardCrypto)
    -> BabbageTxBody (BabbageEra StandardCrypto))
-> BabbageTxBody (BabbageEra StandardCrypto)
forall a b. a -> (a -> b) -> b
& (ValidityInterval -> Identity ValidityInterval)
-> BabbageTxBody (BabbageEra StandardCrypto)
-> Identity (BabbageTxBody (BabbageEra StandardCrypto))
(ValidityInterval -> Identity ValidityInterval)
-> TxBody (BabbageEra StandardCrypto)
-> Identity (TxBody (BabbageEra StandardCrypto))
forall era.
AllegraEraTxBody era =>
Lens' (TxBody era) ValidityInterval
Lens' (TxBody (BabbageEra StandardCrypto)) ValidityInterval
vldtTxBodyL ((ValidityInterval -> Identity ValidityInterval)
 -> BabbageTxBody (BabbageEra StandardCrypto)
 -> Identity (BabbageTxBody (BabbageEra StandardCrypto)))
-> ValidityInterval
-> BabbageTxBody (BabbageEra StandardCrypto)
-> BabbageTxBody (BabbageEra StandardCrypto)
forall s t a b. ASetter s t a b -> b -> s -> t
.~ ConwayTxBody (ConwayEra StandardCrypto)
body ConwayTxBody (ConwayEra StandardCrypto)
-> Getting
     ValidityInterval
     (ConwayTxBody (ConwayEra StandardCrypto))
     ValidityInterval
-> ValidityInterval
forall s a. s -> Getting a s a -> a
^. (ValidityInterval -> Const ValidityInterval ValidityInterval)
-> TxBody (ConwayEra StandardCrypto)
-> Const ValidityInterval (TxBody (ConwayEra StandardCrypto))
Getting
  ValidityInterval
  (ConwayTxBody (ConwayEra StandardCrypto))
  ValidityInterval
forall era.
AllegraEraTxBody era =>
Lens' (TxBody era) ValidityInterval
Lens' (TxBody (ConwayEra StandardCrypto)) ValidityInterval
vldtTxBodyL
      BabbageTxBody (BabbageEra StandardCrypto)
-> (BabbageTxBody (BabbageEra StandardCrypto)
    -> BabbageTxBody (BabbageEra StandardCrypto))
-> BabbageTxBody (BabbageEra StandardCrypto)
forall a b. a -> (a -> b) -> b
& (MultiAsset (EraCrypto (BabbageEra StandardCrypto))
 -> Identity (MultiAsset (EraCrypto (BabbageEra StandardCrypto))))
-> BabbageTxBody (BabbageEra StandardCrypto)
-> Identity (BabbageTxBody (BabbageEra StandardCrypto))
(MultiAsset (EraCrypto (BabbageEra StandardCrypto))
 -> Identity (MultiAsset (EraCrypto (BabbageEra StandardCrypto))))
-> TxBody (BabbageEra StandardCrypto)
-> Identity (TxBody (BabbageEra StandardCrypto))
forall era.
MaryEraTxBody era =>
Lens' (TxBody era) (MultiAsset (EraCrypto era))
Lens'
  (TxBody (BabbageEra StandardCrypto))
  (MultiAsset (EraCrypto (BabbageEra StandardCrypto)))
mintTxBodyL ((MultiAsset (EraCrypto (BabbageEra StandardCrypto))
  -> Identity (MultiAsset (EraCrypto (BabbageEra StandardCrypto))))
 -> BabbageTxBody (BabbageEra StandardCrypto)
 -> Identity (BabbageTxBody (BabbageEra StandardCrypto)))
-> MultiAsset (EraCrypto (BabbageEra StandardCrypto))
-> BabbageTxBody (BabbageEra StandardCrypto)
-> BabbageTxBody (BabbageEra StandardCrypto)
forall s t a b. ASetter s t a b -> b -> s -> t
.~ ConwayTxBody (ConwayEra StandardCrypto)
body ConwayTxBody (ConwayEra StandardCrypto)
-> Getting
     (MultiAsset (EraCrypto (BabbageEra StandardCrypto)))
     (ConwayTxBody (ConwayEra StandardCrypto))
     (MultiAsset (EraCrypto (BabbageEra StandardCrypto)))
-> MultiAsset (EraCrypto (BabbageEra StandardCrypto))
forall s a. s -> Getting a s a -> a
^. Getting
  (MultiAsset (EraCrypto (BabbageEra StandardCrypto)))
  (ConwayTxBody (ConwayEra StandardCrypto))
  (MultiAsset (EraCrypto (BabbageEra StandardCrypto)))
(MultiAsset (EraCrypto (ConwayEra StandardCrypto))
 -> Const
      (MultiAsset (EraCrypto (BabbageEra StandardCrypto)))
      (MultiAsset (EraCrypto (ConwayEra StandardCrypto))))
-> TxBody (ConwayEra StandardCrypto)
-> Const
     (MultiAsset (EraCrypto (BabbageEra StandardCrypto)))
     (TxBody (ConwayEra StandardCrypto))
forall era.
MaryEraTxBody era =>
Lens' (TxBody era) (MultiAsset (EraCrypto era))
Lens'
  (TxBody (ConwayEra StandardCrypto))
  (MultiAsset (EraCrypto (ConwayEra StandardCrypto)))
mintTxBodyL
      BabbageTxBody (BabbageEra StandardCrypto)
-> (BabbageTxBody (BabbageEra StandardCrypto)
    -> BabbageTxBody (BabbageEra StandardCrypto))
-> BabbageTxBody (BabbageEra StandardCrypto)
forall a b. a -> (a -> b) -> b
& (Set (TxIn (EraCrypto (BabbageEra StandardCrypto)))
 -> Identity (Set (TxIn (EraCrypto (BabbageEra StandardCrypto)))))
-> BabbageTxBody (BabbageEra StandardCrypto)
-> Identity (BabbageTxBody (BabbageEra StandardCrypto))
(Set (TxIn (EraCrypto (BabbageEra StandardCrypto)))
 -> Identity (Set (TxIn (EraCrypto (BabbageEra StandardCrypto)))))
-> TxBody (BabbageEra StandardCrypto)
-> Identity (TxBody (BabbageEra StandardCrypto))
forall era.
AlonzoEraTxBody era =>
Lens' (TxBody era) (Set (TxIn (EraCrypto era)))
Lens'
  (TxBody (BabbageEra StandardCrypto))
  (Set (TxIn (EraCrypto (BabbageEra StandardCrypto))))
collateralInputsTxBodyL ((Set (TxIn (EraCrypto (BabbageEra StandardCrypto)))
  -> Identity (Set (TxIn (EraCrypto (BabbageEra StandardCrypto)))))
 -> BabbageTxBody (BabbageEra StandardCrypto)
 -> Identity (BabbageTxBody (BabbageEra StandardCrypto)))
-> Set (TxIn (EraCrypto (BabbageEra StandardCrypto)))
-> BabbageTxBody (BabbageEra StandardCrypto)
-> BabbageTxBody (BabbageEra StandardCrypto)
forall s t a b. ASetter s t a b -> b -> s -> t
.~ ConwayTxBody (ConwayEra StandardCrypto)
body ConwayTxBody (ConwayEra StandardCrypto)
-> Getting
     (Set (TxIn (EraCrypto (BabbageEra StandardCrypto))))
     (ConwayTxBody (ConwayEra StandardCrypto))
     (Set (TxIn (EraCrypto (BabbageEra StandardCrypto))))
-> Set (TxIn (EraCrypto (BabbageEra StandardCrypto)))
forall s a. s -> Getting a s a -> a
^. Getting
  (Set (TxIn (EraCrypto (BabbageEra StandardCrypto))))
  (ConwayTxBody (ConwayEra StandardCrypto))
  (Set (TxIn (EraCrypto (BabbageEra StandardCrypto))))
(Set (TxIn (EraCrypto (ConwayEra StandardCrypto)))
 -> Const
      (Set (TxIn (EraCrypto (BabbageEra StandardCrypto))))
      (Set (TxIn (EraCrypto (ConwayEra StandardCrypto)))))
-> TxBody (ConwayEra StandardCrypto)
-> Const
     (Set (TxIn (EraCrypto (BabbageEra StandardCrypto))))
     (TxBody (ConwayEra StandardCrypto))
forall era.
AlonzoEraTxBody era =>
Lens' (TxBody era) (Set (TxIn (EraCrypto era)))
Lens'
  (TxBody (ConwayEra StandardCrypto))
  (Set (TxIn (EraCrypto (ConwayEra StandardCrypto))))
collateralInputsTxBodyL
      BabbageTxBody (BabbageEra StandardCrypto)
-> (BabbageTxBody (BabbageEra StandardCrypto)
    -> BabbageTxBody (BabbageEra StandardCrypto))
-> BabbageTxBody (BabbageEra StandardCrypto)
forall a b. a -> (a -> b) -> b
& (Set (KeyHash 'Witness (EraCrypto (BabbageEra StandardCrypto)))
 -> Identity
      (Set (KeyHash 'Witness (EraCrypto (BabbageEra StandardCrypto)))))
-> BabbageTxBody (BabbageEra StandardCrypto)
-> Identity (BabbageTxBody (BabbageEra StandardCrypto))
(Set (KeyHash 'Witness (EraCrypto (BabbageEra StandardCrypto)))
 -> Identity
      (Set (KeyHash 'Witness (EraCrypto (BabbageEra StandardCrypto)))))
-> TxBody (BabbageEra StandardCrypto)
-> Identity (TxBody (BabbageEra StandardCrypto))
forall era.
AlonzoEraTxBody era =>
Lens' (TxBody era) (Set (KeyHash 'Witness (EraCrypto era)))
Lens'
  (TxBody (BabbageEra StandardCrypto))
  (Set (KeyHash 'Witness (EraCrypto (BabbageEra StandardCrypto))))
reqSignerHashesTxBodyL ((Set (KeyHash 'Witness (EraCrypto (BabbageEra StandardCrypto)))
  -> Identity
       (Set (KeyHash 'Witness (EraCrypto (BabbageEra StandardCrypto)))))
 -> BabbageTxBody (BabbageEra StandardCrypto)
 -> Identity (BabbageTxBody (BabbageEra StandardCrypto)))
-> Set (KeyHash 'Witness (EraCrypto (BabbageEra StandardCrypto)))
-> BabbageTxBody (BabbageEra StandardCrypto)
-> BabbageTxBody (BabbageEra StandardCrypto)
forall s t a b. ASetter s t a b -> b -> s -> t
.~ ConwayTxBody (ConwayEra StandardCrypto)
body ConwayTxBody (ConwayEra StandardCrypto)
-> Getting
     (Set (KeyHash 'Witness (EraCrypto (BabbageEra StandardCrypto))))
     (ConwayTxBody (ConwayEra StandardCrypto))
     (Set (KeyHash 'Witness (EraCrypto (BabbageEra StandardCrypto))))
-> Set (KeyHash 'Witness (EraCrypto (BabbageEra StandardCrypto)))
forall s a. s -> Getting a s a -> a
^. Getting
  (Set (KeyHash 'Witness (EraCrypto (BabbageEra StandardCrypto))))
  (ConwayTxBody (ConwayEra StandardCrypto))
  (Set (KeyHash 'Witness (EraCrypto (BabbageEra StandardCrypto))))
(Set (KeyHash 'Witness (EraCrypto (ConwayEra StandardCrypto)))
 -> Const
      (Set (KeyHash 'Witness (EraCrypto (BabbageEra StandardCrypto))))
      (Set (KeyHash 'Witness (EraCrypto (ConwayEra StandardCrypto)))))
-> TxBody (ConwayEra StandardCrypto)
-> Const
     (Set (KeyHash 'Witness (EraCrypto (BabbageEra StandardCrypto))))
     (TxBody (ConwayEra StandardCrypto))
forall era.
AlonzoEraTxBody era =>
Lens' (TxBody era) (Set (KeyHash 'Witness (EraCrypto era)))
Lens'
  (TxBody (ConwayEra StandardCrypto))
  (Set (KeyHash 'Witness (EraCrypto (ConwayEra StandardCrypto))))
reqSignerHashesTxBodyL
      BabbageTxBody (BabbageEra StandardCrypto)
-> (BabbageTxBody (BabbageEra StandardCrypto)
    -> BabbageTxBody (BabbageEra StandardCrypto))
-> BabbageTxBody (BabbageEra StandardCrypto)
forall a b. a -> (a -> b) -> b
& (StrictMaybe
   (ScriptIntegrityHash (EraCrypto (BabbageEra StandardCrypto)))
 -> Identity
      (StrictMaybe
         (ScriptIntegrityHash (EraCrypto (BabbageEra StandardCrypto)))))
-> BabbageTxBody (BabbageEra StandardCrypto)
-> Identity (BabbageTxBody (BabbageEra StandardCrypto))
(StrictMaybe
   (ScriptIntegrityHash (EraCrypto (BabbageEra StandardCrypto)))
 -> Identity
      (StrictMaybe
         (ScriptIntegrityHash (EraCrypto (BabbageEra StandardCrypto)))))
-> TxBody (BabbageEra StandardCrypto)
-> Identity (TxBody (BabbageEra StandardCrypto))
forall era.
AlonzoEraTxBody era =>
Lens'
  (TxBody era) (StrictMaybe (ScriptIntegrityHash (EraCrypto era)))
Lens'
  (TxBody (BabbageEra StandardCrypto))
  (StrictMaybe
     (ScriptIntegrityHash (EraCrypto (BabbageEra StandardCrypto))))
scriptIntegrityHashTxBodyL ((StrictMaybe
    (ScriptIntegrityHash (EraCrypto (BabbageEra StandardCrypto)))
  -> Identity
       (StrictMaybe
          (ScriptIntegrityHash (EraCrypto (BabbageEra StandardCrypto)))))
 -> BabbageTxBody (BabbageEra StandardCrypto)
 -> Identity (BabbageTxBody (BabbageEra StandardCrypto)))
-> StrictMaybe
     (ScriptIntegrityHash (EraCrypto (BabbageEra StandardCrypto)))
-> BabbageTxBody (BabbageEra StandardCrypto)
-> BabbageTxBody (BabbageEra StandardCrypto)
forall s t a b. ASetter s t a b -> b -> s -> t
.~ ConwayTxBody (ConwayEra StandardCrypto)
body ConwayTxBody (ConwayEra StandardCrypto)
-> Getting
     (StrictMaybe
        (ScriptIntegrityHash (EraCrypto (BabbageEra StandardCrypto))))
     (ConwayTxBody (ConwayEra StandardCrypto))
     (StrictMaybe
        (ScriptIntegrityHash (EraCrypto (BabbageEra StandardCrypto))))
-> StrictMaybe
     (ScriptIntegrityHash (EraCrypto (BabbageEra StandardCrypto)))
forall s a. s -> Getting a s a -> a
^. Getting
  (StrictMaybe
     (ScriptIntegrityHash (EraCrypto (BabbageEra StandardCrypto))))
  (ConwayTxBody (ConwayEra StandardCrypto))
  (StrictMaybe
     (ScriptIntegrityHash (EraCrypto (BabbageEra StandardCrypto))))
(StrictMaybe
   (ScriptIntegrityHash (EraCrypto (ConwayEra StandardCrypto)))
 -> Const
      (StrictMaybe
         (ScriptIntegrityHash (EraCrypto (BabbageEra StandardCrypto))))
      (StrictMaybe
         (ScriptIntegrityHash (EraCrypto (ConwayEra StandardCrypto)))))
-> TxBody (ConwayEra StandardCrypto)
-> Const
     (StrictMaybe
        (ScriptIntegrityHash (EraCrypto (BabbageEra StandardCrypto))))
     (TxBody (ConwayEra StandardCrypto))
forall era.
AlonzoEraTxBody era =>
Lens'
  (TxBody era) (StrictMaybe (ScriptIntegrityHash (EraCrypto era)))
Lens'
  (TxBody (ConwayEra StandardCrypto))
  (StrictMaybe
     (ScriptIntegrityHash (EraCrypto (ConwayEra StandardCrypto))))
scriptIntegrityHashTxBodyL
      BabbageTxBody (BabbageEra StandardCrypto)
-> (BabbageTxBody (BabbageEra StandardCrypto)
    -> BabbageTxBody (BabbageEra StandardCrypto))
-> BabbageTxBody (BabbageEra StandardCrypto)
forall a b. a -> (a -> b) -> b
& (StrictMaybe Network -> Identity (StrictMaybe Network))
-> BabbageTxBody (BabbageEra StandardCrypto)
-> Identity (BabbageTxBody (BabbageEra StandardCrypto))
(StrictMaybe Network -> Identity (StrictMaybe Network))
-> TxBody (BabbageEra StandardCrypto)
-> Identity (TxBody (BabbageEra StandardCrypto))
forall era.
AlonzoEraTxBody era =>
Lens' (TxBody era) (StrictMaybe Network)
Lens' (TxBody (BabbageEra StandardCrypto)) (StrictMaybe Network)
networkIdTxBodyL ((StrictMaybe Network -> Identity (StrictMaybe Network))
 -> BabbageTxBody (BabbageEra StandardCrypto)
 -> Identity (BabbageTxBody (BabbageEra StandardCrypto)))
-> StrictMaybe Network
-> BabbageTxBody (BabbageEra StandardCrypto)
-> BabbageTxBody (BabbageEra StandardCrypto)
forall s t a b. ASetter s t a b -> b -> s -> t
.~ ConwayTxBody (ConwayEra StandardCrypto)
body ConwayTxBody (ConwayEra StandardCrypto)
-> Getting
     (StrictMaybe Network)
     (ConwayTxBody (ConwayEra StandardCrypto))
     (StrictMaybe Network)
-> StrictMaybe Network
forall s a. s -> Getting a s a -> a
^. (StrictMaybe Network
 -> Const (StrictMaybe Network) (StrictMaybe Network))
-> TxBody (ConwayEra StandardCrypto)
-> Const (StrictMaybe Network) (TxBody (ConwayEra StandardCrypto))
Getting
  (StrictMaybe Network)
  (ConwayTxBody (ConwayEra StandardCrypto))
  (StrictMaybe Network)
forall era.
AlonzoEraTxBody era =>
Lens' (TxBody era) (StrictMaybe Network)
Lens' (TxBody (ConwayEra StandardCrypto)) (StrictMaybe Network)
networkIdTxBodyL
      BabbageTxBody (BabbageEra StandardCrypto)
-> (BabbageTxBody (BabbageEra StandardCrypto)
    -> BabbageTxBody (BabbageEra StandardCrypto))
-> BabbageTxBody (BabbageEra StandardCrypto)
forall a b. a -> (a -> b) -> b
& (Set (TxIn (EraCrypto (BabbageEra StandardCrypto)))
 -> Identity (Set (TxIn (EraCrypto (BabbageEra StandardCrypto)))))
-> BabbageTxBody (BabbageEra StandardCrypto)
-> Identity (BabbageTxBody (BabbageEra StandardCrypto))
(Set (TxIn (EraCrypto (BabbageEra StandardCrypto)))
 -> Identity (Set (TxIn (EraCrypto (BabbageEra StandardCrypto)))))
-> TxBody (BabbageEra StandardCrypto)
-> Identity (TxBody (BabbageEra StandardCrypto))
forall era.
BabbageEraTxBody era =>
Lens' (TxBody era) (Set (TxIn (EraCrypto era)))
Lens'
  (TxBody (BabbageEra StandardCrypto))
  (Set (TxIn (EraCrypto (BabbageEra StandardCrypto))))
referenceInputsTxBodyL ((Set (TxIn (EraCrypto (BabbageEra StandardCrypto)))
  -> Identity (Set (TxIn (EraCrypto (BabbageEra StandardCrypto)))))
 -> BabbageTxBody (BabbageEra StandardCrypto)
 -> Identity (BabbageTxBody (BabbageEra StandardCrypto)))
-> Set (TxIn (EraCrypto (BabbageEra StandardCrypto)))
-> BabbageTxBody (BabbageEra StandardCrypto)
-> BabbageTxBody (BabbageEra StandardCrypto)
forall s t a b. ASetter s t a b -> b -> s -> t
.~ ConwayTxBody (ConwayEra StandardCrypto)
body ConwayTxBody (ConwayEra StandardCrypto)
-> Getting
     (Set (TxIn (EraCrypto (BabbageEra StandardCrypto))))
     (ConwayTxBody (ConwayEra StandardCrypto))
     (Set (TxIn (EraCrypto (BabbageEra StandardCrypto))))
-> Set (TxIn (EraCrypto (BabbageEra StandardCrypto)))
forall s a. s -> Getting a s a -> a
^. Getting
  (Set (TxIn (EraCrypto (BabbageEra StandardCrypto))))
  (ConwayTxBody (ConwayEra StandardCrypto))
  (Set (TxIn (EraCrypto (BabbageEra StandardCrypto))))
(Set (TxIn (EraCrypto (ConwayEra StandardCrypto)))
 -> Const
      (Set (TxIn (EraCrypto (BabbageEra StandardCrypto))))
      (Set (TxIn (EraCrypto (ConwayEra StandardCrypto)))))
-> TxBody (ConwayEra StandardCrypto)
-> Const
     (Set (TxIn (EraCrypto (BabbageEra StandardCrypto))))
     (TxBody (ConwayEra StandardCrypto))
forall era.
BabbageEraTxBody era =>
Lens' (TxBody era) (Set (TxIn (EraCrypto era)))
Lens'
  (TxBody (ConwayEra StandardCrypto))
  (Set (TxIn (EraCrypto (ConwayEra StandardCrypto))))
referenceInputsTxBodyL
      BabbageTxBody (BabbageEra StandardCrypto)
-> (BabbageTxBody (BabbageEra StandardCrypto)
    -> BabbageTxBody (BabbageEra StandardCrypto))
-> BabbageTxBody (BabbageEra StandardCrypto)
forall a b. a -> (a -> b) -> b
& (StrictMaybe Coin -> Identity (StrictMaybe Coin))
-> BabbageTxBody (BabbageEra StandardCrypto)
-> Identity (BabbageTxBody (BabbageEra StandardCrypto))
(StrictMaybe Coin -> Identity (StrictMaybe Coin))
-> TxBody (BabbageEra StandardCrypto)
-> Identity (TxBody (BabbageEra StandardCrypto))
forall era.
BabbageEraTxBody era =>
Lens' (TxBody era) (StrictMaybe Coin)
Lens' (TxBody (BabbageEra StandardCrypto)) (StrictMaybe Coin)
totalCollateralTxBodyL ((StrictMaybe Coin -> Identity (StrictMaybe Coin))
 -> BabbageTxBody (BabbageEra StandardCrypto)
 -> Identity (BabbageTxBody (BabbageEra StandardCrypto)))
-> StrictMaybe Coin
-> BabbageTxBody (BabbageEra StandardCrypto)
-> BabbageTxBody (BabbageEra StandardCrypto)
forall s t a b. ASetter s t a b -> b -> s -> t
.~ ConwayTxBody (ConwayEra StandardCrypto)
body ConwayTxBody (ConwayEra StandardCrypto)
-> Getting
     (StrictMaybe Coin)
     (ConwayTxBody (ConwayEra StandardCrypto))
     (StrictMaybe Coin)
-> StrictMaybe Coin
forall s a. s -> Getting a s a -> a
^. (StrictMaybe Coin -> Const (StrictMaybe Coin) (StrictMaybe Coin))
-> TxBody (ConwayEra StandardCrypto)
-> Const (StrictMaybe Coin) (TxBody (ConwayEra StandardCrypto))
Getting
  (StrictMaybe Coin)
  (ConwayTxBody (ConwayEra StandardCrypto))
  (StrictMaybe Coin)
forall era.
BabbageEraTxBody era =>
Lens' (TxBody era) (StrictMaybe Coin)
Lens' (TxBody (ConwayEra StandardCrypto)) (StrictMaybe Coin)
totalCollateralTxBodyL
      BabbageTxBody (BabbageEra StandardCrypto)
-> (BabbageTxBody (BabbageEra StandardCrypto)
    -> BabbageTxBody (BabbageEra StandardCrypto))
-> BabbageTxBody (BabbageEra StandardCrypto)
forall a b. a -> (a -> b) -> b
& (StrictMaybe (TxOut (BabbageEra StandardCrypto))
 -> Identity
      (StrictMaybe (BabbageTxOut (BabbageEra StandardCrypto))))
-> BabbageTxBody (BabbageEra StandardCrypto)
-> Identity (BabbageTxBody (BabbageEra StandardCrypto))
(StrictMaybe (TxOut (BabbageEra StandardCrypto))
 -> Identity (StrictMaybe (TxOut (BabbageEra StandardCrypto))))
-> TxBody (BabbageEra StandardCrypto)
-> Identity (TxBody (BabbageEra StandardCrypto))
forall era.
BabbageEraTxBody era =>
Lens' (TxBody era) (StrictMaybe (TxOut era))
Lens'
  (TxBody (BabbageEra StandardCrypto))
  (StrictMaybe (TxOut (BabbageEra StandardCrypto)))
collateralReturnTxBodyL ((StrictMaybe (TxOut (BabbageEra StandardCrypto))
  -> Identity
       (StrictMaybe (BabbageTxOut (BabbageEra StandardCrypto))))
 -> BabbageTxBody (BabbageEra StandardCrypto)
 -> Identity (BabbageTxBody (BabbageEra StandardCrypto)))
-> StrictMaybe (BabbageTxOut (BabbageEra StandardCrypto))
-> BabbageTxBody (BabbageEra StandardCrypto)
-> BabbageTxBody (BabbageEra StandardCrypto)
forall s t a b. ASetter s t a b -> b -> s -> t
.~ (BabbageTxOut (ConwayEra StandardCrypto)
-> BabbageTxOut (BabbageEra StandardCrypto)
translateTxOut (BabbageTxOut (ConwayEra StandardCrypto)
 -> BabbageTxOut (BabbageEra StandardCrypto))
-> StrictMaybe (BabbageTxOut (ConwayEra StandardCrypto))
-> StrictMaybe (BabbageTxOut (BabbageEra StandardCrypto))
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> ConwayTxBody (ConwayEra StandardCrypto)
body ConwayTxBody (ConwayEra StandardCrypto)
-> Getting
     (StrictMaybe (BabbageTxOut (ConwayEra StandardCrypto)))
     (ConwayTxBody (ConwayEra StandardCrypto))
     (StrictMaybe (BabbageTxOut (ConwayEra StandardCrypto)))
-> StrictMaybe (BabbageTxOut (ConwayEra StandardCrypto))
forall s a. s -> Getting a s a -> a
^. Getting
  (StrictMaybe (BabbageTxOut (ConwayEra StandardCrypto)))
  (ConwayTxBody (ConwayEra StandardCrypto))
  (StrictMaybe (BabbageTxOut (ConwayEra StandardCrypto)))
(StrictMaybe (TxOut (ConwayEra StandardCrypto))
 -> Const
      (StrictMaybe (BabbageTxOut (ConwayEra StandardCrypto)))
      (StrictMaybe (TxOut (ConwayEra StandardCrypto))))
-> TxBody (ConwayEra StandardCrypto)
-> Const
     (StrictMaybe (BabbageTxOut (ConwayEra StandardCrypto)))
     (TxBody (ConwayEra StandardCrypto))
forall era.
BabbageEraTxBody era =>
Lens' (TxBody era) (StrictMaybe (TxOut era))
Lens'
  (TxBody (ConwayEra StandardCrypto))
  (StrictMaybe (TxOut (ConwayEra StandardCrypto)))
collateralReturnTxBodyL)

  translateTxOut ::
    Ledger.BabbageTxOut (Ledger.ConwayEra StandardCrypto) ->
    Ledger.BabbageTxOut (Ledger.BabbageEra StandardCrypto)
  translateTxOut :: BabbageTxOut (ConwayEra StandardCrypto)
-> BabbageTxOut (BabbageEra StandardCrypto)
translateTxOut BabbageTxOut (ConwayEra StandardCrypto)
out =
    Addr (EraCrypto (BabbageEra StandardCrypto))
-> Value (BabbageEra StandardCrypto)
-> TxOut (BabbageEra StandardCrypto)
forall era.
EraTxOut era =>
Addr (EraCrypto era) -> Value era -> TxOut era
mkBasicTxOut (BabbageTxOut (ConwayEra StandardCrypto)
out BabbageTxOut (ConwayEra StandardCrypto)
-> Getting
     (Addr (EraCrypto (BabbageEra StandardCrypto)))
     (BabbageTxOut (ConwayEra StandardCrypto))
     (Addr (EraCrypto (BabbageEra StandardCrypto)))
-> Addr (EraCrypto (BabbageEra StandardCrypto))
forall s a. s -> Getting a s a -> a
^. Getting
  (Addr (EraCrypto (BabbageEra StandardCrypto)))
  (BabbageTxOut (ConwayEra StandardCrypto))
  (Addr (EraCrypto (BabbageEra StandardCrypto)))
(Addr (EraCrypto (ConwayEra StandardCrypto))
 -> Const
      (Addr (EraCrypto (BabbageEra StandardCrypto)))
      (Addr (EraCrypto (ConwayEra StandardCrypto))))
-> TxOut (ConwayEra StandardCrypto)
-> Const
     (Addr (EraCrypto (BabbageEra StandardCrypto)))
     (TxOut (ConwayEra StandardCrypto))
forall era.
EraTxOut era =>
Lens' (TxOut era) (Addr (EraCrypto era))
Lens'
  (TxOut (ConwayEra StandardCrypto))
  (Addr (EraCrypto (ConwayEra StandardCrypto)))
addrTxOutL) (BabbageTxOut (ConwayEra StandardCrypto)
out BabbageTxOut (ConwayEra StandardCrypto)
-> Getting
     (Value (BabbageEra StandardCrypto))
     (BabbageTxOut (ConwayEra StandardCrypto))
     (Value (BabbageEra StandardCrypto))
-> Value (BabbageEra StandardCrypto)
forall s a. s -> Getting a s a -> a
^. Getting
  (Value (BabbageEra StandardCrypto))
  (BabbageTxOut (ConwayEra StandardCrypto))
  (Value (BabbageEra StandardCrypto))
(Value (ConwayEra StandardCrypto)
 -> Const
      (Value (BabbageEra StandardCrypto))
      (Value (ConwayEra StandardCrypto)))
-> TxOut (ConwayEra StandardCrypto)
-> Const
     (Value (BabbageEra StandardCrypto))
     (TxOut (ConwayEra StandardCrypto))
forall era. EraTxOut era => Lens' (TxOut era) (Value era)
Lens'
  (TxOut (ConwayEra StandardCrypto))
  (Value (ConwayEra StandardCrypto))
valueTxOutL)
      TxOut (BabbageEra StandardCrypto)
-> (TxOut (BabbageEra StandardCrypto)
    -> TxOut (BabbageEra StandardCrypto))
-> TxOut (BabbageEra StandardCrypto)
forall a b. a -> (a -> b) -> b
& (StrictMaybe (Data (BabbageEra StandardCrypto))
 -> Identity (StrictMaybe (Data (BabbageEra StandardCrypto))))
-> TxOut (BabbageEra StandardCrypto)
-> Identity (TxOut (BabbageEra StandardCrypto))
forall era.
BabbageEraTxOut era =>
Lens' (TxOut era) (StrictMaybe (Data era))
Lens'
  (TxOut (BabbageEra StandardCrypto))
  (StrictMaybe (Data (BabbageEra StandardCrypto)))
dataTxOutL ((StrictMaybe (Data (BabbageEra StandardCrypto))
  -> Identity (StrictMaybe (Data (BabbageEra StandardCrypto))))
 -> TxOut (BabbageEra StandardCrypto)
 -> Identity (TxOut (BabbageEra StandardCrypto)))
-> StrictMaybe (Data (BabbageEra StandardCrypto))
-> TxOut (BabbageEra StandardCrypto)
-> TxOut (BabbageEra StandardCrypto)
forall s t a b. ASetter s t a b -> b -> s -> t
.~ (Data (ConwayEra StandardCrypto) -> Data (BabbageEra StandardCrypto)
forall era1 era2. (Era era1, Era era2) => Data era1 -> Data era2
upgradeData (Data (ConwayEra StandardCrypto)
 -> Data (BabbageEra StandardCrypto))
-> StrictMaybe (Data (ConwayEra StandardCrypto))
-> StrictMaybe (Data (BabbageEra StandardCrypto))
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> BabbageTxOut (ConwayEra StandardCrypto)
out BabbageTxOut (ConwayEra StandardCrypto)
-> Getting
     (StrictMaybe (Data (ConwayEra StandardCrypto)))
     (BabbageTxOut (ConwayEra StandardCrypto))
     (StrictMaybe (Data (ConwayEra StandardCrypto)))
-> StrictMaybe (Data (ConwayEra StandardCrypto))
forall s a. s -> Getting a s a -> a
^. Getting
  (StrictMaybe (Data (ConwayEra StandardCrypto)))
  (BabbageTxOut (ConwayEra StandardCrypto))
  (StrictMaybe (Data (ConwayEra StandardCrypto)))
(StrictMaybe (Data (ConwayEra StandardCrypto))
 -> Const
      (StrictMaybe (Data (ConwayEra StandardCrypto)))
      (StrictMaybe (Data (ConwayEra StandardCrypto))))
-> TxOut (ConwayEra StandardCrypto)
-> Const
     (StrictMaybe (Data (ConwayEra StandardCrypto)))
     (TxOut (ConwayEra StandardCrypto))
forall era.
BabbageEraTxOut era =>
Lens' (TxOut era) (StrictMaybe (Data era))
Lens'
  (TxOut (ConwayEra StandardCrypto))
  (StrictMaybe (Data (ConwayEra StandardCrypto)))
dataTxOutL)
      TxOut (BabbageEra StandardCrypto)
-> (TxOut (BabbageEra StandardCrypto)
    -> BabbageTxOut (BabbageEra StandardCrypto))
-> BabbageTxOut (BabbageEra StandardCrypto)
forall a b. a -> (a -> b) -> b
& (StrictMaybe (Script (BabbageEra StandardCrypto))
 -> Identity
      (StrictMaybe (AlonzoScript (BabbageEra StandardCrypto))))
-> TxOut (BabbageEra StandardCrypto)
-> Identity (BabbageTxOut (BabbageEra StandardCrypto))
(StrictMaybe (Script (BabbageEra StandardCrypto))
 -> Identity (StrictMaybe (Script (BabbageEra StandardCrypto))))
-> TxOut (BabbageEra StandardCrypto)
-> Identity (TxOut (BabbageEra StandardCrypto))
forall era.
BabbageEraTxOut era =>
Lens' (TxOut era) (StrictMaybe (Script era))
Lens'
  (TxOut (BabbageEra StandardCrypto))
  (StrictMaybe (Script (BabbageEra StandardCrypto)))
referenceScriptTxOutL ((StrictMaybe (Script (BabbageEra StandardCrypto))
  -> Identity
       (StrictMaybe (AlonzoScript (BabbageEra StandardCrypto))))
 -> TxOut (BabbageEra StandardCrypto)
 -> Identity (BabbageTxOut (BabbageEra StandardCrypto)))
-> StrictMaybe (AlonzoScript (BabbageEra StandardCrypto))
-> TxOut (BabbageEra StandardCrypto)
-> BabbageTxOut (BabbageEra StandardCrypto)
forall s t a b. ASetter s t a b -> b -> s -> t
.~ (BabbageTxOut (ConwayEra StandardCrypto)
out BabbageTxOut (ConwayEra StandardCrypto)
-> Getting
     (StrictMaybe (AlonzoScript (ConwayEra StandardCrypto)))
     (BabbageTxOut (ConwayEra StandardCrypto))
     (StrictMaybe (AlonzoScript (ConwayEra StandardCrypto)))
-> StrictMaybe (AlonzoScript (ConwayEra StandardCrypto))
forall s a. s -> Getting a s a -> a
^. Getting
  (StrictMaybe (AlonzoScript (ConwayEra StandardCrypto)))
  (BabbageTxOut (ConwayEra StandardCrypto))
  (StrictMaybe (AlonzoScript (ConwayEra StandardCrypto)))
(StrictMaybe (Script (ConwayEra StandardCrypto))
 -> Const
      (StrictMaybe (AlonzoScript (ConwayEra StandardCrypto)))
      (StrictMaybe (Script (ConwayEra StandardCrypto))))
-> TxOut (ConwayEra StandardCrypto)
-> Const
     (StrictMaybe (AlonzoScript (ConwayEra StandardCrypto)))
     (TxOut (ConwayEra StandardCrypto))
forall era.
BabbageEraTxOut era =>
Lens' (TxOut era) (StrictMaybe (Script era))
Lens'
  (TxOut (ConwayEra StandardCrypto))
  (StrictMaybe (Script (ConwayEra StandardCrypto)))
referenceScriptTxOutL StrictMaybe (AlonzoScript (ConwayEra StandardCrypto))
-> (AlonzoScript (ConwayEra StandardCrypto)
    -> StrictMaybe (AlonzoScript (BabbageEra StandardCrypto)))
-> StrictMaybe (AlonzoScript (BabbageEra StandardCrypto))
forall a b. StrictMaybe a -> (a -> StrictMaybe b) -> StrictMaybe b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= Maybe (AlonzoScript (BabbageEra StandardCrypto))
-> StrictMaybe (AlonzoScript (BabbageEra StandardCrypto))
forall a. Maybe a -> StrictMaybe a
maybeToStrictMaybe (Maybe (AlonzoScript (BabbageEra StandardCrypto))
 -> StrictMaybe (AlonzoScript (BabbageEra StandardCrypto)))
-> (AlonzoScript (ConwayEra StandardCrypto)
    -> Maybe (AlonzoScript (BabbageEra StandardCrypto)))
-> AlonzoScript (ConwayEra StandardCrypto)
-> StrictMaybe (AlonzoScript (BabbageEra StandardCrypto))
forall b c a. (b -> c) -> (a -> b) -> a -> c
. AlonzoScript (ConwayEra StandardCrypto)
-> Maybe (AlonzoScript (BabbageEra StandardCrypto))
translateScript)

  translateWits ::
    Ledger.AlonzoTxWits (Ledger.ConwayEra StandardCrypto) ->
    Ledger.AlonzoTxWits (Ledger.BabbageEra StandardCrypto)
  translateWits :: AlonzoTxWits (ConwayEra StandardCrypto)
-> AlonzoTxWits (BabbageEra StandardCrypto)
translateWits AlonzoTxWits (ConwayEra StandardCrypto)
wits =
    TxWits (BabbageEra StandardCrypto)
forall era. EraTxWits era => TxWits era
mkBasicTxWits
      TxWits (BabbageEra StandardCrypto)
-> (TxWits (BabbageEra StandardCrypto)
    -> TxWits (BabbageEra StandardCrypto))
-> TxWits (BabbageEra StandardCrypto)
forall a b. a -> (a -> b) -> b
& (Set (WitVKey 'Witness (EraCrypto (BabbageEra StandardCrypto)))
 -> Identity
      (Set (WitVKey 'Witness (EraCrypto (BabbageEra StandardCrypto)))))
-> TxWits (BabbageEra StandardCrypto)
-> Identity (TxWits (BabbageEra StandardCrypto))
forall era.
EraTxWits era =>
Lens' (TxWits era) (Set (WitVKey 'Witness (EraCrypto era)))
Lens'
  (TxWits (BabbageEra StandardCrypto))
  (Set (WitVKey 'Witness (EraCrypto (BabbageEra StandardCrypto))))
addrTxWitsL ((Set (WitVKey 'Witness (EraCrypto (BabbageEra StandardCrypto)))
  -> Identity
       (Set (WitVKey 'Witness (EraCrypto (BabbageEra StandardCrypto)))))
 -> TxWits (BabbageEra StandardCrypto)
 -> Identity (TxWits (BabbageEra StandardCrypto)))
-> Set (WitVKey 'Witness (EraCrypto (BabbageEra StandardCrypto)))
-> TxWits (BabbageEra StandardCrypto)
-> TxWits (BabbageEra StandardCrypto)
forall s t a b. ASetter s t a b -> b -> s -> t
.~ AlonzoTxWits (ConwayEra StandardCrypto)
wits AlonzoTxWits (ConwayEra StandardCrypto)
-> Getting
     (Set (WitVKey 'Witness (EraCrypto (BabbageEra StandardCrypto))))
     (AlonzoTxWits (ConwayEra StandardCrypto))
     (Set (WitVKey 'Witness (EraCrypto (BabbageEra StandardCrypto))))
-> Set (WitVKey 'Witness (EraCrypto (BabbageEra StandardCrypto)))
forall s a. s -> Getting a s a -> a
^. Getting
  (Set (WitVKey 'Witness (EraCrypto (BabbageEra StandardCrypto))))
  (AlonzoTxWits (ConwayEra StandardCrypto))
  (Set (WitVKey 'Witness (EraCrypto (BabbageEra StandardCrypto))))
(Set (WitVKey 'Witness (EraCrypto (ConwayEra StandardCrypto)))
 -> Const
      (Set (WitVKey 'Witness (EraCrypto (BabbageEra StandardCrypto))))
      (Set (WitVKey 'Witness (EraCrypto (ConwayEra StandardCrypto)))))
-> TxWits (ConwayEra StandardCrypto)
-> Const
     (Set (WitVKey 'Witness (EraCrypto (BabbageEra StandardCrypto))))
     (TxWits (ConwayEra StandardCrypto))
forall era.
EraTxWits era =>
Lens' (TxWits era) (Set (WitVKey 'Witness (EraCrypto era)))
Lens'
  (TxWits (ConwayEra StandardCrypto))
  (Set (WitVKey 'Witness (EraCrypto (ConwayEra StandardCrypto))))
addrTxWitsL
      TxWits (BabbageEra StandardCrypto)
-> (TxWits (BabbageEra StandardCrypto)
    -> TxWits (BabbageEra StandardCrypto))
-> TxWits (BabbageEra StandardCrypto)
forall a b. a -> (a -> b) -> b
& (Set (BootstrapWitness (EraCrypto (BabbageEra StandardCrypto)))
 -> Identity
      (Set (BootstrapWitness (EraCrypto (BabbageEra StandardCrypto)))))
-> TxWits (BabbageEra StandardCrypto)
-> Identity (TxWits (BabbageEra StandardCrypto))
forall era.
EraTxWits era =>
Lens' (TxWits era) (Set (BootstrapWitness (EraCrypto era)))
Lens'
  (TxWits (BabbageEra StandardCrypto))
  (Set (BootstrapWitness (EraCrypto (BabbageEra StandardCrypto))))
bootAddrTxWitsL ((Set (BootstrapWitness (EraCrypto (BabbageEra StandardCrypto)))
  -> Identity
       (Set (BootstrapWitness (EraCrypto (BabbageEra StandardCrypto)))))
 -> TxWits (BabbageEra StandardCrypto)
 -> Identity (TxWits (BabbageEra StandardCrypto)))
-> Set (BootstrapWitness (EraCrypto (BabbageEra StandardCrypto)))
-> TxWits (BabbageEra StandardCrypto)
-> TxWits (BabbageEra StandardCrypto)
forall s t a b. ASetter s t a b -> b -> s -> t
.~ AlonzoTxWits (ConwayEra StandardCrypto)
wits AlonzoTxWits (ConwayEra StandardCrypto)
-> Getting
     (Set (BootstrapWitness (EraCrypto (BabbageEra StandardCrypto))))
     (AlonzoTxWits (ConwayEra StandardCrypto))
     (Set (BootstrapWitness (EraCrypto (BabbageEra StandardCrypto))))
-> Set (BootstrapWitness (EraCrypto (BabbageEra StandardCrypto)))
forall s a. s -> Getting a s a -> a
^. Getting
  (Set (BootstrapWitness (EraCrypto (BabbageEra StandardCrypto))))
  (AlonzoTxWits (ConwayEra StandardCrypto))
  (Set (BootstrapWitness (EraCrypto (BabbageEra StandardCrypto))))
(Set (BootstrapWitness (EraCrypto (ConwayEra StandardCrypto)))
 -> Const
      (Set (BootstrapWitness (EraCrypto (BabbageEra StandardCrypto))))
      (Set (BootstrapWitness (EraCrypto (ConwayEra StandardCrypto)))))
-> TxWits (ConwayEra StandardCrypto)
-> Const
     (Set (BootstrapWitness (EraCrypto (BabbageEra StandardCrypto))))
     (TxWits (ConwayEra StandardCrypto))
forall era.
EraTxWits era =>
Lens' (TxWits era) (Set (BootstrapWitness (EraCrypto era)))
Lens'
  (TxWits (ConwayEra StandardCrypto))
  (Set (BootstrapWitness (EraCrypto (ConwayEra StandardCrypto))))
bootAddrTxWitsL
      TxWits (BabbageEra StandardCrypto)
-> (TxWits (BabbageEra StandardCrypto)
    -> AlonzoTxWits (BabbageEra StandardCrypto))
-> AlonzoTxWits (BabbageEra StandardCrypto)
forall a b. a -> (a -> b) -> b
& (Map
   (ScriptHash (EraCrypto (BabbageEra StandardCrypto)))
   (Script (BabbageEra StandardCrypto))
 -> Identity
      (Map
         (ScriptHash (EraCrypto (BabbageEra StandardCrypto)))
         (AlonzoScript (BabbageEra StandardCrypto))))
-> TxWits (BabbageEra StandardCrypto)
-> Identity (AlonzoTxWits (BabbageEra StandardCrypto))
(Map
   (ScriptHash (EraCrypto (BabbageEra StandardCrypto)))
   (Script (BabbageEra StandardCrypto))
 -> Identity
      (Map
         (ScriptHash (EraCrypto (BabbageEra StandardCrypto)))
         (Script (BabbageEra StandardCrypto))))
-> TxWits (BabbageEra StandardCrypto)
-> Identity (TxWits (BabbageEra StandardCrypto))
forall era.
EraTxWits era =>
Lens' (TxWits era) (Map (ScriptHash (EraCrypto era)) (Script era))
Lens'
  (TxWits (BabbageEra StandardCrypto))
  (Map
     (ScriptHash (EraCrypto (BabbageEra StandardCrypto)))
     (Script (BabbageEra StandardCrypto)))
scriptTxWitsL ((Map
    (ScriptHash (EraCrypto (BabbageEra StandardCrypto)))
    (Script (BabbageEra StandardCrypto))
  -> Identity
       (Map
          (ScriptHash (EraCrypto (BabbageEra StandardCrypto)))
          (AlonzoScript (BabbageEra StandardCrypto))))
 -> TxWits (BabbageEra StandardCrypto)
 -> Identity (AlonzoTxWits (BabbageEra StandardCrypto)))
-> Map
     (ScriptHash (EraCrypto (BabbageEra StandardCrypto)))
     (AlonzoScript (BabbageEra StandardCrypto))
-> TxWits (BabbageEra StandardCrypto)
-> AlonzoTxWits (BabbageEra StandardCrypto)
forall s t a b. ASetter s t a b -> b -> s -> t
.~ (AlonzoScript (ConwayEra StandardCrypto)
 -> Maybe (AlonzoScript (BabbageEra StandardCrypto)))
-> Map
     (ScriptHash (EraCrypto (BabbageEra StandardCrypto)))
     (AlonzoScript (ConwayEra StandardCrypto))
-> Map
     (ScriptHash (EraCrypto (BabbageEra StandardCrypto)))
     (AlonzoScript (BabbageEra StandardCrypto))
forall a b k. (a -> Maybe b) -> Map k a -> Map k b
Map.mapMaybe AlonzoScript (ConwayEra StandardCrypto)
-> Maybe (AlonzoScript (BabbageEra StandardCrypto))
translateScript (AlonzoTxWits (ConwayEra StandardCrypto)
wits AlonzoTxWits (ConwayEra StandardCrypto)
-> Getting
     (Map
        (ScriptHash (EraCrypto (BabbageEra StandardCrypto)))
        (AlonzoScript (ConwayEra StandardCrypto)))
     (AlonzoTxWits (ConwayEra StandardCrypto))
     (Map
        (ScriptHash (EraCrypto (BabbageEra StandardCrypto)))
        (AlonzoScript (ConwayEra StandardCrypto)))
-> Map
     (ScriptHash (EraCrypto (BabbageEra StandardCrypto)))
     (AlonzoScript (ConwayEra StandardCrypto))
forall s a. s -> Getting a s a -> a
^. Getting
  (Map
     (ScriptHash (EraCrypto (BabbageEra StandardCrypto)))
     (AlonzoScript (ConwayEra StandardCrypto)))
  (AlonzoTxWits (ConwayEra StandardCrypto))
  (Map
     (ScriptHash (EraCrypto (BabbageEra StandardCrypto)))
     (AlonzoScript (ConwayEra StandardCrypto)))
(Map
   (ScriptHash (EraCrypto (ConwayEra StandardCrypto)))
   (Script (ConwayEra StandardCrypto))
 -> Const
      (Map
         (ScriptHash (EraCrypto (BabbageEra StandardCrypto)))
         (AlonzoScript (ConwayEra StandardCrypto)))
      (Map
         (ScriptHash (EraCrypto (ConwayEra StandardCrypto)))
         (Script (ConwayEra StandardCrypto))))
-> TxWits (ConwayEra StandardCrypto)
-> Const
     (Map
        (ScriptHash (EraCrypto (BabbageEra StandardCrypto)))
        (AlonzoScript (ConwayEra StandardCrypto)))
     (TxWits (ConwayEra StandardCrypto))
forall era.
EraTxWits era =>
Lens' (TxWits era) (Map (ScriptHash (EraCrypto era)) (Script era))
Lens'
  (TxWits (ConwayEra StandardCrypto))
  (Map
     (ScriptHash (EraCrypto (ConwayEra StandardCrypto)))
     (Script (ConwayEra StandardCrypto)))
scriptTxWitsL)
      AlonzoTxWits (BabbageEra StandardCrypto)
-> (AlonzoTxWits (BabbageEra StandardCrypto)
    -> AlonzoTxWits (BabbageEra StandardCrypto))
-> AlonzoTxWits (BabbageEra StandardCrypto)
forall a b. a -> (a -> b) -> b
& (TxDats (BabbageEra StandardCrypto)
 -> Identity (TxDats (BabbageEra StandardCrypto)))
-> AlonzoTxWits (BabbageEra StandardCrypto)
-> Identity (AlonzoTxWits (BabbageEra StandardCrypto))
(TxDats (BabbageEra StandardCrypto)
 -> Identity (TxDats (BabbageEra StandardCrypto)))
-> TxWits (BabbageEra StandardCrypto)
-> Identity (TxWits (BabbageEra StandardCrypto))
forall era. AlonzoEraTxWits era => Lens' (TxWits era) (TxDats era)
Lens'
  (TxWits (BabbageEra StandardCrypto))
  (TxDats (BabbageEra StandardCrypto))
datsTxWitsL ((TxDats (BabbageEra StandardCrypto)
  -> Identity (TxDats (BabbageEra StandardCrypto)))
 -> AlonzoTxWits (BabbageEra StandardCrypto)
 -> Identity (AlonzoTxWits (BabbageEra StandardCrypto)))
-> TxDats (BabbageEra StandardCrypto)
-> AlonzoTxWits (BabbageEra StandardCrypto)
-> AlonzoTxWits (BabbageEra StandardCrypto)
forall s t a b. ASetter s t a b -> b -> s -> t
.~ TxDats (ConwayEra StandardCrypto)
-> TxDats (BabbageEra StandardCrypto)
forall era1 era2.
(Era era1, Era era2, EraCrypto era1 ~ EraCrypto era2) =>
TxDats era1 -> TxDats era2
upgradeTxDats (AlonzoTxWits (ConwayEra StandardCrypto)
wits AlonzoTxWits (ConwayEra StandardCrypto)
-> Getting
     (TxDats (ConwayEra StandardCrypto))
     (AlonzoTxWits (ConwayEra StandardCrypto))
     (TxDats (ConwayEra StandardCrypto))
-> TxDats (ConwayEra StandardCrypto)
forall s a. s -> Getting a s a -> a
^. Getting
  (TxDats (ConwayEra StandardCrypto))
  (AlonzoTxWits (ConwayEra StandardCrypto))
  (TxDats (ConwayEra StandardCrypto))
(TxDats (ConwayEra StandardCrypto)
 -> Const
      (TxDats (ConwayEra StandardCrypto))
      (TxDats (ConwayEra StandardCrypto)))
-> TxWits (ConwayEra StandardCrypto)
-> Const
     (TxDats (ConwayEra StandardCrypto))
     (TxWits (ConwayEra StandardCrypto))
forall era. AlonzoEraTxWits era => Lens' (TxWits era) (TxDats era)
Lens'
  (TxWits (ConwayEra StandardCrypto))
  (TxDats (ConwayEra StandardCrypto))
datsTxWitsL)
      AlonzoTxWits (BabbageEra StandardCrypto)
-> (AlonzoTxWits (BabbageEra StandardCrypto)
    -> AlonzoTxWits (BabbageEra StandardCrypto))
-> AlonzoTxWits (BabbageEra StandardCrypto)
forall a b. a -> (a -> b) -> b
& (Redeemers (BabbageEra StandardCrypto)
 -> Identity (Redeemers (BabbageEra StandardCrypto)))
-> AlonzoTxWits (BabbageEra StandardCrypto)
-> Identity (AlonzoTxWits (BabbageEra StandardCrypto))
(Redeemers (BabbageEra StandardCrypto)
 -> Identity (Redeemers (BabbageEra StandardCrypto)))
-> TxWits (BabbageEra StandardCrypto)
-> Identity (TxWits (BabbageEra StandardCrypto))
forall era.
AlonzoEraTxWits era =>
Lens' (TxWits era) (Redeemers era)
Lens'
  (TxWits (BabbageEra StandardCrypto))
  (Redeemers (BabbageEra StandardCrypto))
rdmrsTxWitsL ((Redeemers (BabbageEra StandardCrypto)
  -> Identity (Redeemers (BabbageEra StandardCrypto)))
 -> AlonzoTxWits (BabbageEra StandardCrypto)
 -> Identity (AlonzoTxWits (BabbageEra StandardCrypto)))
-> Redeemers (BabbageEra StandardCrypto)
-> AlonzoTxWits (BabbageEra StandardCrypto)
-> AlonzoTxWits (BabbageEra StandardCrypto)
forall s t a b. ASetter s t a b -> b -> s -> t
.~ Redeemers (ConwayEra StandardCrypto)
-> Redeemers (BabbageEra StandardCrypto)
translateRdmrs (AlonzoTxWits (ConwayEra StandardCrypto)
wits AlonzoTxWits (ConwayEra StandardCrypto)
-> Getting
     (Redeemers (ConwayEra StandardCrypto))
     (AlonzoTxWits (ConwayEra StandardCrypto))
     (Redeemers (ConwayEra StandardCrypto))
-> Redeemers (ConwayEra StandardCrypto)
forall s a. s -> Getting a s a -> a
^. Getting
  (Redeemers (ConwayEra StandardCrypto))
  (AlonzoTxWits (ConwayEra StandardCrypto))
  (Redeemers (ConwayEra StandardCrypto))
(Redeemers (ConwayEra StandardCrypto)
 -> Const
      (Redeemers (ConwayEra StandardCrypto))
      (Redeemers (ConwayEra StandardCrypto)))
-> TxWits (ConwayEra StandardCrypto)
-> Const
     (Redeemers (ConwayEra StandardCrypto))
     (TxWits (ConwayEra StandardCrypto))
forall era.
AlonzoEraTxWits era =>
Lens' (TxWits era) (Redeemers era)
Lens'
  (TxWits (ConwayEra StandardCrypto))
  (Redeemers (ConwayEra StandardCrypto))
rdmrsTxWitsL)

  translateScript ::
    Ledger.AlonzoScript (Ledger.ConwayEra StandardCrypto) ->
    Maybe (Ledger.AlonzoScript (Ledger.BabbageEra StandardCrypto))
  translateScript :: AlonzoScript (ConwayEra StandardCrypto)
-> Maybe (AlonzoScript (BabbageEra StandardCrypto))
translateScript = \case
    Ledger.TimelockScript Timelock (ConwayEra StandardCrypto)
ts -> AlonzoScript (BabbageEra StandardCrypto)
-> Maybe (AlonzoScript (BabbageEra StandardCrypto))
forall a. a -> Maybe a
Just (AlonzoScript (BabbageEra StandardCrypto)
 -> Maybe (AlonzoScript (BabbageEra StandardCrypto)))
-> (Timelock (BabbageEra StandardCrypto)
    -> AlonzoScript (BabbageEra StandardCrypto))
-> Timelock (BabbageEra StandardCrypto)
-> Maybe (AlonzoScript (BabbageEra StandardCrypto))
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Timelock (BabbageEra StandardCrypto)
-> AlonzoScript (BabbageEra StandardCrypto)
forall era. Timelock era -> AlonzoScript era
Ledger.TimelockScript (Timelock (BabbageEra StandardCrypto)
 -> Maybe (AlonzoScript (BabbageEra StandardCrypto)))
-> Timelock (BabbageEra StandardCrypto)
-> Maybe (AlonzoScript (BabbageEra StandardCrypto))
forall a b. (a -> b) -> a -> b
$ Timelock (ConwayEra StandardCrypto)
-> Timelock (BabbageEra StandardCrypto)
forall era1 era2.
(Era era1, Era era2, EraCrypto era1 ~ EraCrypto era2) =>
Timelock era1 -> Timelock era2
translateTimelock Timelock (ConwayEra StandardCrypto)
ts
    Ledger.PlutusScript PlutusScript (ConwayEra StandardCrypto)
ps -> case PlutusScript (ConwayEra StandardCrypto)
ps of
      ConwayPlutusV1 Plutus 'PlutusV1
p1 -> AlonzoScript (BabbageEra StandardCrypto)
-> Maybe (AlonzoScript (BabbageEra StandardCrypto))
forall a. a -> Maybe a
Just (AlonzoScript (BabbageEra StandardCrypto)
 -> Maybe (AlonzoScript (BabbageEra StandardCrypto)))
-> (PlutusScript (BabbageEra StandardCrypto)
    -> AlonzoScript (BabbageEra StandardCrypto))
-> PlutusScript (BabbageEra StandardCrypto)
-> Maybe (AlonzoScript (BabbageEra StandardCrypto))
forall b c a. (b -> c) -> (a -> b) -> a -> c
. PlutusScript (BabbageEra StandardCrypto)
-> AlonzoScript (BabbageEra StandardCrypto)
forall era. PlutusScript era -> AlonzoScript era
Ledger.PlutusScript (PlutusScript (BabbageEra StandardCrypto)
 -> Maybe (AlonzoScript (BabbageEra StandardCrypto)))
-> PlutusScript (BabbageEra StandardCrypto)
-> Maybe (AlonzoScript (BabbageEra StandardCrypto))
forall a b. (a -> b) -> a -> b
$ Plutus 'PlutusV1 -> PlutusScript (BabbageEra StandardCrypto)
forall c. Plutus 'PlutusV1 -> PlutusScript (BabbageEra c)
BabbagePlutusV1 Plutus 'PlutusV1
p1
      ConwayPlutusV2 Plutus 'PlutusV2
p2 -> AlonzoScript (BabbageEra StandardCrypto)
-> Maybe (AlonzoScript (BabbageEra StandardCrypto))
forall a. a -> Maybe a
Just (AlonzoScript (BabbageEra StandardCrypto)
 -> Maybe (AlonzoScript (BabbageEra StandardCrypto)))
-> (PlutusScript (BabbageEra StandardCrypto)
    -> AlonzoScript (BabbageEra StandardCrypto))
-> PlutusScript (BabbageEra StandardCrypto)
-> Maybe (AlonzoScript (BabbageEra StandardCrypto))
forall b c a. (b -> c) -> (a -> b) -> a -> c
. PlutusScript (BabbageEra StandardCrypto)
-> AlonzoScript (BabbageEra StandardCrypto)
forall era. PlutusScript era -> AlonzoScript era
Ledger.PlutusScript (PlutusScript (BabbageEra StandardCrypto)
 -> Maybe (AlonzoScript (BabbageEra StandardCrypto)))
-> PlutusScript (BabbageEra StandardCrypto)
-> Maybe (AlonzoScript (BabbageEra StandardCrypto))
forall a b. (a -> b) -> a -> b
$ Plutus 'PlutusV2 -> PlutusScript (BabbageEra StandardCrypto)
forall c. Plutus 'PlutusV2 -> PlutusScript (BabbageEra c)
BabbagePlutusV2 Plutus 'PlutusV2
p2
      ConwayPlutusV3{} -> Maybe (AlonzoScript (BabbageEra StandardCrypto))
forall a. Maybe a
Nothing

  translateRdmrs ::
    Ledger.Redeemers (Ledger.ConwayEra StandardCrypto) ->
    Ledger.Redeemers (Ledger.BabbageEra StandardCrypto)
  translateRdmrs :: Redeemers (ConwayEra StandardCrypto)
-> Redeemers (BabbageEra StandardCrypto)
translateRdmrs (Ledger.Redeemers Map
  (PlutusPurpose AsIndex (ConwayEra StandardCrypto))
  (Data (ConwayEra StandardCrypto), ExUnits)
redeemerMap) =
    Map
  (PlutusPurpose AsIndex (BabbageEra StandardCrypto))
  (Data (BabbageEra StandardCrypto), ExUnits)
-> Redeemers (BabbageEra StandardCrypto)
Map
  (AlonzoPlutusPurpose AsIndex (BabbageEra StandardCrypto))
  (Data (BabbageEra StandardCrypto), ExUnits)
-> Redeemers (BabbageEra StandardCrypto)
forall era.
AlonzoEraScript era =>
Map (PlutusPurpose AsIndex era) (Data era, ExUnits)
-> Redeemers era
Ledger.Redeemers
      (Map
   (AlonzoPlutusPurpose AsIndex (BabbageEra StandardCrypto))
   (Data (BabbageEra StandardCrypto), ExUnits)
 -> Redeemers (BabbageEra StandardCrypto))
-> ([(AlonzoPlutusPurpose AsIndex (BabbageEra StandardCrypto),
      (Data (BabbageEra StandardCrypto), ExUnits))]
    -> Map
         (AlonzoPlutusPurpose AsIndex (BabbageEra StandardCrypto))
         (Data (BabbageEra StandardCrypto), ExUnits))
-> [(AlonzoPlutusPurpose AsIndex (BabbageEra StandardCrypto),
     (Data (BabbageEra StandardCrypto), ExUnits))]
-> Redeemers (BabbageEra StandardCrypto)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. [(AlonzoPlutusPurpose AsIndex (BabbageEra StandardCrypto),
  (Data (BabbageEra StandardCrypto), ExUnits))]
-> Map
     (AlonzoPlutusPurpose AsIndex (BabbageEra StandardCrypto))
     (Data (BabbageEra StandardCrypto), ExUnits)
forall k a. Ord k => [(k, a)] -> Map k a
Map.fromList
      ([(AlonzoPlutusPurpose AsIndex (BabbageEra StandardCrypto),
   (Data (BabbageEra StandardCrypto), ExUnits))]
 -> Redeemers (BabbageEra StandardCrypto))
-> [(AlonzoPlutusPurpose AsIndex (BabbageEra StandardCrypto),
     (Data (BabbageEra StandardCrypto), ExUnits))]
-> Redeemers (BabbageEra StandardCrypto)
forall a b. (a -> b) -> a -> b
$ ((ConwayPlutusPurpose AsIndex (ConwayEra StandardCrypto),
  (Data (ConwayEra StandardCrypto), ExUnits))
 -> Maybe
      (AlonzoPlutusPurpose AsIndex (BabbageEra StandardCrypto),
       (Data (BabbageEra StandardCrypto), ExUnits)))
-> [(ConwayPlutusPurpose AsIndex (ConwayEra StandardCrypto),
     (Data (ConwayEra StandardCrypto), ExUnits))]
-> [(AlonzoPlutusPurpose AsIndex (BabbageEra StandardCrypto),
     (Data (BabbageEra StandardCrypto), ExUnits))]
forall a b. (a -> Maybe b) -> [a] -> [b]
mapMaybe
        ( \(ConwayPlutusPurpose AsIndex (ConwayEra StandardCrypto)
purpose, (Data (ConwayEra StandardCrypto)
dat, ExUnits
units)) -> do
            AlonzoPlutusPurpose AsIndex (BabbageEra StandardCrypto)
p' <- ConwayPlutusPurpose AsIndex (ConwayEra StandardCrypto)
-> Maybe (AlonzoPlutusPurpose AsIndex (BabbageEra StandardCrypto))
translatePlutusPurpose ConwayPlutusPurpose AsIndex (ConwayEra StandardCrypto)
purpose
            (AlonzoPlutusPurpose AsIndex (BabbageEra StandardCrypto),
 (Data (BabbageEra StandardCrypto), ExUnits))
-> Maybe
     (AlonzoPlutusPurpose AsIndex (BabbageEra StandardCrypto),
      (Data (BabbageEra StandardCrypto), ExUnits))
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (AlonzoPlutusPurpose AsIndex (BabbageEra StandardCrypto)
p', (Data (ConwayEra StandardCrypto) -> Data (BabbageEra StandardCrypto)
forall era1 era2. (Era era1, Era era2) => Data era1 -> Data era2
upgradeData Data (ConwayEra StandardCrypto)
dat, ExUnits
units))
        )
      ([(ConwayPlutusPurpose AsIndex (ConwayEra StandardCrypto),
   (Data (ConwayEra StandardCrypto), ExUnits))]
 -> [(AlonzoPlutusPurpose AsIndex (BabbageEra StandardCrypto),
      (Data (BabbageEra StandardCrypto), ExUnits))])
-> [(ConwayPlutusPurpose AsIndex (ConwayEra StandardCrypto),
     (Data (ConwayEra StandardCrypto), ExUnits))]
-> [(AlonzoPlutusPurpose AsIndex (BabbageEra StandardCrypto),
     (Data (BabbageEra StandardCrypto), ExUnits))]
forall a b. (a -> b) -> a -> b
$ Map
  (ConwayPlutusPurpose AsIndex (ConwayEra StandardCrypto))
  (Data (ConwayEra StandardCrypto), ExUnits)
-> [(ConwayPlutusPurpose AsIndex (ConwayEra StandardCrypto),
     (Data (ConwayEra StandardCrypto), ExUnits))]
forall k a. Map k a -> [(k, a)]
Map.toList Map
  (PlutusPurpose AsIndex (ConwayEra StandardCrypto))
  (Data (ConwayEra StandardCrypto), ExUnits)
Map
  (ConwayPlutusPurpose AsIndex (ConwayEra StandardCrypto))
  (Data (ConwayEra StandardCrypto), ExUnits)
redeemerMap

  translatePlutusPurpose ::
    Conway.ConwayPlutusPurpose Ledger.AsIndex (Ledger.ConwayEra StandardCrypto) ->
    Maybe (Ledger.AlonzoPlutusPurpose Ledger.AsIndex (Ledger.BabbageEra StandardCrypto))
  translatePlutusPurpose :: ConwayPlutusPurpose AsIndex (ConwayEra StandardCrypto)
-> Maybe (AlonzoPlutusPurpose AsIndex (BabbageEra StandardCrypto))
translatePlutusPurpose = \case
    ConwaySpending (AsIndex Word32
ix) -> AlonzoPlutusPurpose AsIndex (BabbageEra StandardCrypto)
-> Maybe (AlonzoPlutusPurpose AsIndex (BabbageEra StandardCrypto))
forall a. a -> Maybe a
Just (AlonzoPlutusPurpose AsIndex (BabbageEra StandardCrypto)
 -> Maybe (AlonzoPlutusPurpose AsIndex (BabbageEra StandardCrypto)))
-> AlonzoPlutusPurpose AsIndex (BabbageEra StandardCrypto)
-> Maybe (AlonzoPlutusPurpose AsIndex (BabbageEra StandardCrypto))
forall a b. (a -> b) -> a -> b
$ AsIndex Word32 (TxIn (EraCrypto (BabbageEra StandardCrypto)))
-> AlonzoPlutusPurpose AsIndex (BabbageEra StandardCrypto)
forall (f :: * -> * -> *) era.
f Word32 (TxIn (EraCrypto era)) -> AlonzoPlutusPurpose f era
AlonzoSpending (Word32 -> AsIndex Word32 (TxIn StandardCrypto)
forall ix it. ix -> AsIndex ix it
AsIndex Word32
ix)
    ConwayMinting (AsIndex Word32
ix) -> AlonzoPlutusPurpose AsIndex (BabbageEra StandardCrypto)
-> Maybe (AlonzoPlutusPurpose AsIndex (BabbageEra StandardCrypto))
forall a. a -> Maybe a
Just (AlonzoPlutusPurpose AsIndex (BabbageEra StandardCrypto)
 -> Maybe (AlonzoPlutusPurpose AsIndex (BabbageEra StandardCrypto)))
-> AlonzoPlutusPurpose AsIndex (BabbageEra StandardCrypto)
-> Maybe (AlonzoPlutusPurpose AsIndex (BabbageEra StandardCrypto))
forall a b. (a -> b) -> a -> b
$ AsIndex Word32 (PolicyID (EraCrypto (BabbageEra StandardCrypto)))
-> AlonzoPlutusPurpose AsIndex (BabbageEra StandardCrypto)
forall (f :: * -> * -> *) era.
f Word32 (PolicyID (EraCrypto era)) -> AlonzoPlutusPurpose f era
AlonzoMinting (Word32 -> AsIndex Word32 (PolicyID StandardCrypto)
forall ix it. ix -> AsIndex ix it
AsIndex Word32
ix)
    ConwayCertifying (AsIndex Word32
ix) -> AlonzoPlutusPurpose AsIndex (BabbageEra StandardCrypto)
-> Maybe (AlonzoPlutusPurpose AsIndex (BabbageEra StandardCrypto))
forall a. a -> Maybe a
Just (AlonzoPlutusPurpose AsIndex (BabbageEra StandardCrypto)
 -> Maybe (AlonzoPlutusPurpose AsIndex (BabbageEra StandardCrypto)))
-> AlonzoPlutusPurpose AsIndex (BabbageEra StandardCrypto)
-> Maybe (AlonzoPlutusPurpose AsIndex (BabbageEra StandardCrypto))
forall a b. (a -> b) -> a -> b
$ AsIndex Word32 (TxCert (BabbageEra StandardCrypto))
-> AlonzoPlutusPurpose AsIndex (BabbageEra StandardCrypto)
forall (f :: * -> * -> *) era.
f Word32 (TxCert era) -> AlonzoPlutusPurpose f era
AlonzoCertifying (Word32
-> AsIndex Word32 (ShelleyTxCert (BabbageEra StandardCrypto))
forall ix it. ix -> AsIndex ix it
AsIndex Word32
ix)
    ConwayRewarding (AsIndex Word32
ix) -> AlonzoPlutusPurpose AsIndex (BabbageEra StandardCrypto)
-> Maybe (AlonzoPlutusPurpose AsIndex (BabbageEra StandardCrypto))
forall a. a -> Maybe a
Just (AlonzoPlutusPurpose AsIndex (BabbageEra StandardCrypto)
 -> Maybe (AlonzoPlutusPurpose AsIndex (BabbageEra StandardCrypto)))
-> AlonzoPlutusPurpose AsIndex (BabbageEra StandardCrypto)
-> Maybe (AlonzoPlutusPurpose AsIndex (BabbageEra StandardCrypto))
forall a b. (a -> b) -> a -> b
$ AsIndex Word32 (RewardAcnt (EraCrypto (BabbageEra StandardCrypto)))
-> AlonzoPlutusPurpose AsIndex (BabbageEra StandardCrypto)
forall (f :: * -> * -> *) era.
f Word32 (RewardAcnt (EraCrypto era)) -> AlonzoPlutusPurpose f era
AlonzoRewarding (Word32 -> AsIndex Word32 (RewardAcnt StandardCrypto)
forall ix it. ix -> AsIndex ix it
AsIndex Word32
ix)
    ConwayVoting{} -> Maybe (AlonzoPlutusPurpose AsIndex (BabbageEra StandardCrypto))
forall a. Maybe a
Nothing
    ConwayProposing{} -> Maybe (AlonzoPlutusPurpose AsIndex (BabbageEra StandardCrypto))
forall a. Maybe a
Nothing

-- | Sign transaction using the provided secret key
-- It only works for tx not containing scripts.
-- You can't sign a script utxo with this.
signTx ::
  IsShelleyBasedEra era =>
  SigningKey PaymentKey ->
  Tx era ->
  Tx era
signTx :: forall era.
IsShelleyBasedEra era =>
SigningKey PaymentKey -> Tx era -> Tx era
signTx SigningKey PaymentKey
signingKey (Tx TxBody era
body [KeyWitness era]
wits) =
  [KeyWitness era] -> TxBody era -> Tx era
forall era. [KeyWitness era] -> TxBody era -> Tx era
makeSignedTransaction (KeyWitness era
witness KeyWitness era -> [KeyWitness era] -> [KeyWitness era]
forall a. a -> [a] -> [a]
: [KeyWitness era]
wits) TxBody era
body
 where
  witness :: KeyWitness era
witness = ShelleyBasedEra era
-> TxBody era -> ShelleyWitnessSigningKey -> KeyWitness era
forall era.
ShelleyBasedEra era
-> TxBody era -> ShelleyWitnessSigningKey -> KeyWitness era
makeShelleyKeyWitness ShelleyBasedEra era
forall era. IsShelleyBasedEra era => ShelleyBasedEra era
shelleyBasedEra TxBody era
body (SigningKey PaymentKey -> ShelleyWitnessSigningKey
WitnessPaymentKey SigningKey PaymentKey
signingKey)

-- | Get the UTxO that are produced by some transaction.
-- XXX: Defined here to avoid cyclic module dependency
utxoProducedByTx :: Tx Era -> UTxO
utxoProducedByTx :: Tx Era -> UTxO
utxoProducedByTx Tx Era
tx =
  [(TxIn, TxOut CtxUTxO Era)] -> UTxO
forall out. [(TxIn, out)] -> UTxO' out
UTxO.fromPairs ([(TxIn, TxOut CtxUTxO Era)] -> UTxO)
-> [(TxIn, TxOut CtxUTxO Era)] -> UTxO
forall a b. (a -> b) -> a -> b
$
    [Word] -> [TxOut CtxTx Era] -> [(Word, TxOut CtxTx Era)]
forall a b. [a] -> [b] -> [(a, b)]
zip [Word
0 ..] (TxBodyContent ViewTx Era -> [TxOut CtxTx Era]
forall build era. TxBodyContent build era -> [TxOut CtxTx era]
txOuts TxBodyContent ViewTx Era
body)
      [(Word, TxOut CtxTx Era)]
-> ((Word, TxOut CtxTx Era) -> (TxIn, TxOut CtxUTxO Era))
-> [(TxIn, TxOut CtxUTxO Era)]
forall (f :: * -> *) a b. Functor f => f a -> (a -> b) -> f b
<&> (Word -> TxIn)
-> (TxOut CtxTx Era -> TxOut CtxUTxO Era)
-> (Word, TxOut CtxTx Era)
-> (TxIn, TxOut CtxUTxO Era)
forall a b c d. (a -> b) -> (c -> d) -> (a, c) -> (b, d)
forall (p :: * -> * -> *) a b c d.
Bifunctor p =>
(a -> b) -> (c -> d) -> p a c -> p b d
bimap (Tx Era -> Word -> TxIn
forall era. Tx era -> Word -> TxIn
mkTxIn Tx Era
tx) TxOut CtxTx Era -> TxOut CtxUTxO Era
forall era. TxOut CtxTx era -> TxOut CtxUTxO era
toCtxUTxOTxOut
 where
  TxBody TxBodyContent ViewTx Era
body = Tx Era -> TxBody Era
forall era. Tx era -> TxBody era
getTxBody Tx Era
tx

-- | Get explicit fees allocated to a transaction.
txFee' :: Tx era -> Coin
txFee' :: forall era. Tx era -> Coin
txFee' (Tx era -> TxBody era
forall era. Tx era -> TxBody era
getTxBody -> TxBody TxBodyContent ViewTx era
body) =
  case TxBodyContent ViewTx era -> TxFee era
forall build era. TxBodyContent build era -> TxFee era
txFee TxBodyContent ViewTx era
body of
    TxFeeExplicit ShelleyBasedEra era
_ Coin
y -> Coin
y

-- * Type Conversions

-- | Convert a cardano-api 'Tx' into a matching cardano-ledger 'Tx'.
toLedgerTx ::
  forall era.
  ( Ledger.EraCrypto (ShelleyLedgerEra era) ~ StandardCrypto
  , Ledger.AlonzoEraTx (ShelleyLedgerEra era)
  ) =>
  Tx era ->
  Ledger.Tx (ShelleyLedgerEra era)
toLedgerTx :: forall era.
(EraCrypto (ShelleyLedgerEra era) ~ StandardCrypto,
 AlonzoEraTx (ShelleyLedgerEra era)) =>
Tx era -> Tx (ShelleyLedgerEra era)
toLedgerTx = \case
  Tx (ShelleyTxBody ShelleyBasedEra era
_era TxBody (ShelleyLedgerEra era)
body [Script (ShelleyLedgerEra era)]
scripts TxBodyScriptData era
scriptsData Maybe (TxAuxData (ShelleyLedgerEra era))
auxData TxScriptValidity era
validity) [KeyWitness era]
vkWits ->
    let (TxDats (ShelleyLedgerEra era)
datums, Redeemers (ShelleyLedgerEra era)
redeemers) =
          case TxBodyScriptData era
scriptsData of
            TxBodyScriptData AlonzoEraOnwards era
_ TxDats (ShelleyLedgerEra era)
ds Redeemers (ShelleyLedgerEra era)
rs -> (TxDats (ShelleyLedgerEra era)
ds, Redeemers (ShelleyLedgerEra era)
rs)
            TxBodyScriptData era
TxBodyNoScriptData -> (TxDats (ShelleyLedgerEra era)
forall a. Monoid a => a
mempty, Map
  (PlutusPurpose AsIndex (ShelleyLedgerEra era))
  (Data (ShelleyLedgerEra era), ExUnits)
-> Redeemers (ShelleyLedgerEra era)
forall era.
AlonzoEraScript era =>
Map (PlutusPurpose AsIndex era) (Data era, ExUnits)
-> Redeemers era
Ledger.Redeemers Map
  (PlutusPurpose AsIndex (ShelleyLedgerEra era))
  (Data (ShelleyLedgerEra era), ExUnits)
forall a. Monoid a => a
mempty)
        wits :: TxWits (ShelleyLedgerEra era)
wits =
          TxWits (ShelleyLedgerEra era)
forall era. EraTxWits era => TxWits era
mkBasicTxWits
            TxWits (ShelleyLedgerEra era)
-> (TxWits (ShelleyLedgerEra era) -> TxWits (ShelleyLedgerEra era))
-> TxWits (ShelleyLedgerEra era)
forall a b. a -> (a -> b) -> b
& (Set (WitVKey 'Witness (EraCrypto (ShelleyLedgerEra era)))
 -> Identity
      (Set (WitVKey 'Witness (EraCrypto (ShelleyLedgerEra era)))))
-> TxWits (ShelleyLedgerEra era)
-> Identity (TxWits (ShelleyLedgerEra era))
(Set (WitVKey 'Witness (EraCrypto (ShelleyLedgerEra era)))
 -> Identity (Set (WitVKey 'Witness StandardCrypto)))
-> TxWits (ShelleyLedgerEra era)
-> Identity (TxWits (ShelleyLedgerEra era))
forall era.
EraTxWits era =>
Lens' (TxWits era) (Set (WitVKey 'Witness (EraCrypto era)))
Lens'
  (TxWits (ShelleyLedgerEra era))
  (Set (WitVKey 'Witness (EraCrypto (ShelleyLedgerEra era))))
addrTxWitsL ((Set (WitVKey 'Witness (EraCrypto (ShelleyLedgerEra era)))
  -> Identity (Set (WitVKey 'Witness StandardCrypto)))
 -> TxWits (ShelleyLedgerEra era)
 -> Identity (TxWits (ShelleyLedgerEra era)))
-> Set (WitVKey 'Witness StandardCrypto)
-> TxWits (ShelleyLedgerEra era)
-> TxWits (ShelleyLedgerEra era)
forall s t a b. ASetter s t a b -> b -> s -> t
.~ [KeyWitness era] -> Set (WitVKey 'Witness StandardCrypto)
forall era.
[KeyWitness era] -> Set (WitVKey 'Witness StandardCrypto)
toLedgerKeyWitness [KeyWitness era]
vkWits
            TxWits (ShelleyLedgerEra era)
-> (TxWits (ShelleyLedgerEra era) -> TxWits (ShelleyLedgerEra era))
-> TxWits (ShelleyLedgerEra era)
forall a b. a -> (a -> b) -> b
& (Set (BootstrapWitness (EraCrypto (ShelleyLedgerEra era)))
 -> Identity
      (Set (BootstrapWitness (EraCrypto (ShelleyLedgerEra era)))))
-> TxWits (ShelleyLedgerEra era)
-> Identity (TxWits (ShelleyLedgerEra era))
(Set (BootstrapWitness (EraCrypto (ShelleyLedgerEra era)))
 -> Identity (Set (BootstrapWitness StandardCrypto)))
-> TxWits (ShelleyLedgerEra era)
-> Identity (TxWits (ShelleyLedgerEra era))
forall era.
EraTxWits era =>
Lens' (TxWits era) (Set (BootstrapWitness (EraCrypto era)))
Lens'
  (TxWits (ShelleyLedgerEra era))
  (Set (BootstrapWitness (EraCrypto (ShelleyLedgerEra era))))
bootAddrTxWitsL ((Set (BootstrapWitness (EraCrypto (ShelleyLedgerEra era)))
  -> Identity (Set (BootstrapWitness StandardCrypto)))
 -> TxWits (ShelleyLedgerEra era)
 -> Identity (TxWits (ShelleyLedgerEra era)))
-> Set (BootstrapWitness StandardCrypto)
-> TxWits (ShelleyLedgerEra era)
-> TxWits (ShelleyLedgerEra era)
forall s t a b. ASetter s t a b -> b -> s -> t
.~ [KeyWitness era] -> Set (BootstrapWitness StandardCrypto)
forall era.
[KeyWitness era] -> Set (BootstrapWitness StandardCrypto)
toLedgerBootstrapWitness [KeyWitness era]
vkWits
            TxWits (ShelleyLedgerEra era)
-> (TxWits (ShelleyLedgerEra era) -> TxWits (ShelleyLedgerEra era))
-> TxWits (ShelleyLedgerEra era)
forall a b. a -> (a -> b) -> b
& (Map
   (ScriptHash (EraCrypto (ShelleyLedgerEra era)))
   (Script (ShelleyLedgerEra era))
 -> Identity [Script (ShelleyLedgerEra era)])
-> TxWits (ShelleyLedgerEra era)
-> Identity (TxWits (ShelleyLedgerEra era))
forall era.
EraTxWits era =>
Lens
  (TxWits era)
  (TxWits era)
  (Map (ScriptHash (EraCrypto era)) (Script era))
  [Script era]
Lens
  (TxWits (ShelleyLedgerEra era))
  (TxWits (ShelleyLedgerEra era))
  (Map
     (ScriptHash (EraCrypto (ShelleyLedgerEra era)))
     (Script (ShelleyLedgerEra era)))
  [Script (ShelleyLedgerEra era)]
hashScriptTxWitsL ((Map
    (ScriptHash (EraCrypto (ShelleyLedgerEra era)))
    (Script (ShelleyLedgerEra era))
  -> Identity [Script (ShelleyLedgerEra era)])
 -> TxWits (ShelleyLedgerEra era)
 -> Identity (TxWits (ShelleyLedgerEra era)))
-> [Script (ShelleyLedgerEra era)]
-> TxWits (ShelleyLedgerEra era)
-> TxWits (ShelleyLedgerEra era)
forall s t a b. ASetter s t a b -> b -> s -> t
.~ [Script (ShelleyLedgerEra era)]
scripts
            TxWits (ShelleyLedgerEra era)
-> (TxWits (ShelleyLedgerEra era) -> TxWits (ShelleyLedgerEra era))
-> TxWits (ShelleyLedgerEra era)
forall a b. a -> (a -> b) -> b
& (TxDats (ShelleyLedgerEra era)
 -> Identity (TxDats (ShelleyLedgerEra era)))
-> TxWits (ShelleyLedgerEra era)
-> Identity (TxWits (ShelleyLedgerEra era))
forall era. AlonzoEraTxWits era => Lens' (TxWits era) (TxDats era)
Lens'
  (TxWits (ShelleyLedgerEra era)) (TxDats (ShelleyLedgerEra era))
datsTxWitsL ((TxDats (ShelleyLedgerEra era)
  -> Identity (TxDats (ShelleyLedgerEra era)))
 -> TxWits (ShelleyLedgerEra era)
 -> Identity (TxWits (ShelleyLedgerEra era)))
-> TxDats (ShelleyLedgerEra era)
-> TxWits (ShelleyLedgerEra era)
-> TxWits (ShelleyLedgerEra era)
forall s t a b. ASetter s t a b -> b -> s -> t
.~ TxDats (ShelleyLedgerEra era)
datums
            TxWits (ShelleyLedgerEra era)
-> (TxWits (ShelleyLedgerEra era) -> TxWits (ShelleyLedgerEra era))
-> TxWits (ShelleyLedgerEra era)
forall a b. a -> (a -> b) -> b
& (Redeemers (ShelleyLedgerEra era)
 -> Identity (Redeemers (ShelleyLedgerEra era)))
-> TxWits (ShelleyLedgerEra era)
-> Identity (TxWits (ShelleyLedgerEra era))
forall era.
AlonzoEraTxWits era =>
Lens' (TxWits era) (Redeemers era)
Lens'
  (TxWits (ShelleyLedgerEra era)) (Redeemers (ShelleyLedgerEra era))
rdmrsTxWitsL ((Redeemers (ShelleyLedgerEra era)
  -> Identity (Redeemers (ShelleyLedgerEra era)))
 -> TxWits (ShelleyLedgerEra era)
 -> Identity (TxWits (ShelleyLedgerEra era)))
-> Redeemers (ShelleyLedgerEra era)
-> TxWits (ShelleyLedgerEra era)
-> TxWits (ShelleyLedgerEra era)
forall s t a b. ASetter s t a b -> b -> s -> t
.~ Redeemers (ShelleyLedgerEra era)
redeemers
     in TxBody (ShelleyLedgerEra era) -> Tx (ShelleyLedgerEra era)
forall era. EraTx era => TxBody era -> Tx era
mkBasicTx TxBody (ShelleyLedgerEra era)
body
          Tx (ShelleyLedgerEra era)
-> (Tx (ShelleyLedgerEra era) -> Tx (ShelleyLedgerEra era))
-> Tx (ShelleyLedgerEra era)
forall a b. a -> (a -> b) -> b
& (IsValid -> Identity IsValid)
-> Tx (ShelleyLedgerEra era)
-> Identity (Tx (ShelleyLedgerEra era))
forall era. AlonzoEraTx era => Lens' (Tx era) IsValid
Lens' (Tx (ShelleyLedgerEra era)) IsValid
isValidTxL ((IsValid -> Identity IsValid)
 -> Tx (ShelleyLedgerEra era)
 -> Identity (Tx (ShelleyLedgerEra era)))
-> IsValid
-> Tx (ShelleyLedgerEra era)
-> Tx (ShelleyLedgerEra era)
forall s t a b. ASetter s t a b -> b -> s -> t
.~ TxScriptValidity era -> IsValid
forall era. TxScriptValidity era -> IsValid
toLedgerScriptValidity TxScriptValidity era
validity
          Tx (ShelleyLedgerEra era)
-> (Tx (ShelleyLedgerEra era) -> Tx (ShelleyLedgerEra era))
-> Tx (ShelleyLedgerEra era)
forall a b. a -> (a -> b) -> b
& (StrictMaybe (TxAuxData (ShelleyLedgerEra era))
 -> Identity (StrictMaybe (TxAuxData (ShelleyLedgerEra era))))
-> Tx (ShelleyLedgerEra era)
-> Identity (Tx (ShelleyLedgerEra era))
forall era.
EraTx era =>
Lens' (Tx era) (StrictMaybe (AuxiliaryData era))
Lens'
  (Tx (ShelleyLedgerEra era))
  (StrictMaybe (TxAuxData (ShelleyLedgerEra era)))
auxDataTxL ((StrictMaybe (TxAuxData (ShelleyLedgerEra era))
  -> Identity (StrictMaybe (TxAuxData (ShelleyLedgerEra era))))
 -> Tx (ShelleyLedgerEra era)
 -> Identity (Tx (ShelleyLedgerEra era)))
-> StrictMaybe (TxAuxData (ShelleyLedgerEra era))
-> Tx (ShelleyLedgerEra era)
-> Tx (ShelleyLedgerEra era)
forall s t a b. ASetter s t a b -> b -> s -> t
.~ Maybe (TxAuxData (ShelleyLedgerEra era))
-> StrictMaybe (TxAuxData (ShelleyLedgerEra era))
forall a. Maybe a -> StrictMaybe a
maybeToStrictMaybe Maybe (TxAuxData (ShelleyLedgerEra era))
auxData
          Tx (ShelleyLedgerEra era)
-> (Tx (ShelleyLedgerEra era) -> Tx (ShelleyLedgerEra era))
-> Tx (ShelleyLedgerEra era)
forall a b. a -> (a -> b) -> b
& (TxWits (ShelleyLedgerEra era)
 -> Identity (TxWits (ShelleyLedgerEra era)))
-> Tx (ShelleyLedgerEra era)
-> Identity (Tx (ShelleyLedgerEra era))
forall era. EraTx era => Lens' (Tx era) (TxWits era)
Lens' (Tx (ShelleyLedgerEra era)) (TxWits (ShelleyLedgerEra era))
witsTxL ((TxWits (ShelleyLedgerEra era)
  -> Identity (TxWits (ShelleyLedgerEra era)))
 -> Tx (ShelleyLedgerEra era)
 -> Identity (Tx (ShelleyLedgerEra era)))
-> TxWits (ShelleyLedgerEra era)
-> Tx (ShelleyLedgerEra era)
-> Tx (ShelleyLedgerEra era)
forall s t a b. ASetter s t a b -> b -> s -> t
.~ TxWits (ShelleyLedgerEra era)
wits

-- | Convert a cardano-ledger's 'Tx' in the Babbage era into a cardano-api 'Tx'.
fromLedgerTx :: Ledger.Tx (ShelleyLedgerEra Era) -> Tx Era
fromLedgerTx :: Tx (ShelleyLedgerEra Era) -> Tx Era
fromLedgerTx Tx (ShelleyLedgerEra Era)
ledgerTx =
  TxBody Era -> [KeyWitness Era] -> Tx Era
forall era. TxBody era -> [KeyWitness era] -> Tx era
Tx
    (ShelleyBasedEra Era
-> TxBody (ShelleyLedgerEra Era)
-> [Script (ShelleyLedgerEra Era)]
-> TxBodyScriptData Era
-> Maybe (TxAuxData (ShelleyLedgerEra Era))
-> TxScriptValidity Era
-> TxBody Era
forall era.
ShelleyBasedEra era
-> TxBody (ShelleyLedgerEra era)
-> [Script (ShelleyLedgerEra era)]
-> TxBodyScriptData era
-> Maybe (TxAuxData (ShelleyLedgerEra era))
-> TxScriptValidity era
-> TxBody era
ShelleyTxBody ShelleyBasedEra Era
forall era. IsShelleyBasedEra era => ShelleyBasedEra era
shelleyBasedEra TxBody (ShelleyLedgerEra Era)
TxBody (BabbageEra StandardCrypto)
body [Script (ShelleyLedgerEra Era)]
[Script (BabbageEra StandardCrypto)]
scripts TxBodyScriptData Era
scriptsData (StrictMaybe (AlonzoTxAuxData (BabbageEra StandardCrypto))
-> Maybe (AlonzoTxAuxData (BabbageEra StandardCrypto))
forall a. StrictMaybe a -> Maybe a
strictMaybeToMaybe StrictMaybe (AlonzoTxAuxData (BabbageEra StandardCrypto))
StrictMaybe (TxAuxData (BabbageEra StandardCrypto))
auxData) TxScriptValidity Era
validity)
    (AlonzoTxWits (ShelleyLedgerEra Era) -> [KeyWitness Era]
forall era.
(IsShelleyBasedEra era, UsesStandardCrypto era,
 Era (ShelleyLedgerEra era)) =>
AlonzoTxWits (ShelleyLedgerEra era) -> [KeyWitness era]
fromLedgerTxWitness AlonzoTxWits (ShelleyLedgerEra Era)
TxWits (BabbageEra StandardCrypto)
wits)
 where
  -- XXX: The suggested way (by the ledger team) forward is to use lenses to
  -- introspect ledger transactions.
  Ledger.AlonzoTx TxBody (BabbageEra StandardCrypto)
body TxWits (BabbageEra StandardCrypto)
wits IsValid
isValid StrictMaybe (TxAuxData (BabbageEra StandardCrypto))
auxData = Tx (ShelleyLedgerEra Era)
ledgerTx

  scripts :: [Script (BabbageEra StandardCrypto)]
scripts =
    Map
  (ScriptHash (EraCrypto (BabbageEra StandardCrypto)))
  (Script (BabbageEra StandardCrypto))
-> [Script (BabbageEra StandardCrypto)]
forall k a. Map k a -> [a]
Map.elems (Map
   (ScriptHash (EraCrypto (BabbageEra StandardCrypto)))
   (Script (BabbageEra StandardCrypto))
 -> [Script (BabbageEra StandardCrypto)])
-> Map
     (ScriptHash (EraCrypto (BabbageEra StandardCrypto)))
     (Script (BabbageEra StandardCrypto))
-> [Script (BabbageEra StandardCrypto)]
forall a b. (a -> b) -> a -> b
$ AlonzoTxWits (BabbageEra StandardCrypto)
-> Map
     (ScriptHash (EraCrypto (BabbageEra StandardCrypto)))
     (Script (BabbageEra StandardCrypto))
forall era.
Era era =>
AlonzoTxWits era -> Map (ScriptHash (EraCrypto era)) (Script era)
Ledger.txscripts' AlonzoTxWits (BabbageEra StandardCrypto)
TxWits (BabbageEra StandardCrypto)
wits

  scriptsData :: TxBodyScriptData Era
  scriptsData :: TxBodyScriptData Era
scriptsData =
    AlonzoEraOnwards Era
-> TxDats (ShelleyLedgerEra Era)
-> Redeemers (ShelleyLedgerEra Era)
-> TxBodyScriptData Era
forall era.
AlonzoEraOnwardsConstraints era =>
AlonzoEraOnwards era
-> TxDats (ShelleyLedgerEra era)
-> Redeemers (ShelleyLedgerEra era)
-> TxBodyScriptData era
TxBodyScriptData
      AlonzoEraOnwards Era
forall era. IsAlonzoEraOnwards era => AlonzoEraOnwards era
alonzoEraOnwards
      (AlonzoTxWits (BabbageEra StandardCrypto)
-> TxDats (BabbageEra StandardCrypto)
forall era. Era era => AlonzoTxWits era -> TxDats era
Ledger.txdats' AlonzoTxWits (BabbageEra StandardCrypto)
TxWits (BabbageEra StandardCrypto)
wits)
      (AlonzoTxWits (BabbageEra StandardCrypto)
-> Redeemers (BabbageEra StandardCrypto)
forall era. Era era => AlonzoTxWits era -> Redeemers era
Ledger.txrdmrs' AlonzoTxWits (BabbageEra StandardCrypto)
TxWits (BabbageEra StandardCrypto)
wits)

  validity :: TxScriptValidity Era
validity = case IsValid
isValid of
    Ledger.IsValid Bool
True ->
      AlonzoEraOnwards Era -> ScriptValidity -> TxScriptValidity Era
forall era.
AlonzoEraOnwards era -> ScriptValidity -> TxScriptValidity era
TxScriptValidity AlonzoEraOnwards Era
forall era. IsAlonzoEraOnwards era => AlonzoEraOnwards era
alonzoEraOnwards ScriptValidity
ScriptValid
    Ledger.IsValid Bool
False ->
      AlonzoEraOnwards Era -> ScriptValidity -> TxScriptValidity Era
forall era.
AlonzoEraOnwards era -> ScriptValidity -> TxScriptValidity era
TxScriptValidity AlonzoEraOnwards Era
forall era. IsAlonzoEraOnwards era => AlonzoEraOnwards era
alonzoEraOnwards ScriptValidity
ScriptInvalid