{-# LANGUAGE DataKinds #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE LambdaCase #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE TypeFamilies #-}
{-# OPTIONS_GHC -Wno-orphans #-}
module Cardano.Ledger.Dijkstra.TxInfo () where
import Cardano.Ledger.Alonzo.Plutus.Context (
EraPlutusContext (..),
EraPlutusTxInfo (..),
LedgerTxInfo (..),
PlutusTxInfo,
SupportedLanguage (..),
toPlutusWithContext,
)
import qualified Cardano.Ledger.Alonzo.Plutus.TxInfo as Alonzo
import Cardano.Ledger.Alonzo.Scripts (toAsItem)
import qualified Cardano.Ledger.Babbage.TxInfo as Babbage
import Cardano.Ledger.BaseTypes (strictMaybe)
import Cardano.Ledger.Coin (Coin (..))
import Cardano.Ledger.Conway.Scripts (PlutusScript (..))
import Cardano.Ledger.Conway.TxInfo (
ConwayContextError (..),
ConwayEraPlutusTxInfo (..),
guardConwayFeaturesForPlutusV1V2,
toPlutusV3Args,
transMintValue,
transPlutusPurposeV1V2,
transProposal,
transScriptPurpose,
transTxBodyId,
transTxBodyWithdrawals,
transTxCert,
transTxCertV1V2,
transTxInInfoV1,
transTxInInfoV3,
transTxOutV1,
transVotingProcedures,
)
import Cardano.Ledger.Dijkstra.Core
import Cardano.Ledger.Dijkstra.Era (DijkstraEra)
import Cardano.Ledger.Dijkstra.Scripts (PlutusScript (..))
import Cardano.Ledger.Dijkstra.TxCert ()
import Cardano.Ledger.Dijkstra.UTxO ()
import Cardano.Ledger.Plutus (
Language (..),
SLanguage (..),
TxOutSource (..),
transCoinToLovelace,
transCoinToValue,
)
import Cardano.Ledger.Plutus.ToPlutusData (ToPlutusData (..))
import Control.Monad (zipWithM)
import Data.Foldable (Foldable (..))
import qualified Data.Foldable as F
import Data.List.NonEmpty (NonEmpty (..))
import qualified Data.Set as Set
import Lens.Micro ((^.))
import qualified PlutusLedgerApi.V1 as PV1
import qualified PlutusLedgerApi.V2 as PV2
import qualified PlutusLedgerApi.V3 as PV3
instance EraPlutusContext DijkstraEra where
type ContextError DijkstraEra = ConwayContextError DijkstraEra
data TxInfoResult DijkstraEra
= DijkstraTxInfoResult
(Either (ContextError DijkstraEra) (PlutusTxInfo 'PlutusV1))
(Either (ContextError DijkstraEra) (PlutusTxInfo 'PlutusV2))
(Either (ContextError DijkstraEra) (PlutusTxInfo 'PlutusV3))
mkSupportedLanguage :: Language -> Maybe (SupportedLanguage DijkstraEra)
mkSupportedLanguage = \case
Language
PlutusV1 -> SupportedLanguage DijkstraEra
-> Maybe (SupportedLanguage DijkstraEra)
forall a. a -> Maybe a
Just (SupportedLanguage DijkstraEra
-> Maybe (SupportedLanguage DijkstraEra))
-> SupportedLanguage DijkstraEra
-> Maybe (SupportedLanguage DijkstraEra)
forall a b. (a -> b) -> a -> b
$ SLanguage 'PlutusV1 -> SupportedLanguage DijkstraEra
forall (l :: Language) era.
EraPlutusTxInfo l era =>
SLanguage l -> SupportedLanguage era
SupportedLanguage SLanguage 'PlutusV1
SPlutusV1
Language
PlutusV2 -> SupportedLanguage DijkstraEra
-> Maybe (SupportedLanguage DijkstraEra)
forall a. a -> Maybe a
Just (SupportedLanguage DijkstraEra
-> Maybe (SupportedLanguage DijkstraEra))
-> SupportedLanguage DijkstraEra
-> Maybe (SupportedLanguage DijkstraEra)
forall a b. (a -> b) -> a -> b
$ SLanguage 'PlutusV2 -> SupportedLanguage DijkstraEra
forall (l :: Language) era.
EraPlutusTxInfo l era =>
SLanguage l -> SupportedLanguage era
SupportedLanguage SLanguage 'PlutusV2
SPlutusV2
Language
PlutusV3 -> SupportedLanguage DijkstraEra
-> Maybe (SupportedLanguage DijkstraEra)
forall a. a -> Maybe a
Just (SupportedLanguage DijkstraEra
-> Maybe (SupportedLanguage DijkstraEra))
-> SupportedLanguage DijkstraEra
-> Maybe (SupportedLanguage DijkstraEra)
forall a b. (a -> b) -> a -> b
$ SLanguage 'PlutusV3 -> SupportedLanguage DijkstraEra
forall (l :: Language) era.
EraPlutusTxInfo l era =>
SLanguage l -> SupportedLanguage era
SupportedLanguage SLanguage 'PlutusV3
SPlutusV3
mkTxInfoResult :: LedgerTxInfo DijkstraEra -> TxInfoResult DijkstraEra
mkTxInfoResult LedgerTxInfo DijkstraEra
lti =
Either (ContextError DijkstraEra) (PlutusTxInfo 'PlutusV1)
-> Either (ContextError DijkstraEra) (PlutusTxInfo 'PlutusV2)
-> Either (ContextError DijkstraEra) (PlutusTxInfo 'PlutusV3)
-> TxInfoResult DijkstraEra
DijkstraTxInfoResult
(SLanguage 'PlutusV1
-> LedgerTxInfo DijkstraEra
-> Either (ContextError DijkstraEra) (PlutusTxInfo 'PlutusV1)
forall (l :: Language) era (proxy :: Language -> *).
EraPlutusTxInfo l era =>
proxy l
-> LedgerTxInfo era -> Either (ContextError era) (PlutusTxInfo l)
forall (proxy :: Language -> *).
proxy 'PlutusV1
-> LedgerTxInfo DijkstraEra
-> Either (ContextError DijkstraEra) (PlutusTxInfo 'PlutusV1)
toPlutusTxInfo SLanguage 'PlutusV1
SPlutusV1 LedgerTxInfo DijkstraEra
lti)
(SLanguage 'PlutusV2
-> LedgerTxInfo DijkstraEra
-> Either (ContextError DijkstraEra) (PlutusTxInfo 'PlutusV2)
forall (l :: Language) era (proxy :: Language -> *).
EraPlutusTxInfo l era =>
proxy l
-> LedgerTxInfo era -> Either (ContextError era) (PlutusTxInfo l)
forall (proxy :: Language -> *).
proxy 'PlutusV2
-> LedgerTxInfo DijkstraEra
-> Either (ContextError DijkstraEra) (PlutusTxInfo 'PlutusV2)
toPlutusTxInfo SLanguage 'PlutusV2
SPlutusV2 LedgerTxInfo DijkstraEra
lti)
(SLanguage 'PlutusV3
-> LedgerTxInfo DijkstraEra
-> Either (ContextError DijkstraEra) (PlutusTxInfo 'PlutusV3)
forall (l :: Language) era (proxy :: Language -> *).
EraPlutusTxInfo l era =>
proxy l
-> LedgerTxInfo era -> Either (ContextError era) (PlutusTxInfo l)
forall (proxy :: Language -> *).
proxy 'PlutusV3
-> LedgerTxInfo DijkstraEra
-> Either (ContextError DijkstraEra) (PlutusTxInfo 'PlutusV3)
toPlutusTxInfo SLanguage 'PlutusV3
SPlutusV3 LedgerTxInfo DijkstraEra
lti)
lookupTxInfoResult :: forall (l :: Language).
EraPlutusTxInfo l DijkstraEra =>
SLanguage l
-> TxInfoResult DijkstraEra
-> Either (ContextError DijkstraEra) (PlutusTxInfo l)
lookupTxInfoResult SLanguage l
SPlutusV1 (DijkstraTxInfoResult Either (ContextError DijkstraEra) (PlutusTxInfo 'PlutusV1)
tirPlutusV1 Either (ContextError DijkstraEra) (PlutusTxInfo 'PlutusV2)
_ Either (ContextError DijkstraEra) (PlutusTxInfo 'PlutusV3)
_) = Either (ContextError DijkstraEra) (PlutusTxInfo l)
Either (ContextError DijkstraEra) (PlutusTxInfo 'PlutusV1)
tirPlutusV1
lookupTxInfoResult SLanguage l
SPlutusV2 (DijkstraTxInfoResult Either (ContextError DijkstraEra) (PlutusTxInfo 'PlutusV1)
_ Either (ContextError DijkstraEra) (PlutusTxInfo 'PlutusV2)
tirPlutusV2 Either (ContextError DijkstraEra) (PlutusTxInfo 'PlutusV3)
_) = Either (ContextError DijkstraEra) (PlutusTxInfo l)
Either (ContextError DijkstraEra) (PlutusTxInfo 'PlutusV2)
tirPlutusV2
lookupTxInfoResult SLanguage l
SPlutusV3 (DijkstraTxInfoResult Either (ContextError DijkstraEra) (PlutusTxInfo 'PlutusV1)
_ Either (ContextError DijkstraEra) (PlutusTxInfo 'PlutusV2)
_ Either (ContextError DijkstraEra) (PlutusTxInfo 'PlutusV3)
tirPlutusV3) = Either (ContextError DijkstraEra) (PlutusTxInfo l)
Either (ContextError DijkstraEra) (PlutusTxInfo 'PlutusV3)
tirPlutusV3
mkPlutusWithContext :: PlutusScript DijkstraEra
-> ScriptHash
-> PlutusPurpose AsIxItem DijkstraEra
-> LedgerTxInfo DijkstraEra
-> TxInfoResult DijkstraEra
-> (Data DijkstraEra, ExUnits)
-> CostModel
-> Either (ContextError DijkstraEra) PlutusWithContext
mkPlutusWithContext =
( \case
ConwayPlutusV1 Plutus 'PlutusV1
p -> Either (Plutus 'PlutusV1) (PlutusRunnable 'PlutusV1)
-> ScriptHash
-> PlutusPurpose AsIxItem DijkstraEra
-> LedgerTxInfo DijkstraEra
-> TxInfoResult DijkstraEra
-> (Data DijkstraEra, ExUnits)
-> CostModel
-> Either (ContextError DijkstraEra) PlutusWithContext
forall (l :: Language) era.
(EraPlutusTxInfo l era, AlonzoEraUTxO era) =>
Either (Plutus l) (PlutusRunnable l)
-> ScriptHash
-> PlutusPurpose AsIxItem era
-> LedgerTxInfo era
-> TxInfoResult era
-> (Data era, ExUnits)
-> CostModel
-> Either (ContextError era) PlutusWithContext
toPlutusWithContext (Either (Plutus 'PlutusV1) (PlutusRunnable 'PlutusV1)
-> ScriptHash
-> PlutusPurpose AsIxItem DijkstraEra
-> LedgerTxInfo DijkstraEra
-> TxInfoResult DijkstraEra
-> (Data DijkstraEra, ExUnits)
-> CostModel
-> Either (ContextError DijkstraEra) PlutusWithContext)
-> Either (Plutus 'PlutusV1) (PlutusRunnable 'PlutusV1)
-> ScriptHash
-> PlutusPurpose AsIxItem DijkstraEra
-> LedgerTxInfo DijkstraEra
-> TxInfoResult DijkstraEra
-> (Data DijkstraEra, ExUnits)
-> CostModel
-> Either (ContextError DijkstraEra) PlutusWithContext
forall a b. (a -> b) -> a -> b
$ Plutus 'PlutusV1
-> Either (Plutus 'PlutusV1) (PlutusRunnable 'PlutusV1)
forall a b. a -> Either a b
Left Plutus 'PlutusV1
p
ConwayPlutusV2 Plutus 'PlutusV2
p -> Either (Plutus 'PlutusV2) (PlutusRunnable 'PlutusV2)
-> ScriptHash
-> PlutusPurpose AsIxItem DijkstraEra
-> LedgerTxInfo DijkstraEra
-> TxInfoResult DijkstraEra
-> (Data DijkstraEra, ExUnits)
-> CostModel
-> Either (ContextError DijkstraEra) PlutusWithContext
forall (l :: Language) era.
(EraPlutusTxInfo l era, AlonzoEraUTxO era) =>
Either (Plutus l) (PlutusRunnable l)
-> ScriptHash
-> PlutusPurpose AsIxItem era
-> LedgerTxInfo era
-> TxInfoResult era
-> (Data era, ExUnits)
-> CostModel
-> Either (ContextError era) PlutusWithContext
toPlutusWithContext (Either (Plutus 'PlutusV2) (PlutusRunnable 'PlutusV2)
-> ScriptHash
-> PlutusPurpose AsIxItem DijkstraEra
-> LedgerTxInfo DijkstraEra
-> TxInfoResult DijkstraEra
-> (Data DijkstraEra, ExUnits)
-> CostModel
-> Either (ContextError DijkstraEra) PlutusWithContext)
-> Either (Plutus 'PlutusV2) (PlutusRunnable 'PlutusV2)
-> ScriptHash
-> PlutusPurpose AsIxItem DijkstraEra
-> LedgerTxInfo DijkstraEra
-> TxInfoResult DijkstraEra
-> (Data DijkstraEra, ExUnits)
-> CostModel
-> Either (ContextError DijkstraEra) PlutusWithContext
forall a b. (a -> b) -> a -> b
$ Plutus 'PlutusV2
-> Either (Plutus 'PlutusV2) (PlutusRunnable 'PlutusV2)
forall a b. a -> Either a b
Left Plutus 'PlutusV2
p
ConwayPlutusV3 Plutus 'PlutusV3
p -> Either (Plutus 'PlutusV3) (PlutusRunnable 'PlutusV3)
-> ScriptHash
-> PlutusPurpose AsIxItem DijkstraEra
-> LedgerTxInfo DijkstraEra
-> TxInfoResult DijkstraEra
-> (Data DijkstraEra, ExUnits)
-> CostModel
-> Either (ContextError DijkstraEra) PlutusWithContext
forall (l :: Language) era.
(EraPlutusTxInfo l era, AlonzoEraUTxO era) =>
Either (Plutus l) (PlutusRunnable l)
-> ScriptHash
-> PlutusPurpose AsIxItem era
-> LedgerTxInfo era
-> TxInfoResult era
-> (Data era, ExUnits)
-> CostModel
-> Either (ContextError era) PlutusWithContext
toPlutusWithContext (Either (Plutus 'PlutusV3) (PlutusRunnable 'PlutusV3)
-> ScriptHash
-> PlutusPurpose AsIxItem DijkstraEra
-> LedgerTxInfo DijkstraEra
-> TxInfoResult DijkstraEra
-> (Data DijkstraEra, ExUnits)
-> CostModel
-> Either (ContextError DijkstraEra) PlutusWithContext)
-> Either (Plutus 'PlutusV3) (PlutusRunnable 'PlutusV3)
-> ScriptHash
-> PlutusPurpose AsIxItem DijkstraEra
-> LedgerTxInfo DijkstraEra
-> TxInfoResult DijkstraEra
-> (Data DijkstraEra, ExUnits)
-> CostModel
-> Either (ContextError DijkstraEra) PlutusWithContext
forall a b. (a -> b) -> a -> b
$ Plutus 'PlutusV3
-> Either (Plutus 'PlutusV3) (PlutusRunnable 'PlutusV3)
forall a b. a -> Either a b
Left Plutus 'PlutusV3
p
)
(PlutusScript ConwayEra
-> ScriptHash
-> ConwayPlutusPurpose AsIxItem DijkstraEra
-> LedgerTxInfo DijkstraEra
-> TxInfoResult DijkstraEra
-> (Data DijkstraEra, ExUnits)
-> CostModel
-> Either (ConwayContextError DijkstraEra) PlutusWithContext)
-> (PlutusScript DijkstraEra -> PlutusScript ConwayEra)
-> PlutusScript DijkstraEra
-> ScriptHash
-> ConwayPlutusPurpose AsIxItem DijkstraEra
-> LedgerTxInfo DijkstraEra
-> TxInfoResult DijkstraEra
-> (Data DijkstraEra, ExUnits)
-> CostModel
-> Either (ConwayContextError DijkstraEra) PlutusWithContext
forall b c a. (b -> c) -> (a -> b) -> a -> c
. PlutusScript DijkstraEra -> PlutusScript ConwayEra
unDijkstraPlutusScript
instance EraPlutusTxInfo 'PlutusV1 DijkstraEra where
toPlutusTxCert :: forall (proxy :: Language -> *).
proxy 'PlutusV1
-> ProtVer
-> TxCert DijkstraEra
-> Either (ContextError DijkstraEra) (PlutusTxCert 'PlutusV1)
toPlutusTxCert proxy 'PlutusV1
_ ProtVer
_ = TxCert DijkstraEra
-> Either (ContextError DijkstraEra) (PlutusTxCert 'PlutusV1)
TxCert DijkstraEra -> Either (ContextError DijkstraEra) DCert
forall era.
(ConwayEraTxCert era,
Inject (ConwayContextError era) (ContextError era)) =>
TxCert era -> Either (ContextError era) DCert
transTxCertV1V2
toPlutusScriptPurpose :: forall (proxy :: Language -> *).
proxy 'PlutusV1
-> ProtVer
-> PlutusPurpose AsIxItem DijkstraEra
-> Either
(ContextError DijkstraEra) (PlutusScriptPurpose 'PlutusV1)
toPlutusScriptPurpose proxy 'PlutusV1
proxy ProtVer
pv = proxy 'PlutusV1
-> ProtVer
-> ConwayPlutusPurpose AsItem DijkstraEra
-> Either (ContextError DijkstraEra) ScriptPurpose
forall (l :: Language) era (proxy :: Language -> *).
(PlutusTxCert l ~ DCert,
PlutusPurpose AsItem era ~ ConwayPlutusPurpose AsItem era,
EraPlutusTxInfo l era,
Inject (ConwayContextError era) (ContextError era)) =>
proxy l
-> ProtVer
-> ConwayPlutusPurpose AsItem era
-> Either (ContextError era) ScriptPurpose
transPlutusPurposeV1V2 proxy 'PlutusV1
proxy ProtVer
pv (ConwayPlutusPurpose AsItem DijkstraEra
-> Either (ConwayContextError DijkstraEra) ScriptPurpose)
-> (ConwayPlutusPurpose AsIxItem DijkstraEra
-> ConwayPlutusPurpose AsItem DijkstraEra)
-> ConwayPlutusPurpose AsIxItem DijkstraEra
-> Either (ConwayContextError DijkstraEra) ScriptPurpose
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (forall ix it. AsIxItem ix it -> AsItem ix it)
-> PlutusPurpose AsIxItem DijkstraEra
-> PlutusPurpose AsItem DijkstraEra
forall era (g :: * -> * -> *) (f :: * -> * -> *).
AlonzoEraScript era =>
(forall ix it. g ix it -> f ix it)
-> PlutusPurpose g era -> PlutusPurpose f era
forall (g :: * -> * -> *) (f :: * -> * -> *).
(forall ix it. g ix it -> f ix it)
-> PlutusPurpose g DijkstraEra -> PlutusPurpose f DijkstraEra
hoistPlutusPurpose AsIxItem ix it -> AsItem ix it
forall ix it. AsIxItem ix it -> AsItem ix it
toAsItem
toPlutusTxInfo :: forall (proxy :: Language -> *).
proxy 'PlutusV1
-> LedgerTxInfo DijkstraEra
-> Either (ContextError DijkstraEra) (PlutusTxInfo 'PlutusV1)
toPlutusTxInfo proxy 'PlutusV1
proxy LedgerTxInfo {ProtVer
ltiProtVer :: ProtVer
ltiProtVer :: forall era. LedgerTxInfo era -> ProtVer
ltiProtVer, EpochInfo (Either Text)
ltiEpochInfo :: EpochInfo (Either Text)
ltiEpochInfo :: forall era. LedgerTxInfo era -> EpochInfo (Either Text)
ltiEpochInfo, SystemStart
ltiSystemStart :: SystemStart
ltiSystemStart :: forall era. LedgerTxInfo era -> SystemStart
ltiSystemStart, UTxO DijkstraEra
ltiUTxO :: UTxO DijkstraEra
ltiUTxO :: forall era. LedgerTxInfo era -> UTxO era
ltiUTxO, Tx DijkstraEra
ltiTx :: Tx DijkstraEra
ltiTx :: forall era. LedgerTxInfo era -> Tx era
ltiTx} = do
Tx DijkstraEra -> Either (ContextError DijkstraEra) ()
forall era.
(EraTx era, ConwayEraTxBody era,
Inject (ConwayContextError era) (ContextError era)) =>
Tx era -> Either (ContextError era) ()
guardConwayFeaturesForPlutusV1V2 Tx DijkstraEra
ltiTx
POSIXTimeRange
timeRange <-
AlonzoTx DijkstraEra
-> ProtVer
-> EpochInfo (Either Text)
-> SystemStart
-> ValidityInterval
-> Either (ConwayContextError DijkstraEra) POSIXTimeRange
forall {k} (proxy :: k -> *) (era :: k) a.
Inject (AlonzoContextError era) a =>
proxy era
-> ProtVer
-> EpochInfo (Either Text)
-> SystemStart
-> ValidityInterval
-> Either a POSIXTimeRange
Alonzo.transValidityInterval Tx DijkstraEra
AlonzoTx DijkstraEra
ltiTx ProtVer
ltiProtVer EpochInfo (Either Text)
ltiEpochInfo SystemStart
ltiSystemStart (TxBody DijkstraEra
txBody TxBody DijkstraEra
-> Getting ValidityInterval (TxBody DijkstraEra) ValidityInterval
-> ValidityInterval
forall s a. s -> Getting a s a -> a
^. Getting ValidityInterval (TxBody DijkstraEra) ValidityInterval
forall era.
AllegraEraTxBody era =>
Lens' (TxBody era) ValidityInterval
Lens' (TxBody DijkstraEra) ValidityInterval
vldtTxBodyL)
[TxInInfo]
inputs <- (TxIn -> Either (ConwayContextError DijkstraEra) TxInInfo)
-> [TxIn] -> Either (ConwayContextError DijkstraEra) [TxInInfo]
forall (t :: * -> *) (m :: * -> *) a b.
(Traversable t, Monad m) =>
(a -> m b) -> t a -> m (t b)
forall (m :: * -> *) a b. Monad m => (a -> m b) -> [a] -> m [b]
mapM (UTxO DijkstraEra
-> TxIn -> Either (ContextError DijkstraEra) TxInInfo
forall era.
(Inject (BabbageContextError era) (ContextError era),
Value era ~ MaryValue, BabbageEraTxOut era) =>
UTxO era -> TxIn -> Either (ContextError era) TxInInfo
transTxInInfoV1 UTxO DijkstraEra
ltiUTxO) (Set TxIn -> [TxIn]
forall a. Set a -> [a]
Set.toList (TxBody DijkstraEra
txBody TxBody DijkstraEra
-> Getting (Set TxIn) (TxBody DijkstraEra) (Set TxIn) -> Set TxIn
forall s a. s -> Getting a s a -> a
^. Getting (Set TxIn) (TxBody DijkstraEra) (Set TxIn)
forall era. EraTxBody era => Lens' (TxBody era) (Set TxIn)
Lens' (TxBody DijkstraEra) (Set TxIn)
inputsTxBodyL))
(TxIn -> Either (ConwayContextError DijkstraEra) TxInInfo)
-> [TxIn] -> Either (ConwayContextError DijkstraEra) ()
forall (t :: * -> *) (m :: * -> *) a b.
(Foldable t, Monad m) =>
(a -> m b) -> t a -> m ()
mapM_ (UTxO DijkstraEra
-> TxIn -> Either (ContextError DijkstraEra) TxInInfo
forall era.
(Inject (BabbageContextError era) (ContextError era),
Value era ~ MaryValue, BabbageEraTxOut era) =>
UTxO era -> TxIn -> Either (ContextError era) TxInInfo
transTxInInfoV1 UTxO DijkstraEra
ltiUTxO) (Set TxIn -> [TxIn]
forall a. Set a -> [a]
Set.toList (TxBody DijkstraEra
txBody TxBody DijkstraEra
-> Getting (Set TxIn) (TxBody DijkstraEra) (Set TxIn) -> Set TxIn
forall s a. s -> Getting a s a -> a
^. Getting (Set TxIn) (TxBody DijkstraEra) (Set TxIn)
forall era. BabbageEraTxBody era => Lens' (TxBody era) (Set TxIn)
Lens' (TxBody DijkstraEra) (Set TxIn)
referenceInputsTxBodyL))
[TxOut]
outputs <-
(TxIx
-> TxOut DijkstraEra
-> Either (ConwayContextError DijkstraEra) TxOut)
-> [TxIx]
-> [TxOut DijkstraEra]
-> Either (ConwayContextError DijkstraEra) [TxOut]
forall (m :: * -> *) a b c.
Applicative m =>
(a -> b -> m c) -> [a] -> [b] -> m [c]
zipWithM
(TxOutSource
-> TxOut DijkstraEra -> Either (ContextError DijkstraEra) TxOut
TxOutSource
-> TxOut DijkstraEra
-> Either (ConwayContextError DijkstraEra) TxOut
forall era.
(Inject (BabbageContextError era) (ContextError era),
Value era ~ MaryValue, BabbageEraTxOut era) =>
TxOutSource -> TxOut era -> Either (ContextError era) TxOut
transTxOutV1 (TxOutSource
-> TxOut DijkstraEra
-> Either (ConwayContextError DijkstraEra) TxOut)
-> (TxIx -> TxOutSource)
-> TxIx
-> TxOut DijkstraEra
-> Either (ConwayContextError DijkstraEra) TxOut
forall b c a. (b -> c) -> (a -> b) -> a -> c
. TxIx -> TxOutSource
TxOutFromOutput)
[TxIx
forall a. Bounded a => a
minBound ..]
(StrictSeq (TxOut DijkstraEra) -> [TxOut DijkstraEra]
forall a. StrictSeq a -> [a]
forall (t :: * -> *) a. Foldable t => t a -> [a]
F.toList (TxBody DijkstraEra
txBody TxBody DijkstraEra
-> Getting
(StrictSeq (TxOut DijkstraEra))
(TxBody DijkstraEra)
(StrictSeq (TxOut DijkstraEra))
-> StrictSeq (TxOut DijkstraEra)
forall s a. s -> Getting a s a -> a
^. Getting
(StrictSeq (TxOut DijkstraEra))
(TxBody DijkstraEra)
(StrictSeq (TxOut DijkstraEra))
forall era.
EraTxBody era =>
Lens' (TxBody era) (StrictSeq (TxOut era))
Lens' (TxBody DijkstraEra) (StrictSeq (TxOut DijkstraEra))
outputsTxBodyL))
[DCert]
txCerts <- proxy 'PlutusV1
-> ProtVer
-> TxBody DijkstraEra
-> Either (ContextError DijkstraEra) [PlutusTxCert 'PlutusV1]
forall (l :: Language) era (proxy :: Language -> *).
(EraPlutusTxInfo l era, EraTxBody era) =>
proxy l
-> ProtVer
-> TxBody era
-> Either (ContextError era) [PlutusTxCert l]
Alonzo.transTxBodyCerts proxy 'PlutusV1
proxy ProtVer
ltiProtVer TxBody DijkstraEra
txBody
TxInfo -> Either (ConwayContextError DijkstraEra) TxInfo
forall a. a -> Either (ConwayContextError DijkstraEra) a
forall (f :: * -> *) a. Applicative f => a -> f a
pure
PV1.TxInfo
{ txInfoInputs :: [TxInInfo]
PV1.txInfoInputs = [TxInInfo]
inputs
, txInfoOutputs :: [TxOut]
PV1.txInfoOutputs = [TxOut]
outputs
, txInfoFee :: Value
PV1.txInfoFee = Coin -> Value
transCoinToValue (TxBody DijkstraEra
txBody TxBody DijkstraEra
-> Getting Coin (TxBody DijkstraEra) Coin -> Coin
forall s a. s -> Getting a s a -> a
^. Getting Coin (TxBody DijkstraEra) Coin
forall era. EraTxBody era => Lens' (TxBody era) Coin
Lens' (TxBody DijkstraEra) Coin
feeTxBodyL)
, txInfoMint :: Value
PV1.txInfoMint = MultiAsset -> Value
Alonzo.transMintValue (TxBody DijkstraEra
txBody TxBody DijkstraEra
-> Getting MultiAsset (TxBody DijkstraEra) MultiAsset -> MultiAsset
forall s a. s -> Getting a s a -> a
^. Getting MultiAsset (TxBody DijkstraEra) MultiAsset
forall era. MaryEraTxBody era => Lens' (TxBody era) MultiAsset
Lens' (TxBody DijkstraEra) MultiAsset
mintTxBodyL)
, txInfoDCert :: [DCert]
PV1.txInfoDCert = [DCert]
txCerts
, txInfoWdrl :: [(StakingCredential, Integer)]
PV1.txInfoWdrl = TxBody DijkstraEra -> [(StakingCredential, Integer)]
forall era.
EraTxBody era =>
TxBody era -> [(StakingCredential, Integer)]
Alonzo.transTxBodyWithdrawals TxBody DijkstraEra
txBody
, txInfoValidRange :: POSIXTimeRange
PV1.txInfoValidRange = POSIXTimeRange
timeRange
, txInfoSignatories :: [PubKeyHash]
PV1.txInfoSignatories = TxBody DijkstraEra -> [PubKeyHash]
forall era. AlonzoEraTxBody era => TxBody era -> [PubKeyHash]
Alonzo.transTxBodyReqSignerHashes TxBody DijkstraEra
txBody
, txInfoData :: [(DatumHash, Datum)]
PV1.txInfoData = TxWits DijkstraEra -> [(DatumHash, Datum)]
forall era.
AlonzoEraTxWits era =>
TxWits era -> [(DatumHash, Datum)]
Alonzo.transTxWitsDatums (Tx DijkstraEra
AlonzoTx DijkstraEra
ltiTx AlonzoTx DijkstraEra
-> Getting
(TxWits DijkstraEra) (AlonzoTx DijkstraEra) (TxWits DijkstraEra)
-> TxWits DijkstraEra
forall s a. s -> Getting a s a -> a
^. (TxWits DijkstraEra
-> Const (TxWits DijkstraEra) (TxWits DijkstraEra))
-> Tx DijkstraEra -> Const (TxWits DijkstraEra) (Tx DijkstraEra)
Getting
(TxWits DijkstraEra) (AlonzoTx DijkstraEra) (TxWits DijkstraEra)
forall era. EraTx era => Lens' (Tx era) (TxWits era)
Lens' (Tx DijkstraEra) (TxWits DijkstraEra)
witsTxL)
, txInfoId :: TxId
PV1.txInfoId = TxBody DijkstraEra -> TxId
forall era. EraTxBody era => TxBody era -> TxId
Alonzo.transTxBodyId TxBody DijkstraEra
txBody
}
where
txBody :: TxBody DijkstraEra
txBody = Tx DijkstraEra
AlonzoTx DijkstraEra
ltiTx AlonzoTx DijkstraEra
-> Getting
(TxBody DijkstraEra) (AlonzoTx DijkstraEra) (TxBody DijkstraEra)
-> TxBody DijkstraEra
forall s a. s -> Getting a s a -> a
^. (TxBody DijkstraEra
-> Const (TxBody DijkstraEra) (TxBody DijkstraEra))
-> Tx DijkstraEra -> Const (TxBody DijkstraEra) (Tx DijkstraEra)
Getting
(TxBody DijkstraEra) (AlonzoTx DijkstraEra) (TxBody DijkstraEra)
forall era. EraTx era => Lens' (Tx era) (TxBody era)
Lens' (Tx DijkstraEra) (TxBody DijkstraEra)
bodyTxL
toPlutusArgs :: forall (proxy :: Language -> *).
proxy 'PlutusV1
-> ProtVer
-> PlutusTxInfo 'PlutusV1
-> PlutusPurpose AsIxItem DijkstraEra
-> Maybe (Data DijkstraEra)
-> Data DijkstraEra
-> Either (ContextError DijkstraEra) (PlutusArgs 'PlutusV1)
toPlutusArgs = proxy 'PlutusV1
-> ProtVer
-> PlutusTxInfo 'PlutusV1
-> PlutusPurpose AsIxItem DijkstraEra
-> Maybe (Data DijkstraEra)
-> Data DijkstraEra
-> Either (ContextError DijkstraEra) (PlutusArgs 'PlutusV1)
proxy 'PlutusV1
-> ProtVer
-> TxInfo
-> PlutusPurpose AsIxItem DijkstraEra
-> Maybe (Data DijkstraEra)
-> Data DijkstraEra
-> Either (ContextError DijkstraEra) (PlutusArgs 'PlutusV1)
forall era (proxy :: Language -> *).
EraPlutusTxInfo 'PlutusV1 era =>
proxy 'PlutusV1
-> ProtVer
-> TxInfo
-> PlutusPurpose AsIxItem era
-> Maybe (Data era)
-> Data era
-> Either (ContextError era) (PlutusArgs 'PlutusV1)
Alonzo.toPlutusV1Args
instance EraPlutusTxInfo 'PlutusV2 DijkstraEra where
toPlutusTxCert :: forall (proxy :: Language -> *).
proxy 'PlutusV2
-> ProtVer
-> TxCert DijkstraEra
-> Either (ContextError DijkstraEra) (PlutusTxCert 'PlutusV2)
toPlutusTxCert proxy 'PlutusV2
_ ProtVer
_ = TxCert DijkstraEra
-> Either (ContextError DijkstraEra) (PlutusTxCert 'PlutusV2)
TxCert DijkstraEra -> Either (ContextError DijkstraEra) DCert
forall era.
(ConwayEraTxCert era,
Inject (ConwayContextError era) (ContextError era)) =>
TxCert era -> Either (ContextError era) DCert
transTxCertV1V2
toPlutusScriptPurpose :: forall (proxy :: Language -> *).
proxy 'PlutusV2
-> ProtVer
-> PlutusPurpose AsIxItem DijkstraEra
-> Either
(ContextError DijkstraEra) (PlutusScriptPurpose 'PlutusV2)
toPlutusScriptPurpose proxy 'PlutusV2
proxy ProtVer
pv = proxy 'PlutusV2
-> ProtVer
-> ConwayPlutusPurpose AsItem DijkstraEra
-> Either (ContextError DijkstraEra) ScriptPurpose
forall (l :: Language) era (proxy :: Language -> *).
(PlutusTxCert l ~ DCert,
PlutusPurpose AsItem era ~ ConwayPlutusPurpose AsItem era,
EraPlutusTxInfo l era,
Inject (ConwayContextError era) (ContextError era)) =>
proxy l
-> ProtVer
-> ConwayPlutusPurpose AsItem era
-> Either (ContextError era) ScriptPurpose
transPlutusPurposeV1V2 proxy 'PlutusV2
proxy ProtVer
pv (ConwayPlutusPurpose AsItem DijkstraEra
-> Either (ConwayContextError DijkstraEra) ScriptPurpose)
-> (ConwayPlutusPurpose AsIxItem DijkstraEra
-> ConwayPlutusPurpose AsItem DijkstraEra)
-> ConwayPlutusPurpose AsIxItem DijkstraEra
-> Either (ConwayContextError DijkstraEra) ScriptPurpose
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (forall ix it. AsIxItem ix it -> AsItem ix it)
-> PlutusPurpose AsIxItem DijkstraEra
-> PlutusPurpose AsItem DijkstraEra
forall era (g :: * -> * -> *) (f :: * -> * -> *).
AlonzoEraScript era =>
(forall ix it. g ix it -> f ix it)
-> PlutusPurpose g era -> PlutusPurpose f era
forall (g :: * -> * -> *) (f :: * -> * -> *).
(forall ix it. g ix it -> f ix it)
-> PlutusPurpose g DijkstraEra -> PlutusPurpose f DijkstraEra
hoistPlutusPurpose AsIxItem ix it -> AsItem ix it
forall ix it. AsIxItem ix it -> AsItem ix it
toAsItem
toPlutusTxInfo :: forall (proxy :: Language -> *).
proxy 'PlutusV2
-> LedgerTxInfo DijkstraEra
-> Either (ContextError DijkstraEra) (PlutusTxInfo 'PlutusV2)
toPlutusTxInfo proxy 'PlutusV2
proxy LedgerTxInfo {ProtVer
ltiProtVer :: forall era. LedgerTxInfo era -> ProtVer
ltiProtVer :: ProtVer
ltiProtVer, EpochInfo (Either Text)
ltiEpochInfo :: forall era. LedgerTxInfo era -> EpochInfo (Either Text)
ltiEpochInfo :: EpochInfo (Either Text)
ltiEpochInfo, SystemStart
ltiSystemStart :: forall era. LedgerTxInfo era -> SystemStart
ltiSystemStart :: SystemStart
ltiSystemStart, UTxO DijkstraEra
ltiUTxO :: forall era. LedgerTxInfo era -> UTxO era
ltiUTxO :: UTxO DijkstraEra
ltiUTxO, Tx DijkstraEra
ltiTx :: forall era. LedgerTxInfo era -> Tx era
ltiTx :: Tx DijkstraEra
ltiTx} = do
Tx DijkstraEra -> Either (ContextError DijkstraEra) ()
forall era.
(EraTx era, ConwayEraTxBody era,
Inject (ConwayContextError era) (ContextError era)) =>
Tx era -> Either (ContextError era) ()
guardConwayFeaturesForPlutusV1V2 Tx DijkstraEra
ltiTx
POSIXTimeRange
timeRange <-
AlonzoTx DijkstraEra
-> ProtVer
-> EpochInfo (Either Text)
-> SystemStart
-> ValidityInterval
-> Either (ConwayContextError DijkstraEra) POSIXTimeRange
forall {k} (proxy :: k -> *) (era :: k) a.
Inject (AlonzoContextError era) a =>
proxy era
-> ProtVer
-> EpochInfo (Either Text)
-> SystemStart
-> ValidityInterval
-> Either a POSIXTimeRange
Alonzo.transValidityInterval Tx DijkstraEra
AlonzoTx DijkstraEra
ltiTx ProtVer
ltiProtVer EpochInfo (Either Text)
ltiEpochInfo SystemStart
ltiSystemStart (TxBody DijkstraEra
txBody TxBody DijkstraEra
-> Getting ValidityInterval (TxBody DijkstraEra) ValidityInterval
-> ValidityInterval
forall s a. s -> Getting a s a -> a
^. Getting ValidityInterval (TxBody DijkstraEra) ValidityInterval
forall era.
AllegraEraTxBody era =>
Lens' (TxBody era) ValidityInterval
Lens' (TxBody DijkstraEra) ValidityInterval
vldtTxBodyL)
[TxInInfo]
inputs <- (TxIn -> Either (ConwayContextError DijkstraEra) TxInInfo)
-> [TxIn] -> Either (ConwayContextError DijkstraEra) [TxInInfo]
forall (t :: * -> *) (m :: * -> *) a b.
(Traversable t, Monad m) =>
(a -> m b) -> t a -> m (t b)
forall (m :: * -> *) a b. Monad m => (a -> m b) -> [a] -> m [b]
mapM (UTxO DijkstraEra
-> TxIn -> Either (ContextError DijkstraEra) TxInInfo
forall era.
(Inject (BabbageContextError era) (ContextError era),
Value era ~ MaryValue, BabbageEraTxOut era) =>
UTxO era -> TxIn -> Either (ContextError era) TxInInfo
Babbage.transTxInInfoV2 UTxO DijkstraEra
ltiUTxO) (Set TxIn -> [TxIn]
forall a. Set a -> [a]
Set.toList (TxBody DijkstraEra
txBody TxBody DijkstraEra
-> Getting (Set TxIn) (TxBody DijkstraEra) (Set TxIn) -> Set TxIn
forall s a. s -> Getting a s a -> a
^. Getting (Set TxIn) (TxBody DijkstraEra) (Set TxIn)
forall era. EraTxBody era => Lens' (TxBody era) (Set TxIn)
Lens' (TxBody DijkstraEra) (Set TxIn)
inputsTxBodyL))
[TxInInfo]
refInputs <- (TxIn -> Either (ConwayContextError DijkstraEra) TxInInfo)
-> [TxIn] -> Either (ConwayContextError DijkstraEra) [TxInInfo]
forall (t :: * -> *) (m :: * -> *) a b.
(Traversable t, Monad m) =>
(a -> m b) -> t a -> m (t b)
forall (m :: * -> *) a b. Monad m => (a -> m b) -> [a] -> m [b]
mapM (UTxO DijkstraEra
-> TxIn -> Either (ContextError DijkstraEra) TxInInfo
forall era.
(Inject (BabbageContextError era) (ContextError era),
Value era ~ MaryValue, BabbageEraTxOut era) =>
UTxO era -> TxIn -> Either (ContextError era) TxInInfo
Babbage.transTxInInfoV2 UTxO DijkstraEra
ltiUTxO) (Set TxIn -> [TxIn]
forall a. Set a -> [a]
Set.toList (TxBody DijkstraEra
txBody TxBody DijkstraEra
-> Getting (Set TxIn) (TxBody DijkstraEra) (Set TxIn) -> Set TxIn
forall s a. s -> Getting a s a -> a
^. Getting (Set TxIn) (TxBody DijkstraEra) (Set TxIn)
forall era. BabbageEraTxBody era => Lens' (TxBody era) (Set TxIn)
Lens' (TxBody DijkstraEra) (Set TxIn)
referenceInputsTxBodyL))
[TxOut]
outputs <-
(TxIx
-> TxOut DijkstraEra
-> Either (ConwayContextError DijkstraEra) TxOut)
-> [TxIx]
-> [TxOut DijkstraEra]
-> Either (ConwayContextError DijkstraEra) [TxOut]
forall (m :: * -> *) a b c.
Applicative m =>
(a -> b -> m c) -> [a] -> [b] -> m [c]
zipWithM
(TxOutSource
-> TxOut DijkstraEra -> Either (ContextError DijkstraEra) TxOut
TxOutSource
-> TxOut DijkstraEra
-> Either (ConwayContextError DijkstraEra) TxOut
forall era.
(Inject (BabbageContextError era) (ContextError era),
Value era ~ MaryValue, BabbageEraTxOut era) =>
TxOutSource -> TxOut era -> Either (ContextError era) TxOut
Babbage.transTxOutV2 (TxOutSource
-> TxOut DijkstraEra
-> Either (ConwayContextError DijkstraEra) TxOut)
-> (TxIx -> TxOutSource)
-> TxIx
-> TxOut DijkstraEra
-> Either (ConwayContextError DijkstraEra) TxOut
forall b c a. (b -> c) -> (a -> b) -> a -> c
. TxIx -> TxOutSource
TxOutFromOutput)
[TxIx
forall a. Bounded a => a
minBound ..]
(StrictSeq (TxOut DijkstraEra) -> [TxOut DijkstraEra]
forall a. StrictSeq a -> [a]
forall (t :: * -> *) a. Foldable t => t a -> [a]
F.toList (TxBody DijkstraEra
txBody TxBody DijkstraEra
-> Getting
(StrictSeq (TxOut DijkstraEra))
(TxBody DijkstraEra)
(StrictSeq (TxOut DijkstraEra))
-> StrictSeq (TxOut DijkstraEra)
forall s a. s -> Getting a s a -> a
^. Getting
(StrictSeq (TxOut DijkstraEra))
(TxBody DijkstraEra)
(StrictSeq (TxOut DijkstraEra))
forall era.
EraTxBody era =>
Lens' (TxBody era) (StrictSeq (TxOut era))
Lens' (TxBody DijkstraEra) (StrictSeq (TxOut DijkstraEra))
outputsTxBodyL))
[DCert]
txCerts <- proxy 'PlutusV2
-> ProtVer
-> TxBody DijkstraEra
-> Either (ContextError DijkstraEra) [PlutusTxCert 'PlutusV2]
forall (l :: Language) era (proxy :: Language -> *).
(EraPlutusTxInfo l era, EraTxBody era) =>
proxy l
-> ProtVer
-> TxBody era
-> Either (ContextError era) [PlutusTxCert l]
Alonzo.transTxBodyCerts proxy 'PlutusV2
proxy ProtVer
ltiProtVer TxBody DijkstraEra
txBody
Map ScriptPurpose Redeemer
plutusRedeemers <- proxy 'PlutusV2
-> ProtVer
-> Tx DijkstraEra
-> Either
(ContextError DijkstraEra)
(Map (PlutusScriptPurpose 'PlutusV2) Redeemer)
forall (l :: Language) era (proxy :: Language -> *).
(EraPlutusTxInfo l era, AlonzoEraTxBody era, EraTx era,
AlonzoEraTxWits era,
Inject (BabbageContextError era) (ContextError era)) =>
proxy l
-> ProtVer
-> Tx era
-> Either (ContextError era) (Map (PlutusScriptPurpose l) Redeemer)
Babbage.transTxRedeemers proxy 'PlutusV2
proxy ProtVer
ltiProtVer Tx DijkstraEra
ltiTx
TxInfo -> Either (ConwayContextError DijkstraEra) TxInfo
forall a. a -> Either (ConwayContextError DijkstraEra) a
forall (f :: * -> *) a. Applicative f => a -> f a
pure
PV2.TxInfo
{ txInfoInputs :: [TxInInfo]
PV2.txInfoInputs = [TxInInfo]
inputs
, txInfoOutputs :: [TxOut]
PV2.txInfoOutputs = [TxOut]
outputs
, txInfoReferenceInputs :: [TxInInfo]
PV2.txInfoReferenceInputs = [TxInInfo]
refInputs
, txInfoFee :: Value
PV2.txInfoFee = Coin -> Value
transCoinToValue (TxBody DijkstraEra
txBody TxBody DijkstraEra
-> Getting Coin (TxBody DijkstraEra) Coin -> Coin
forall s a. s -> Getting a s a -> a
^. Getting Coin (TxBody DijkstraEra) Coin
forall era. EraTxBody era => Lens' (TxBody era) Coin
Lens' (TxBody DijkstraEra) Coin
feeTxBodyL)
, txInfoMint :: Value
PV2.txInfoMint = MultiAsset -> Value
Alonzo.transMintValue (TxBody DijkstraEra
txBody TxBody DijkstraEra
-> Getting MultiAsset (TxBody DijkstraEra) MultiAsset -> MultiAsset
forall s a. s -> Getting a s a -> a
^. Getting MultiAsset (TxBody DijkstraEra) MultiAsset
forall era. MaryEraTxBody era => Lens' (TxBody era) MultiAsset
Lens' (TxBody DijkstraEra) MultiAsset
mintTxBodyL)
, txInfoDCert :: [DCert]
PV2.txInfoDCert = [DCert]
txCerts
, txInfoWdrl :: Map StakingCredential Integer
PV2.txInfoWdrl = [(StakingCredential, Integer)] -> Map StakingCredential Integer
forall k v. [(k, v)] -> Map k v
PV2.unsafeFromList ([(StakingCredential, Integer)] -> Map StakingCredential Integer)
-> [(StakingCredential, Integer)] -> Map StakingCredential Integer
forall a b. (a -> b) -> a -> b
$ TxBody DijkstraEra -> [(StakingCredential, Integer)]
forall era.
EraTxBody era =>
TxBody era -> [(StakingCredential, Integer)]
Alonzo.transTxBodyWithdrawals TxBody DijkstraEra
txBody
, txInfoValidRange :: POSIXTimeRange
PV2.txInfoValidRange = POSIXTimeRange
timeRange
, txInfoSignatories :: [PubKeyHash]
PV2.txInfoSignatories = TxBody DijkstraEra -> [PubKeyHash]
forall era. AlonzoEraTxBody era => TxBody era -> [PubKeyHash]
Alonzo.transTxBodyReqSignerHashes TxBody DijkstraEra
txBody
, txInfoRedeemers :: Map ScriptPurpose Redeemer
PV2.txInfoRedeemers = Map ScriptPurpose Redeemer
plutusRedeemers
, txInfoData :: Map DatumHash Datum
PV2.txInfoData = [(DatumHash, Datum)] -> Map DatumHash Datum
forall k v. [(k, v)] -> Map k v
PV2.unsafeFromList ([(DatumHash, Datum)] -> Map DatumHash Datum)
-> [(DatumHash, Datum)] -> Map DatumHash Datum
forall a b. (a -> b) -> a -> b
$ TxWits DijkstraEra -> [(DatumHash, Datum)]
forall era.
AlonzoEraTxWits era =>
TxWits era -> [(DatumHash, Datum)]
Alonzo.transTxWitsDatums (Tx DijkstraEra
AlonzoTx DijkstraEra
ltiTx AlonzoTx DijkstraEra
-> Getting
(TxWits DijkstraEra) (AlonzoTx DijkstraEra) (TxWits DijkstraEra)
-> TxWits DijkstraEra
forall s a. s -> Getting a s a -> a
^. (TxWits DijkstraEra
-> Const (TxWits DijkstraEra) (TxWits DijkstraEra))
-> Tx DijkstraEra -> Const (TxWits DijkstraEra) (Tx DijkstraEra)
Getting
(TxWits DijkstraEra) (AlonzoTx DijkstraEra) (TxWits DijkstraEra)
forall era. EraTx era => Lens' (Tx era) (TxWits era)
Lens' (Tx DijkstraEra) (TxWits DijkstraEra)
witsTxL)
, txInfoId :: TxId
PV2.txInfoId = TxBody DijkstraEra -> TxId
forall era. EraTxBody era => TxBody era -> TxId
Alonzo.transTxBodyId TxBody DijkstraEra
txBody
}
where
txBody :: TxBody DijkstraEra
txBody = Tx DijkstraEra
AlonzoTx DijkstraEra
ltiTx AlonzoTx DijkstraEra
-> Getting
(TxBody DijkstraEra) (AlonzoTx DijkstraEra) (TxBody DijkstraEra)
-> TxBody DijkstraEra
forall s a. s -> Getting a s a -> a
^. (TxBody DijkstraEra
-> Const (TxBody DijkstraEra) (TxBody DijkstraEra))
-> Tx DijkstraEra -> Const (TxBody DijkstraEra) (Tx DijkstraEra)
Getting
(TxBody DijkstraEra) (AlonzoTx DijkstraEra) (TxBody DijkstraEra)
forall era. EraTx era => Lens' (Tx era) (TxBody era)
Lens' (Tx DijkstraEra) (TxBody DijkstraEra)
bodyTxL
toPlutusArgs :: forall (proxy :: Language -> *).
proxy 'PlutusV2
-> ProtVer
-> PlutusTxInfo 'PlutusV2
-> PlutusPurpose AsIxItem DijkstraEra
-> Maybe (Data DijkstraEra)
-> Data DijkstraEra
-> Either (ContextError DijkstraEra) (PlutusArgs 'PlutusV2)
toPlutusArgs = proxy 'PlutusV2
-> ProtVer
-> PlutusTxInfo 'PlutusV2
-> PlutusPurpose AsIxItem DijkstraEra
-> Maybe (Data DijkstraEra)
-> Data DijkstraEra
-> Either (ContextError DijkstraEra) (PlutusArgs 'PlutusV2)
proxy 'PlutusV2
-> ProtVer
-> TxInfo
-> PlutusPurpose AsIxItem DijkstraEra
-> Maybe (Data DijkstraEra)
-> Data DijkstraEra
-> Either (ContextError DijkstraEra) (PlutusArgs 'PlutusV2)
forall era (proxy :: Language -> *).
EraPlutusTxInfo 'PlutusV2 era =>
proxy 'PlutusV2
-> ProtVer
-> TxInfo
-> PlutusPurpose AsIxItem era
-> Maybe (Data era)
-> Data era
-> Either (ContextError era) (PlutusArgs 'PlutusV2)
Babbage.toPlutusV2Args
instance EraPlutusTxInfo 'PlutusV3 DijkstraEra where
toPlutusTxCert :: forall (proxy :: Language -> *).
proxy 'PlutusV3
-> ProtVer
-> TxCert DijkstraEra
-> Either (ContextError DijkstraEra) (PlutusTxCert 'PlutusV3)
toPlutusTxCert proxy 'PlutusV3
_ ProtVer
pv = TxCert -> Either (ConwayContextError DijkstraEra) TxCert
forall a. a -> Either (ConwayContextError DijkstraEra) a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (TxCert -> Either (ConwayContextError DijkstraEra) TxCert)
-> (ConwayTxCert DijkstraEra -> TxCert)
-> ConwayTxCert DijkstraEra
-> Either (ConwayContextError DijkstraEra) TxCert
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ProtVer -> TxCert DijkstraEra -> TxCert
forall era.
(ConwayEraTxCert era, TxCert era ~ ConwayTxCert era) =>
ProtVer -> TxCert era -> TxCert
transTxCert ProtVer
pv
toPlutusScriptPurpose :: forall (proxy :: Language -> *).
proxy 'PlutusV3
-> ProtVer
-> PlutusPurpose AsIxItem DijkstraEra
-> Either
(ContextError DijkstraEra) (PlutusScriptPurpose 'PlutusV3)
toPlutusScriptPurpose = proxy 'PlutusV3
-> ProtVer
-> PlutusPurpose AsIxItem DijkstraEra
-> Either
(ContextError DijkstraEra) (PlutusScriptPurpose 'PlutusV3)
proxy 'PlutusV3
-> ProtVer
-> ConwayPlutusPurpose AsIxItem DijkstraEra
-> Either (ContextError DijkstraEra) ScriptPurpose
forall (l :: Language) era (proxy :: Language -> *).
(ConwayEraPlutusTxInfo l era, PlutusTxCert l ~ TxCert) =>
proxy l
-> ProtVer
-> ConwayPlutusPurpose AsIxItem era
-> Either (ContextError era) ScriptPurpose
transScriptPurpose
toPlutusTxInfo :: forall (proxy :: Language -> *).
proxy 'PlutusV3
-> LedgerTxInfo DijkstraEra
-> Either (ContextError DijkstraEra) (PlutusTxInfo 'PlutusV3)
toPlutusTxInfo proxy 'PlutusV3
proxy LedgerTxInfo {ProtVer
ltiProtVer :: forall era. LedgerTxInfo era -> ProtVer
ltiProtVer :: ProtVer
ltiProtVer, EpochInfo (Either Text)
ltiEpochInfo :: forall era. LedgerTxInfo era -> EpochInfo (Either Text)
ltiEpochInfo :: EpochInfo (Either Text)
ltiEpochInfo, SystemStart
ltiSystemStart :: forall era. LedgerTxInfo era -> SystemStart
ltiSystemStart :: SystemStart
ltiSystemStart, UTxO DijkstraEra
ltiUTxO :: forall era. LedgerTxInfo era -> UTxO era
ltiUTxO :: UTxO DijkstraEra
ltiUTxO, Tx DijkstraEra
ltiTx :: forall era. LedgerTxInfo era -> Tx era
ltiTx :: Tx DijkstraEra
ltiTx} = do
POSIXTimeRange
timeRange <-
AlonzoTx DijkstraEra
-> ProtVer
-> EpochInfo (Either Text)
-> SystemStart
-> ValidityInterval
-> Either (ConwayContextError DijkstraEra) POSIXTimeRange
forall {k} (proxy :: k -> *) (era :: k) a.
Inject (AlonzoContextError era) a =>
proxy era
-> ProtVer
-> EpochInfo (Either Text)
-> SystemStart
-> ValidityInterval
-> Either a POSIXTimeRange
Alonzo.transValidityInterval Tx DijkstraEra
AlonzoTx DijkstraEra
ltiTx ProtVer
ltiProtVer EpochInfo (Either Text)
ltiEpochInfo SystemStart
ltiSystemStart (TxBody DijkstraEra
txBody TxBody DijkstraEra
-> Getting ValidityInterval (TxBody DijkstraEra) ValidityInterval
-> ValidityInterval
forall s a. s -> Getting a s a -> a
^. Getting ValidityInterval (TxBody DijkstraEra) ValidityInterval
forall era.
AllegraEraTxBody era =>
Lens' (TxBody era) ValidityInterval
Lens' (TxBody DijkstraEra) ValidityInterval
vldtTxBodyL)
let
txInputs :: Set TxIn
txInputs = TxBody DijkstraEra
txBody TxBody DijkstraEra
-> Getting (Set TxIn) (TxBody DijkstraEra) (Set TxIn) -> Set TxIn
forall s a. s -> Getting a s a -> a
^. Getting (Set TxIn) (TxBody DijkstraEra) (Set TxIn)
forall era. EraTxBody era => Lens' (TxBody era) (Set TxIn)
Lens' (TxBody DijkstraEra) (Set TxIn)
inputsTxBodyL
refInputs :: Set TxIn
refInputs = TxBody DijkstraEra
txBody TxBody DijkstraEra
-> Getting (Set TxIn) (TxBody DijkstraEra) (Set TxIn) -> Set TxIn
forall s a. s -> Getting a s a -> a
^. Getting (Set TxIn) (TxBody DijkstraEra) (Set TxIn)
forall era. BabbageEraTxBody era => Lens' (TxBody era) (Set TxIn)
Lens' (TxBody DijkstraEra) (Set TxIn)
referenceInputsTxBodyL
[TxInInfo]
inputsInfo <- (TxIn -> Either (ConwayContextError DijkstraEra) TxInInfo)
-> [TxIn] -> Either (ConwayContextError DijkstraEra) [TxInInfo]
forall (t :: * -> *) (m :: * -> *) a b.
(Traversable t, Monad m) =>
(a -> m b) -> t a -> m (t b)
forall (m :: * -> *) a b. Monad m => (a -> m b) -> [a] -> m [b]
mapM (UTxO DijkstraEra
-> TxIn -> Either (ContextError DijkstraEra) TxInInfo
forall era.
(Inject (BabbageContextError era) (ContextError era),
Value era ~ MaryValue, BabbageEraTxOut era) =>
UTxO era -> TxIn -> Either (ContextError era) TxInInfo
transTxInInfoV3 UTxO DijkstraEra
ltiUTxO) (Set TxIn -> [TxIn]
forall a. Set a -> [a]
Set.toList Set TxIn
txInputs)
[TxInInfo]
refInputsInfo <- (TxIn -> Either (ConwayContextError DijkstraEra) TxInInfo)
-> [TxIn] -> Either (ConwayContextError DijkstraEra) [TxInInfo]
forall (t :: * -> *) (m :: * -> *) a b.
(Traversable t, Monad m) =>
(a -> m b) -> t a -> m (t b)
forall (m :: * -> *) a b. Monad m => (a -> m b) -> [a] -> m [b]
mapM (UTxO DijkstraEra
-> TxIn -> Either (ContextError DijkstraEra) TxInInfo
forall era.
(Inject (BabbageContextError era) (ContextError era),
Value era ~ MaryValue, BabbageEraTxOut era) =>
UTxO era -> TxIn -> Either (ContextError era) TxInInfo
transTxInInfoV3 UTxO DijkstraEra
ltiUTxO) (Set TxIn -> [TxIn]
forall a. Set a -> [a]
Set.toList Set TxIn
refInputs)
let
commonInputs :: Set TxIn
commonInputs = Set TxIn
txInputs Set TxIn -> Set TxIn -> Set TxIn
forall a. Ord a => Set a -> Set a -> Set a
`Set.intersection` Set TxIn
refInputs
case Set TxIn -> [TxIn]
forall a. Set a -> [a]
forall (t :: * -> *) a. Foldable t => t a -> [a]
toList Set TxIn
commonInputs of
(TxIn
x : [TxIn]
xs) -> ConwayContextError DijkstraEra
-> Either (ConwayContextError DijkstraEra) ()
forall a b. a -> Either a b
Left (ConwayContextError DijkstraEra
-> Either (ConwayContextError DijkstraEra) ())
-> ConwayContextError DijkstraEra
-> Either (ConwayContextError DijkstraEra) ()
forall a b. (a -> b) -> a -> b
$ NonEmpty TxIn -> ConwayContextError DijkstraEra
forall era. NonEmpty TxIn -> ConwayContextError era
ReferenceInputsNotDisjointFromInputs (NonEmpty TxIn -> ConwayContextError DijkstraEra)
-> NonEmpty TxIn -> ConwayContextError DijkstraEra
forall a b. (a -> b) -> a -> b
$ TxIn
x TxIn -> [TxIn] -> NonEmpty TxIn
forall a. a -> [a] -> NonEmpty a
:| [TxIn]
xs
[TxIn]
_ -> () -> Either (ConwayContextError DijkstraEra) ()
forall a b. b -> Either a b
Right ()
[TxOut]
outputs <-
(TxIx
-> TxOut DijkstraEra
-> Either (ConwayContextError DijkstraEra) TxOut)
-> [TxIx]
-> [TxOut DijkstraEra]
-> Either (ConwayContextError DijkstraEra) [TxOut]
forall (m :: * -> *) a b c.
Applicative m =>
(a -> b -> m c) -> [a] -> [b] -> m [c]
zipWithM
(TxOutSource
-> TxOut DijkstraEra -> Either (ContextError DijkstraEra) TxOut
TxOutSource
-> TxOut DijkstraEra
-> Either (ConwayContextError DijkstraEra) TxOut
forall era.
(Inject (BabbageContextError era) (ContextError era),
Value era ~ MaryValue, BabbageEraTxOut era) =>
TxOutSource -> TxOut era -> Either (ContextError era) TxOut
Babbage.transTxOutV2 (TxOutSource
-> TxOut DijkstraEra
-> Either (ConwayContextError DijkstraEra) TxOut)
-> (TxIx -> TxOutSource)
-> TxIx
-> TxOut DijkstraEra
-> Either (ConwayContextError DijkstraEra) TxOut
forall b c a. (b -> c) -> (a -> b) -> a -> c
. TxIx -> TxOutSource
TxOutFromOutput)
[TxIx
forall a. Bounded a => a
minBound ..]
(StrictSeq (TxOut DijkstraEra) -> [TxOut DijkstraEra]
forall a. StrictSeq a -> [a]
forall (t :: * -> *) a. Foldable t => t a -> [a]
F.toList (TxBody DijkstraEra
txBody TxBody DijkstraEra
-> Getting
(StrictSeq (TxOut DijkstraEra))
(TxBody DijkstraEra)
(StrictSeq (TxOut DijkstraEra))
-> StrictSeq (TxOut DijkstraEra)
forall s a. s -> Getting a s a -> a
^. Getting
(StrictSeq (TxOut DijkstraEra))
(TxBody DijkstraEra)
(StrictSeq (TxOut DijkstraEra))
forall era.
EraTxBody era =>
Lens' (TxBody era) (StrictSeq (TxOut era))
Lens' (TxBody DijkstraEra) (StrictSeq (TxOut DijkstraEra))
outputsTxBodyL))
[TxCert]
txCerts <- proxy 'PlutusV3
-> ProtVer
-> TxBody DijkstraEra
-> Either (ContextError DijkstraEra) [PlutusTxCert 'PlutusV3]
forall (l :: Language) era (proxy :: Language -> *).
(EraPlutusTxInfo l era, EraTxBody era) =>
proxy l
-> ProtVer
-> TxBody era
-> Either (ContextError era) [PlutusTxCert l]
Alonzo.transTxBodyCerts proxy 'PlutusV3
proxy ProtVer
ltiProtVer TxBody DijkstraEra
txBody
Map ScriptPurpose Redeemer
plutusRedeemers <- proxy 'PlutusV3
-> ProtVer
-> Tx DijkstraEra
-> Either
(ContextError DijkstraEra)
(Map (PlutusScriptPurpose 'PlutusV3) Redeemer)
forall (l :: Language) era (proxy :: Language -> *).
(EraPlutusTxInfo l era, AlonzoEraTxBody era, EraTx era,
AlonzoEraTxWits era,
Inject (BabbageContextError era) (ContextError era)) =>
proxy l
-> ProtVer
-> Tx era
-> Either (ContextError era) (Map (PlutusScriptPurpose l) Redeemer)
Babbage.transTxRedeemers proxy 'PlutusV3
proxy ProtVer
ltiProtVer Tx DijkstraEra
ltiTx
TxInfo -> Either (ConwayContextError DijkstraEra) TxInfo
forall a. a -> Either (ConwayContextError DijkstraEra) a
forall (f :: * -> *) a. Applicative f => a -> f a
pure
PV3.TxInfo
{ txInfoInputs :: [TxInInfo]
PV3.txInfoInputs = [TxInInfo]
inputsInfo
, txInfoOutputs :: [TxOut]
PV3.txInfoOutputs = [TxOut]
outputs
, txInfoReferenceInputs :: [TxInInfo]
PV3.txInfoReferenceInputs = [TxInInfo]
refInputsInfo
, txInfoFee :: Lovelace
PV3.txInfoFee = Coin -> Lovelace
transCoinToLovelace (TxBody DijkstraEra
txBody TxBody DijkstraEra
-> Getting Coin (TxBody DijkstraEra) Coin -> Coin
forall s a. s -> Getting a s a -> a
^. Getting Coin (TxBody DijkstraEra) Coin
forall era. EraTxBody era => Lens' (TxBody era) Coin
Lens' (TxBody DijkstraEra) Coin
feeTxBodyL)
, txInfoMint :: MintValue
PV3.txInfoMint = MultiAsset -> MintValue
transMintValue (TxBody DijkstraEra
txBody TxBody DijkstraEra
-> Getting MultiAsset (TxBody DijkstraEra) MultiAsset -> MultiAsset
forall s a. s -> Getting a s a -> a
^. Getting MultiAsset (TxBody DijkstraEra) MultiAsset
forall era. MaryEraTxBody era => Lens' (TxBody era) MultiAsset
Lens' (TxBody DijkstraEra) MultiAsset
mintTxBodyL)
, txInfoTxCerts :: [TxCert]
PV3.txInfoTxCerts = [TxCert]
txCerts
, txInfoWdrl :: Map Credential Lovelace
PV3.txInfoWdrl = TxBody DijkstraEra -> Map Credential Lovelace
forall era. EraTxBody era => TxBody era -> Map Credential Lovelace
transTxBodyWithdrawals TxBody DijkstraEra
txBody
, txInfoValidRange :: POSIXTimeRange
PV3.txInfoValidRange = POSIXTimeRange
timeRange
, txInfoSignatories :: [PubKeyHash]
PV3.txInfoSignatories = TxBody DijkstraEra -> [PubKeyHash]
forall era. AlonzoEraTxBody era => TxBody era -> [PubKeyHash]
Alonzo.transTxBodyReqSignerHashes TxBody DijkstraEra
txBody
, txInfoRedeemers :: Map ScriptPurpose Redeemer
PV3.txInfoRedeemers = Map ScriptPurpose Redeemer
plutusRedeemers
, txInfoData :: Map DatumHash Datum
PV3.txInfoData = [(DatumHash, Datum)] -> Map DatumHash Datum
forall k v. [(k, v)] -> Map k v
PV3.unsafeFromList ([(DatumHash, Datum)] -> Map DatumHash Datum)
-> [(DatumHash, Datum)] -> Map DatumHash Datum
forall a b. (a -> b) -> a -> b
$ TxWits DijkstraEra -> [(DatumHash, Datum)]
forall era.
AlonzoEraTxWits era =>
TxWits era -> [(DatumHash, Datum)]
Alonzo.transTxWitsDatums (Tx DijkstraEra
AlonzoTx DijkstraEra
ltiTx AlonzoTx DijkstraEra
-> Getting
(TxWits DijkstraEra) (AlonzoTx DijkstraEra) (TxWits DijkstraEra)
-> TxWits DijkstraEra
forall s a. s -> Getting a s a -> a
^. (TxWits DijkstraEra
-> Const (TxWits DijkstraEra) (TxWits DijkstraEra))
-> Tx DijkstraEra -> Const (TxWits DijkstraEra) (Tx DijkstraEra)
Getting
(TxWits DijkstraEra) (AlonzoTx DijkstraEra) (TxWits DijkstraEra)
forall era. EraTx era => Lens' (Tx era) (TxWits era)
Lens' (Tx DijkstraEra) (TxWits DijkstraEra)
witsTxL)
, txInfoId :: TxId
PV3.txInfoId = TxBody DijkstraEra -> TxId
forall era. EraTxBody era => TxBody era -> TxId
transTxBodyId TxBody DijkstraEra
txBody
, txInfoVotes :: Map Voter (Map GovernanceActionId Vote)
PV3.txInfoVotes = VotingProcedures DijkstraEra
-> Map Voter (Map GovernanceActionId Vote)
forall era.
VotingProcedures era -> Map Voter (Map GovernanceActionId Vote)
transVotingProcedures (TxBody DijkstraEra
txBody TxBody DijkstraEra
-> Getting
(VotingProcedures DijkstraEra)
(TxBody DijkstraEra)
(VotingProcedures DijkstraEra)
-> VotingProcedures DijkstraEra
forall s a. s -> Getting a s a -> a
^. Getting
(VotingProcedures DijkstraEra)
(TxBody DijkstraEra)
(VotingProcedures DijkstraEra)
forall era.
ConwayEraTxBody era =>
Lens' (TxBody era) (VotingProcedures era)
Lens' (TxBody DijkstraEra) (VotingProcedures DijkstraEra)
votingProceduresTxBodyL)
, txInfoProposalProcedures :: [ProposalProcedure]
PV3.txInfoProposalProcedures =
(ProposalProcedure DijkstraEra -> ProposalProcedure)
-> [ProposalProcedure DijkstraEra] -> [ProposalProcedure]
forall a b. (a -> b) -> [a] -> [b]
map (proxy 'PlutusV3
-> ProposalProcedure DijkstraEra -> ProposalProcedure
forall (l :: Language) era (proxy :: Language -> *).
ConwayEraPlutusTxInfo l era =>
proxy l -> ProposalProcedure era -> ProposalProcedure
transProposal proxy 'PlutusV3
proxy) ([ProposalProcedure DijkstraEra] -> [ProposalProcedure])
-> [ProposalProcedure DijkstraEra] -> [ProposalProcedure]
forall a b. (a -> b) -> a -> b
$ OSet (ProposalProcedure DijkstraEra)
-> [ProposalProcedure DijkstraEra]
forall a. OSet a -> [a]
forall (t :: * -> *) a. Foldable t => t a -> [a]
toList (TxBody DijkstraEra
txBody TxBody DijkstraEra
-> Getting
(OSet (ProposalProcedure DijkstraEra))
(TxBody DijkstraEra)
(OSet (ProposalProcedure DijkstraEra))
-> OSet (ProposalProcedure DijkstraEra)
forall s a. s -> Getting a s a -> a
^. Getting
(OSet (ProposalProcedure DijkstraEra))
(TxBody DijkstraEra)
(OSet (ProposalProcedure DijkstraEra))
forall era.
ConwayEraTxBody era =>
Lens' (TxBody era) (OSet (ProposalProcedure era))
Lens' (TxBody DijkstraEra) (OSet (ProposalProcedure DijkstraEra))
proposalProceduresTxBodyL)
, txInfoCurrentTreasuryAmount :: Maybe Lovelace
PV3.txInfoCurrentTreasuryAmount =
Maybe Lovelace
-> (Coin -> Maybe Lovelace) -> StrictMaybe Coin -> Maybe Lovelace
forall a b. a -> (b -> a) -> StrictMaybe b -> a
strictMaybe Maybe Lovelace
forall a. Maybe a
Nothing (Lovelace -> Maybe Lovelace
forall a. a -> Maybe a
Just (Lovelace -> Maybe Lovelace)
-> (Coin -> Lovelace) -> Coin -> Maybe Lovelace
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Coin -> Lovelace
transCoinToLovelace) (StrictMaybe Coin -> Maybe Lovelace)
-> StrictMaybe Coin -> Maybe Lovelace
forall a b. (a -> b) -> a -> b
$ TxBody DijkstraEra
txBody TxBody DijkstraEra
-> Getting
(StrictMaybe Coin) (TxBody DijkstraEra) (StrictMaybe Coin)
-> StrictMaybe Coin
forall s a. s -> Getting a s a -> a
^. Getting (StrictMaybe Coin) (TxBody DijkstraEra) (StrictMaybe Coin)
forall era.
ConwayEraTxBody era =>
Lens' (TxBody era) (StrictMaybe Coin)
Lens' (TxBody DijkstraEra) (StrictMaybe Coin)
currentTreasuryValueTxBodyL
, txInfoTreasuryDonation :: Maybe Lovelace
PV3.txInfoTreasuryDonation =
case TxBody DijkstraEra
txBody TxBody DijkstraEra
-> Getting Coin (TxBody DijkstraEra) Coin -> Coin
forall s a. s -> Getting a s a -> a
^. Getting Coin (TxBody DijkstraEra) Coin
forall era. ConwayEraTxBody era => Lens' (TxBody era) Coin
Lens' (TxBody DijkstraEra) Coin
treasuryDonationTxBodyL of
Coin Integer
0 -> Maybe Lovelace
forall a. Maybe a
Nothing
Coin
coin -> Lovelace -> Maybe Lovelace
forall a. a -> Maybe a
Just (Lovelace -> Maybe Lovelace) -> Lovelace -> Maybe Lovelace
forall a b. (a -> b) -> a -> b
$ Coin -> Lovelace
transCoinToLovelace Coin
coin
}
where
txBody :: TxBody DijkstraEra
txBody = Tx DijkstraEra
AlonzoTx DijkstraEra
ltiTx AlonzoTx DijkstraEra
-> Getting
(TxBody DijkstraEra) (AlonzoTx DijkstraEra) (TxBody DijkstraEra)
-> TxBody DijkstraEra
forall s a. s -> Getting a s a -> a
^. (TxBody DijkstraEra
-> Const (TxBody DijkstraEra) (TxBody DijkstraEra))
-> Tx DijkstraEra -> Const (TxBody DijkstraEra) (Tx DijkstraEra)
Getting
(TxBody DijkstraEra) (AlonzoTx DijkstraEra) (TxBody DijkstraEra)
forall era. EraTx era => Lens' (Tx era) (TxBody era)
Lens' (Tx DijkstraEra) (TxBody DijkstraEra)
bodyTxL
toPlutusArgs :: forall (proxy :: Language -> *).
proxy 'PlutusV3
-> ProtVer
-> PlutusTxInfo 'PlutusV3
-> PlutusPurpose AsIxItem DijkstraEra
-> Maybe (Data DijkstraEra)
-> Data DijkstraEra
-> Either (ContextError DijkstraEra) (PlutusArgs 'PlutusV3)
toPlutusArgs = proxy 'PlutusV3
-> ProtVer
-> PlutusTxInfo 'PlutusV3
-> PlutusPurpose AsIxItem DijkstraEra
-> Maybe (Data DijkstraEra)
-> Data DijkstraEra
-> Either (ContextError DijkstraEra) (PlutusArgs 'PlutusV3)
proxy 'PlutusV3
-> ProtVer
-> TxInfo
-> PlutusPurpose AsIxItem DijkstraEra
-> Maybe (Data DijkstraEra)
-> Data DijkstraEra
-> Either (ContextError DijkstraEra) (PlutusArgs 'PlutusV3)
forall era (proxy :: Language -> *).
EraPlutusTxInfo 'PlutusV3 era =>
proxy 'PlutusV3
-> ProtVer
-> TxInfo
-> PlutusPurpose AsIxItem era
-> Maybe (Data era)
-> Data era
-> Either (ContextError era) (PlutusArgs 'PlutusV3)
toPlutusV3Args
instance ConwayEraPlutusTxInfo 'PlutusV3 DijkstraEra where
toPlutusChangedParameters :: forall (proxy :: Language -> *).
proxy 'PlutusV3 -> PParamsUpdate DijkstraEra -> ChangedParameters
toPlutusChangedParameters proxy 'PlutusV3
_ PParamsUpdate DijkstraEra
x = BuiltinData -> ChangedParameters
PV3.ChangedParameters (Data -> BuiltinData
PV3.dataToBuiltinData (PParamsUpdate DijkstraEra -> Data
forall x. ToPlutusData x => x -> Data
toPlutusData PParamsUpdate DijkstraEra
x))