{-# LANGUAGE DataKinds #-}
{-# LANGUAGE DerivingStrategies #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE GADTs #-}
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
{-# LANGUAGE LambdaCase #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE QuantifiedConstraints #-}
{-# LANGUAGE RankNTypes #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StandaloneDeriving #-}
{-# LANGUAGE UndecidableInstances #-}
{-# OPTIONS_GHC -Wno-orphans #-}
module Test.Cardano.Ledger.Dijkstra.TreeDiff (
module Test.Cardano.Ledger.Conway.TreeDiff,
) where
import Cardano.Crypto.DSIGN (rawSerialiseSigDSIGN)
import Cardano.Crypto.Leios (LeiosCert (..), encodeBitField)
import Cardano.Ledger.Alonzo.Plutus.Context (ContextError)
import Cardano.Ledger.BaseTypes (StrictMaybe)
import Cardano.Ledger.Binary.Plain (serialize')
import qualified Cardano.Ledger.Conway.Rules as Conway
import Cardano.Ledger.Dijkstra (DijkstraEra)
import Cardano.Ledger.Dijkstra.BlockBody (PerasCert)
import Cardano.Ledger.Dijkstra.BlockBody.Internal (DijkstraBlockBodyRaw)
import Cardano.Ledger.Dijkstra.Core (
AlonzoEraScript (..),
AlonzoEraTx,
AsItem,
AsIx,
DijkstraBlockBody (..),
Era,
EraPParams (..),
EraRule,
EraTx (..),
EraTxBody (..),
EraTxCert (..),
EraTxOut (..),
PlutusScript,
TopTx,
Value,
)
import Cardano.Ledger.Dijkstra.PParams (DijkstraPParams)
import Cardano.Ledger.Dijkstra.Rules
import Cardano.Ledger.Dijkstra.Scripts (
AccountBalanceInterval,
AccountBalanceIntervals,
DijkstraNativeScript,
DijkstraNativeScriptRaw,
DijkstraPlutusPurpose,
)
import Cardano.Ledger.Dijkstra.Tx (DijkstraTx (..), Tx (..))
import Cardano.Ledger.Dijkstra.TxBody (DijkstraTxBodyRaw (..))
import Cardano.Ledger.Dijkstra.TxCert
import Cardano.Ledger.Dijkstra.TxInfo (DijkstraContextError)
import Control.State.Transition (STS (..))
import Data.Functor.Identity (Identity)
import qualified Data.TreeDiff.OMap as OMap
import Test.Cardano.Ledger.Conway.TreeDiff (Expr (..), ToExpr)
import Test.Cardano.Ledger.TreeDiff (HexBytes (..), ToExpr (..))
instance
(forall a b. (ToExpr a, ToExpr b) => ToExpr (f a b)) =>
ToExpr (DijkstraPlutusPurpose f DijkstraEra)
instance ToExpr (PlutusScript DijkstraEra)
instance ToExpr (DijkstraNativeScript era)
instance ToExpr (DijkstraNativeScriptRaw era)
instance ToExpr (DijkstraPParams Identity DijkstraEra)
instance ToExpr (DijkstraPParams StrictMaybe DijkstraEra)
instance ToExpr (DijkstraTxBodyRaw l DijkstraEra) where
toExpr :: DijkstraTxBodyRaw l DijkstraEra -> Expr
toExpr = \case
txBody :: DijkstraTxBodyRaw l DijkstraEra
txBody@(DijkstraTxBodyRaw {}) ->
let DijkstraTxBodyRaw {Map (Credential Guard) (StrictMaybe (Data DijkstraEra))
OMap TxId (Tx SubTx DijkstraEra)
OSet (TxCert DijkstraEra)
OSet (ProposalProcedure DijkstraEra)
OSet (Credential Guard)
OSet (DijkstraTxCert DijkstraEra)
Set TxIn
StrictMaybe ScriptIntegrityHash
StrictMaybe TxAuxDataHash
StrictMaybe (Sized (TxOut DijkstraEra))
StrictMaybe (Sized (BabbageTxOut DijkstraEra))
StrictMaybe Coin
StrictMaybe Network
ValidityInterval
Withdrawals
VotingProcedures DijkstraEra
Coin
DirectDeposits
AccountBalanceIntervals DijkstraEra
MultiAsset
StrictSeq (Sized (TxOut DijkstraEra))
StrictSeq (Sized (BabbageTxOut DijkstraEra))
dtbrSpendInputs :: Set TxIn
dtbrCollateralInputs :: Set TxIn
dtbrReferenceInputs :: Set TxIn
dtbrOutputs :: StrictSeq (Sized (BabbageTxOut DijkstraEra))
dtbrCollateralReturn :: StrictMaybe (Sized (BabbageTxOut DijkstraEra))
dtbrTotalCollateral :: StrictMaybe Coin
dtbrCerts :: OSet (DijkstraTxCert DijkstraEra)
dtbrWithdrawals :: Withdrawals
dtbrFee :: Coin
dtbrVldt :: ValidityInterval
dtbrGuards :: OSet (Credential Guard)
dtbrMint :: MultiAsset
dtbrScriptIntegrityHash :: StrictMaybe ScriptIntegrityHash
dtbrAuxDataHash :: StrictMaybe TxAuxDataHash
dtbrNetworkId :: StrictMaybe Network
dtbrVotingProcedures :: VotingProcedures DijkstraEra
dtbrProposalProcedures :: OSet (ProposalProcedure DijkstraEra)
dtbrCurrentTreasuryValue :: StrictMaybe Coin
dtbrTreasuryDonation :: Coin
dtbrSubTransactions :: OMap TxId (Tx SubTx DijkstraEra)
dtbrRequiredTopLevelGuards :: Map (Credential Guard) (StrictMaybe (Data DijkstraEra))
dtbrDirectDeposits :: DirectDeposits
dtbrAccountBalanceIntervals :: AccountBalanceIntervals DijkstraEra
dtbrAccountBalanceIntervals :: forall era.
DijkstraTxBodyRaw TopTx era -> AccountBalanceIntervals era
dtbrDirectDeposits :: forall era. DijkstraTxBodyRaw TopTx era -> DirectDeposits
dtbrRequiredTopLevelGuards :: forall era.
DijkstraTxBodyRaw TopTx era
-> Map (Credential Guard) (StrictMaybe (Data era))
dtbrSubTransactions :: forall era. DijkstraTxBodyRaw TopTx era -> OMap TxId (Tx SubTx era)
dtbrTreasuryDonation :: forall era. DijkstraTxBodyRaw TopTx era -> Coin
dtbrCurrentTreasuryValue :: forall era. DijkstraTxBodyRaw TopTx era -> StrictMaybe Coin
dtbrProposalProcedures :: forall era.
DijkstraTxBodyRaw TopTx era -> OSet (ProposalProcedure era)
dtbrVotingProcedures :: forall era. DijkstraTxBodyRaw TopTx era -> VotingProcedures era
dtbrNetworkId :: forall era. DijkstraTxBodyRaw TopTx era -> StrictMaybe Network
dtbrAuxDataHash :: forall era.
DijkstraTxBodyRaw TopTx era -> StrictMaybe TxAuxDataHash
dtbrScriptIntegrityHash :: forall era.
DijkstraTxBodyRaw TopTx era -> StrictMaybe ScriptIntegrityHash
dtbrMint :: forall era. DijkstraTxBodyRaw TopTx era -> MultiAsset
dtbrGuards :: forall era. DijkstraTxBodyRaw TopTx era -> OSet (Credential Guard)
dtbrVldt :: forall era. DijkstraTxBodyRaw TopTx era -> ValidityInterval
dtbrFee :: forall era. DijkstraTxBodyRaw TopTx era -> Coin
dtbrWithdrawals :: forall era. DijkstraTxBodyRaw TopTx era -> Withdrawals
dtbrCerts :: forall era. DijkstraTxBodyRaw TopTx era -> OSet (TxCert era)
dtbrTotalCollateral :: forall era. DijkstraTxBodyRaw TopTx era -> StrictMaybe Coin
dtbrCollateralReturn :: forall era.
DijkstraTxBodyRaw TopTx era -> StrictMaybe (Sized (TxOut era))
dtbrOutputs :: forall era.
DijkstraTxBodyRaw TopTx era -> StrictSeq (Sized (TxOut era))
dtbrReferenceInputs :: forall era. DijkstraTxBodyRaw TopTx era -> Set TxIn
dtbrCollateralInputs :: forall era. DijkstraTxBodyRaw TopTx era -> Set TxIn
dtbrSpendInputs :: forall era. DijkstraTxBodyRaw TopTx era -> Set TxIn
..} = DijkstraTxBodyRaw l DijkstraEra
txBody
in FieldName -> OMap FieldName Expr -> Expr
Rec FieldName
"DijkstraTxBodyRaw" (OMap FieldName Expr -> Expr) -> OMap FieldName Expr -> Expr
forall a b. (a -> b) -> a -> b
$
[(FieldName, Expr)] -> OMap FieldName Expr
forall k v. Ord k => [(k, v)] -> OMap k v
OMap.fromList
[ (FieldName
"dtbrSpendInputs", Set TxIn -> Expr
forall a. ToExpr a => a -> Expr
toExpr Set TxIn
dtbrSpendInputs)
, (FieldName
"dtbrCollateralInputs", Set TxIn -> Expr
forall a. ToExpr a => a -> Expr
toExpr Set TxIn
dtbrCollateralInputs)
, (FieldName
"dtbrReferenceInputs", Set TxIn -> Expr
forall a. ToExpr a => a -> Expr
toExpr Set TxIn
dtbrReferenceInputs)
, (FieldName
"dtbrOutputs", StrictSeq (Sized (BabbageTxOut DijkstraEra)) -> Expr
forall a. ToExpr a => a -> Expr
toExpr StrictSeq (Sized (BabbageTxOut DijkstraEra))
dtbrOutputs)
, (FieldName
"dtbrCollateralReturn", StrictMaybe (Sized (BabbageTxOut DijkstraEra)) -> Expr
forall a. ToExpr a => a -> Expr
toExpr StrictMaybe (Sized (BabbageTxOut DijkstraEra))
dtbrCollateralReturn)
, (FieldName
"dtbrTotalCollateral", StrictMaybe Coin -> Expr
forall a. ToExpr a => a -> Expr
toExpr StrictMaybe Coin
dtbrTotalCollateral)
, (FieldName
"dtbrCerts", OSet (DijkstraTxCert DijkstraEra) -> Expr
forall a. ToExpr a => a -> Expr
toExpr OSet (DijkstraTxCert DijkstraEra)
dtbrCerts)
, (FieldName
"dtbrWithdrawals", Withdrawals -> Expr
forall a. ToExpr a => a -> Expr
toExpr Withdrawals
dtbrWithdrawals)
, (FieldName
"dtbrFee", Coin -> Expr
forall a. ToExpr a => a -> Expr
toExpr Coin
dtbrFee)
, (FieldName
"dtbrVldt", ValidityInterval -> Expr
forall a. ToExpr a => a -> Expr
toExpr ValidityInterval
dtbrVldt)
, (FieldName
"dtbrGuards", OSet (Credential Guard) -> Expr
forall a. ToExpr a => a -> Expr
toExpr OSet (Credential Guard)
dtbrGuards)
, (FieldName
"dtbrMint", MultiAsset -> Expr
forall a. ToExpr a => a -> Expr
toExpr MultiAsset
dtbrMint)
, (FieldName
"dtbrScriptIntegrityHash", StrictMaybe ScriptIntegrityHash -> Expr
forall a. ToExpr a => a -> Expr
toExpr StrictMaybe ScriptIntegrityHash
dtbrScriptIntegrityHash)
, (FieldName
"dtbrAuxDataHash", StrictMaybe TxAuxDataHash -> Expr
forall a. ToExpr a => a -> Expr
toExpr StrictMaybe TxAuxDataHash
dtbrAuxDataHash)
, (FieldName
"dtbrNetworkId", StrictMaybe Network -> Expr
forall a. ToExpr a => a -> Expr
toExpr StrictMaybe Network
dtbrNetworkId)
, (FieldName
"dtbrVotingProcedures", VotingProcedures DijkstraEra -> Expr
forall a. ToExpr a => a -> Expr
toExpr VotingProcedures DijkstraEra
dtbrVotingProcedures)
, (FieldName
"dtbrProposalProcedures", OSet (ProposalProcedure DijkstraEra) -> Expr
forall a. ToExpr a => a -> Expr
toExpr OSet (ProposalProcedure DijkstraEra)
dtbrProposalProcedures)
, (FieldName
"dtbrCurrentTreasuryValue", StrictMaybe Coin -> Expr
forall a. ToExpr a => a -> Expr
toExpr StrictMaybe Coin
dtbrCurrentTreasuryValue)
, (FieldName
"dtbrTreasuryDonation", Coin -> Expr
forall a. ToExpr a => a -> Expr
toExpr Coin
dtbrTreasuryDonation)
, (FieldName
"dtbrSubTransactions", OMap TxId (Tx SubTx DijkstraEra) -> Expr
forall a. ToExpr a => a -> Expr
toExpr OMap TxId (Tx SubTx DijkstraEra)
dtbrSubTransactions)
, (FieldName
"dtbrDirectDeposits", DirectDeposits -> Expr
forall a. ToExpr a => a -> Expr
toExpr DirectDeposits
dtbrDirectDeposits)
, (FieldName
"dtbrAccountBalanceIntervals", AccountBalanceIntervals DijkstraEra -> Expr
forall a. ToExpr a => a -> Expr
toExpr AccountBalanceIntervals DijkstraEra
dtbrAccountBalanceIntervals)
]
txBody :: DijkstraTxBodyRaw l DijkstraEra
txBody@(DijkstraSubTxBodyRaw {}) ->
let DijkstraSubTxBodyRaw {Map (Credential Guard) (StrictMaybe (Data DijkstraEra))
OSet (TxCert DijkstraEra)
OSet (ProposalProcedure DijkstraEra)
OSet (Credential Guard)
OSet (DijkstraTxCert DijkstraEra)
Set TxIn
StrictMaybe ScriptIntegrityHash
StrictMaybe TxAuxDataHash
StrictMaybe Coin
StrictMaybe Network
ValidityInterval
Withdrawals
VotingProcedures DijkstraEra
Coin
DirectDeposits
AccountBalanceIntervals DijkstraEra
MultiAsset
StrictSeq (Sized (TxOut DijkstraEra))
StrictSeq (Sized (BabbageTxOut DijkstraEra))
dstbrSpendInputs :: Set TxIn
dstbrReferenceInputs :: Set TxIn
dstbrOutputs :: StrictSeq (Sized (BabbageTxOut DijkstraEra))
dstbrCerts :: OSet (DijkstraTxCert DijkstraEra)
dstbrWithdrawals :: Withdrawals
dstbrVldt :: ValidityInterval
dstbrGuards :: OSet (Credential Guard)
dstbrMint :: MultiAsset
dstbrScriptIntegrityHash :: StrictMaybe ScriptIntegrityHash
dstbrAuxDataHash :: StrictMaybe TxAuxDataHash
dstbrNetworkId :: StrictMaybe Network
dstbrVotingProcedures :: VotingProcedures DijkstraEra
dstbrProposalProcedures :: OSet (ProposalProcedure DijkstraEra)
dstbrCurrentTreasuryValue :: StrictMaybe Coin
dstbrTreasuryDonation :: Coin
dstbrRequiredTopLevelGuards :: Map (Credential Guard) (StrictMaybe (Data DijkstraEra))
dstbrDirectDeposits :: DirectDeposits
dstbrAccountBalanceIntervals :: AccountBalanceIntervals DijkstraEra
dstbrAccountBalanceIntervals :: forall era.
DijkstraTxBodyRaw SubTx era -> AccountBalanceIntervals era
dstbrDirectDeposits :: forall era. DijkstraTxBodyRaw SubTx era -> DirectDeposits
dstbrRequiredTopLevelGuards :: forall era.
DijkstraTxBodyRaw SubTx era
-> Map (Credential Guard) (StrictMaybe (Data era))
dstbrTreasuryDonation :: forall era. DijkstraTxBodyRaw SubTx era -> Coin
dstbrCurrentTreasuryValue :: forall era. DijkstraTxBodyRaw SubTx era -> StrictMaybe Coin
dstbrProposalProcedures :: forall era.
DijkstraTxBodyRaw SubTx era -> OSet (ProposalProcedure era)
dstbrVotingProcedures :: forall era. DijkstraTxBodyRaw SubTx era -> VotingProcedures era
dstbrNetworkId :: forall era. DijkstraTxBodyRaw SubTx era -> StrictMaybe Network
dstbrAuxDataHash :: forall era.
DijkstraTxBodyRaw SubTx era -> StrictMaybe TxAuxDataHash
dstbrScriptIntegrityHash :: forall era.
DijkstraTxBodyRaw SubTx era -> StrictMaybe ScriptIntegrityHash
dstbrMint :: forall era. DijkstraTxBodyRaw SubTx era -> MultiAsset
dstbrGuards :: forall era. DijkstraTxBodyRaw SubTx era -> OSet (Credential Guard)
dstbrVldt :: forall era. DijkstraTxBodyRaw SubTx era -> ValidityInterval
dstbrWithdrawals :: forall era. DijkstraTxBodyRaw SubTx era -> Withdrawals
dstbrCerts :: forall era. DijkstraTxBodyRaw SubTx era -> OSet (TxCert era)
dstbrOutputs :: forall era.
DijkstraTxBodyRaw SubTx era -> StrictSeq (Sized (TxOut era))
dstbrReferenceInputs :: forall era. DijkstraTxBodyRaw SubTx era -> Set TxIn
dstbrSpendInputs :: forall era. DijkstraTxBodyRaw SubTx era -> Set TxIn
..} = DijkstraTxBodyRaw l DijkstraEra
txBody
in FieldName -> OMap FieldName Expr -> Expr
Rec FieldName
"DijkstraSubTxBodyRaw" (OMap FieldName Expr -> Expr) -> OMap FieldName Expr -> Expr
forall a b. (a -> b) -> a -> b
$
[(FieldName, Expr)] -> OMap FieldName Expr
forall k v. Ord k => [(k, v)] -> OMap k v
OMap.fromList
[ (FieldName
"dstbrSpendInputs", Set TxIn -> Expr
forall a. ToExpr a => a -> Expr
toExpr Set TxIn
dstbrSpendInputs)
, (FieldName
"dstbrReferenceInputs", Set TxIn -> Expr
forall a. ToExpr a => a -> Expr
toExpr Set TxIn
dstbrReferenceInputs)
, (FieldName
"dstbrOutputs", StrictSeq (Sized (BabbageTxOut DijkstraEra)) -> Expr
forall a. ToExpr a => a -> Expr
toExpr StrictSeq (Sized (BabbageTxOut DijkstraEra))
dstbrOutputs)
, (FieldName
"dstbrCerts", OSet (DijkstraTxCert DijkstraEra) -> Expr
forall a. ToExpr a => a -> Expr
toExpr OSet (DijkstraTxCert DijkstraEra)
dstbrCerts)
, (FieldName
"dstbrWithdrawals", Withdrawals -> Expr
forall a. ToExpr a => a -> Expr
toExpr Withdrawals
dstbrWithdrawals)
, (FieldName
"dstbrVldt", ValidityInterval -> Expr
forall a. ToExpr a => a -> Expr
toExpr ValidityInterval
dstbrVldt)
, (FieldName
"dstbrGuards", OSet (Credential Guard) -> Expr
forall a. ToExpr a => a -> Expr
toExpr OSet (Credential Guard)
dstbrGuards)
, (FieldName
"dstbrMint", MultiAsset -> Expr
forall a. ToExpr a => a -> Expr
toExpr MultiAsset
dstbrMint)
, (FieldName
"dstbrScriptIntegrityHash", StrictMaybe ScriptIntegrityHash -> Expr
forall a. ToExpr a => a -> Expr
toExpr StrictMaybe ScriptIntegrityHash
dstbrScriptIntegrityHash)
, (FieldName
"dstbrAuxDataHash", StrictMaybe TxAuxDataHash -> Expr
forall a. ToExpr a => a -> Expr
toExpr StrictMaybe TxAuxDataHash
dstbrAuxDataHash)
, (FieldName
"dstbrNetworkId", StrictMaybe Network -> Expr
forall a. ToExpr a => a -> Expr
toExpr StrictMaybe Network
dstbrNetworkId)
, (FieldName
"dstbrVotingProcedures", VotingProcedures DijkstraEra -> Expr
forall a. ToExpr a => a -> Expr
toExpr VotingProcedures DijkstraEra
dstbrVotingProcedures)
, (FieldName
"dstbrProposalProcedures", OSet (ProposalProcedure DijkstraEra) -> Expr
forall a. ToExpr a => a -> Expr
toExpr OSet (ProposalProcedure DijkstraEra)
dstbrProposalProcedures)
, (FieldName
"dstbrCurrentTreasuryValue", StrictMaybe Coin -> Expr
forall a. ToExpr a => a -> Expr
toExpr StrictMaybe Coin
dstbrCurrentTreasuryValue)
, (FieldName
"dstbrTreasuryDonation", Coin -> Expr
forall a. ToExpr a => a -> Expr
toExpr Coin
dstbrTreasuryDonation)
, (FieldName
"dstbrRequiredTopLevelGuards", Map (Credential Guard) (StrictMaybe (Data DijkstraEra)) -> Expr
forall a. ToExpr a => a -> Expr
toExpr Map (Credential Guard) (StrictMaybe (Data DijkstraEra))
dstbrRequiredTopLevelGuards)
, (FieldName
"dstbrDirectDeposits", DirectDeposits -> Expr
forall a. ToExpr a => a -> Expr
toExpr DirectDeposits
dstbrDirectDeposits)
, (FieldName
"dstbrAccountBalanceIntervals", AccountBalanceIntervals DijkstraEra -> Expr
forall a. ToExpr a => a -> Expr
toExpr AccountBalanceIntervals DijkstraEra
dstbrAccountBalanceIntervals)
]
instance ToExpr (TxBody l DijkstraEra)
instance ToExpr PerasCert
instance ToExpr LeiosCert where
toExpr :: LeiosCert -> Expr
toExpr LeiosCert {BitField
leiosCertSigners :: BitField
leiosCertSigners :: LeiosCert -> BitField
leiosCertSigners, LeiosSignature
leiosCertSignature :: LeiosSignature
leiosCertSignature :: LeiosCert -> LeiosSignature
leiosCertSignature} =
FieldName -> OMap FieldName Expr -> Expr
Rec FieldName
"LeiosCert" (OMap FieldName Expr -> Expr) -> OMap FieldName Expr -> Expr
forall a b. (a -> b) -> a -> b
$
[(FieldName, Expr)] -> OMap FieldName Expr
forall k v. Ord k => [(k, v)] -> OMap k v
OMap.fromList
[ (FieldName
"leiosCertSigners", HexBytes -> Expr
forall a. ToExpr a => a -> Expr
toExpr (HexBytes -> Expr) -> (Encoding -> HexBytes) -> Encoding -> Expr
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ByteString -> HexBytes
HexBytes (ByteString -> HexBytes)
-> (Encoding -> ByteString) -> Encoding -> HexBytes
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Encoding -> ByteString
forall a. ToCBOR a => a -> ByteString
serialize' (Encoding -> Expr) -> Encoding -> Expr
forall a b. (a -> b) -> a -> b
$ BitField -> Encoding
encodeBitField BitField
leiosCertSigners)
, (FieldName
"leiosCertSignature", HexBytes -> Expr
forall a. ToExpr a => a -> Expr
toExpr (HexBytes -> Expr)
-> (ByteString -> HexBytes) -> ByteString -> Expr
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ByteString -> HexBytes
HexBytes (ByteString -> Expr) -> ByteString -> Expr
forall a b. (a -> b) -> a -> b
$ LeiosSignature -> ByteString
forall v. DSIGNAlgorithm v => SigDSIGN v -> ByteString
rawSerialiseSigDSIGN LeiosSignature
leiosCertSignature)
]
instance ToExpr (Tx TopTx era) => ToExpr (DijkstraBlockBodyRaw era)
instance (AlonzoEraTx era, ToExpr (Tx TopTx era), ToExpr PerasCert) => ToExpr (DijkstraBlockBody era)
instance ToExpr (DijkstraTx l DijkstraEra) where
toExpr :: DijkstraTx l DijkstraEra -> Expr
toExpr = \case
txBody :: DijkstraTx l DijkstraEra
txBody@(DijkstraTx {}) ->
let DijkstraTx {StrictMaybe (TxAuxData DijkstraEra)
StrictMaybe (AlonzoTxAuxData DijkstraEra)
TxBody TopTx DijkstraEra
TxWits DijkstraEra
AlonzoTxWits DijkstraEra
IsValid
dtBody :: TxBody TopTx DijkstraEra
dtWits :: AlonzoTxWits DijkstraEra
dtIsValid :: IsValid
dtAuxData :: StrictMaybe (AlonzoTxAuxData DijkstraEra)
dtAuxData :: forall era. DijkstraTx TopTx era -> StrictMaybe (TxAuxData era)
dtIsValid :: forall era. DijkstraTx TopTx era -> IsValid
dtWits :: forall era. DijkstraTx TopTx era -> TxWits era
dtBody :: forall era. DijkstraTx TopTx era -> TxBody TopTx era
..} = DijkstraTx l DijkstraEra
txBody
in FieldName -> OMap FieldName Expr -> Expr
Rec FieldName
"DijkstraTx" (OMap FieldName Expr -> Expr) -> OMap FieldName Expr -> Expr
forall a b. (a -> b) -> a -> b
$
[(FieldName, Expr)] -> OMap FieldName Expr
forall k v. Ord k => [(k, v)] -> OMap k v
OMap.fromList
[ (FieldName
"dtBody", TxBody TopTx DijkstraEra -> Expr
forall a. ToExpr a => a -> Expr
toExpr TxBody TopTx DijkstraEra
dtBody)
, (FieldName
"dtWits", AlonzoTxWits DijkstraEra -> Expr
forall a. ToExpr a => a -> Expr
toExpr AlonzoTxWits DijkstraEra
dtWits)
, (FieldName
"dtIsValid", IsValid -> Expr
forall a. ToExpr a => a -> Expr
toExpr IsValid
dtIsValid)
, (FieldName
"dtAuxData", StrictMaybe (AlonzoTxAuxData DijkstraEra) -> Expr
forall a. ToExpr a => a -> Expr
toExpr StrictMaybe (AlonzoTxAuxData DijkstraEra)
dtAuxData)
]
txBody :: DijkstraTx l DijkstraEra
txBody@(DijkstraSubTx {}) ->
let DijkstraSubTx {StrictMaybe (TxAuxData DijkstraEra)
StrictMaybe (AlonzoTxAuxData DijkstraEra)
TxBody SubTx DijkstraEra
TxWits DijkstraEra
AlonzoTxWits DijkstraEra
dstBody :: TxBody SubTx DijkstraEra
dstWits :: AlonzoTxWits DijkstraEra
dstAuxData :: StrictMaybe (AlonzoTxAuxData DijkstraEra)
dstAuxData :: forall era. DijkstraTx SubTx era -> StrictMaybe (TxAuxData era)
dstWits :: forall era. DijkstraTx SubTx era -> TxWits era
dstBody :: forall era. DijkstraTx SubTx era -> TxBody SubTx era
..} = DijkstraTx l DijkstraEra
txBody
in FieldName -> OMap FieldName Expr -> Expr
Rec FieldName
"DijkstraSubTx" (OMap FieldName Expr -> Expr) -> OMap FieldName Expr -> Expr
forall a b. (a -> b) -> a -> b
$
[(FieldName, Expr)] -> OMap FieldName Expr
forall k v. Ord k => [(k, v)] -> OMap k v
OMap.fromList
[ (FieldName
"dstBody", TxBody SubTx DijkstraEra -> Expr
forall a. ToExpr a => a -> Expr
toExpr TxBody SubTx DijkstraEra
dstBody)
, (FieldName
"dstWits", AlonzoTxWits DijkstraEra -> Expr
forall a. ToExpr a => a -> Expr
toExpr AlonzoTxWits DijkstraEra
dstWits)
, (FieldName
"dstAuxData", StrictMaybe (AlonzoTxAuxData DijkstraEra) -> Expr
forall a. ToExpr a => a -> Expr
toExpr StrictMaybe (AlonzoTxAuxData DijkstraEra)
dstAuxData)
]
deriving newtype instance ToExpr (Tx l DijkstraEra)
instance ToExpr DijkstraDelegCert
instance ToExpr (DijkstraTxCert era)
instance
( Era era
, ToExpr (PParamsHKD StrictMaybe era)
, ToExpr (PlutusPurpose AsIx era)
, ToExpr (PlutusPurpose AsItem era)
, ToExpr (TxCert era)
, ToExpr (TxOut era)
, ToExpr (ContextError era)
) =>
ToExpr (DijkstraContextError era)
instance
( Era era
, ToExpr (PredicateFailure (EraRule "UTXO" era))
, ToExpr (PlutusPurpose AsIx era)
, ToExpr (PlutusPurpose AsItem era)
, ToExpr (TxCert era)
) =>
ToExpr (DijkstraUtxowPredFailure era)
instance
( ToExpr (PredicateFailure (EraRule "UTXOW" era))
, ToExpr (PredicateFailure (EraRule "GOV" era))
, ToExpr (PredicateFailure (EraRule "ENTITIES" era))
, ToExpr (PredicateFailure (EraRule "SUBLEDGERS" era))
) =>
ToExpr (DijkstraLedgerPredFailure era)
instance
( ToExpr (Event (EraRule "UTXOW" era))
, ToExpr (Event (EraRule "ENTITIES" era))
, ToExpr (Event (EraRule "GOV" era))
, ToExpr (Event (EraRule "SUBLEDGERS" era))
) =>
ToExpr (DijkstraLedgerEvent era)
instance
ToExpr (PredicateFailure (EraRule "CERTS" era)) =>
ToExpr (EntitiesPredFailure era)
instance
ToExpr (Event (EraRule "CERTS" era)) =>
ToExpr (EntitiesEvent era)
instance
( ToExpr (Value era)
, ToExpr (TxOut era)
, ToExpr (PredicateFailure (EraRule "UTXOS" era))
) =>
ToExpr (DijkstraUtxoPredFailure era)
instance
(EraPParams era, ToExpr (PParamsHKD StrictMaybe era)) =>
ToExpr (DijkstraGovPredFailure era)
instance ToExpr (DijkstraGovCertPredFailure era)
instance
ToExpr (PredicateFailure (EraRule "LEDGERS" era)) =>
ToExpr (DijkstraBbodyPredFailure era)
instance
ToExpr (PredicateFailure (EraRule "LEDGER" era)) =>
ToExpr (DijkstraMempoolPredFailure era)
instance
ToExpr (Event (EraRule "LEDGER" era)) =>
ToExpr (DijkstraMempoolEvent era)
instance
( ToExpr (PredicateFailure (EraRule "SUBDELEG" era))
, ToExpr (PredicateFailure (EraRule "SUBPOOL" era))
, ToExpr (PredicateFailure (EraRule "SUBGOVCERT" era))
) =>
ToExpr (DijkstraSubCertPredFailure era)
instance
ToExpr (Event (EraRule "SUBPOOL" era)) =>
ToExpr (DijkstraSubCertEvent era)
instance
ToExpr (PredicateFailure (EraRule "SUBCERT" era)) =>
ToExpr (DijkstraSubCertsPredFailure era)
instance
ToExpr (Event (EraRule "SUBCERT" era)) =>
ToExpr (DijkstraSubCertsEvent era)
instance
ToExpr (PredicateFailure (EraRule "SUBCERTS" era)) =>
ToExpr (SubEntitiesPredFailure era)
instance
ToExpr (Event (EraRule "SUBCERTS" era)) =>
ToExpr (SubEntitiesEvent era)
instance ToExpr (DijkstraSubDelegPredFailure era)
instance
( ToExpr (PredicateFailure (EraRule "SUBGOV" era))
, ToExpr (PredicateFailure (EraRule "SUBENTITIES" era))
, ToExpr (PredicateFailure (EraRule "SUBUTXOW" era))
) =>
ToExpr (DijkstraSubLedgerPredFailure era)
instance
( ToExpr (Event (EraRule "SUBGOV" era))
, ToExpr (Event (EraRule "SUBENTITIES" era))
, ToExpr (Event (EraRule "SUBUTXOW" era))
) =>
ToExpr (DijkstraSubLedgerEvent era)
instance
ToExpr (PredicateFailure (EraRule "SUBLEDGER" era)) =>
ToExpr (DijkstraSubLedgersPredFailure era)
instance
ToExpr (Event (EraRule "SUBLEDGER" era)) =>
ToExpr (DijkstraSubLedgersEvent era)
instance
ToExpr (DijkstraGovPredFailure era) =>
ToExpr (DijkstraSubGovPredFailure era)
instance ToExpr (Conway.ConwayGovEvent era) => ToExpr (DijkstraSubGovEvent era)
instance ToExpr (DijkstraSubGovCertPredFailure era)
instance ToExpr (DijkstraSubPoolPredFailure era)
instance ToExpr (DijkstraSubPoolEvent era)
instance
( ToExpr (Value era)
, ToExpr (TxOut era)
) =>
ToExpr (DijkstraSubUtxoPredFailure era)
instance ToExpr (TxOut era) => ToExpr (DijkstraSubUtxoEvent era)
instance
( Era era
, ToExpr (PredicateFailure (EraRule "SUBUTXO" era))
, ToExpr (PlutusPurpose AsIx era)
, ToExpr (PlutusPurpose AsItem era)
, ToExpr (TxCert era)
) =>
ToExpr (DijkstraSubUtxowPredFailure era)
instance
ToExpr (Event (EraRule "SUBUTXO" era)) =>
ToExpr (DijkstraSubUtxowEvent era)
instance ToExpr (AccountBalanceInterval era)
instance ToExpr (AccountBalanceIntervals era)