{-# LANGUAGE DataKinds #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE GADTs #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE RankNTypes #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE StandaloneDeriving #-}
{-# LANGUAGE TupleSections #-}
{-# LANGUAGE TypeApplications #-}
module Cardano.Api.Experimental.Tx.Internal.BodyContent.New
( TxCertificates (..)
, TxReturnCollateral (..)
, TxTotalCollateral (..)
, TxExtraKeyWitnesses (..)
, TxInsReference (..)
, TxMintValue (..)
, TxOut (..)
, TxProposalProcedures (..)
, TxValidityLowerBound (..)
, TxVotingProcedures (..)
, TxWithdrawals (..)
, TxBodyContent (..)
, Datum (..)
, defaultTxBodyContent
, collectTxBodyScriptWitnessRequirements
, makeUnsignedTx
, extractAllIndexedPlutusScriptWitnesses
, txMintValueToValue
, mkTxCertificates
, mkTxVotingProcedures
, mkTxProposalProcedures
, modTxOuts
, setTxAuxScripts
, setTxCertificates
, setTxReturnCollateral
, setTxTotalCollateral
, setTxCurrentTreasuryValue
, setTxExtraKeyWits
, setTxFee
, setTxIns
, setTxInsCollateral
, setTxInsReference
, setTxMetadata
, setTxMintValue
, setTxOuts
, setTxProposalProcedures
, setTxProtocolParams
, setTxScriptValidity
, setTxTreasuryDonation
, setTxValidityLowerBound
, setTxValidityUpperBound
, setTxVotingProcedures
, setTxWithdrawals
, convProposalProcedures
, legacyDatumToDatum
, fromLegacyTxOut
)
where
import Cardano.Api.Address
import Cardano.Api.Experimental.Certificate qualified as Exp
import Cardano.Api.Experimental.Era
import Cardano.Api.Experimental.Plutus
( AnyIndexedPlutusScriptWitness (..)
, Witnessable (..)
, WitnessableItem (..)
, createIndexedPlutusScriptWitnesses
)
import Cardano.Api.Experimental.Simple.Script
import Cardano.Api.Experimental.Tx.Internal.AnyWitness
( AnyWitness (..)
)
import Cardano.Api.Experimental.Tx.Internal.Certificate.Compatible (getTxCertWitness)
import Cardano.Api.Experimental.Tx.Internal.TxScriptWitnessRequirements
( TxScriptWitnessRequirements (..)
, getTxScriptWitnessesRequirements
)
import Cardano.Api.Experimental.Tx.Internal.Type
import Cardano.Api.Governance.Internal.Action.VotingProcedure
( VotesMergingConflict (..)
, mergeVotingProcedures
)
import Cardano.Api.Key.Internal
import Cardano.Api.Ledger.Internal.Reexport (StrictMaybe (..))
import Cardano.Api.Ledger.Internal.Reexport qualified as L
import Cardano.Api.Plutus.Internal.ScriptData qualified as Api
import Cardano.Api.Tx.Internal.Body
( CtxTx
, TxIn
, toShelleyTxIn
, toShelleyWithdrawal
)
import Cardano.Api.Tx.Internal.Output qualified as OldApi
import Cardano.Api.Tx.Internal.Sign
import Cardano.Api.Tx.Internal.TxMetadata
import Cardano.Api.Value.Internal (PolicyAssets, PolicyId, Value, policyAssetsToValue, toMaryValue)
import Cardano.Binary qualified as CBOR
import Cardano.Ledger.Alonzo.Scripts qualified as L
import Cardano.Ledger.Alonzo.Tx qualified as L
import Cardano.Ledger.Alonzo.TxBody qualified as L
import Cardano.Ledger.Alonzo.TxWits qualified as L
import Cardano.Ledger.Api qualified as L
import Cardano.Ledger.Core qualified as Ledger
import Cardano.Ledger.Keys qualified as L
import Cardano.Ledger.Plutus.Language qualified as Plutus
import Control.Monad
import Data.Functor
import Data.List qualified as List
import Data.Map.Ordered.Strict (OMap)
import Data.Map.Ordered.Strict qualified as OMap
import Data.Map.Strict (Map)
import Data.Map.Strict qualified as Map
import Data.Maybe
import Data.OSet.Strict (OSet)
import Data.OSet.Strict qualified as OSet
import Data.Sequence.Strict qualified as Seq
import Data.Set (Set)
import Data.Set qualified as Set
import GHC.Exts (IsList (..))
import Lens.Micro
makeUnsignedTx
:: forall era
. Era era
-> TxBodyContent (LedgerEra era)
-> UnsignedTx era
makeUnsignedTx :: forall era.
Era era -> TxBodyContent (LedgerEra era) -> UnsignedTx era
makeUnsignedTx Era era
DijkstraEra TxBodyContent (LedgerEra era)
_ = [Char] -> UnsignedTx era
forall a. HasCallStack => [Char] -> a
error [Char]
"makeUnsignedTx: Dijkstra era not supported yet"
makeUnsignedTx era :: Era era
era@Era era
ConwayEra TxBodyContent (LedgerEra era)
bc = Era era
-> (EraCommonConstraints era => UnsignedTx era) -> UnsignedTx era
forall era a. Era era -> (EraCommonConstraints era => a) -> a
obtainCommonConstraints Era era
era ((EraCommonConstraints era => UnsignedTx era) -> UnsignedTx era)
-> (EraCommonConstraints era => UnsignedTx era) -> UnsignedTx era
forall a b. (a -> b) -> a -> b
$ do
let TxScriptWitnessRequirements Set Language
languages [Script (LedgerEra ConwayEra)]
scripts TxDats (LedgerEra ConwayEra)
datums Redeemers (LedgerEra ConwayEra)
redeemers = TxBodyContent (LedgerEra ConwayEra)
-> TxScriptWitnessRequirements (LedgerEra ConwayEra)
forall era.
IsEra era =>
TxBodyContent (LedgerEra era)
-> TxScriptWitnessRequirements (LedgerEra era)
collectTxBodyScriptWitnessRequirements TxBodyContent (LedgerEra era)
TxBodyContent (LedgerEra ConwayEra)
bc
let apiMintValue :: TxMintValue ConwayEra
apiMintValue = TxBodyContent ConwayEra -> TxMintValue ConwayEra
forall era. TxBodyContent era -> TxMintValue era
txMintValue TxBodyContent ConwayEra
TxBodyContent (LedgerEra era)
bc
apiReferenceInputs :: TxInsReference ConwayEra
apiReferenceInputs = TxBodyContent ConwayEra -> TxInsReference ConwayEra
forall era. TxBodyContent era -> TxInsReference era
txInsReference TxBodyContent ConwayEra
TxBodyContent (LedgerEra era)
bc
apiExtraKeyWitnesses :: TxExtraKeyWitnesses
apiExtraKeyWitnesses = TxBodyContent ConwayEra -> TxExtraKeyWitnesses
forall era. TxBodyContent era -> TxExtraKeyWitnesses
txExtraKeyWits TxBodyContent ConwayEra
TxBodyContent (LedgerEra era)
bc
txins :: Set TxIn
txins = [(TxIn, AnyWitness ConwayEra)] -> Set TxIn
forall era. [(TxIn, AnyWitness era)] -> Set TxIn
convTxIns ([(TxIn, AnyWitness ConwayEra)] -> Set TxIn)
-> [(TxIn, AnyWitness ConwayEra)] -> Set TxIn
forall a b. (a -> b) -> a -> b
$ TxBodyContent ConwayEra -> [(TxIn, AnyWitness ConwayEra)]
forall era. TxBodyContent era -> [(TxIn, AnyWitness era)]
txIns TxBodyContent ConwayEra
TxBodyContent (LedgerEra era)
bc
collTxIns :: Set TxIn
collTxIns = TxBodyContent (LedgerEra ConwayEra) -> Set TxIn
forall era. TxBodyContent (LedgerEra era) -> Set TxIn
convCollateralTxIns TxBodyContent (LedgerEra era)
TxBodyContent (LedgerEra ConwayEra)
bc
refTxIns :: Set TxIn
refTxIns = TxInsReference ConwayEra -> Set TxIn
forall era. TxInsReference era -> Set TxIn
convReferenceInputs TxInsReference ConwayEra
apiReferenceInputs
outs :: StrictSeq (TxOut ConwayEra)
outs = [Item (StrictSeq (TxOut ConwayEra))] -> StrictSeq (TxOut ConwayEra)
forall l. IsList l => [Item l] -> l
fromList [Item (StrictSeq (TxOut ConwayEra))
TxOut ConwayEra
o | TxOut TxOut ConwayEra
o Maybe (Datum CtxTx ConwayEra)
_ <- TxBodyContent ConwayEra -> [TxOut CtxTx ConwayEra]
forall era. TxBodyContent era -> [TxOut CtxTx era]
txOuts TxBodyContent ConwayEra
TxBodyContent (LedgerEra era)
bc]
protocolParameters :: Maybe (PParams ConwayEra)
protocolParameters = TxBodyContent ConwayEra -> Maybe (PParams ConwayEra)
forall era. TxBodyContent era -> Maybe (PParams era)
txProtocolParams TxBodyContent ConwayEra
TxBodyContent (LedgerEra era)
bc
fee :: Coin
fee = TxBodyContent ConwayEra -> Coin
forall era. TxBodyContent era -> Coin
txFee TxBodyContent ConwayEra
TxBodyContent (LedgerEra era)
bc
withdrawals :: Withdrawals
withdrawals = TxWithdrawals ConwayEra -> Withdrawals
forall era. TxWithdrawals era -> Withdrawals
convWithdrawals (TxWithdrawals ConwayEra -> Withdrawals)
-> TxWithdrawals ConwayEra -> Withdrawals
forall a b. (a -> b) -> a -> b
$ TxBodyContent ConwayEra -> TxWithdrawals ConwayEra
forall era. TxBodyContent era -> TxWithdrawals era
txWithdrawals TxBodyContent ConwayEra
TxBodyContent (LedgerEra era)
bc
certs :: StrictSeq (TxCert (LedgerEra ConwayEra))
certs = TxCertificates (LedgerEra ConwayEra)
-> StrictSeq (TxCert (LedgerEra ConwayEra))
forall era.
TxCertificates (LedgerEra era)
-> StrictSeq (TxCert (LedgerEra era))
convCertificates (TxCertificates (LedgerEra ConwayEra)
-> StrictSeq (TxCert (LedgerEra ConwayEra)))
-> TxCertificates (LedgerEra ConwayEra)
-> StrictSeq (TxCert (LedgerEra ConwayEra))
forall a b. (a -> b) -> a -> b
$ TxBodyContent (LedgerEra ConwayEra)
-> TxCertificates (LedgerEra ConwayEra)
forall era. TxBodyContent era -> TxCertificates era
txCertificates TxBodyContent (LedgerEra era)
TxBodyContent (LedgerEra ConwayEra)
bc
retCollateral :: Maybe (TxOut ConwayEra)
retCollateral = TxReturnCollateral ConwayEra -> TxOut ConwayEra
forall era. TxReturnCollateral era -> TxOut era
unTxReturnCollateral (TxReturnCollateral ConwayEra -> TxOut ConwayEra)
-> Maybe (TxReturnCollateral ConwayEra) -> Maybe (TxOut ConwayEra)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> TxBodyContent ConwayEra -> Maybe (TxReturnCollateral ConwayEra)
forall era. TxBodyContent era -> Maybe (TxReturnCollateral era)
txReturnCollateral TxBodyContent ConwayEra
TxBodyContent (LedgerEra era)
bc
totCollateral :: Maybe Coin
totCollateral = TxTotalCollateral -> Coin
unTxTotalCollateral (TxTotalCollateral -> Coin)
-> Maybe TxTotalCollateral -> Maybe Coin
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> TxBodyContent ConwayEra -> Maybe TxTotalCollateral
forall era. TxBodyContent era -> Maybe TxTotalCollateral
txTotalCollateral TxBodyContent ConwayEra
TxBodyContent (LedgerEra era)
bc
txAuxData :: Maybe (TxAuxData (LedgerEra ConwayEra))
txAuxData = TxMetadata
-> [SimpleScript (LedgerEra ConwayEra)]
-> Maybe (TxAuxData (LedgerEra ConwayEra))
forall era.
IsEra era =>
TxMetadata
-> [SimpleScript (LedgerEra era)]
-> Maybe (TxAuxData (LedgerEra era))
toAuxiliaryData (TxBodyContent ConwayEra -> TxMetadata
forall era. TxBodyContent era -> TxMetadata
txMetadata TxBodyContent ConwayEra
TxBodyContent (LedgerEra era)
bc) (TxBodyContent (LedgerEra ConwayEra)
-> [SimpleScript (LedgerEra ConwayEra)]
forall era. TxBodyContent era -> [SimpleScript era]
txAuxScripts TxBodyContent (LedgerEra era)
TxBodyContent (LedgerEra ConwayEra)
bc)
scriptValidity :: IsValid
scriptValidity = ScriptValidity -> IsValid
scriptValidityToIsValid (ScriptValidity -> IsValid) -> ScriptValidity -> IsValid
forall a b. (a -> b) -> a -> b
$ TxBodyContent ConwayEra -> ScriptValidity
forall era. TxBodyContent era -> ScriptValidity
txScriptValidity TxBodyContent ConwayEra
TxBodyContent (LedgerEra era)
bc
scriptIntegrityHash :: StrictMaybe ScriptIntegrityHash
scriptIntegrityHash =
Maybe (PParams (LedgerEra ConwayEra))
-> Redeemers (LedgerEra ConwayEra)
-> TxDats (LedgerEra ConwayEra)
-> Set Language
-> StrictMaybe ScriptIntegrityHash
forall era.
IsEra era =>
Maybe (PParams (LedgerEra era))
-> Redeemers (LedgerEra era)
-> TxDats (LedgerEra era)
-> Set Language
-> StrictMaybe ScriptIntegrityHash
convPParamsToScriptIntegrityHash
Maybe (PParams ConwayEra)
Maybe (PParams (LedgerEra ConwayEra))
protocolParameters
Redeemers (LedgerEra ConwayEra)
redeemers
TxDats (LedgerEra ConwayEra)
datums
Set Language
languages
let setMint :: MultiAsset
setMint = TxMintValue ConwayEra -> MultiAsset
forall era. TxMintValue era -> MultiAsset
convMintValue TxMintValue ConwayEra
apiMintValue
setReqSignerHashes :: Set (KeyHash 'Witness)
setReqSignerHashes = TxExtraKeyWitnesses -> Set (KeyHash 'Witness)
convExtraKeyWitnesses TxExtraKeyWitnesses
apiExtraKeyWitnesses
ledgerTxBody :: TxBody ConwayEra
ledgerTxBody =
TxBody ConwayEra
forall era. EraTxBody era => TxBody era
L.mkBasicTxBody
TxBody ConwayEra
-> (TxBody ConwayEra -> TxBody ConwayEra) -> TxBody ConwayEra
forall a b. a -> (a -> b) -> b
& (Set TxIn -> Identity (Set TxIn))
-> TxBody ConwayEra -> Identity (TxBody ConwayEra)
forall era. EraTxBody era => Lens' (TxBody era) (Set TxIn)
Lens' (TxBody ConwayEra) (Set TxIn)
L.inputsTxBodyL ((Set TxIn -> Identity (Set TxIn))
-> TxBody ConwayEra -> Identity (TxBody ConwayEra))
-> Set TxIn -> TxBody ConwayEra -> TxBody ConwayEra
forall s t a b. ASetter s t a b -> b -> s -> t
.~ Set TxIn
txins
TxBody ConwayEra
-> (TxBody ConwayEra -> TxBody ConwayEra) -> TxBody ConwayEra
forall a b. a -> (a -> b) -> b
& (Set TxIn -> Identity (Set TxIn))
-> TxBody ConwayEra -> Identity (TxBody ConwayEra)
forall era. AlonzoEraTxBody era => Lens' (TxBody era) (Set TxIn)
Lens' (TxBody ConwayEra) (Set TxIn)
L.collateralInputsTxBodyL ((Set TxIn -> Identity (Set TxIn))
-> TxBody ConwayEra -> Identity (TxBody ConwayEra))
-> Set TxIn -> TxBody ConwayEra -> TxBody ConwayEra
forall s t a b. ASetter s t a b -> b -> s -> t
.~ Set TxIn
collTxIns
TxBody ConwayEra
-> (TxBody ConwayEra -> TxBody ConwayEra) -> TxBody ConwayEra
forall a b. a -> (a -> b) -> b
& (Set TxIn -> Identity (Set TxIn))
-> TxBody ConwayEra -> Identity (TxBody ConwayEra)
forall era. BabbageEraTxBody era => Lens' (TxBody era) (Set TxIn)
Lens' (TxBody ConwayEra) (Set TxIn)
L.referenceInputsTxBodyL ((Set TxIn -> Identity (Set TxIn))
-> TxBody ConwayEra -> Identity (TxBody ConwayEra))
-> Set TxIn -> TxBody ConwayEra -> TxBody ConwayEra
forall s t a b. ASetter s t a b -> b -> s -> t
.~ Set TxIn
refTxIns
TxBody ConwayEra
-> (TxBody ConwayEra -> TxBody ConwayEra) -> TxBody ConwayEra
forall a b. a -> (a -> b) -> b
& (StrictSeq (TxOut ConwayEra)
-> Identity (StrictSeq (TxOut ConwayEra)))
-> TxBody ConwayEra -> Identity (TxBody ConwayEra)
forall era.
EraTxBody era =>
Lens' (TxBody era) (StrictSeq (TxOut era))
Lens' (TxBody ConwayEra) (StrictSeq (TxOut ConwayEra))
L.outputsTxBodyL ((StrictSeq (TxOut ConwayEra)
-> Identity (StrictSeq (TxOut ConwayEra)))
-> TxBody ConwayEra -> Identity (TxBody ConwayEra))
-> StrictSeq (TxOut ConwayEra)
-> TxBody ConwayEra
-> TxBody ConwayEra
forall s t a b. ASetter s t a b -> b -> s -> t
.~ StrictSeq (TxOut ConwayEra)
outs
TxBody ConwayEra
-> (TxBody ConwayEra -> TxBody ConwayEra) -> TxBody ConwayEra
forall a b. a -> (a -> b) -> b
& (StrictMaybe Coin -> Identity (StrictMaybe Coin))
-> TxBody ConwayEra -> Identity (TxBody ConwayEra)
forall era.
BabbageEraTxBody era =>
Lens' (TxBody era) (StrictMaybe Coin)
Lens' (TxBody ConwayEra) (StrictMaybe Coin)
L.totalCollateralTxBodyL ((StrictMaybe Coin -> Identity (StrictMaybe Coin))
-> TxBody ConwayEra -> Identity (TxBody ConwayEra))
-> StrictMaybe Coin -> TxBody ConwayEra -> TxBody ConwayEra
forall s t a b. ASetter s t a b -> b -> s -> t
.~ Maybe Coin -> StrictMaybe Coin
forall a. Maybe a -> StrictMaybe a
L.maybeToStrictMaybe Maybe Coin
totCollateral
TxBody ConwayEra
-> (TxBody ConwayEra -> TxBody ConwayEra) -> TxBody ConwayEra
forall a b. a -> (a -> b) -> b
& (StrictMaybe (TxOut ConwayEra)
-> Identity (StrictMaybe (TxOut ConwayEra)))
-> TxBody ConwayEra -> Identity (TxBody ConwayEra)
forall era.
BabbageEraTxBody era =>
Lens' (TxBody era) (StrictMaybe (TxOut era))
Lens' (TxBody ConwayEra) (StrictMaybe (TxOut ConwayEra))
L.collateralReturnTxBodyL ((StrictMaybe (TxOut ConwayEra)
-> Identity (StrictMaybe (TxOut ConwayEra)))
-> TxBody ConwayEra -> Identity (TxBody ConwayEra))
-> StrictMaybe (TxOut ConwayEra)
-> TxBody ConwayEra
-> TxBody ConwayEra
forall s t a b. ASetter s t a b -> b -> s -> t
.~ Maybe (TxOut ConwayEra) -> StrictMaybe (TxOut ConwayEra)
forall a. Maybe a -> StrictMaybe a
L.maybeToStrictMaybe Maybe (TxOut ConwayEra)
retCollateral
TxBody ConwayEra
-> (TxBody ConwayEra -> TxBody ConwayEra) -> TxBody ConwayEra
forall a b. a -> (a -> b) -> b
& (Coin -> Identity Coin)
-> TxBody ConwayEra -> Identity (TxBody ConwayEra)
forall era. EraTxBody era => Lens' (TxBody era) Coin
Lens' (TxBody ConwayEra) Coin
L.feeTxBodyL ((Coin -> Identity Coin)
-> TxBody ConwayEra -> Identity (TxBody ConwayEra))
-> Coin -> TxBody ConwayEra -> TxBody ConwayEra
forall s t a b. ASetter s t a b -> b -> s -> t
.~ Coin
fee
TxBody ConwayEra
-> (TxBody ConwayEra -> TxBody ConwayEra) -> TxBody ConwayEra
forall a b. a -> (a -> b) -> b
& (ValidityInterval -> Identity ValidityInterval)
-> TxBody ConwayEra -> Identity (TxBody ConwayEra)
forall era.
AllegraEraTxBody era =>
Lens' (TxBody era) ValidityInterval
Lens' (TxBody ConwayEra) ValidityInterval
L.vldtTxBodyL ((ValidityInterval -> Identity ValidityInterval)
-> TxBody ConwayEra -> Identity (TxBody ConwayEra))
-> ((Maybe SlotNo -> Identity (Maybe SlotNo))
-> ValidityInterval -> Identity ValidityInterval)
-> (Maybe SlotNo -> Identity (Maybe SlotNo))
-> TxBody ConwayEra
-> Identity (TxBody ConwayEra)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Maybe SlotNo -> Identity (Maybe SlotNo))
-> ValidityInterval -> Identity ValidityInterval
Lens' ValidityInterval (Maybe SlotNo)
L.invalidBeforeL ((Maybe SlotNo -> Identity (Maybe SlotNo))
-> TxBody ConwayEra -> Identity (TxBody ConwayEra))
-> Maybe SlotNo -> TxBody ConwayEra -> TxBody ConwayEra
forall s t a b. ASetter s t a b -> b -> s -> t
.~ TxBodyContent ConwayEra -> Maybe SlotNo
forall era. TxBodyContent era -> Maybe SlotNo
txValidityLowerBound TxBodyContent ConwayEra
TxBodyContent (LedgerEra era)
bc
TxBody ConwayEra
-> (TxBody ConwayEra -> TxBody ConwayEra) -> TxBody ConwayEra
forall a b. a -> (a -> b) -> b
& (ValidityInterval -> Identity ValidityInterval)
-> TxBody ConwayEra -> Identity (TxBody ConwayEra)
forall era.
AllegraEraTxBody era =>
Lens' (TxBody era) ValidityInterval
Lens' (TxBody ConwayEra) ValidityInterval
L.vldtTxBodyL ((ValidityInterval -> Identity ValidityInterval)
-> TxBody ConwayEra -> Identity (TxBody ConwayEra))
-> ((Maybe SlotNo -> Identity (Maybe SlotNo))
-> ValidityInterval -> Identity ValidityInterval)
-> (Maybe SlotNo -> Identity (Maybe SlotNo))
-> TxBody ConwayEra
-> Identity (TxBody ConwayEra)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Maybe SlotNo -> Identity (Maybe SlotNo))
-> ValidityInterval -> Identity ValidityInterval
Lens' ValidityInterval (Maybe SlotNo)
L.invalidHereAfterL ((Maybe SlotNo -> Identity (Maybe SlotNo))
-> TxBody ConwayEra -> Identity (TxBody ConwayEra))
-> Maybe SlotNo -> TxBody ConwayEra -> TxBody ConwayEra
forall s t a b. ASetter s t a b -> b -> s -> t
.~ TxBodyContent ConwayEra -> Maybe SlotNo
forall era. TxBodyContent era -> Maybe SlotNo
txValidityUpperBound TxBodyContent ConwayEra
TxBodyContent (LedgerEra era)
bc
TxBody ConwayEra
-> (TxBody ConwayEra -> TxBody ConwayEra) -> TxBody ConwayEra
forall a b. a -> (a -> b) -> b
& (Set (KeyHash 'Witness) -> Identity (Set (KeyHash 'Witness)))
-> TxBody ConwayEra -> Identity (TxBody ConwayEra)
forall era.
(AlonzoEraTxBody era, AtMostEra "Conway" era) =>
Lens' (TxBody era) (Set (KeyHash 'Witness))
Lens' (TxBody ConwayEra) (Set (KeyHash 'Witness))
L.reqSignerHashesTxBodyL ((Set (KeyHash 'Witness) -> Identity (Set (KeyHash 'Witness)))
-> TxBody ConwayEra -> Identity (TxBody ConwayEra))
-> Set (KeyHash 'Witness) -> TxBody ConwayEra -> TxBody ConwayEra
forall s t a b. ASetter s t a b -> b -> s -> t
.~ Set (KeyHash 'Witness)
setReqSignerHashes
TxBody ConwayEra
-> (TxBody ConwayEra -> TxBody ConwayEra) -> TxBody ConwayEra
forall a b. a -> (a -> b) -> b
& (StrictMaybe ScriptIntegrityHash
-> Identity (StrictMaybe ScriptIntegrityHash))
-> TxBody ConwayEra -> Identity (TxBody ConwayEra)
forall era.
AlonzoEraTxBody era =>
Lens' (TxBody era) (StrictMaybe ScriptIntegrityHash)
Lens' (TxBody ConwayEra) (StrictMaybe ScriptIntegrityHash)
L.scriptIntegrityHashTxBodyL ((StrictMaybe ScriptIntegrityHash
-> Identity (StrictMaybe ScriptIntegrityHash))
-> TxBody ConwayEra -> Identity (TxBody ConwayEra))
-> StrictMaybe ScriptIntegrityHash
-> TxBody ConwayEra
-> TxBody ConwayEra
forall s t a b. ASetter s t a b -> b -> s -> t
.~ StrictMaybe ScriptIntegrityHash
scriptIntegrityHash
TxBody ConwayEra
-> (TxBody ConwayEra -> TxBody ConwayEra) -> TxBody ConwayEra
forall a b. a -> (a -> b) -> b
& (Withdrawals -> Identity Withdrawals)
-> TxBody ConwayEra -> Identity (TxBody ConwayEra)
forall era. EraTxBody era => Lens' (TxBody era) Withdrawals
Lens' (TxBody ConwayEra) Withdrawals
L.withdrawalsTxBodyL ((Withdrawals -> Identity Withdrawals)
-> TxBody ConwayEra -> Identity (TxBody ConwayEra))
-> Withdrawals -> TxBody ConwayEra -> TxBody ConwayEra
forall s t a b. ASetter s t a b -> b -> s -> t
.~ Withdrawals
withdrawals
TxBody ConwayEra
-> (TxBody ConwayEra -> TxBody ConwayEra) -> TxBody ConwayEra
forall a b. a -> (a -> b) -> b
& (StrictSeq (TxCert ConwayEra)
-> Identity (StrictSeq (TxCert ConwayEra)))
-> TxBody ConwayEra -> Identity (TxBody ConwayEra)
(StrictSeq (ConwayTxCert ConwayEra)
-> Identity (StrictSeq (ConwayTxCert ConwayEra)))
-> TxBody ConwayEra -> Identity (TxBody ConwayEra)
forall era.
EraTxBody era =>
Lens' (TxBody era) (StrictSeq (TxCert era))
Lens' (TxBody ConwayEra) (StrictSeq (TxCert ConwayEra))
L.certsTxBodyL ((StrictSeq (ConwayTxCert ConwayEra)
-> Identity (StrictSeq (ConwayTxCert ConwayEra)))
-> TxBody ConwayEra -> Identity (TxBody ConwayEra))
-> StrictSeq (ConwayTxCert ConwayEra)
-> TxBody ConwayEra
-> TxBody ConwayEra
forall s t a b. ASetter s t a b -> b -> s -> t
.~ StrictSeq (TxCert (LedgerEra ConwayEra))
StrictSeq (ConwayTxCert ConwayEra)
certs
TxBody ConwayEra
-> (TxBody ConwayEra -> TxBody ConwayEra) -> TxBody ConwayEra
forall a b. a -> (a -> b) -> b
& (MultiAsset -> Identity MultiAsset)
-> TxBody ConwayEra -> Identity (TxBody ConwayEra)
forall era. MaryEraTxBody era => Lens' (TxBody era) MultiAsset
Lens' (TxBody ConwayEra) MultiAsset
L.mintTxBodyL ((MultiAsset -> Identity MultiAsset)
-> TxBody ConwayEra -> Identity (TxBody ConwayEra))
-> MultiAsset -> TxBody ConwayEra -> TxBody ConwayEra
forall s t a b. ASetter s t a b -> b -> s -> t
.~ MultiAsset
setMint
TxBody ConwayEra
-> (TxBody ConwayEra -> TxBody ConwayEra) -> TxBody ConwayEra
forall a b. a -> (a -> b) -> b
& (StrictMaybe TxAuxDataHash -> Identity (StrictMaybe TxAuxDataHash))
-> TxBody ConwayEra -> Identity (TxBody ConwayEra)
forall era.
EraTxBody era =>
Lens' (TxBody era) (StrictMaybe TxAuxDataHash)
Lens' (TxBody ConwayEra) (StrictMaybe TxAuxDataHash)
L.auxDataHashTxBodyL ((StrictMaybe TxAuxDataHash
-> Identity (StrictMaybe TxAuxDataHash))
-> TxBody ConwayEra -> Identity (TxBody ConwayEra))
-> StrictMaybe TxAuxDataHash
-> TxBody ConwayEra
-> TxBody ConwayEra
forall s t a b. ASetter s t a b -> b -> s -> t
.~ Maybe TxAuxDataHash -> StrictMaybe TxAuxDataHash
forall a. Maybe a -> StrictMaybe a
L.maybeToStrictMaybe (TxAuxData ConwayEra -> TxAuxDataHash
forall era. EraTxAuxData era => TxAuxData era -> TxAuxDataHash
Ledger.hashTxAuxData (TxAuxData ConwayEra -> TxAuxDataHash)
-> Maybe (TxAuxData ConwayEra) -> Maybe TxAuxDataHash
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Maybe (TxAuxData ConwayEra)
Maybe (TxAuxData (LedgerEra ConwayEra))
txAuxData)
scriptWitnesses :: AlonzoTxWits ConwayEra
scriptWitnesses =
TxWits ConwayEra
forall era. EraTxWits era => TxWits era
L.mkBasicTxWits
TxWits ConwayEra
-> (TxWits ConwayEra -> TxWits ConwayEra) -> TxWits ConwayEra
forall a b. a -> (a -> b) -> b
& (Map ScriptHash (Script ConwayEra)
-> Identity (Map ScriptHash (Script ConwayEra)))
-> TxWits ConwayEra -> Identity (TxWits ConwayEra)
forall era.
EraTxWits era =>
Lens' (TxWits era) (Map ScriptHash (Script era))
Lens' (TxWits ConwayEra) (Map ScriptHash (Script ConwayEra))
L.scriptTxWitsL
((Map ScriptHash (Script ConwayEra)
-> Identity (Map ScriptHash (Script ConwayEra)))
-> TxWits ConwayEra -> Identity (TxWits ConwayEra))
-> Map ScriptHash (Script ConwayEra)
-> TxWits ConwayEra
-> TxWits ConwayEra
forall s t a b. ASetter s t a b -> b -> s -> t
.~ [Item (Map ScriptHash (Script ConwayEra))]
-> Map ScriptHash (Script ConwayEra)
forall l. IsList l => [Item l] -> l
fromList
[ (Script ConwayEra -> ScriptHash
forall era. EraScript era => Script era -> ScriptHash
L.hashScript Script ConwayEra
AlonzoScript ConwayEra
sw, AlonzoScript ConwayEra
sw)
| AlonzoScript ConwayEra
sw <- [Script (LedgerEra ConwayEra)]
[AlonzoScript ConwayEra]
scripts
]
TxWits ConwayEra
-> (TxWits ConwayEra -> AlonzoTxWits ConwayEra)
-> AlonzoTxWits ConwayEra
forall a b. a -> (a -> b) -> b
& (TxDats ConwayEra -> Identity (TxDats ConwayEra))
-> TxWits ConwayEra -> Identity (TxWits ConwayEra)
(TxDats ConwayEra -> Identity (TxDats ConwayEra))
-> TxWits ConwayEra -> Identity (AlonzoTxWits ConwayEra)
forall era. AlonzoEraTxWits era => Lens' (TxWits era) (TxDats era)
Lens' (TxWits ConwayEra) (TxDats ConwayEra)
L.datsTxWitsL ((TxDats ConwayEra -> Identity (TxDats ConwayEra))
-> TxWits ConwayEra -> Identity (AlonzoTxWits ConwayEra))
-> TxDats ConwayEra -> TxWits ConwayEra -> AlonzoTxWits ConwayEra
forall s t a b. ASetter s t a b -> b -> s -> t
.~ TxDats ConwayEra
TxDats (LedgerEra ConwayEra)
datums
AlonzoTxWits ConwayEra
-> (AlonzoTxWits ConwayEra -> AlonzoTxWits ConwayEra)
-> AlonzoTxWits ConwayEra
forall a b. a -> (a -> b) -> b
& (Redeemers ConwayEra -> Identity (Redeemers ConwayEra))
-> TxWits ConwayEra -> Identity (TxWits ConwayEra)
(Redeemers ConwayEra -> Identity (Redeemers ConwayEra))
-> AlonzoTxWits ConwayEra -> Identity (AlonzoTxWits ConwayEra)
forall era.
AlonzoEraTxWits era =>
Lens' (TxWits era) (Redeemers era)
Lens' (TxWits ConwayEra) (Redeemers ConwayEra)
L.rdmrsTxWitsL ((Redeemers ConwayEra -> Identity (Redeemers ConwayEra))
-> AlonzoTxWits ConwayEra -> Identity (AlonzoTxWits ConwayEra))
-> Redeemers ConwayEra
-> AlonzoTxWits ConwayEra
-> AlonzoTxWits ConwayEra
forall s t a b. ASetter s t a b -> b -> s -> t
.~ Redeemers ConwayEra
Redeemers (LedgerEra ConwayEra)
redeemers
let eraSpecificTxBody :: TxBody (LedgerEra era)
eraSpecificTxBody = Era era
-> TxBody (LedgerEra era)
-> TxBodyContent (LedgerEra era)
-> TxBody (LedgerEra era)
forall era.
Era era
-> TxBody (LedgerEra era)
-> TxBodyContent (LedgerEra era)
-> TxBody (LedgerEra era)
eraSpecificLedgerTxBody Era era
era TxBody ConwayEra
TxBody (LedgerEra era)
ledgerTxBody TxBodyContent (LedgerEra era)
bc
Tx (LedgerEra era) -> UnsignedTx era
forall era.
EraTx (LedgerEra era) =>
Tx (LedgerEra era) -> UnsignedTx era
UnsignedTx (Tx (LedgerEra era) -> UnsignedTx era)
-> Tx (LedgerEra era) -> UnsignedTx era
forall a b. (a -> b) -> a -> b
$
TxBody ConwayEra -> Tx ConwayEra
forall era. EraTx era => TxBody era -> Tx era
L.mkBasicTx TxBody ConwayEra
TxBody (LedgerEra era)
eraSpecificTxBody
Tx ConwayEra -> (Tx ConwayEra -> Tx ConwayEra) -> Tx ConwayEra
forall a b. a -> (a -> b) -> b
& (TxWits ConwayEra -> Identity (TxWits ConwayEra))
-> Tx ConwayEra -> Identity (Tx ConwayEra)
(AlonzoTxWits ConwayEra -> Identity (AlonzoTxWits ConwayEra))
-> Tx ConwayEra -> Identity (Tx ConwayEra)
forall era. EraTx era => Lens' (Tx era) (TxWits era)
Lens' (Tx ConwayEra) (TxWits ConwayEra)
L.witsTxL ((AlonzoTxWits ConwayEra -> Identity (AlonzoTxWits ConwayEra))
-> Tx ConwayEra -> Identity (Tx ConwayEra))
-> AlonzoTxWits ConwayEra -> Tx ConwayEra -> Tx ConwayEra
forall s t a b. ASetter s t a b -> b -> s -> t
.~ AlonzoTxWits ConwayEra
scriptWitnesses
Tx ConwayEra -> (Tx ConwayEra -> Tx ConwayEra) -> Tx ConwayEra
forall a b. a -> (a -> b) -> b
& (StrictMaybe (TxAuxData ConwayEra)
-> Identity (StrictMaybe (TxAuxData ConwayEra)))
-> Tx ConwayEra -> Identity (Tx ConwayEra)
(StrictMaybe (AlonzoTxAuxData ConwayEra)
-> Identity (StrictMaybe (AlonzoTxAuxData ConwayEra)))
-> Tx ConwayEra -> Identity (Tx ConwayEra)
forall era.
EraTx era =>
Lens' (Tx era) (StrictMaybe (TxAuxData era))
Lens' (Tx ConwayEra) (StrictMaybe (TxAuxData ConwayEra))
L.auxDataTxL ((StrictMaybe (AlonzoTxAuxData ConwayEra)
-> Identity (StrictMaybe (AlonzoTxAuxData ConwayEra)))
-> Tx ConwayEra -> Identity (Tx ConwayEra))
-> StrictMaybe (AlonzoTxAuxData ConwayEra)
-> Tx ConwayEra
-> Tx ConwayEra
forall s t a b. ASetter s t a b -> b -> s -> t
.~ Maybe (AlonzoTxAuxData ConwayEra)
-> StrictMaybe (AlonzoTxAuxData ConwayEra)
forall a. Maybe a -> StrictMaybe a
L.maybeToStrictMaybe (TxMetadata
-> [SimpleScript (LedgerEra ConwayEra)]
-> Maybe (TxAuxData (LedgerEra ConwayEra))
forall era.
IsEra era =>
TxMetadata
-> [SimpleScript (LedgerEra era)]
-> Maybe (TxAuxData (LedgerEra era))
toAuxiliaryData (TxBodyContent ConwayEra -> TxMetadata
forall era. TxBodyContent era -> TxMetadata
txMetadata TxBodyContent ConwayEra
TxBodyContent (LedgerEra era)
bc) (TxBodyContent ConwayEra -> [SimpleScript ConwayEra]
forall era. TxBodyContent era -> [SimpleScript era]
txAuxScripts TxBodyContent ConwayEra
TxBodyContent (LedgerEra era)
bc))
Tx ConwayEra -> (Tx ConwayEra -> Tx ConwayEra) -> Tx ConwayEra
forall a b. a -> (a -> b) -> b
& (IsValid -> Identity IsValid)
-> Tx ConwayEra -> Identity (Tx ConwayEra)
forall era. AlonzoEraTx era => Lens' (Tx era) IsValid
Lens' (Tx ConwayEra) IsValid
L.isValidTxL ((IsValid -> Identity IsValid)
-> Tx ConwayEra -> Identity (Tx ConwayEra))
-> IsValid -> Tx ConwayEra -> Tx ConwayEra
forall s t a b. ASetter s t a b -> b -> s -> t
.~ IsValid
scriptValidity
convTxIns :: [(TxIn, AnyWitness era)] -> Set L.TxIn
convTxIns :: forall era. [(TxIn, AnyWitness era)] -> Set TxIn
convTxIns [(TxIn, AnyWitness era)]
inputs =
[TxIn] -> Set TxIn
forall a. Ord a => [a] -> Set a
Set.fromList [TxIn -> TxIn
toShelleyTxIn TxIn
txin | (TxIn
txin, AnyWitness era
_) <- [(TxIn, AnyWitness era)]
inputs]
convCollateralTxIns :: TxBodyContent (LedgerEra era) -> Set L.TxIn
convCollateralTxIns :: forall era. TxBodyContent (LedgerEra era) -> Set TxIn
convCollateralTxIns TxBodyContent (LedgerEra era)
b =
[Item (Set TxIn)] -> Set TxIn
forall l. IsList l => [Item l] -> l
fromList ((TxIn -> Item (Set TxIn)) -> [TxIn] -> [Item (Set TxIn)]
forall a b. (a -> b) -> [a] -> [b]
map TxIn -> Item (Set TxIn)
TxIn -> TxIn
toShelleyTxIn ([TxIn] -> [Item (Set TxIn)]) -> [TxIn] -> [Item (Set TxIn)]
forall a b. (a -> b) -> a -> b
$ TxBodyContent (LedgerEra era) -> [TxIn]
forall era. TxBodyContent era -> [TxIn]
txInsCollateral TxBodyContent (LedgerEra era)
b)
convReferenceInputs :: TxInsReference era -> Set L.TxIn
convReferenceInputs :: forall era. TxInsReference era -> Set TxIn
convReferenceInputs (TxInsReference [TxIn]
ins Set (Datum CtxTx era)
_) =
[Item (Set TxIn)] -> Set TxIn
forall l. IsList l => [Item l] -> l
fromList ([Item (Set TxIn)] -> Set TxIn) -> [Item (Set TxIn)] -> Set TxIn
forall a b. (a -> b) -> a -> b
$ (TxIn -> TxIn) -> [TxIn] -> [TxIn]
forall a b. (a -> b) -> [a] -> [b]
map TxIn -> TxIn
toShelleyTxIn [TxIn]
ins
convWithdrawals :: TxWithdrawals era -> L.Withdrawals
convWithdrawals :: forall era. TxWithdrawals era -> Withdrawals
convWithdrawals (TxWithdrawals [(StakeAddress, Coin, AnyWitness era)]
ws) =
[(StakeAddress, Coin, AnyWitness era)] -> Withdrawals
forall a. [(StakeAddress, Coin, a)] -> Withdrawals
toShelleyWithdrawal [(StakeAddress, Coin, AnyWitness era)]
ws
convMintValue :: TxMintValue era -> L.MultiAsset
convMintValue :: forall era. TxMintValue era -> MultiAsset
convMintValue TxMintValue era
v = do
let L.MaryValue Coin
_coin MultiAsset
multiAsset = Value -> MaryValue
toMaryValue (Value -> MaryValue) -> Value -> MaryValue
forall a b. (a -> b) -> a -> b
$ TxMintValue era -> Value
forall era. TxMintValue era -> Value
txMintValueToValue TxMintValue era
v
MultiAsset
multiAsset
convExtraKeyWitnesses
:: TxExtraKeyWitnesses -> Set (L.KeyHash L.Witness)
(TxExtraKeyWitnesses [Hash PaymentKey]
khs) =
[Item (Set (KeyHash 'Witness))] -> Set (KeyHash 'Witness)
forall l. IsList l => [Item l] -> l
fromList
[ KeyHash 'Payment -> KeyHash 'Witness
forall (a :: KeyRole -> *) (r :: KeyRole).
HasKeyRole a =>
a r -> a 'Witness
L.asWitness KeyHash 'Payment
kh
| PaymentKeyHash KeyHash 'Payment
kh <- [Hash PaymentKey]
khs
]
convCertificates
:: TxCertificates (LedgerEra era)
-> Seq.StrictSeq (L.TxCert (LedgerEra era))
convCertificates :: forall era.
TxCertificates (LedgerEra era)
-> StrictSeq (TxCert (LedgerEra era))
convCertificates (TxCertificates OMap
(Certificate (LedgerEra era))
(Maybe (StakeCredential, AnyWitness (LedgerEra era)))
cs) =
[Item (StrictSeq (TxCert (LedgerEra era)))]
-> StrictSeq (TxCert (LedgerEra era))
forall l. IsList l => [Item l] -> l
fromList ([Item (StrictSeq (TxCert (LedgerEra era)))]
-> StrictSeq (TxCert (LedgerEra era)))
-> ([(Certificate (LedgerEra era),
Maybe (StakeCredential, AnyWitness (LedgerEra era)))]
-> [Item (StrictSeq (TxCert (LedgerEra era)))])
-> [(Certificate (LedgerEra era),
Maybe (StakeCredential, AnyWitness (LedgerEra era)))]
-> StrictSeq (TxCert (LedgerEra era))
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ((Certificate (LedgerEra era),
Maybe (StakeCredential, AnyWitness (LedgerEra era)))
-> Item (StrictSeq (TxCert (LedgerEra era))))
-> [(Certificate (LedgerEra era),
Maybe (StakeCredential, AnyWitness (LedgerEra era)))]
-> [Item (StrictSeq (TxCert (LedgerEra era)))]
forall a b. (a -> b) -> [a] -> [b]
map (\(Exp.Certificate TxCert (LedgerEra era)
c, Maybe (StakeCredential, AnyWitness (LedgerEra era))
_) -> Item (StrictSeq (TxCert (LedgerEra era)))
TxCert (LedgerEra era)
c) ([(Certificate (LedgerEra era),
Maybe (StakeCredential, AnyWitness (LedgerEra era)))]
-> StrictSeq (TxCert (LedgerEra era)))
-> [(Certificate (LedgerEra era),
Maybe (StakeCredential, AnyWitness (LedgerEra era)))]
-> StrictSeq (TxCert (LedgerEra era))
forall a b. (a -> b) -> a -> b
$ OMap
(Certificate (LedgerEra era))
(Maybe (StakeCredential, AnyWitness (LedgerEra era)))
-> [Item
(OMap
(Certificate (LedgerEra era))
(Maybe (StakeCredential, AnyWitness (LedgerEra era))))]
forall l. IsList l => l -> [Item l]
toList OMap
(Certificate (LedgerEra era))
(Maybe (StakeCredential, AnyWitness (LedgerEra era)))
cs
convPParamsToScriptIntegrityHash
:: forall era
. IsEra era
=> Maybe (Ledger.PParams (LedgerEra era))
-> L.Redeemers (LedgerEra era)
-> L.TxDats (LedgerEra era)
-> Set Plutus.Language
-> StrictMaybe L.ScriptIntegrityHash
convPParamsToScriptIntegrityHash :: forall era.
IsEra era =>
Maybe (PParams (LedgerEra era))
-> Redeemers (LedgerEra era)
-> TxDats (LedgerEra era)
-> Set Language
-> StrictMaybe ScriptIntegrityHash
convPParamsToScriptIntegrityHash Maybe (PParams (LedgerEra era))
mTxProtocolParams Redeemers (LedgerEra era)
redeemers TxDats (LedgerEra era)
datums Set Language
languages = Era era
-> (EraCommonConstraints era => StrictMaybe ScriptIntegrityHash)
-> StrictMaybe ScriptIntegrityHash
forall era a. Era era -> (EraCommonConstraints era => a) -> a
obtainCommonConstraints (forall era. IsEra era => Era era
useEra @era) ((EraCommonConstraints era => StrictMaybe ScriptIntegrityHash)
-> StrictMaybe ScriptIntegrityHash)
-> (EraCommonConstraints era => StrictMaybe ScriptIntegrityHash)
-> StrictMaybe ScriptIntegrityHash
forall a b. (a -> b) -> a -> b
$ do
pp <- Maybe (PParams (LedgerEra era))
-> StrictMaybe (PParams (LedgerEra era))
forall a. Maybe a -> StrictMaybe a
L.maybeToStrictMaybe Maybe (PParams (LedgerEra era))
mTxProtocolParams
let shouldCalculateHash =
Bool -> Bool
not (Bool -> Bool) -> Bool -> Bool
forall a b. (a -> b) -> a -> b
$
Map
(PlutusPurpose AsIx (LedgerEra era))
(Data (LedgerEra era), ExUnits)
-> Bool
forall a. Map (PlutusPurpose AsIx (LedgerEra era)) a -> Bool
forall (t :: * -> *) a. Foldable t => t a -> Bool
null (Redeemers (LedgerEra era)
redeemers Redeemers (LedgerEra era)
-> Getting
(Map
(PlutusPurpose AsIx (LedgerEra era))
(Data (LedgerEra era), ExUnits))
(Redeemers (LedgerEra era))
(Map
(PlutusPurpose AsIx (LedgerEra era))
(Data (LedgerEra era), ExUnits))
-> Map
(PlutusPurpose AsIx (LedgerEra era))
(Data (LedgerEra era), ExUnits)
forall s a. s -> Getting a s a -> a
^. Getting
(Map
(PlutusPurpose AsIx (LedgerEra era))
(Data (LedgerEra era), ExUnits))
(Redeemers (LedgerEra era))
(Map
(PlutusPurpose AsIx (LedgerEra era))
(Data (LedgerEra era), ExUnits))
forall era.
AlonzoEraScript era =>
Lens'
(Redeemers era) (Map (PlutusPurpose AsIx era) (Data era, ExUnits))
Lens'
(Redeemers (LedgerEra era))
(Map
(PlutusPurpose AsIx (LedgerEra era))
(Data (LedgerEra era), ExUnits))
L.unRedeemersL)
Bool -> Bool -> Bool
&& Map DataHash (Data (LedgerEra era)) -> Bool
forall a. Map DataHash a -> Bool
forall (t :: * -> *) a. Foldable t => t a -> Bool
null (TxDats (LedgerEra era)
datums TxDats (LedgerEra era)
-> Getting
(Map DataHash (Data (LedgerEra era)))
(TxDats (LedgerEra era))
(Map DataHash (Data (LedgerEra era)))
-> Map DataHash (Data (LedgerEra era))
forall s a. s -> Getting a s a -> a
^. Getting
(Map DataHash (Data (LedgerEra era)))
(TxDats (LedgerEra era))
(Map DataHash (Data (LedgerEra era)))
forall era. Era era => Lens' (TxDats era) (Map DataHash (Data era))
Lens'
(TxDats (LedgerEra era)) (Map DataHash (Data (LedgerEra era)))
L.unTxDatsL)
Bool -> Bool -> Bool
&& Set Language -> Bool
forall a. Set a -> Bool
forall (t :: * -> *) a. Foldable t => t a -> Bool
null Set Language
languages
guard shouldCalculateHash
let scriptIntegrity = Redeemers (LedgerEra era)
-> TxDats (LedgerEra era)
-> Set LangDepView
-> ScriptIntegrity (LedgerEra era)
forall era.
Redeemers era
-> TxDats era -> Set LangDepView -> ScriptIntegrity era
L.ScriptIntegrity Redeemers (LedgerEra era)
redeemers TxDats (LedgerEra era)
datums ((Language -> LangDepView) -> Set Language -> Set LangDepView
forall b a. Ord b => (a -> b) -> Set a -> Set b
Set.map (PParams (LedgerEra era) -> Language -> LangDepView
forall era.
AlonzoEraPParams era =>
PParams era -> Language -> LangDepView
L.getLanguageView PParams (LedgerEra era)
pp) Set Language
languages)
pure $ L.hashScriptIntegrity scriptIntegrity
convProposalProcedures
:: forall era
. IsEra era
=> Maybe (TxProposalProcedures (LedgerEra era)) -> OSet (L.ProposalProcedure (LedgerEra era))
convProposalProcedures :: forall era.
IsEra era =>
Maybe (TxProposalProcedures (LedgerEra era))
-> OSet (ProposalProcedure (LedgerEra era))
convProposalProcedures Maybe (TxProposalProcedures (LedgerEra era))
Nothing = OSet (ProposalProcedure (LedgerEra era))
forall a. OSet a
OSet.empty
convProposalProcedures (Just (TxProposalProcedures OMap
(ProposalProcedure (LedgerEra era)) (AnyWitness (LedgerEra era))
proposals)) =
Era era
-> (EraCommonConstraints era =>
OSet (ProposalProcedure (LedgerEra era)))
-> OSet (ProposalProcedure (LedgerEra era))
forall era a. Era era -> (EraCommonConstraints era => a) -> a
obtainCommonConstraints (forall era. IsEra era => Era era
useEra @era) ((EraCommonConstraints era =>
OSet (ProposalProcedure (LedgerEra era)))
-> OSet (ProposalProcedure (LedgerEra era)))
-> (EraCommonConstraints era =>
OSet (ProposalProcedure (LedgerEra era)))
-> OSet (ProposalProcedure (LedgerEra era))
forall a b. (a -> b) -> a -> b
$ [Item (OSet (ProposalProcedure (LedgerEra era)))]
-> OSet (ProposalProcedure (LedgerEra era))
forall l. IsList l => [Item l] -> l
fromList ([Item (OSet (ProposalProcedure (LedgerEra era)))]
-> OSet (ProposalProcedure (LedgerEra era)))
-> [Item (OSet (ProposalProcedure (LedgerEra era)))]
-> OSet (ProposalProcedure (LedgerEra era))
forall a b. (a -> b) -> a -> b
$ (ProposalProcedure (LedgerEra era), AnyWitness (LedgerEra era))
-> ProposalProcedure (LedgerEra era)
forall a b. (a, b) -> a
fst ((ProposalProcedure (LedgerEra era), AnyWitness (LedgerEra era))
-> ProposalProcedure (LedgerEra era))
-> [(ProposalProcedure (LedgerEra era),
AnyWitness (LedgerEra era))]
-> [ProposalProcedure (LedgerEra era)]
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> OMap
(ProposalProcedure (LedgerEra era)) (AnyWitness (LedgerEra era))
-> [Item
(OMap
(ProposalProcedure (LedgerEra era)) (AnyWitness (LedgerEra era)))]
forall l. IsList l => l -> [Item l]
toList OMap
(ProposalProcedure (LedgerEra era)) (AnyWitness (LedgerEra era))
proposals
convVotingProcedures
:: Maybe (TxVotingProcedures (LedgerEra era)) -> L.VotingProcedures (LedgerEra era)
convVotingProcedures :: forall era.
Maybe (TxVotingProcedures (LedgerEra era))
-> VotingProcedures (LedgerEra era)
convVotingProcedures (Just (TxVotingProcedures VotingProcedures (LedgerEra era)
vps Map Voter (AnyWitness (LedgerEra era))
_)) = VotingProcedures (LedgerEra era)
vps
convVotingProcedures Maybe (TxVotingProcedures (LedgerEra era))
Nothing = Map Voter (Map GovActionId (VotingProcedure (LedgerEra era)))
-> VotingProcedures (LedgerEra era)
forall era.
Map Voter (Map GovActionId (VotingProcedure era))
-> VotingProcedures era
L.VotingProcedures Map Voter (Map GovActionId (VotingProcedure (LedgerEra era)))
forall a. Monoid a => a
mempty
toAuxiliaryData
:: forall era
. IsEra era
=> TxMetadata
-> [SimpleScript (LedgerEra era)]
-> Maybe (L.TxAuxData (LedgerEra era))
toAuxiliaryData :: forall era.
IsEra era =>
TxMetadata
-> [SimpleScript (LedgerEra era)]
-> Maybe (TxAuxData (LedgerEra era))
toAuxiliaryData TxMetadata
txMData [SimpleScript (LedgerEra era)]
ss' =
let ms :: Map Word64 Metadatum
ms = Map Word64 TxMetadataValue -> Map Word64 Metadatum
toShelleyMetadata (Map Word64 TxMetadataValue -> Map Word64 Metadatum)
-> Map Word64 TxMetadataValue -> Map Word64 Metadatum
forall a b. (a -> b) -> a -> b
$ TxMetadata -> Map Word64 TxMetadataValue
unTxMetadata TxMetadata
txMData
in case forall era. IsEra era => Era era
useEra @era of
Era era
ConwayEra ->
let ss :: [AlonzoScript ConwayEra]
ss = [NativeScript ConwayEra -> AlonzoScript ConwayEra
forall era. NativeScript era -> AlonzoScript era
L.NativeScript NativeScript ConwayEra
s | SimpleScript NativeScript ConwayEra
s <- [SimpleScript ConwayEra]
[SimpleScript (LedgerEra era)]
ss']
in Bool -> Maybe ()
forall (f :: * -> *). Alternative f => Bool -> f ()
guard (Bool -> Bool
not (Map Word64 Metadatum -> Bool
forall k a. Map k a -> Bool
Map.null Map Word64 Metadatum
ms Bool -> Bool -> Bool
&& [AlonzoScript ConwayEra] -> Bool
forall a. [a] -> Bool
forall (t :: * -> *) a. Foldable t => t a -> Bool
null [AlonzoScript ConwayEra]
ss)) Maybe ()
-> AlonzoTxAuxData ConwayEra -> Maybe (AlonzoTxAuxData ConwayEra)
forall (f :: * -> *) a b. Functor f => f a -> b -> f b
$> Map Word64 Metadatum
-> [AlonzoScript ConwayEra] -> AlonzoTxAuxData ConwayEra
forall (f :: * -> *) era.
(Foldable f, AlonzoEraScript era) =>
Map Word64 Metadatum -> f (AlonzoScript era) -> AlonzoTxAuxData era
L.mkAlonzoTxAuxData Map Word64 Metadatum
ms [AlonzoScript ConwayEra]
ss
Era era
DijkstraEra ->
let ss :: [AlonzoScript DijkstraEra]
ss = [NativeScript DijkstraEra -> AlonzoScript DijkstraEra
forall era. NativeScript era -> AlonzoScript era
L.NativeScript NativeScript DijkstraEra
s | SimpleScript NativeScript DijkstraEra
s <- [SimpleScript DijkstraEra]
[SimpleScript (LedgerEra era)]
ss']
in Bool -> Maybe ()
forall (f :: * -> *). Alternative f => Bool -> f ()
guard (Bool -> Bool
not (Map Word64 Metadatum -> Bool
forall k a. Map k a -> Bool
Map.null Map Word64 Metadatum
ms Bool -> Bool -> Bool
&& [AlonzoScript DijkstraEra] -> Bool
forall a. [a] -> Bool
forall (t :: * -> *) a. Foldable t => t a -> Bool
null [AlonzoScript DijkstraEra]
ss)) Maybe ()
-> AlonzoTxAuxData DijkstraEra
-> Maybe (AlonzoTxAuxData DijkstraEra)
forall (f :: * -> *) a b. Functor f => f a -> b -> f b
$> Map Word64 Metadatum
-> [AlonzoScript DijkstraEra] -> AlonzoTxAuxData DijkstraEra
forall (f :: * -> *) era.
(Foldable f, AlonzoEraScript era) =>
Map Word64 Metadatum -> f (AlonzoScript era) -> AlonzoTxAuxData era
L.mkAlonzoTxAuxData Map Word64 Metadatum
ms [AlonzoScript DijkstraEra]
ss
eraSpecificLedgerTxBody
:: Era era
-> L.TxBody (LedgerEra era)
-> TxBodyContent (LedgerEra era)
-> L.TxBody (LedgerEra era)
eraSpecificLedgerTxBody :: forall era.
Era era
-> TxBody (LedgerEra era)
-> TxBodyContent (LedgerEra era)
-> TxBody (LedgerEra era)
eraSpecificLedgerTxBody Era era
era TxBody (LedgerEra era)
ledgerbody TxBodyContent (LedgerEra era)
bc =
Era era -> TxBody (LedgerEra era)
body Era era
era
where
body :: Era era -> TxBody (LedgerEra era)
body Era era
e =
let propProcedures :: Maybe (TxProposalProcedures (LedgerEra era))
propProcedures = TxBodyContent (LedgerEra era)
-> Maybe (TxProposalProcedures (LedgerEra era))
forall era. TxBodyContent era -> Maybe (TxProposalProcedures era)
txProposalProcedures TxBodyContent (LedgerEra era)
bc
voteProcedures :: Maybe (TxVotingProcedures (LedgerEra era))
voteProcedures = TxBodyContent (LedgerEra era)
-> Maybe (TxVotingProcedures (LedgerEra era))
forall era. TxBodyContent era -> Maybe (TxVotingProcedures era)
txVotingProcedures TxBodyContent (LedgerEra era)
bc
treasuryDonation :: Maybe Coin
treasuryDonation = TxBodyContent (LedgerEra era) -> Maybe Coin
forall era. TxBodyContent era -> Maybe Coin
txTreasuryDonation TxBodyContent (LedgerEra era)
bc
currentTreasuryValue :: Maybe Coin
currentTreasuryValue = TxBodyContent (LedgerEra era) -> Maybe Coin
forall era. TxBodyContent era -> Maybe Coin
txCurrentTreasuryValue TxBodyContent (LedgerEra era)
bc
in Era era
-> (EraCommonConstraints era => TxBody (LedgerEra era))
-> TxBody (LedgerEra era)
forall era a. Era era -> (EraCommonConstraints era => a) -> a
obtainCommonConstraints Era era
e ((EraCommonConstraints era => TxBody (LedgerEra era))
-> TxBody (LedgerEra era))
-> (EraCommonConstraints era => TxBody (LedgerEra era))
-> TxBody (LedgerEra era)
forall a b. (a -> b) -> a -> b
$
TxBody (LedgerEra era)
ledgerbody
TxBody (LedgerEra era)
-> (TxBody (LedgerEra era) -> TxBody (LedgerEra era))
-> TxBody (LedgerEra era)
forall a b. a -> (a -> b) -> b
& (OSet (ProposalProcedure (LedgerEra era))
-> Identity (OSet (ProposalProcedure (LedgerEra era))))
-> TxBody (LedgerEra era) -> Identity (TxBody (LedgerEra era))
forall era.
ConwayEraTxBody era =>
Lens' (TxBody era) (OSet (ProposalProcedure era))
Lens'
(TxBody (LedgerEra era)) (OSet (ProposalProcedure (LedgerEra era)))
L.proposalProceduresTxBodyL
((OSet (ProposalProcedure (LedgerEra era))
-> Identity (OSet (ProposalProcedure (LedgerEra era))))
-> TxBody (LedgerEra era) -> Identity (TxBody (LedgerEra era)))
-> OSet (ProposalProcedure (LedgerEra era))
-> TxBody (LedgerEra era)
-> TxBody (LedgerEra era)
forall s t a b. ASetter s t a b -> b -> s -> t
.~ Maybe (TxProposalProcedures (LedgerEra era))
-> OSet (ProposalProcedure (LedgerEra era))
forall era.
IsEra era =>
Maybe (TxProposalProcedures (LedgerEra era))
-> OSet (ProposalProcedure (LedgerEra era))
convProposalProcedures Maybe (TxProposalProcedures (LedgerEra era))
propProcedures
TxBody (LedgerEra era)
-> (TxBody (LedgerEra era) -> TxBody (LedgerEra era))
-> TxBody (LedgerEra era)
forall a b. a -> (a -> b) -> b
& (VotingProcedures (LedgerEra era)
-> Identity (VotingProcedures (LedgerEra era)))
-> TxBody (LedgerEra era) -> Identity (TxBody (LedgerEra era))
forall era.
ConwayEraTxBody era =>
Lens' (TxBody era) (VotingProcedures era)
Lens' (TxBody (LedgerEra era)) (VotingProcedures (LedgerEra era))
L.votingProceduresTxBodyL
((VotingProcedures (LedgerEra era)
-> Identity (VotingProcedures (LedgerEra era)))
-> TxBody (LedgerEra era) -> Identity (TxBody (LedgerEra era)))
-> VotingProcedures (LedgerEra era)
-> TxBody (LedgerEra era)
-> TxBody (LedgerEra era)
forall s t a b. ASetter s t a b -> b -> s -> t
.~ Maybe (TxVotingProcedures (LedgerEra era))
-> VotingProcedures (LedgerEra era)
forall era.
Maybe (TxVotingProcedures (LedgerEra era))
-> VotingProcedures (LedgerEra era)
convVotingProcedures Maybe (TxVotingProcedures (LedgerEra era))
voteProcedures
TxBody (LedgerEra era)
-> (TxBody (LedgerEra era) -> TxBody (LedgerEra era))
-> TxBody (LedgerEra era)
forall a b. a -> (a -> b) -> b
& (Coin -> Identity Coin)
-> TxBody (LedgerEra era) -> Identity (TxBody (LedgerEra era))
forall era. ConwayEraTxBody era => Lens' (TxBody era) Coin
Lens' (TxBody (LedgerEra era)) Coin
L.treasuryDonationTxBodyL
((Coin -> Identity Coin)
-> TxBody (LedgerEra era) -> Identity (TxBody (LedgerEra era)))
-> Coin -> TxBody (LedgerEra era) -> TxBody (LedgerEra era)
forall s t a b. ASetter s t a b -> b -> s -> t
.~ Coin -> Maybe Coin -> Coin
forall a. a -> Maybe a -> a
fromMaybe (Integer -> Coin
L.Coin Integer
0) Maybe Coin
treasuryDonation
TxBody (LedgerEra era)
-> (TxBody (LedgerEra era) -> TxBody (LedgerEra era))
-> TxBody (LedgerEra era)
forall a b. a -> (a -> b) -> b
& (StrictMaybe Coin -> Identity (StrictMaybe Coin))
-> TxBody (LedgerEra era) -> Identity (TxBody (LedgerEra era))
forall era.
ConwayEraTxBody era =>
Lens' (TxBody era) (StrictMaybe Coin)
Lens' (TxBody (LedgerEra era)) (StrictMaybe Coin)
L.currentTreasuryValueTxBodyL
((StrictMaybe Coin -> Identity (StrictMaybe Coin))
-> TxBody (LedgerEra era) -> Identity (TxBody (LedgerEra era)))
-> StrictMaybe Coin
-> TxBody (LedgerEra era)
-> TxBody (LedgerEra era)
forall s t a b. ASetter s t a b -> b -> s -> t
.~ Maybe Coin -> StrictMaybe Coin
forall a. Maybe a -> StrictMaybe a
L.maybeToStrictMaybe Maybe Coin
currentTreasuryValue
data TxOut ctx era where
TxOut :: L.EraTxOut era => L.TxOut era -> Maybe (Datum ctx era) -> TxOut ctx era
deriving instance (Show (TxOut ctx era))
deriving instance (Eq (TxOut ctx era))
data Datum ctx era where
TxOutDatumHash
:: L.DataHash
-> Datum ctx era
TxOutSupplementalDatum
:: L.DataHash
-> L.Data era
-> Datum CtxTx era
TxOutDatumInline
:: L.DataHash
-> L.Data era
-> Datum ctx era
deriving instance (Show (Datum ctx era))
deriving instance (Eq (Datum ctx era))
extractDatumsAndHashes :: Datum ctx era -> Maybe (L.DataHash, L.Data era)
extractDatumsAndHashes :: forall ctx era. Datum ctx era -> Maybe (DataHash, Data era)
extractDatumsAndHashes TxOutDatumHash{} = Maybe (DataHash, Data era)
forall a. Maybe a
Nothing
extractDatumsAndHashes (TxOutSupplementalDatum DataHash
h Data era
d) = (DataHash, Data era) -> Maybe (DataHash, Data era)
forall a. a -> Maybe a
Just (DataHash
h, Data era
d)
extractDatumsAndHashes (TxOutDatumInline DataHash
h Data era
d) = (DataHash, Data era) -> Maybe (DataHash, Data era)
forall a. a -> Maybe a
Just (DataHash
h, Data era
d)
hashableScriptDatumToDatumAndHash :: L.Era era => Api.HashableScriptData -> (L.DataHash, L.Data era)
hashableScriptDatumToDatumAndHash :: forall era. Era era => HashableScriptData -> (DataHash, Data era)
hashableScriptDatumToDatumAndHash HashableScriptData
sd =
(Hash ScriptData -> DataHash
Api.unScriptDataHash (Hash ScriptData -> DataHash) -> Hash ScriptData -> DataHash
forall a b. (a -> b) -> a -> b
$ HashableScriptData -> Hash ScriptData
Api.hashScriptDataBytes HashableScriptData
sd, HashableScriptData -> Data era
forall ledgerera.
Era ledgerera =>
HashableScriptData -> Data ledgerera
Api.toAlonzoData HashableScriptData
sd)
legacyDatumToDatum
:: forall era. IsEra era => OldApi.TxOutDatum CtxTx era -> Maybe (Datum CtxTx (LedgerEra era))
legacyDatumToDatum :: forall era.
IsEra era =>
TxOutDatum CtxTx era -> Maybe (Datum CtxTx (LedgerEra era))
legacyDatumToDatum (OldApi.TxOutDatumHash AlonzoEraOnwards era
_ Hash ScriptData
h) = Datum CtxTx (LedgerEra era) -> Maybe (Datum CtxTx (LedgerEra era))
forall a. a -> Maybe a
Just (DataHash -> Datum CtxTx (LedgerEra era)
forall ctx era. DataHash -> Datum ctx era
TxOutDatumHash (DataHash -> Datum CtxTx (LedgerEra era))
-> DataHash -> Datum CtxTx (LedgerEra era)
forall a b. (a -> b) -> a -> b
$ Hash ScriptData -> DataHash
Api.unScriptDataHash Hash ScriptData
h)
legacyDatumToDatum (OldApi.TxOutSupplementalDatum AlonzoEraOnwards era
_ HashableScriptData
hd) = do
let (DataHash
hash, Data (LedgerEra era)
d) = Era era
-> (EraCommonConstraints era => (DataHash, Data (LedgerEra era)))
-> (DataHash, Data (LedgerEra era))
forall era a. Era era -> (EraCommonConstraints era => a) -> a
obtainCommonConstraints (forall era. IsEra era => Era era
useEra @era) ((EraCommonConstraints era => (DataHash, Data (LedgerEra era)))
-> (DataHash, Data (LedgerEra era)))
-> (EraCommonConstraints era => (DataHash, Data (LedgerEra era)))
-> (DataHash, Data (LedgerEra era))
forall a b. (a -> b) -> a -> b
$ HashableScriptData -> (DataHash, Data (LedgerEra era))
forall era. Era era => HashableScriptData -> (DataHash, Data era)
hashableScriptDatumToDatumAndHash HashableScriptData
hd
Datum CtxTx (LedgerEra era) -> Maybe (Datum CtxTx (LedgerEra era))
forall a. a -> Maybe a
Just (DataHash -> Data (LedgerEra era) -> Datum CtxTx (LedgerEra era)
forall era. DataHash -> Data era -> Datum CtxTx era
TxOutSupplementalDatum DataHash
hash Data (LedgerEra era)
d)
legacyDatumToDatum (OldApi.TxOutDatumInline BabbageEraOnwards era
_ HashableScriptData
hd) = do
let (DataHash
hash, Data (LedgerEra era)
d) = Era era
-> (EraCommonConstraints era => (DataHash, Data (LedgerEra era)))
-> (DataHash, Data (LedgerEra era))
forall era a. Era era -> (EraCommonConstraints era => a) -> a
obtainCommonConstraints (forall era. IsEra era => Era era
useEra @era) ((EraCommonConstraints era => (DataHash, Data (LedgerEra era)))
-> (DataHash, Data (LedgerEra era)))
-> (EraCommonConstraints era => (DataHash, Data (LedgerEra era)))
-> (DataHash, Data (LedgerEra era))
forall a b. (a -> b) -> a -> b
$ HashableScriptData -> (DataHash, Data (LedgerEra era))
forall era. Era era => HashableScriptData -> (DataHash, Data era)
hashableScriptDatumToDatumAndHash HashableScriptData
hd
Datum CtxTx (LedgerEra era) -> Maybe (Datum CtxTx (LedgerEra era))
forall a. a -> Maybe a
Just (DataHash -> Data (LedgerEra era) -> Datum CtxTx (LedgerEra era)
forall era ctx. DataHash -> Data era -> Datum ctx era
TxOutDatumInline DataHash
hash Data (LedgerEra era)
d)
legacyDatumToDatum TxOutDatum CtxTx era
OldApi.TxOutDatumNone = Maybe (Datum CtxTx (LedgerEra era))
forall a. Maybe a
Nothing
fromLegacyTxOut :: forall era. IsEra era => OldApi.TxOut CtxTx era -> TxOut CtxTx (LedgerEra era)
fromLegacyTxOut :: forall era.
IsEra era =>
TxOut CtxTx era -> TxOut CtxTx (LedgerEra era)
fromLegacyTxOut tOut :: TxOut CtxTx era
tOut@(OldApi.TxOut AddressInEra era
_ TxOutValue era
_ TxOutDatum CtxTx era
d ReferenceScript era
_) =
let o :: TxOut (ShelleyLedgerEra era)
o = ShelleyBasedEra era
-> TxOut CtxTx era -> TxOut (ShelleyLedgerEra era)
forall ctx era ledgerera.
(HasCallStack, ShelleyLedgerEra era ~ ledgerera) =>
ShelleyBasedEra era -> TxOut ctx era -> TxOut ledgerera
OldApi.toShelleyTxOutAny (Era era -> ShelleyBasedEra era
forall era. Era era -> ShelleyBasedEra era
forall a (f :: a -> *) (g :: a -> *) (era :: a).
Convert f g =>
f era -> g era
convert (Era era -> ShelleyBasedEra era) -> Era era -> ShelleyBasedEra era
forall a b. (a -> b) -> a -> b
$ forall era. IsEra era => Era era
useEra @era) TxOut CtxTx era
tOut
in Era era
-> (EraCommonConstraints era => TxOut CtxTx (LedgerEra era))
-> TxOut CtxTx (LedgerEra era)
forall era a. Era era -> (EraCommonConstraints era => a) -> a
obtainCommonConstraints (forall era. IsEra era => Era era
useEra @era) ((EraCommonConstraints era => TxOut CtxTx (LedgerEra era))
-> TxOut CtxTx (LedgerEra era))
-> (EraCommonConstraints era => TxOut CtxTx (LedgerEra era))
-> TxOut CtxTx (LedgerEra era)
forall a b. (a -> b) -> a -> b
$ TxOut (LedgerEra era)
-> Maybe (Datum CtxTx (LedgerEra era))
-> TxOut CtxTx (LedgerEra era)
forall era ctx.
EraTxOut era =>
TxOut era -> Maybe (Datum ctx era) -> TxOut ctx era
TxOut TxOut (ShelleyLedgerEra era)
TxOut (LedgerEra era)
o (TxOutDatum CtxTx era -> Maybe (Datum CtxTx (LedgerEra era))
forall era.
IsEra era =>
TxOutDatum CtxTx era -> Maybe (Datum CtxTx (LedgerEra era))
legacyDatumToDatum TxOutDatum CtxTx era
d)
data TxInsReference era = TxInsReference [TxIn] (Set (Datum CtxTx era))
newtype TxTotalCollateral = TxTotalCollateral {TxTotalCollateral -> Coin
unTxTotalCollateral :: L.Coin}
newtype TxReturnCollateral era = TxReturnCollateral {forall era. TxReturnCollateral era -> TxOut era
unTxReturnCollateral :: L.TxOut era}
newtype TxValidityLowerBound = TxValidityLowerBound L.SlotNo
newtype = [Hash PaymentKey]
newtype TxWithdrawals era = TxWithdrawals {forall era.
TxWithdrawals era -> [(StakeAddress, Coin, AnyWitness era)]
unTxWithdrawals :: [(StakeAddress, L.Coin, AnyWitness era)]}
deriving (TxWithdrawals era -> TxWithdrawals era -> Bool
(TxWithdrawals era -> TxWithdrawals era -> Bool)
-> (TxWithdrawals era -> TxWithdrawals era -> Bool)
-> Eq (TxWithdrawals era)
forall era. TxWithdrawals era -> TxWithdrawals era -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: forall era. TxWithdrawals era -> TxWithdrawals era -> Bool
== :: TxWithdrawals era -> TxWithdrawals era -> Bool
$c/= :: forall era. TxWithdrawals era -> TxWithdrawals era -> Bool
/= :: TxWithdrawals era -> TxWithdrawals era -> Bool
Eq, Int -> TxWithdrawals era -> ShowS
[TxWithdrawals era] -> ShowS
TxWithdrawals era -> [Char]
(Int -> TxWithdrawals era -> ShowS)
-> (TxWithdrawals era -> [Char])
-> ([TxWithdrawals era] -> ShowS)
-> Show (TxWithdrawals era)
forall era. Int -> TxWithdrawals era -> ShowS
forall era. [TxWithdrawals era] -> ShowS
forall era. TxWithdrawals era -> [Char]
forall a.
(Int -> a -> ShowS) -> (a -> [Char]) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: forall era. Int -> TxWithdrawals era -> ShowS
showsPrec :: Int -> TxWithdrawals era -> ShowS
$cshow :: forall era. TxWithdrawals era -> [Char]
show :: TxWithdrawals era -> [Char]
$cshowList :: forall era. [TxWithdrawals era] -> ShowS
showList :: [TxWithdrawals era] -> ShowS
Show)
newtype TxCertificates era
= TxCertificates
{forall era.
TxCertificates era
-> OMap (Certificate era) (Maybe (StakeCredential, AnyWitness era))
unTxCertificates :: OMap (Exp.Certificate era) (Maybe (StakeCredential, AnyWitness era))}
deriving (Int -> TxCertificates era -> ShowS
[TxCertificates era] -> ShowS
TxCertificates era -> [Char]
(Int -> TxCertificates era -> ShowS)
-> (TxCertificates era -> [Char])
-> ([TxCertificates era] -> ShowS)
-> Show (TxCertificates era)
forall era. Int -> TxCertificates era -> ShowS
forall era. [TxCertificates era] -> ShowS
forall era. TxCertificates era -> [Char]
forall a.
(Int -> a -> ShowS) -> (a -> [Char]) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: forall era. Int -> TxCertificates era -> ShowS
showsPrec :: Int -> TxCertificates era -> ShowS
$cshow :: forall era. TxCertificates era -> [Char]
show :: TxCertificates era -> [Char]
$cshowList :: forall era. [TxCertificates era] -> ShowS
showList :: [TxCertificates era] -> ShowS
Show, TxCertificates era -> TxCertificates era -> Bool
(TxCertificates era -> TxCertificates era -> Bool)
-> (TxCertificates era -> TxCertificates era -> Bool)
-> Eq (TxCertificates era)
forall era. TxCertificates era -> TxCertificates era -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: forall era. TxCertificates era -> TxCertificates era -> Bool
== :: TxCertificates era -> TxCertificates era -> Bool
$c/= :: forall era. TxCertificates era -> TxCertificates era -> Bool
/= :: TxCertificates era -> TxCertificates era -> Bool
Eq)
mkTxCertificates
:: forall era
. Era era
-> [(Exp.Certificate (LedgerEra era), AnyWitness (LedgerEra era))]
-> TxCertificates (LedgerEra era)
mkTxCertificates :: forall era.
Era era
-> [(Certificate (LedgerEra era), AnyWitness (LedgerEra era))]
-> TxCertificates (LedgerEra era)
mkTxCertificates Era era
era [(Certificate (LedgerEra era), AnyWitness (LedgerEra era))]
certs = OMap
(Certificate (LedgerEra era))
(Maybe (StakeCredential, AnyWitness (LedgerEra era)))
-> TxCertificates (LedgerEra era)
forall era.
OMap (Certificate era) (Maybe (StakeCredential, AnyWitness era))
-> TxCertificates era
TxCertificates (OMap
(Certificate (LedgerEra era))
(Maybe (StakeCredential, AnyWitness (LedgerEra era)))
-> TxCertificates (LedgerEra era))
-> ([(Certificate (LedgerEra era),
Maybe (StakeCredential, AnyWitness (LedgerEra era)))]
-> OMap
(Certificate (LedgerEra era))
(Maybe (StakeCredential, AnyWitness (LedgerEra era))))
-> [(Certificate (LedgerEra era),
Maybe (StakeCredential, AnyWitness (LedgerEra era)))]
-> TxCertificates (LedgerEra era)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. [(Certificate (LedgerEra era),
Maybe (StakeCredential, AnyWitness (LedgerEra era)))]
-> OMap
(Certificate (LedgerEra era))
(Maybe (StakeCredential, AnyWitness (LedgerEra era)))
forall k v. Ord k => [(k, v)] -> OMap k v
OMap.fromList ([(Certificate (LedgerEra era),
Maybe (StakeCredential, AnyWitness (LedgerEra era)))]
-> TxCertificates (LedgerEra era))
-> [(Certificate (LedgerEra era),
Maybe (StakeCredential, AnyWitness (LedgerEra era)))]
-> TxCertificates (LedgerEra era)
forall a b. (a -> b) -> a -> b
$ ((Certificate (LedgerEra era), AnyWitness (LedgerEra era))
-> (Certificate (LedgerEra era),
Maybe (StakeCredential, AnyWitness (LedgerEra era))))
-> [(Certificate (LedgerEra era), AnyWitness (LedgerEra era))]
-> [(Certificate (LedgerEra era),
Maybe (StakeCredential, AnyWitness (LedgerEra era)))]
forall a b. (a -> b) -> [a] -> [b]
map (Certificate (LedgerEra era), AnyWitness (LedgerEra era))
-> (Certificate (LedgerEra era),
Maybe (StakeCredential, AnyWitness (LedgerEra era)))
getStakeCred [(Certificate (LedgerEra era), AnyWitness (LedgerEra era))]
certs
where
getStakeCred
:: (Exp.Certificate (LedgerEra era), AnyWitness (LedgerEra era))
-> ( Exp.Certificate (LedgerEra era)
, Maybe (StakeCredential, AnyWitness (LedgerEra era))
)
getStakeCred :: (Certificate (LedgerEra era), AnyWitness (LedgerEra era))
-> (Certificate (LedgerEra era),
Maybe (StakeCredential, AnyWitness (LedgerEra era)))
getStakeCred (c :: Certificate (LedgerEra era)
c@(Exp.Certificate TxCert (LedgerEra era)
cert), AnyWitness (LedgerEra era)
wit) =
(Certificate (LedgerEra era)
c, (,AnyWitness (LedgerEra era)
wit) (StakeCredential -> (StakeCredential, AnyWitness (LedgerEra era)))
-> Maybe StakeCredential
-> Maybe (StakeCredential, AnyWitness (LedgerEra era))
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> ShelleyBasedEra era
-> TxCert (ShelleyLedgerEra era) -> Maybe StakeCredential
forall era.
ShelleyBasedEra era
-> TxCert (ShelleyLedgerEra era) -> Maybe StakeCredential
getTxCertWitness (Era era -> ShelleyBasedEra era
forall era. Era era -> ShelleyBasedEra era
forall a (f :: a -> *) (g :: a -> *) (era :: a).
Convert f g =>
f era -> g era
convert Era era
era) (Era era
-> (EraCommonConstraints era => TxCert (ShelleyLedgerEra era))
-> TxCert (ShelleyLedgerEra era)
forall era a. Era era -> (EraCommonConstraints era => a) -> a
obtainCommonConstraints Era era
era TxCert (ShelleyLedgerEra era)
TxCert (LedgerEra era)
EraCommonConstraints era => TxCert (ShelleyLedgerEra era)
cert))
newtype TxMintValue era
= TxMintValue
{ forall era.
TxMintValue era -> Map PolicyId (PolicyAssets, AnyWitness era)
unTxMintValue
:: Map
PolicyId
( PolicyAssets
, AnyWitness era
)
}
deriving (TxMintValue era -> TxMintValue era -> Bool
(TxMintValue era -> TxMintValue era -> Bool)
-> (TxMintValue era -> TxMintValue era -> Bool)
-> Eq (TxMintValue era)
forall era. TxMintValue era -> TxMintValue era -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: forall era. TxMintValue era -> TxMintValue era -> Bool
== :: TxMintValue era -> TxMintValue era -> Bool
$c/= :: forall era. TxMintValue era -> TxMintValue era -> Bool
/= :: TxMintValue era -> TxMintValue era -> Bool
Eq, Int -> TxMintValue era -> ShowS
[TxMintValue era] -> ShowS
TxMintValue era -> [Char]
(Int -> TxMintValue era -> ShowS)
-> (TxMintValue era -> [Char])
-> ([TxMintValue era] -> ShowS)
-> Show (TxMintValue era)
forall era. Int -> TxMintValue era -> ShowS
forall era. [TxMintValue era] -> ShowS
forall era. TxMintValue era -> [Char]
forall a.
(Int -> a -> ShowS) -> (a -> [Char]) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: forall era. Int -> TxMintValue era -> ShowS
showsPrec :: Int -> TxMintValue era -> ShowS
$cshow :: forall era. TxMintValue era -> [Char]
show :: TxMintValue era -> [Char]
$cshowList :: forall era. [TxMintValue era] -> ShowS
showList :: [TxMintValue era] -> ShowS
Show)
txMintValueToValue :: TxMintValue era -> Value
txMintValueToValue :: forall era. TxMintValue era -> Value
txMintValueToValue (TxMintValue Map PolicyId (PolicyAssets, AnyWitness era)
policiesWithAssets) =
[Value] -> Value
forall a. Monoid a => [a] -> a
mconcat
[ PolicyId -> PolicyAssets -> Value
policyAssetsToValue PolicyId
policyId PolicyAssets
assets
| (PolicyId
policyId, (PolicyAssets
assets, AnyWitness era
_witness)) <- Map PolicyId (PolicyAssets, AnyWitness era)
-> [Item (Map PolicyId (PolicyAssets, AnyWitness era))]
forall l. IsList l => l -> [Item l]
toList Map PolicyId (PolicyAssets, AnyWitness era)
policiesWithAssets
]
newtype TxProposalProcedures era
= TxProposalProcedures
( OMap
(L.ProposalProcedure era)
(AnyWitness era)
)
deriving (Int -> TxProposalProcedures era -> ShowS
[TxProposalProcedures era] -> ShowS
TxProposalProcedures era -> [Char]
(Int -> TxProposalProcedures era -> ShowS)
-> (TxProposalProcedures era -> [Char])
-> ([TxProposalProcedures era] -> ShowS)
-> Show (TxProposalProcedures era)
forall era.
EraPParams era =>
Int -> TxProposalProcedures era -> ShowS
forall era. EraPParams era => [TxProposalProcedures era] -> ShowS
forall era. EraPParams era => TxProposalProcedures era -> [Char]
forall a.
(Int -> a -> ShowS) -> (a -> [Char]) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: forall era.
EraPParams era =>
Int -> TxProposalProcedures era -> ShowS
showsPrec :: Int -> TxProposalProcedures era -> ShowS
$cshow :: forall era. EraPParams era => TxProposalProcedures era -> [Char]
show :: TxProposalProcedures era -> [Char]
$cshowList :: forall era. EraPParams era => [TxProposalProcedures era] -> ShowS
showList :: [TxProposalProcedures era] -> ShowS
Show, TxProposalProcedures era -> TxProposalProcedures era -> Bool
(TxProposalProcedures era -> TxProposalProcedures era -> Bool)
-> (TxProposalProcedures era -> TxProposalProcedures era -> Bool)
-> Eq (TxProposalProcedures era)
forall era.
EraPParams era =>
TxProposalProcedures era -> TxProposalProcedures era -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: forall era.
EraPParams era =>
TxProposalProcedures era -> TxProposalProcedures era -> Bool
== :: TxProposalProcedures era -> TxProposalProcedures era -> Bool
$c/= :: forall era.
EraPParams era =>
TxProposalProcedures era -> TxProposalProcedures era -> Bool
/= :: TxProposalProcedures era -> TxProposalProcedures era -> Bool
Eq)
mkTxProposalProcedures
:: forall era
. IsEra era
=> [(L.ProposalProcedure (LedgerEra era), AnyWitness (LedgerEra era))]
-> TxProposalProcedures (LedgerEra era)
mkTxProposalProcedures :: forall era.
IsEra era =>
[(ProposalProcedure (LedgerEra era), AnyWitness (LedgerEra era))]
-> TxProposalProcedures (LedgerEra era)
mkTxProposalProcedures [(ProposalProcedure (LedgerEra era), AnyWitness (LedgerEra era))]
proposals = do
OMap
(ProposalProcedure (LedgerEra era)) (AnyWitness (LedgerEra era))
-> TxProposalProcedures (LedgerEra era)
forall era.
OMap (ProposalProcedure era) (AnyWitness era)
-> TxProposalProcedures era
TxProposalProcedures (OMap
(ProposalProcedure (LedgerEra era)) (AnyWitness (LedgerEra era))
-> TxProposalProcedures (LedgerEra era))
-> OMap
(ProposalProcedure (LedgerEra era)) (AnyWitness (LedgerEra era))
-> TxProposalProcedures (LedgerEra era)
forall a b. (a -> b) -> a -> b
$
Era era
-> (EraCommonConstraints era =>
OMap
(ProposalProcedure (LedgerEra era)) (AnyWitness (LedgerEra era)))
-> OMap
(ProposalProcedure (LedgerEra era)) (AnyWitness (LedgerEra era))
forall era a. Era era -> (EraCommonConstraints era => a) -> a
obtainCommonConstraints (forall era. IsEra era => Era era
useEra @era) ((EraCommonConstraints era =>
OMap
(ProposalProcedure (LedgerEra era)) (AnyWitness (LedgerEra era)))
-> OMap
(ProposalProcedure (LedgerEra era)) (AnyWitness (LedgerEra era)))
-> (EraCommonConstraints era =>
OMap
(ProposalProcedure (LedgerEra era)) (AnyWitness (LedgerEra era)))
-> OMap
(ProposalProcedure (LedgerEra era)) (AnyWitness (LedgerEra era))
forall a b. (a -> b) -> a -> b
$
[(ProposalProcedure (LedgerEra era), AnyWitness (LedgerEra era))]
-> OMap
(ProposalProcedure (LedgerEra era)) (AnyWitness (LedgerEra era))
forall k v. Ord k => [(k, v)] -> OMap k v
OMap.fromList [(ProposalProcedure (LedgerEra era), AnyWitness (LedgerEra era))]
proposals
data TxVotingProcedures era
= TxVotingProcedures
(L.VotingProcedures era)
(Map L.Voter (AnyWitness era))
deriving (TxVotingProcedures era -> TxVotingProcedures era -> Bool
(TxVotingProcedures era -> TxVotingProcedures era -> Bool)
-> (TxVotingProcedures era -> TxVotingProcedures era -> Bool)
-> Eq (TxVotingProcedures era)
forall era.
TxVotingProcedures era -> TxVotingProcedures era -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: forall era.
TxVotingProcedures era -> TxVotingProcedures era -> Bool
== :: TxVotingProcedures era -> TxVotingProcedures era -> Bool
$c/= :: forall era.
TxVotingProcedures era -> TxVotingProcedures era -> Bool
/= :: TxVotingProcedures era -> TxVotingProcedures era -> Bool
Eq, Int -> TxVotingProcedures era -> ShowS
[TxVotingProcedures era] -> ShowS
TxVotingProcedures era -> [Char]
(Int -> TxVotingProcedures era -> ShowS)
-> (TxVotingProcedures era -> [Char])
-> ([TxVotingProcedures era] -> ShowS)
-> Show (TxVotingProcedures era)
forall era. Int -> TxVotingProcedures era -> ShowS
forall era. [TxVotingProcedures era] -> ShowS
forall era. TxVotingProcedures era -> [Char]
forall a.
(Int -> a -> ShowS) -> (a -> [Char]) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: forall era. Int -> TxVotingProcedures era -> ShowS
showsPrec :: Int -> TxVotingProcedures era -> ShowS
$cshow :: forall era. TxVotingProcedures era -> [Char]
show :: TxVotingProcedures era -> [Char]
$cshowList :: forall era. [TxVotingProcedures era] -> ShowS
showList :: [TxVotingProcedures era] -> ShowS
Show)
mkTxVotingProcedures
:: forall era
. [(L.VotingProcedures era, AnyWitness era)]
-> Either (VotesMergingConflict era) (TxVotingProcedures era)
mkTxVotingProcedures :: forall era.
[(VotingProcedures era, AnyWitness era)]
-> Either (VotesMergingConflict era) (TxVotingProcedures era)
mkTxVotingProcedures [(VotingProcedures era, AnyWitness era)]
votingProcedures = do
procedure <-
(VotingProcedures era
-> (VotingProcedures era, AnyWitness era)
-> Either (VotesMergingConflict era) (VotingProcedures era))
-> VotingProcedures era
-> [(VotingProcedures era, AnyWitness era)]
-> Either (VotesMergingConflict era) (VotingProcedures era)
forall (t :: * -> *) (m :: * -> *) b a.
(Foldable t, Monad m) =>
(b -> a -> m b) -> b -> t a -> m b
foldM VotingProcedures era
-> (VotingProcedures era, AnyWitness era)
-> Either (VotesMergingConflict era) (VotingProcedures era)
f (Map Voter (Map GovActionId (VotingProcedure era))
-> VotingProcedures era
forall era.
Map Voter (Map GovActionId (VotingProcedure era))
-> VotingProcedures era
L.VotingProcedures Map Voter (Map GovActionId (VotingProcedure era))
forall k a. Map k a
Map.empty) [(VotingProcedures era, AnyWitness era)]
votingProcedures
pure $ TxVotingProcedures procedure votingScriptWitnessMap
where
votingScriptWitnessMap :: Map L.Voter (AnyWitness era)
votingScriptWitnessMap :: Map Voter (AnyWitness era)
votingScriptWitnessMap =
(Map Voter (AnyWitness era)
-> (VotingProcedures era, AnyWitness era)
-> Map Voter (AnyWitness era))
-> Map Voter (AnyWitness era)
-> [(VotingProcedures era, AnyWitness era)]
-> Map Voter (AnyWitness era)
forall b a. (b -> a -> b) -> b -> [a] -> b
forall (t :: * -> *) b a.
Foldable t =>
(b -> a -> b) -> b -> t a -> b
foldl
(\Map Voter (AnyWitness era)
acc (VotingProcedures era, AnyWitness era)
next -> Map Voter (AnyWitness era)
acc Map Voter (AnyWitness era)
-> Map Voter (AnyWitness era) -> Map Voter (AnyWitness era)
forall k a. Ord k => Map k a -> Map k a -> Map k a
`Map.union` (VotingProcedures era
-> AnyWitness era -> Map Voter (AnyWitness era))
-> (VotingProcedures era, AnyWitness era)
-> Map Voter (AnyWitness era)
forall a b c. (a -> b -> c) -> (a, b) -> c
uncurry VotingProcedures era
-> AnyWitness era -> Map Voter (AnyWitness era)
votingScriptWitnessSingleton (VotingProcedures era, AnyWitness era)
next)
Map Voter (AnyWitness era)
forall k a. Map k a
Map.empty
[(VotingProcedures era, AnyWitness era)]
votingProcedures
f
:: L.VotingProcedures era
-> (L.VotingProcedures era, AnyWitness era)
-> Either (VotesMergingConflict era) (L.VotingProcedures era)
f :: VotingProcedures era
-> (VotingProcedures era, AnyWitness era)
-> Either (VotesMergingConflict era) (VotingProcedures era)
f VotingProcedures era
acc (VotingProcedures era
procedure, AnyWitness era
_witness) = VotingProcedures era
-> VotingProcedures era
-> Either (VotesMergingConflict era) (VotingProcedures era)
forall era.
VotingProcedures era
-> VotingProcedures era
-> Either (VotesMergingConflict era) (VotingProcedures era)
mergeVotingProcedures VotingProcedures era
acc VotingProcedures era
procedure
votingScriptWitnessSingleton
:: L.VotingProcedures era
-> AnyWitness era
-> Map L.Voter (AnyWitness era)
votingScriptWitnessSingleton :: VotingProcedures era
-> AnyWitness era -> Map Voter (AnyWitness era)
votingScriptWitnessSingleton VotingProcedures era
votingProcedures' AnyWitness era
scriptWitness = do
let voter :: Voter
voter = Maybe Voter -> Voter
forall a. HasCallStack => Maybe a -> a
fromJust (Maybe Voter -> Voter) -> Maybe Voter -> Voter
forall a b. (a -> b) -> a -> b
$ VotingProcedures era -> Maybe Voter
getVotingScriptCredentials VotingProcedures era
votingProcedures'
Voter -> AnyWitness era -> Map Voter (AnyWitness era)
forall k a. k -> a -> Map k a
Map.singleton Voter
voter AnyWitness era
scriptWitness
getVotingScriptCredentials
:: L.VotingProcedures era
-> Maybe L.Voter
getVotingScriptCredentials :: VotingProcedures era -> Maybe Voter
getVotingScriptCredentials (L.VotingProcedures Map Voter (Map GovActionId (VotingProcedure era))
m) =
[Voter] -> Maybe Voter
forall a. [a] -> Maybe a
listToMaybe ([Voter] -> Maybe Voter) -> [Voter] -> Maybe Voter
forall a b. (a -> b) -> a -> b
$ Map Voter (Map GovActionId (VotingProcedure era)) -> [Voter]
forall k a. Map k a -> [k]
Map.keys Map Voter (Map GovActionId (VotingProcedure era))
m
data TxBodyContent era
= TxBodyContent
{ forall era. TxBodyContent era -> [(TxIn, AnyWitness era)]
txIns :: [(TxIn, AnyWitness era)]
, forall era. TxBodyContent era -> [TxIn]
txInsCollateral :: [TxIn]
, forall era. TxBodyContent era -> TxInsReference era
txInsReference :: TxInsReference era
, forall era. TxBodyContent era -> [TxOut CtxTx era]
txOuts :: [TxOut CtxTx era]
, forall era. TxBodyContent era -> Maybe TxTotalCollateral
txTotalCollateral :: Maybe TxTotalCollateral
, forall era. TxBodyContent era -> Maybe (TxReturnCollateral era)
txReturnCollateral :: Maybe (TxReturnCollateral era)
, forall era. TxBodyContent era -> Coin
txFee :: L.Coin
, forall era. TxBodyContent era -> Maybe SlotNo
txValidityLowerBound :: Maybe L.SlotNo
, forall era. TxBodyContent era -> Maybe SlotNo
txValidityUpperBound :: Maybe L.SlotNo
, forall era. TxBodyContent era -> TxMetadata
txMetadata :: TxMetadata
, forall era. TxBodyContent era -> [SimpleScript era]
txAuxScripts :: [SimpleScript era]
, :: TxExtraKeyWitnesses
, forall era. TxBodyContent era -> Maybe (PParams era)
txProtocolParams :: Maybe (L.PParams era)
, forall era. TxBodyContent era -> TxWithdrawals era
txWithdrawals :: TxWithdrawals era
, forall era. TxBodyContent era -> TxCertificates era
txCertificates :: TxCertificates era
, forall era. TxBodyContent era -> TxMintValue era
txMintValue :: TxMintValue era
, forall era. TxBodyContent era -> ScriptValidity
txScriptValidity :: ScriptValidity
, forall era. TxBodyContent era -> Maybe (TxProposalProcedures era)
txProposalProcedures :: Maybe (TxProposalProcedures era)
, forall era. TxBodyContent era -> Maybe (TxVotingProcedures era)
txVotingProcedures :: Maybe (TxVotingProcedures era)
, forall era. TxBodyContent era -> Maybe Coin
txCurrentTreasuryValue :: Maybe L.Coin
, forall era. TxBodyContent era -> Maybe Coin
txTreasuryDonation :: Maybe L.Coin
}
defaultTxBodyContent
:: TxBodyContent era
defaultTxBodyContent :: forall era. TxBodyContent era
defaultTxBodyContent =
TxBodyContent
{ txIns :: [(TxIn, AnyWitness era)]
txIns = []
, txInsCollateral :: [TxIn]
txInsCollateral = []
, txInsReference :: TxInsReference era
txInsReference = [TxIn] -> Set (Datum CtxTx era) -> TxInsReference era
forall era. [TxIn] -> Set (Datum CtxTx era) -> TxInsReference era
TxInsReference [TxIn]
forall a. Monoid a => a
mempty Set (Datum CtxTx era)
forall a. Set a
Set.empty
, txOuts :: [TxOut CtxTx era]
txOuts = []
, txTotalCollateral :: Maybe TxTotalCollateral
txTotalCollateral = Maybe TxTotalCollateral
forall a. Maybe a
Nothing
, txReturnCollateral :: Maybe (TxReturnCollateral era)
txReturnCollateral = Maybe (TxReturnCollateral era)
forall a. Maybe a
Nothing
, txFee :: Coin
txFee = Coin
0
, txValidityLowerBound :: Maybe SlotNo
txValidityLowerBound = Maybe SlotNo
forall a. Maybe a
Nothing
, txValidityUpperBound :: Maybe SlotNo
txValidityUpperBound = Maybe SlotNo
forall a. Maybe a
Nothing
, txMetadata :: TxMetadata
txMetadata = Map Word64 TxMetadataValue -> TxMetadata
TxMetadata Map Word64 TxMetadataValue
forall a. Monoid a => a
mempty
, txAuxScripts :: [SimpleScript era]
txAuxScripts = []
, txExtraKeyWits :: TxExtraKeyWitnesses
txExtraKeyWits = [Hash PaymentKey] -> TxExtraKeyWitnesses
TxExtraKeyWitnesses []
, txProtocolParams :: Maybe (PParams era)
txProtocolParams = Maybe (PParams era)
forall a. Maybe a
Nothing
, txWithdrawals :: TxWithdrawals era
txWithdrawals = [(StakeAddress, Coin, AnyWitness era)] -> TxWithdrawals era
forall era.
[(StakeAddress, Coin, AnyWitness era)] -> TxWithdrawals era
TxWithdrawals [(StakeAddress, Coin, AnyWitness era)]
forall a. Monoid a => a
mempty
, txCertificates :: TxCertificates era
txCertificates = OMap (Certificate era) (Maybe (StakeCredential, AnyWitness era))
-> TxCertificates era
forall era.
OMap (Certificate era) (Maybe (StakeCredential, AnyWitness era))
-> TxCertificates era
TxCertificates OMap (Certificate era) (Maybe (StakeCredential, AnyWitness era))
forall k v. OMap k v
OMap.empty
, txMintValue :: TxMintValue era
txMintValue = Map PolicyId (PolicyAssets, AnyWitness era) -> TxMintValue era
forall era.
Map PolicyId (PolicyAssets, AnyWitness era) -> TxMintValue era
TxMintValue Map PolicyId (PolicyAssets, AnyWitness era)
forall a. Monoid a => a
mempty
, txScriptValidity :: ScriptValidity
txScriptValidity = ScriptValidity
ScriptValid
, txProposalProcedures :: Maybe (TxProposalProcedures era)
txProposalProcedures = Maybe (TxProposalProcedures era)
forall a. Maybe a
Nothing
, txVotingProcedures :: Maybe (TxVotingProcedures era)
txVotingProcedures = Maybe (TxVotingProcedures era)
forall a. Maybe a
Nothing
, txCurrentTreasuryValue :: Maybe Coin
txCurrentTreasuryValue = Maybe Coin
forall a. Maybe a
Nothing
, txTreasuryDonation :: Maybe Coin
txTreasuryDonation = Maybe Coin
forall a. Maybe a
Nothing
}
extractAllIndexedPlutusScriptWitnesses
:: forall era
. Era era
-> TxBodyContent (LedgerEra era)
-> Either
CBOR.DecoderError
[AnyIndexedPlutusScriptWitness (LedgerEra era)]
Era era
era TxBodyContent (LedgerEra era)
b = Era era
-> (EraCommonConstraints era =>
Either
DecoderError [AnyIndexedPlutusScriptWitness (LedgerEra era)])
-> Either
DecoderError [AnyIndexedPlutusScriptWitness (LedgerEra era)]
forall era a. Era era -> (EraCommonConstraints era => a) -> a
obtainCommonConstraints Era era
era ((EraCommonConstraints era =>
Either
DecoderError [AnyIndexedPlutusScriptWitness (LedgerEra era)])
-> Either
DecoderError [AnyIndexedPlutusScriptWitness (LedgerEra era)])
-> (EraCommonConstraints era =>
Either
DecoderError [AnyIndexedPlutusScriptWitness (LedgerEra era)])
-> Either
DecoderError [AnyIndexedPlutusScriptWitness (LedgerEra era)]
forall a b. (a -> b) -> a -> b
$ do
let txInWits :: [(Witnessable 'TxInItem (LedgerEra era),
AnyWitness (LedgerEra era))]
txInWits = [(TxIn, AnyWitness (LedgerEra era))]
-> [(Witnessable 'TxInItem (LedgerEra era),
AnyWitness (LedgerEra era))]
forall era.
IsEra era =>
[(TxIn, AnyWitness (LedgerEra era))]
-> [(Witnessable 'TxInItem (LedgerEra era),
AnyWitness (LedgerEra era))]
extractWitnessableTxIns ([(TxIn, AnyWitness (LedgerEra era))]
-> [(Witnessable 'TxInItem (LedgerEra era),
AnyWitness (LedgerEra era))])
-> [(TxIn, AnyWitness (LedgerEra era))]
-> [(Witnessable 'TxInItem (LedgerEra era),
AnyWitness (LedgerEra era))]
forall a b. (a -> b) -> a -> b
$ TxBodyContent (LedgerEra era)
-> [(TxIn, AnyWitness (LedgerEra era))]
forall era. TxBodyContent era -> [(TxIn, AnyWitness era)]
txIns TxBodyContent (LedgerEra era)
b
certWits :: [(Witnessable 'CertItem (LedgerEra era),
AnyWitness (LedgerEra era))]
certWits = TxCertificates (LedgerEra era)
-> [(Witnessable 'CertItem (LedgerEra era),
AnyWitness (LedgerEra era))]
forall era.
IsEra era =>
TxCertificates (LedgerEra era)
-> [(Witnessable 'CertItem (LedgerEra era),
AnyWitness (LedgerEra era))]
extractWitnessableCertificates (TxCertificates (LedgerEra era)
-> [(Witnessable 'CertItem (LedgerEra era),
AnyWitness (LedgerEra era))])
-> TxCertificates (LedgerEra era)
-> [(Witnessable 'CertItem (LedgerEra era),
AnyWitness (LedgerEra era))]
forall a b. (a -> b) -> a -> b
$ TxBodyContent (LedgerEra era) -> TxCertificates (LedgerEra era)
forall era. TxBodyContent era -> TxCertificates era
txCertificates TxBodyContent (LedgerEra era)
b
mintWits :: [(Witnessable 'MintItem (LedgerEra era),
AnyWitness (LedgerEra era))]
mintWits = TxMintValue (LedgerEra era)
-> [(Witnessable 'MintItem (LedgerEra era),
AnyWitness (LedgerEra era))]
forall era.
IsEra era =>
TxMintValue (LedgerEra era)
-> [(Witnessable 'MintItem (LedgerEra era),
AnyWitness (LedgerEra era))]
extractWitnessableMints (TxMintValue (LedgerEra era)
-> [(Witnessable 'MintItem (LedgerEra era),
AnyWitness (LedgerEra era))])
-> TxMintValue (LedgerEra era)
-> [(Witnessable 'MintItem (LedgerEra era),
AnyWitness (LedgerEra era))]
forall a b. (a -> b) -> a -> b
$ TxBodyContent (LedgerEra era) -> TxMintValue (LedgerEra era)
forall era. TxBodyContent era -> TxMintValue era
txMintValue TxBodyContent (LedgerEra era)
b
withdrawalWits :: [(Witnessable 'WithdrawalItem (LedgerEra era),
AnyWitness (LedgerEra era))]
withdrawalWits = TxWithdrawals (LedgerEra era)
-> [(Witnessable 'WithdrawalItem (LedgerEra era),
AnyWitness (LedgerEra era))]
forall era.
IsEra era =>
TxWithdrawals (LedgerEra era)
-> [(Witnessable 'WithdrawalItem (LedgerEra era),
AnyWitness (LedgerEra era))]
extractWitnessableWithdrawals (TxWithdrawals (LedgerEra era)
-> [(Witnessable 'WithdrawalItem (LedgerEra era),
AnyWitness (LedgerEra era))])
-> TxWithdrawals (LedgerEra era)
-> [(Witnessable 'WithdrawalItem (LedgerEra era),
AnyWitness (LedgerEra era))]
forall a b. (a -> b) -> a -> b
$ TxBodyContent (LedgerEra era) -> TxWithdrawals (LedgerEra era)
forall era. TxBodyContent era -> TxWithdrawals era
txWithdrawals TxBodyContent (LedgerEra era)
b
proposalScriptWits :: [(Witnessable 'ProposalItem (LedgerEra era),
AnyWitness (LedgerEra era))]
proposalScriptWits = Maybe (TxProposalProcedures (LedgerEra era))
-> [(Witnessable 'ProposalItem (LedgerEra era),
AnyWitness (LedgerEra era))]
forall era.
IsEra era =>
Maybe (TxProposalProcedures (LedgerEra era))
-> [(Witnessable 'ProposalItem (LedgerEra era),
AnyWitness (LedgerEra era))]
extractWitnessableProposals (Maybe (TxProposalProcedures (LedgerEra era))
-> [(Witnessable 'ProposalItem (LedgerEra era),
AnyWitness (LedgerEra era))])
-> Maybe (TxProposalProcedures (LedgerEra era))
-> [(Witnessable 'ProposalItem (LedgerEra era),
AnyWitness (LedgerEra era))]
forall a b. (a -> b) -> a -> b
$ TxBodyContent (LedgerEra era)
-> Maybe (TxProposalProcedures (LedgerEra era))
forall era. TxBodyContent era -> Maybe (TxProposalProcedures era)
txProposalProcedures TxBodyContent (LedgerEra era)
b
voteWits :: [(Witnessable 'VoterItem (LedgerEra era),
AnyWitness (LedgerEra era))]
voteWits = Maybe (TxVotingProcedures (LedgerEra era))
-> [(Witnessable 'VoterItem (LedgerEra era),
AnyWitness (LedgerEra era))]
forall era.
IsEra era =>
Maybe (TxVotingProcedures (LedgerEra era))
-> [(Witnessable 'VoterItem (LedgerEra era),
AnyWitness (LedgerEra era))]
extractWitnessableVotes (Maybe (TxVotingProcedures (LedgerEra era))
-> [(Witnessable 'VoterItem (LedgerEra era),
AnyWitness (LedgerEra era))])
-> Maybe (TxVotingProcedures (LedgerEra era))
-> [(Witnessable 'VoterItem (LedgerEra era),
AnyWitness (LedgerEra era))]
forall a b. (a -> b) -> a -> b
$ TxBodyContent (LedgerEra era)
-> Maybe (TxVotingProcedures (LedgerEra era))
forall era. TxBodyContent era -> Maybe (TxVotingProcedures era)
txVotingProcedures TxBodyContent (LedgerEra era)
b
let indexedScriptTxInWits :: [AnyIndexedPlutusScriptWitness (LedgerEra era)]
indexedScriptTxInWits = Era era
-> (EraCommonConstraints era =>
[AnyIndexedPlutusScriptWitness (LedgerEra era)])
-> [AnyIndexedPlutusScriptWitness (LedgerEra era)]
forall era a. Era era -> (EraCommonConstraints era => a) -> a
obtainCommonConstraints Era era
era ((EraCommonConstraints era =>
[AnyIndexedPlutusScriptWitness (LedgerEra era)])
-> [AnyIndexedPlutusScriptWitness (LedgerEra era)])
-> (EraCommonConstraints era =>
[AnyIndexedPlutusScriptWitness (LedgerEra era)])
-> [AnyIndexedPlutusScriptWitness (LedgerEra era)]
forall a b. (a -> b) -> a -> b
$ [(Witnessable 'TxInItem (LedgerEra era),
AnyWitness (LedgerEra era))]
-> [AnyIndexedPlutusScriptWitness (LedgerEra era)]
forall era (witnessable :: WitnessableItem).
AlonzoEraScript era =>
[(Witnessable witnessable era, AnyWitness era)]
-> [AnyIndexedPlutusScriptWitness era]
createIndexedPlutusScriptWitnesses [(Witnessable 'TxInItem (LedgerEra era),
AnyWitness (LedgerEra era))]
txInWits
indexedCertScriptWits :: [AnyIndexedPlutusScriptWitness (LedgerEra era)]
indexedCertScriptWits = Era era
-> (EraCommonConstraints era =>
[AnyIndexedPlutusScriptWitness (LedgerEra era)])
-> [AnyIndexedPlutusScriptWitness (LedgerEra era)]
forall era a. Era era -> (EraCommonConstraints era => a) -> a
obtainCommonConstraints Era era
era ((EraCommonConstraints era =>
[AnyIndexedPlutusScriptWitness (LedgerEra era)])
-> [AnyIndexedPlutusScriptWitness (LedgerEra era)])
-> (EraCommonConstraints era =>
[AnyIndexedPlutusScriptWitness (LedgerEra era)])
-> [AnyIndexedPlutusScriptWitness (LedgerEra era)]
forall a b. (a -> b) -> a -> b
$ [(Witnessable 'CertItem (LedgerEra era),
AnyWitness (LedgerEra era))]
-> [AnyIndexedPlutusScriptWitness (LedgerEra era)]
forall era (witnessable :: WitnessableItem).
AlonzoEraScript era =>
[(Witnessable witnessable era, AnyWitness era)]
-> [AnyIndexedPlutusScriptWitness era]
createIndexedPlutusScriptWitnesses [(Witnessable 'CertItem (LedgerEra era),
AnyWitness (LedgerEra era))]
certWits
indexedMintScriptWits :: [AnyIndexedPlutusScriptWitness (LedgerEra era)]
indexedMintScriptWits = Era era
-> (EraCommonConstraints era =>
[AnyIndexedPlutusScriptWitness (LedgerEra era)])
-> [AnyIndexedPlutusScriptWitness (LedgerEra era)]
forall era a. Era era -> (EraCommonConstraints era => a) -> a
obtainCommonConstraints Era era
era ((EraCommonConstraints era =>
[AnyIndexedPlutusScriptWitness (LedgerEra era)])
-> [AnyIndexedPlutusScriptWitness (LedgerEra era)])
-> (EraCommonConstraints era =>
[AnyIndexedPlutusScriptWitness (LedgerEra era)])
-> [AnyIndexedPlutusScriptWitness (LedgerEra era)]
forall a b. (a -> b) -> a -> b
$ [(Witnessable 'MintItem (LedgerEra era),
AnyWitness (LedgerEra era))]
-> [AnyIndexedPlutusScriptWitness (LedgerEra era)]
forall era (witnessable :: WitnessableItem).
AlonzoEraScript era =>
[(Witnessable witnessable era, AnyWitness era)]
-> [AnyIndexedPlutusScriptWitness era]
createIndexedPlutusScriptWitnesses [(Witnessable 'MintItem (LedgerEra era),
AnyWitness (LedgerEra era))]
mintWits
indexedWithdrawalScriptWits :: [AnyIndexedPlutusScriptWitness (LedgerEra era)]
indexedWithdrawalScriptWits = Era era
-> (EraCommonConstraints era =>
[AnyIndexedPlutusScriptWitness (LedgerEra era)])
-> [AnyIndexedPlutusScriptWitness (LedgerEra era)]
forall era a. Era era -> (EraCommonConstraints era => a) -> a
obtainCommonConstraints Era era
era ((EraCommonConstraints era =>
[AnyIndexedPlutusScriptWitness (LedgerEra era)])
-> [AnyIndexedPlutusScriptWitness (LedgerEra era)])
-> (EraCommonConstraints era =>
[AnyIndexedPlutusScriptWitness (LedgerEra era)])
-> [AnyIndexedPlutusScriptWitness (LedgerEra era)]
forall a b. (a -> b) -> a -> b
$ [(Witnessable 'WithdrawalItem (LedgerEra era),
AnyWitness (LedgerEra era))]
-> [AnyIndexedPlutusScriptWitness (LedgerEra era)]
forall era (witnessable :: WitnessableItem).
AlonzoEraScript era =>
[(Witnessable witnessable era, AnyWitness era)]
-> [AnyIndexedPlutusScriptWitness era]
createIndexedPlutusScriptWitnesses [(Witnessable 'WithdrawalItem (LedgerEra era),
AnyWitness (LedgerEra era))]
withdrawalWits
indexedProposalScriptWits :: [AnyIndexedPlutusScriptWitness (LedgerEra era)]
indexedProposalScriptWits = Era era
-> (EraCommonConstraints era =>
[AnyIndexedPlutusScriptWitness (LedgerEra era)])
-> [AnyIndexedPlutusScriptWitness (LedgerEra era)]
forall era a. Era era -> (EraCommonConstraints era => a) -> a
obtainCommonConstraints Era era
era ((EraCommonConstraints era =>
[AnyIndexedPlutusScriptWitness (LedgerEra era)])
-> [AnyIndexedPlutusScriptWitness (LedgerEra era)])
-> (EraCommonConstraints era =>
[AnyIndexedPlutusScriptWitness (LedgerEra era)])
-> [AnyIndexedPlutusScriptWitness (LedgerEra era)]
forall a b. (a -> b) -> a -> b
$ [(Witnessable 'ProposalItem (LedgerEra era),
AnyWitness (LedgerEra era))]
-> [AnyIndexedPlutusScriptWitness (LedgerEra era)]
forall era (witnessable :: WitnessableItem).
AlonzoEraScript era =>
[(Witnessable witnessable era, AnyWitness era)]
-> [AnyIndexedPlutusScriptWitness era]
createIndexedPlutusScriptWitnesses [(Witnessable 'ProposalItem (LedgerEra era),
AnyWitness (LedgerEra era))]
proposalScriptWits
indexedVoteScriptWits :: [AnyIndexedPlutusScriptWitness (LedgerEra era)]
indexedVoteScriptWits = Era era
-> (EraCommonConstraints era =>
[AnyIndexedPlutusScriptWitness (LedgerEra era)])
-> [AnyIndexedPlutusScriptWitness (LedgerEra era)]
forall era a. Era era -> (EraCommonConstraints era => a) -> a
obtainCommonConstraints Era era
era ((EraCommonConstraints era =>
[AnyIndexedPlutusScriptWitness (LedgerEra era)])
-> [AnyIndexedPlutusScriptWitness (LedgerEra era)])
-> (EraCommonConstraints era =>
[AnyIndexedPlutusScriptWitness (LedgerEra era)])
-> [AnyIndexedPlutusScriptWitness (LedgerEra era)]
forall a b. (a -> b) -> a -> b
$ [(Witnessable 'VoterItem (LedgerEra era),
AnyWitness (LedgerEra era))]
-> [AnyIndexedPlutusScriptWitness (LedgerEra era)]
forall era (witnessable :: WitnessableItem).
AlonzoEraScript era =>
[(Witnessable witnessable era, AnyWitness era)]
-> [AnyIndexedPlutusScriptWitness era]
createIndexedPlutusScriptWitnesses [(Witnessable 'VoterItem (LedgerEra era),
AnyWitness (LedgerEra era))]
voteWits
[AnyIndexedPlutusScriptWitness (LedgerEra era)]
-> Either
DecoderError [AnyIndexedPlutusScriptWitness (LedgerEra era)]
forall a. a -> Either DecoderError a
forall (m :: * -> *) a. Monad m => a -> m a
return ([AnyIndexedPlutusScriptWitness (LedgerEra era)]
-> Either
DecoderError [AnyIndexedPlutusScriptWitness (LedgerEra era)])
-> [AnyIndexedPlutusScriptWitness (LedgerEra era)]
-> Either
DecoderError [AnyIndexedPlutusScriptWitness (LedgerEra era)]
forall a b. (a -> b) -> a -> b
$
[[AnyIndexedPlutusScriptWitness (LedgerEra era)]]
-> [AnyIndexedPlutusScriptWitness (LedgerEra era)]
forall a. Monoid a => [a] -> a
mconcat
[ [AnyIndexedPlutusScriptWitness (LedgerEra era)]
indexedScriptTxInWits
, [AnyIndexedPlutusScriptWitness (LedgerEra era)]
indexedMintScriptWits
, [AnyIndexedPlutusScriptWitness (LedgerEra era)]
indexedCertScriptWits
, [AnyIndexedPlutusScriptWitness (LedgerEra era)]
indexedWithdrawalScriptWits
, [AnyIndexedPlutusScriptWitness (LedgerEra era)]
indexedProposalScriptWits
, [AnyIndexedPlutusScriptWitness (LedgerEra era)]
indexedVoteScriptWits
]
extractWitnessableTxIns
:: forall era
. IsEra era
=> [(TxIn, AnyWitness (LedgerEra era))]
-> [(Witnessable TxInItem (LedgerEra era), AnyWitness (LedgerEra era))]
[(TxIn, AnyWitness (LedgerEra era))]
tIns =
Era era
-> (EraCommonConstraints era =>
[(Witnessable 'TxInItem (LedgerEra era),
AnyWitness (LedgerEra era))])
-> [(Witnessable 'TxInItem (LedgerEra era),
AnyWitness (LedgerEra era))]
forall era a. Era era -> (EraCommonConstraints era => a) -> a
obtainCommonConstraints (forall era. IsEra era => Era era
useEra @era) ((EraCommonConstraints era =>
[(Witnessable 'TxInItem (LedgerEra era),
AnyWitness (LedgerEra era))])
-> [(Witnessable 'TxInItem (LedgerEra era),
AnyWitness (LedgerEra era))])
-> (EraCommonConstraints era =>
[(Witnessable 'TxInItem (LedgerEra era),
AnyWitness (LedgerEra era))])
-> [(Witnessable 'TxInItem (LedgerEra era),
AnyWitness (LedgerEra era))]
forall a b. (a -> b) -> a -> b
$
[(Witnessable 'TxInItem (LedgerEra era),
AnyWitness (LedgerEra era))]
-> [(Witnessable 'TxInItem (LedgerEra era),
AnyWitness (LedgerEra era))]
forall a. Eq a => [a] -> [a]
List.nub [(TxIn -> Witnessable 'TxInItem (LedgerEra era)
forall era.
AlonzoEraScript era =>
TxIn -> Witnessable 'TxInItem era
WitTxIn TxIn
txin, AnyWitness (LedgerEra era)
wit) | (TxIn
txin, AnyWitness (LedgerEra era)
wit) <- [(TxIn, AnyWitness (LedgerEra era))]
tIns]
extractWitnessableCertificates
:: forall era
. IsEra era
=> TxCertificates (LedgerEra era)
-> [(Witnessable CertItem (LedgerEra era), AnyWitness (LedgerEra era))]
TxCertificates (LedgerEra era)
txCerts =
Era era
-> (EraCommonConstraints era =>
[(Witnessable 'CertItem (LedgerEra era),
AnyWitness (LedgerEra era))])
-> [(Witnessable 'CertItem (LedgerEra era),
AnyWitness (LedgerEra era))]
forall era a. Era era -> (EraCommonConstraints era => a) -> a
obtainCommonConstraints (forall era. IsEra era => Era era
useEra @era) ((EraCommonConstraints era =>
[(Witnessable 'CertItem (LedgerEra era),
AnyWitness (LedgerEra era))])
-> [(Witnessable 'CertItem (LedgerEra era),
AnyWitness (LedgerEra era))])
-> (EraCommonConstraints era =>
[(Witnessable 'CertItem (LedgerEra era),
AnyWitness (LedgerEra era))])
-> [(Witnessable 'CertItem (LedgerEra era),
AnyWitness (LedgerEra era))]
forall a b. (a -> b) -> a -> b
$
[(Witnessable 'CertItem (LedgerEra era),
AnyWitness (LedgerEra era))]
-> [(Witnessable 'CertItem (LedgerEra era),
AnyWitness (LedgerEra era))]
forall a. Eq a => [a] -> [a]
List.nub
[ ( TxCert (LedgerEra era)
-> StakeCredential -> Witnessable 'CertItem (LedgerEra era)
forall era.
(EraTxCert era, AlonzoEraScript era) =>
TxCert era -> StakeCredential -> Witnessable 'CertItem era
WitTxCert TxCert (LedgerEra era)
cert StakeCredential
stakeCred
, AnyWitness (LedgerEra era)
wit
)
| (Exp.Certificate TxCert (LedgerEra era)
cert, Just (StakeCredential
stakeCred, AnyWitness (LedgerEra era)
wit)) <- TxCertificates (LedgerEra era)
-> [(Certificate (LedgerEra era),
Maybe (StakeCredential, AnyWitness (LedgerEra era)))]
forall {era}.
TxCertificates era
-> [(Certificate era, Maybe (StakeCredential, AnyWitness era))]
getCertificates TxCertificates (LedgerEra era)
txCerts
]
where
getCertificates :: TxCertificates era
-> [Item
(OMap (Certificate era) (Maybe (StakeCredential, AnyWitness era)))]
getCertificates (TxCertificates OMap (Certificate era) (Maybe (StakeCredential, AnyWitness era))
txcs) = OMap (Certificate era) (Maybe (StakeCredential, AnyWitness era))
-> [Item
(OMap (Certificate era) (Maybe (StakeCredential, AnyWitness era)))]
forall l. IsList l => l -> [Item l]
toList OMap (Certificate era) (Maybe (StakeCredential, AnyWitness era))
txcs
extractWitnessableMints
:: forall era
. IsEra era
=> TxMintValue (LedgerEra era)
-> [(Witnessable MintItem (LedgerEra era), AnyWitness (LedgerEra era))]
TxMintValue (LedgerEra era)
mVal =
Era era
-> (EraCommonConstraints era =>
[(Witnessable 'MintItem (LedgerEra era),
AnyWitness (LedgerEra era))])
-> [(Witnessable 'MintItem (LedgerEra era),
AnyWitness (LedgerEra era))]
forall era a. Era era -> (EraCommonConstraints era => a) -> a
obtainCommonConstraints (forall era. IsEra era => Era era
useEra @era) ((EraCommonConstraints era =>
[(Witnessable 'MintItem (LedgerEra era),
AnyWitness (LedgerEra era))])
-> [(Witnessable 'MintItem (LedgerEra era),
AnyWitness (LedgerEra era))])
-> (EraCommonConstraints era =>
[(Witnessable 'MintItem (LedgerEra era),
AnyWitness (LedgerEra era))])
-> [(Witnessable 'MintItem (LedgerEra era),
AnyWitness (LedgerEra era))]
forall a b. (a -> b) -> a -> b
$
[(Witnessable 'MintItem (LedgerEra era),
AnyWitness (LedgerEra era))]
-> [(Witnessable 'MintItem (LedgerEra era),
AnyWitness (LedgerEra era))]
forall a. Eq a => [a] -> [a]
List.nub
[ (PolicyId -> PolicyAssets -> Witnessable 'MintItem (LedgerEra era)
forall era.
AlonzoEraScript era =>
PolicyId -> PolicyAssets -> Witnessable 'MintItem era
WitMint PolicyId
policyId PolicyAssets
policyAssets, AnyWitness (LedgerEra era)
wit)
| (PolicyId
policyId, (PolicyAssets
policyAssets, AnyWitness (LedgerEra era)
wit)) <- TxMintValue (LedgerEra era)
-> [(PolicyId, (PolicyAssets, AnyWitness (LedgerEra era)))]
forall {era}.
TxMintValue era -> [(PolicyId, (PolicyAssets, AnyWitness era))]
getMints TxMintValue (LedgerEra era)
mVal
]
where
getMints :: TxMintValue era
-> [Item (Map PolicyId (PolicyAssets, AnyWitness era))]
getMints (TxMintValue Map PolicyId (PolicyAssets, AnyWitness era)
txms) = Map PolicyId (PolicyAssets, AnyWitness era)
-> [Item (Map PolicyId (PolicyAssets, AnyWitness era))]
forall l. IsList l => l -> [Item l]
toList Map PolicyId (PolicyAssets, AnyWitness era)
txms
extractWitnessableWithdrawals
:: forall era
. IsEra era
=> TxWithdrawals (LedgerEra era)
-> [(Witnessable WithdrawalItem (LedgerEra era), AnyWitness (LedgerEra era))]
TxWithdrawals (LedgerEra era)
txWithDrawals =
Era era
-> (EraCommonConstraints era =>
[(Witnessable 'WithdrawalItem (LedgerEra era),
AnyWitness (LedgerEra era))])
-> [(Witnessable 'WithdrawalItem (LedgerEra era),
AnyWitness (LedgerEra era))]
forall era a. Era era -> (EraCommonConstraints era => a) -> a
obtainCommonConstraints (forall era. IsEra era => Era era
useEra @era) ((EraCommonConstraints era =>
[(Witnessable 'WithdrawalItem (LedgerEra era),
AnyWitness (LedgerEra era))])
-> [(Witnessable 'WithdrawalItem (LedgerEra era),
AnyWitness (LedgerEra era))])
-> (EraCommonConstraints era =>
[(Witnessable 'WithdrawalItem (LedgerEra era),
AnyWitness (LedgerEra era))])
-> [(Witnessable 'WithdrawalItem (LedgerEra era),
AnyWitness (LedgerEra era))]
forall a b. (a -> b) -> a -> b
$
[(Witnessable 'WithdrawalItem (LedgerEra era),
AnyWitness (LedgerEra era))]
-> [(Witnessable 'WithdrawalItem (LedgerEra era),
AnyWitness (LedgerEra era))]
forall a. Eq a => [a] -> [a]
List.nub
[ (StakeAddress -> Coin -> Witnessable 'WithdrawalItem (LedgerEra era)
forall era.
AlonzoEraScript era =>
StakeAddress -> Coin -> Witnessable 'WithdrawalItem era
WitWithdrawal StakeAddress
addr Coin
withAmt, AnyWitness (LedgerEra era)
wit)
| (StakeAddress
addr, Coin
withAmt, AnyWitness (LedgerEra era)
wit) <- TxWithdrawals (LedgerEra era)
-> [(StakeAddress, Coin, AnyWitness (LedgerEra era))]
forall era.
TxWithdrawals era -> [(StakeAddress, Coin, AnyWitness era)]
getWithdrawals TxWithdrawals (LedgerEra era)
txWithDrawals
]
where
getWithdrawals :: TxWithdrawals era -> [(StakeAddress, Coin, AnyWitness era)]
getWithdrawals (TxWithdrawals [(StakeAddress, Coin, AnyWitness era)]
txws) = [(StakeAddress, Coin, AnyWitness era)]
txws
extractWitnessableVotes
:: forall era
. IsEra era
=> Maybe (TxVotingProcedures (LedgerEra era))
-> [(Witnessable VoterItem (LedgerEra era), AnyWitness (LedgerEra era))]
Maybe (TxVotingProcedures (LedgerEra era))
Nothing = []
extractWitnessableVotes (Just TxVotingProcedures (LedgerEra era)
txVoteProc) =
case forall era. IsEra era => Era era
useEra @era of
Era era
DijkstraEra -> [Char]
-> [(Witnessable 'VoterItem DijkstraEra, AnyWitness DijkstraEra)]
forall a. HasCallStack => [Char] -> a
error [Char]
"extractWitnessableVotes: Dijkstra era not supported"
Era era
ConwayEra ->
[(Witnessable 'VoterItem ConwayEra, AnyWitness ConwayEra)]
-> [(Witnessable 'VoterItem ConwayEra, AnyWitness ConwayEra)]
forall a. Eq a => [a] -> [a]
List.nub
[ (Voter -> Witnessable 'VoterItem ConwayEra
forall era.
ConwayEraScript era =>
Voter -> Witnessable 'VoterItem era
WitVote Voter
vote, AnyWitness ConwayEra
wit)
| (Voter
vote, AnyWitness ConwayEra
wit) <- TxVotingProcedures (LedgerEra era)
-> [(Voter, AnyWitness (LedgerEra era))]
getVotes TxVotingProcedures (LedgerEra era)
txVoteProc
]
where
getVotes
:: TxVotingProcedures (LedgerEra era)
-> [(L.Voter, AnyWitness (LedgerEra era))]
getVotes :: TxVotingProcedures (LedgerEra era)
-> [(Voter, AnyWitness (LedgerEra era))]
getVotes (TxVotingProcedures VotingProcedures (LedgerEra era)
allVotingProcedures Map Voter (AnyWitness (LedgerEra era))
scriptWitnessedVotes) =
[ (Voter
voter, AnyWitness (LedgerEra era)
wit)
| (Voter
voter, Map GovActionId (VotingProcedure (LedgerEra era))
_) <- Map Voter (Map GovActionId (VotingProcedure (LedgerEra era)))
-> [Item
(Map Voter (Map GovActionId (VotingProcedure (LedgerEra era))))]
forall l. IsList l => l -> [Item l]
toList (Map Voter (Map GovActionId (VotingProcedure (LedgerEra era)))
-> [Item
(Map Voter (Map GovActionId (VotingProcedure (LedgerEra era))))])
-> Map Voter (Map GovActionId (VotingProcedure (LedgerEra era)))
-> [Item
(Map Voter (Map GovActionId (VotingProcedure (LedgerEra era))))]
forall a b. (a -> b) -> a -> b
$ VotingProcedures (LedgerEra era)
-> Map Voter (Map GovActionId (VotingProcedure (LedgerEra era)))
forall era.
VotingProcedures era
-> Map Voter (Map GovActionId (VotingProcedure era))
L.unVotingProcedures VotingProcedures (LedgerEra era)
allVotingProcedures
, AnyWitness (LedgerEra era)
wit <- [AnyWitness (LedgerEra era)]
-> (AnyWitness (LedgerEra era) -> [AnyWitness (LedgerEra era)])
-> Maybe (AnyWitness (LedgerEra era))
-> [AnyWitness (LedgerEra era)]
forall b a. b -> (a -> b) -> Maybe a -> b
maybe [] AnyWitness (LedgerEra era) -> [AnyWitness (LedgerEra era)]
forall a. a -> [a]
forall (m :: * -> *) a. Monad m => a -> m a
return (Voter
-> Map Voter (AnyWitness (LedgerEra era))
-> Maybe (AnyWitness (LedgerEra era))
forall k a. Ord k => k -> Map k a -> Maybe a
Map.lookup Voter
voter Map Voter (AnyWitness (LedgerEra era))
scriptWitnessedVotes)
]
extractWitnessableProposals
:: forall era
. IsEra era
=> Maybe
(TxProposalProcedures (LedgerEra era))
-> [(Witnessable ProposalItem (LedgerEra era), AnyWitness (LedgerEra era))]
Maybe (TxProposalProcedures (LedgerEra era))
Nothing = []
extractWitnessableProposals (Just TxProposalProcedures (LedgerEra era)
txPropProcedures) =
[(Witnessable 'ProposalItem (LedgerEra era),
AnyWitness (LedgerEra era))]
-> [(Witnessable 'ProposalItem (LedgerEra era),
AnyWitness (LedgerEra era))]
forall a. Eq a => [a] -> [a]
List.nub
[ (Era era
-> (EraCommonConstraints era =>
Witnessable 'ProposalItem (LedgerEra era))
-> Witnessable 'ProposalItem (LedgerEra era)
forall era a. Era era -> (EraCommonConstraints era => a) -> a
obtainCommonConstraints (forall era. IsEra era => Era era
useEra @era) (ProposalProcedure (LedgerEra era)
-> Witnessable 'ProposalItem (LedgerEra era)
forall era.
(ConwayEraScript era, EraPParams era) =>
ProposalProcedure era -> Witnessable 'ProposalItem era
WitProposal ProposalProcedure (LedgerEra era)
prop), AnyWitness (LedgerEra era)
wit)
| (ProposalProcedure (LedgerEra era)
prop, AnyWitness (LedgerEra era)
wit) <-
TxProposalProcedures (LedgerEra era)
-> [(ProposalProcedure (LedgerEra era),
AnyWitness (LedgerEra era))]
getProposals TxProposalProcedures (LedgerEra era)
txPropProcedures
]
where
getProposals
:: TxProposalProcedures (LedgerEra era)
-> [(L.ProposalProcedure (LedgerEra era), AnyWitness (LedgerEra era))]
getProposals :: TxProposalProcedures (LedgerEra era)
-> [(ProposalProcedure (LedgerEra era),
AnyWitness (LedgerEra era))]
getProposals (TxProposalProcedures OMap
(ProposalProcedure (LedgerEra era)) (AnyWitness (LedgerEra era))
txps) =
Era era
-> (EraCommonConstraints era =>
[(ProposalProcedure (LedgerEra era), AnyWitness (LedgerEra era))])
-> [(ProposalProcedure (LedgerEra era),
AnyWitness (LedgerEra era))]
forall era a. Era era -> (EraCommonConstraints era => a) -> a
obtainCommonConstraints (forall era. IsEra era => Era era
useEra @era) (OMap
(ProposalProcedure (LedgerEra era)) (AnyWitness (LedgerEra era))
-> [Item
(OMap
(ProposalProcedure (LedgerEra era)) (AnyWitness (LedgerEra era)))]
forall l. IsList l => l -> [Item l]
toList OMap
(ProposalProcedure (LedgerEra era)) (AnyWitness (LedgerEra era))
txps)
collectTxBodyScriptWitnessRequirements
:: forall era
. IsEra era
=> TxBodyContent (LedgerEra era)
-> TxScriptWitnessRequirements (LedgerEra era)
collectTxBodyScriptWitnessRequirements :: forall era.
IsEra era =>
TxBodyContent (LedgerEra era)
-> TxScriptWitnessRequirements (LedgerEra era)
collectTxBodyScriptWitnessRequirements
TxBodyContent
{ [(TxIn, AnyWitness (LedgerEra era))]
txIns :: forall era. TxBodyContent era -> [(TxIn, AnyWitness era)]
txIns :: [(TxIn, AnyWitness (LedgerEra era))]
txIns
, TxInsReference (LedgerEra era)
txInsReference :: forall era. TxBodyContent era -> TxInsReference era
txInsReference :: TxInsReference (LedgerEra era)
txInsReference
, [TxOut CtxTx (LedgerEra era)]
txOuts :: forall era. TxBodyContent era -> [TxOut CtxTx era]
txOuts :: [TxOut CtxTx (LedgerEra era)]
txOuts
, TxCertificates (LedgerEra era)
txCertificates :: forall era. TxBodyContent era -> TxCertificates era
txCertificates :: TxCertificates (LedgerEra era)
txCertificates
, TxMintValue (LedgerEra era)
txMintValue :: forall era. TxBodyContent era -> TxMintValue era
txMintValue :: TxMintValue (LedgerEra era)
txMintValue
, TxWithdrawals (LedgerEra era)
txWithdrawals :: forall era. TxBodyContent era -> TxWithdrawals era
txWithdrawals :: TxWithdrawals (LedgerEra era)
txWithdrawals
, Maybe (TxVotingProcedures (LedgerEra era))
txVotingProcedures :: forall era. TxBodyContent era -> Maybe (TxVotingProcedures era)
txVotingProcedures :: Maybe (TxVotingProcedures (LedgerEra era))
txVotingProcedures
, Maybe (TxProposalProcedures (LedgerEra era))
txProposalProcedures :: forall era. TxBodyContent era -> Maybe (TxProposalProcedures era)
txProposalProcedures :: Maybe (TxProposalProcedures (LedgerEra era))
txProposalProcedures
} = Era era
-> (EraCommonConstraints era =>
TxScriptWitnessRequirements (LedgerEra era))
-> TxScriptWitnessRequirements (LedgerEra era)
forall era a. Era era -> (EraCommonConstraints era => a) -> a
obtainCommonConstraints (forall era. IsEra era => Era era
useEra @era) ((EraCommonConstraints era =>
TxScriptWitnessRequirements (LedgerEra era))
-> TxScriptWitnessRequirements (LedgerEra era))
-> (EraCommonConstraints era =>
TxScriptWitnessRequirements (LedgerEra era))
-> TxScriptWitnessRequirements (LedgerEra era)
forall a b. (a -> b) -> a -> b
$ do
let supplementaldatums :: TxScriptWitnessRequirements (LedgerEra era)
supplementaldatums =
Set Language
-> [Script (LedgerEra era)]
-> TxDats (LedgerEra era)
-> Redeemers (LedgerEra era)
-> TxScriptWitnessRequirements (LedgerEra era)
forall era.
Set Language
-> [Script era]
-> TxDats era
-> Redeemers era
-> TxScriptWitnessRequirements era
TxScriptWitnessRequirements
Set Language
forall a. Monoid a => a
mempty
[Script (LedgerEra era)]
forall a. Monoid a => a
mempty
(TxInsReference (LedgerEra era)
-> [TxOut CtxTx (LedgerEra era)] -> TxDats (LedgerEra era)
forall era.
IsEra era =>
TxInsReference (LedgerEra era)
-> [TxOut CtxTx (LedgerEra era)] -> TxDats (LedgerEra era)
getDatums TxInsReference (LedgerEra era)
txInsReference [TxOut CtxTx (LedgerEra era)]
txOuts)
Redeemers (LedgerEra era)
forall a. Monoid a => a
mempty
let txInWits :: TxScriptWitnessRequirements (LedgerEra era)
txInWits =
Era era
-> (Monoid (TxScriptWitnessRequirements (LedgerEra era)) =>
[(Witnessable 'TxInItem (LedgerEra era),
AnyWitness (LedgerEra era))]
-> TxScriptWitnessRequirements (LedgerEra era))
-> [(Witnessable 'TxInItem (LedgerEra era),
AnyWitness (LedgerEra era))]
-> TxScriptWitnessRequirements (LedgerEra era)
forall era a.
Era era
-> (Monoid (TxScriptWitnessRequirements (LedgerEra era)) => a) -> a
obtainMonoidConstraint (forall era. IsEra era => Era era
useEra @era) Monoid (TxScriptWitnessRequirements (LedgerEra era)) =>
[(Witnessable 'TxInItem (LedgerEra era),
AnyWitness (LedgerEra era))]
-> TxScriptWitnessRequirements (LedgerEra era)
[(Witnessable 'TxInItem (LedgerEra era),
AnyWitness (LedgerEra era))]
-> TxScriptWitnessRequirements (LedgerEra era)
forall era (witnessable :: WitnessableItem).
(AlonzoEraScript era, Monoid (TxScriptWitnessRequirements era)) =>
[(Witnessable witnessable era, AnyWitness era)]
-> TxScriptWitnessRequirements era
getTxScriptWitnessesRequirements ([(Witnessable 'TxInItem (LedgerEra era),
AnyWitness (LedgerEra era))]
-> TxScriptWitnessRequirements (LedgerEra era))
-> [(Witnessable 'TxInItem (LedgerEra era),
AnyWitness (LedgerEra era))]
-> TxScriptWitnessRequirements (LedgerEra era)
forall a b. (a -> b) -> a -> b
$
[(TxIn, AnyWitness (LedgerEra era))]
-> [(Witnessable 'TxInItem (LedgerEra era),
AnyWitness (LedgerEra era))]
forall era.
IsEra era =>
[(TxIn, AnyWitness (LedgerEra era))]
-> [(Witnessable 'TxInItem (LedgerEra era),
AnyWitness (LedgerEra era))]
extractWitnessableTxIns [(TxIn, AnyWitness (LedgerEra era))]
txIns
txWithdrawalWits :: TxScriptWitnessRequirements (LedgerEra era)
txWithdrawalWits =
Era era
-> (Monoid (TxScriptWitnessRequirements (LedgerEra era)) =>
[(Witnessable 'WithdrawalItem (LedgerEra era),
AnyWitness (LedgerEra era))]
-> TxScriptWitnessRequirements (LedgerEra era))
-> [(Witnessable 'WithdrawalItem (LedgerEra era),
AnyWitness (LedgerEra era))]
-> TxScriptWitnessRequirements (LedgerEra era)
forall era a.
Era era
-> (Monoid (TxScriptWitnessRequirements (LedgerEra era)) => a) -> a
obtainMonoidConstraint (forall era. IsEra era => Era era
useEra @era) Monoid (TxScriptWitnessRequirements (LedgerEra era)) =>
[(Witnessable 'WithdrawalItem (LedgerEra era),
AnyWitness (LedgerEra era))]
-> TxScriptWitnessRequirements (LedgerEra era)
[(Witnessable 'WithdrawalItem (LedgerEra era),
AnyWitness (LedgerEra era))]
-> TxScriptWitnessRequirements (LedgerEra era)
forall era (witnessable :: WitnessableItem).
(AlonzoEraScript era, Monoid (TxScriptWitnessRequirements era)) =>
[(Witnessable witnessable era, AnyWitness era)]
-> TxScriptWitnessRequirements era
getTxScriptWitnessesRequirements ([(Witnessable 'WithdrawalItem (LedgerEra era),
AnyWitness (LedgerEra era))]
-> TxScriptWitnessRequirements (LedgerEra era))
-> [(Witnessable 'WithdrawalItem (LedgerEra era),
AnyWitness (LedgerEra era))]
-> TxScriptWitnessRequirements (LedgerEra era)
forall a b. (a -> b) -> a -> b
$
TxWithdrawals (LedgerEra era)
-> [(Witnessable 'WithdrawalItem (LedgerEra era),
AnyWitness (LedgerEra era))]
forall era.
IsEra era =>
TxWithdrawals (LedgerEra era)
-> [(Witnessable 'WithdrawalItem (LedgerEra era),
AnyWitness (LedgerEra era))]
extractWitnessableWithdrawals TxWithdrawals (LedgerEra era)
txWithdrawals
txCertWits :: TxScriptWitnessRequirements (LedgerEra era)
txCertWits =
Era era
-> (Monoid (TxScriptWitnessRequirements (LedgerEra era)) =>
[(Witnessable 'CertItem (LedgerEra era),
AnyWitness (LedgerEra era))]
-> TxScriptWitnessRequirements (LedgerEra era))
-> [(Witnessable 'CertItem (LedgerEra era),
AnyWitness (LedgerEra era))]
-> TxScriptWitnessRequirements (LedgerEra era)
forall era a.
Era era
-> (Monoid (TxScriptWitnessRequirements (LedgerEra era)) => a) -> a
obtainMonoidConstraint (forall era. IsEra era => Era era
useEra @era) Monoid (TxScriptWitnessRequirements (LedgerEra era)) =>
[(Witnessable 'CertItem (LedgerEra era),
AnyWitness (LedgerEra era))]
-> TxScriptWitnessRequirements (LedgerEra era)
[(Witnessable 'CertItem (LedgerEra era),
AnyWitness (LedgerEra era))]
-> TxScriptWitnessRequirements (LedgerEra era)
forall era (witnessable :: WitnessableItem).
(AlonzoEraScript era, Monoid (TxScriptWitnessRequirements era)) =>
[(Witnessable witnessable era, AnyWitness era)]
-> TxScriptWitnessRequirements era
getTxScriptWitnessesRequirements ([(Witnessable 'CertItem (LedgerEra era),
AnyWitness (LedgerEra era))]
-> TxScriptWitnessRequirements (LedgerEra era))
-> [(Witnessable 'CertItem (LedgerEra era),
AnyWitness (LedgerEra era))]
-> TxScriptWitnessRequirements (LedgerEra era)
forall a b. (a -> b) -> a -> b
$
TxCertificates (LedgerEra era)
-> [(Witnessable 'CertItem (LedgerEra era),
AnyWitness (LedgerEra era))]
forall era.
IsEra era =>
TxCertificates (LedgerEra era)
-> [(Witnessable 'CertItem (LedgerEra era),
AnyWitness (LedgerEra era))]
extractWitnessableCertificates TxCertificates (LedgerEra era)
txCertificates
txMintWits :: TxScriptWitnessRequirements (LedgerEra era)
txMintWits =
Era era
-> (Monoid (TxScriptWitnessRequirements (LedgerEra era)) =>
[(Witnessable 'MintItem (LedgerEra era),
AnyWitness (LedgerEra era))]
-> TxScriptWitnessRequirements (LedgerEra era))
-> [(Witnessable 'MintItem (LedgerEra era),
AnyWitness (LedgerEra era))]
-> TxScriptWitnessRequirements (LedgerEra era)
forall era a.
Era era
-> (Monoid (TxScriptWitnessRequirements (LedgerEra era)) => a) -> a
obtainMonoidConstraint (forall era. IsEra era => Era era
useEra @era) Monoid (TxScriptWitnessRequirements (LedgerEra era)) =>
[(Witnessable 'MintItem (LedgerEra era),
AnyWitness (LedgerEra era))]
-> TxScriptWitnessRequirements (LedgerEra era)
[(Witnessable 'MintItem (LedgerEra era),
AnyWitness (LedgerEra era))]
-> TxScriptWitnessRequirements (LedgerEra era)
forall era (witnessable :: WitnessableItem).
(AlonzoEraScript era, Monoid (TxScriptWitnessRequirements era)) =>
[(Witnessable witnessable era, AnyWitness era)]
-> TxScriptWitnessRequirements era
getTxScriptWitnessesRequirements ([(Witnessable 'MintItem (LedgerEra era),
AnyWitness (LedgerEra era))]
-> TxScriptWitnessRequirements (LedgerEra era))
-> [(Witnessable 'MintItem (LedgerEra era),
AnyWitness (LedgerEra era))]
-> TxScriptWitnessRequirements (LedgerEra era)
forall a b. (a -> b) -> a -> b
$
TxMintValue (LedgerEra era)
-> [(Witnessable 'MintItem (LedgerEra era),
AnyWitness (LedgerEra era))]
forall era.
IsEra era =>
TxMintValue (LedgerEra era)
-> [(Witnessable 'MintItem (LedgerEra era),
AnyWitness (LedgerEra era))]
extractWitnessableMints TxMintValue (LedgerEra era)
txMintValue
txVotingWits :: TxScriptWitnessRequirements (LedgerEra era)
txVotingWits =
Era era
-> (Monoid (TxScriptWitnessRequirements (LedgerEra era)) =>
[(Witnessable 'VoterItem (LedgerEra era),
AnyWitness (LedgerEra era))]
-> TxScriptWitnessRequirements (LedgerEra era))
-> [(Witnessable 'VoterItem (LedgerEra era),
AnyWitness (LedgerEra era))]
-> TxScriptWitnessRequirements (LedgerEra era)
forall era a.
Era era
-> (Monoid (TxScriptWitnessRequirements (LedgerEra era)) => a) -> a
obtainMonoidConstraint (forall era. IsEra era => Era era
useEra @era) Monoid (TxScriptWitnessRequirements (LedgerEra era)) =>
[(Witnessable 'VoterItem (LedgerEra era),
AnyWitness (LedgerEra era))]
-> TxScriptWitnessRequirements (LedgerEra era)
[(Witnessable 'VoterItem (LedgerEra era),
AnyWitness (LedgerEra era))]
-> TxScriptWitnessRequirements (LedgerEra era)
forall era (witnessable :: WitnessableItem).
(AlonzoEraScript era, Monoid (TxScriptWitnessRequirements era)) =>
[(Witnessable witnessable era, AnyWitness era)]
-> TxScriptWitnessRequirements era
getTxScriptWitnessesRequirements ([(Witnessable 'VoterItem (LedgerEra era),
AnyWitness (LedgerEra era))]
-> TxScriptWitnessRequirements (LedgerEra era))
-> [(Witnessable 'VoterItem (LedgerEra era),
AnyWitness (LedgerEra era))]
-> TxScriptWitnessRequirements (LedgerEra era)
forall a b. (a -> b) -> a -> b
$
Maybe (TxVotingProcedures (LedgerEra era))
-> [(Witnessable 'VoterItem (LedgerEra era),
AnyWitness (LedgerEra era))]
forall era.
IsEra era =>
Maybe (TxVotingProcedures (LedgerEra era))
-> [(Witnessable 'VoterItem (LedgerEra era),
AnyWitness (LedgerEra era))]
extractWitnessableVotes Maybe (TxVotingProcedures (LedgerEra era))
txVotingProcedures
txProposalWits :: TxScriptWitnessRequirements (LedgerEra era)
txProposalWits =
Era era
-> (Monoid (TxScriptWitnessRequirements (LedgerEra era)) =>
[(Witnessable 'ProposalItem (LedgerEra era),
AnyWitness (LedgerEra era))]
-> TxScriptWitnessRequirements (LedgerEra era))
-> [(Witnessable 'ProposalItem (LedgerEra era),
AnyWitness (LedgerEra era))]
-> TxScriptWitnessRequirements (LedgerEra era)
forall era a.
Era era
-> (Monoid (TxScriptWitnessRequirements (LedgerEra era)) => a) -> a
obtainMonoidConstraint (forall era. IsEra era => Era era
useEra @era) Monoid (TxScriptWitnessRequirements (LedgerEra era)) =>
[(Witnessable 'ProposalItem (LedgerEra era),
AnyWitness (LedgerEra era))]
-> TxScriptWitnessRequirements (LedgerEra era)
[(Witnessable 'ProposalItem (LedgerEra era),
AnyWitness (LedgerEra era))]
-> TxScriptWitnessRequirements (LedgerEra era)
forall era (witnessable :: WitnessableItem).
(AlonzoEraScript era, Monoid (TxScriptWitnessRequirements era)) =>
[(Witnessable witnessable era, AnyWitness era)]
-> TxScriptWitnessRequirements era
getTxScriptWitnessesRequirements ([(Witnessable 'ProposalItem (LedgerEra era),
AnyWitness (LedgerEra era))]
-> TxScriptWitnessRequirements (LedgerEra era))
-> [(Witnessable 'ProposalItem (LedgerEra era),
AnyWitness (LedgerEra era))]
-> TxScriptWitnessRequirements (LedgerEra era)
forall a b. (a -> b) -> a -> b
$
Maybe (TxProposalProcedures (LedgerEra era))
-> [(Witnessable 'ProposalItem (LedgerEra era),
AnyWitness (LedgerEra era))]
forall era.
IsEra era =>
Maybe (TxProposalProcedures (LedgerEra era))
-> [(Witnessable 'ProposalItem (LedgerEra era),
AnyWitness (LedgerEra era))]
extractWitnessableProposals Maybe (TxProposalProcedures (LedgerEra era))
txProposalProcedures
Era era
-> (Monoid (TxScriptWitnessRequirements (LedgerEra era)) =>
TxScriptWitnessRequirements (LedgerEra era))
-> TxScriptWitnessRequirements (LedgerEra era)
forall era a.
Era era
-> (Monoid (TxScriptWitnessRequirements (LedgerEra era)) => a) -> a
obtainMonoidConstraint (forall era. IsEra era => Era era
useEra @era) ((Monoid (TxScriptWitnessRequirements (LedgerEra era)) =>
TxScriptWitnessRequirements (LedgerEra era))
-> TxScriptWitnessRequirements (LedgerEra era))
-> (Monoid (TxScriptWitnessRequirements (LedgerEra era)) =>
TxScriptWitnessRequirements (LedgerEra era))
-> TxScriptWitnessRequirements (LedgerEra era)
forall a b. (a -> b) -> a -> b
$
[TxScriptWitnessRequirements (LedgerEra era)]
-> TxScriptWitnessRequirements (LedgerEra era)
forall a. Monoid a => [a] -> a
mconcat
[ TxScriptWitnessRequirements (LedgerEra era)
supplementaldatums
, TxScriptWitnessRequirements (LedgerEra era)
txInWits
, TxScriptWitnessRequirements (LedgerEra era)
txWithdrawalWits
, TxScriptWitnessRequirements (LedgerEra era)
txCertWits
, TxScriptWitnessRequirements (LedgerEra era)
txMintWits
, TxScriptWitnessRequirements (LedgerEra era)
txVotingWits
, TxScriptWitnessRequirements (LedgerEra era)
txProposalWits
]
obtainMonoidConstraint
:: Era era
-> (Monoid (TxScriptWitnessRequirements (LedgerEra era)) => a)
-> a
obtainMonoidConstraint :: forall era a.
Era era
-> (Monoid (TxScriptWitnessRequirements (LedgerEra era)) => a) -> a
obtainMonoidConstraint Era era
eon = case Era era
eon of
Era era
ConwayEra -> a -> a
(Monoid (TxScriptWitnessRequirements (LedgerEra era)) => a) -> a
forall a. a -> a
id
Era era
DijkstraEra -> a -> a
(Monoid (TxScriptWitnessRequirements (LedgerEra era)) => a) -> a
forall a. a -> a
id
getDatums
:: forall era
. IsEra era
=> TxInsReference (LedgerEra era)
-> [TxOut CtxTx (LedgerEra era)]
-> L.TxDats (LedgerEra era)
getDatums :: forall era.
IsEra era =>
TxInsReference (LedgerEra era)
-> [TxOut CtxTx (LedgerEra era)] -> TxDats (LedgerEra era)
getDatums TxInsReference (LedgerEra era)
txInsRef [TxOut CtxTx (LedgerEra era)]
txOutsFromTx = do
let TxInsReference [TxIn]
_ Set (Datum CtxTx (LedgerEra era))
datumSet = TxInsReference (LedgerEra era)
txInsRef
refInDatums :: [(DataHash, Data (LedgerEra era))]
refInDatums = (Datum CtxTx (LedgerEra era)
-> Maybe (DataHash, Data (LedgerEra era)))
-> [Datum CtxTx (LedgerEra era)]
-> [(DataHash, Data (LedgerEra era))]
forall a b. (a -> Maybe b) -> [a] -> [b]
mapMaybe Datum CtxTx (LedgerEra era)
-> Maybe (DataHash, Data (LedgerEra era))
forall ctx era. Datum ctx era -> Maybe (DataHash, Data era)
extractDatumsAndHashes ([Datum CtxTx (LedgerEra era)]
-> [(DataHash, Data (LedgerEra era))])
-> [Datum CtxTx (LedgerEra era)]
-> [(DataHash, Data (LedgerEra era))]
forall a b. (a -> b) -> a -> b
$ Set (Datum CtxTx (LedgerEra era)) -> [Datum CtxTx (LedgerEra era)]
forall a. Set a -> [a]
Set.toList Set (Datum CtxTx (LedgerEra era))
datumSet
txOutsDats :: [(DataHash, Data (LedgerEra era))]
txOutsDats =
[(DataHash
h, Data (LedgerEra era)
d) | TxOut TxOut (LedgerEra era)
_ (Just (TxOutSupplementalDatum DataHash
h Data (LedgerEra era)
d)) <- [TxOut CtxTx (LedgerEra era)]
txOutsFromTx]
:: [(L.DataHash, L.Data (LedgerEra era))]
Era era
-> (EraCommonConstraints era => TxDats (LedgerEra era))
-> TxDats (LedgerEra era)
forall era a. Era era -> (EraCommonConstraints era => a) -> a
obtainCommonConstraints (forall era. IsEra era => Era era
useEra @era) ((EraCommonConstraints era => TxDats (LedgerEra era))
-> TxDats (LedgerEra era))
-> (EraCommonConstraints era => TxDats (LedgerEra era))
-> TxDats (LedgerEra era)
forall a b. (a -> b) -> a -> b
$
Map DataHash (Data (LedgerEra era)) -> TxDats (LedgerEra era)
forall era. Era era => Map DataHash (Data era) -> TxDats era
L.TxDats (Map DataHash (Data (LedgerEra era)) -> TxDats (LedgerEra era))
-> Map DataHash (Data (LedgerEra era)) -> TxDats (LedgerEra era)
forall a b. (a -> b) -> a -> b
$
[Item (Map DataHash (Data (LedgerEra era)))]
-> Map DataHash (Data (LedgerEra era))
forall l. IsList l => [Item l] -> l
fromList ([Item (Map DataHash (Data (LedgerEra era)))]
-> Map DataHash (Data (LedgerEra era)))
-> [Item (Map DataHash (Data (LedgerEra era)))]
-> Map DataHash (Data (LedgerEra era))
forall a b. (a -> b) -> a -> b
$
[(DataHash, Data (LedgerEra era))]
refInDatums [(DataHash, Data (LedgerEra era))]
-> [(DataHash, Data (LedgerEra era))]
-> [(DataHash, Data (LedgerEra era))]
forall a. Semigroup a => a -> a -> a
<> [(DataHash, Data (LedgerEra era))]
txOutsDats
setTxAuxScripts :: [SimpleScript era] -> TxBodyContent era -> TxBodyContent era
setTxAuxScripts :: forall era.
[SimpleScript era] -> TxBodyContent era -> TxBodyContent era
setTxAuxScripts [SimpleScript era]
v TxBodyContent era
txBodyContent = TxBodyContent era
txBodyContent{txAuxScripts = v}
setTxExtraKeyWits :: TxExtraKeyWitnesses -> TxBodyContent era -> TxBodyContent era
TxExtraKeyWitnesses
v TxBodyContent era
txBodyContent = TxBodyContent era
txBodyContent{txExtraKeyWits = v}
setTxIns :: [(TxIn, AnyWitness era)] -> TxBodyContent era -> TxBodyContent era
setTxIns :: forall era.
[(TxIn, AnyWitness era)] -> TxBodyContent era -> TxBodyContent era
setTxIns [(TxIn, AnyWitness era)]
v TxBodyContent era
txBodyContent = TxBodyContent era
txBodyContent{txIns = v}
setTxInsCollateral :: [TxIn] -> TxBodyContent era -> TxBodyContent era
setTxInsCollateral :: forall era. [TxIn] -> TxBodyContent era -> TxBodyContent era
setTxInsCollateral [TxIn]
v TxBodyContent era
txBodyContent = TxBodyContent era
txBodyContent{txInsCollateral = v}
setTxInsReference :: TxInsReference era -> TxBodyContent era -> TxBodyContent era
setTxInsReference :: forall era.
TxInsReference era -> TxBodyContent era -> TxBodyContent era
setTxInsReference TxInsReference era
v TxBodyContent era
txBodyContent = TxBodyContent era
txBodyContent{txInsReference = v}
setTxProtocolParams :: L.PParams era -> TxBodyContent era -> TxBodyContent era
setTxProtocolParams :: forall era. PParams era -> TxBodyContent era -> TxBodyContent era
setTxProtocolParams PParams era
v TxBodyContent era
txBodyContent = TxBodyContent era
txBodyContent{txProtocolParams = Just v}
setTxReturnCollateral :: TxReturnCollateral era -> TxBodyContent era -> TxBodyContent era
setTxReturnCollateral :: forall era.
TxReturnCollateral era -> TxBodyContent era -> TxBodyContent era
setTxReturnCollateral TxReturnCollateral era
v TxBodyContent era
txBodyContent = TxBodyContent era
txBodyContent{txReturnCollateral = Just v}
setTxTotalCollateral :: TxTotalCollateral -> TxBodyContent era -> TxBodyContent era
setTxTotalCollateral :: forall era.
TxTotalCollateral -> TxBodyContent era -> TxBodyContent era
setTxTotalCollateral TxTotalCollateral
v TxBodyContent era
txBodyContent = TxBodyContent era
txBodyContent{txTotalCollateral = Just v}
setTxValidityLowerBound :: L.SlotNo -> TxBodyContent era -> TxBodyContent era
setTxValidityLowerBound :: forall era. SlotNo -> TxBodyContent era -> TxBodyContent era
setTxValidityLowerBound SlotNo
v TxBodyContent era
txBodyContent = TxBodyContent era
txBodyContent{txValidityLowerBound = Just v}
setTxValidityUpperBound :: L.SlotNo -> TxBodyContent era -> TxBodyContent era
setTxValidityUpperBound :: forall era. SlotNo -> TxBodyContent era -> TxBodyContent era
setTxValidityUpperBound SlotNo
v TxBodyContent era
txBodyContent = TxBodyContent era
txBodyContent{txValidityUpperBound = Just v}
setTxMetadata :: TxMetadata -> TxBodyContent era -> TxBodyContent era
setTxMetadata :: forall era. TxMetadata -> TxBodyContent era -> TxBodyContent era
setTxMetadata TxMetadata
v TxBodyContent era
txBodyContent = TxBodyContent era
txBodyContent{txMetadata = v}
setTxFee :: L.Coin -> TxBodyContent era -> TxBodyContent era
setTxFee :: forall era. Coin -> TxBodyContent era -> TxBodyContent era
setTxFee Coin
v TxBodyContent era
txBodyContent = TxBodyContent era
txBodyContent{txFee = v}
setTxOuts :: [TxOut CtxTx era] -> TxBodyContent era -> TxBodyContent era
setTxOuts :: forall era.
[TxOut CtxTx era] -> TxBodyContent era -> TxBodyContent era
setTxOuts [TxOut CtxTx era]
v TxBodyContent era
txBodyContent = TxBodyContent era
txBodyContent{txOuts = v}
setTxMintValue :: TxMintValue era -> TxBodyContent era -> TxBodyContent era
setTxMintValue :: forall era.
TxMintValue era -> TxBodyContent era -> TxBodyContent era
setTxMintValue TxMintValue era
v TxBodyContent era
txBodyContent = TxBodyContent era
txBodyContent{txMintValue = v}
setTxScriptValidity :: ScriptValidity -> TxBodyContent era -> TxBodyContent era
setTxScriptValidity :: forall era.
ScriptValidity -> TxBodyContent era -> TxBodyContent era
setTxScriptValidity ScriptValidity
v TxBodyContent era
txBodyContent = TxBodyContent era
txBodyContent{txScriptValidity = v}
setTxCertificates :: TxCertificates era -> TxBodyContent era -> TxBodyContent era
setTxCertificates :: forall era.
TxCertificates era -> TxBodyContent era -> TxBodyContent era
setTxCertificates TxCertificates era
v TxBodyContent era
txBodyContent = TxBodyContent era
txBodyContent{txCertificates = v}
setTxWithdrawals :: TxWithdrawals era -> TxBodyContent era -> TxBodyContent era
setTxWithdrawals :: forall era.
TxWithdrawals era -> TxBodyContent era -> TxBodyContent era
setTxWithdrawals TxWithdrawals era
v TxBodyContent era
txBodyContent = TxBodyContent era
txBodyContent{txWithdrawals = v}
setTxVotingProcedures :: TxVotingProcedures era -> TxBodyContent era -> TxBodyContent era
setTxVotingProcedures :: forall era.
TxVotingProcedures era -> TxBodyContent era -> TxBodyContent era
setTxVotingProcedures TxVotingProcedures era
v TxBodyContent era
txBodyContent = TxBodyContent era
txBodyContent{txVotingProcedures = Just v}
setTxProposalProcedures :: TxProposalProcedures era -> TxBodyContent era -> TxBodyContent era
setTxProposalProcedures :: forall era.
TxProposalProcedures era -> TxBodyContent era -> TxBodyContent era
setTxProposalProcedures TxProposalProcedures era
v TxBodyContent era
txBodyContent = TxBodyContent era
txBodyContent{txProposalProcedures = Just v}
setTxCurrentTreasuryValue :: L.Coin -> TxBodyContent era -> TxBodyContent era
setTxCurrentTreasuryValue :: forall era. Coin -> TxBodyContent era -> TxBodyContent era
setTxCurrentTreasuryValue Coin
v TxBodyContent era
txBodyContent = TxBodyContent era
txBodyContent{txCurrentTreasuryValue = Just v}
setTxTreasuryDonation :: L.Coin -> TxBodyContent era -> TxBodyContent era
setTxTreasuryDonation :: forall era. Coin -> TxBodyContent era -> TxBodyContent era
setTxTreasuryDonation Coin
v TxBodyContent era
txBodyContent = TxBodyContent era
txBodyContent{txTreasuryDonation = Just v}
modTxOuts
:: ([TxOut CtxTx era] -> [TxOut CtxTx era]) -> TxBodyContent era -> TxBodyContent era
modTxOuts :: forall era.
([TxOut CtxTx era] -> [TxOut CtxTx era])
-> TxBodyContent era -> TxBodyContent era
modTxOuts [TxOut CtxTx era] -> [TxOut CtxTx era]
f TxBodyContent era
txBodyContent = TxBodyContent era
txBodyContent{txOuts = f (txOuts txBodyContent)}