{-# LANGUAGE DataKinds #-}
{-# LANGUAGE DeriveGeneric #-}
{-# 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.Ledger (
DijkstraLEDGER,
DijkstraLedgerPredFailure (..),
DijkstraLedgerEvent (..),
shelleyToDijkstraLedgerPredFailure,
conwayToDijkstraLedgerPredFailure,
) where
import Cardano.Ledger.Allegra.Rules (AllegraUtxoPredFailure)
import Cardano.Ledger.Alonzo (AlonzoScript)
import Cardano.Ledger.Alonzo.Plutus.Context (EraPlutusContext)
import Cardano.Ledger.Alonzo.Rules (
AlonzoUtxoPredFailure,
AlonzoUtxosPredFailure,
AlonzoUtxowEvent,
AlonzoUtxowPredFailure,
)
import Cardano.Ledger.Alonzo.UTxO (AlonzoScriptsNeeded)
import Cardano.Ledger.Babbage (BabbageTxOut)
import Cardano.Ledger.Babbage.Rules (
BabbageUtxoPredFailure,
BabbageUtxowPredFailure,
)
import Cardano.Ledger.BaseTypes (
Mismatch (..),
Relation (..),
ShelleyBase,
)
import Cardano.Ledger.Binary (DecCBOR (..), EncCBOR (..))
import Cardano.Ledger.Binary.Coders
import Cardano.Ledger.Coin (Coin)
import Cardano.Ledger.Conway.Core
import Cardano.Ledger.Conway.Governance (
ConwayEraGov (..),
ConwayGovState,
Proposals,
)
import Cardano.Ledger.Conway.Rules (
CertEnv,
CertsEnv (..),
ConwayCERTS,
ConwayCertEvent (..),
ConwayCertPredFailure (..),
ConwayCertsEvent (..),
ConwayCertsPredFailure (..),
ConwayDELEG,
ConwayDelegPredFailure,
ConwayGovCertPredFailure,
ConwayGovEvent,
ConwayGovPredFailure,
ConwayLedgerPredFailure,
ConwayUtxoPredFailure,
ConwayUtxosPredFailure,
ConwayUtxowPredFailure,
GovEnv (..),
GovSignal (..),
conwayLedgerTransitionTRC,
)
import qualified Cardano.Ledger.Conway.Rules as Conway
import Cardano.Ledger.Conway.State
import Cardano.Ledger.Dijkstra.Era (
DijkstraEra,
DijkstraGOV,
DijkstraLEDGER,
DijkstraSUBCERT,
DijkstraSUBCERTS,
DijkstraSUBDELEG,
DijkstraSUBGOV,
DijkstraSUBGOVCERT,
DijkstraSUBUTXO,
DijkstraSUBUTXOS,
DijkstraSUBUTXOW,
DijkstraUTXOW,
)
import Cardano.Ledger.Dijkstra.Rules.Certs ()
import Cardano.Ledger.Dijkstra.Rules.Gov (DijkstraGovPredFailure)
import Cardano.Ledger.Dijkstra.Rules.GovCert (DijkstraGovCertPredFailure)
import Cardano.Ledger.Dijkstra.Rules.SubDeleg (DijkstraSubDelegPredFailure)
import Cardano.Ledger.Dijkstra.Rules.SubGov (DijkstraSubGovEvent, DijkstraSubGovPredFailure)
import Cardano.Ledger.Dijkstra.Rules.SubGovCert (DijkstraSubGovCertPredFailure)
import Cardano.Ledger.Dijkstra.Rules.SubLedger
import Cardano.Ledger.Dijkstra.Rules.SubLedgers
import Cardano.Ledger.Dijkstra.Rules.SubPool
import Cardano.Ledger.Dijkstra.Rules.Utxo (DijkstraUtxoPredFailure)
import Cardano.Ledger.Dijkstra.Rules.Utxow (DijkstraUtxowPredFailure)
import Cardano.Ledger.Dijkstra.TxBody
import Cardano.Ledger.Dijkstra.TxCert
import Cardano.Ledger.Shelley.LedgerState (
LedgerState (..),
UTxOState (..),
)
import Cardano.Ledger.Shelley.Rules (
LedgerEnv (..),
PoolEvent,
ShelleyLEDGERS,
ShelleyLedgerPredFailure (..),
ShelleyLedgersEvent (LedgerEvent),
ShelleyLedgersPredFailure (LedgerFailure),
ShelleyPoolPredFailure,
ShelleyUtxoPredFailure,
ShelleyUtxowPredFailure,
UtxoEnv (..),
renderDepositEqualsObligationViolation,
shelleyLedgerAssertions,
)
import Cardano.Ledger.TxIn (TxId, TxIn (..))
import Control.DeepSeq (NFData)
import Control.State.Transition.Extended
import Data.List.NonEmpty (NonEmpty)
import Data.Map.NonEmpty (NonEmptyMap)
import qualified Data.Map.Strict as Map
import qualified Data.OMap.Strict as OMap
import Data.Sequence (Seq)
import qualified Data.Set as Set
import Data.Set.NonEmpty (NonEmptySet)
import qualified Data.Set.NonEmpty as NES
import GHC.Generics (Generic (..))
import Lens.Micro
import NoThunks.Class (NoThunks (..))
data DijkstraLedgerPredFailure era
= DijkstraUtxowFailure (PredicateFailure (EraRule "UTXOW" era))
| DijkstraCertsFailure (PredicateFailure (EraRule "CERTS" era))
| DijkstraGovFailure (PredicateFailure (EraRule "GOV" era))
| DijkstraWdrlNotDelegatedToDRep (NonEmpty (KeyHash Staking))
| DijkstraTreasuryValueMismatch (Mismatch RelEQ Coin)
| DijkstraTxRefScriptsSizeTooBig (Mismatch RelLTEQ Int)
| DijkstraWithdrawalsMissingAccounts Withdrawals
| DijkstraIncompleteWithdrawals (NonEmptyMap AccountAddress (Mismatch RelEQ Coin))
| DijkstraSubLedgersFailure (PredicateFailure (EraRule "SUBLEDGERS" era))
| DijkstraSpendingOutputFromSameTx (NonEmptyMap TxId (NonEmptySet TxIn))
deriving ((forall x.
DijkstraLedgerPredFailure era
-> Rep (DijkstraLedgerPredFailure era) x)
-> (forall x.
Rep (DijkstraLedgerPredFailure era) x
-> DijkstraLedgerPredFailure era)
-> Generic (DijkstraLedgerPredFailure era)
forall x.
Rep (DijkstraLedgerPredFailure era) x
-> DijkstraLedgerPredFailure era
forall x.
DijkstraLedgerPredFailure era
-> Rep (DijkstraLedgerPredFailure era) x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
forall era x.
Rep (DijkstraLedgerPredFailure era) x
-> DijkstraLedgerPredFailure era
forall era x.
DijkstraLedgerPredFailure era
-> Rep (DijkstraLedgerPredFailure era) x
$cfrom :: forall era x.
DijkstraLedgerPredFailure era
-> Rep (DijkstraLedgerPredFailure era) x
from :: forall x.
DijkstraLedgerPredFailure era
-> Rep (DijkstraLedgerPredFailure era) x
$cto :: forall era x.
Rep (DijkstraLedgerPredFailure era) x
-> DijkstraLedgerPredFailure era
to :: forall x.
Rep (DijkstraLedgerPredFailure era) x
-> DijkstraLedgerPredFailure era
Generic)
type instance EraRuleFailure "LEDGER" DijkstraEra = DijkstraLedgerPredFailure DijkstraEra
type instance EraRuleEvent "LEDGER" DijkstraEra = DijkstraLedgerEvent DijkstraEra
instance InjectRuleEvent "LEDGER" DijkstraLedgerEvent DijkstraEra
instance InjectRuleFailure "LEDGER" DijkstraLedgerPredFailure DijkstraEra
instance InjectRuleFailure "LEDGER" ConwayLedgerPredFailure DijkstraEra where
injectFailure :: ConwayLedgerPredFailure DijkstraEra
-> EraRuleFailure "LEDGER" DijkstraEra
injectFailure = ConwayLedgerPredFailure DijkstraEra
-> EraRuleFailure "LEDGER" DijkstraEra
ConwayLedgerPredFailure DijkstraEra
-> DijkstraLedgerPredFailure DijkstraEra
forall era.
ConwayLedgerPredFailure era -> DijkstraLedgerPredFailure era
conwayToDijkstraLedgerPredFailure
instance InjectRuleFailure "LEDGER" ShelleyLedgerPredFailure DijkstraEra where
injectFailure :: ShelleyLedgerPredFailure DijkstraEra
-> EraRuleFailure "LEDGER" DijkstraEra
injectFailure = ShelleyLedgerPredFailure DijkstraEra
-> EraRuleFailure "LEDGER" DijkstraEra
ShelleyLedgerPredFailure DijkstraEra
-> DijkstraLedgerPredFailure DijkstraEra
forall era.
ShelleyLedgerPredFailure era -> DijkstraLedgerPredFailure era
shelleyToDijkstraLedgerPredFailure
instance InjectRuleFailure "LEDGER" DijkstraUtxowPredFailure DijkstraEra where
injectFailure :: DijkstraUtxowPredFailure DijkstraEra
-> EraRuleFailure "LEDGER" DijkstraEra
injectFailure = PredicateFailure (EraRule "UTXOW" DijkstraEra)
-> DijkstraLedgerPredFailure DijkstraEra
DijkstraUtxowPredFailure DijkstraEra
-> EraRuleFailure "LEDGER" DijkstraEra
forall era.
PredicateFailure (EraRule "UTXOW" era)
-> DijkstraLedgerPredFailure era
DijkstraUtxowFailure
instance InjectRuleFailure "LEDGER" ConwayUtxowPredFailure DijkstraEra where
injectFailure :: ConwayUtxowPredFailure DijkstraEra
-> EraRuleFailure "LEDGER" DijkstraEra
injectFailure = PredicateFailure (EraRule "UTXOW" DijkstraEra)
-> DijkstraLedgerPredFailure DijkstraEra
DijkstraUtxowPredFailure DijkstraEra
-> DijkstraLedgerPredFailure DijkstraEra
forall era.
PredicateFailure (EraRule "UTXOW" era)
-> DijkstraLedgerPredFailure era
DijkstraUtxowFailure (DijkstraUtxowPredFailure DijkstraEra
-> DijkstraLedgerPredFailure DijkstraEra)
-> (ConwayUtxowPredFailure DijkstraEra
-> DijkstraUtxowPredFailure DijkstraEra)
-> ConwayUtxowPredFailure DijkstraEra
-> DijkstraLedgerPredFailure DijkstraEra
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ConwayUtxowPredFailure DijkstraEra
-> EraRuleFailure "UTXOW" DijkstraEra
ConwayUtxowPredFailure DijkstraEra
-> DijkstraUtxowPredFailure DijkstraEra
forall (rule :: Symbol) (t :: * -> *) era.
InjectRuleFailure rule t era =>
t era -> EraRuleFailure rule era
injectFailure
instance InjectRuleFailure "LEDGER" BabbageUtxowPredFailure DijkstraEra where
injectFailure :: BabbageUtxowPredFailure DijkstraEra
-> EraRuleFailure "LEDGER" DijkstraEra
injectFailure = PredicateFailure (EraRule "UTXOW" DijkstraEra)
-> DijkstraLedgerPredFailure DijkstraEra
DijkstraUtxowPredFailure DijkstraEra
-> DijkstraLedgerPredFailure DijkstraEra
forall era.
PredicateFailure (EraRule "UTXOW" era)
-> DijkstraLedgerPredFailure era
DijkstraUtxowFailure (DijkstraUtxowPredFailure DijkstraEra
-> DijkstraLedgerPredFailure DijkstraEra)
-> (BabbageUtxowPredFailure DijkstraEra
-> DijkstraUtxowPredFailure DijkstraEra)
-> BabbageUtxowPredFailure DijkstraEra
-> DijkstraLedgerPredFailure DijkstraEra
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BabbageUtxowPredFailure DijkstraEra
-> EraRuleFailure "UTXOW" DijkstraEra
BabbageUtxowPredFailure DijkstraEra
-> DijkstraUtxowPredFailure DijkstraEra
forall (rule :: Symbol) (t :: * -> *) era.
InjectRuleFailure rule t era =>
t era -> EraRuleFailure rule era
injectFailure
instance InjectRuleFailure "LEDGER" AlonzoUtxowPredFailure DijkstraEra where
injectFailure :: AlonzoUtxowPredFailure DijkstraEra
-> EraRuleFailure "LEDGER" DijkstraEra
injectFailure = PredicateFailure (EraRule "UTXOW" DijkstraEra)
-> DijkstraLedgerPredFailure DijkstraEra
DijkstraUtxowPredFailure DijkstraEra
-> DijkstraLedgerPredFailure DijkstraEra
forall era.
PredicateFailure (EraRule "UTXOW" era)
-> DijkstraLedgerPredFailure era
DijkstraUtxowFailure (DijkstraUtxowPredFailure DijkstraEra
-> DijkstraLedgerPredFailure DijkstraEra)
-> (AlonzoUtxowPredFailure DijkstraEra
-> DijkstraUtxowPredFailure DijkstraEra)
-> AlonzoUtxowPredFailure DijkstraEra
-> DijkstraLedgerPredFailure DijkstraEra
forall b c a. (b -> c) -> (a -> b) -> a -> c
. AlonzoUtxowPredFailure DijkstraEra
-> EraRuleFailure "UTXOW" DijkstraEra
AlonzoUtxowPredFailure DijkstraEra
-> DijkstraUtxowPredFailure DijkstraEra
forall (rule :: Symbol) (t :: * -> *) era.
InjectRuleFailure rule t era =>
t era -> EraRuleFailure rule era
injectFailure
instance InjectRuleFailure "LEDGER" ShelleyUtxowPredFailure DijkstraEra where
injectFailure :: ShelleyUtxowPredFailure DijkstraEra
-> EraRuleFailure "LEDGER" DijkstraEra
injectFailure = PredicateFailure (EraRule "UTXOW" DijkstraEra)
-> DijkstraLedgerPredFailure DijkstraEra
DijkstraUtxowPredFailure DijkstraEra
-> DijkstraLedgerPredFailure DijkstraEra
forall era.
PredicateFailure (EraRule "UTXOW" era)
-> DijkstraLedgerPredFailure era
DijkstraUtxowFailure (DijkstraUtxowPredFailure DijkstraEra
-> DijkstraLedgerPredFailure DijkstraEra)
-> (ShelleyUtxowPredFailure DijkstraEra
-> DijkstraUtxowPredFailure DijkstraEra)
-> ShelleyUtxowPredFailure DijkstraEra
-> DijkstraLedgerPredFailure DijkstraEra
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ShelleyUtxowPredFailure DijkstraEra
-> EraRuleFailure "UTXOW" DijkstraEra
ShelleyUtxowPredFailure DijkstraEra
-> DijkstraUtxowPredFailure DijkstraEra
forall (rule :: Symbol) (t :: * -> *) era.
InjectRuleFailure rule t era =>
t era -> EraRuleFailure rule era
injectFailure
instance InjectRuleFailure "LEDGER" DijkstraUtxoPredFailure DijkstraEra where
injectFailure :: DijkstraUtxoPredFailure DijkstraEra
-> EraRuleFailure "LEDGER" DijkstraEra
injectFailure = PredicateFailure (EraRule "UTXOW" DijkstraEra)
-> DijkstraLedgerPredFailure DijkstraEra
DijkstraUtxowPredFailure DijkstraEra
-> DijkstraLedgerPredFailure DijkstraEra
forall era.
PredicateFailure (EraRule "UTXOW" era)
-> DijkstraLedgerPredFailure era
DijkstraUtxowFailure (DijkstraUtxowPredFailure DijkstraEra
-> DijkstraLedgerPredFailure DijkstraEra)
-> (DijkstraUtxoPredFailure DijkstraEra
-> DijkstraUtxowPredFailure DijkstraEra)
-> DijkstraUtxoPredFailure DijkstraEra
-> DijkstraLedgerPredFailure DijkstraEra
forall b c a. (b -> c) -> (a -> b) -> a -> c
. DijkstraUtxoPredFailure DijkstraEra
-> EraRuleFailure "UTXOW" DijkstraEra
DijkstraUtxoPredFailure DijkstraEra
-> DijkstraUtxowPredFailure DijkstraEra
forall (rule :: Symbol) (t :: * -> *) era.
InjectRuleFailure rule t era =>
t era -> EraRuleFailure rule era
injectFailure
instance InjectRuleFailure "LEDGER" ConwayUtxoPredFailure DijkstraEra where
injectFailure :: ConwayUtxoPredFailure DijkstraEra
-> EraRuleFailure "LEDGER" DijkstraEra
injectFailure = PredicateFailure (EraRule "UTXOW" DijkstraEra)
-> DijkstraLedgerPredFailure DijkstraEra
DijkstraUtxowPredFailure DijkstraEra
-> DijkstraLedgerPredFailure DijkstraEra
forall era.
PredicateFailure (EraRule "UTXOW" era)
-> DijkstraLedgerPredFailure era
DijkstraUtxowFailure (DijkstraUtxowPredFailure DijkstraEra
-> DijkstraLedgerPredFailure DijkstraEra)
-> (ConwayUtxoPredFailure DijkstraEra
-> DijkstraUtxowPredFailure DijkstraEra)
-> ConwayUtxoPredFailure DijkstraEra
-> DijkstraLedgerPredFailure DijkstraEra
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ConwayUtxoPredFailure DijkstraEra
-> EraRuleFailure "UTXOW" DijkstraEra
ConwayUtxoPredFailure DijkstraEra
-> DijkstraUtxowPredFailure DijkstraEra
forall (rule :: Symbol) (t :: * -> *) era.
InjectRuleFailure rule t era =>
t era -> EraRuleFailure rule era
injectFailure
instance InjectRuleFailure "LEDGER" BabbageUtxoPredFailure DijkstraEra where
injectFailure :: BabbageUtxoPredFailure DijkstraEra
-> EraRuleFailure "LEDGER" DijkstraEra
injectFailure = PredicateFailure (EraRule "UTXOW" DijkstraEra)
-> DijkstraLedgerPredFailure DijkstraEra
DijkstraUtxowPredFailure DijkstraEra
-> DijkstraLedgerPredFailure DijkstraEra
forall era.
PredicateFailure (EraRule "UTXOW" era)
-> DijkstraLedgerPredFailure era
DijkstraUtxowFailure (DijkstraUtxowPredFailure DijkstraEra
-> DijkstraLedgerPredFailure DijkstraEra)
-> (BabbageUtxoPredFailure DijkstraEra
-> DijkstraUtxowPredFailure DijkstraEra)
-> BabbageUtxoPredFailure DijkstraEra
-> DijkstraLedgerPredFailure DijkstraEra
forall b c a. (b -> c) -> (a -> b) -> a -> c
. BabbageUtxoPredFailure DijkstraEra
-> EraRuleFailure "UTXOW" DijkstraEra
BabbageUtxoPredFailure DijkstraEra
-> DijkstraUtxowPredFailure DijkstraEra
forall (rule :: Symbol) (t :: * -> *) era.
InjectRuleFailure rule t era =>
t era -> EraRuleFailure rule era
injectFailure
instance InjectRuleFailure "LEDGER" AlonzoUtxoPredFailure DijkstraEra where
injectFailure :: AlonzoUtxoPredFailure DijkstraEra
-> EraRuleFailure "LEDGER" DijkstraEra
injectFailure = PredicateFailure (EraRule "UTXOW" DijkstraEra)
-> DijkstraLedgerPredFailure DijkstraEra
DijkstraUtxowPredFailure DijkstraEra
-> DijkstraLedgerPredFailure DijkstraEra
forall era.
PredicateFailure (EraRule "UTXOW" era)
-> DijkstraLedgerPredFailure era
DijkstraUtxowFailure (DijkstraUtxowPredFailure DijkstraEra
-> DijkstraLedgerPredFailure DijkstraEra)
-> (AlonzoUtxoPredFailure DijkstraEra
-> DijkstraUtxowPredFailure DijkstraEra)
-> AlonzoUtxoPredFailure DijkstraEra
-> DijkstraLedgerPredFailure DijkstraEra
forall b c a. (b -> c) -> (a -> b) -> a -> c
. AlonzoUtxoPredFailure DijkstraEra
-> EraRuleFailure "UTXOW" DijkstraEra
AlonzoUtxoPredFailure DijkstraEra
-> DijkstraUtxowPredFailure DijkstraEra
forall (rule :: Symbol) (t :: * -> *) era.
InjectRuleFailure rule t era =>
t era -> EraRuleFailure rule era
injectFailure
instance InjectRuleFailure "LEDGER" AlonzoUtxosPredFailure DijkstraEra where
injectFailure :: AlonzoUtxosPredFailure DijkstraEra
-> EraRuleFailure "LEDGER" DijkstraEra
injectFailure = PredicateFailure (EraRule "UTXOW" DijkstraEra)
-> DijkstraLedgerPredFailure DijkstraEra
DijkstraUtxowPredFailure DijkstraEra
-> DijkstraLedgerPredFailure DijkstraEra
forall era.
PredicateFailure (EraRule "UTXOW" era)
-> DijkstraLedgerPredFailure era
DijkstraUtxowFailure (DijkstraUtxowPredFailure DijkstraEra
-> DijkstraLedgerPredFailure DijkstraEra)
-> (AlonzoUtxosPredFailure DijkstraEra
-> DijkstraUtxowPredFailure DijkstraEra)
-> AlonzoUtxosPredFailure DijkstraEra
-> DijkstraLedgerPredFailure DijkstraEra
forall b c a. (b -> c) -> (a -> b) -> a -> c
. AlonzoUtxosPredFailure DijkstraEra
-> EraRuleFailure "UTXOW" DijkstraEra
AlonzoUtxosPredFailure DijkstraEra
-> DijkstraUtxowPredFailure DijkstraEra
forall (rule :: Symbol) (t :: * -> *) era.
InjectRuleFailure rule t era =>
t era -> EraRuleFailure rule era
injectFailure
instance InjectRuleFailure "LEDGER" ConwayUtxosPredFailure DijkstraEra where
injectFailure :: ConwayUtxosPredFailure DijkstraEra
-> EraRuleFailure "LEDGER" DijkstraEra
injectFailure = PredicateFailure (EraRule "UTXOW" DijkstraEra)
-> DijkstraLedgerPredFailure DijkstraEra
DijkstraUtxowPredFailure DijkstraEra
-> DijkstraLedgerPredFailure DijkstraEra
forall era.
PredicateFailure (EraRule "UTXOW" era)
-> DijkstraLedgerPredFailure era
DijkstraUtxowFailure (DijkstraUtxowPredFailure DijkstraEra
-> DijkstraLedgerPredFailure DijkstraEra)
-> (ConwayUtxosPredFailure DijkstraEra
-> DijkstraUtxowPredFailure DijkstraEra)
-> ConwayUtxosPredFailure DijkstraEra
-> DijkstraLedgerPredFailure DijkstraEra
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ConwayUtxosPredFailure DijkstraEra
-> EraRuleFailure "UTXOW" DijkstraEra
ConwayUtxosPredFailure DijkstraEra
-> DijkstraUtxowPredFailure DijkstraEra
forall (rule :: Symbol) (t :: * -> *) era.
InjectRuleFailure rule t era =>
t era -> EraRuleFailure rule era
injectFailure
instance InjectRuleFailure "LEDGER" ShelleyUtxoPredFailure DijkstraEra where
injectFailure :: ShelleyUtxoPredFailure DijkstraEra
-> EraRuleFailure "LEDGER" DijkstraEra
injectFailure = PredicateFailure (EraRule "UTXOW" DijkstraEra)
-> DijkstraLedgerPredFailure DijkstraEra
DijkstraUtxowPredFailure DijkstraEra
-> DijkstraLedgerPredFailure DijkstraEra
forall era.
PredicateFailure (EraRule "UTXOW" era)
-> DijkstraLedgerPredFailure era
DijkstraUtxowFailure (DijkstraUtxowPredFailure DijkstraEra
-> DijkstraLedgerPredFailure DijkstraEra)
-> (ShelleyUtxoPredFailure DijkstraEra
-> DijkstraUtxowPredFailure DijkstraEra)
-> ShelleyUtxoPredFailure DijkstraEra
-> DijkstraLedgerPredFailure DijkstraEra
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ShelleyUtxoPredFailure DijkstraEra
-> EraRuleFailure "UTXOW" DijkstraEra
ShelleyUtxoPredFailure DijkstraEra
-> DijkstraUtxowPredFailure DijkstraEra
forall (rule :: Symbol) (t :: * -> *) era.
InjectRuleFailure rule t era =>
t era -> EraRuleFailure rule era
injectFailure
instance InjectRuleFailure "LEDGER" AllegraUtxoPredFailure DijkstraEra where
injectFailure :: AllegraUtxoPredFailure DijkstraEra
-> EraRuleFailure "LEDGER" DijkstraEra
injectFailure = PredicateFailure (EraRule "UTXOW" DijkstraEra)
-> DijkstraLedgerPredFailure DijkstraEra
DijkstraUtxowPredFailure DijkstraEra
-> DijkstraLedgerPredFailure DijkstraEra
forall era.
PredicateFailure (EraRule "UTXOW" era)
-> DijkstraLedgerPredFailure era
DijkstraUtxowFailure (DijkstraUtxowPredFailure DijkstraEra
-> DijkstraLedgerPredFailure DijkstraEra)
-> (AllegraUtxoPredFailure DijkstraEra
-> DijkstraUtxowPredFailure DijkstraEra)
-> AllegraUtxoPredFailure DijkstraEra
-> DijkstraLedgerPredFailure DijkstraEra
forall b c a. (b -> c) -> (a -> b) -> a -> c
. AllegraUtxoPredFailure DijkstraEra
-> EraRuleFailure "UTXOW" DijkstraEra
AllegraUtxoPredFailure DijkstraEra
-> DijkstraUtxowPredFailure DijkstraEra
forall (rule :: Symbol) (t :: * -> *) era.
InjectRuleFailure rule t era =>
t era -> EraRuleFailure rule era
injectFailure
instance InjectRuleFailure "LEDGER" ConwayCertsPredFailure DijkstraEra where
injectFailure :: ConwayCertsPredFailure DijkstraEra
-> EraRuleFailure "LEDGER" DijkstraEra
injectFailure = PredicateFailure (EraRule "CERTS" DijkstraEra)
-> DijkstraLedgerPredFailure DijkstraEra
ConwayCertsPredFailure DijkstraEra
-> EraRuleFailure "LEDGER" DijkstraEra
forall era.
PredicateFailure (EraRule "CERTS" era)
-> DijkstraLedgerPredFailure era
DijkstraCertsFailure
instance InjectRuleFailure "LEDGER" ConwayCertPredFailure DijkstraEra where
injectFailure :: ConwayCertPredFailure DijkstraEra
-> EraRuleFailure "LEDGER" DijkstraEra
injectFailure = PredicateFailure (EraRule "CERTS" DijkstraEra)
-> DijkstraLedgerPredFailure DijkstraEra
ConwayCertsPredFailure DijkstraEra
-> DijkstraLedgerPredFailure DijkstraEra
forall era.
PredicateFailure (EraRule "CERTS" era)
-> DijkstraLedgerPredFailure era
DijkstraCertsFailure (ConwayCertsPredFailure DijkstraEra
-> DijkstraLedgerPredFailure DijkstraEra)
-> (ConwayCertPredFailure DijkstraEra
-> ConwayCertsPredFailure DijkstraEra)
-> ConwayCertPredFailure DijkstraEra
-> DijkstraLedgerPredFailure DijkstraEra
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ConwayCertPredFailure DijkstraEra
-> EraRuleFailure "CERTS" DijkstraEra
ConwayCertPredFailure DijkstraEra
-> ConwayCertsPredFailure DijkstraEra
forall (rule :: Symbol) (t :: * -> *) era.
InjectRuleFailure rule t era =>
t era -> EraRuleFailure rule era
injectFailure
instance InjectRuleFailure "LEDGER" ConwayDelegPredFailure DijkstraEra where
injectFailure :: ConwayDelegPredFailure DijkstraEra
-> EraRuleFailure "LEDGER" DijkstraEra
injectFailure = PredicateFailure (EraRule "CERTS" DijkstraEra)
-> DijkstraLedgerPredFailure DijkstraEra
ConwayCertsPredFailure DijkstraEra
-> DijkstraLedgerPredFailure DijkstraEra
forall era.
PredicateFailure (EraRule "CERTS" era)
-> DijkstraLedgerPredFailure era
DijkstraCertsFailure (ConwayCertsPredFailure DijkstraEra
-> DijkstraLedgerPredFailure DijkstraEra)
-> (ConwayDelegPredFailure DijkstraEra
-> ConwayCertsPredFailure DijkstraEra)
-> ConwayDelegPredFailure DijkstraEra
-> DijkstraLedgerPredFailure DijkstraEra
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ConwayDelegPredFailure DijkstraEra
-> EraRuleFailure "CERTS" DijkstraEra
ConwayDelegPredFailure DijkstraEra
-> ConwayCertsPredFailure DijkstraEra
forall (rule :: Symbol) (t :: * -> *) era.
InjectRuleFailure rule t era =>
t era -> EraRuleFailure rule era
injectFailure
instance InjectRuleFailure "LEDGER" ShelleyPoolPredFailure DijkstraEra where
injectFailure :: ShelleyPoolPredFailure DijkstraEra
-> EraRuleFailure "LEDGER" DijkstraEra
injectFailure = PredicateFailure (EraRule "CERTS" DijkstraEra)
-> DijkstraLedgerPredFailure DijkstraEra
ConwayCertsPredFailure DijkstraEra
-> DijkstraLedgerPredFailure DijkstraEra
forall era.
PredicateFailure (EraRule "CERTS" era)
-> DijkstraLedgerPredFailure era
DijkstraCertsFailure (ConwayCertsPredFailure DijkstraEra
-> DijkstraLedgerPredFailure DijkstraEra)
-> (ShelleyPoolPredFailure DijkstraEra
-> ConwayCertsPredFailure DijkstraEra)
-> ShelleyPoolPredFailure DijkstraEra
-> DijkstraLedgerPredFailure DijkstraEra
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ShelleyPoolPredFailure DijkstraEra
-> EraRuleFailure "CERTS" DijkstraEra
ShelleyPoolPredFailure DijkstraEra
-> ConwayCertsPredFailure DijkstraEra
forall (rule :: Symbol) (t :: * -> *) era.
InjectRuleFailure rule t era =>
t era -> EraRuleFailure rule era
injectFailure
instance InjectRuleFailure "LEDGER" DijkstraGovCertPredFailure DijkstraEra where
injectFailure :: DijkstraGovCertPredFailure DijkstraEra
-> EraRuleFailure "LEDGER" DijkstraEra
injectFailure = PredicateFailure (EraRule "CERTS" DijkstraEra)
-> DijkstraLedgerPredFailure DijkstraEra
ConwayCertsPredFailure DijkstraEra
-> DijkstraLedgerPredFailure DijkstraEra
forall era.
PredicateFailure (EraRule "CERTS" era)
-> DijkstraLedgerPredFailure era
DijkstraCertsFailure (ConwayCertsPredFailure DijkstraEra
-> DijkstraLedgerPredFailure DijkstraEra)
-> (DijkstraGovCertPredFailure DijkstraEra
-> ConwayCertsPredFailure DijkstraEra)
-> DijkstraGovCertPredFailure DijkstraEra
-> DijkstraLedgerPredFailure DijkstraEra
forall b c a. (b -> c) -> (a -> b) -> a -> c
. DijkstraGovCertPredFailure DijkstraEra
-> EraRuleFailure "CERTS" DijkstraEra
DijkstraGovCertPredFailure DijkstraEra
-> ConwayCertsPredFailure DijkstraEra
forall (rule :: Symbol) (t :: * -> *) era.
InjectRuleFailure rule t era =>
t era -> EraRuleFailure rule era
injectFailure
instance InjectRuleFailure "LEDGER" DijkstraGovPredFailure DijkstraEra where
injectFailure :: DijkstraGovPredFailure DijkstraEra
-> EraRuleFailure "LEDGER" DijkstraEra
injectFailure = PredicateFailure (EraRule "GOV" DijkstraEra)
-> DijkstraLedgerPredFailure DijkstraEra
DijkstraGovPredFailure DijkstraEra
-> DijkstraLedgerPredFailure DijkstraEra
forall era.
PredicateFailure (EraRule "GOV" era)
-> DijkstraLedgerPredFailure era
DijkstraGovFailure (DijkstraGovPredFailure DijkstraEra
-> DijkstraLedgerPredFailure DijkstraEra)
-> (DijkstraGovPredFailure DijkstraEra
-> DijkstraGovPredFailure DijkstraEra)
-> DijkstraGovPredFailure DijkstraEra
-> DijkstraLedgerPredFailure DijkstraEra
forall b c a. (b -> c) -> (a -> b) -> a -> c
. DijkstraGovPredFailure DijkstraEra
-> EraRuleFailure "GOV" DijkstraEra
DijkstraGovPredFailure DijkstraEra
-> DijkstraGovPredFailure DijkstraEra
forall (rule :: Symbol) (t :: * -> *) era.
InjectRuleFailure rule t era =>
t era -> EraRuleFailure rule era
injectFailure
instance InjectRuleFailure "LEDGER" ConwayGovCertPredFailure DijkstraEra where
injectFailure :: ConwayGovCertPredFailure DijkstraEra
-> EraRuleFailure "LEDGER" DijkstraEra
injectFailure = PredicateFailure (EraRule "CERTS" DijkstraEra)
-> DijkstraLedgerPredFailure DijkstraEra
ConwayCertsPredFailure DijkstraEra
-> DijkstraLedgerPredFailure DijkstraEra
forall era.
PredicateFailure (EraRule "CERTS" era)
-> DijkstraLedgerPredFailure era
DijkstraCertsFailure (ConwayCertsPredFailure DijkstraEra
-> DijkstraLedgerPredFailure DijkstraEra)
-> (ConwayGovCertPredFailure DijkstraEra
-> ConwayCertsPredFailure DijkstraEra)
-> ConwayGovCertPredFailure DijkstraEra
-> DijkstraLedgerPredFailure DijkstraEra
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ConwayGovCertPredFailure DijkstraEra
-> EraRuleFailure "CERTS" DijkstraEra
ConwayGovCertPredFailure DijkstraEra
-> ConwayCertsPredFailure DijkstraEra
forall (rule :: Symbol) (t :: * -> *) era.
InjectRuleFailure rule t era =>
t era -> EraRuleFailure rule era
injectFailure
instance InjectRuleFailure "LEDGER" ConwayGovPredFailure DijkstraEra where
injectFailure :: ConwayGovPredFailure DijkstraEra
-> EraRuleFailure "LEDGER" DijkstraEra
injectFailure = PredicateFailure (EraRule "GOV" DijkstraEra)
-> DijkstraLedgerPredFailure DijkstraEra
DijkstraGovPredFailure DijkstraEra
-> DijkstraLedgerPredFailure DijkstraEra
forall era.
PredicateFailure (EraRule "GOV" era)
-> DijkstraLedgerPredFailure era
DijkstraGovFailure (DijkstraGovPredFailure DijkstraEra
-> DijkstraLedgerPredFailure DijkstraEra)
-> (ConwayGovPredFailure DijkstraEra
-> DijkstraGovPredFailure DijkstraEra)
-> ConwayGovPredFailure DijkstraEra
-> DijkstraLedgerPredFailure DijkstraEra
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ConwayGovPredFailure DijkstraEra
-> EraRuleFailure "GOV" DijkstraEra
ConwayGovPredFailure DijkstraEra
-> DijkstraGovPredFailure DijkstraEra
forall (rule :: Symbol) (t :: * -> *) era.
InjectRuleFailure rule t era =>
t era -> EraRuleFailure rule era
injectFailure
instance InjectRuleFailure "LEDGER" DijkstraSubLedgersPredFailure DijkstraEra where
injectFailure :: DijkstraSubLedgersPredFailure DijkstraEra
-> EraRuleFailure "LEDGER" DijkstraEra
injectFailure = PredicateFailure (EraRule "SUBLEDGERS" DijkstraEra)
-> DijkstraLedgerPredFailure DijkstraEra
DijkstraSubLedgersPredFailure DijkstraEra
-> DijkstraLedgerPredFailure DijkstraEra
forall era.
PredicateFailure (EraRule "SUBLEDGERS" era)
-> DijkstraLedgerPredFailure era
DijkstraSubLedgersFailure (DijkstraSubLedgersPredFailure DijkstraEra
-> DijkstraLedgerPredFailure DijkstraEra)
-> (DijkstraSubLedgersPredFailure DijkstraEra
-> DijkstraSubLedgersPredFailure DijkstraEra)
-> DijkstraSubLedgersPredFailure DijkstraEra
-> DijkstraLedgerPredFailure DijkstraEra
forall b c a. (b -> c) -> (a -> b) -> a -> c
. DijkstraSubLedgersPredFailure DijkstraEra
-> EraRuleFailure "SUBLEDGERS" DijkstraEra
DijkstraSubLedgersPredFailure DijkstraEra
-> DijkstraSubLedgersPredFailure DijkstraEra
forall (rule :: Symbol) (t :: * -> *) era.
InjectRuleFailure rule t era =>
t era -> EraRuleFailure rule era
injectFailure
deriving instance
( Era era
, Eq (PredicateFailure (EraRule "UTXOW" era))
, Eq (PredicateFailure (EraRule "CERTS" era))
, Eq (PredicateFailure (EraRule "GOV" era))
, Eq (PredicateFailure (EraRule "SUBLEDGERS" era))
) =>
Eq (DijkstraLedgerPredFailure era)
deriving instance
( Era era
, Show (PredicateFailure (EraRule "UTXOW" era))
, Show (PredicateFailure (EraRule "CERTS" era))
, Show (PredicateFailure (EraRule "GOV" era))
, Show (PredicateFailure (EraRule "SUBLEDGERS" era))
) =>
Show (DijkstraLedgerPredFailure era)
instance
( Era era
, NoThunks (PredicateFailure (EraRule "UTXOW" era))
, NoThunks (PredicateFailure (EraRule "CERTS" era))
, NoThunks (PredicateFailure (EraRule "GOV" era))
, NoThunks (PredicateFailure (EraRule "SUBLEDGERS" era))
) =>
NoThunks (DijkstraLedgerPredFailure era)
instance
( Era era
, NFData (PredicateFailure (EraRule "UTXOW" era))
, NFData (PredicateFailure (EraRule "CERTS" era))
, NFData (PredicateFailure (EraRule "GOV" era))
, NFData (PredicateFailure (EraRule "SUBLEDGERS" era))
) =>
NFData (DijkstraLedgerPredFailure era)
instance
( Era era
, EncCBOR (PredicateFailure (EraRule "UTXOW" era))
, EncCBOR (PredicateFailure (EraRule "CERTS" era))
, EncCBOR (PredicateFailure (EraRule "GOV" era))
, EncCBOR (PredicateFailure (EraRule "SUBLEDGERS" era))
) =>
EncCBOR (DijkstraLedgerPredFailure era)
where
encCBOR :: DijkstraLedgerPredFailure era -> Encoding
encCBOR =
Encode Open (DijkstraLedgerPredFailure era) -> Encoding
forall (w :: Wrapped) t. Encode w t -> Encoding
encode (Encode Open (DijkstraLedgerPredFailure era) -> Encoding)
-> (DijkstraLedgerPredFailure era
-> Encode Open (DijkstraLedgerPredFailure era))
-> DijkstraLedgerPredFailure era
-> Encoding
forall b c a. (b -> c) -> (a -> b) -> a -> c
. \case
DijkstraUtxowFailure PredicateFailure (EraRule "UTXOW" era)
x -> (PredicateFailure (EraRule "UTXOW" era)
-> DijkstraLedgerPredFailure era)
-> Word
-> Encode
Open
(PredicateFailure (EraRule "UTXOW" era)
-> DijkstraLedgerPredFailure era)
forall t. t -> Word -> Encode Open t
Sum (forall era.
PredicateFailure (EraRule "UTXOW" era)
-> DijkstraLedgerPredFailure era
DijkstraUtxowFailure @era) Word
1 Encode
Open
(PredicateFailure (EraRule "UTXOW" era)
-> DijkstraLedgerPredFailure era)
-> Encode (Closed Dense) (PredicateFailure (EraRule "UTXOW" era))
-> Encode Open (DijkstraLedgerPredFailure era)
forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode (Closed r) a -> Encode w t
!> PredicateFailure (EraRule "UTXOW" era)
-> Encode (Closed Dense) (PredicateFailure (EraRule "UTXOW" era))
forall t. EncCBOR t => t -> Encode (Closed Dense) t
To PredicateFailure (EraRule "UTXOW" era)
x
DijkstraCertsFailure PredicateFailure (EraRule "CERTS" era)
x -> (PredicateFailure (EraRule "CERTS" era)
-> DijkstraLedgerPredFailure era)
-> Word
-> Encode
Open
(PredicateFailure (EraRule "CERTS" era)
-> DijkstraLedgerPredFailure era)
forall t. t -> Word -> Encode Open t
Sum (forall era.
PredicateFailure (EraRule "CERTS" era)
-> DijkstraLedgerPredFailure era
DijkstraCertsFailure @era) Word
2 Encode
Open
(PredicateFailure (EraRule "CERTS" era)
-> DijkstraLedgerPredFailure era)
-> Encode (Closed Dense) (PredicateFailure (EraRule "CERTS" era))
-> Encode Open (DijkstraLedgerPredFailure era)
forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode (Closed r) a -> Encode w t
!> PredicateFailure (EraRule "CERTS" era)
-> Encode (Closed Dense) (PredicateFailure (EraRule "CERTS" era))
forall t. EncCBOR t => t -> Encode (Closed Dense) t
To PredicateFailure (EraRule "CERTS" era)
x
DijkstraGovFailure PredicateFailure (EraRule "GOV" era)
x -> (PredicateFailure (EraRule "GOV" era)
-> DijkstraLedgerPredFailure era)
-> Word
-> Encode
Open
(PredicateFailure (EraRule "GOV" era)
-> DijkstraLedgerPredFailure era)
forall t. t -> Word -> Encode Open t
Sum (forall era.
PredicateFailure (EraRule "GOV" era)
-> DijkstraLedgerPredFailure era
DijkstraGovFailure @era) Word
3 Encode
Open
(PredicateFailure (EraRule "GOV" era)
-> DijkstraLedgerPredFailure era)
-> Encode (Closed Dense) (PredicateFailure (EraRule "GOV" era))
-> Encode Open (DijkstraLedgerPredFailure era)
forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode (Closed r) a -> Encode w t
!> PredicateFailure (EraRule "GOV" era)
-> Encode (Closed Dense) (PredicateFailure (EraRule "GOV" era))
forall t. EncCBOR t => t -> Encode (Closed Dense) t
To PredicateFailure (EraRule "GOV" era)
x
DijkstraWdrlNotDelegatedToDRep NonEmpty (KeyHash Staking)
x -> (NonEmpty (KeyHash Staking) -> DijkstraLedgerPredFailure era)
-> Word
-> Encode
Open (NonEmpty (KeyHash Staking) -> DijkstraLedgerPredFailure era)
forall t. t -> Word -> Encode Open t
Sum (forall era.
NonEmpty (KeyHash Staking) -> DijkstraLedgerPredFailure era
DijkstraWdrlNotDelegatedToDRep @era) Word
4 Encode
Open (NonEmpty (KeyHash Staking) -> DijkstraLedgerPredFailure era)
-> Encode (Closed Dense) (NonEmpty (KeyHash Staking))
-> Encode Open (DijkstraLedgerPredFailure era)
forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode (Closed r) a -> Encode w t
!> NonEmpty (KeyHash Staking)
-> Encode (Closed Dense) (NonEmpty (KeyHash Staking))
forall t. EncCBOR t => t -> Encode (Closed Dense) t
To NonEmpty (KeyHash Staking)
x
DijkstraTreasuryValueMismatch Mismatch RelEQ Coin
mm -> (Mismatch RelEQ Coin -> DijkstraLedgerPredFailure era)
-> Word
-> Encode
Open (Mismatch RelEQ Coin -> DijkstraLedgerPredFailure era)
forall t. t -> Word -> Encode Open t
Sum (forall era. Mismatch RelEQ Coin -> DijkstraLedgerPredFailure era
DijkstraTreasuryValueMismatch @era) Word
5 Encode Open (Mismatch RelEQ Coin -> DijkstraLedgerPredFailure era)
-> Encode (Closed Dense) (Mismatch RelEQ Coin)
-> Encode Open (DijkstraLedgerPredFailure era)
forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode (Closed r) a -> Encode w t
!> Mismatch RelEQ Coin -> Encode (Closed Dense) (Mismatch RelEQ Coin)
forall t. EncCBOR t => t -> Encode (Closed Dense) t
To Mismatch RelEQ Coin
mm
DijkstraTxRefScriptsSizeTooBig Mismatch RelLTEQ Int
mm -> (Mismatch RelLTEQ Int -> DijkstraLedgerPredFailure era)
-> Word
-> Encode
Open (Mismatch RelLTEQ Int -> DijkstraLedgerPredFailure era)
forall t. t -> Word -> Encode Open t
Sum Mismatch RelLTEQ Int -> DijkstraLedgerPredFailure era
forall era. Mismatch RelLTEQ Int -> DijkstraLedgerPredFailure era
DijkstraTxRefScriptsSizeTooBig Word
6 Encode Open (Mismatch RelLTEQ Int -> DijkstraLedgerPredFailure era)
-> Encode (Closed Dense) (Mismatch RelLTEQ Int)
-> Encode Open (DijkstraLedgerPredFailure era)
forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode (Closed r) a -> Encode w t
!> Mismatch RelLTEQ Int
-> Encode (Closed Dense) (Mismatch RelLTEQ Int)
forall t. EncCBOR t => t -> Encode (Closed Dense) t
To Mismatch RelLTEQ Int
mm
DijkstraWithdrawalsMissingAccounts Withdrawals
w -> (Withdrawals -> DijkstraLedgerPredFailure era)
-> Word
-> Encode Open (Withdrawals -> DijkstraLedgerPredFailure era)
forall t. t -> Word -> Encode Open t
Sum Withdrawals -> DijkstraLedgerPredFailure era
forall era. Withdrawals -> DijkstraLedgerPredFailure era
DijkstraWithdrawalsMissingAccounts Word
7 Encode Open (Withdrawals -> DijkstraLedgerPredFailure era)
-> Encode (Closed Dense) Withdrawals
-> Encode Open (DijkstraLedgerPredFailure era)
forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode (Closed r) a -> Encode w t
!> Withdrawals -> Encode (Closed Dense) Withdrawals
forall t. EncCBOR t => t -> Encode (Closed Dense) t
To Withdrawals
w
DijkstraIncompleteWithdrawals NonEmptyMap AccountAddress (Mismatch RelEQ Coin)
w -> (NonEmptyMap AccountAddress (Mismatch RelEQ Coin)
-> DijkstraLedgerPredFailure era)
-> Word
-> Encode
Open
(NonEmptyMap AccountAddress (Mismatch RelEQ Coin)
-> DijkstraLedgerPredFailure era)
forall t. t -> Word -> Encode Open t
Sum NonEmptyMap AccountAddress (Mismatch RelEQ Coin)
-> DijkstraLedgerPredFailure era
forall era.
NonEmptyMap AccountAddress (Mismatch RelEQ Coin)
-> DijkstraLedgerPredFailure era
DijkstraIncompleteWithdrawals Word
8 Encode
Open
(NonEmptyMap AccountAddress (Mismatch RelEQ Coin)
-> DijkstraLedgerPredFailure era)
-> Encode
(Closed Dense) (NonEmptyMap AccountAddress (Mismatch RelEQ Coin))
-> Encode Open (DijkstraLedgerPredFailure era)
forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode (Closed r) a -> Encode w t
!> NonEmptyMap AccountAddress (Mismatch RelEQ Coin)
-> Encode
(Closed Dense) (NonEmptyMap AccountAddress (Mismatch RelEQ Coin))
forall t. EncCBOR t => t -> Encode (Closed Dense) t
To NonEmptyMap AccountAddress (Mismatch RelEQ Coin)
w
DijkstraSubLedgersFailure PredicateFailure (EraRule "SUBLEDGERS" era)
w -> (PredicateFailure (EraRule "SUBLEDGERS" era)
-> DijkstraLedgerPredFailure era)
-> Word
-> Encode
Open
(PredicateFailure (EraRule "SUBLEDGERS" era)
-> DijkstraLedgerPredFailure era)
forall t. t -> Word -> Encode Open t
Sum PredicateFailure (EraRule "SUBLEDGERS" era)
-> DijkstraLedgerPredFailure era
forall era.
PredicateFailure (EraRule "SUBLEDGERS" era)
-> DijkstraLedgerPredFailure era
DijkstraSubLedgersFailure Word
9 Encode
Open
(PredicateFailure (EraRule "SUBLEDGERS" era)
-> DijkstraLedgerPredFailure era)
-> Encode
(Closed Dense) (PredicateFailure (EraRule "SUBLEDGERS" era))
-> Encode Open (DijkstraLedgerPredFailure era)
forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode (Closed r) a -> Encode w t
!> PredicateFailure (EraRule "SUBLEDGERS" era)
-> Encode
(Closed Dense) (PredicateFailure (EraRule "SUBLEDGERS" era))
forall t. EncCBOR t => t -> Encode (Closed Dense) t
To PredicateFailure (EraRule "SUBLEDGERS" era)
w
DijkstraSpendingOutputFromSameTx NonEmptyMap TxId (NonEmptySet TxIn)
txIds -> (NonEmptyMap TxId (NonEmptySet TxIn)
-> DijkstraLedgerPredFailure era)
-> Word
-> Encode
Open
(NonEmptyMap TxId (NonEmptySet TxIn)
-> DijkstraLedgerPredFailure era)
forall t. t -> Word -> Encode Open t
Sum NonEmptyMap TxId (NonEmptySet TxIn)
-> DijkstraLedgerPredFailure era
forall era.
NonEmptyMap TxId (NonEmptySet TxIn)
-> DijkstraLedgerPredFailure era
DijkstraSpendingOutputFromSameTx Word
10 Encode
Open
(NonEmptyMap TxId (NonEmptySet TxIn)
-> DijkstraLedgerPredFailure era)
-> Encode (Closed Dense) (NonEmptyMap TxId (NonEmptySet TxIn))
-> Encode Open (DijkstraLedgerPredFailure era)
forall (w :: Wrapped) a t (r :: Density).
Encode w (a -> t) -> Encode (Closed r) a -> Encode w t
!> NonEmptyMap TxId (NonEmptySet TxIn)
-> Encode (Closed Dense) (NonEmptyMap TxId (NonEmptySet TxIn))
forall t. EncCBOR t => t -> Encode (Closed Dense) t
To NonEmptyMap TxId (NonEmptySet TxIn)
txIds
instance
( Era era
, DecCBOR (PredicateFailure (EraRule "UTXOW" era))
, DecCBOR (PredicateFailure (EraRule "CERTS" era))
, DecCBOR (PredicateFailure (EraRule "GOV" era))
, DecCBOR (PredicateFailure (EraRule "SUBLEDGERS" era))
) =>
DecCBOR (DijkstraLedgerPredFailure era)
where
decCBOR :: forall s. Decoder s (DijkstraLedgerPredFailure era)
decCBOR = Decode (Closed Dense) (DijkstraLedgerPredFailure era)
-> Decoder s (DijkstraLedgerPredFailure era)
forall t (w :: Wrapped) s. Typeable t => Decode w t -> Decoder s t
decode (Decode (Closed Dense) (DijkstraLedgerPredFailure era)
-> Decoder s (DijkstraLedgerPredFailure era))
-> ((Word -> Decode Open (DijkstraLedgerPredFailure era))
-> Decode (Closed Dense) (DijkstraLedgerPredFailure era))
-> (Word -> Decode Open (DijkstraLedgerPredFailure era))
-> Decoder s (DijkstraLedgerPredFailure era)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Text
-> (Word -> Decode Open (DijkstraLedgerPredFailure era))
-> Decode (Closed Dense) (DijkstraLedgerPredFailure era)
forall t.
Text -> (Word -> Decode Open t) -> Decode (Closed Dense) t
Summands Text
"DijkstraLedgerPredFailure" ((Word -> Decode Open (DijkstraLedgerPredFailure era))
-> Decoder s (DijkstraLedgerPredFailure era))
-> (Word -> Decode Open (DijkstraLedgerPredFailure era))
-> Decoder s (DijkstraLedgerPredFailure era)
forall a b. (a -> b) -> a -> b
$ \case
Word
1 -> (PredicateFailure (EraRule "UTXOW" era)
-> DijkstraLedgerPredFailure era)
-> Decode
Open
(PredicateFailure (EraRule "UTXOW" era)
-> DijkstraLedgerPredFailure era)
forall t. t -> Decode Open t
SumD PredicateFailure (EraRule "UTXOW" era)
-> DijkstraLedgerPredFailure era
forall era.
PredicateFailure (EraRule "UTXOW" era)
-> DijkstraLedgerPredFailure era
DijkstraUtxowFailure Decode
Open
(PredicateFailure (EraRule "UTXOW" era)
-> DijkstraLedgerPredFailure era)
-> Decode
(Closed (ZonkAny 0)) (PredicateFailure (EraRule "UTXOW" era))
-> Decode Open (DijkstraLedgerPredFailure 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 "UTXOW" era))
forall t (w :: Wrapped). DecCBOR t => Decode w t
From
Word
2 -> (PredicateFailure (EraRule "CERTS" era)
-> DijkstraLedgerPredFailure era)
-> Decode
Open
(PredicateFailure (EraRule "CERTS" era)
-> DijkstraLedgerPredFailure era)
forall t. t -> Decode Open t
SumD PredicateFailure (EraRule "CERTS" era)
-> DijkstraLedgerPredFailure era
forall era.
PredicateFailure (EraRule "CERTS" era)
-> DijkstraLedgerPredFailure era
DijkstraCertsFailure Decode
Open
(PredicateFailure (EraRule "CERTS" era)
-> DijkstraLedgerPredFailure era)
-> Decode
(Closed (ZonkAny 1)) (PredicateFailure (EraRule "CERTS" era))
-> Decode Open (DijkstraLedgerPredFailure 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)) (PredicateFailure (EraRule "CERTS" era))
forall t (w :: Wrapped). DecCBOR t => Decode w t
From
Word
3 -> (PredicateFailure (EraRule "GOV" era)
-> DijkstraLedgerPredFailure era)
-> Decode
Open
(PredicateFailure (EraRule "GOV" era)
-> DijkstraLedgerPredFailure era)
forall t. t -> Decode Open t
SumD PredicateFailure (EraRule "GOV" era)
-> DijkstraLedgerPredFailure era
forall era.
PredicateFailure (EraRule "GOV" era)
-> DijkstraLedgerPredFailure era
DijkstraGovFailure Decode
Open
(PredicateFailure (EraRule "GOV" era)
-> DijkstraLedgerPredFailure era)
-> Decode
(Closed (ZonkAny 2)) (PredicateFailure (EraRule "GOV" era))
-> Decode Open (DijkstraLedgerPredFailure 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)) (PredicateFailure (EraRule "GOV" era))
forall t (w :: Wrapped). DecCBOR t => Decode w t
From
Word
4 -> (NonEmpty (KeyHash Staking) -> DijkstraLedgerPredFailure era)
-> Decode
Open (NonEmpty (KeyHash Staking) -> DijkstraLedgerPredFailure era)
forall t. t -> Decode Open t
SumD NonEmpty (KeyHash Staking) -> DijkstraLedgerPredFailure era
forall era.
NonEmpty (KeyHash Staking) -> DijkstraLedgerPredFailure era
DijkstraWdrlNotDelegatedToDRep Decode
Open (NonEmpty (KeyHash Staking) -> DijkstraLedgerPredFailure era)
-> Decode (Closed (ZonkAny 3)) (NonEmpty (KeyHash Staking))
-> Decode Open (DijkstraLedgerPredFailure 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)) (NonEmpty (KeyHash Staking))
forall t (w :: Wrapped). DecCBOR t => Decode w t
From
Word
5 -> (Mismatch RelEQ Coin -> DijkstraLedgerPredFailure era)
-> Decode
Open (Mismatch RelEQ Coin -> DijkstraLedgerPredFailure era)
forall t. t -> Decode Open t
SumD Mismatch RelEQ Coin -> DijkstraLedgerPredFailure era
forall era. Mismatch RelEQ Coin -> DijkstraLedgerPredFailure era
DijkstraTreasuryValueMismatch Decode Open (Mismatch RelEQ Coin -> DijkstraLedgerPredFailure era)
-> Decode (Closed (ZonkAny 4)) (Mismatch RelEQ Coin)
-> Decode Open (DijkstraLedgerPredFailure 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 RelEQ Coin)
forall t (w :: Wrapped). DecCBOR t => Decode w t
From
Word
6 -> (Mismatch RelLTEQ Int -> DijkstraLedgerPredFailure era)
-> Decode
Open (Mismatch RelLTEQ Int -> DijkstraLedgerPredFailure era)
forall t. t -> Decode Open t
SumD Mismatch RelLTEQ Int -> DijkstraLedgerPredFailure era
forall era. Mismatch RelLTEQ Int -> DijkstraLedgerPredFailure era
DijkstraTxRefScriptsSizeTooBig Decode Open (Mismatch RelLTEQ Int -> DijkstraLedgerPredFailure era)
-> Decode (Closed (ZonkAny 5)) (Mismatch RelLTEQ Int)
-> Decode Open (DijkstraLedgerPredFailure 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 RelLTEQ Int)
forall t (w :: Wrapped). DecCBOR t => Decode w t
From
Word
7 -> (Withdrawals -> DijkstraLedgerPredFailure era)
-> Decode Open (Withdrawals -> DijkstraLedgerPredFailure era)
forall t. t -> Decode Open t
SumD Withdrawals -> DijkstraLedgerPredFailure era
forall era. Withdrawals -> DijkstraLedgerPredFailure era
DijkstraWithdrawalsMissingAccounts Decode Open (Withdrawals -> DijkstraLedgerPredFailure era)
-> Decode (Closed (ZonkAny 6)) Withdrawals
-> Decode Open (DijkstraLedgerPredFailure 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)) Withdrawals
forall t (w :: Wrapped). DecCBOR t => Decode w t
From
Word
8 -> (NonEmptyMap AccountAddress (Mismatch RelEQ Coin)
-> DijkstraLedgerPredFailure era)
-> Decode
Open
(NonEmptyMap AccountAddress (Mismatch RelEQ Coin)
-> DijkstraLedgerPredFailure era)
forall t. t -> Decode Open t
SumD NonEmptyMap AccountAddress (Mismatch RelEQ Coin)
-> DijkstraLedgerPredFailure era
forall era.
NonEmptyMap AccountAddress (Mismatch RelEQ Coin)
-> DijkstraLedgerPredFailure era
DijkstraIncompleteWithdrawals Decode
Open
(NonEmptyMap AccountAddress (Mismatch RelEQ Coin)
-> DijkstraLedgerPredFailure era)
-> Decode
(Closed (ZonkAny 7))
(NonEmptyMap AccountAddress (Mismatch RelEQ Coin))
-> Decode Open (DijkstraLedgerPredFailure 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))
(NonEmptyMap AccountAddress (Mismatch RelEQ Coin))
forall t (w :: Wrapped). DecCBOR t => Decode w t
From
Word
9 -> (PredicateFailure (EraRule "SUBLEDGERS" era)
-> DijkstraLedgerPredFailure era)
-> Decode
Open
(PredicateFailure (EraRule "SUBLEDGERS" era)
-> DijkstraLedgerPredFailure era)
forall t. t -> Decode Open t
SumD PredicateFailure (EraRule "SUBLEDGERS" era)
-> DijkstraLedgerPredFailure era
forall era.
PredicateFailure (EraRule "SUBLEDGERS" era)
-> DijkstraLedgerPredFailure era
DijkstraSubLedgersFailure Decode
Open
(PredicateFailure (EraRule "SUBLEDGERS" era)
-> DijkstraLedgerPredFailure era)
-> Decode
(Closed (ZonkAny 8)) (PredicateFailure (EraRule "SUBLEDGERS" era))
-> Decode Open (DijkstraLedgerPredFailure 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)) (PredicateFailure (EraRule "SUBLEDGERS" era))
forall t (w :: Wrapped). DecCBOR t => Decode w t
From
Word
10 -> (NonEmptyMap TxId (NonEmptySet TxIn)
-> DijkstraLedgerPredFailure era)
-> Decode
Open
(NonEmptyMap TxId (NonEmptySet TxIn)
-> DijkstraLedgerPredFailure era)
forall t. t -> Decode Open t
SumD NonEmptyMap TxId (NonEmptySet TxIn)
-> DijkstraLedgerPredFailure era
forall era.
NonEmptyMap TxId (NonEmptySet TxIn)
-> DijkstraLedgerPredFailure era
DijkstraSpendingOutputFromSameTx Decode
Open
(NonEmptyMap TxId (NonEmptySet TxIn)
-> DijkstraLedgerPredFailure era)
-> Decode
(Closed (ZonkAny 9)) (NonEmptyMap TxId (NonEmptySet TxIn))
-> Decode Open (DijkstraLedgerPredFailure 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)) (NonEmptyMap TxId (NonEmptySet TxIn))
forall t (w :: Wrapped). DecCBOR t => Decode w t
From
Word
n -> Word -> Decode Open (DijkstraLedgerPredFailure era)
forall (w :: Wrapped) t. Word -> Decode w t
Invalid Word
n
data DijkstraLedgerEvent era
= UtxowEvent (Event (EraRule "UTXOW" era))
| CertsEvent (Event (EraRule "CERTS" era))
| GovEvent (Event (EraRule "GOV" era))
| SubLedgersEvent (Event (EraRule "SUBLEDGERS" era))
deriving ((forall x.
DijkstraLedgerEvent era -> Rep (DijkstraLedgerEvent era) x)
-> (forall x.
Rep (DijkstraLedgerEvent era) x -> DijkstraLedgerEvent era)
-> Generic (DijkstraLedgerEvent era)
forall x.
Rep (DijkstraLedgerEvent era) x -> DijkstraLedgerEvent era
forall x.
DijkstraLedgerEvent era -> Rep (DijkstraLedgerEvent era) x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
forall era x.
Rep (DijkstraLedgerEvent era) x -> DijkstraLedgerEvent era
forall era x.
DijkstraLedgerEvent era -> Rep (DijkstraLedgerEvent era) x
$cfrom :: forall era x.
DijkstraLedgerEvent era -> Rep (DijkstraLedgerEvent era) x
from :: forall x.
DijkstraLedgerEvent era -> Rep (DijkstraLedgerEvent era) x
$cto :: forall era x.
Rep (DijkstraLedgerEvent era) x -> DijkstraLedgerEvent era
to :: forall x.
Rep (DijkstraLedgerEvent era) x -> DijkstraLedgerEvent era
Generic)
deriving instance
( Eq (Event (EraRule "CERTS" era))
, Eq (Event (EraRule "UTXOW" era))
, Eq (Event (EraRule "GOV" era))
, Eq (Event (EraRule "SUBLEDGERS" era))
) =>
Eq (DijkstraLedgerEvent era)
instance
( NFData (Event (EraRule "CERTS" era))
, NFData (Event (EraRule "UTXOW" era))
, NFData (Event (EraRule "GOV" era))
, NFData (Event (EraRule "SUBLEDGERS" era))
) =>
NFData (DijkstraLedgerEvent era)
instance
( AlonzoEraTx era
, ConwayEraTxBody era
, ConwayEraGov era
, DijkstraEraTxBody era
, GovState era ~ ConwayGovState era
, Embed (EraRule "UTXOW" era) (DijkstraLEDGER era)
, Embed (EraRule "GOV" era) (DijkstraLEDGER era)
, Embed (EraRule "CERTS" era) (DijkstraLEDGER era)
, Embed (EraRule "SUBLEDGERS" era) (DijkstraLEDGER era)
, State (EraRule "UTXOW" era) ~ UTxOState era
, State (EraRule "CERTS" era) ~ CertState era
, State (EraRule "GOV" era) ~ Proposals era
, Environment (EraRule "UTXOW" era) ~ UtxoEnv era
, Environment (EraRule "CERTS" era) ~ CertsEnv era
, Environment (EraRule "GOV" era) ~ GovEnv era
, Signal (EraRule "UTXOW" era) ~ Tx TopTx era
, Signal (EraRule "CERTS" era) ~ Seq (TxCert era)
, Signal (EraRule "GOV" era) ~ GovSignal era
, ConwayEraCertState era
, EraRule "LEDGER" era ~ DijkstraLEDGER era
, InjectRuleFailure "LEDGER" ShelleyLedgerPredFailure era
, InjectRuleFailure "LEDGER" ConwayLedgerPredFailure era
, InjectRuleFailure "LEDGER" DijkstraLedgerPredFailure era
, EraRule "SUBLEDGERS" era ~ DijkstraSUBLEDGERS era
) =>
STS (DijkstraLEDGER era)
where
type State (DijkstraLEDGER era) = LedgerState era
type Signal (DijkstraLEDGER era) = Tx TopTx era
type Environment (DijkstraLEDGER era) = LedgerEnv era
type BaseM (DijkstraLEDGER era) = ShelleyBase
type PredicateFailure (DijkstraLEDGER era) = DijkstraLedgerPredFailure era
type Event (DijkstraLEDGER era) = DijkstraLedgerEvent era
initialRules :: [InitialRule (DijkstraLEDGER era)]
initialRules = []
transitionRules :: [TransitionRule (DijkstraLEDGER era)]
transitionRules = [TransitionRule (DijkstraLEDGER era)
forall era.
(AlonzoEraTx era, ConwayEraCertState era, ConwayEraGov era,
DijkstraEraTxBody era, GovState era ~ ConwayGovState era,
Embed (EraRule "UTXOW" era) (DijkstraLEDGER era),
Embed (EraRule "GOV" era) (DijkstraLEDGER era),
Embed (EraRule "CERTS" era) (DijkstraLEDGER era),
Embed (EraRule "SUBLEDGERS" era) (DijkstraLEDGER era),
State (EraRule "UTXOW" era) ~ UTxOState era,
State (EraRule "CERTS" era) ~ CertState era,
State (EraRule "GOV" era) ~ Proposals era,
Environment (EraRule "UTXOW" era) ~ UtxoEnv era,
Environment (EraRule "GOV" era) ~ GovEnv era,
Environment (EraRule "CERTS" era) ~ CertsEnv era,
Signal (EraRule "UTXOW" era) ~ Tx TopTx era,
Signal (EraRule "CERTS" era) ~ Seq (TxCert era),
Signal (EraRule "GOV" era) ~ GovSignal era,
STS (DijkstraLEDGER era),
EraRule "LEDGER" era ~ DijkstraLEDGER era,
EraRule "SUBLEDGERS" era ~ DijkstraSUBLEDGERS era,
InjectRuleFailure "LEDGER" ShelleyLedgerPredFailure era,
InjectRuleFailure "LEDGER" ConwayLedgerPredFailure era) =>
TransitionRule (DijkstraLEDGER era)
dijkstraLedgerTransition]
renderAssertionViolation :: AssertionViolation (DijkstraLEDGER era) -> String
renderAssertionViolation = AssertionViolation (DijkstraLEDGER era) -> String
forall era t.
(EraTx era, EraGov era, EraCertState era,
Environment t ~ LedgerEnv era, Signal t ~ Tx TopTx era,
State t ~ LedgerState era) =>
AssertionViolation t -> String
renderDepositEqualsObligationViolation
assertions :: [Assertion (DijkstraLEDGER era)]
assertions = forall era (rule :: * -> *).
(EraGov era, EraCertState era,
State (rule era) ~ LedgerState era) =>
[Assertion (rule era)]
shelleyLedgerAssertions @era @DijkstraLEDGER
spentSubTxOutputs ::
(EraTx era, DijkstraEraTxBody era) => Tx TopTx era -> Map.Map TxId (NonEmptySet TxIn)
spentSubTxOutputs :: forall era.
(EraTx era, DijkstraEraTxBody era) =>
Tx TopTx era -> Map TxId (NonEmptySet TxIn)
spentSubTxOutputs Tx TopTx era
tx =
Map TxId (Tx SubTx era) -> Map TxId (NonEmptySet TxIn)
forall era (l :: TxLevel).
EraTx era =>
Map TxId (Tx l era) -> Map TxId (NonEmptySet TxIn)
filterBadInputs Map TxId (Tx SubTx era)
subTxs Map TxId (NonEmptySet TxIn)
-> Map TxId (NonEmptySet TxIn) -> Map TxId (NonEmptySet TxIn)
forall a. Semigroup a => a -> a -> a
<> Map TxId (Tx TopTx era) -> Map TxId (NonEmptySet TxIn)
forall era (l :: TxLevel).
EraTx era =>
Map TxId (Tx l era) -> Map TxId (NonEmptySet TxIn)
filterBadInputs (TxId -> Tx TopTx era -> Map TxId (Tx TopTx era)
forall k a. k -> a -> Map k a
Map.singleton (Tx TopTx era -> TxId
forall era (l :: TxLevel). EraTx era => Tx l era -> TxId
txIdTx Tx TopTx era
tx) Tx TopTx era
tx)
where
subTxs :: Map TxId (Tx SubTx era)
subTxs = OMap TxId (Tx SubTx era) -> Map TxId (Tx SubTx era)
forall k v. OMap k v -> Map k v
OMap.toMap (OMap TxId (Tx SubTx era) -> Map TxId (Tx SubTx era))
-> OMap TxId (Tx SubTx era) -> Map TxId (Tx SubTx era)
forall a b. (a -> b) -> a -> b
$ Tx TopTx era
tx Tx TopTx era
-> Getting
(OMap TxId (Tx SubTx era))
(Tx TopTx era)
(OMap TxId (Tx SubTx era))
-> OMap TxId (Tx SubTx era)
forall s a. s -> Getting a s a -> a
^. (TxBody TopTx era
-> Const (OMap TxId (Tx SubTx era)) (TxBody TopTx era))
-> Tx TopTx era -> Const (OMap TxId (Tx SubTx era)) (Tx TopTx 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 TopTx era
-> Const (OMap TxId (Tx SubTx era)) (TxBody TopTx era))
-> Tx TopTx era -> Const (OMap TxId (Tx SubTx era)) (Tx TopTx era))
-> ((OMap TxId (Tx SubTx era)
-> Const (OMap TxId (Tx SubTx era)) (OMap TxId (Tx SubTx era)))
-> TxBody TopTx era
-> Const (OMap TxId (Tx SubTx era)) (TxBody TopTx era))
-> Getting
(OMap TxId (Tx SubTx era))
(Tx TopTx era)
(OMap TxId (Tx SubTx era))
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (OMap TxId (Tx SubTx era)
-> Const (OMap TxId (Tx SubTx era)) (OMap TxId (Tx SubTx era)))
-> TxBody TopTx era
-> Const (OMap TxId (Tx SubTx era)) (TxBody TopTx era)
forall era.
DijkstraEraTxBody era =>
Lens' (TxBody TopTx era) (OMap TxId (Tx SubTx era))
Lens' (TxBody TopTx era) (OMap TxId (Tx SubTx era))
subTransactionsTxBodyL
subTxIds :: Set TxId
subTxIds = Map TxId (Tx SubTx era) -> Set TxId
forall k a. Map k a -> Set k
Map.keysSet Map TxId (Tx SubTx era)
subTxs
filterBadInputs :: EraTx era => Map.Map TxId (Tx l era) -> Map.Map TxId (NonEmptySet TxIn)
filterBadInputs :: forall era (l :: TxLevel).
EraTx era =>
Map TxId (Tx l era) -> Map TxId (NonEmptySet TxIn)
filterBadInputs = (Tx l era -> Maybe (NonEmptySet TxIn))
-> Map TxId (Tx l era) -> Map TxId (NonEmptySet TxIn)
forall a b k. (a -> Maybe b) -> Map k a -> Map k b
Map.mapMaybe ((Tx l era -> Maybe (NonEmptySet TxIn))
-> Map TxId (Tx l era) -> Map TxId (NonEmptySet TxIn))
-> (Tx l era -> Maybe (NonEmptySet TxIn))
-> Map TxId (Tx l era)
-> Map TxId (NonEmptySet TxIn)
forall a b. (a -> b) -> a -> b
$ \Tx l era
curTx -> do
let spendableInputs :: Set TxIn
spendableInputs = Tx l era
curTx Tx l era -> Getting (Set TxIn) (Tx l era) (Set TxIn) -> Set TxIn
forall s a. s -> Getting a s a -> a
^. (TxBody l era -> Const (Set TxIn) (TxBody l era))
-> Tx l era -> Const (Set TxIn) (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 (Set TxIn) (TxBody l era))
-> Tx l era -> Const (Set TxIn) (Tx l era))
-> ((Set TxIn -> Const (Set TxIn) (Set TxIn))
-> TxBody l era -> Const (Set TxIn) (TxBody l era))
-> Getting (Set TxIn) (Tx l era) (Set TxIn)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Set TxIn -> Const (Set TxIn) (Set TxIn))
-> TxBody l era -> Const (Set TxIn) (TxBody l era)
forall era (l :: TxLevel).
EraTxBody era =>
SimpleGetter (TxBody l era) (Set TxIn)
forall (l :: TxLevel). SimpleGetter (TxBody l era) (Set TxIn)
spendableInputsTxBodyF
Set TxIn -> Maybe (NonEmptySet TxIn)
forall a. Set a -> Maybe (NonEmptySet a)
NES.fromSet (Set TxIn -> Maybe (NonEmptySet TxIn))
-> Set TxIn -> Maybe (NonEmptySet TxIn)
forall a b. (a -> b) -> a -> b
$
(TxIn -> Bool) -> Set TxIn -> Set TxIn
forall a. (a -> Bool) -> Set a -> Set a
Set.filter (\(TxIn TxId
txId TxIx
_) -> TxId
txId TxId -> Set TxId -> Bool
forall a. Ord a => a -> Set a -> Bool
`Set.member` Set TxId
subTxIds) Set TxIn
spendableInputs
dijkstraLedgerTransition ::
forall era.
( AlonzoEraTx era
, ConwayEraCertState era
, ConwayEraGov era
, DijkstraEraTxBody era
, GovState era ~ ConwayGovState era
, Embed (EraRule "UTXOW" era) (DijkstraLEDGER era)
, Embed (EraRule "GOV" era) (DijkstraLEDGER era)
, Embed (EraRule "CERTS" era) (DijkstraLEDGER era)
, Embed (EraRule "SUBLEDGERS" era) (DijkstraLEDGER era)
, State (EraRule "UTXOW" era) ~ UTxOState era
, State (EraRule "CERTS" era) ~ CertState era
, State (EraRule "GOV" era) ~ Proposals era
, Environment (EraRule "UTXOW" era) ~ UtxoEnv era
, Environment (EraRule "GOV" era) ~ GovEnv era
, Environment (EraRule "CERTS" era) ~ CertsEnv era
, Signal (EraRule "UTXOW" era) ~ Tx TopTx era
, Signal (EraRule "CERTS" era) ~ Seq (TxCert era)
, Signal (EraRule "GOV" era) ~ GovSignal era
, STS (DijkstraLEDGER era)
, EraRule "LEDGER" era ~ DijkstraLEDGER era
, EraRule "SUBLEDGERS" era ~ DijkstraSUBLEDGERS era
, InjectRuleFailure "LEDGER" ShelleyLedgerPredFailure era
, InjectRuleFailure "LEDGER" ConwayLedgerPredFailure era
) =>
TransitionRule (DijkstraLEDGER era)
dijkstraLedgerTransition :: forall era.
(AlonzoEraTx era, ConwayEraCertState era, ConwayEraGov era,
DijkstraEraTxBody era, GovState era ~ ConwayGovState era,
Embed (EraRule "UTXOW" era) (DijkstraLEDGER era),
Embed (EraRule "GOV" era) (DijkstraLEDGER era),
Embed (EraRule "CERTS" era) (DijkstraLEDGER era),
Embed (EraRule "SUBLEDGERS" era) (DijkstraLEDGER era),
State (EraRule "UTXOW" era) ~ UTxOState era,
State (EraRule "CERTS" era) ~ CertState era,
State (EraRule "GOV" era) ~ Proposals era,
Environment (EraRule "UTXOW" era) ~ UtxoEnv era,
Environment (EraRule "GOV" era) ~ GovEnv era,
Environment (EraRule "CERTS" era) ~ CertsEnv era,
Signal (EraRule "UTXOW" era) ~ Tx TopTx era,
Signal (EraRule "CERTS" era) ~ Seq (TxCert era),
Signal (EraRule "GOV" era) ~ GovSignal era,
STS (DijkstraLEDGER era),
EraRule "LEDGER" era ~ DijkstraLEDGER era,
EraRule "SUBLEDGERS" era ~ DijkstraSUBLEDGERS era,
InjectRuleFailure "LEDGER" ShelleyLedgerPredFailure era,
InjectRuleFailure "LEDGER" ConwayLedgerPredFailure era) =>
TransitionRule (DijkstraLEDGER era)
dijkstraLedgerTransition = do
TRC (env, ledgerState, tx) <- Rule
(DijkstraLEDGER era)
'Transition
(RuleContext 'Transition (DijkstraLEDGER era))
F (Clause (DijkstraLEDGER era) 'Transition)
(TRC (DijkstraLEDGER era))
forall sts (rtype :: RuleType).
Rule sts rtype (RuleContext rtype sts)
judgmentContext
failOnNonEmptyMap (spentSubTxOutputs tx) DijkstraSpendingOutputFromSameTx
ledgerStateAfterSubledgers <-
trans @(EraRule "SUBLEDGERS" era) $
TRC (env, ledgerState, tx ^. bodyTxL . subTransactionsTxBodyL)
conwayLedgerTransitionTRC (TRC (env, ledgerStateAfterSubledgers, tx))
instance
( AlonzoEraTx era
, EraUTxO era
, BabbageEraTxBody era
, Embed (EraRule "UTXO" era) (DijkstraUTXOW era)
, State (EraRule "UTXO" era) ~ UTxOState era
, Environment (EraRule "UTXO" era) ~ UtxoEnv era
, Script era ~ AlonzoScript era
, TxOut era ~ BabbageTxOut era
, ScriptsNeeded era ~ AlonzoScriptsNeeded era
, Signal (EraRule "UTXO" era) ~ Tx TopTx era
, PredicateFailure (EraRule "UTXOW" era) ~ DijkstraUtxowPredFailure era
, Event (EraRule "UTXOW" era) ~ AlonzoUtxowEvent era
, STS (DijkstraUTXOW era)
, Event (DijkstraUTXOW era) ~ AlonzoUtxowEvent era
) =>
Embed (DijkstraUTXOW era) (DijkstraLEDGER era)
where
wrapFailed :: PredicateFailure (DijkstraUTXOW era)
-> PredicateFailure (DijkstraLEDGER era)
wrapFailed = PredicateFailure (EraRule "UTXOW" era)
-> DijkstraLedgerPredFailure era
PredicateFailure (DijkstraUTXOW era)
-> PredicateFailure (DijkstraLEDGER era)
forall era.
PredicateFailure (EraRule "UTXOW" era)
-> DijkstraLedgerPredFailure era
DijkstraUtxowFailure
wrapEvent :: Event (DijkstraUTXOW era) -> Event (DijkstraLEDGER era)
wrapEvent = Event (EraRule "UTXOW" era) -> DijkstraLedgerEvent era
Event (DijkstraUTXOW era) -> Event (DijkstraLEDGER era)
forall era. Event (EraRule "UTXOW" era) -> DijkstraLedgerEvent era
UtxowEvent
instance
( Embed (EraRule "UTXOW" era) (DijkstraLEDGER era)
, Embed (EraRule "CERTS" era) (DijkstraLEDGER era)
, Embed (EraRule "GOV" era) (DijkstraLEDGER era)
, Embed (EraRule "SUBLEDGERS" era) (DijkstraSUBLEDGERS era)
, ConwayEraGov era
, AlonzoEraTx era
, ConwayEraPParams era
, DijkstraEraTxBody era
, EraPlutusContext era
, GovState era ~ ConwayGovState era
, Environment (EraRule "UTXOW" era) ~ UtxoEnv era
, Environment (EraRule "CERTS" era) ~ CertsEnv era
, Signal (EraRule "UTXOW" era) ~ Tx TopTx era
, Signal (EraRule "CERTS" era) ~ Seq (TxCert era)
, State (EraRule "UTXOW" era) ~ UTxOState era
, State (EraRule "CERTS" era) ~ CertState era
, EraRule "GOV" era ~ DijkstraGOV era
, ConwayEraCertState era
, EraRule "LEDGER" era ~ DijkstraLEDGER era
, EraRule "SUBLEDGERS" era ~ DijkstraSUBLEDGERS era
, EraRule "SUBLEDGER" era ~ DijkstraSUBLEDGER era
, EraRule "SUBGOV" era ~ DijkstraSUBGOV era
, EraRule "SUBUTXO" era ~ DijkstraSUBUTXO era
, EraRule "SUBUTXOS" era ~ DijkstraSUBUTXOS era
, EraRule "SUBUTXOW" era ~ DijkstraSUBUTXOW era
, EraRule "SUBCERTS" era ~ DijkstraSUBCERTS era
, EraRule "SUBCERT" era ~ DijkstraSUBCERT era
, EraRule "SUBDELEG" era ~ DijkstraSUBDELEG era
, EraRule "SUBPOOL" era ~ DijkstraSUBPOOL era
, EraRule "SUBGOVCERT" era ~ DijkstraSUBGOVCERT era
, InjectRuleFailure "LEDGER" ShelleyLedgerPredFailure era
, InjectRuleFailure "LEDGER" ConwayLedgerPredFailure era
, InjectRuleFailure "LEDGER" DijkstraLedgerPredFailure era
, InjectRuleFailure "LEDGER" DijkstraSubLedgersPredFailure era
, InjectRuleEvent "SUBPOOL" DijkstraSubPoolEvent era
, InjectRuleEvent "SUBPOOL" PoolEvent era
, InjectRuleFailure "SUBPOOL" DijkstraSubPoolPredFailure era
, InjectRuleFailure "SUBPOOL" ShelleyPoolPredFailure era
, InjectRuleFailure "SUBGOVCERT" DijkstraSubGovCertPredFailure era
, InjectRuleFailure "SUBGOVCERT" ConwayGovCertPredFailure era
, InjectRuleFailure "DELEG" ConwayDelegPredFailure era
, InjectRuleFailure "SUBDELEG" ConwayDelegPredFailure era
, InjectRuleFailure "SUBDELEG" DijkstraSubDelegPredFailure era
, InjectRuleEvent "SUBGOV" DijkstraSubGovEvent era
, InjectRuleEvent "SUBGOV" ConwayGovEvent era
, InjectRuleFailure "SUBGOV" DijkstraSubGovPredFailure era
, InjectRuleFailure "SUBGOV" ConwayGovPredFailure era
, TxCert era ~ DijkstraTxCert era
) =>
Embed (DijkstraLEDGER era) (ShelleyLEDGERS era)
where
wrapFailed :: PredicateFailure (DijkstraLEDGER era)
-> PredicateFailure (ShelleyLEDGERS era)
wrapFailed = PredicateFailure (EraRule "LEDGER" era)
-> ShelleyLedgersPredFailure era
PredicateFailure (DijkstraLEDGER era)
-> PredicateFailure (ShelleyLEDGERS era)
forall era.
PredicateFailure (EraRule "LEDGER" era)
-> ShelleyLedgersPredFailure era
LedgerFailure
wrapEvent :: Event (DijkstraLEDGER era) -> Event (ShelleyLEDGERS era)
wrapEvent = Event (EraRule "LEDGER" era) -> ShelleyLedgersEvent era
Event (DijkstraLEDGER era) -> Event (ShelleyLEDGERS era)
forall era. Event (EraRule "LEDGER" era) -> ShelleyLedgersEvent era
LedgerEvent
instance
( ConwayEraCertState era
, ConwayEraTxCert era
, ConwayEraPParams era
, ConwayEraGov era
, EraRule "GOV" era ~ DijkstraGOV era
, InjectRuleFailure "GOV" ConwayGovPredFailure era
, InjectRuleFailure "GOV" DijkstraGovPredFailure era
, InjectRuleEvent "GOV" ConwayGovEvent era
) =>
Embed (DijkstraGOV era) (DijkstraLEDGER era)
where
wrapFailed :: PredicateFailure (DijkstraGOV era)
-> PredicateFailure (DijkstraLEDGER era)
wrapFailed = PredicateFailure (EraRule "GOV" era)
-> DijkstraLedgerPredFailure era
PredicateFailure (DijkstraGOV era)
-> PredicateFailure (DijkstraLEDGER era)
forall era.
PredicateFailure (EraRule "GOV" era)
-> DijkstraLedgerPredFailure era
DijkstraGovFailure
wrapEvent :: Event (DijkstraGOV era) -> Event (DijkstraLEDGER era)
wrapEvent = Event (EraRule "GOV" era) -> DijkstraLedgerEvent era
Event (DijkstraGOV era) -> Event (DijkstraLEDGER era)
forall era. Event (EraRule "GOV" era) -> DijkstraLedgerEvent era
GovEvent
conwayToDijkstraLedgerPredFailure ::
forall era. ConwayLedgerPredFailure era -> DijkstraLedgerPredFailure era
conwayToDijkstraLedgerPredFailure :: forall era.
ConwayLedgerPredFailure era -> DijkstraLedgerPredFailure era
conwayToDijkstraLedgerPredFailure = \case
Conway.ConwayUtxowFailure PredicateFailure (EraRule "UTXOW" era)
f -> PredicateFailure (EraRule "UTXOW" era)
-> DijkstraLedgerPredFailure era
forall era.
PredicateFailure (EraRule "UTXOW" era)
-> DijkstraLedgerPredFailure era
DijkstraUtxowFailure PredicateFailure (EraRule "UTXOW" era)
f
Conway.ConwayCertsFailure PredicateFailure (EraRule "CERTS" era)
f -> PredicateFailure (EraRule "CERTS" era)
-> DijkstraLedgerPredFailure era
forall era.
PredicateFailure (EraRule "CERTS" era)
-> DijkstraLedgerPredFailure era
DijkstraCertsFailure PredicateFailure (EraRule "CERTS" era)
f
Conway.ConwayGovFailure PredicateFailure (EraRule "GOV" era)
f -> PredicateFailure (EraRule "GOV" era)
-> DijkstraLedgerPredFailure era
forall era.
PredicateFailure (EraRule "GOV" era)
-> DijkstraLedgerPredFailure era
DijkstraGovFailure PredicateFailure (EraRule "GOV" era)
f
Conway.ConwayWdrlNotDelegatedToDRep NonEmpty (KeyHash Staking)
kh -> NonEmpty (KeyHash Staking) -> DijkstraLedgerPredFailure era
forall era.
NonEmpty (KeyHash Staking) -> DijkstraLedgerPredFailure era
DijkstraWdrlNotDelegatedToDRep NonEmpty (KeyHash Staking)
kh
Conway.ConwayTreasuryValueMismatch Mismatch RelEQ Coin
mm -> Mismatch RelEQ Coin -> DijkstraLedgerPredFailure era
forall era. Mismatch RelEQ Coin -> DijkstraLedgerPredFailure era
DijkstraTreasuryValueMismatch Mismatch RelEQ Coin
mm
Conway.ConwayTxRefScriptsSizeTooBig Mismatch RelLTEQ Int
mm -> Mismatch RelLTEQ Int -> DijkstraLedgerPredFailure era
forall era. Mismatch RelLTEQ Int -> DijkstraLedgerPredFailure era
DijkstraTxRefScriptsSizeTooBig Mismatch RelLTEQ Int
mm
Conway.ConwayMempoolFailure Text
_ -> String -> DijkstraLedgerPredFailure era
forall a. HasCallStack => String -> a
error String
"Impossible: MempoolFailure has been moved to MEMPOOL rule in Dijkstra"
Conway.ConwayWithdrawalsMissingAccounts Withdrawals
ws -> Withdrawals -> DijkstraLedgerPredFailure era
forall era. Withdrawals -> DijkstraLedgerPredFailure era
DijkstraWithdrawalsMissingAccounts Withdrawals
ws
Conway.ConwayIncompleteWithdrawals NonEmptyMap AccountAddress (Mismatch RelEQ Coin)
ws -> NonEmptyMap AccountAddress (Mismatch RelEQ Coin)
-> DijkstraLedgerPredFailure era
forall era.
NonEmptyMap AccountAddress (Mismatch RelEQ Coin)
-> DijkstraLedgerPredFailure era
DijkstraIncompleteWithdrawals NonEmptyMap AccountAddress (Mismatch RelEQ Coin)
ws
shelleyToDijkstraLedgerPredFailure ::
forall era. ShelleyLedgerPredFailure era -> DijkstraLedgerPredFailure era
shelleyToDijkstraLedgerPredFailure :: forall era.
ShelleyLedgerPredFailure era -> DijkstraLedgerPredFailure era
shelleyToDijkstraLedgerPredFailure = \case
UtxowFailure PredicateFailure (EraRule "UTXOW" era)
x -> PredicateFailure (EraRule "UTXOW" era)
-> DijkstraLedgerPredFailure era
forall era.
PredicateFailure (EraRule "UTXOW" era)
-> DijkstraLedgerPredFailure era
DijkstraUtxowFailure PredicateFailure (EraRule "UTXOW" era)
x
DelegsFailure PredicateFailure (EraRule "DELEGS" era)
_ -> String -> DijkstraLedgerPredFailure era
forall a. HasCallStack => String -> a
error String
"Impossible: DELEGS has ben removed in Dijkstra"
ShelleyWithdrawalsMissingAccounts Withdrawals
x -> Withdrawals -> DijkstraLedgerPredFailure era
forall era. Withdrawals -> DijkstraLedgerPredFailure era
DijkstraWithdrawalsMissingAccounts Withdrawals
x
ShelleyIncompleteWithdrawals NonEmptyMap AccountAddress (Mismatch RelEQ Coin)
x -> NonEmptyMap AccountAddress (Mismatch RelEQ Coin)
-> DijkstraLedgerPredFailure era
forall era.
NonEmptyMap AccountAddress (Mismatch RelEQ Coin)
-> DijkstraLedgerPredFailure era
DijkstraIncompleteWithdrawals NonEmptyMap AccountAddress (Mismatch RelEQ Coin)
x
instance
( EraTx era
, ConwayEraTxBody era
, ConwayEraPParams era
, ConwayEraGov era
, Embed (EraRule "CERT" era) (ConwayCERTS era)
, State (EraRule "CERT" era) ~ CertState era
, Environment (EraRule "CERT" era) ~ CertEnv era
, Signal (EraRule "CERT" era) ~ TxCert era
, PredicateFailure (EraRule "CERT" era) ~ ConwayCertPredFailure era
, EraRuleFailure "CERT" era ~ ConwayCertPredFailure era
, EraRule "CERTS" era ~ ConwayCERTS era
, ConwayEraCertState era
) =>
Embed (ConwayCERTS era) (DijkstraLEDGER era)
where
wrapFailed :: PredicateFailure (ConwayCERTS era)
-> PredicateFailure (DijkstraLEDGER era)
wrapFailed = PredicateFailure (EraRule "CERTS" era)
-> DijkstraLedgerPredFailure era
PredicateFailure (ConwayCERTS era)
-> PredicateFailure (DijkstraLEDGER era)
forall era.
PredicateFailure (EraRule "CERTS" era)
-> DijkstraLedgerPredFailure era
DijkstraCertsFailure
wrapEvent :: Event (ConwayCERTS era) -> Event (DijkstraLEDGER era)
wrapEvent = Event (EraRule "CERTS" era) -> DijkstraLedgerEvent era
Event (ConwayCERTS era) -> Event (DijkstraLEDGER era)
forall era. Event (EraRule "CERTS" era) -> DijkstraLedgerEvent era
CertsEvent
instance
( EraPParams era
, EraRule "DELEG" era ~ ConwayDELEG era
, PredicateFailure (EraRule "CERTS" era) ~ ConwayCertsPredFailure era
, PredicateFailure (EraRule "CERT" era) ~ ConwayCertPredFailure era
, Event (EraRule "CERTS" era) ~ ConwayCertsEvent era
, Event (EraRule "CERT" era) ~ ConwayCertEvent era
, ConwayEraCertState era
, InjectRuleFailure "DELEG" ConwayDelegPredFailure era
) =>
Embed (ConwayDELEG era) (DijkstraLEDGER era)
where
wrapFailed :: PredicateFailure (ConwayDELEG era)
-> PredicateFailure (DijkstraLEDGER era)
wrapFailed = PredicateFailure (EraRule "CERTS" era)
-> DijkstraLedgerPredFailure era
ConwayCertsPredFailure era -> DijkstraLedgerPredFailure era
forall era.
PredicateFailure (EraRule "CERTS" era)
-> DijkstraLedgerPredFailure era
DijkstraCertsFailure (ConwayCertsPredFailure era -> DijkstraLedgerPredFailure era)
-> (ConwayDelegPredFailure era -> ConwayCertsPredFailure era)
-> ConwayDelegPredFailure era
-> DijkstraLedgerPredFailure era
forall b c a. (b -> c) -> (a -> b) -> a -> c
. PredicateFailure (EraRule "CERT" era) -> ConwayCertsPredFailure era
ConwayCertPredFailure era -> ConwayCertsPredFailure era
forall era.
PredicateFailure (EraRule "CERT" era) -> ConwayCertsPredFailure era
CertFailure (ConwayCertPredFailure era -> ConwayCertsPredFailure era)
-> (ConwayDelegPredFailure era -> ConwayCertPredFailure era)
-> ConwayDelegPredFailure era
-> ConwayCertsPredFailure era
forall b c a. (b -> c) -> (a -> b) -> a -> c
. PredicateFailure (EraRule "DELEG" era) -> ConwayCertPredFailure era
ConwayDelegPredFailure era -> ConwayCertPredFailure era
forall era.
PredicateFailure (EraRule "DELEG" era) -> ConwayCertPredFailure era
DelegFailure
wrapEvent :: Event (ConwayDELEG era) -> Event (DijkstraLEDGER era)
wrapEvent = ConwayCertsEvent era -> DijkstraLedgerEvent era
Event (EraRule "CERTS" era) -> DijkstraLedgerEvent era
forall era. Event (EraRule "CERTS" era) -> DijkstraLedgerEvent era
CertsEvent (ConwayCertsEvent era -> DijkstraLedgerEvent era)
-> (Void -> ConwayCertsEvent era)
-> Void
-> DijkstraLedgerEvent era
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ConwayCertEvent era -> ConwayCertsEvent era
Event (EraRule "CERT" era) -> ConwayCertsEvent era
forall era. Event (EraRule "CERT" era) -> ConwayCertsEvent era
CertEvent (ConwayCertEvent era -> ConwayCertsEvent era)
-> (Void -> ConwayCertEvent era) -> Void -> ConwayCertsEvent era
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Void -> ConwayCertEvent era
Event (EraRule "DELEG" era) -> ConwayCertEvent era
forall era. Event (EraRule "DELEG" era) -> ConwayCertEvent era
DelegEvent
instance
( EraTx era
, ConwayEraTxBody era
, ConwayEraGov era
, ConwayEraCertState era
, EraPlutusContext era
, ConwayEraTxCert era
, ConwayEraPParams era
, EraRule "SUBLEDGERS" era ~ DijkstraSUBLEDGERS era
, EraRule "SUBLEDGER" era ~ DijkstraSUBLEDGER era
, EraRule "SUBGOV" era ~ DijkstraSUBGOV era
, EraRule "SUBUTXO" era ~ DijkstraSUBUTXO era
, EraRule "SUBUTXOS" era ~ DijkstraSUBUTXOS era
, EraRule "SUBUTXOW" era ~ DijkstraSUBUTXOW era
, EraRule "SUBCERTS" era ~ DijkstraSUBCERTS era
, EraRule "SUBCERT" era ~ DijkstraSUBCERT era
, EraRule "SUBDELEG" era ~ DijkstraSUBDELEG era
, EraRule "SUBPOOL" era ~ DijkstraSUBPOOL era
, EraRule "SUBGOVCERT" era ~ DijkstraSUBGOVCERT era
, Event (EraRule "LEDGER" era) ~ DijkstraLedgerEvent era
, InjectRuleEvent "SUBPOOL" PoolEvent era
, InjectRuleEvent "SUBPOOL" DijkstraSubPoolEvent era
, InjectRuleFailure "SUBPOOL" ShelleyPoolPredFailure era
, InjectRuleFailure "SUBPOOL" DijkstraSubPoolPredFailure era
, InjectRuleFailure "SUBGOVCERT" DijkstraSubGovCertPredFailure era
, InjectRuleFailure "SUBGOVCERT" ConwayGovCertPredFailure era
, InjectRuleFailure "DELEG" ConwayDelegPredFailure era
, InjectRuleFailure "SUBDELEG" ConwayDelegPredFailure era
, InjectRuleFailure "SUBDELEG" DijkstraSubDelegPredFailure era
, InjectRuleEvent "SUBGOV" DijkstraSubGovEvent era
, InjectRuleEvent "SUBGOV" ConwayGovEvent era
, InjectRuleFailure "SUBGOV" DijkstraSubGovPredFailure era
, InjectRuleFailure "SUBGOV" ConwayGovPredFailure era
, TxCert era ~ DijkstraTxCert era
) =>
Embed (DijkstraSUBLEDGERS era) (DijkstraLEDGER era)
where
wrapFailed :: PredicateFailure (DijkstraSUBLEDGERS era)
-> PredicateFailure (DijkstraLEDGER era)
wrapFailed = PredicateFailure (EraRule "SUBLEDGERS" era)
-> DijkstraLedgerPredFailure era
PredicateFailure (DijkstraSUBLEDGERS era)
-> PredicateFailure (DijkstraLEDGER era)
forall era.
PredicateFailure (EraRule "SUBLEDGERS" era)
-> DijkstraLedgerPredFailure era
DijkstraSubLedgersFailure
wrapEvent :: Event (DijkstraSUBLEDGERS era) -> Event (DijkstraLEDGER era)
wrapEvent = Event (EraRule "SUBLEDGERS" era) -> DijkstraLedgerEvent era
Event (DijkstraSUBLEDGERS era) -> Event (DijkstraLEDGER era)
forall era.
Event (EraRule "SUBLEDGERS" era) -> DijkstraLedgerEvent era
SubLedgersEvent