{-# LANGUAGE DataKinds #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DerivingVia #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE GADTs #-}
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
{-# LANGUAGE LambdaCase #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RankNTypes #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE StandaloneDeriving #-}
{-# LANGUAGE TypeApplications #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE TypeOperators #-}
{-# LANGUAGE UndecidableInstances #-}
{-# LANGUAGE UndecidableSuperClasses #-}
{-# LANGUAGE ViewPatterns #-}
{-# OPTIONS_GHC -Wno-orphans #-}
module Cardano.Ledger.Dijkstra.Tx (
DijkstraTx (..),
DijkstraTopTx (..),
DijkstraTopTxRaw (..),
Tx (..),
DijkstraStAnnTx (..),
validateDijkstraNativeScript,
decodeDijkstraTopTxInMempool,
decodeDijkstraTopTxInBlock,
toCBORForBlockInclusion,
) where
import Cardano.Ledger.Allegra.TxBody (AllegraEraTxBody (..), StrictMaybe)
import Cardano.Ledger.Alonzo.Plutus.Context (
CollectError,
SupportedPlutusRunnable,
TxInfoResult,
)
import Cardano.Ledger.Alonzo.Tx (
AlonzoEraTx,
IsPhase2Valid (..),
)
import Cardano.Ledger.Alonzo.TxWits (AlonzoEraTxWits (..), unRedeemersL)
import Cardano.Ledger.BaseTypes (StrictMaybe (..), ToKeyValuePairs (..), integralToBounded)
import Cardano.Ledger.Binary (
Annotator,
DecCBOR (..),
Decoder,
EncCBOR (..),
Encoding,
ToCBOR (..),
TokenType (..),
decodeNullStrictMaybe,
decodeRecordNamed,
encodeListLen,
encodeNullStrictMaybe,
encodePreEncoded,
peekTokenType,
serialize,
)
import Cardano.Ledger.Binary.Coders (Encode (..), encode, (!>))
import Cardano.Ledger.Conway.Tx (AlonzoEraTx (..), Tx (..), getConwayMinFeeTx)
import Cardano.Ledger.Core
import Cardano.Ledger.Dijkstra.Era (DijkstraEra)
import Cardano.Ledger.Dijkstra.Scripts (
DijkstraEraScript,
DijkstraNativeScript,
evalDijkstraNativeScript,
)
import Cardano.Ledger.Dijkstra.TxAuxData ()
import Cardano.Ledger.Dijkstra.TxBody (DijkstraEraTxBody (..), dijkstraAllInputsTxBodyF)
import Cardano.Ledger.Dijkstra.TxWits ()
import Cardano.Ledger.Keys.WitVKey (witVKeyHash)
import Cardano.Ledger.MemoBytes (
EqRaw (..),
Mem,
MemoBytes,
MemoHashIndex,
Memoized (..),
getMemoRawType,
getMemoSafeHash,
lensMemoRawType,
mkMemoizedEra,
)
import Cardano.Ledger.Plutus (Language, PlutusWithContext)
import Cardano.Ledger.Shelley.Tx (shelleyTxEqRaw)
import Cardano.Ledger.State
import Control.DeepSeq (NFData (..), deepseq)
import Control.Monad.Trans.Fail.String (errorFail)
import Data.Aeson (FromJSON (..), ToJSON (..), withObject, (.:), (.=))
import qualified Data.Aeson as Aeson
import qualified Data.ByteString.Lazy as LBS
import Data.Int (Int64)
import Data.List.NonEmpty (NonEmpty)
import qualified Data.Map.Strict as Map
import Data.Set (Set)
import qualified Data.Set as Set
import Data.Typeable (Typeable)
import Data.Word (Word32)
import GHC.Generics (Generic)
import Lens.Micro (Lens', SimpleGetter, lens, to, (&), (.~), (^.))
import NoThunks.Class (InspectHeap (..), NoThunks)
data DijkstraTopTxRaw era = DijkstraTopTxRaw
{ forall era. DijkstraTopTxRaw era -> TxBody TopTx era
dttrBody :: !(TxBody TopTx era)
, forall era. DijkstraTopTxRaw era -> TxWits era
dttrWits :: !(TxWits era)
, forall era. DijkstraTopTxRaw era -> IsPhase2Valid
dttrIsPhase2Valid :: !IsPhase2Valid
, forall era. DijkstraTopTxRaw era -> StrictMaybe (TxAuxData era)
dttrAuxData :: !(StrictMaybe (TxAuxData era))
}
deriving ((forall x. DijkstraTopTxRaw era -> Rep (DijkstraTopTxRaw era) x)
-> (forall x. Rep (DijkstraTopTxRaw era) x -> DijkstraTopTxRaw era)
-> Generic (DijkstraTopTxRaw era)
forall x. Rep (DijkstraTopTxRaw era) x -> DijkstraTopTxRaw era
forall x. DijkstraTopTxRaw era -> Rep (DijkstraTopTxRaw era) x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
forall era x. Rep (DijkstraTopTxRaw era) x -> DijkstraTopTxRaw era
forall era x. DijkstraTopTxRaw era -> Rep (DijkstraTopTxRaw era) x
$cfrom :: forall era x. DijkstraTopTxRaw era -> Rep (DijkstraTopTxRaw era) x
from :: forall x. DijkstraTopTxRaw era -> Rep (DijkstraTopTxRaw era) x
$cto :: forall era x. Rep (DijkstraTopTxRaw era) x -> DijkstraTopTxRaw era
to :: forall x. Rep (DijkstraTopTxRaw era) x -> DijkstraTopTxRaw era
Generic)
deriving instance EraTx era => Eq (DijkstraTopTxRaw era)
deriving instance EraTx era => Show (DijkstraTopTxRaw era)
instance EraTx era => NFData (DijkstraTopTxRaw era)
type instance MemoHashIndex (DijkstraTopTxRaw era) = EraIndependentTx
instance EraTx era => EncCBOR (DijkstraTopTxRaw era) where
encCBOR :: DijkstraTopTxRaw era -> Encoding
encCBOR DijkstraTopTxRaw {TxBody TopTx era
dttrBody :: forall era. DijkstraTopTxRaw era -> TxBody TopTx era
dttrBody :: TxBody TopTx era
dttrBody, TxWits era
dttrWits :: forall era. DijkstraTopTxRaw era -> TxWits era
dttrWits :: TxWits era
dttrWits, IsPhase2Valid
dttrIsPhase2Valid :: forall era. DijkstraTopTxRaw era -> IsPhase2Valid
dttrIsPhase2Valid :: IsPhase2Valid
dttrIsPhase2Valid, StrictMaybe (TxAuxData era)
dttrAuxData :: forall era. DijkstraTopTxRaw era -> StrictMaybe (TxAuxData era)
dttrAuxData :: StrictMaybe (TxAuxData era)
dttrAuxData} =
Word -> Encoding
encodeListLen Word
4
Encoding -> Encoding -> Encoding
forall a. Semigroup a => a -> a -> a
<> TxBody TopTx era -> Encoding
forall a. EncCBOR a => a -> Encoding
encCBOR TxBody TopTx era
dttrBody
Encoding -> Encoding -> Encoding
forall a. Semigroup a => a -> a -> a
<> TxWits era -> Encoding
forall a. EncCBOR a => a -> Encoding
encCBOR TxWits era
dttrWits
Encoding -> Encoding -> Encoding
forall a. Semigroup a => a -> a -> a
<> (TxAuxData era -> Encoding)
-> StrictMaybe (TxAuxData era) -> Encoding
forall a. (a -> Encoding) -> StrictMaybe a -> Encoding
encodeNullStrictMaybe TxAuxData era -> Encoding
forall a. EncCBOR a => a -> Encoding
encCBOR StrictMaybe (TxAuxData era)
dttrAuxData
Encoding -> Encoding -> Encoding
forall a. Semigroup a => a -> a -> a
<> IsPhase2Valid -> Encoding
forall a. EncCBOR a => a -> Encoding
encCBOR IsPhase2Valid
dttrIsPhase2Valid
instance EraTx era => DecCBOR (Annotator (DijkstraTopTxRaw era)) where
decCBOR :: forall s. Decoder s (Annotator (DijkstraTopTxRaw era))
decCBOR =
Text
-> (Annotator (DijkstraTopTxRaw era) -> Int)
-> Decoder s (Annotator (DijkstraTopTxRaw era))
-> Decoder s (Annotator (DijkstraTopTxRaw era))
forall a s. Text -> (a -> Int) -> Decoder s a -> Decoder s a
decodeRecordNamed Text
"DijkstraTx" (Int -> Annotator (DijkstraTopTxRaw era) -> Int
forall a b. a -> b -> a
const Int
4) (Decoder s (Annotator (DijkstraTopTxRaw era))
-> Decoder s (Annotator (DijkstraTopTxRaw era)))
-> Decoder s (Annotator (DijkstraTopTxRaw era))
-> Decoder s (Annotator (DijkstraTopTxRaw era))
forall a b. (a -> b) -> a -> b
$ do
bodyAnn <- Decoder s (Annotator (TxBody TopTx era))
forall s. Decoder s (Annotator (TxBody TopTx era))
forall a s. DecCBOR a => Decoder s a
decCBOR
witsAnn <- decCBOR
auxAnn <- decodeNullStrictMaybe decCBOR
isPhase2Valid <- decCBOR
pure $ DijkstraTopTxRaw <$> bodyAnn <*> witsAnn <*> pure isPhase2Valid <*> sequence auxAnn
newtype DijkstraTopTx era = MkDijkstraTopTx (MemoBytes (DijkstraTopTxRaw era))
deriving newtype (DijkstraTopTx era -> Int
DijkstraTopTx era -> ByteString
(DijkstraTopTx era -> ByteString)
-> (DijkstraTopTx era -> Int)
-> (forall i. Proxy i -> DijkstraTopTx era -> SafeHash i)
-> SafeToHash (DijkstraTopTx era)
forall i. Proxy i -> DijkstraTopTx era -> SafeHash i
forall era. DijkstraTopTx era -> Int
forall era. DijkstraTopTx era -> ByteString
forall t.
(t -> ByteString)
-> (t -> Int)
-> (forall i. Proxy i -> t -> SafeHash i)
-> SafeToHash t
forall era i. Proxy i -> DijkstraTopTx era -> SafeHash i
$coriginalBytes :: forall era. DijkstraTopTx era -> ByteString
originalBytes :: DijkstraTopTx era -> ByteString
$coriginalBytesSize :: forall era. DijkstraTopTx era -> Int
originalBytesSize :: DijkstraTopTx era -> Int
$cmakeHashWithExplicitProxys :: forall era i. Proxy i -> DijkstraTopTx era -> SafeHash i
makeHashWithExplicitProxys :: forall i. Proxy i -> DijkstraTopTx era -> SafeHash i
SafeToHash, DijkstraTopTx era -> Encoding
(DijkstraTopTx era -> Encoding) -> EncCBOR (DijkstraTopTx era)
forall era. DijkstraTopTx era -> Encoding
forall a. (a -> Encoding) -> EncCBOR a
$cencCBOR :: forall era. DijkstraTopTx era -> Encoding
encCBOR :: DijkstraTopTx era -> Encoding
EncCBOR)
deriving ((forall x. DijkstraTopTx era -> Rep (DijkstraTopTx era) x)
-> (forall x. Rep (DijkstraTopTx era) x -> DijkstraTopTx era)
-> Generic (DijkstraTopTx era)
forall x. Rep (DijkstraTopTx era) x -> DijkstraTopTx era
forall x. DijkstraTopTx era -> Rep (DijkstraTopTx era) x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
forall era x. Rep (DijkstraTopTx era) x -> DijkstraTopTx era
forall era x. DijkstraTopTx era -> Rep (DijkstraTopTx era) x
$cfrom :: forall era x. DijkstraTopTx era -> Rep (DijkstraTopTx era) x
from :: forall x. DijkstraTopTx era -> Rep (DijkstraTopTx era) x
$cto :: forall era x. Rep (DijkstraTopTx era) x -> DijkstraTopTx era
to :: forall x. Rep (DijkstraTopTx era) x -> DijkstraTopTx era
Generic)
deriving newtype instance EraTx era => Eq (DijkstraTopTx era)
deriving newtype instance EraTx era => Show (DijkstraTopTx era)
deriving newtype instance EraTx era => NFData (DijkstraTopTx era)
instance Memoized (DijkstraTopTx era) where
type RawType (DijkstraTopTx era) = DijkstraTopTxRaw era
instance HashAnnotated (DijkstraTopTx era) EraIndependentTx where
hashAnnotated :: DijkstraTopTx era -> SafeHash EraIndependentTx
hashAnnotated = DijkstraTopTx era -> SafeHash EraIndependentTx
DijkstraTopTx era
-> SafeHash (MemoHashIndex (RawType (DijkstraTopTx era)))
forall t. Memoized t => t -> SafeHash (MemoHashIndex (RawType t))
getMemoSafeHash
deriving via
Mem (DijkstraTopTxRaw era)
instance
EraTx era => DecCBOR (Annotator (DijkstraTopTx era))
bodyDijkstraTopTxL :: forall era. EraTx era => Lens' (DijkstraTopTx era) (TxBody TopTx era)
bodyDijkstraTopTxL :: forall era.
EraTx era =>
Lens' (DijkstraTopTx era) (TxBody TopTx era)
bodyDijkstraTopTxL = forall era t a b.
(Era era, EncCBOR (RawType t), Memoized t) =>
(RawType t -> a) -> (RawType t -> b -> RawType t) -> Lens t t a b
lensMemoRawType @era RawType (DijkstraTopTx era) -> TxBody TopTx era
DijkstraTopTxRaw era -> TxBody TopTx era
forall era. DijkstraTopTxRaw era -> TxBody TopTx era
dttrBody ((RawType (DijkstraTopTx era)
-> TxBody TopTx era -> RawType (DijkstraTopTx era))
-> Lens
(DijkstraTopTx era)
(DijkstraTopTx era)
(TxBody TopTx era)
(TxBody TopTx era))
-> (RawType (DijkstraTopTx era)
-> TxBody TopTx era -> RawType (DijkstraTopTx era))
-> Lens
(DijkstraTopTx era)
(DijkstraTopTx era)
(TxBody TopTx era)
(TxBody TopTx era)
forall a b. (a -> b) -> a -> b
$ \RawType (DijkstraTopTx era)
r TxBody TopTx era
x -> RawType (DijkstraTopTx era)
r {dttrBody = x}
witsDijkstraTopTxL :: forall era. EraTx era => Lens' (DijkstraTopTx era) (TxWits era)
witsDijkstraTopTxL :: forall era. EraTx era => Lens' (DijkstraTopTx era) (TxWits era)
witsDijkstraTopTxL = forall era t a b.
(Era era, EncCBOR (RawType t), Memoized t) =>
(RawType t -> a) -> (RawType t -> b -> RawType t) -> Lens t t a b
lensMemoRawType @era RawType (DijkstraTopTx era) -> TxWits era
DijkstraTopTxRaw era -> TxWits era
forall era. DijkstraTopTxRaw era -> TxWits era
dttrWits ((RawType (DijkstraTopTx era)
-> TxWits era -> RawType (DijkstraTopTx era))
-> Lens
(DijkstraTopTx era) (DijkstraTopTx era) (TxWits era) (TxWits era))
-> (RawType (DijkstraTopTx era)
-> TxWits era -> RawType (DijkstraTopTx era))
-> Lens
(DijkstraTopTx era) (DijkstraTopTx era) (TxWits era) (TxWits era)
forall a b. (a -> b) -> a -> b
$ \RawType (DijkstraTopTx era)
r TxWits era
x -> RawType (DijkstraTopTx era)
r {dttrWits = x}
isPhase2ValidDijkstraTopTxL :: forall era. EraTx era => Lens' (DijkstraTopTx era) IsPhase2Valid
isPhase2ValidDijkstraTopTxL :: forall era. EraTx era => Lens' (DijkstraTopTx era) IsPhase2Valid
isPhase2ValidDijkstraTopTxL =
forall era t a b.
(Era era, EncCBOR (RawType t), Memoized t) =>
(RawType t -> a) -> (RawType t -> b -> RawType t) -> Lens t t a b
lensMemoRawType @era RawType (DijkstraTopTx era) -> IsPhase2Valid
DijkstraTopTxRaw era -> IsPhase2Valid
forall era. DijkstraTopTxRaw era -> IsPhase2Valid
dttrIsPhase2Valid ((RawType (DijkstraTopTx era)
-> IsPhase2Valid -> RawType (DijkstraTopTx era))
-> Lens
(DijkstraTopTx era)
(DijkstraTopTx era)
IsPhase2Valid
IsPhase2Valid)
-> (RawType (DijkstraTopTx era)
-> IsPhase2Valid -> RawType (DijkstraTopTx era))
-> Lens
(DijkstraTopTx era) (DijkstraTopTx era) IsPhase2Valid IsPhase2Valid
forall a b. (a -> b) -> a -> b
$ \RawType (DijkstraTopTx era)
r IsPhase2Valid
x -> RawType (DijkstraTopTx era)
r {dttrIsPhase2Valid = x}
auxDataDijkstraTopTxL ::
forall era. EraTx era => Lens' (DijkstraTopTx era) (StrictMaybe (TxAuxData era))
auxDataDijkstraTopTxL :: forall era.
EraTx era =>
Lens' (DijkstraTopTx era) (StrictMaybe (TxAuxData era))
auxDataDijkstraTopTxL = forall era t a b.
(Era era, EncCBOR (RawType t), Memoized t) =>
(RawType t -> a) -> (RawType t -> b -> RawType t) -> Lens t t a b
lensMemoRawType @era RawType (DijkstraTopTx era) -> StrictMaybe (TxAuxData era)
DijkstraTopTxRaw era -> StrictMaybe (TxAuxData era)
forall era. DijkstraTopTxRaw era -> StrictMaybe (TxAuxData era)
dttrAuxData ((RawType (DijkstraTopTx era)
-> StrictMaybe (TxAuxData era) -> RawType (DijkstraTopTx era))
-> Lens
(DijkstraTopTx era)
(DijkstraTopTx era)
(StrictMaybe (TxAuxData era))
(StrictMaybe (TxAuxData era)))
-> (RawType (DijkstraTopTx era)
-> StrictMaybe (TxAuxData era) -> RawType (DijkstraTopTx era))
-> Lens
(DijkstraTopTx era)
(DijkstraTopTx era)
(StrictMaybe (TxAuxData era))
(StrictMaybe (TxAuxData era))
forall a b. (a -> b) -> a -> b
$ \RawType (DijkstraTopTx era)
r StrictMaybe (TxAuxData era)
x -> RawType (DijkstraTopTx era)
r {dttrAuxData = x}
data DijkstraTx l era where
DijkstraTopTx :: !(DijkstraTopTx era) -> DijkstraTx TopTx era
DijkstraSubTx ::
{ forall era. DijkstraTx SubTx era -> TxBody SubTx era
dstBody :: !(TxBody SubTx era)
, forall era. DijkstraTx SubTx era -> TxWits era
dstWits :: !(TxWits era)
, forall era. DijkstraTx SubTx era -> StrictMaybe (TxAuxData era)
dstAuxData :: !(StrictMaybe (TxAuxData era))
} ->
DijkstraTx SubTx era
deriving instance EraTx era => Eq (DijkstraTx l era)
deriving instance EraTx era => Show (DijkstraTx l era)
instance
( EraTx era
, NFData (TxWits era)
, NFData (TxAuxData era)
) =>
NFData (DijkstraTx l era)
where
rnf :: DijkstraTx l era -> ()
rnf (DijkstraTopTx DijkstraTopTx era
t) = DijkstraTopTx era -> ()
forall a. NFData a => a -> ()
rnf DijkstraTopTx era
t
rnf DijkstraSubTx {StrictMaybe (TxAuxData era)
TxBody SubTx era
TxWits era
dstBody :: forall era. DijkstraTx SubTx era -> TxBody SubTx era
dstWits :: forall era. DijkstraTx SubTx era -> TxWits era
dstAuxData :: forall era. DijkstraTx SubTx era -> StrictMaybe (TxAuxData era)
dstBody :: TxBody SubTx era
dstWits :: TxWits era
dstAuxData :: StrictMaybe (TxAuxData era)
..} =
TxBody SubTx era
dstBody TxBody SubTx era -> () -> ()
forall a b. NFData a => a -> b -> b
`deepseq`
TxWits era
dstWits TxWits era -> () -> ()
forall a b. NFData a => a -> b -> b
`deepseq`
StrictMaybe (TxAuxData era) -> ()
forall a. NFData a => a -> ()
rnf StrictMaybe (TxAuxData era)
dstAuxData
deriving via
InspectHeap (DijkstraTx l era)
instance
( Era era
, Typeable l
) =>
NoThunks (DijkstraTx l era)
instance (EraTx era, Typeable l) => ToCBOR (DijkstraTx l era) where
toCBOR :: DijkstraTx l era -> Encoding
toCBOR = forall era t. (Era era, EncCBOR t) => t -> Encoding
toEraCBOR @era
instance EraTx era => EncCBOR (DijkstraTx l era) where
encCBOR :: DijkstraTx l era -> Encoding
encCBOR = DijkstraTx l era -> Encoding
forall (l :: TxLevel) era.
(EncCBOR (TxBody l era), EncCBOR (TxWits era),
EncCBOR (TxAuxData era)) =>
DijkstraTx l era -> Encoding
toCBORForMempoolSubmission
instance SafeToHash (DijkstraTx TopTx era) where
originalBytes :: DijkstraTx TopTx era -> ByteString
originalBytes (DijkstraTopTx DijkstraTopTx era
t) = DijkstraTopTx era -> ByteString
forall t. SafeToHash t => t -> ByteString
originalBytes DijkstraTopTx era
t
originalBytesSize :: DijkstraTx TopTx era -> Int
originalBytesSize (DijkstraTopTx DijkstraTopTx era
t) = DijkstraTopTx era -> Int
forall t. SafeToHash t => t -> Int
originalBytesSize DijkstraTopTx era
t
instance HashAnnotated (DijkstraTx TopTx era) EraIndependentTx where
hashAnnotated :: DijkstraTx TopTx era -> SafeHash EraIndependentTx
hashAnnotated (DijkstraTopTx DijkstraTopTx era
t) = DijkstraTopTx era
-> SafeHash (MemoHashIndex (RawType (DijkstraTopTx era)))
forall t. Memoized t => t -> SafeHash (MemoHashIndex (RawType t))
getMemoSafeHash DijkstraTopTx era
t
decodeDijkstraTopTxInMempool ::
forall era s. EraTx era => Decoder s (Annotator (DijkstraTx TopTx era))
decodeDijkstraTopTxInMempool :: forall era s.
EraTx era =>
Decoder s (Annotator (DijkstraTx TopTx era))
decodeDijkstraTopTxInMempool =
((Int, Annotator (DijkstraTx TopTx era))
-> Annotator (DijkstraTx TopTx era))
-> Decoder s (Int, Annotator (DijkstraTx TopTx era))
-> Decoder s (Annotator (DijkstraTx TopTx era))
forall a b. (a -> b) -> Decoder s a -> Decoder s b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap (Int, Annotator (DijkstraTx TopTx era))
-> Annotator (DijkstraTx TopTx era)
forall a b. (a, b) -> b
snd (Decoder s (Int, Annotator (DijkstraTx TopTx era))
-> Decoder s (Annotator (DijkstraTx TopTx era)))
-> Decoder s (Int, Annotator (DijkstraTx TopTx era))
-> Decoder s (Annotator (DijkstraTx TopTx era))
forall a b. (a -> b) -> a -> b
$ Text
-> ((Int, Annotator (DijkstraTx TopTx era)) -> Int)
-> Decoder s (Int, Annotator (DijkstraTx TopTx era))
-> Decoder s (Int, Annotator (DijkstraTx TopTx era))
forall a s. Text -> (a -> Int) -> Decoder s a -> Decoder s a
decodeRecordNamed Text
"DijkstraTx" (Int, Annotator (DijkstraTx TopTx era)) -> Int
forall a b. (a, b) -> a
fst (Decoder s (Int, Annotator (DijkstraTx TopTx era))
-> Decoder s (Int, Annotator (DijkstraTx TopTx era)))
-> Decoder s (Int, Annotator (DijkstraTx TopTx era))
-> Decoder s (Int, Annotator (DijkstraTx TopTx era))
forall a b. (a -> b) -> a -> b
$ do
bodyAnn <- Decoder s (Annotator (TxBody TopTx era))
forall s. Decoder s (Annotator (TxBody TopTx era))
forall a s. DecCBOR a => Decoder s a
decCBOR
witsAnn <- decCBOR
isValidFlagSupplied <-
peekTokenType >>= \case
TokenType
TypeBool ->
Decoder s Bool
forall s. Decoder s Bool
forall a s. DecCBOR a => Decoder s a
decCBOR Decoder s Bool -> (Bool -> Decoder s Bool) -> Decoder s Bool
forall a b. Decoder s a -> (a -> Decoder s b) -> Decoder s b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= \case
Bool
True -> Bool -> Decoder s Bool
forall a. a -> Decoder s a
forall (f :: * -> *) a. Applicative f => a -> f a
pure Bool
True
Bool
False -> String -> Decoder s Bool
forall a. String -> Decoder s a
forall (m :: * -> *) a. MonadFail m => String -> m a
fail String
"Value `false` not allowed for `isPhase2Valid`"
TokenType
_ -> Bool -> Decoder s Bool
forall a. a -> Decoder s a
forall (f :: * -> *) a. Applicative f => a -> f a
pure Bool
False
auxAnn <- decodeNullStrictMaybe decCBOR
let
dijkstraTopTx =
DijkstraTopTx era -> DijkstraTx TopTx era
forall era. DijkstraTopTx era -> DijkstraTx TopTx era
DijkstraTopTx (DijkstraTopTx era -> DijkstraTx TopTx era)
-> (DijkstraTopTxRaw era -> DijkstraTopTx era)
-> DijkstraTopTxRaw era
-> DijkstraTx TopTx era
forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall era t.
(Era era, EncCBOR (RawType t), Memoized t) =>
RawType t -> t
mkMemoizedEra @era
(DijkstraTopTxRaw era -> DijkstraTx TopTx era)
-> Annotator (DijkstraTopTxRaw era)
-> Annotator (DijkstraTx TopTx era)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (TxBody TopTx era
-> TxWits era
-> IsPhase2Valid
-> StrictMaybe (TxAuxData era)
-> DijkstraTopTxRaw era
forall era.
TxBody TopTx era
-> TxWits era
-> IsPhase2Valid
-> StrictMaybe (TxAuxData era)
-> DijkstraTopTxRaw era
DijkstraTopTxRaw (TxBody TopTx era
-> TxWits era
-> IsPhase2Valid
-> StrictMaybe (TxAuxData era)
-> DijkstraTopTxRaw era)
-> Annotator (TxBody TopTx era)
-> Annotator
(TxWits era
-> IsPhase2Valid
-> StrictMaybe (TxAuxData era)
-> DijkstraTopTxRaw era)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Annotator (TxBody TopTx era)
bodyAnn Annotator
(TxWits era
-> IsPhase2Valid
-> StrictMaybe (TxAuxData era)
-> DijkstraTopTxRaw era)
-> Annotator (TxWits era)
-> Annotator
(IsPhase2Valid
-> StrictMaybe (TxAuxData era) -> DijkstraTopTxRaw era)
forall a b. Annotator (a -> b) -> Annotator a -> Annotator b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Annotator (TxWits era)
witsAnn Annotator
(IsPhase2Valid
-> StrictMaybe (TxAuxData era) -> DijkstraTopTxRaw era)
-> Annotator IsPhase2Valid
-> Annotator (StrictMaybe (TxAuxData era) -> DijkstraTopTxRaw era)
forall a b. Annotator (a -> b) -> Annotator a -> Annotator b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> IsPhase2Valid -> Annotator IsPhase2Valid
forall a. a -> Annotator a
forall (f :: * -> *) a. Applicative f => a -> f a
pure IsPhase2Valid
Phase2Valid Annotator (StrictMaybe (TxAuxData era) -> DijkstraTopTxRaw era)
-> Annotator (StrictMaybe (TxAuxData era))
-> Annotator (DijkstraTopTxRaw era)
forall a b. Annotator (a -> b) -> Annotator a -> Annotator b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> StrictMaybe (Annotator (TxAuxData era))
-> Annotator (StrictMaybe (TxAuxData era))
forall (t :: * -> *) (m :: * -> *) a.
(Traversable t, Monad m) =>
t (m a) -> m (t a)
forall (m :: * -> *) a.
Monad m =>
StrictMaybe (m a) -> m (StrictMaybe a)
sequence StrictMaybe (Annotator (TxAuxData era))
auxAnn)
pure (if isValidFlagSupplied then 4 else 3, dijkstraTopTx)
decodeDijkstraTopTxInBlock :: EraTx era => Decoder s (Annotator (DijkstraTx TopTx era))
decodeDijkstraTopTxInBlock :: forall era s.
EraTx era =>
Decoder s (Annotator (DijkstraTx TopTx era))
decodeDijkstraTopTxInBlock = (DijkstraTopTx era -> DijkstraTx TopTx era)
-> Annotator (DijkstraTopTx era)
-> Annotator (DijkstraTx TopTx era)
forall a b. (a -> b) -> Annotator a -> Annotator b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap DijkstraTopTx era -> DijkstraTx TopTx era
forall era. DijkstraTopTx era -> DijkstraTx TopTx era
DijkstraTopTx (Annotator (DijkstraTopTx era) -> Annotator (DijkstraTx TopTx era))
-> Decoder s (Annotator (DijkstraTopTx era))
-> Decoder s (Annotator (DijkstraTx TopTx era))
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Decoder s (Annotator (DijkstraTopTx era))
forall s. Decoder s (Annotator (DijkstraTopTx era))
forall a s. DecCBOR a => Decoder s a
decCBOR
instance (EraTx era, Typeable l) => DecCBOR (Annotator (DijkstraTx l era)) where
decCBOR :: forall s. Decoder s (Annotator (DijkstraTx l era))
decCBOR = forall (l :: TxLevel) era a.
(Typeable l, HasCallStack) =>
(STxBothLevels l era -> a) -> a
withSTxBothLevels @l ((STxBothLevels l (ZonkAny 1)
-> Decoder s (Annotator (DijkstraTx l era)))
-> Decoder s (Annotator (DijkstraTx l era)))
-> (STxBothLevels l (ZonkAny 1)
-> Decoder s (Annotator (DijkstraTx l era)))
-> Decoder s (Annotator (DijkstraTx l era))
forall a b. (a -> b) -> a -> b
$ \case
STxBothLevels l (ZonkAny 1)
STopTx -> Decoder s (Annotator (DijkstraTx l era))
Decoder s (Annotator (DijkstraTx TopTx era))
forall era s.
EraTx era =>
Decoder s (Annotator (DijkstraTx TopTx era))
decodeDijkstraTopTxInMempool
STxBothLevels l (ZonkAny 1)
SSubTx ->
Text
-> (Annotator (DijkstraTx l era) -> Int)
-> Decoder s (Annotator (DijkstraTx l era))
-> Decoder s (Annotator (DijkstraTx l era))
forall a s. Text -> (a -> Int) -> Decoder s a -> Decoder s a
decodeRecordNamed Text
"DijkstraSubTx" (Int -> Annotator (DijkstraTx l era) -> Int
forall a b. a -> b -> a
const Int
3) (Decoder s (Annotator (DijkstraTx l era))
-> Decoder s (Annotator (DijkstraTx l era)))
-> Decoder s (Annotator (DijkstraTx l era))
-> Decoder s (Annotator (DijkstraTx l era))
forall a b. (a -> b) -> a -> b
$ do
body <- Decoder s (Annotator (TxBody SubTx era))
forall s. Decoder s (Annotator (TxBody SubTx era))
forall a s. DecCBOR a => Decoder s a
decCBOR
wits <- decCBOR
aux <- sequence <$> decodeNullStrictMaybe decCBOR
pure $ DijkstraSubTx <$> body <*> wits <*> aux
instance HasEraTxLevel DijkstraTx DijkstraEra where
toSTxLevel :: forall (l :: TxLevel).
DijkstraTx l DijkstraEra -> STxLevel l DijkstraEra
toSTxLevel DijkstraTopTx {} = STxLevel l DijkstraEra
STxBothLevels TopTx DijkstraEra
forall era. STxBothLevels TopTx era
STopTx
toSTxLevel DijkstraSubTx {} = STxLevel l DijkstraEra
STxBothLevels SubTx DijkstraEra
forall era. STxBothLevels SubTx era
SSubTx
instance HasEraTxLevel Tx DijkstraEra where
toSTxLevel :: forall (l :: TxLevel). Tx l DijkstraEra -> STxLevel l DijkstraEra
toSTxLevel = DijkstraTx l DijkstraEra -> STxLevel l DijkstraEra
DijkstraTx l DijkstraEra -> STxBothLevels l DijkstraEra
forall (l :: TxLevel).
DijkstraTx l DijkstraEra -> STxLevel l DijkstraEra
forall (t :: TxLevel -> * -> *) era (l :: TxLevel).
HasEraTxLevel t era =>
t l era -> STxLevel l era
toSTxLevel (DijkstraTx l DijkstraEra -> STxBothLevels l DijkstraEra)
-> (Tx l DijkstraEra -> DijkstraTx l DijkstraEra)
-> Tx l DijkstraEra
-> STxBothLevels l DijkstraEra
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Tx l DijkstraEra -> DijkstraTx l DijkstraEra
forall (l :: TxLevel). Tx l DijkstraEra -> DijkstraTx l DijkstraEra
unDijkstraTx
mkBasicDijkstraTx :: TxBody l DijkstraEra -> DijkstraTx l DijkstraEra
mkBasicDijkstraTx :: forall (l :: TxLevel).
TxBody l DijkstraEra -> DijkstraTx l DijkstraEra
mkBasicDijkstraTx TxBody l DijkstraEra
txBody =
case TxBody l DijkstraEra -> STxLevel l DijkstraEra
forall (l :: TxLevel).
TxBody l DijkstraEra -> STxLevel l DijkstraEra
forall (t :: TxLevel -> * -> *) era (l :: TxLevel).
HasEraTxLevel t era =>
t l era -> STxLevel l era
toSTxLevel TxBody l DijkstraEra
txBody of
STxLevel l DijkstraEra
STxBothLevels l DijkstraEra
STopTx ->
DijkstraTopTx DijkstraEra -> DijkstraTx l DijkstraEra
DijkstraTopTx DijkstraEra -> DijkstraTx TopTx DijkstraEra
forall era. DijkstraTopTx era -> DijkstraTx TopTx era
DijkstraTopTx (DijkstraTopTx DijkstraEra -> DijkstraTx l DijkstraEra)
-> (DijkstraTopTxRaw DijkstraEra -> DijkstraTopTx DijkstraEra)
-> DijkstraTopTxRaw DijkstraEra
-> DijkstraTx l DijkstraEra
forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall era t.
(Era era, EncCBOR (RawType t), Memoized t) =>
RawType t -> t
mkMemoizedEra @DijkstraEra (DijkstraTopTxRaw DijkstraEra -> DijkstraTx l DijkstraEra)
-> DijkstraTopTxRaw DijkstraEra -> DijkstraTx l DijkstraEra
forall a b. (a -> b) -> a -> b
$
TxBody TopTx DijkstraEra
-> TxWits DijkstraEra
-> IsPhase2Valid
-> StrictMaybe (TxAuxData DijkstraEra)
-> DijkstraTopTxRaw DijkstraEra
forall era.
TxBody TopTx era
-> TxWits era
-> IsPhase2Valid
-> StrictMaybe (TxAuxData era)
-> DijkstraTopTxRaw era
DijkstraTopTxRaw
TxBody l DijkstraEra
TxBody TopTx DijkstraEra
txBody
TxWits DijkstraEra
AlonzoTxWits DijkstraEra
forall a. Monoid a => a
mempty
IsPhase2Valid
Phase2Valid
StrictMaybe (TxAuxData DijkstraEra)
StrictMaybe (AlonzoTxAuxData DijkstraEra)
forall a. StrictMaybe a
SNothing
STxLevel l DijkstraEra
STxBothLevels l DijkstraEra
SSubTx ->
TxBody SubTx DijkstraEra
-> TxWits DijkstraEra
-> StrictMaybe (TxAuxData DijkstraEra)
-> DijkstraTx SubTx DijkstraEra
forall era.
TxBody SubTx era
-> TxWits era
-> StrictMaybe (TxAuxData era)
-> DijkstraTx SubTx era
DijkstraSubTx
TxBody l DijkstraEra
TxBody SubTx DijkstraEra
txBody
TxWits DijkstraEra
AlonzoTxWits DijkstraEra
forall a. Monoid a => a
mempty
StrictMaybe (TxAuxData DijkstraEra)
StrictMaybe (AlonzoTxAuxData DijkstraEra)
forall a. StrictMaybe a
SNothing
instance EraTx DijkstraEra where
newtype Tx l DijkstraEra = MkDijkstraTx {forall (l :: TxLevel). Tx l DijkstraEra -> DijkstraTx l DijkstraEra
unDijkstraTx :: DijkstraTx l DijkstraEra}
deriving newtype (Tx l DijkstraEra -> Tx l DijkstraEra -> Bool
(Tx l DijkstraEra -> Tx l DijkstraEra -> Bool)
-> (Tx l DijkstraEra -> Tx l DijkstraEra -> Bool)
-> Eq (Tx l DijkstraEra)
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
forall (l :: TxLevel). Tx l DijkstraEra -> Tx l DijkstraEra -> Bool
$c== :: forall (l :: TxLevel). Tx l DijkstraEra -> Tx l DijkstraEra -> Bool
== :: Tx l DijkstraEra -> Tx l DijkstraEra -> Bool
$c/= :: forall (l :: TxLevel). Tx l DijkstraEra -> Tx l DijkstraEra -> Bool
/= :: Tx l DijkstraEra -> Tx l DijkstraEra -> Bool
Eq, Int -> Tx l DijkstraEra -> ShowS
[Tx l DijkstraEra] -> ShowS
Tx l DijkstraEra -> String
(Int -> Tx l DijkstraEra -> ShowS)
-> (Tx l DijkstraEra -> String)
-> ([Tx l DijkstraEra] -> ShowS)
-> Show (Tx l DijkstraEra)
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
forall (l :: TxLevel). Int -> Tx l DijkstraEra -> ShowS
forall (l :: TxLevel). [Tx l DijkstraEra] -> ShowS
forall (l :: TxLevel). Tx l DijkstraEra -> String
$cshowsPrec :: forall (l :: TxLevel). Int -> Tx l DijkstraEra -> ShowS
showsPrec :: Int -> Tx l DijkstraEra -> ShowS
$cshow :: forall (l :: TxLevel). Tx l DijkstraEra -> String
show :: Tx l DijkstraEra -> String
$cshowList :: forall (l :: TxLevel). [Tx l DijkstraEra] -> ShowS
showList :: [Tx l DijkstraEra] -> ShowS
Show, Tx l DijkstraEra -> ()
(Tx l DijkstraEra -> ()) -> NFData (Tx l DijkstraEra)
forall a. (a -> ()) -> NFData a
forall (l :: TxLevel). Tx l DijkstraEra -> ()
$crnf :: forall (l :: TxLevel). Tx l DijkstraEra -> ()
rnf :: Tx l DijkstraEra -> ()
NFData, Context -> Tx l DijkstraEra -> IO (Maybe ThunkInfo)
Proxy (Tx l DijkstraEra) -> String
(Context -> Tx l DijkstraEra -> IO (Maybe ThunkInfo))
-> (Context -> Tx l DijkstraEra -> IO (Maybe ThunkInfo))
-> (Proxy (Tx l DijkstraEra) -> String)
-> NoThunks (Tx l DijkstraEra)
forall a.
(Context -> a -> IO (Maybe ThunkInfo))
-> (Context -> a -> IO (Maybe ThunkInfo))
-> (Proxy a -> String)
-> NoThunks a
forall (l :: TxLevel).
Typeable l =>
Context -> Tx l DijkstraEra -> IO (Maybe ThunkInfo)
forall (l :: TxLevel).
Typeable l =>
Proxy (Tx l DijkstraEra) -> String
$cnoThunks :: forall (l :: TxLevel).
Typeable l =>
Context -> Tx l DijkstraEra -> IO (Maybe ThunkInfo)
noThunks :: Context -> Tx l DijkstraEra -> IO (Maybe ThunkInfo)
$cwNoThunks :: forall (l :: TxLevel).
Typeable l =>
Context -> Tx l DijkstraEra -> IO (Maybe ThunkInfo)
wNoThunks :: Context -> Tx l DijkstraEra -> IO (Maybe ThunkInfo)
$cshowTypeOf :: forall (l :: TxLevel).
Typeable l =>
Proxy (Tx l DijkstraEra) -> String
showTypeOf :: Proxy (Tx l DijkstraEra) -> String
NoThunks, Typeable (Tx l DijkstraEra)
Typeable (Tx l DijkstraEra) =>
(Tx l DijkstraEra -> Encoding)
-> ((forall t. ToCBOR t => Proxy t -> Size)
-> Proxy (Tx l DijkstraEra) -> Size)
-> ((forall t. ToCBOR t => Proxy t -> Size)
-> Proxy [Tx l DijkstraEra] -> Size)
-> ToCBOR (Tx l DijkstraEra)
Tx l DijkstraEra -> Encoding
(forall t. ToCBOR t => Proxy t -> Size)
-> Proxy [Tx l DijkstraEra] -> Size
(forall t. ToCBOR t => Proxy t -> Size)
-> Proxy (Tx l DijkstraEra) -> Size
forall a.
Typeable a =>
(a -> Encoding)
-> ((forall t. ToCBOR t => Proxy t -> Size) -> Proxy a -> Size)
-> ((forall t. ToCBOR t => Proxy t -> Size) -> Proxy [a] -> Size)
-> ToCBOR a
forall (l :: TxLevel). Typeable l => Typeable (Tx l DijkstraEra)
forall (l :: TxLevel). Typeable l => Tx l DijkstraEra -> Encoding
forall (l :: TxLevel).
Typeable l =>
(forall t. ToCBOR t => Proxy t -> Size)
-> Proxy [Tx l DijkstraEra] -> Size
forall (l :: TxLevel).
Typeable l =>
(forall t. ToCBOR t => Proxy t -> Size)
-> Proxy (Tx l DijkstraEra) -> Size
$ctoCBOR :: forall (l :: TxLevel). Typeable l => Tx l DijkstraEra -> Encoding
toCBOR :: Tx l DijkstraEra -> Encoding
$cencodedSizeExpr :: forall (l :: TxLevel).
Typeable l =>
(forall t. ToCBOR t => Proxy t -> Size)
-> Proxy (Tx l DijkstraEra) -> Size
encodedSizeExpr :: (forall t. ToCBOR t => Proxy t -> Size)
-> Proxy (Tx l DijkstraEra) -> Size
$cencodedListSizeExpr :: forall (l :: TxLevel).
Typeable l =>
(forall t. ToCBOR t => Proxy t -> Size)
-> Proxy [Tx l DijkstraEra] -> Size
encodedListSizeExpr :: (forall t. ToCBOR t => Proxy t -> Size)
-> Proxy [Tx l DijkstraEra] -> Size
ToCBOR, Tx l DijkstraEra -> Encoding
(Tx l DijkstraEra -> Encoding) -> EncCBOR (Tx l DijkstraEra)
forall a. (a -> Encoding) -> EncCBOR a
forall (l :: TxLevel). Tx l DijkstraEra -> Encoding
$cencCBOR :: forall (l :: TxLevel). Tx l DijkstraEra -> Encoding
encCBOR :: Tx l DijkstraEra -> Encoding
EncCBOR)
deriving ((forall x. Tx l DijkstraEra -> Rep (Tx l DijkstraEra) x)
-> (forall x. Rep (Tx l DijkstraEra) x -> Tx l DijkstraEra)
-> Generic (Tx l DijkstraEra)
forall x. Rep (Tx l DijkstraEra) x -> Tx l DijkstraEra
forall x. Tx l DijkstraEra -> Rep (Tx l DijkstraEra) x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
forall (l :: TxLevel) x.
Rep (Tx l DijkstraEra) x -> Tx l DijkstraEra
forall (l :: TxLevel) x.
Tx l DijkstraEra -> Rep (Tx l DijkstraEra) x
$cfrom :: forall (l :: TxLevel) x.
Tx l DijkstraEra -> Rep (Tx l DijkstraEra) x
from :: forall x. Tx l DijkstraEra -> Rep (Tx l DijkstraEra) x
$cto :: forall (l :: TxLevel) x.
Rep (Tx l DijkstraEra) x -> Tx l DijkstraEra
to :: forall x. Rep (Tx l DijkstraEra) x -> Tx l DijkstraEra
Generic)
type StAnnTx l DijkstraEra = DijkstraStAnnTx l DijkstraEra
type StAnnTxCache DijkstraEra = Map.Map ScriptHash (SupportedPlutusRunnable DijkstraEra)
txStAnnTxG :: forall (l :: TxLevel).
SimpleGetter (StAnnTx l DijkstraEra) (Tx l DijkstraEra)
txStAnnTxG = (StAnnTx l DijkstraEra -> Tx l DijkstraEra)
-> SimpleGetter (StAnnTx l DijkstraEra) (Tx l DijkstraEra)
forall s a. (s -> a) -> SimpleGetter s a
to ((StAnnTx l DijkstraEra -> Tx l DijkstraEra)
-> SimpleGetter (StAnnTx l DijkstraEra) (Tx l DijkstraEra))
-> (StAnnTx l DijkstraEra -> Tx l DijkstraEra)
-> SimpleGetter (StAnnTx l DijkstraEra) (Tx l DijkstraEra)
forall a b. (a -> b) -> a -> b
$ \case
DijkstraStAnnTopTx {Tx TopTx DijkstraEra
dsattTx :: Tx TopTx DijkstraEra
dsattTx :: forall era. DijkstraStAnnTx TopTx era -> Tx TopTx era
dsattTx} -> Tx l DijkstraEra
Tx TopTx DijkstraEra
dsattTx
DijkstraStAnnSubTx {Tx SubTx DijkstraEra
dsastTx :: Tx SubTx DijkstraEra
dsastTx :: forall era. DijkstraStAnnTx SubTx era -> Tx SubTx era
dsastTx} -> Tx l DijkstraEra
Tx SubTx DijkstraEra
dsastTx
cacheStAnnTxG :: forall (l :: TxLevel).
SimpleGetter (StAnnTx l DijkstraEra) (StAnnTxCache DijkstraEra)
cacheStAnnTxG = (StAnnTx l DijkstraEra -> StAnnTxCache DijkstraEra)
-> SimpleGetter (StAnnTx l DijkstraEra) (StAnnTxCache DijkstraEra)
forall s a. (s -> a) -> SimpleGetter s a
to ((StAnnTx l DijkstraEra -> StAnnTxCache DijkstraEra)
-> SimpleGetter (StAnnTx l DijkstraEra) (StAnnTxCache DijkstraEra))
-> (StAnnTx l DijkstraEra -> StAnnTxCache DijkstraEra)
-> SimpleGetter (StAnnTx l DijkstraEra) (StAnnTxCache DijkstraEra)
forall a b. (a -> b) -> a -> b
$ \case
DijkstraStAnnTopTx {Map ScriptHash (SupportedPlutusRunnable DijkstraEra)
dsattPlutusRunnableCache :: Map ScriptHash (SupportedPlutusRunnable DijkstraEra)
dsattPlutusRunnableCache :: forall era.
DijkstraStAnnTx TopTx era
-> Map ScriptHash (SupportedPlutusRunnable era)
dsattPlutusRunnableCache} -> Map ScriptHash (SupportedPlutusRunnable DijkstraEra)
StAnnTxCache DijkstraEra
dsattPlutusRunnableCache
DijkstraStAnnSubTx {Map ScriptHash (SupportedPlutusRunnable DijkstraEra)
dsastPlutusRunnableCache :: Map ScriptHash (SupportedPlutusRunnable DijkstraEra)
dsastPlutusRunnableCache :: forall era.
DijkstraStAnnTx SubTx era
-> Map ScriptHash (SupportedPlutusRunnable era)
dsastPlutusRunnableCache} -> Map ScriptHash (SupportedPlutusRunnable DijkstraEra)
StAnnTxCache DijkstraEra
dsastPlutusRunnableCache
mkBasicTx :: forall (l :: TxLevel). TxBody l DijkstraEra -> Tx l DijkstraEra
mkBasicTx = DijkstraTx l DijkstraEra -> Tx l DijkstraEra
forall (l :: TxLevel). DijkstraTx l DijkstraEra -> Tx l DijkstraEra
MkDijkstraTx (DijkstraTx l DijkstraEra -> Tx l DijkstraEra)
-> (TxBody l DijkstraEra -> DijkstraTx l DijkstraEra)
-> TxBody l DijkstraEra
-> Tx l DijkstraEra
forall b c a. (b -> c) -> (a -> b) -> a -> c
. TxBody l DijkstraEra -> DijkstraTx l DijkstraEra
forall (l :: TxLevel).
TxBody l DijkstraEra -> DijkstraTx l DijkstraEra
mkBasicDijkstraTx
bodyTxL :: forall (l :: TxLevel).
Lens' (Tx l DijkstraEra) (TxBody l DijkstraEra)
bodyTxL = (DijkstraTx l DijkstraEra -> f (DijkstraTx l DijkstraEra))
-> Tx l DijkstraEra -> f (Tx l DijkstraEra)
forall (l :: TxLevel) (f :: * -> *).
Functor f =>
(DijkstraTx l DijkstraEra -> f (DijkstraTx l DijkstraEra))
-> Tx l DijkstraEra -> f (Tx l DijkstraEra)
dijkstraTxL ((DijkstraTx l DijkstraEra -> f (DijkstraTx l DijkstraEra))
-> Tx l DijkstraEra -> f (Tx l DijkstraEra))
-> ((TxBody l DijkstraEra -> f (TxBody l DijkstraEra))
-> DijkstraTx l DijkstraEra -> f (DijkstraTx l DijkstraEra))
-> (TxBody l DijkstraEra -> f (TxBody l DijkstraEra))
-> Tx l DijkstraEra
-> f (Tx l DijkstraEra)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (TxBody l DijkstraEra -> f (TxBody l DijkstraEra))
-> DijkstraTx l DijkstraEra -> f (DijkstraTx l DijkstraEra)
forall era (l :: TxLevel).
EraTx era =>
Lens' (DijkstraTx l era) (TxBody l era)
Lens' (DijkstraTx l DijkstraEra) (TxBody l DijkstraEra)
bodyDijkstraTxL
{-# INLINE bodyTxL #-}
witsTxL :: forall (l :: TxLevel).
Lens' (Tx l DijkstraEra) (TxWits DijkstraEra)
witsTxL = (DijkstraTx l DijkstraEra -> f (DijkstraTx l DijkstraEra))
-> Tx l DijkstraEra -> f (Tx l DijkstraEra)
forall (l :: TxLevel) (f :: * -> *).
Functor f =>
(DijkstraTx l DijkstraEra -> f (DijkstraTx l DijkstraEra))
-> Tx l DijkstraEra -> f (Tx l DijkstraEra)
dijkstraTxL ((DijkstraTx l DijkstraEra -> f (DijkstraTx l DijkstraEra))
-> Tx l DijkstraEra -> f (Tx l DijkstraEra))
-> ((AlonzoTxWits DijkstraEra -> f (AlonzoTxWits DijkstraEra))
-> DijkstraTx l DijkstraEra -> f (DijkstraTx l DijkstraEra))
-> (AlonzoTxWits DijkstraEra -> f (AlonzoTxWits DijkstraEra))
-> Tx l DijkstraEra
-> f (Tx l DijkstraEra)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (TxWits DijkstraEra -> f (TxWits DijkstraEra))
-> DijkstraTx l DijkstraEra -> f (DijkstraTx l DijkstraEra)
(AlonzoTxWits DijkstraEra -> f (AlonzoTxWits DijkstraEra))
-> DijkstraTx l DijkstraEra -> f (DijkstraTx l DijkstraEra)
forall era (l :: TxLevel).
EraTx era =>
Lens' (DijkstraTx l era) (TxWits era)
Lens' (DijkstraTx l DijkstraEra) (TxWits DijkstraEra)
witsDijkstraTxL
{-# INLINE witsTxL #-}
auxDataTxL :: forall (l :: TxLevel).
Lens' (Tx l DijkstraEra) (StrictMaybe (TxAuxData DijkstraEra))
auxDataTxL = (DijkstraTx l DijkstraEra -> f (DijkstraTx l DijkstraEra))
-> Tx l DijkstraEra -> f (Tx l DijkstraEra)
forall (l :: TxLevel) (f :: * -> *).
Functor f =>
(DijkstraTx l DijkstraEra -> f (DijkstraTx l DijkstraEra))
-> Tx l DijkstraEra -> f (Tx l DijkstraEra)
dijkstraTxL ((DijkstraTx l DijkstraEra -> f (DijkstraTx l DijkstraEra))
-> Tx l DijkstraEra -> f (Tx l DijkstraEra))
-> ((StrictMaybe (AlonzoTxAuxData DijkstraEra)
-> f (StrictMaybe (AlonzoTxAuxData DijkstraEra)))
-> DijkstraTx l DijkstraEra -> f (DijkstraTx l DijkstraEra))
-> (StrictMaybe (AlonzoTxAuxData DijkstraEra)
-> f (StrictMaybe (AlonzoTxAuxData DijkstraEra)))
-> Tx l DijkstraEra
-> f (Tx l DijkstraEra)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (StrictMaybe (TxAuxData DijkstraEra)
-> f (StrictMaybe (TxAuxData DijkstraEra)))
-> DijkstraTx l DijkstraEra -> f (DijkstraTx l DijkstraEra)
(StrictMaybe (AlonzoTxAuxData DijkstraEra)
-> f (StrictMaybe (AlonzoTxAuxData DijkstraEra)))
-> DijkstraTx l DijkstraEra -> f (DijkstraTx l DijkstraEra)
forall era (l :: TxLevel).
EraTx era =>
Lens' (DijkstraTx l era) (StrictMaybe (TxAuxData era))
Lens'
(DijkstraTx l DijkstraEra) (StrictMaybe (TxAuxData DijkstraEra))
auxDataDijkstraTxL
{-# INLINE auxDataTxL #-}
sizeTxF :: forall (l :: TxLevel).
HasCallStack =>
SimpleGetter (Tx l DijkstraEra) Word32
sizeTxF = (DijkstraTx l DijkstraEra -> Const r (DijkstraTx l DijkstraEra))
-> Tx l DijkstraEra -> Const r (Tx l DijkstraEra)
forall (l :: TxLevel) (f :: * -> *).
Functor f =>
(DijkstraTx l DijkstraEra -> f (DijkstraTx l DijkstraEra))
-> Tx l DijkstraEra -> f (Tx l DijkstraEra)
dijkstraTxL ((DijkstraTx l DijkstraEra -> Const r (DijkstraTx l DijkstraEra))
-> Tx l DijkstraEra -> Const r (Tx l DijkstraEra))
-> ((Word32 -> Const r Word32)
-> DijkstraTx l DijkstraEra -> Const r (DijkstraTx l DijkstraEra))
-> (Word32 -> Const r Word32)
-> Tx l DijkstraEra
-> Const r (Tx l DijkstraEra)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Word32 -> Const r Word32)
-> DijkstraTx l DijkstraEra -> Const r (DijkstraTx l DijkstraEra)
SimpleGetter (DijkstraTx l DijkstraEra) Word32
forall era (l :: TxLevel).
EraTx era =>
SimpleGetter (DijkstraTx l era) Word32
sizeDijkstraTxF
{-# INLINE sizeTxF #-}
validateNativeScript :: forall (l :: TxLevel).
Tx l DijkstraEra -> NativeScript DijkstraEra -> Bool
validateNativeScript = Tx l DijkstraEra -> NativeScript DijkstraEra -> Bool
forall era (l :: TxLevel).
(EraTx era, DijkstraEraTxBody era, DijkstraEraScript era,
NativeScript era ~ DijkstraNativeScript era) =>
Tx l era -> NativeScript era -> Bool
validateDijkstraNativeScript
{-# INLINE validateNativeScript #-}
getMinFeeTx :: forall (l :: TxLevel).
PParams DijkstraEra -> Tx l DijkstraEra -> Int -> Coin
getMinFeeTx = PParams DijkstraEra -> Tx l DijkstraEra -> Int -> Coin
forall era (l :: TxLevel).
(AlonzoEraTx era, ConwayEraPParams era) =>
PParams era -> Tx l era -> Int -> Coin
getConwayMinFeeTx
allInputsTxBodyF :: SimpleGetter (TxBody TopTx DijkstraEra) (Set TxIn)
allInputsTxBodyF = Getting r (TxBody TopTx DijkstraEra) (Set TxIn)
forall era.
(EraTx era, DijkstraEraTxBody era) =>
SimpleGetter (TxBody TopTx era) (Set TxIn)
SimpleGetter (TxBody TopTx DijkstraEra) (Set TxIn)
dijkstraAllInputsTxBodyF
{-# INLINE allInputsTxBodyF #-}
bodyDijkstraTxL :: EraTx era => Lens' (DijkstraTx l era) (TxBody l era)
bodyDijkstraTxL :: forall era (l :: TxLevel).
EraTx era =>
Lens' (DijkstraTx l era) (TxBody l era)
bodyDijkstraTxL =
(DijkstraTx l era -> TxBody l era)
-> (DijkstraTx l era -> TxBody l era -> DijkstraTx l era)
-> Lens
(DijkstraTx l era) (DijkstraTx l era) (TxBody l era) (TxBody l era)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens
( \case
DijkstraTopTx DijkstraTopTx era
t -> DijkstraTopTx era
t DijkstraTopTx era
-> Getting (TxBody l era) (DijkstraTopTx era) (TxBody l era)
-> TxBody l era
forall s a. s -> Getting a s a -> a
^. Getting (TxBody l era) (DijkstraTopTx era) (TxBody l era)
(TxBody TopTx era -> Const (TxBody l era) (TxBody TopTx era))
-> DijkstraTopTx era -> Const (TxBody l era) (DijkstraTopTx era)
forall era.
EraTx era =>
Lens' (DijkstraTopTx era) (TxBody TopTx era)
Lens' (DijkstraTopTx era) (TxBody TopTx era)
bodyDijkstraTopTxL
DijkstraSubTx {TxBody SubTx era
dstBody :: forall era. DijkstraTx SubTx era -> TxBody SubTx era
dstBody :: TxBody SubTx era
dstBody} -> TxBody l era
TxBody SubTx era
dstBody
)
( \case
DijkstraTopTx DijkstraTopTx era
t -> \TxBody l era
x -> DijkstraTopTx era -> DijkstraTx TopTx era
forall era. DijkstraTopTx era -> DijkstraTx TopTx era
DijkstraTopTx (DijkstraTopTx era
t DijkstraTopTx era
-> (DijkstraTopTx era -> DijkstraTopTx era) -> DijkstraTopTx era
forall a b. a -> (a -> b) -> b
& (TxBody TopTx era -> Identity (TxBody TopTx era))
-> DijkstraTopTx era -> Identity (DijkstraTopTx era)
forall era.
EraTx era =>
Lens' (DijkstraTopTx era) (TxBody TopTx era)
Lens' (DijkstraTopTx era) (TxBody TopTx era)
bodyDijkstraTopTxL ((TxBody TopTx era -> Identity (TxBody TopTx era))
-> DijkstraTopTx era -> Identity (DijkstraTopTx era))
-> TxBody TopTx era -> DijkstraTopTx era -> DijkstraTopTx era
forall s t a b. ASetter s t a b -> b -> s -> t
.~ TxBody l era
TxBody TopTx era
x)
tx :: DijkstraTx l era
tx@DijkstraSubTx {} -> \TxBody l era
x -> DijkstraTx l era
tx {dstBody = x}
)
witsDijkstraTxL :: EraTx era => Lens' (DijkstraTx l era) (TxWits era)
witsDijkstraTxL :: forall era (l :: TxLevel).
EraTx era =>
Lens' (DijkstraTx l era) (TxWits era)
witsDijkstraTxL =
(DijkstraTx l era -> TxWits era)
-> (DijkstraTx l era -> TxWits era -> DijkstraTx l era)
-> Lens
(DijkstraTx l era) (DijkstraTx l era) (TxWits era) (TxWits era)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens
( \case
DijkstraTopTx DijkstraTopTx era
t -> DijkstraTopTx era
t DijkstraTopTx era
-> Getting (TxWits era) (DijkstraTopTx era) (TxWits era)
-> TxWits era
forall s a. s -> Getting a s a -> a
^. Getting (TxWits era) (DijkstraTopTx era) (TxWits era)
forall era. EraTx era => Lens' (DijkstraTopTx era) (TxWits era)
Lens' (DijkstraTopTx era) (TxWits era)
witsDijkstraTopTxL
DijkstraSubTx {TxWits era
dstWits :: forall era. DijkstraTx SubTx era -> TxWits era
dstWits :: TxWits era
dstWits} -> TxWits era
dstWits
)
( \case
DijkstraTopTx DijkstraTopTx era
t -> \TxWits era
x -> DijkstraTopTx era -> DijkstraTx TopTx era
forall era. DijkstraTopTx era -> DijkstraTx TopTx era
DijkstraTopTx (DijkstraTopTx era
t DijkstraTopTx era
-> (DijkstraTopTx era -> DijkstraTopTx era) -> DijkstraTopTx era
forall a b. a -> (a -> b) -> b
& (TxWits era -> Identity (TxWits era))
-> DijkstraTopTx era -> Identity (DijkstraTopTx era)
forall era. EraTx era => Lens' (DijkstraTopTx era) (TxWits era)
Lens' (DijkstraTopTx era) (TxWits era)
witsDijkstraTopTxL ((TxWits era -> Identity (TxWits era))
-> DijkstraTopTx era -> Identity (DijkstraTopTx era))
-> TxWits era -> DijkstraTopTx era -> DijkstraTopTx era
forall s t a b. ASetter s t a b -> b -> s -> t
.~ TxWits era
x)
tx :: DijkstraTx l era
tx@DijkstraSubTx {} -> \TxWits era
x -> DijkstraTx l era
tx {dstWits = x}
)
isPhase2ValidDijkstraTxL :: EraTx era => Lens' (DijkstraTx TopTx era) IsPhase2Valid
isPhase2ValidDijkstraTxL :: forall era. EraTx era => Lens' (DijkstraTx TopTx era) IsPhase2Valid
isPhase2ValidDijkstraTxL =
(DijkstraTx TopTx era -> IsPhase2Valid)
-> (DijkstraTx TopTx era -> IsPhase2Valid -> DijkstraTx TopTx era)
-> Lens
(DijkstraTx TopTx era)
(DijkstraTx TopTx era)
IsPhase2Valid
IsPhase2Valid
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens (\(DijkstraTopTx DijkstraTopTx era
t) -> DijkstraTopTx era
t DijkstraTopTx era
-> Getting IsPhase2Valid (DijkstraTopTx era) IsPhase2Valid
-> IsPhase2Valid
forall s a. s -> Getting a s a -> a
^. Getting IsPhase2Valid (DijkstraTopTx era) IsPhase2Valid
forall era. EraTx era => Lens' (DijkstraTopTx era) IsPhase2Valid
Lens' (DijkstraTopTx era) IsPhase2Valid
isPhase2ValidDijkstraTopTxL) ((DijkstraTx TopTx era -> IsPhase2Valid -> DijkstraTx TopTx era)
-> Lens
(DijkstraTx TopTx era)
(DijkstraTx TopTx era)
IsPhase2Valid
IsPhase2Valid)
-> (DijkstraTx TopTx era -> IsPhase2Valid -> DijkstraTx TopTx era)
-> Lens
(DijkstraTx TopTx era)
(DijkstraTx TopTx era)
IsPhase2Valid
IsPhase2Valid
forall a b. (a -> b) -> a -> b
$ \(DijkstraTopTx DijkstraTopTx era
t) IsPhase2Valid
x ->
DijkstraTopTx era -> DijkstraTx TopTx era
forall era. DijkstraTopTx era -> DijkstraTx TopTx era
DijkstraTopTx (DijkstraTopTx era
t DijkstraTopTx era
-> (DijkstraTopTx era -> DijkstraTopTx era) -> DijkstraTopTx era
forall a b. a -> (a -> b) -> b
& (IsPhase2Valid -> Identity IsPhase2Valid)
-> DijkstraTopTx era -> Identity (DijkstraTopTx era)
forall era. EraTx era => Lens' (DijkstraTopTx era) IsPhase2Valid
Lens' (DijkstraTopTx era) IsPhase2Valid
isPhase2ValidDijkstraTopTxL ((IsPhase2Valid -> Identity IsPhase2Valid)
-> DijkstraTopTx era -> Identity (DijkstraTopTx era))
-> IsPhase2Valid -> DijkstraTopTx era -> DijkstraTopTx era
forall s t a b. ASetter s t a b -> b -> s -> t
.~ IsPhase2Valid
x)
auxDataDijkstraTxL :: EraTx era => Lens' (DijkstraTx l era) (StrictMaybe (TxAuxData era))
auxDataDijkstraTxL :: forall era (l :: TxLevel).
EraTx era =>
Lens' (DijkstraTx l era) (StrictMaybe (TxAuxData era))
auxDataDijkstraTxL =
(DijkstraTx l era -> StrictMaybe (TxAuxData era))
-> (DijkstraTx l era
-> StrictMaybe (TxAuxData era) -> DijkstraTx l era)
-> Lens
(DijkstraTx l era)
(DijkstraTx l era)
(StrictMaybe (TxAuxData era))
(StrictMaybe (TxAuxData era))
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens
( \case
DijkstraTopTx DijkstraTopTx era
t -> DijkstraTopTx era
t DijkstraTopTx era
-> Getting
(StrictMaybe (TxAuxData era))
(DijkstraTopTx era)
(StrictMaybe (TxAuxData era))
-> StrictMaybe (TxAuxData era)
forall s a. s -> Getting a s a -> a
^. Getting
(StrictMaybe (TxAuxData era))
(DijkstraTopTx era)
(StrictMaybe (TxAuxData era))
forall era.
EraTx era =>
Lens' (DijkstraTopTx era) (StrictMaybe (TxAuxData era))
Lens' (DijkstraTopTx era) (StrictMaybe (TxAuxData era))
auxDataDijkstraTopTxL
DijkstraSubTx {StrictMaybe (TxAuxData era)
dstAuxData :: forall era. DijkstraTx SubTx era -> StrictMaybe (TxAuxData era)
dstAuxData :: StrictMaybe (TxAuxData era)
dstAuxData} -> StrictMaybe (TxAuxData era)
dstAuxData
)
( \case
DijkstraTopTx DijkstraTopTx era
t -> \StrictMaybe (TxAuxData era)
x -> DijkstraTopTx era -> DijkstraTx TopTx era
forall era. DijkstraTopTx era -> DijkstraTx TopTx era
DijkstraTopTx (DijkstraTopTx era
t DijkstraTopTx era
-> (DijkstraTopTx era -> DijkstraTopTx era) -> DijkstraTopTx era
forall a b. a -> (a -> b) -> b
& (StrictMaybe (TxAuxData era)
-> Identity (StrictMaybe (TxAuxData era)))
-> DijkstraTopTx era -> Identity (DijkstraTopTx era)
forall era.
EraTx era =>
Lens' (DijkstraTopTx era) (StrictMaybe (TxAuxData era))
Lens' (DijkstraTopTx era) (StrictMaybe (TxAuxData era))
auxDataDijkstraTopTxL ((StrictMaybe (TxAuxData era)
-> Identity (StrictMaybe (TxAuxData era)))
-> DijkstraTopTx era -> Identity (DijkstraTopTx era))
-> StrictMaybe (TxAuxData era)
-> DijkstraTopTx era
-> DijkstraTopTx era
forall s t a b. ASetter s t a b -> b -> s -> t
.~ StrictMaybe (TxAuxData era)
x)
tx :: DijkstraTx l era
tx@DijkstraSubTx {} -> \StrictMaybe (TxAuxData era)
x -> DijkstraTx l era
tx {dstAuxData = x}
)
toCBORForSizeComputation :: EraTx era => DijkstraTx l era -> Encoding
toCBORForSizeComputation :: forall era (l :: TxLevel).
EraTx era =>
DijkstraTx l era -> Encoding
toCBORForSizeComputation DijkstraTx l era
tx =
Word -> Encoding
encodeListLen Word
3
Encoding -> Encoding -> Encoding
forall a. Semigroup a => a -> a -> a
<> TxBody l era -> Encoding
forall a. EncCBOR a => a -> Encoding
encCBOR (DijkstraTx l era
tx DijkstraTx l era
-> Getting (TxBody l era) (DijkstraTx l era) (TxBody l era)
-> TxBody l era
forall s a. s -> Getting a s a -> a
^. Getting (TxBody l era) (DijkstraTx l era) (TxBody l era)
forall era (l :: TxLevel).
EraTx era =>
Lens' (DijkstraTx l era) (TxBody l era)
Lens' (DijkstraTx l era) (TxBody l era)
bodyDijkstraTxL)
Encoding -> Encoding -> Encoding
forall a. Semigroup a => a -> a -> a
<> TxWits era -> Encoding
forall a. EncCBOR a => a -> Encoding
encCBOR (DijkstraTx l era
tx DijkstraTx l era
-> Getting (TxWits era) (DijkstraTx l era) (TxWits era)
-> TxWits era
forall s a. s -> Getting a s a -> a
^. Getting (TxWits era) (DijkstraTx l era) (TxWits era)
forall era (l :: TxLevel).
EraTx era =>
Lens' (DijkstraTx l era) (TxWits era)
Lens' (DijkstraTx l era) (TxWits era)
witsDijkstraTxL)
Encoding -> Encoding -> Encoding
forall a. Semigroup a => a -> a -> a
<> (TxAuxData era -> Encoding)
-> StrictMaybe (TxAuxData era) -> Encoding
forall a. (a -> Encoding) -> StrictMaybe a -> Encoding
encodeNullStrictMaybe TxAuxData era -> Encoding
forall a. EncCBOR a => a -> Encoding
encCBOR (DijkstraTx l era
tx DijkstraTx l era
-> Getting
(StrictMaybe (TxAuxData era))
(DijkstraTx l era)
(StrictMaybe (TxAuxData era))
-> StrictMaybe (TxAuxData era)
forall s a. s -> Getting a s a -> a
^. Getting
(StrictMaybe (TxAuxData era))
(DijkstraTx l era)
(StrictMaybe (TxAuxData era))
forall era (l :: TxLevel).
EraTx era =>
Lens' (DijkstraTx l era) (StrictMaybe (TxAuxData era))
Lens' (DijkstraTx l era) (StrictMaybe (TxAuxData era))
auxDataDijkstraTxL)
sizeDijkstraTxF ::
forall era l.
EraTx era =>
SimpleGetter (DijkstraTx l era) Word32
sizeDijkstraTxF :: forall era (l :: TxLevel).
EraTx era =>
SimpleGetter (DijkstraTx l era) Word32
sizeDijkstraTxF =
(DijkstraTx l era -> Word32)
-> SimpleGetter (DijkstraTx l era) Word32
forall s a. (s -> a) -> SimpleGetter s a
to ((DijkstraTx l era -> Word32)
-> SimpleGetter (DijkstraTx l era) Word32)
-> (DijkstraTx l era -> Word32)
-> SimpleGetter (DijkstraTx l era) Word32
forall a b. (a -> b) -> a -> b
$
Fail Word32 -> Word32
forall a. HasCallStack => Fail a -> a
errorFail
(Fail Word32 -> Word32)
-> (DijkstraTx l era -> Fail Word32) -> DijkstraTx l era -> Word32
forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall i b (m :: * -> *).
(Integral i, Integral b, Bounded b, MonadFail m) =>
i -> m b
integralToBounded @Int64 @Word32
(Int64 -> Fail Word32)
-> (DijkstraTx l era -> Int64) -> DijkstraTx l era -> Fail Word32
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ByteString -> Int64
LBS.length
(ByteString -> Int64)
-> (DijkstraTx l era -> ByteString) -> DijkstraTx l era -> Int64
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Version -> Encoding -> ByteString
forall a. EncCBOR a => Version -> a -> ByteString
serialize (forall era. Era era => Version
eraProtVerLow @era)
(Encoding -> ByteString)
-> (DijkstraTx l era -> Encoding) -> DijkstraTx l era -> ByteString
forall b c a. (b -> c) -> (a -> b) -> a -> c
. DijkstraTx l era -> Encoding
forall era (l :: TxLevel).
EraTx era =>
DijkstraTx l era -> Encoding
toCBORForSizeComputation
dijkstraTxEqRaw ::
( STxLevel l era ~ STxBothLevels l era
, AlonzoEraTx era
) =>
Tx l era ->
Tx l era ->
Bool
dijkstraTxEqRaw :: forall (l :: TxLevel) era.
(STxLevel l era ~ STxBothLevels l era, AlonzoEraTx era) =>
Tx l era -> Tx l era -> Bool
dijkstraTxEqRaw Tx l era
tx1 Tx l era
tx2 =
Tx l era -> Tx l era -> Bool
forall era (l :: TxLevel).
EraTx era =>
Tx l era -> Tx l era -> Bool
shelleyTxEqRaw Tx l era
tx1 Tx l era
tx2
Bool -> Bool -> Bool
&& Tx l era
-> (Tx TopTx era -> Bool) -> (Tx SubTx era -> Bool) -> Bool
forall (l :: TxLevel) era (t :: TxLevel -> * -> *) a.
(HasEraTxLevel t era, STxLevel l era ~ STxBothLevels l era) =>
t l era -> (t TopTx era -> a) -> (t SubTx era -> a) -> a
withBothTxLevels
Tx l era
tx1
( \Tx TopTx era
tx1' ->
Tx l era
-> (Tx TopTx era -> Bool) -> (Tx SubTx era -> Bool) -> Bool
forall (l :: TxLevel) era (t :: TxLevel -> * -> *) a.
(HasEraTxLevel t era, STxLevel l era ~ STxBothLevels l era) =>
t l era -> (t TopTx era -> a) -> (t SubTx era -> a) -> a
withBothTxLevels
Tx l era
tx2
(\Tx TopTx era
tx2' -> Tx TopTx era
tx1' Tx TopTx era
-> Getting IsPhase2Valid (Tx TopTx era) IsPhase2Valid
-> IsPhase2Valid
forall s a. s -> Getting a s a -> a
^. Getting IsPhase2Valid (Tx TopTx era) IsPhase2Valid
forall era. AlonzoEraTx era => Lens' (Tx TopTx era) IsPhase2Valid
Lens' (Tx TopTx era) IsPhase2Valid
isPhase2ValidTxL IsPhase2Valid -> IsPhase2Valid -> Bool
forall a. Eq a => a -> a -> Bool
== Tx TopTx era
tx2' Tx TopTx era
-> Getting IsPhase2Valid (Tx TopTx era) IsPhase2Valid
-> IsPhase2Valid
forall s a. s -> Getting a s a -> a
^. Getting IsPhase2Valid (Tx TopTx era) IsPhase2Valid
forall era. AlonzoEraTx era => Lens' (Tx TopTx era) IsPhase2Valid
Lens' (Tx TopTx era) IsPhase2Valid
isPhase2ValidTxL)
(Bool -> Tx SubTx era -> Bool
forall a b. a -> b -> a
const Bool
True)
)
(Bool -> Tx SubTx era -> Bool
forall a b. a -> b -> a
const Bool
True)
instance EqRaw (Tx l DijkstraEra) where
eqRaw :: Tx l DijkstraEra -> Tx l DijkstraEra -> Bool
eqRaw = Tx l DijkstraEra -> Tx l DijkstraEra -> Bool
forall (l :: TxLevel) era.
(STxLevel l era ~ STxBothLevels l era, AlonzoEraTx era) =>
Tx l era -> Tx l era -> Bool
dijkstraTxEqRaw
instance
( ToJSON (TxBody TopTx DijkstraEra)
, ToJSON (TxWits DijkstraEra)
, ToJSON (TxAuxData DijkstraEra)
) =>
ToKeyValuePairs (DijkstraTx TopTx DijkstraEra)
where
toKeyValuePairs :: forall e kv. KeyValue e kv => DijkstraTx TopTx DijkstraEra -> [kv]
toKeyValuePairs
( DijkstraTopTx
(DijkstraTopTx DijkstraEra -> RawType (DijkstraTopTx DijkstraEra)
forall t. Memoized t => t -> RawType t
getMemoRawType -> DijkstraTopTxRaw {TxBody TopTx DijkstraEra
dttrBody :: forall era. DijkstraTopTxRaw era -> TxBody TopTx era
dttrBody :: TxBody TopTx DijkstraEra
dttrBody, TxWits DijkstraEra
dttrWits :: forall era. DijkstraTopTxRaw era -> TxWits era
dttrWits :: TxWits DijkstraEra
dttrWits, IsPhase2Valid
dttrIsPhase2Valid :: forall era. DijkstraTopTxRaw era -> IsPhase2Valid
dttrIsPhase2Valid :: IsPhase2Valid
dttrIsPhase2Valid, StrictMaybe (TxAuxData DijkstraEra)
dttrAuxData :: forall era. DijkstraTopTxRaw era -> StrictMaybe (TxAuxData era)
dttrAuxData :: StrictMaybe (TxAuxData DijkstraEra)
dttrAuxData})
) =
[ Key
"body" Key -> TxBody TopTx DijkstraEra -> kv
forall v. ToJSON v => Key -> v -> kv
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= TxBody TopTx DijkstraEra
dttrBody
, Key
"wits" Key -> AlonzoTxWits DijkstraEra -> kv
forall v. ToJSON v => Key -> v -> kv
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= TxWits DijkstraEra
AlonzoTxWits DijkstraEra
dttrWits
, Key
"isPhase2Valid" Key -> IsPhase2Valid -> kv
forall v. ToJSON v => Key -> v -> kv
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= IsPhase2Valid
dttrIsPhase2Valid
, Key
"auxData" Key -> StrictMaybe (AlonzoTxAuxData DijkstraEra) -> kv
forall v. ToJSON v => Key -> v -> kv
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= StrictMaybe (TxAuxData DijkstraEra)
StrictMaybe (AlonzoTxAuxData DijkstraEra)
dttrAuxData
]
instance
( ToJSON (TxBody TopTx DijkstraEra)
, ToJSON (TxWits DijkstraEra)
, ToJSON (TxAuxData DijkstraEra)
) =>
ToJSON (Tx TopTx DijkstraEra)
where
toJSON :: Tx TopTx DijkstraEra -> Value
toJSON (MkDijkstraTx DijkstraTx TopTx DijkstraEra
tx) = [Pair] -> Value
Aeson.object (DijkstraTx TopTx DijkstraEra -> [Pair]
forall a e kv. (ToKeyValuePairs a, KeyValue e kv) => a -> [kv]
forall e kv. KeyValue e kv => DijkstraTx TopTx DijkstraEra -> [kv]
toKeyValuePairs DijkstraTx TopTx DijkstraEra
tx)
instance
( FromJSON (TxBody TopTx DijkstraEra)
, FromJSON (TxWits DijkstraEra)
, FromJSON (TxAuxData DijkstraEra)
) =>
FromJSON (Tx TopTx DijkstraEra)
where
parseJSON :: Value -> Parser (Tx TopTx DijkstraEra)
parseJSON = String
-> (Object -> Parser (Tx TopTx DijkstraEra))
-> Value
-> Parser (Tx TopTx DijkstraEra)
forall a. String -> (Object -> Parser a) -> Value -> Parser a
withObject String
"Tx TopTx DijkstraEra" ((Object -> Parser (Tx TopTx DijkstraEra))
-> Value -> Parser (Tx TopTx DijkstraEra))
-> (Object -> Parser (Tx TopTx DijkstraEra))
-> Value
-> Parser (Tx TopTx DijkstraEra)
forall a b. (a -> b) -> a -> b
$ \Object
o ->
(DijkstraTopTxRaw DijkstraEra -> Tx TopTx DijkstraEra)
-> Parser (DijkstraTopTxRaw DijkstraEra)
-> Parser (Tx TopTx DijkstraEra)
forall a b. (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap (DijkstraTx TopTx DijkstraEra -> Tx TopTx DijkstraEra
forall (l :: TxLevel). DijkstraTx l DijkstraEra -> Tx l DijkstraEra
MkDijkstraTx (DijkstraTx TopTx DijkstraEra -> Tx TopTx DijkstraEra)
-> (DijkstraTopTxRaw DijkstraEra -> DijkstraTx TopTx DijkstraEra)
-> DijkstraTopTxRaw DijkstraEra
-> Tx TopTx DijkstraEra
forall b c a. (b -> c) -> (a -> b) -> a -> c
. DijkstraTopTx DijkstraEra -> DijkstraTx TopTx DijkstraEra
forall era. DijkstraTopTx era -> DijkstraTx TopTx era
DijkstraTopTx (DijkstraTopTx DijkstraEra -> DijkstraTx TopTx DijkstraEra)
-> (DijkstraTopTxRaw DijkstraEra -> DijkstraTopTx DijkstraEra)
-> DijkstraTopTxRaw DijkstraEra
-> DijkstraTx TopTx DijkstraEra
forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall era t.
(Era era, EncCBOR (RawType t), Memoized t) =>
RawType t -> t
mkMemoizedEra @DijkstraEra) (Parser (DijkstraTopTxRaw DijkstraEra)
-> Parser (Tx TopTx DijkstraEra))
-> Parser (DijkstraTopTxRaw DijkstraEra)
-> Parser (Tx TopTx DijkstraEra)
forall a b. (a -> b) -> a -> b
$
TxBody TopTx DijkstraEra
-> TxWits DijkstraEra
-> IsPhase2Valid
-> StrictMaybe (TxAuxData DijkstraEra)
-> DijkstraTopTxRaw DijkstraEra
TxBody TopTx DijkstraEra
-> AlonzoTxWits DijkstraEra
-> IsPhase2Valid
-> StrictMaybe (AlonzoTxAuxData DijkstraEra)
-> DijkstraTopTxRaw DijkstraEra
forall era.
TxBody TopTx era
-> TxWits era
-> IsPhase2Valid
-> StrictMaybe (TxAuxData era)
-> DijkstraTopTxRaw era
DijkstraTopTxRaw
(TxBody TopTx DijkstraEra
-> AlonzoTxWits DijkstraEra
-> IsPhase2Valid
-> StrictMaybe (AlonzoTxAuxData DijkstraEra)
-> DijkstraTopTxRaw DijkstraEra)
-> Parser (TxBody TopTx DijkstraEra)
-> Parser
(AlonzoTxWits DijkstraEra
-> IsPhase2Valid
-> StrictMaybe (AlonzoTxAuxData DijkstraEra)
-> DijkstraTopTxRaw DijkstraEra)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
o Object -> Key -> Parser (TxBody TopTx DijkstraEra)
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"body"
Parser
(AlonzoTxWits DijkstraEra
-> IsPhase2Valid
-> StrictMaybe (AlonzoTxAuxData DijkstraEra)
-> DijkstraTopTxRaw DijkstraEra)
-> Parser (AlonzoTxWits DijkstraEra)
-> Parser
(IsPhase2Valid
-> StrictMaybe (AlonzoTxAuxData DijkstraEra)
-> DijkstraTopTxRaw DijkstraEra)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (AlonzoTxWits DijkstraEra)
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"wits"
Parser
(IsPhase2Valid
-> StrictMaybe (AlonzoTxAuxData DijkstraEra)
-> DijkstraTopTxRaw DijkstraEra)
-> Parser IsPhase2Valid
-> Parser
(StrictMaybe (AlonzoTxAuxData DijkstraEra)
-> DijkstraTopTxRaw DijkstraEra)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser IsPhase2Valid
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"isPhase2Valid"
Parser
(StrictMaybe (AlonzoTxAuxData DijkstraEra)
-> DijkstraTopTxRaw DijkstraEra)
-> Parser (StrictMaybe (AlonzoTxAuxData DijkstraEra))
-> Parser (DijkstraTopTxRaw DijkstraEra)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (StrictMaybe (AlonzoTxAuxData DijkstraEra))
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"auxData"
instance
( ToJSON (TxBody SubTx DijkstraEra)
, ToJSON (TxWits DijkstraEra)
, ToJSON (TxAuxData DijkstraEra)
) =>
ToJSON (Tx SubTx DijkstraEra)
where
toJSON :: Tx SubTx DijkstraEra -> Value
toJSON (MkDijkstraTx (DijkstraSubTx {TxBody SubTx DijkstraEra
dstBody :: forall era. DijkstraTx SubTx era -> TxBody SubTx era
dstBody :: TxBody SubTx DijkstraEra
dstBody, TxWits DijkstraEra
dstWits :: forall era. DijkstraTx SubTx era -> TxWits era
dstWits :: TxWits DijkstraEra
dstWits, StrictMaybe (TxAuxData DijkstraEra)
dstAuxData :: forall era. DijkstraTx SubTx era -> StrictMaybe (TxAuxData era)
dstAuxData :: StrictMaybe (TxAuxData DijkstraEra)
dstAuxData})) =
[Pair] -> Value
Aeson.object
[ Key
"dstBody" Key -> TxBody SubTx DijkstraEra -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= TxBody SubTx DijkstraEra
dstBody
, Key
"dstWits" Key -> AlonzoTxWits DijkstraEra -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= TxWits DijkstraEra
AlonzoTxWits DijkstraEra
dstWits
, Key
"dstAuxData" Key -> StrictMaybe (AlonzoTxAuxData DijkstraEra) -> Pair
forall v. ToJSON v => Key -> v -> Pair
forall e kv v. (KeyValue e kv, ToJSON v) => Key -> v -> kv
.= StrictMaybe (TxAuxData DijkstraEra)
StrictMaybe (AlonzoTxAuxData DijkstraEra)
dstAuxData
]
instance
( FromJSON (TxBody SubTx DijkstraEra)
, FromJSON (TxWits DijkstraEra)
, FromJSON (TxAuxData DijkstraEra)
) =>
FromJSON (Tx SubTx DijkstraEra)
where
parseJSON :: Value -> Parser (Tx SubTx DijkstraEra)
parseJSON = String
-> (Object -> Parser (Tx SubTx DijkstraEra))
-> Value
-> Parser (Tx SubTx DijkstraEra)
forall a. String -> (Object -> Parser a) -> Value -> Parser a
withObject String
"Tx SubTx DijkstraEra" ((Object -> Parser (Tx SubTx DijkstraEra))
-> Value -> Parser (Tx SubTx DijkstraEra))
-> (Object -> Parser (Tx SubTx DijkstraEra))
-> Value
-> Parser (Tx SubTx DijkstraEra)
forall a b. (a -> b) -> a -> b
$ \Object
o ->
(DijkstraTx SubTx DijkstraEra -> Tx SubTx DijkstraEra)
-> Parser (DijkstraTx SubTx DijkstraEra)
-> Parser (Tx SubTx DijkstraEra)
forall a b. (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap DijkstraTx SubTx DijkstraEra -> Tx SubTx DijkstraEra
forall (l :: TxLevel). DijkstraTx l DijkstraEra -> Tx l DijkstraEra
MkDijkstraTx (Parser (DijkstraTx SubTx DijkstraEra)
-> Parser (Tx SubTx DijkstraEra))
-> Parser (DijkstraTx SubTx DijkstraEra)
-> Parser (Tx SubTx DijkstraEra)
forall a b. (a -> b) -> a -> b
$
TxBody SubTx DijkstraEra
-> TxWits DijkstraEra
-> StrictMaybe (TxAuxData DijkstraEra)
-> DijkstraTx SubTx DijkstraEra
TxBody SubTx DijkstraEra
-> AlonzoTxWits DijkstraEra
-> StrictMaybe (AlonzoTxAuxData DijkstraEra)
-> DijkstraTx SubTx DijkstraEra
forall era.
TxBody SubTx era
-> TxWits era
-> StrictMaybe (TxAuxData era)
-> DijkstraTx SubTx era
DijkstraSubTx
(TxBody SubTx DijkstraEra
-> AlonzoTxWits DijkstraEra
-> StrictMaybe (AlonzoTxAuxData DijkstraEra)
-> DijkstraTx SubTx DijkstraEra)
-> Parser (TxBody SubTx DijkstraEra)
-> Parser
(AlonzoTxWits DijkstraEra
-> StrictMaybe (AlonzoTxAuxData DijkstraEra)
-> DijkstraTx SubTx DijkstraEra)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
o Object -> Key -> Parser (TxBody SubTx DijkstraEra)
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"dstBody"
Parser
(AlonzoTxWits DijkstraEra
-> StrictMaybe (AlonzoTxAuxData DijkstraEra)
-> DijkstraTx SubTx DijkstraEra)
-> Parser (AlonzoTxWits DijkstraEra)
-> Parser
(StrictMaybe (AlonzoTxAuxData DijkstraEra)
-> DijkstraTx SubTx DijkstraEra)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (AlonzoTxWits DijkstraEra)
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"dstWits"
Parser
(StrictMaybe (AlonzoTxAuxData DijkstraEra)
-> DijkstraTx SubTx DijkstraEra)
-> Parser (StrictMaybe (AlonzoTxAuxData DijkstraEra))
-> Parser (DijkstraTx SubTx DijkstraEra)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (StrictMaybe (AlonzoTxAuxData DijkstraEra))
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"dstAuxData"
dijkstraTxL :: Lens' (Tx l DijkstraEra) (DijkstraTx l DijkstraEra)
dijkstraTxL :: forall (l :: TxLevel) (f :: * -> *).
Functor f =>
(DijkstraTx l DijkstraEra -> f (DijkstraTx l DijkstraEra))
-> Tx l DijkstraEra -> f (Tx l DijkstraEra)
dijkstraTxL = (Tx l DijkstraEra -> DijkstraTx l DijkstraEra)
-> (Tx l DijkstraEra
-> DijkstraTx l DijkstraEra -> Tx l DijkstraEra)
-> Lens
(Tx l DijkstraEra)
(Tx l DijkstraEra)
(DijkstraTx l DijkstraEra)
(DijkstraTx l DijkstraEra)
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
lens Tx l DijkstraEra -> DijkstraTx l DijkstraEra
forall (l :: TxLevel). Tx l DijkstraEra -> DijkstraTx l DijkstraEra
unDijkstraTx (\Tx l DijkstraEra
x DijkstraTx l DijkstraEra
y -> Tx l DijkstraEra
x {unDijkstraTx = y})
instance AlonzoEraTx DijkstraEra where
isPhase2ValidTxL :: Lens' (Tx TopTx DijkstraEra) IsPhase2Valid
isPhase2ValidTxL = (DijkstraTx TopTx DijkstraEra -> f (DijkstraTx TopTx DijkstraEra))
-> Tx TopTx DijkstraEra -> f (Tx TopTx DijkstraEra)
forall (l :: TxLevel) (f :: * -> *).
Functor f =>
(DijkstraTx l DijkstraEra -> f (DijkstraTx l DijkstraEra))
-> Tx l DijkstraEra -> f (Tx l DijkstraEra)
dijkstraTxL ((DijkstraTx TopTx DijkstraEra -> f (DijkstraTx TopTx DijkstraEra))
-> Tx TopTx DijkstraEra -> f (Tx TopTx DijkstraEra))
-> ((IsPhase2Valid -> f IsPhase2Valid)
-> DijkstraTx TopTx DijkstraEra
-> f (DijkstraTx TopTx DijkstraEra))
-> (IsPhase2Valid -> f IsPhase2Valid)
-> Tx TopTx DijkstraEra
-> f (Tx TopTx DijkstraEra)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (IsPhase2Valid -> f IsPhase2Valid)
-> DijkstraTx TopTx DijkstraEra -> f (DijkstraTx TopTx DijkstraEra)
forall era. EraTx era => Lens' (DijkstraTx TopTx era) IsPhase2Valid
Lens' (DijkstraTx TopTx DijkstraEra) IsPhase2Valid
isPhase2ValidDijkstraTxL
{-# INLINE isPhase2ValidTxL #-}
getTotalExUnits :: forall (l :: TxLevel). Tx l DijkstraEra -> ExUnits
getTotalExUnits Tx l DijkstraEra
tx =
((Data DijkstraEra, ExUnits) -> ExUnits)
-> Map
(DijkstraPlutusPurpose AsIx DijkstraEra)
(Data DijkstraEra, ExUnits)
-> ExUnits
forall m a.
Monoid m =>
(a -> m) -> Map (DijkstraPlutusPurpose AsIx DijkstraEra) a -> m
forall (t :: * -> *) m a.
(Foldable t, Monoid m) =>
(a -> m) -> t a -> m
foldMap (Data DijkstraEra, ExUnits) -> ExUnits
forall a b. (a, b) -> b
snd (Tx l DijkstraEra
tx Tx l DijkstraEra
-> Getting
(Map
(DijkstraPlutusPurpose AsIx DijkstraEra)
(Data DijkstraEra, ExUnits))
(Tx l DijkstraEra)
(Map
(DijkstraPlutusPurpose AsIx DijkstraEra)
(Data DijkstraEra, ExUnits))
-> Map
(DijkstraPlutusPurpose AsIx DijkstraEra)
(Data DijkstraEra, ExUnits)
forall s a. s -> Getting a s a -> a
^. (TxWits DijkstraEra
-> Const
(Map
(DijkstraPlutusPurpose AsIx DijkstraEra)
(Data DijkstraEra, ExUnits))
(TxWits DijkstraEra))
-> Tx l DijkstraEra
-> Const
(Map
(DijkstraPlutusPurpose AsIx DijkstraEra)
(Data DijkstraEra, ExUnits))
(Tx l DijkstraEra)
(AlonzoTxWits DijkstraEra
-> Const
(Map
(DijkstraPlutusPurpose AsIx DijkstraEra)
(Data DijkstraEra, ExUnits))
(AlonzoTxWits DijkstraEra))
-> Tx l DijkstraEra
-> Const
(Map
(DijkstraPlutusPurpose AsIx DijkstraEra)
(Data DijkstraEra, ExUnits))
(Tx l DijkstraEra)
forall era (l :: TxLevel).
EraTx era =>
Lens' (Tx l era) (TxWits era)
forall (l :: TxLevel).
Lens' (Tx l DijkstraEra) (TxWits DijkstraEra)
witsTxL ((AlonzoTxWits DijkstraEra
-> Const
(Map
(DijkstraPlutusPurpose AsIx DijkstraEra)
(Data DijkstraEra, ExUnits))
(AlonzoTxWits DijkstraEra))
-> Tx l DijkstraEra
-> Const
(Map
(DijkstraPlutusPurpose AsIx DijkstraEra)
(Data DijkstraEra, ExUnits))
(Tx l DijkstraEra))
-> ((Map
(DijkstraPlutusPurpose AsIx DijkstraEra)
(Data DijkstraEra, ExUnits)
-> Const
(Map
(DijkstraPlutusPurpose AsIx DijkstraEra)
(Data DijkstraEra, ExUnits))
(Map
(DijkstraPlutusPurpose AsIx DijkstraEra)
(Data DijkstraEra, ExUnits)))
-> AlonzoTxWits DijkstraEra
-> Const
(Map
(DijkstraPlutusPurpose AsIx DijkstraEra)
(Data DijkstraEra, ExUnits))
(AlonzoTxWits DijkstraEra))
-> Getting
(Map
(DijkstraPlutusPurpose AsIx DijkstraEra)
(Data DijkstraEra, ExUnits))
(Tx l DijkstraEra)
(Map
(DijkstraPlutusPurpose AsIx DijkstraEra)
(Data DijkstraEra, ExUnits))
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Redeemers DijkstraEra
-> Const
(Map
(DijkstraPlutusPurpose AsIx DijkstraEra)
(Data DijkstraEra, ExUnits))
(Redeemers DijkstraEra))
-> TxWits DijkstraEra
-> Const
(Map
(DijkstraPlutusPurpose AsIx DijkstraEra)
(Data DijkstraEra, ExUnits))
(TxWits DijkstraEra)
(Redeemers DijkstraEra
-> Const
(Map
(DijkstraPlutusPurpose AsIx DijkstraEra)
(Data DijkstraEra, ExUnits))
(Redeemers DijkstraEra))
-> AlonzoTxWits DijkstraEra
-> Const
(Map
(DijkstraPlutusPurpose AsIx DijkstraEra)
(Data DijkstraEra, ExUnits))
(AlonzoTxWits DijkstraEra)
forall era.
AlonzoEraTxWits era =>
Lens' (TxWits era) (Redeemers era)
Lens' (TxWits DijkstraEra) (Redeemers DijkstraEra)
rdmrsTxWitsL ((Redeemers DijkstraEra
-> Const
(Map
(DijkstraPlutusPurpose AsIx DijkstraEra)
(Data DijkstraEra, ExUnits))
(Redeemers DijkstraEra))
-> AlonzoTxWits DijkstraEra
-> Const
(Map
(DijkstraPlutusPurpose AsIx DijkstraEra)
(Data DijkstraEra, ExUnits))
(AlonzoTxWits DijkstraEra))
-> ((Map
(DijkstraPlutusPurpose AsIx DijkstraEra)
(Data DijkstraEra, ExUnits)
-> Const
(Map
(DijkstraPlutusPurpose AsIx DijkstraEra)
(Data DijkstraEra, ExUnits))
(Map
(DijkstraPlutusPurpose AsIx DijkstraEra)
(Data DijkstraEra, ExUnits)))
-> Redeemers DijkstraEra
-> Const
(Map
(DijkstraPlutusPurpose AsIx DijkstraEra)
(Data DijkstraEra, ExUnits))
(Redeemers DijkstraEra))
-> (Map
(DijkstraPlutusPurpose AsIx DijkstraEra)
(Data DijkstraEra, ExUnits)
-> Const
(Map
(DijkstraPlutusPurpose AsIx DijkstraEra)
(Data DijkstraEra, ExUnits))
(Map
(DijkstraPlutusPurpose AsIx DijkstraEra)
(Data DijkstraEra, ExUnits)))
-> AlonzoTxWits DijkstraEra
-> Const
(Map
(DijkstraPlutusPurpose AsIx DijkstraEra)
(Data DijkstraEra, ExUnits))
(AlonzoTxWits DijkstraEra)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Map (PlutusPurpose AsIx DijkstraEra) (Data DijkstraEra, ExUnits)
-> Const
(Map
(DijkstraPlutusPurpose AsIx DijkstraEra)
(Data DijkstraEra, ExUnits))
(Map (PlutusPurpose AsIx DijkstraEra) (Data DijkstraEra, ExUnits)))
-> Redeemers DijkstraEra
-> Const
(Map
(DijkstraPlutusPurpose AsIx DijkstraEra)
(Data DijkstraEra, ExUnits))
(Redeemers DijkstraEra)
(Map
(DijkstraPlutusPurpose AsIx DijkstraEra)
(Data DijkstraEra, ExUnits)
-> Const
(Map
(DijkstraPlutusPurpose AsIx DijkstraEra)
(Data DijkstraEra, ExUnits))
(Map
(DijkstraPlutusPurpose AsIx DijkstraEra)
(Data DijkstraEra, ExUnits)))
-> Redeemers DijkstraEra
-> Const
(Map
(DijkstraPlutusPurpose AsIx DijkstraEra)
(Data DijkstraEra, ExUnits))
(Redeemers DijkstraEra)
forall era.
AlonzoEraScript era =>
Lens'
(Redeemers era) (Map (PlutusPurpose AsIx era) (Data era, ExUnits))
Lens'
(Redeemers DijkstraEra)
(Map (PlutusPurpose AsIx DijkstraEra) (Data DijkstraEra, ExUnits))
unRedeemersL)
ExUnits -> ExUnits -> ExUnits
forall a. Semigroup a => a -> a -> a
<> Tx l DijkstraEra
-> (Tx TopTx DijkstraEra -> ExUnits)
-> (Tx SubTx DijkstraEra -> ExUnits)
-> ExUnits
forall (l :: TxLevel) era (t :: TxLevel -> * -> *) a.
(HasEraTxLevel t era, STxLevel l era ~ STxBothLevels l era) =>
t l era -> (t TopTx era -> a) -> (t SubTx era -> a) -> a
withBothTxLevels
Tx l DijkstraEra
tx
(\Tx TopTx DijkstraEra
topTx -> (Tx SubTx DijkstraEra -> ExUnits)
-> OMap TxId (Tx SubTx DijkstraEra) -> ExUnits
forall m a. Monoid m => (a -> m) -> OMap TxId a -> m
forall (t :: * -> *) m a.
(Foldable t, Monoid m) =>
(a -> m) -> t a -> m
foldMap Tx SubTx DijkstraEra -> ExUnits
forall era (l :: TxLevel). AlonzoEraTx era => Tx l era -> ExUnits
forall (l :: TxLevel). Tx l DijkstraEra -> ExUnits
getTotalExUnits (Tx TopTx DijkstraEra
topTx Tx TopTx DijkstraEra
-> Getting
(OMap TxId (Tx SubTx DijkstraEra))
(Tx TopTx DijkstraEra)
(OMap TxId (Tx SubTx DijkstraEra))
-> OMap TxId (Tx SubTx DijkstraEra)
forall s a. s -> Getting a s a -> a
^. (TxBody TopTx DijkstraEra
-> Const
(OMap TxId (Tx SubTx DijkstraEra)) (TxBody TopTx DijkstraEra))
-> Tx TopTx DijkstraEra
-> Const (OMap TxId (Tx SubTx DijkstraEra)) (Tx TopTx DijkstraEra)
forall era (l :: TxLevel).
EraTx era =>
Lens' (Tx l era) (TxBody l era)
forall (l :: TxLevel).
Lens' (Tx l DijkstraEra) (TxBody l DijkstraEra)
bodyTxL ((TxBody TopTx DijkstraEra
-> Const
(OMap TxId (Tx SubTx DijkstraEra)) (TxBody TopTx DijkstraEra))
-> Tx TopTx DijkstraEra
-> Const (OMap TxId (Tx SubTx DijkstraEra)) (Tx TopTx DijkstraEra))
-> ((OMap TxId (Tx SubTx DijkstraEra)
-> Const
(OMap TxId (Tx SubTx DijkstraEra))
(OMap TxId (Tx SubTx DijkstraEra)))
-> TxBody TopTx DijkstraEra
-> Const
(OMap TxId (Tx SubTx DijkstraEra)) (TxBody TopTx DijkstraEra))
-> Getting
(OMap TxId (Tx SubTx DijkstraEra))
(Tx TopTx DijkstraEra)
(OMap TxId (Tx SubTx DijkstraEra))
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (OMap TxId (Tx SubTx DijkstraEra)
-> Const
(OMap TxId (Tx SubTx DijkstraEra))
(OMap TxId (Tx SubTx DijkstraEra)))
-> TxBody TopTx DijkstraEra
-> Const
(OMap TxId (Tx SubTx DijkstraEra)) (TxBody TopTx DijkstraEra)
forall era.
DijkstraEraTxBody era =>
Lens' (TxBody TopTx era) (OMap TxId (Tx SubTx era))
Lens' (TxBody TopTx DijkstraEra) (OMap TxId (Tx SubTx DijkstraEra))
subTransactionsTxBodyL))
(ExUnits -> Tx SubTx DijkstraEra -> ExUnits
forall a b. a -> b -> a
const ExUnits
forall a. Monoid a => a
mempty)
instance Typeable l => DecCBOR (Annotator (Tx l DijkstraEra)) where
decCBOR :: forall s. Decoder s (Annotator (Tx l DijkstraEra))
decCBOR = (DijkstraTx l DijkstraEra -> Tx l DijkstraEra)
-> Annotator (DijkstraTx l DijkstraEra)
-> Annotator (Tx l DijkstraEra)
forall a b. (a -> b) -> Annotator a -> Annotator b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap DijkstraTx l DijkstraEra -> Tx l DijkstraEra
forall (l :: TxLevel). DijkstraTx l DijkstraEra -> Tx l DijkstraEra
MkDijkstraTx (Annotator (DijkstraTx l DijkstraEra)
-> Annotator (Tx l DijkstraEra))
-> Decoder s (Annotator (DijkstraTx l DijkstraEra))
-> Decoder s (Annotator (Tx l DijkstraEra))
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Decoder s (Annotator (DijkstraTx l DijkstraEra))
forall s. Decoder s (Annotator (DijkstraTx l DijkstraEra))
forall a s. DecCBOR a => Decoder s a
decCBOR
validateDijkstraNativeScript ::
( EraTx era
, DijkstraEraTxBody era
, DijkstraEraScript era
, NativeScript era ~ DijkstraNativeScript era
) =>
Tx l era -> NativeScript era -> Bool
validateDijkstraNativeScript :: forall era (l :: TxLevel).
(EraTx era, DijkstraEraTxBody era, DijkstraEraScript era,
NativeScript era ~ DijkstraNativeScript era) =>
Tx l era -> NativeScript era -> Bool
validateDijkstraNativeScript Tx l era
tx =
Set (KeyHash Witness)
-> ValidityInterval
-> OSet (Credential Guard)
-> NativeScript era
-> Bool
forall era.
(DijkstraEraScript era,
NativeScript era ~ DijkstraNativeScript era) =>
Set (KeyHash Witness)
-> ValidityInterval
-> OSet (Credential Guard)
-> NativeScript era
-> Bool
evalDijkstraNativeScript Set (KeyHash Witness)
vhks (Tx l era
tx Tx l era
-> Getting ValidityInterval (Tx l era) ValidityInterval
-> ValidityInterval
forall s a. s -> Getting a s a -> a
^. (TxBody l era -> Const ValidityInterval (TxBody l era))
-> Tx l era -> Const ValidityInterval (Tx l era)
forall era (l :: TxLevel).
EraTx era =>
Lens' (Tx l era) (TxBody l era)
forall (l :: TxLevel). Lens' (Tx l era) (TxBody l era)
bodyTxL ((TxBody l era -> Const ValidityInterval (TxBody l era))
-> Tx l era -> Const ValidityInterval (Tx l era))
-> ((ValidityInterval -> Const ValidityInterval ValidityInterval)
-> TxBody l era -> Const ValidityInterval (TxBody l era))
-> Getting ValidityInterval (Tx l era) ValidityInterval
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (ValidityInterval -> Const ValidityInterval ValidityInterval)
-> TxBody l era -> Const ValidityInterval (TxBody l era)
forall era (l :: TxLevel).
AllegraEraTxBody era =>
Lens' (TxBody l era) ValidityInterval
forall (l :: TxLevel). Lens' (TxBody l era) ValidityInterval
vldtTxBodyL) (Tx l era
tx Tx l era
-> Getting
(OSet (Credential Guard)) (Tx l era) (OSet (Credential Guard))
-> OSet (Credential Guard)
forall s a. s -> Getting a s a -> a
^. (TxBody l era -> Const (OSet (Credential Guard)) (TxBody l era))
-> Tx l era -> Const (OSet (Credential Guard)) (Tx l era)
forall era (l :: TxLevel).
EraTx era =>
Lens' (Tx l era) (TxBody l era)
forall (l :: TxLevel). Lens' (Tx l era) (TxBody l era)
bodyTxL ((TxBody l era -> Const (OSet (Credential Guard)) (TxBody l era))
-> Tx l era -> Const (OSet (Credential Guard)) (Tx l era))
-> ((OSet (Credential Guard)
-> Const (OSet (Credential Guard)) (OSet (Credential Guard)))
-> TxBody l era -> Const (OSet (Credential Guard)) (TxBody l era))
-> Getting
(OSet (Credential Guard)) (Tx l era) (OSet (Credential Guard))
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (OSet (Credential Guard)
-> Const (OSet (Credential Guard)) (OSet (Credential Guard)))
-> TxBody l era -> Const (OSet (Credential Guard)) (TxBody l era)
forall era (l :: TxLevel).
DijkstraEraTxBody era =>
Lens' (TxBody l era) (OSet (Credential Guard))
forall (l :: TxLevel).
Lens' (TxBody l era) (OSet (Credential Guard))
guardsTxBodyL)
where
vhks :: Set (KeyHash Witness)
vhks = (WitVKey Witness -> KeyHash Witness)
-> Set (WitVKey Witness) -> Set (KeyHash Witness)
forall b a. Ord b => (a -> b) -> Set a -> Set b
Set.map WitVKey Witness -> KeyHash Witness
forall (kr :: KeyRole). WitVKey kr -> KeyHash Witness
witVKeyHash (Tx l era
tx Tx l era
-> Getting
(Set (WitVKey Witness)) (Tx l era) (Set (WitVKey Witness))
-> Set (WitVKey Witness)
forall s a. s -> Getting a s a -> a
^. (TxWits era -> Const (Set (WitVKey Witness)) (TxWits era))
-> Tx l era -> Const (Set (WitVKey Witness)) (Tx l era)
forall era (l :: TxLevel).
EraTx era =>
Lens' (Tx l era) (TxWits era)
forall (l :: TxLevel). Lens' (Tx l era) (TxWits era)
witsTxL ((TxWits era -> Const (Set (WitVKey Witness)) (TxWits era))
-> Tx l era -> Const (Set (WitVKey Witness)) (Tx l era))
-> ((Set (WitVKey Witness)
-> Const (Set (WitVKey Witness)) (Set (WitVKey Witness)))
-> TxWits era -> Const (Set (WitVKey Witness)) (TxWits era))
-> Getting
(Set (WitVKey Witness)) (Tx l era) (Set (WitVKey Witness))
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Set (WitVKey Witness)
-> Const (Set (WitVKey Witness)) (Set (WitVKey Witness)))
-> TxWits era -> Const (Set (WitVKey Witness)) (TxWits era)
forall era.
EraTxWits era =>
Lens' (TxWits era) (Set (WitVKey Witness))
Lens' (TxWits era) (Set (WitVKey Witness))
addrTxWitsL)
{-# INLINEABLE validateDijkstraNativeScript #-}
instance SafeToHash (Tx TopTx DijkstraEra) where
originalBytes :: Tx TopTx DijkstraEra -> ByteString
originalBytes = DijkstraTx TopTx DijkstraEra -> ByteString
forall t. SafeToHash t => t -> ByteString
originalBytes (DijkstraTx TopTx DijkstraEra -> ByteString)
-> (Tx TopTx DijkstraEra -> DijkstraTx TopTx DijkstraEra)
-> Tx TopTx DijkstraEra
-> ByteString
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Tx TopTx DijkstraEra -> DijkstraTx TopTx DijkstraEra
forall (l :: TxLevel). Tx l DijkstraEra -> DijkstraTx l DijkstraEra
unDijkstraTx
originalBytesSize :: Tx TopTx DijkstraEra -> Int
originalBytesSize = DijkstraTx TopTx DijkstraEra -> Int
forall t. SafeToHash t => t -> Int
originalBytesSize (DijkstraTx TopTx DijkstraEra -> Int)
-> (Tx TopTx DijkstraEra -> DijkstraTx TopTx DijkstraEra)
-> Tx TopTx DijkstraEra
-> Int
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Tx TopTx DijkstraEra -> DijkstraTx TopTx DijkstraEra
forall (l :: TxLevel). Tx l DijkstraEra -> DijkstraTx l DijkstraEra
unDijkstraTx
instance HashAnnotated (Tx TopTx DijkstraEra) EraIndependentTx where
hashAnnotated :: Tx TopTx DijkstraEra -> SafeHash EraIndependentTx
hashAnnotated = DijkstraTx TopTx DijkstraEra -> SafeHash EraIndependentTx
forall x i. HashAnnotated x i => x -> SafeHash i
hashAnnotated (DijkstraTx TopTx DijkstraEra -> SafeHash EraIndependentTx)
-> (Tx TopTx DijkstraEra -> DijkstraTx TopTx DijkstraEra)
-> Tx TopTx DijkstraEra
-> SafeHash EraIndependentTx
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Tx TopTx DijkstraEra -> DijkstraTx TopTx DijkstraEra
forall (l :: TxLevel). Tx l DijkstraEra -> DijkstraTx l DijkstraEra
unDijkstraTx
toCBORForMempoolSubmission ::
( EncCBOR (TxBody l era)
, EncCBOR (TxWits era)
, EncCBOR (TxAuxData era)
) =>
DijkstraTx l era ->
Encoding
toCBORForMempoolSubmission :: forall (l :: TxLevel) era.
(EncCBOR (TxBody l era), EncCBOR (TxWits era),
EncCBOR (TxAuxData era)) =>
DijkstraTx l era -> Encoding
toCBORForMempoolSubmission = \case
DijkstraTopTx
(DijkstraTopTx era -> RawType (DijkstraTopTx era)
forall t. Memoized t => t -> RawType t
getMemoRawType -> DijkstraTopTxRaw {TxBody TopTx era
dttrBody :: forall era. DijkstraTopTxRaw era -> TxBody TopTx era
dttrBody :: TxBody TopTx era
dttrBody, TxWits era
dttrWits :: forall era. DijkstraTopTxRaw era -> TxWits era
dttrWits :: TxWits era
dttrWits, IsPhase2Valid
dttrIsPhase2Valid :: forall era. DijkstraTopTxRaw era -> IsPhase2Valid
dttrIsPhase2Valid :: IsPhase2Valid
dttrIsPhase2Valid, StrictMaybe (TxAuxData era)
dttrAuxData :: forall era. DijkstraTopTxRaw era -> StrictMaybe (TxAuxData era)
dttrAuxData :: StrictMaybe (TxAuxData era)
dttrAuxData}) ->
Encode (Closed Dense) (DijkstraTopTxRaw era) -> Encoding
forall (w :: Wrapped) t. Encode w t -> Encoding
encode (Encode (Closed Dense) (DijkstraTopTxRaw era) -> Encoding)
-> Encode (Closed Dense) (DijkstraTopTxRaw era) -> Encoding
forall a b. (a -> b) -> a -> b
$
(TxBody TopTx era
-> TxWits era
-> IsPhase2Valid
-> StrictMaybe (TxAuxData era)
-> DijkstraTopTxRaw era)
-> Encode
(Closed Dense)
(TxBody TopTx era
-> TxWits era
-> IsPhase2Valid
-> StrictMaybe (TxAuxData era)
-> DijkstraTopTxRaw era)
forall t. t -> Encode (Closed Dense) t
Rec TxBody TopTx era
-> TxWits era
-> IsPhase2Valid
-> StrictMaybe (TxAuxData era)
-> DijkstraTopTxRaw era
forall era.
TxBody TopTx era
-> TxWits era
-> IsPhase2Valid
-> StrictMaybe (TxAuxData era)
-> DijkstraTopTxRaw era
DijkstraTopTxRaw
Encode
(Closed Dense)
(TxBody TopTx era
-> TxWits era
-> IsPhase2Valid
-> StrictMaybe (TxAuxData era)
-> DijkstraTopTxRaw era)
-> Encode (Closed Dense) (TxBody TopTx era)
-> Encode
(Closed Dense)
(TxWits era
-> IsPhase2Valid
-> StrictMaybe (TxAuxData era)
-> DijkstraTopTxRaw era)
forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode (Closed r) a -> Encode w t
!> TxBody TopTx era -> Encode (Closed Dense) (TxBody TopTx era)
forall t. EncCBOR t => t -> Encode (Closed Dense) t
To TxBody TopTx era
dttrBody
Encode
(Closed Dense)
(TxWits era
-> IsPhase2Valid
-> StrictMaybe (TxAuxData era)
-> DijkstraTopTxRaw era)
-> Encode (Closed Dense) (TxWits era)
-> Encode
(Closed Dense)
(IsPhase2Valid
-> StrictMaybe (TxAuxData era) -> DijkstraTopTxRaw era)
forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode (Closed r) a -> Encode w t
!> TxWits era -> Encode (Closed Dense) (TxWits era)
forall t. EncCBOR t => t -> Encode (Closed Dense) t
To TxWits era
dttrWits
Encode
(Closed Dense)
(IsPhase2Valid
-> StrictMaybe (TxAuxData era) -> DijkstraTopTxRaw era)
-> Encode (Closed (ZonkAny 0)) IsPhase2Valid
-> Encode
(Closed Dense)
(StrictMaybe (TxAuxData era) -> DijkstraTopTxRaw era)
forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode (Closed r) a -> Encode w t
!> IsPhase2Valid -> Encode (Closed (ZonkAny 0)) IsPhase2Valid
forall t (w :: Wrapped). t -> Encode w t
OmitC IsPhase2Valid
dttrIsPhase2Valid
Encode
(Closed Dense)
(StrictMaybe (TxAuxData era) -> DijkstraTopTxRaw era)
-> Encode (Closed Dense) (StrictMaybe (TxAuxData era))
-> Encode (Closed Dense) (DijkstraTopTxRaw era)
forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode (Closed r) a -> Encode w t
!> (StrictMaybe (TxAuxData era) -> Encoding)
-> StrictMaybe (TxAuxData era)
-> Encode (Closed Dense) (StrictMaybe (TxAuxData era))
forall t. (t -> Encoding) -> t -> Encode (Closed Dense) t
E ((TxAuxData era -> Encoding)
-> StrictMaybe (TxAuxData era) -> Encoding
forall a. (a -> Encoding) -> StrictMaybe a -> Encoding
encodeNullStrictMaybe TxAuxData era -> Encoding
forall a. EncCBOR a => a -> Encoding
encCBOR) StrictMaybe (TxAuxData era)
dttrAuxData
DijkstraSubTx {TxBody SubTx era
dstBody :: forall era. DijkstraTx SubTx era -> TxBody SubTx era
dstBody :: TxBody SubTx era
dstBody, TxWits era
dstWits :: forall era. DijkstraTx SubTx era -> TxWits era
dstWits :: TxWits era
dstWits, StrictMaybe (TxAuxData era)
dstAuxData :: forall era. DijkstraTx SubTx era -> StrictMaybe (TxAuxData era)
dstAuxData :: StrictMaybe (TxAuxData era)
dstAuxData} ->
Encode (Closed Dense) (DijkstraTx SubTx era) -> Encoding
forall (w :: Wrapped) t. Encode w t -> Encoding
encode (Encode (Closed Dense) (DijkstraTx SubTx era) -> Encoding)
-> Encode (Closed Dense) (DijkstraTx SubTx era) -> Encoding
forall a b. (a -> b) -> a -> b
$
(TxBody SubTx era
-> TxWits era
-> StrictMaybe (TxAuxData era)
-> DijkstraTx SubTx era)
-> Encode
(Closed Dense)
(TxBody SubTx era
-> TxWits era
-> StrictMaybe (TxAuxData era)
-> DijkstraTx SubTx era)
forall t. t -> Encode (Closed Dense) t
Rec TxBody SubTx era
-> TxWits era
-> StrictMaybe (TxAuxData era)
-> DijkstraTx SubTx era
forall era.
TxBody SubTx era
-> TxWits era
-> StrictMaybe (TxAuxData era)
-> DijkstraTx SubTx era
DijkstraSubTx
Encode
(Closed Dense)
(TxBody SubTx era
-> TxWits era
-> StrictMaybe (TxAuxData era)
-> DijkstraTx SubTx era)
-> Encode (Closed Dense) (TxBody SubTx era)
-> Encode
(Closed Dense)
(TxWits era -> StrictMaybe (TxAuxData era) -> DijkstraTx SubTx era)
forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode (Closed r) a -> Encode w t
!> TxBody SubTx era -> Encode (Closed Dense) (TxBody SubTx era)
forall t. EncCBOR t => t -> Encode (Closed Dense) t
To TxBody SubTx era
dstBody
Encode
(Closed Dense)
(TxWits era -> StrictMaybe (TxAuxData era) -> DijkstraTx SubTx era)
-> Encode (Closed Dense) (TxWits era)
-> Encode
(Closed Dense)
(StrictMaybe (TxAuxData era) -> DijkstraTx SubTx era)
forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode (Closed r) a -> Encode w t
!> TxWits era -> Encode (Closed Dense) (TxWits era)
forall t. EncCBOR t => t -> Encode (Closed Dense) t
To TxWits era
dstWits
Encode
(Closed Dense)
(StrictMaybe (TxAuxData era) -> DijkstraTx SubTx era)
-> Encode (Closed Dense) (StrictMaybe (TxAuxData era))
-> Encode (Closed Dense) (DijkstraTx SubTx era)
forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode (Closed r) a -> Encode w t
!> (StrictMaybe (TxAuxData era) -> Encoding)
-> StrictMaybe (TxAuxData era)
-> Encode (Closed Dense) (StrictMaybe (TxAuxData era))
forall t. (t -> Encoding) -> t -> Encode (Closed Dense) t
E ((TxAuxData era -> Encoding)
-> StrictMaybe (TxAuxData era) -> Encoding
forall a. (a -> Encoding) -> StrictMaybe a -> Encoding
encodeNullStrictMaybe TxAuxData era -> Encoding
forall a. EncCBOR a => a -> Encoding
encCBOR) StrictMaybe (TxAuxData era)
dstAuxData
toCBORForBlockInclusion :: SafeToHash (Tx TopTx era) => Tx TopTx era -> Encoding
toCBORForBlockInclusion :: forall era. SafeToHash (Tx TopTx era) => Tx TopTx era -> Encoding
toCBORForBlockInclusion = ByteString -> Encoding
encodePreEncoded (ByteString -> Encoding)
-> (Tx TopTx era -> ByteString) -> Tx TopTx era -> Encoding
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Tx TopTx era -> ByteString
forall t. SafeToHash t => t -> ByteString
originalBytes
data DijkstraStAnnTx l era where
DijkstraStAnnTopTx ::
{ forall era. DijkstraStAnnTx TopTx era -> Tx TopTx era
dsattTx :: !(Tx TopTx era)
, forall era. DijkstraStAnnTx TopTx era -> ScriptsNeeded era
dsattScriptsNeeded :: ScriptsNeeded era
, forall era. DijkstraStAnnTx TopTx era -> ScriptsProvided era
dsattScriptsProvided :: ScriptsProvided era
, forall era. DijkstraStAnnTx TopTx era -> Bool
dsattPlutusLegacyMode :: Bool
, forall era. DijkstraStAnnTx TopTx era -> Set Language
dsattPlutusLanguagesUsed :: Set Language
, forall era.
DijkstraStAnnTx TopTx era
-> Map ScriptHash (SupportedPlutusRunnable era)
dsattPlutusRunnableCache :: Map.Map ScriptHash (SupportedPlutusRunnable era)
, forall era.
DijkstraStAnnTx TopTx era
-> Either (NonEmpty (CollectError era)) [PlutusWithContext]
dsattPlutusScriptsWithContext :: Either (NonEmpty (CollectError era)) [PlutusWithContext]
, forall era.
DijkstraStAnnTx TopTx era -> [DijkstraStAnnTx SubTx era]
dsattSubTransactions :: [DijkstraStAnnTx SubTx era]
} ->
DijkstraStAnnTx TopTx era
DijkstraStAnnSubTx ::
{ forall era. DijkstraStAnnTx SubTx era -> Tx SubTx era
dsastTx :: !(Tx SubTx era)
, forall era. DijkstraStAnnTx SubTx era -> ScriptsNeeded era
dsastScriptsNeeded :: ScriptsNeeded era
, forall era. DijkstraStAnnTx SubTx era -> Set ScriptHash
dsastScriptsHashesNeeded :: Set ScriptHash
, forall era. DijkstraStAnnTx SubTx era -> ScriptsProvided era
dsastScriptsProvided :: ScriptsProvided era
, forall era. DijkstraStAnnTx SubTx era -> TxInfoResult era
dsastTxInfoResult :: TxInfoResult era
, forall era. DijkstraStAnnTx SubTx era -> Set Language
dsastPlutusLanguagesUsed :: Set Language
, forall era.
DijkstraStAnnTx SubTx era
-> Map ScriptHash (SupportedPlutusRunnable era)
dsastPlutusRunnableCache :: Map.Map ScriptHash (SupportedPlutusRunnable era)
, forall era.
DijkstraStAnnTx SubTx era
-> Either (NonEmpty (CollectError era)) [PlutusWithContext]
dsastPlutusScriptsWithContext :: Either (NonEmpty (CollectError era)) [PlutusWithContext]
} ->
DijkstraStAnnTx SubTx era
deriving instance
( DijkstraEraScript era
, Eq (Tx TopTx era)
, Eq (Tx SubTx era)
, Eq (ScriptsNeeded era)
, Eq (ScriptsProvided era)
, Eq (CollectError era)
, Eq (TxInfoResult era)
) =>
Eq (DijkstraStAnnTx l era)
deriving instance
( DijkstraEraScript era
, Show (Tx TopTx era)
, Show (Tx SubTx era)
, Show (ScriptsNeeded era)
, Show (ScriptsProvided era)
, Show (CollectError era)
, Show (TxInfoResult era)
) =>
Show (DijkstraStAnnTx l era)
instance
( EraTxLevel era
, STxLevel SubTx era ~ STxBothLevels SubTx era
, STxLevel TopTx era ~ STxBothLevels TopTx era
) =>
HasEraTxLevel DijkstraStAnnTx era
where
toSTxLevel :: forall (l :: TxLevel). DijkstraStAnnTx l era -> STxLevel l era
toSTxLevel DijkstraStAnnTopTx {} = forall era. STxBothLevels TopTx era
STopTx @era
toSTxLevel DijkstraStAnnSubTx {} = forall era. STxBothLevels SubTx era
SSubTx @era