{-# LANGUAGE DataKinds #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DerivingVia #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE LambdaCase #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RankNTypes #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE StandaloneDeriving #-}
{-# LANGUAGE TypeApplications #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE TypeOperators #-}
{-# LANGUAGE UndecidableInstances #-}
{-# OPTIONS_GHC -Wno-orphans #-}
module Cardano.Ledger.Dijkstra.Rules.Utxo (
DijkstraUTXO,
DijkstraUtxoPredFailure (..),
conwayToDijkstraUtxoPredFailure,
) where
import Cardano.Ledger.Address (
Addr (..),
RewardAccount,
)
import Cardano.Ledger.Allegra.Rules (AllegraUtxoPredFailure, shelleyToAllegraUtxoPredFailure)
import qualified Cardano.Ledger.Allegra.Rules as Allegra
import Cardano.Ledger.Alonzo.Rules (
AlonzoUtxoEvent,
AlonzoUtxoPredFailure,
AlonzoUtxosPredFailure,
)
import qualified Cardano.Ledger.Alonzo.Rules as Alonzo
import Cardano.Ledger.Babbage.Rules (
BabbageUtxoPredFailure,
babbageUtxoValidation,
)
import Cardano.Ledger.BaseTypes (
Mismatch (..),
Network,
Relation (..),
ShelleyBase,
SlotNo,
StrictMaybe (..),
)
import Cardano.Ledger.Binary (
DecCBOR (..),
EncCBOR (..),
)
import Cardano.Ledger.Binary.Coders (
Decode (..),
Encode (..),
decode,
encode,
(!>),
(<!),
)
import Cardano.Ledger.Coin (Coin, DeltaCoin)
import Cardano.Ledger.Conway.Core
import Cardano.Ledger.Conway.Rules (
ConwayUTXOS,
ConwayUtxoPredFailure,
ConwayUtxosPredFailure (..),
UtxoEnv,
allegraToConwayUtxoPredFailure,
alonzoToConwayUtxoPredFailure,
babbageToConwayUtxoPredFailure,
)
import qualified Cardano.Ledger.Conway.Rules as Conway
import Cardano.Ledger.Credential (StakeReference (..))
import Cardano.Ledger.Dijkstra.Era (DijkstraEra, DijkstraUTXO)
import Cardano.Ledger.Dijkstra.Rules.Utxos ()
import Cardano.Ledger.Plutus (ExUnits)
import Cardano.Ledger.Rules.ValidationMode (failOnJustStatic)
import Cardano.Ledger.Shelley.LedgerState (UTxOState)
import qualified Cardano.Ledger.Shelley.LedgerState as Shelley (UTxOState)
import Cardano.Ledger.Shelley.Rules (
ShelleyUtxoPredFailure,
)
import qualified Cardano.Ledger.Shelley.Rules as Shelley (UtxoEnv, validSizeComputationCheck)
import Cardano.Ledger.State (
EraCertState (..),
EraUTxO,
UTxO (..),
)
import Cardano.Ledger.TxIn (TxIn)
import Control.DeepSeq (NFData)
import Control.State.Transition.Extended (
Embed (..),
Rule,
STS (..),
TRC (..),
TransitionRule,
judgmentContext,
trans,
)
import Data.Coerce (coerce)
import Data.List.NonEmpty (NonEmpty)
import Data.Set (Set)
import Data.Word (Word32)
import GHC.Generics (Generic)
import GHC.Natural (Natural)
import Lens.Micro ((^.))
import NoThunks.Class (InspectHeapNamed (..), NoThunks (..))
data DijkstraUtxoPredFailure era
=
UtxosFailure (PredicateFailure (EraRule "UTXOS" era))
|
BadInputsUTxO (Set TxIn)
| OutsideValidityIntervalUTxO
ValidityInterval
SlotNo
| MaxTxSizeUTxO (Mismatch RelLTEQ Word32)
| InputSetEmptyUTxO
| FeeTooSmallUTxO
(Mismatch RelGTEQ Coin)
| ValueNotConservedUTxO
(Mismatch RelEQ (Value era))
|
WrongNetwork
Network
(Set Addr)
| WrongNetworkWithdrawal
Network
(Set RewardAccount)
|
OutputTooSmallUTxO [TxOut era]
|
OutputBootAddrAttrsTooBig [TxOut era]
|
OutputTooBigUTxO [(Int, Int, TxOut era)]
| InsufficientCollateral
DeltaCoin
Coin
|
ScriptsNotPaidUTxO (UTxO era)
| ExUnitsTooBigUTxO
(Mismatch RelLTEQ ExUnits)
|
CollateralContainsNonADA (Value era)
|
WrongNetworkInTxBody
(Mismatch RelEQ Network)
|
OutsideForecast SlotNo
|
TooManyCollateralInputs
(Mismatch RelLTEQ Natural)
| NoCollateralInputs
|
IncorrectTotalCollateralField
DeltaCoin
Coin
|
BabbageOutputTooSmallUTxO [(TxOut era, Coin)]
|
BabbageNonDisjointRefInputs (NonEmpty TxIn)
| PtrPresentInCollateralReturn (TxOut era)
deriving ((forall x.
DijkstraUtxoPredFailure era -> Rep (DijkstraUtxoPredFailure era) x)
-> (forall x.
Rep (DijkstraUtxoPredFailure era) x -> DijkstraUtxoPredFailure era)
-> Generic (DijkstraUtxoPredFailure era)
forall x.
Rep (DijkstraUtxoPredFailure era) x -> DijkstraUtxoPredFailure era
forall x.
DijkstraUtxoPredFailure era -> Rep (DijkstraUtxoPredFailure era) x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
forall era x.
Rep (DijkstraUtxoPredFailure era) x -> DijkstraUtxoPredFailure era
forall era x.
DijkstraUtxoPredFailure era -> Rep (DijkstraUtxoPredFailure era) x
$cfrom :: forall era x.
DijkstraUtxoPredFailure era -> Rep (DijkstraUtxoPredFailure era) x
from :: forall x.
DijkstraUtxoPredFailure era -> Rep (DijkstraUtxoPredFailure era) x
$cto :: forall era x.
Rep (DijkstraUtxoPredFailure era) x -> DijkstraUtxoPredFailure era
to :: forall x.
Rep (DijkstraUtxoPredFailure era) x -> DijkstraUtxoPredFailure era
Generic)
type instance EraRuleFailure "UTXO" DijkstraEra = DijkstraUtxoPredFailure DijkstraEra
type instance EraRuleEvent "UTXO" DijkstraEra = AlonzoUtxoEvent DijkstraEra
instance InjectRuleFailure "UTXO" DijkstraUtxoPredFailure DijkstraEra
instance InjectRuleFailure "UTXO" ConwayUtxoPredFailure DijkstraEra where
injectFailure :: ConwayUtxoPredFailure DijkstraEra
-> EraRuleFailure "UTXO" DijkstraEra
injectFailure = ConwayUtxoPredFailure DijkstraEra
-> EraRuleFailure "UTXO" DijkstraEra
ConwayUtxoPredFailure DijkstraEra
-> DijkstraUtxoPredFailure DijkstraEra
forall era.
ConwayUtxoPredFailure era -> DijkstraUtxoPredFailure era
conwayToDijkstraUtxoPredFailure
instance InjectRuleFailure "UTXO" BabbageUtxoPredFailure DijkstraEra where
injectFailure :: BabbageUtxoPredFailure DijkstraEra
-> EraRuleFailure "UTXO" DijkstraEra
injectFailure = ConwayUtxoPredFailure DijkstraEra
-> DijkstraUtxoPredFailure DijkstraEra
forall era.
ConwayUtxoPredFailure era -> DijkstraUtxoPredFailure era
conwayToDijkstraUtxoPredFailure (ConwayUtxoPredFailure DijkstraEra
-> DijkstraUtxoPredFailure DijkstraEra)
-> (BabbageUtxoPredFailure DijkstraEra
-> ConwayUtxoPredFailure DijkstraEra)
-> BabbageUtxoPredFailure DijkstraEra
-> DijkstraUtxoPredFailure DijkstraEra
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BabbageUtxoPredFailure DijkstraEra
-> ConwayUtxoPredFailure DijkstraEra
forall era. BabbageUtxoPredFailure era -> ConwayUtxoPredFailure era
babbageToConwayUtxoPredFailure
instance InjectRuleFailure "UTXO" AlonzoUtxoPredFailure DijkstraEra where
injectFailure :: AlonzoUtxoPredFailure DijkstraEra
-> EraRuleFailure "UTXO" DijkstraEra
injectFailure = ConwayUtxoPredFailure DijkstraEra
-> DijkstraUtxoPredFailure DijkstraEra
forall era.
ConwayUtxoPredFailure era -> DijkstraUtxoPredFailure era
conwayToDijkstraUtxoPredFailure (ConwayUtxoPredFailure DijkstraEra
-> DijkstraUtxoPredFailure DijkstraEra)
-> (AlonzoUtxoPredFailure DijkstraEra
-> ConwayUtxoPredFailure DijkstraEra)
-> AlonzoUtxoPredFailure DijkstraEra
-> DijkstraUtxoPredFailure DijkstraEra
forall b c a. (b -> c) -> (a -> b) -> a -> c
. AlonzoUtxoPredFailure DijkstraEra
-> ConwayUtxoPredFailure DijkstraEra
forall era. AlonzoUtxoPredFailure era -> ConwayUtxoPredFailure era
alonzoToConwayUtxoPredFailure
instance InjectRuleFailure "UTXO" ShelleyUtxoPredFailure DijkstraEra where
injectFailure :: ShelleyUtxoPredFailure DijkstraEra
-> EraRuleFailure "UTXO" DijkstraEra
injectFailure =
ConwayUtxoPredFailure DijkstraEra
-> DijkstraUtxoPredFailure DijkstraEra
forall era.
ConwayUtxoPredFailure era -> DijkstraUtxoPredFailure era
conwayToDijkstraUtxoPredFailure (ConwayUtxoPredFailure DijkstraEra
-> DijkstraUtxoPredFailure DijkstraEra)
-> (ShelleyUtxoPredFailure DijkstraEra
-> ConwayUtxoPredFailure DijkstraEra)
-> ShelleyUtxoPredFailure DijkstraEra
-> DijkstraUtxoPredFailure DijkstraEra
forall b c a. (b -> c) -> (a -> b) -> a -> c
. AllegraUtxoPredFailure DijkstraEra
-> ConwayUtxoPredFailure DijkstraEra
forall era.
(EraRuleFailure "PPUP" era ~ VoidEraRule "PPUP" era) =>
AllegraUtxoPredFailure era -> ConwayUtxoPredFailure era
allegraToConwayUtxoPredFailure (AllegraUtxoPredFailure DijkstraEra
-> ConwayUtxoPredFailure DijkstraEra)
-> (ShelleyUtxoPredFailure DijkstraEra
-> AllegraUtxoPredFailure DijkstraEra)
-> ShelleyUtxoPredFailure DijkstraEra
-> ConwayUtxoPredFailure DijkstraEra
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ShelleyUtxoPredFailure DijkstraEra
-> AllegraUtxoPredFailure DijkstraEra
forall era.
ShelleyUtxoPredFailure era -> AllegraUtxoPredFailure era
shelleyToAllegraUtxoPredFailure
instance InjectRuleFailure "UTXO" Allegra.AllegraUtxoPredFailure DijkstraEra where
injectFailure :: AllegraUtxoPredFailure DijkstraEra
-> EraRuleFailure "UTXO" DijkstraEra
injectFailure = ConwayUtxoPredFailure DijkstraEra
-> DijkstraUtxoPredFailure DijkstraEra
forall era.
ConwayUtxoPredFailure era -> DijkstraUtxoPredFailure era
conwayToDijkstraUtxoPredFailure (ConwayUtxoPredFailure DijkstraEra
-> DijkstraUtxoPredFailure DijkstraEra)
-> (AllegraUtxoPredFailure DijkstraEra
-> ConwayUtxoPredFailure DijkstraEra)
-> AllegraUtxoPredFailure DijkstraEra
-> DijkstraUtxoPredFailure DijkstraEra
forall b c a. (b -> c) -> (a -> b) -> a -> c
. AllegraUtxoPredFailure DijkstraEra
-> ConwayUtxoPredFailure DijkstraEra
forall era.
(EraRuleFailure "PPUP" era ~ VoidEraRule "PPUP" era) =>
AllegraUtxoPredFailure era -> ConwayUtxoPredFailure era
allegraToConwayUtxoPredFailure
instance InjectRuleFailure "UTXO" ConwayUtxosPredFailure DijkstraEra where
injectFailure :: ConwayUtxosPredFailure DijkstraEra
-> EraRuleFailure "UTXO" DijkstraEra
injectFailure = PredicateFailure (EraRule "UTXOS" DijkstraEra)
-> DijkstraUtxoPredFailure DijkstraEra
ConwayUtxosPredFailure DijkstraEra
-> EraRuleFailure "UTXO" DijkstraEra
forall era.
PredicateFailure (EraRule "UTXOS" era)
-> DijkstraUtxoPredFailure era
UtxosFailure
instance InjectRuleFailure "UTXO" AlonzoUtxosPredFailure DijkstraEra where
injectFailure :: AlonzoUtxosPredFailure DijkstraEra
-> EraRuleFailure "UTXO" DijkstraEra
injectFailure =
ConwayUtxoPredFailure DijkstraEra
-> DijkstraUtxoPredFailure DijkstraEra
forall era.
ConwayUtxoPredFailure era -> DijkstraUtxoPredFailure era
conwayToDijkstraUtxoPredFailure
(ConwayUtxoPredFailure DijkstraEra
-> DijkstraUtxoPredFailure DijkstraEra)
-> (AlonzoUtxosPredFailure DijkstraEra
-> ConwayUtxoPredFailure DijkstraEra)
-> AlonzoUtxosPredFailure DijkstraEra
-> DijkstraUtxoPredFailure DijkstraEra
forall b c a. (b -> c) -> (a -> b) -> a -> c
. AlonzoUtxoPredFailure DijkstraEra
-> ConwayUtxoPredFailure DijkstraEra
forall era. AlonzoUtxoPredFailure era -> ConwayUtxoPredFailure era
alonzoToConwayUtxoPredFailure
(AlonzoUtxoPredFailure DijkstraEra
-> ConwayUtxoPredFailure DijkstraEra)
-> (AlonzoUtxosPredFailure DijkstraEra
-> AlonzoUtxoPredFailure DijkstraEra)
-> AlonzoUtxosPredFailure DijkstraEra
-> ConwayUtxoPredFailure DijkstraEra
forall b c a. (b -> c) -> (a -> b) -> a -> c
. PredicateFailure (EraRule "UTXOS" DijkstraEra)
-> AlonzoUtxoPredFailure DijkstraEra
ConwayUtxosPredFailure DijkstraEra
-> AlonzoUtxoPredFailure DijkstraEra
forall era.
PredicateFailure (EraRule "UTXOS" era) -> AlonzoUtxoPredFailure era
Alonzo.UtxosFailure
(ConwayUtxosPredFailure DijkstraEra
-> AlonzoUtxoPredFailure DijkstraEra)
-> (AlonzoUtxosPredFailure DijkstraEra
-> ConwayUtxosPredFailure DijkstraEra)
-> AlonzoUtxosPredFailure DijkstraEra
-> AlonzoUtxoPredFailure DijkstraEra
forall b c a. (b -> c) -> (a -> b) -> a -> c
. AlonzoUtxosPredFailure DijkstraEra
-> EraRuleFailure "UTXOS" DijkstraEra
AlonzoUtxosPredFailure DijkstraEra
-> ConwayUtxosPredFailure DijkstraEra
forall (rule :: Symbol) (t :: * -> *) era.
InjectRuleFailure rule t era =>
t era -> EraRuleFailure rule era
injectFailure
deriving instance
( Era era
, Show (Value era)
, Show (PredicateFailure (EraRule "UTXOS" era))
, Show (TxOut era)
, Show (Script era)
, Show TxIn
) =>
Show (DijkstraUtxoPredFailure era)
deriving instance
( Era era
, Eq (Value era)
, Eq (PredicateFailure (EraRule "UTXOS" era))
, Eq (TxOut era)
, Eq (Script era)
, Eq TxIn
) =>
Eq (DijkstraUtxoPredFailure era)
deriving via
InspectHeapNamed "ConwayUtxoPred" (DijkstraUtxoPredFailure era)
instance
NoThunks (DijkstraUtxoPredFailure era)
instance
( Era era
, NFData (Value era)
, NFData (TxOut era)
, NFData (PredicateFailure (EraRule "UTXOS" era))
) =>
NFData (DijkstraUtxoPredFailure era)
validateNoPtrInCollateralReturn ::
( BabbageEraTxBody era
, InjectRuleFailure rule DijkstraUtxoPredFailure era
) =>
TxBody TopTx era ->
Rule (EraRule rule era) ctx ()
validateNoPtrInCollateralReturn :: forall era (rule :: Symbol) (ctx :: RuleType).
(BabbageEraTxBody era,
InjectRuleFailure rule DijkstraUtxoPredFailure era) =>
TxBody TopTx era -> Rule (EraRule rule era) ctx ()
validateNoPtrInCollateralReturn TxBody TopTx era
txBody = do
let hasCollateralTxOut :: Maybe (TxOut era)
hasCollateralTxOut = do
SJust collateralReturn <- StrictMaybe (TxOut era) -> Maybe (StrictMaybe (TxOut era))
forall a. a -> Maybe a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (StrictMaybe (TxOut era) -> Maybe (StrictMaybe (TxOut era)))
-> StrictMaybe (TxOut era) -> Maybe (StrictMaybe (TxOut era))
forall a b. (a -> b) -> a -> b
$ TxBody TopTx era
txBody TxBody TopTx era
-> Getting
(StrictMaybe (TxOut era))
(TxBody TopTx era)
(StrictMaybe (TxOut era))
-> StrictMaybe (TxOut era)
forall s a. s -> Getting a s a -> a
^. Getting
(StrictMaybe (TxOut era))
(TxBody TopTx era)
(StrictMaybe (TxOut era))
forall era.
BabbageEraTxBody era =>
Lens' (TxBody TopTx era) (StrictMaybe (TxOut era))
Lens' (TxBody TopTx era) (StrictMaybe (TxOut era))
collateralReturnTxBodyL
Addr _ _ (StakeRefPtr {}) <- pure $ collateralReturn ^. addrTxOutL
Just collateralReturn
Maybe (TxOut era)
-> (TxOut era -> PredicateFailure (EraRule rule era))
-> F (Clause (EraRule rule era) ctx) ()
forall a sts (ctx :: RuleType).
Maybe a -> (a -> PredicateFailure sts) -> Rule sts ctx ()
failOnJustStatic Maybe (TxOut era)
hasCollateralTxOut (DijkstraUtxoPredFailure era -> EraRuleFailure rule era
forall (rule :: Symbol) (t :: * -> *) era.
InjectRuleFailure rule t era =>
t era -> EraRuleFailure rule era
injectFailure (DijkstraUtxoPredFailure era -> EraRuleFailure rule era)
-> (TxOut era -> DijkstraUtxoPredFailure era)
-> TxOut era
-> EraRuleFailure rule era
forall b c a. (b -> c) -> (a -> b) -> a -> c
. TxOut era -> DijkstraUtxoPredFailure era
forall era. TxOut era -> DijkstraUtxoPredFailure era
PtrPresentInCollateralReturn)
utxoTransition ::
forall era.
( EraUTxO era
, EraCertState era
, BabbageEraTxBody era
, AlonzoEraTxWits era
, InjectRuleFailure "UTXO" ShelleyUtxoPredFailure era
, InjectRuleFailure "UTXO" AllegraUtxoPredFailure era
, InjectRuleFailure "UTXO" AlonzoUtxoPredFailure era
, InjectRuleFailure "UTXO" BabbageUtxoPredFailure era
, InjectRuleFailure "UTXO" DijkstraUtxoPredFailure era
, Environment (EraRule "UTXO" era) ~ UtxoEnv era
, State (EraRule "UTXO" era) ~ UTxOState era
, Signal (EraRule "UTXO" era) ~ Tx TopTx era
, BaseM (EraRule "UTXO" era) ~ ShelleyBase
, STS (EraRule "UTXO" era)
,
Environment (EraRule "UTXOS" era) ~ UtxoEnv era
, State (EraRule "UTXOS" era) ~ UTxOState era
, Signal (EraRule "UTXOS" era) ~ Tx TopTx era
, Embed (EraRule "UTXOS" era) (EraRule "UTXO" era)
) =>
TransitionRule (EraRule "UTXO" era)
utxoTransition :: forall era.
(EraUTxO era, EraCertState era, BabbageEraTxBody era,
AlonzoEraTxWits era,
InjectRuleFailure "UTXO" ShelleyUtxoPredFailure era,
InjectRuleFailure "UTXO" AllegraUtxoPredFailure era,
InjectRuleFailure "UTXO" AlonzoUtxoPredFailure era,
InjectRuleFailure "UTXO" BabbageUtxoPredFailure era,
InjectRuleFailure "UTXO" DijkstraUtxoPredFailure era,
Environment (EraRule "UTXO" era) ~ UtxoEnv era,
State (EraRule "UTXO" era) ~ UTxOState era,
Signal (EraRule "UTXO" era) ~ Tx TopTx era,
BaseM (EraRule "UTXO" era) ~ ShelleyBase, STS (EraRule "UTXO" era),
Environment (EraRule "UTXOS" era) ~ UtxoEnv era,
State (EraRule "UTXOS" era) ~ UTxOState era,
Signal (EraRule "UTXOS" era) ~ Tx TopTx era,
Embed (EraRule "UTXOS" era) (EraRule "UTXO" era)) =>
TransitionRule (EraRule "UTXO" era)
utxoTransition = do
TRC (_, _, tx) <- Rule
(EraRule "UTXO" era)
'Transition
(RuleContext 'Transition (EraRule "UTXO" era))
F (Clause (EraRule "UTXO" era) 'Transition)
(TRC (EraRule "UTXO" era))
forall sts (rtype :: RuleType).
Rule sts rtype (RuleContext rtype sts)
judgmentContext
babbageUtxoValidation
validateNoPtrInCollateralReturn $ tx ^. bodyTxL
trans @(EraRule "UTXOS" era) =<< coerce <$> judgmentContext
instance
forall era.
( EraTx era
, EraUTxO era
, ConwayEraTxBody era
, AlonzoEraTxWits era
, EraRule "UTXO" era ~ DijkstraUTXO era
, InjectRuleFailure "UTXO" ShelleyUtxoPredFailure era
, InjectRuleFailure "UTXO" AllegraUtxoPredFailure era
, InjectRuleFailure "UTXO" AlonzoUtxoPredFailure era
, InjectRuleFailure "UTXO" BabbageUtxoPredFailure era
, InjectRuleFailure "UTXO" ConwayUtxoPredFailure era
, InjectRuleFailure "UTXO" DijkstraUtxoPredFailure era
, Environment (EraRule "UTXO" era) ~ UtxoEnv era
, State (EraRule "UTXO" era) ~ UTxOState era
, Signal (EraRule "UTXO" era) ~ Tx TopTx era
, BaseM (EraRule "UTXO" era) ~ ShelleyBase
, STS (EraRule "UTXO" era)
,
Embed (EraRule "UTXOS" era) (DijkstraUTXO era)
, Environment (EraRule "UTXOS" era) ~ UtxoEnv era
, State (EraRule "UTXOS" era) ~ UTxOState era
, Signal (EraRule "UTXOS" era) ~ Tx TopTx era
, EraCertState era
, EraRule "UTXO" era ~ DijkstraUTXO era
, SafeToHash (TxWits era)
) =>
STS (DijkstraUTXO era)
where
type State (DijkstraUTXO era) = Shelley.UTxOState era
type Signal (DijkstraUTXO era) = Tx TopTx era
type Environment (DijkstraUTXO era) = Shelley.UtxoEnv era
type BaseM (DijkstraUTXO era) = ShelleyBase
type PredicateFailure (DijkstraUTXO era) = DijkstraUtxoPredFailure era
type Event (DijkstraUTXO era) = AlonzoUtxoEvent era
initialRules :: [InitialRule (DijkstraUTXO era)]
initialRules = []
transitionRules :: [TransitionRule (DijkstraUTXO era)]
transitionRules = [forall era.
(EraUTxO era, EraCertState era, BabbageEraTxBody era,
AlonzoEraTxWits era,
InjectRuleFailure "UTXO" ShelleyUtxoPredFailure era,
InjectRuleFailure "UTXO" AllegraUtxoPredFailure era,
InjectRuleFailure "UTXO" AlonzoUtxoPredFailure era,
InjectRuleFailure "UTXO" BabbageUtxoPredFailure era,
InjectRuleFailure "UTXO" DijkstraUtxoPredFailure era,
Environment (EraRule "UTXO" era) ~ UtxoEnv era,
State (EraRule "UTXO" era) ~ UTxOState era,
Signal (EraRule "UTXO" era) ~ Tx TopTx era,
BaseM (EraRule "UTXO" era) ~ ShelleyBase, STS (EraRule "UTXO" era),
Environment (EraRule "UTXOS" era) ~ UtxoEnv era,
State (EraRule "UTXOS" era) ~ UTxOState era,
Signal (EraRule "UTXOS" era) ~ Tx TopTx era,
Embed (EraRule "UTXOS" era) (EraRule "UTXO" era)) =>
TransitionRule (EraRule "UTXO" era)
utxoTransition @era]
assertions :: [Assertion (DijkstraUTXO era)]
assertions = [Assertion (DijkstraUTXO era)
forall era (rule :: * -> *).
(EraTx era, SafeToHash (TxWits era),
Signal (rule era) ~ Tx TopTx era) =>
Assertion (rule era)
Shelley.validSizeComputationCheck]
instance
( Era era
, STS (ConwayUTXOS era)
, PredicateFailure (EraRule "UTXOS" era) ~ ConwayUtxosPredFailure era
, Event (EraRule "UTXOS" era) ~ Event (ConwayUTXOS era)
) =>
Embed (ConwayUTXOS era) (DijkstraUTXO era)
where
wrapFailed :: PredicateFailure (ConwayUTXOS era)
-> PredicateFailure (DijkstraUTXO era)
wrapFailed = PredicateFailure (EraRule "UTXOS" era)
-> DijkstraUtxoPredFailure era
PredicateFailure (ConwayUTXOS era)
-> PredicateFailure (DijkstraUTXO era)
forall era.
PredicateFailure (EraRule "UTXOS" era)
-> DijkstraUtxoPredFailure era
UtxosFailure
wrapEvent :: Event (ConwayUTXOS era) -> Event (DijkstraUTXO era)
wrapEvent = Event (EraRule "UTXOS" era) -> AlonzoUtxoEvent era
Event (ConwayUTXOS era) -> Event (DijkstraUTXO era)
forall era. Event (EraRule "UTXOS" era) -> AlonzoUtxoEvent era
Alonzo.UtxosEvent
instance
( Era era
, EncCBOR (TxOut era)
, EncCBOR (Value era)
, EncCBOR (PredicateFailure (EraRule "UTXOS" era))
) =>
EncCBOR (DijkstraUtxoPredFailure era)
where
encCBOR :: DijkstraUtxoPredFailure era -> Encoding
encCBOR =
Encode Open (DijkstraUtxoPredFailure era) -> Encoding
forall (w :: Wrapped) t. Encode w t -> Encoding
encode (Encode Open (DijkstraUtxoPredFailure era) -> Encoding)
-> (DijkstraUtxoPredFailure era
-> Encode Open (DijkstraUtxoPredFailure era))
-> DijkstraUtxoPredFailure era
-> Encoding
forall b c a. (b -> c) -> (a -> b) -> a -> c
. \case
UtxosFailure PredicateFailure (EraRule "UTXOS" era)
a -> (PredicateFailure (EraRule "UTXOS" era)
-> DijkstraUtxoPredFailure era)
-> Word
-> Encode
Open
(PredicateFailure (EraRule "UTXOS" era)
-> DijkstraUtxoPredFailure era)
forall t. t -> Word -> Encode Open t
Sum (forall era.
PredicateFailure (EraRule "UTXOS" era)
-> DijkstraUtxoPredFailure era
UtxosFailure @era) Word
0 Encode
Open
(PredicateFailure (EraRule "UTXOS" era)
-> DijkstraUtxoPredFailure era)
-> Encode (Closed Dense) (PredicateFailure (EraRule "UTXOS" era))
-> Encode Open (DijkstraUtxoPredFailure era)
forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode (Closed r) a -> Encode w t
!> PredicateFailure (EraRule "UTXOS" era)
-> Encode (Closed Dense) (PredicateFailure (EraRule "UTXOS" era))
forall t. EncCBOR t => t -> Encode (Closed Dense) t
To PredicateFailure (EraRule "UTXOS" era)
a
BadInputsUTxO Set TxIn
ins -> (Set TxIn -> DijkstraUtxoPredFailure era)
-> Word -> Encode Open (Set TxIn -> DijkstraUtxoPredFailure era)
forall t. t -> Word -> Encode Open t
Sum (forall era. Set TxIn -> DijkstraUtxoPredFailure era
BadInputsUTxO @era) Word
1 Encode Open (Set TxIn -> DijkstraUtxoPredFailure era)
-> Encode (Closed Dense) (Set TxIn)
-> Encode Open (DijkstraUtxoPredFailure era)
forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode (Closed r) a -> Encode w t
!> Set TxIn -> Encode (Closed Dense) (Set TxIn)
forall t. EncCBOR t => t -> Encode (Closed Dense) t
To Set TxIn
ins
OutsideValidityIntervalUTxO ValidityInterval
a SlotNo
b -> (ValidityInterval -> SlotNo -> DijkstraUtxoPredFailure era)
-> Word
-> Encode
Open (ValidityInterval -> SlotNo -> DijkstraUtxoPredFailure era)
forall t. t -> Word -> Encode Open t
Sum ValidityInterval -> SlotNo -> DijkstraUtxoPredFailure era
forall era.
ValidityInterval -> SlotNo -> DijkstraUtxoPredFailure era
OutsideValidityIntervalUTxO Word
2 Encode
Open (ValidityInterval -> SlotNo -> DijkstraUtxoPredFailure era)
-> Encode (Closed Dense) ValidityInterval
-> Encode Open (SlotNo -> DijkstraUtxoPredFailure era)
forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode (Closed r) a -> Encode w t
!> ValidityInterval -> Encode (Closed Dense) ValidityInterval
forall t. EncCBOR t => t -> Encode (Closed Dense) t
To ValidityInterval
a Encode Open (SlotNo -> DijkstraUtxoPredFailure era)
-> Encode (Closed Dense) SlotNo
-> Encode Open (DijkstraUtxoPredFailure era)
forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode (Closed r) a -> Encode w t
!> SlotNo -> Encode (Closed Dense) SlotNo
forall t. EncCBOR t => t -> Encode (Closed Dense) t
To SlotNo
b
MaxTxSizeUTxO Mismatch RelLTEQ Word32
mm -> (Mismatch RelLTEQ Word32 -> DijkstraUtxoPredFailure era)
-> Word
-> Encode
Open (Mismatch RelLTEQ Word32 -> DijkstraUtxoPredFailure era)
forall t. t -> Word -> Encode Open t
Sum Mismatch RelLTEQ Word32 -> DijkstraUtxoPredFailure era
forall era. Mismatch RelLTEQ Word32 -> DijkstraUtxoPredFailure era
MaxTxSizeUTxO Word
3 Encode
Open (Mismatch RelLTEQ Word32 -> DijkstraUtxoPredFailure era)
-> Encode (Closed Dense) (Mismatch RelLTEQ Word32)
-> Encode Open (DijkstraUtxoPredFailure era)
forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode (Closed r) a -> Encode w t
!> Mismatch RelLTEQ Word32
-> Encode (Closed Dense) (Mismatch RelLTEQ Word32)
forall t. EncCBOR t => t -> Encode (Closed Dense) t
To Mismatch RelLTEQ Word32
mm
DijkstraUtxoPredFailure era
InputSetEmptyUTxO -> DijkstraUtxoPredFailure era
-> Word -> Encode Open (DijkstraUtxoPredFailure era)
forall t. t -> Word -> Encode Open t
Sum DijkstraUtxoPredFailure era
forall era. DijkstraUtxoPredFailure era
InputSetEmptyUTxO Word
4
FeeTooSmallUTxO Mismatch RelGTEQ Coin
mm -> (Mismatch RelGTEQ Coin -> DijkstraUtxoPredFailure era)
-> Word
-> Encode
Open (Mismatch RelGTEQ Coin -> DijkstraUtxoPredFailure era)
forall t. t -> Word -> Encode Open t
Sum Mismatch RelGTEQ Coin -> DijkstraUtxoPredFailure era
forall era. Mismatch RelGTEQ Coin -> DijkstraUtxoPredFailure era
FeeTooSmallUTxO Word
5 Encode Open (Mismatch RelGTEQ Coin -> DijkstraUtxoPredFailure era)
-> Encode (Closed Dense) (Mismatch RelGTEQ Coin)
-> Encode Open (DijkstraUtxoPredFailure era)
forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode (Closed r) a -> Encode w t
!> Mismatch RelGTEQ Coin
-> Encode (Closed Dense) (Mismatch RelGTEQ Coin)
forall t. EncCBOR t => t -> Encode (Closed Dense) t
To Mismatch RelGTEQ Coin
mm
ValueNotConservedUTxO Mismatch RelEQ (Value era)
mm -> (Mismatch RelEQ (Value era) -> DijkstraUtxoPredFailure era)
-> Word
-> Encode
Open (Mismatch RelEQ (Value era) -> DijkstraUtxoPredFailure era)
forall t. t -> Word -> Encode Open t
Sum (forall era.
Mismatch RelEQ (Value era) -> DijkstraUtxoPredFailure era
ValueNotConservedUTxO @era) Word
6 Encode
Open (Mismatch RelEQ (Value era) -> DijkstraUtxoPredFailure era)
-> Encode (Closed Dense) (Mismatch RelEQ (Value era))
-> Encode Open (DijkstraUtxoPredFailure era)
forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode (Closed r) a -> Encode w t
!> Mismatch RelEQ (Value era)
-> Encode (Closed Dense) (Mismatch RelEQ (Value era))
forall t. EncCBOR t => t -> Encode (Closed Dense) t
To Mismatch RelEQ (Value era)
mm
WrongNetwork Network
right Set Addr
wrongs -> (Network -> Set Addr -> DijkstraUtxoPredFailure era)
-> Word
-> Encode Open (Network -> Set Addr -> DijkstraUtxoPredFailure era)
forall t. t -> Word -> Encode Open t
Sum (forall era. Network -> Set Addr -> DijkstraUtxoPredFailure era
WrongNetwork @era) Word
7 Encode Open (Network -> Set Addr -> DijkstraUtxoPredFailure era)
-> Encode (Closed Dense) Network
-> Encode Open (Set Addr -> DijkstraUtxoPredFailure era)
forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode (Closed r) a -> Encode w t
!> Network -> Encode (Closed Dense) Network
forall t. EncCBOR t => t -> Encode (Closed Dense) t
To Network
right Encode Open (Set Addr -> DijkstraUtxoPredFailure era)
-> Encode (Closed Dense) (Set Addr)
-> Encode Open (DijkstraUtxoPredFailure era)
forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode (Closed r) a -> Encode w t
!> Set Addr -> Encode (Closed Dense) (Set Addr)
forall t. EncCBOR t => t -> Encode (Closed Dense) t
To Set Addr
wrongs
WrongNetworkWithdrawal Network
right Set RewardAccount
wrongs -> (Network -> Set RewardAccount -> DijkstraUtxoPredFailure era)
-> Word
-> Encode
Open (Network -> Set RewardAccount -> DijkstraUtxoPredFailure era)
forall t. t -> Word -> Encode Open t
Sum (forall era.
Network -> Set RewardAccount -> DijkstraUtxoPredFailure era
WrongNetworkWithdrawal @era) Word
8 Encode
Open (Network -> Set RewardAccount -> DijkstraUtxoPredFailure era)
-> Encode (Closed Dense) Network
-> Encode Open (Set RewardAccount -> DijkstraUtxoPredFailure era)
forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode (Closed r) a -> Encode w t
!> Network -> Encode (Closed Dense) Network
forall t. EncCBOR t => t -> Encode (Closed Dense) t
To Network
right Encode Open (Set RewardAccount -> DijkstraUtxoPredFailure era)
-> Encode (Closed Dense) (Set RewardAccount)
-> Encode Open (DijkstraUtxoPredFailure era)
forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode (Closed r) a -> Encode w t
!> Set RewardAccount -> Encode (Closed Dense) (Set RewardAccount)
forall t. EncCBOR t => t -> Encode (Closed Dense) t
To Set RewardAccount
wrongs
OutputTooSmallUTxO [TxOut era]
outs -> ([TxOut era] -> DijkstraUtxoPredFailure era)
-> Word -> Encode Open ([TxOut era] -> DijkstraUtxoPredFailure era)
forall t. t -> Word -> Encode Open t
Sum (forall era. [TxOut era] -> DijkstraUtxoPredFailure era
OutputTooSmallUTxO @era) Word
9 Encode Open ([TxOut era] -> DijkstraUtxoPredFailure era)
-> Encode (Closed Dense) [TxOut era]
-> Encode Open (DijkstraUtxoPredFailure era)
forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode (Closed r) a -> Encode w t
!> [TxOut era] -> Encode (Closed Dense) [TxOut era]
forall t. EncCBOR t => t -> Encode (Closed Dense) t
To [TxOut era]
outs
OutputBootAddrAttrsTooBig [TxOut era]
outs -> ([TxOut era] -> DijkstraUtxoPredFailure era)
-> Word -> Encode Open ([TxOut era] -> DijkstraUtxoPredFailure era)
forall t. t -> Word -> Encode Open t
Sum (forall era. [TxOut era] -> DijkstraUtxoPredFailure era
OutputBootAddrAttrsTooBig @era) Word
10 Encode Open ([TxOut era] -> DijkstraUtxoPredFailure era)
-> Encode (Closed Dense) [TxOut era]
-> Encode Open (DijkstraUtxoPredFailure era)
forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode (Closed r) a -> Encode w t
!> [TxOut era] -> Encode (Closed Dense) [TxOut era]
forall t. EncCBOR t => t -> Encode (Closed Dense) t
To [TxOut era]
outs
OutputTooBigUTxO [(Int, Int, TxOut era)]
outs -> ([(Int, Int, TxOut era)] -> DijkstraUtxoPredFailure era)
-> Word
-> Encode
Open ([(Int, Int, TxOut era)] -> DijkstraUtxoPredFailure era)
forall t. t -> Word -> Encode Open t
Sum (forall era. [(Int, Int, TxOut era)] -> DijkstraUtxoPredFailure era
OutputTooBigUTxO @era) Word
11 Encode
Open ([(Int, Int, TxOut era)] -> DijkstraUtxoPredFailure era)
-> Encode (Closed Dense) [(Int, Int, TxOut era)]
-> Encode Open (DijkstraUtxoPredFailure era)
forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode (Closed r) a -> Encode w t
!> [(Int, Int, TxOut era)]
-> Encode (Closed Dense) [(Int, Int, TxOut era)]
forall t. EncCBOR t => t -> Encode (Closed Dense) t
To [(Int, Int, TxOut era)]
outs
InsufficientCollateral DeltaCoin
a Coin
b -> (DeltaCoin -> Coin -> DijkstraUtxoPredFailure era)
-> Word
-> Encode Open (DeltaCoin -> Coin -> DijkstraUtxoPredFailure era)
forall t. t -> Word -> Encode Open t
Sum DeltaCoin -> Coin -> DijkstraUtxoPredFailure era
forall era. DeltaCoin -> Coin -> DijkstraUtxoPredFailure era
InsufficientCollateral Word
12 Encode Open (DeltaCoin -> Coin -> DijkstraUtxoPredFailure era)
-> Encode (Closed Dense) DeltaCoin
-> Encode Open (Coin -> DijkstraUtxoPredFailure era)
forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode (Closed r) a -> Encode w t
!> DeltaCoin -> Encode (Closed Dense) DeltaCoin
forall t. EncCBOR t => t -> Encode (Closed Dense) t
To DeltaCoin
a Encode Open (Coin -> DijkstraUtxoPredFailure era)
-> Encode (Closed Dense) Coin
-> Encode Open (DijkstraUtxoPredFailure era)
forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode (Closed r) a -> Encode w t
!> Coin -> Encode (Closed Dense) Coin
forall t. EncCBOR t => t -> Encode (Closed Dense) t
To Coin
b
ScriptsNotPaidUTxO UTxO era
a -> (UTxO era -> DijkstraUtxoPredFailure era)
-> Word -> Encode Open (UTxO era -> DijkstraUtxoPredFailure era)
forall t. t -> Word -> Encode Open t
Sum UTxO era -> DijkstraUtxoPredFailure era
forall era. UTxO era -> DijkstraUtxoPredFailure era
ScriptsNotPaidUTxO Word
13 Encode Open (UTxO era -> DijkstraUtxoPredFailure era)
-> Encode (Closed Dense) (UTxO era)
-> Encode Open (DijkstraUtxoPredFailure era)
forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode (Closed r) a -> Encode w t
!> UTxO era -> Encode (Closed Dense) (UTxO era)
forall t. EncCBOR t => t -> Encode (Closed Dense) t
To UTxO era
a
ExUnitsTooBigUTxO Mismatch RelLTEQ ExUnits
mm -> (Mismatch RelLTEQ ExUnits -> DijkstraUtxoPredFailure era)
-> Word
-> Encode
Open (Mismatch RelLTEQ ExUnits -> DijkstraUtxoPredFailure era)
forall t. t -> Word -> Encode Open t
Sum Mismatch RelLTEQ ExUnits -> DijkstraUtxoPredFailure era
forall era. Mismatch RelLTEQ ExUnits -> DijkstraUtxoPredFailure era
ExUnitsTooBigUTxO Word
14 Encode
Open (Mismatch RelLTEQ ExUnits -> DijkstraUtxoPredFailure era)
-> Encode (Closed Dense) (Mismatch RelLTEQ ExUnits)
-> Encode Open (DijkstraUtxoPredFailure era)
forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode (Closed r) a -> Encode w t
!> Mismatch RelLTEQ ExUnits
-> Encode (Closed Dense) (Mismatch RelLTEQ ExUnits)
forall t. EncCBOR t => t -> Encode (Closed Dense) t
To Mismatch RelLTEQ ExUnits
mm
CollateralContainsNonADA Value era
a -> (Value era -> DijkstraUtxoPredFailure era)
-> Word -> Encode Open (Value era -> DijkstraUtxoPredFailure era)
forall t. t -> Word -> Encode Open t
Sum Value era -> DijkstraUtxoPredFailure era
forall era. Value era -> DijkstraUtxoPredFailure era
CollateralContainsNonADA Word
15 Encode Open (Value era -> DijkstraUtxoPredFailure era)
-> Encode (Closed Dense) (Value era)
-> Encode Open (DijkstraUtxoPredFailure era)
forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode (Closed r) a -> Encode w t
!> Value era -> Encode (Closed Dense) (Value era)
forall t. EncCBOR t => t -> Encode (Closed Dense) t
To Value era
a
WrongNetworkInTxBody Mismatch RelEQ Network
mm -> (Mismatch RelEQ Network -> DijkstraUtxoPredFailure era)
-> Word
-> Encode
Open (Mismatch RelEQ Network -> DijkstraUtxoPredFailure era)
forall t. t -> Word -> Encode Open t
Sum Mismatch RelEQ Network -> DijkstraUtxoPredFailure era
forall era. Mismatch RelEQ Network -> DijkstraUtxoPredFailure era
WrongNetworkInTxBody Word
16 Encode Open (Mismatch RelEQ Network -> DijkstraUtxoPredFailure era)
-> Encode (Closed Dense) (Mismatch RelEQ Network)
-> Encode Open (DijkstraUtxoPredFailure era)
forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode (Closed r) a -> Encode w t
!> Mismatch RelEQ Network
-> Encode (Closed Dense) (Mismatch RelEQ Network)
forall t. EncCBOR t => t -> Encode (Closed Dense) t
To Mismatch RelEQ Network
mm
OutsideForecast SlotNo
a -> (SlotNo -> DijkstraUtxoPredFailure era)
-> Word -> Encode Open (SlotNo -> DijkstraUtxoPredFailure era)
forall t. t -> Word -> Encode Open t
Sum SlotNo -> DijkstraUtxoPredFailure era
forall era. SlotNo -> DijkstraUtxoPredFailure era
OutsideForecast Word
17 Encode Open (SlotNo -> DijkstraUtxoPredFailure era)
-> Encode (Closed Dense) SlotNo
-> Encode Open (DijkstraUtxoPredFailure era)
forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode (Closed r) a -> Encode w t
!> SlotNo -> Encode (Closed Dense) SlotNo
forall t. EncCBOR t => t -> Encode (Closed Dense) t
To SlotNo
a
TooManyCollateralInputs Mismatch RelLTEQ Natural
mm -> (Mismatch RelLTEQ Natural -> DijkstraUtxoPredFailure era)
-> Word
-> Encode
Open (Mismatch RelLTEQ Natural -> DijkstraUtxoPredFailure era)
forall t. t -> Word -> Encode Open t
Sum Mismatch RelLTEQ Natural -> DijkstraUtxoPredFailure era
forall era. Mismatch RelLTEQ Natural -> DijkstraUtxoPredFailure era
TooManyCollateralInputs Word
18 Encode
Open (Mismatch RelLTEQ Natural -> DijkstraUtxoPredFailure era)
-> Encode (Closed Dense) (Mismatch RelLTEQ Natural)
-> Encode Open (DijkstraUtxoPredFailure era)
forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode (Closed r) a -> Encode w t
!> Mismatch RelLTEQ Natural
-> Encode (Closed Dense) (Mismatch RelLTEQ Natural)
forall t. EncCBOR t => t -> Encode (Closed Dense) t
To Mismatch RelLTEQ Natural
mm
DijkstraUtxoPredFailure era
NoCollateralInputs -> DijkstraUtxoPredFailure era
-> Word -> Encode Open (DijkstraUtxoPredFailure era)
forall t. t -> Word -> Encode Open t
Sum DijkstraUtxoPredFailure era
forall era. DijkstraUtxoPredFailure era
NoCollateralInputs Word
19
IncorrectTotalCollateralField DeltaCoin
c1 Coin
c2 -> (DeltaCoin -> Coin -> DijkstraUtxoPredFailure era)
-> Word
-> Encode Open (DeltaCoin -> Coin -> DijkstraUtxoPredFailure era)
forall t. t -> Word -> Encode Open t
Sum DeltaCoin -> Coin -> DijkstraUtxoPredFailure era
forall era. DeltaCoin -> Coin -> DijkstraUtxoPredFailure era
IncorrectTotalCollateralField Word
20 Encode Open (DeltaCoin -> Coin -> DijkstraUtxoPredFailure era)
-> Encode (Closed Dense) DeltaCoin
-> Encode Open (Coin -> DijkstraUtxoPredFailure era)
forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode (Closed r) a -> Encode w t
!> DeltaCoin -> Encode (Closed Dense) DeltaCoin
forall t. EncCBOR t => t -> Encode (Closed Dense) t
To DeltaCoin
c1 Encode Open (Coin -> DijkstraUtxoPredFailure era)
-> Encode (Closed Dense) Coin
-> Encode Open (DijkstraUtxoPredFailure era)
forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode (Closed r) a -> Encode w t
!> Coin -> Encode (Closed Dense) Coin
forall t. EncCBOR t => t -> Encode (Closed Dense) t
To Coin
c2
BabbageOutputTooSmallUTxO [(TxOut era, Coin)]
x -> ([(TxOut era, Coin)] -> DijkstraUtxoPredFailure era)
-> Word
-> Encode Open ([(TxOut era, Coin)] -> DijkstraUtxoPredFailure era)
forall t. t -> Word -> Encode Open t
Sum [(TxOut era, Coin)] -> DijkstraUtxoPredFailure era
forall era. [(TxOut era, Coin)] -> DijkstraUtxoPredFailure era
BabbageOutputTooSmallUTxO Word
21 Encode Open ([(TxOut era, Coin)] -> DijkstraUtxoPredFailure era)
-> Encode (Closed Dense) [(TxOut era, Coin)]
-> Encode Open (DijkstraUtxoPredFailure era)
forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode (Closed r) a -> Encode w t
!> [(TxOut era, Coin)] -> Encode (Closed Dense) [(TxOut era, Coin)]
forall t. EncCBOR t => t -> Encode (Closed Dense) t
To [(TxOut era, Coin)]
x
BabbageNonDisjointRefInputs NonEmpty TxIn
x -> (NonEmpty TxIn -> DijkstraUtxoPredFailure era)
-> Word
-> Encode Open (NonEmpty TxIn -> DijkstraUtxoPredFailure era)
forall t. t -> Word -> Encode Open t
Sum NonEmpty TxIn -> DijkstraUtxoPredFailure era
forall era. NonEmpty TxIn -> DijkstraUtxoPredFailure era
BabbageNonDisjointRefInputs Word
22 Encode Open (NonEmpty TxIn -> DijkstraUtxoPredFailure era)
-> Encode (Closed Dense) (NonEmpty TxIn)
-> Encode Open (DijkstraUtxoPredFailure era)
forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode (Closed r) a -> Encode w t
!> NonEmpty TxIn -> Encode (Closed Dense) (NonEmpty TxIn)
forall t. EncCBOR t => t -> Encode (Closed Dense) t
To NonEmpty TxIn
x
PtrPresentInCollateralReturn TxOut era
x -> (TxOut era -> DijkstraUtxoPredFailure era)
-> Word -> Encode Open (TxOut era -> DijkstraUtxoPredFailure era)
forall t. t -> Word -> Encode Open t
Sum TxOut era -> DijkstraUtxoPredFailure era
forall era. TxOut era -> DijkstraUtxoPredFailure era
PtrPresentInCollateralReturn Word
23 Encode Open (TxOut era -> DijkstraUtxoPredFailure era)
-> Encode (Closed Dense) (TxOut era)
-> Encode Open (DijkstraUtxoPredFailure era)
forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode (Closed r) a -> Encode w t
!> TxOut era -> Encode (Closed Dense) (TxOut era)
forall t. EncCBOR t => t -> Encode (Closed Dense) t
To TxOut era
x
instance
( Era era
, DecCBOR (TxOut era)
, EncCBOR (Value era)
, DecCBOR (Value era)
, DecCBOR (PredicateFailure (EraRule "UTXOS" era))
) =>
DecCBOR (DijkstraUtxoPredFailure era)
where
decCBOR :: forall s. Decoder s (DijkstraUtxoPredFailure era)
decCBOR = Decode (Closed Dense) (DijkstraUtxoPredFailure era)
-> Decoder s (DijkstraUtxoPredFailure era)
forall t (w :: Wrapped) s. Typeable t => Decode w t -> Decoder s t
decode (Decode (Closed Dense) (DijkstraUtxoPredFailure era)
-> Decoder s (DijkstraUtxoPredFailure era))
-> ((Word -> Decode Open (DijkstraUtxoPredFailure era))
-> Decode (Closed Dense) (DijkstraUtxoPredFailure era))
-> (Word -> Decode Open (DijkstraUtxoPredFailure era))
-> Decoder s (DijkstraUtxoPredFailure era)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Text
-> (Word -> Decode Open (DijkstraUtxoPredFailure era))
-> Decode (Closed Dense) (DijkstraUtxoPredFailure era)
forall t.
Text -> (Word -> Decode Open t) -> Decode (Closed Dense) t
Summands Text
"DijkstraUtxoPredFailure" ((Word -> Decode Open (DijkstraUtxoPredFailure era))
-> Decoder s (DijkstraUtxoPredFailure era))
-> (Word -> Decode Open (DijkstraUtxoPredFailure era))
-> Decoder s (DijkstraUtxoPredFailure era)
forall a b. (a -> b) -> a -> b
$ \case
Word
0 -> (PredicateFailure (EraRule "UTXOS" era)
-> DijkstraUtxoPredFailure era)
-> Decode
Open
(PredicateFailure (EraRule "UTXOS" era)
-> DijkstraUtxoPredFailure era)
forall t. t -> Decode Open t
SumD PredicateFailure (EraRule "UTXOS" era)
-> DijkstraUtxoPredFailure era
forall era.
PredicateFailure (EraRule "UTXOS" era)
-> DijkstraUtxoPredFailure era
UtxosFailure Decode
Open
(PredicateFailure (EraRule "UTXOS" era)
-> DijkstraUtxoPredFailure era)
-> Decode
(Closed (ZonkAny 0)) (PredicateFailure (EraRule "UTXOS" era))
-> Decode Open (DijkstraUtxoPredFailure era)
forall a (w1 :: Wrapped) t (w :: Density).
Typeable a =>
Decode w1 (a -> t) -> Decode (Closed w) a -> Decode w1 t
<! Decode
(Closed (ZonkAny 0)) (PredicateFailure (EraRule "UTXOS" era))
forall t (w :: Wrapped). DecCBOR t => Decode w t
From
Word
1 -> (Set TxIn -> DijkstraUtxoPredFailure era)
-> Decode Open (Set TxIn -> DijkstraUtxoPredFailure era)
forall t. t -> Decode Open t
SumD Set TxIn -> DijkstraUtxoPredFailure era
forall era. Set TxIn -> DijkstraUtxoPredFailure era
BadInputsUTxO Decode Open (Set TxIn -> DijkstraUtxoPredFailure era)
-> Decode (Closed (ZonkAny 1)) (Set TxIn)
-> Decode Open (DijkstraUtxoPredFailure era)
forall a (w1 :: Wrapped) t (w :: Density).
Typeable a =>
Decode w1 (a -> t) -> Decode (Closed w) a -> Decode w1 t
<! Decode (Closed (ZonkAny 1)) (Set TxIn)
forall t (w :: Wrapped). DecCBOR t => Decode w t
From
Word
2 -> (ValidityInterval -> SlotNo -> DijkstraUtxoPredFailure era)
-> Decode
Open (ValidityInterval -> SlotNo -> DijkstraUtxoPredFailure era)
forall t. t -> Decode Open t
SumD ValidityInterval -> SlotNo -> DijkstraUtxoPredFailure era
forall era.
ValidityInterval -> SlotNo -> DijkstraUtxoPredFailure era
OutsideValidityIntervalUTxO Decode
Open (ValidityInterval -> SlotNo -> DijkstraUtxoPredFailure era)
-> Decode (Closed (ZonkAny 3)) ValidityInterval
-> Decode Open (SlotNo -> DijkstraUtxoPredFailure era)
forall a (w1 :: Wrapped) t (w :: Density).
Typeable a =>
Decode w1 (a -> t) -> Decode (Closed w) a -> Decode w1 t
<! Decode (Closed (ZonkAny 3)) ValidityInterval
forall t (w :: Wrapped). DecCBOR t => Decode w t
From Decode Open (SlotNo -> DijkstraUtxoPredFailure era)
-> Decode (Closed (ZonkAny 2)) SlotNo
-> Decode Open (DijkstraUtxoPredFailure era)
forall a (w1 :: Wrapped) t (w :: Density).
Typeable a =>
Decode w1 (a -> t) -> Decode (Closed w) a -> Decode w1 t
<! Decode (Closed (ZonkAny 2)) SlotNo
forall t (w :: Wrapped). DecCBOR t => Decode w t
From
Word
3 -> (Mismatch RelLTEQ Word32 -> DijkstraUtxoPredFailure era)
-> Decode
Open (Mismatch RelLTEQ Word32 -> DijkstraUtxoPredFailure era)
forall t. t -> Decode Open t
SumD Mismatch RelLTEQ Word32 -> DijkstraUtxoPredFailure era
forall era. Mismatch RelLTEQ Word32 -> DijkstraUtxoPredFailure era
MaxTxSizeUTxO Decode
Open (Mismatch RelLTEQ Word32 -> DijkstraUtxoPredFailure era)
-> Decode (Closed (ZonkAny 4)) (Mismatch RelLTEQ Word32)
-> Decode Open (DijkstraUtxoPredFailure era)
forall a (w1 :: Wrapped) t (w :: Density).
Typeable a =>
Decode w1 (a -> t) -> Decode (Closed w) a -> Decode w1 t
<! Decode (Closed (ZonkAny 4)) (Mismatch RelLTEQ Word32)
forall t (w :: Wrapped). DecCBOR t => Decode w t
From
Word
4 -> DijkstraUtxoPredFailure era
-> Decode Open (DijkstraUtxoPredFailure era)
forall t. t -> Decode Open t
SumD DijkstraUtxoPredFailure era
forall era. DijkstraUtxoPredFailure era
InputSetEmptyUTxO
Word
5 -> (Mismatch RelGTEQ Coin -> DijkstraUtxoPredFailure era)
-> Decode
Open (Mismatch RelGTEQ Coin -> DijkstraUtxoPredFailure era)
forall t. t -> Decode Open t
SumD Mismatch RelGTEQ Coin -> DijkstraUtxoPredFailure era
forall era. Mismatch RelGTEQ Coin -> DijkstraUtxoPredFailure era
FeeTooSmallUTxO Decode Open (Mismatch RelGTEQ Coin -> DijkstraUtxoPredFailure era)
-> Decode (Closed (ZonkAny 5)) (Mismatch RelGTEQ Coin)
-> Decode Open (DijkstraUtxoPredFailure era)
forall a (w1 :: Wrapped) t (w :: Density).
Typeable a =>
Decode w1 (a -> t) -> Decode (Closed w) a -> Decode w1 t
<! Decode (Closed (ZonkAny 5)) (Mismatch RelGTEQ Coin)
forall t (w :: Wrapped). DecCBOR t => Decode w t
From
Word
6 -> (Mismatch RelEQ (Value era) -> DijkstraUtxoPredFailure era)
-> Decode
Open (Mismatch RelEQ (Value era) -> DijkstraUtxoPredFailure era)
forall t. t -> Decode Open t
SumD Mismatch RelEQ (Value era) -> DijkstraUtxoPredFailure era
forall era.
Mismatch RelEQ (Value era) -> DijkstraUtxoPredFailure era
ValueNotConservedUTxO Decode
Open (Mismatch RelEQ (Value era) -> DijkstraUtxoPredFailure era)
-> Decode (Closed (ZonkAny 6)) (Mismatch RelEQ (Value era))
-> Decode Open (DijkstraUtxoPredFailure era)
forall a (w1 :: Wrapped) t (w :: Density).
Typeable a =>
Decode w1 (a -> t) -> Decode (Closed w) a -> Decode w1 t
<! Decode (Closed (ZonkAny 6)) (Mismatch RelEQ (Value era))
forall t (w :: Wrapped). DecCBOR t => Decode w t
From
Word
7 -> (Network -> Set Addr -> DijkstraUtxoPredFailure era)
-> Decode Open (Network -> Set Addr -> DijkstraUtxoPredFailure era)
forall t. t -> Decode Open t
SumD Network -> Set Addr -> DijkstraUtxoPredFailure era
forall era. Network -> Set Addr -> DijkstraUtxoPredFailure era
WrongNetwork Decode Open (Network -> Set Addr -> DijkstraUtxoPredFailure era)
-> Decode (Closed (ZonkAny 8)) Network
-> Decode Open (Set Addr -> DijkstraUtxoPredFailure era)
forall a (w1 :: Wrapped) t (w :: Density).
Typeable a =>
Decode w1 (a -> t) -> Decode (Closed w) a -> Decode w1 t
<! Decode (Closed (ZonkAny 8)) Network
forall t (w :: Wrapped). DecCBOR t => Decode w t
From Decode Open (Set Addr -> DijkstraUtxoPredFailure era)
-> Decode (Closed (ZonkAny 7)) (Set Addr)
-> Decode Open (DijkstraUtxoPredFailure era)
forall a (w1 :: Wrapped) t (w :: Density).
Typeable a =>
Decode w1 (a -> t) -> Decode (Closed w) a -> Decode w1 t
<! Decode (Closed (ZonkAny 7)) (Set Addr)
forall t (w :: Wrapped). DecCBOR t => Decode w t
From
Word
8 -> (Network -> Set RewardAccount -> DijkstraUtxoPredFailure era)
-> Decode
Open (Network -> Set RewardAccount -> DijkstraUtxoPredFailure era)
forall t. t -> Decode Open t
SumD Network -> Set RewardAccount -> DijkstraUtxoPredFailure era
forall era.
Network -> Set RewardAccount -> DijkstraUtxoPredFailure era
WrongNetworkWithdrawal Decode
Open (Network -> Set RewardAccount -> DijkstraUtxoPredFailure era)
-> Decode (Closed (ZonkAny 10)) Network
-> Decode Open (Set RewardAccount -> DijkstraUtxoPredFailure era)
forall a (w1 :: Wrapped) t (w :: Density).
Typeable a =>
Decode w1 (a -> t) -> Decode (Closed w) a -> Decode w1 t
<! Decode (Closed (ZonkAny 10)) Network
forall t (w :: Wrapped). DecCBOR t => Decode w t
From Decode Open (Set RewardAccount -> DijkstraUtxoPredFailure era)
-> Decode (Closed (ZonkAny 9)) (Set RewardAccount)
-> Decode Open (DijkstraUtxoPredFailure era)
forall a (w1 :: Wrapped) t (w :: Density).
Typeable a =>
Decode w1 (a -> t) -> Decode (Closed w) a -> Decode w1 t
<! Decode (Closed (ZonkAny 9)) (Set RewardAccount)
forall t (w :: Wrapped). DecCBOR t => Decode w t
From
Word
9 -> ([TxOut era] -> DijkstraUtxoPredFailure era)
-> Decode Open ([TxOut era] -> DijkstraUtxoPredFailure era)
forall t. t -> Decode Open t
SumD [TxOut era] -> DijkstraUtxoPredFailure era
forall era. [TxOut era] -> DijkstraUtxoPredFailure era
OutputTooSmallUTxO Decode Open ([TxOut era] -> DijkstraUtxoPredFailure era)
-> Decode (Closed (ZonkAny 11)) [TxOut era]
-> Decode Open (DijkstraUtxoPredFailure era)
forall a (w1 :: Wrapped) t (w :: Density).
Typeable a =>
Decode w1 (a -> t) -> Decode (Closed w) a -> Decode w1 t
<! Decode (Closed (ZonkAny 11)) [TxOut era]
forall t (w :: Wrapped). DecCBOR t => Decode w t
From
Word
10 -> ([TxOut era] -> DijkstraUtxoPredFailure era)
-> Decode Open ([TxOut era] -> DijkstraUtxoPredFailure era)
forall t. t -> Decode Open t
SumD [TxOut era] -> DijkstraUtxoPredFailure era
forall era. [TxOut era] -> DijkstraUtxoPredFailure era
OutputBootAddrAttrsTooBig Decode Open ([TxOut era] -> DijkstraUtxoPredFailure era)
-> Decode (Closed (ZonkAny 12)) [TxOut era]
-> Decode Open (DijkstraUtxoPredFailure era)
forall a (w1 :: Wrapped) t (w :: Density).
Typeable a =>
Decode w1 (a -> t) -> Decode (Closed w) a -> Decode w1 t
<! Decode (Closed (ZonkAny 12)) [TxOut era]
forall t (w :: Wrapped). DecCBOR t => Decode w t
From
Word
11 -> ([(Int, Int, TxOut era)] -> DijkstraUtxoPredFailure era)
-> Decode
Open ([(Int, Int, TxOut era)] -> DijkstraUtxoPredFailure era)
forall t. t -> Decode Open t
SumD [(Int, Int, TxOut era)] -> DijkstraUtxoPredFailure era
forall era. [(Int, Int, TxOut era)] -> DijkstraUtxoPredFailure era
OutputTooBigUTxO Decode
Open ([(Int, Int, TxOut era)] -> DijkstraUtxoPredFailure era)
-> Decode (Closed (ZonkAny 13)) [(Int, Int, TxOut era)]
-> Decode Open (DijkstraUtxoPredFailure era)
forall a (w1 :: Wrapped) t (w :: Density).
Typeable a =>
Decode w1 (a -> t) -> Decode (Closed w) a -> Decode w1 t
<! Decode (Closed (ZonkAny 13)) [(Int, Int, TxOut era)]
forall t (w :: Wrapped). DecCBOR t => Decode w t
From
Word
12 -> (DeltaCoin -> Coin -> DijkstraUtxoPredFailure era)
-> Decode Open (DeltaCoin -> Coin -> DijkstraUtxoPredFailure era)
forall t. t -> Decode Open t
SumD DeltaCoin -> Coin -> DijkstraUtxoPredFailure era
forall era. DeltaCoin -> Coin -> DijkstraUtxoPredFailure era
InsufficientCollateral Decode Open (DeltaCoin -> Coin -> DijkstraUtxoPredFailure era)
-> Decode (Closed (ZonkAny 15)) DeltaCoin
-> Decode Open (Coin -> DijkstraUtxoPredFailure era)
forall a (w1 :: Wrapped) t (w :: Density).
Typeable a =>
Decode w1 (a -> t) -> Decode (Closed w) a -> Decode w1 t
<! Decode (Closed (ZonkAny 15)) DeltaCoin
forall t (w :: Wrapped). DecCBOR t => Decode w t
From Decode Open (Coin -> DijkstraUtxoPredFailure era)
-> Decode (Closed (ZonkAny 14)) Coin
-> Decode Open (DijkstraUtxoPredFailure era)
forall a (w1 :: Wrapped) t (w :: Density).
Typeable a =>
Decode w1 (a -> t) -> Decode (Closed w) a -> Decode w1 t
<! Decode (Closed (ZonkAny 14)) Coin
forall t (w :: Wrapped). DecCBOR t => Decode w t
From
Word
13 -> (UTxO era -> DijkstraUtxoPredFailure era)
-> Decode Open (UTxO era -> DijkstraUtxoPredFailure era)
forall t. t -> Decode Open t
SumD UTxO era -> DijkstraUtxoPredFailure era
forall era. UTxO era -> DijkstraUtxoPredFailure era
ScriptsNotPaidUTxO Decode Open (UTxO era -> DijkstraUtxoPredFailure era)
-> Decode (Closed (ZonkAny 16)) (UTxO era)
-> Decode Open (DijkstraUtxoPredFailure era)
forall a (w1 :: Wrapped) t (w :: Density).
Typeable a =>
Decode w1 (a -> t) -> Decode (Closed w) a -> Decode w1 t
<! Decode (Closed (ZonkAny 16)) (UTxO era)
forall t (w :: Wrapped). DecCBOR t => Decode w t
From
Word
14 -> (Mismatch RelLTEQ ExUnits -> DijkstraUtxoPredFailure era)
-> Decode
Open (Mismatch RelLTEQ ExUnits -> DijkstraUtxoPredFailure era)
forall t. t -> Decode Open t
SumD Mismatch RelLTEQ ExUnits -> DijkstraUtxoPredFailure era
forall era. Mismatch RelLTEQ ExUnits -> DijkstraUtxoPredFailure era
ExUnitsTooBigUTxO Decode
Open (Mismatch RelLTEQ ExUnits -> DijkstraUtxoPredFailure era)
-> Decode (Closed (ZonkAny 17)) (Mismatch RelLTEQ ExUnits)
-> Decode Open (DijkstraUtxoPredFailure era)
forall a (w1 :: Wrapped) t (w :: Density).
Typeable a =>
Decode w1 (a -> t) -> Decode (Closed w) a -> Decode w1 t
<! Decode (Closed (ZonkAny 17)) (Mismatch RelLTEQ ExUnits)
forall t (w :: Wrapped). DecCBOR t => Decode w t
From
Word
15 -> (Value era -> DijkstraUtxoPredFailure era)
-> Decode Open (Value era -> DijkstraUtxoPredFailure era)
forall t. t -> Decode Open t
SumD Value era -> DijkstraUtxoPredFailure era
forall era. Value era -> DijkstraUtxoPredFailure era
CollateralContainsNonADA Decode Open (Value era -> DijkstraUtxoPredFailure era)
-> Decode (Closed (ZonkAny 18)) (Value era)
-> Decode Open (DijkstraUtxoPredFailure era)
forall a (w1 :: Wrapped) t (w :: Density).
Typeable a =>
Decode w1 (a -> t) -> Decode (Closed w) a -> Decode w1 t
<! Decode (Closed (ZonkAny 18)) (Value era)
forall t (w :: Wrapped). DecCBOR t => Decode w t
From
Word
16 -> (Mismatch RelEQ Network -> DijkstraUtxoPredFailure era)
-> Decode
Open (Mismatch RelEQ Network -> DijkstraUtxoPredFailure era)
forall t. t -> Decode Open t
SumD Mismatch RelEQ Network -> DijkstraUtxoPredFailure era
forall era. Mismatch RelEQ Network -> DijkstraUtxoPredFailure era
WrongNetworkInTxBody Decode Open (Mismatch RelEQ Network -> DijkstraUtxoPredFailure era)
-> Decode (Closed (ZonkAny 19)) (Mismatch RelEQ Network)
-> Decode Open (DijkstraUtxoPredFailure era)
forall a (w1 :: Wrapped) t (w :: Density).
Typeable a =>
Decode w1 (a -> t) -> Decode (Closed w) a -> Decode w1 t
<! Decode (Closed (ZonkAny 19)) (Mismatch RelEQ Network)
forall t (w :: Wrapped). DecCBOR t => Decode w t
From
Word
17 -> (SlotNo -> DijkstraUtxoPredFailure era)
-> Decode Open (SlotNo -> DijkstraUtxoPredFailure era)
forall t. t -> Decode Open t
SumD SlotNo -> DijkstraUtxoPredFailure era
forall era. SlotNo -> DijkstraUtxoPredFailure era
OutsideForecast Decode Open (SlotNo -> DijkstraUtxoPredFailure era)
-> Decode (Closed (ZonkAny 20)) SlotNo
-> Decode Open (DijkstraUtxoPredFailure era)
forall a (w1 :: Wrapped) t (w :: Density).
Typeable a =>
Decode w1 (a -> t) -> Decode (Closed w) a -> Decode w1 t
<! Decode (Closed (ZonkAny 20)) SlotNo
forall t (w :: Wrapped). DecCBOR t => Decode w t
From
Word
18 -> (Mismatch RelLTEQ Natural -> DijkstraUtxoPredFailure era)
-> Decode
Open (Mismatch RelLTEQ Natural -> DijkstraUtxoPredFailure era)
forall t. t -> Decode Open t
SumD Mismatch RelLTEQ Natural -> DijkstraUtxoPredFailure era
forall era. Mismatch RelLTEQ Natural -> DijkstraUtxoPredFailure era
TooManyCollateralInputs Decode
Open (Mismatch RelLTEQ Natural -> DijkstraUtxoPredFailure era)
-> Decode (Closed (ZonkAny 21)) (Mismatch RelLTEQ Natural)
-> Decode Open (DijkstraUtxoPredFailure era)
forall a (w1 :: Wrapped) t (w :: Density).
Typeable a =>
Decode w1 (a -> t) -> Decode (Closed w) a -> Decode w1 t
<! Decode (Closed (ZonkAny 21)) (Mismatch RelLTEQ Natural)
forall t (w :: Wrapped). DecCBOR t => Decode w t
From
Word
19 -> DijkstraUtxoPredFailure era
-> Decode Open (DijkstraUtxoPredFailure era)
forall t. t -> Decode Open t
SumD DijkstraUtxoPredFailure era
forall era. DijkstraUtxoPredFailure era
NoCollateralInputs
Word
20 -> (DeltaCoin -> Coin -> DijkstraUtxoPredFailure era)
-> Decode Open (DeltaCoin -> Coin -> DijkstraUtxoPredFailure era)
forall t. t -> Decode Open t
SumD DeltaCoin -> Coin -> DijkstraUtxoPredFailure era
forall era. DeltaCoin -> Coin -> DijkstraUtxoPredFailure era
IncorrectTotalCollateralField Decode Open (DeltaCoin -> Coin -> DijkstraUtxoPredFailure era)
-> Decode (Closed (ZonkAny 23)) DeltaCoin
-> Decode Open (Coin -> DijkstraUtxoPredFailure era)
forall a (w1 :: Wrapped) t (w :: Density).
Typeable a =>
Decode w1 (a -> t) -> Decode (Closed w) a -> Decode w1 t
<! Decode (Closed (ZonkAny 23)) DeltaCoin
forall t (w :: Wrapped). DecCBOR t => Decode w t
From Decode Open (Coin -> DijkstraUtxoPredFailure era)
-> Decode (Closed (ZonkAny 22)) Coin
-> Decode Open (DijkstraUtxoPredFailure era)
forall a (w1 :: Wrapped) t (w :: Density).
Typeable a =>
Decode w1 (a -> t) -> Decode (Closed w) a -> Decode w1 t
<! Decode (Closed (ZonkAny 22)) Coin
forall t (w :: Wrapped). DecCBOR t => Decode w t
From
Word
21 -> ([(TxOut era, Coin)] -> DijkstraUtxoPredFailure era)
-> Decode Open ([(TxOut era, Coin)] -> DijkstraUtxoPredFailure era)
forall t. t -> Decode Open t
SumD [(TxOut era, Coin)] -> DijkstraUtxoPredFailure era
forall era. [(TxOut era, Coin)] -> DijkstraUtxoPredFailure era
BabbageOutputTooSmallUTxO Decode Open ([(TxOut era, Coin)] -> DijkstraUtxoPredFailure era)
-> Decode (Closed (ZonkAny 24)) [(TxOut era, Coin)]
-> Decode Open (DijkstraUtxoPredFailure era)
forall a (w1 :: Wrapped) t (w :: Density).
Typeable a =>
Decode w1 (a -> t) -> Decode (Closed w) a -> Decode w1 t
<! Decode (Closed (ZonkAny 24)) [(TxOut era, Coin)]
forall t (w :: Wrapped). DecCBOR t => Decode w t
From
Word
22 -> (NonEmpty TxIn -> DijkstraUtxoPredFailure era)
-> Decode Open (NonEmpty TxIn -> DijkstraUtxoPredFailure era)
forall t. t -> Decode Open t
SumD NonEmpty TxIn -> DijkstraUtxoPredFailure era
forall era. NonEmpty TxIn -> DijkstraUtxoPredFailure era
BabbageNonDisjointRefInputs Decode Open (NonEmpty TxIn -> DijkstraUtxoPredFailure era)
-> Decode (Closed (ZonkAny 25)) (NonEmpty TxIn)
-> Decode Open (DijkstraUtxoPredFailure era)
forall a (w1 :: Wrapped) t (w :: Density).
Typeable a =>
Decode w1 (a -> t) -> Decode (Closed w) a -> Decode w1 t
<! Decode (Closed (ZonkAny 25)) (NonEmpty TxIn)
forall t (w :: Wrapped). DecCBOR t => Decode w t
From
Word
23 -> (TxOut era -> DijkstraUtxoPredFailure era)
-> Decode Open (TxOut era -> DijkstraUtxoPredFailure era)
forall t. t -> Decode Open t
SumD TxOut era -> DijkstraUtxoPredFailure era
forall era. TxOut era -> DijkstraUtxoPredFailure era
PtrPresentInCollateralReturn Decode Open (TxOut era -> DijkstraUtxoPredFailure era)
-> Decode (Closed (ZonkAny 26)) (TxOut era)
-> Decode Open (DijkstraUtxoPredFailure era)
forall a (w1 :: Wrapped) t (w :: Density).
Typeable a =>
Decode w1 (a -> t) -> Decode (Closed w) a -> Decode w1 t
<! Decode (Closed (ZonkAny 26)) (TxOut era)
forall t (w :: Wrapped). DecCBOR t => Decode w t
From
Word
n -> Word -> Decode Open (DijkstraUtxoPredFailure era)
forall (w :: Wrapped) t. Word -> Decode w t
Invalid Word
n
conwayToDijkstraUtxoPredFailure ::
forall era.
ConwayUtxoPredFailure era ->
DijkstraUtxoPredFailure era
conwayToDijkstraUtxoPredFailure :: forall era.
ConwayUtxoPredFailure era -> DijkstraUtxoPredFailure era
conwayToDijkstraUtxoPredFailure = \case
Conway.BadInputsUTxO Set TxIn
x -> Set TxIn -> DijkstraUtxoPredFailure era
forall era. Set TxIn -> DijkstraUtxoPredFailure era
BadInputsUTxO Set TxIn
x
Conway.OutsideValidityIntervalUTxO ValidityInterval
vi SlotNo
slotNo -> ValidityInterval -> SlotNo -> DijkstraUtxoPredFailure era
forall era.
ValidityInterval -> SlotNo -> DijkstraUtxoPredFailure era
OutsideValidityIntervalUTxO ValidityInterval
vi SlotNo
slotNo
Conway.MaxTxSizeUTxO Mismatch RelLTEQ Word32
m -> Mismatch RelLTEQ Word32 -> DijkstraUtxoPredFailure era
forall era. Mismatch RelLTEQ Word32 -> DijkstraUtxoPredFailure era
MaxTxSizeUTxO Mismatch RelLTEQ Word32
m
ConwayUtxoPredFailure era
Conway.InputSetEmptyUTxO -> DijkstraUtxoPredFailure era
forall era. DijkstraUtxoPredFailure era
InputSetEmptyUTxO
Conway.FeeTooSmallUTxO Mismatch RelGTEQ Coin
m -> Mismatch RelGTEQ Coin -> DijkstraUtxoPredFailure era
forall era. Mismatch RelGTEQ Coin -> DijkstraUtxoPredFailure era
FeeTooSmallUTxO Mismatch RelGTEQ Coin
m
Conway.ValueNotConservedUTxO Mismatch RelEQ (Value era)
m -> Mismatch RelEQ (Value era) -> DijkstraUtxoPredFailure era
forall era.
Mismatch RelEQ (Value era) -> DijkstraUtxoPredFailure era
ValueNotConservedUTxO Mismatch RelEQ (Value era)
m
Conway.WrongNetwork Network
x Set Addr
y -> Network -> Set Addr -> DijkstraUtxoPredFailure era
forall era. Network -> Set Addr -> DijkstraUtxoPredFailure era
WrongNetwork Network
x Set Addr
y
Conway.WrongNetworkWithdrawal Network
x Set RewardAccount
y -> Network -> Set RewardAccount -> DijkstraUtxoPredFailure era
forall era.
Network -> Set RewardAccount -> DijkstraUtxoPredFailure era
WrongNetworkWithdrawal Network
x Set RewardAccount
y
Conway.OutputTooSmallUTxO [TxOut era]
x -> [TxOut era] -> DijkstraUtxoPredFailure era
forall era. [TxOut era] -> DijkstraUtxoPredFailure era
OutputTooSmallUTxO [TxOut era]
x
Conway.UtxosFailure PredicateFailure (EraRule "UTXOS" era)
x -> PredicateFailure (EraRule "UTXOS" era)
-> DijkstraUtxoPredFailure era
forall era.
PredicateFailure (EraRule "UTXOS" era)
-> DijkstraUtxoPredFailure era
UtxosFailure PredicateFailure (EraRule "UTXOS" era)
x
Conway.OutputBootAddrAttrsTooBig [TxOut era]
xs -> [TxOut era] -> DijkstraUtxoPredFailure era
forall era. [TxOut era] -> DijkstraUtxoPredFailure era
OutputBootAddrAttrsTooBig [TxOut era]
xs
Conway.OutputTooBigUTxO [(Int, Int, TxOut era)]
xs -> [(Int, Int, TxOut era)] -> DijkstraUtxoPredFailure era
forall era. [(Int, Int, TxOut era)] -> DijkstraUtxoPredFailure era
OutputTooBigUTxO [(Int, Int, TxOut era)]
xs
Conway.InsufficientCollateral DeltaCoin
c1 Coin
c2 -> DeltaCoin -> Coin -> DijkstraUtxoPredFailure era
forall era. DeltaCoin -> Coin -> DijkstraUtxoPredFailure era
InsufficientCollateral DeltaCoin
c1 Coin
c2
Conway.ScriptsNotPaidUTxO UTxO era
u -> UTxO era -> DijkstraUtxoPredFailure era
forall era. UTxO era -> DijkstraUtxoPredFailure era
ScriptsNotPaidUTxO UTxO era
u
Conway.ExUnitsTooBigUTxO Mismatch RelLTEQ ExUnits
m -> Mismatch RelLTEQ ExUnits -> DijkstraUtxoPredFailure era
forall era. Mismatch RelLTEQ ExUnits -> DijkstraUtxoPredFailure era
ExUnitsTooBigUTxO Mismatch RelLTEQ ExUnits
m
Conway.CollateralContainsNonADA Value era
v -> Value era -> DijkstraUtxoPredFailure era
forall era. Value era -> DijkstraUtxoPredFailure era
CollateralContainsNonADA Value era
v
Conway.WrongNetworkInTxBody Mismatch RelEQ Network
m -> Mismatch RelEQ Network -> DijkstraUtxoPredFailure era
forall era. Mismatch RelEQ Network -> DijkstraUtxoPredFailure era
WrongNetworkInTxBody Mismatch RelEQ Network
m
Conway.OutsideForecast SlotNo
sno -> SlotNo -> DijkstraUtxoPredFailure era
forall era. SlotNo -> DijkstraUtxoPredFailure era
OutsideForecast SlotNo
sno
Conway.TooManyCollateralInputs Mismatch RelLTEQ Natural
m -> Mismatch RelLTEQ Natural -> DijkstraUtxoPredFailure era
forall era. Mismatch RelLTEQ Natural -> DijkstraUtxoPredFailure era
TooManyCollateralInputs Mismatch RelLTEQ Natural
m
ConwayUtxoPredFailure era
Conway.NoCollateralInputs -> DijkstraUtxoPredFailure era
forall era. DijkstraUtxoPredFailure era
NoCollateralInputs
Conway.IncorrectTotalCollateralField DeltaCoin
dc Coin
c -> DeltaCoin -> Coin -> DijkstraUtxoPredFailure era
forall era. DeltaCoin -> Coin -> DijkstraUtxoPredFailure era
IncorrectTotalCollateralField DeltaCoin
dc Coin
c
Conway.BabbageOutputTooSmallUTxO [(TxOut era, Coin)]
txouts -> [(TxOut era, Coin)] -> DijkstraUtxoPredFailure era
forall era. [(TxOut era, Coin)] -> DijkstraUtxoPredFailure era
BabbageOutputTooSmallUTxO [(TxOut era, Coin)]
txouts
Conway.BabbageNonDisjointRefInputs NonEmpty TxIn
txin -> NonEmpty TxIn -> DijkstraUtxoPredFailure era
forall era. NonEmpty TxIn -> DijkstraUtxoPredFailure era
BabbageNonDisjointRefInputs NonEmpty TxIn
txin