{-# LANGUAGE AllowAmbiguousTypes #-} {-# LANGUAGE DataKinds #-} {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE DerivingStrategies #-} {-# LANGUAGE EmptyDataDeriving #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE LambdaCase #-} {-# LANGUAGE MultiParamTypeClasses #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE StandaloneDeriving #-} {-# LANGUAGE TypeApplications #-} {-# LANGUAGE TypeFamilies #-} {-# LANGUAGE TypeOperators #-} {-# LANGUAGE UndecidableInstances #-} {-# OPTIONS_GHC -Wno-orphans #-} module Cardano.Ledger.Dijkstra.Rules.SubLedger ( DijkstraSUBLEDGER, DijkstraSubLedgerPredFailure (..), DijkstraSubLedgerEvent (..), ) where import Cardano.Ledger.Address (RewardAccount (..)) import Cardano.Ledger.Alonzo.Plutus.Context (EraPlutusContext) import Cardano.Ledger.BaseTypes 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 import Cardano.Ledger.Conway.Rules ( GovEnv (..), GovSignal (..), gsCertificates, gsProposalProcedures, gsVotingProcedures, ) import Cardano.Ledger.Conway.State import Cardano.Ledger.Dijkstra.Era ( DijkstraEra, DijkstraSUBCERT, DijkstraSUBCERTS, DijkstraSUBDELEG, DijkstraSUBGOV, DijkstraSUBGOVCERT, DijkstraSUBLEDGER, DijkstraSUBPOOL, DijkstraSUBUTXO, DijkstraSUBUTXOS, DijkstraSUBUTXOW, ) import Cardano.Ledger.Dijkstra.Rules.SubCerts (DijkstraSubCertsPredFailure (..), SubCertsEnv (..)) import Cardano.Ledger.Dijkstra.Rules.SubGov (DijkstraSubGovPredFailure (..)) import Cardano.Ledger.Dijkstra.Rules.SubPool (DijkstraSubPoolEvent, DijkstraSubPoolPredFailure) import Cardano.Ledger.Dijkstra.Rules.SubUtxow (DijkstraSubUtxowPredFailure (..)) import Cardano.Ledger.Dijkstra.TxCert import Cardano.Ledger.Shelley.LedgerState import Cardano.Ledger.Shelley.Rules ( LedgerEnv (..), PoolEvent, ShelleyPoolPredFailure, UtxoEnv (..), epochFromSlot, ) import Control.DeepSeq (NFData) import Control.State.Transition.Extended ( BaseM, Embed (..), Environment, Event, PredicateFailure, STS, Signal, State, TRC (TRC), TransitionRule, judgmentContext, liftSTS, trans, transitionRules, ) import Data.List.NonEmpty (NonEmpty) import Data.Map.NonEmpty (NonEmptyMap) import qualified Data.Sequence.Strict as StrictSeq import GHC.Generics (Generic) import Lens.Micro import NoThunks.Class (NoThunks (..)) data DijkstraSubLedgerPredFailure era = SubUtxowFailure (PredicateFailure (EraRule "SUBUTXOW" era)) | SubCertsFailure (PredicateFailure (EraRule "SUBCERTS" era)) | SubGovFailure (PredicateFailure (EraRule "SUBGOV" era)) | SubWdrlNotDelegatedToDRep (NonEmpty (KeyHash Staking)) | SubTreasuryValueMismatch (Mismatch RelEQ Coin) | SubTxRefScriptsSizeTooBig (Mismatch RelLTEQ Int) | SubWithdrawalsMissingAccounts Withdrawals | SubIncompleteWithdrawals (NonEmptyMap RewardAccount (Mismatch RelEQ Coin)) deriving ((forall x. DijkstraSubLedgerPredFailure era -> Rep (DijkstraSubLedgerPredFailure era) x) -> (forall x. Rep (DijkstraSubLedgerPredFailure era) x -> DijkstraSubLedgerPredFailure era) -> Generic (DijkstraSubLedgerPredFailure era) forall x. Rep (DijkstraSubLedgerPredFailure era) x -> DijkstraSubLedgerPredFailure era forall x. DijkstraSubLedgerPredFailure era -> Rep (DijkstraSubLedgerPredFailure era) x forall a. (forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a forall era x. Rep (DijkstraSubLedgerPredFailure era) x -> DijkstraSubLedgerPredFailure era forall era x. DijkstraSubLedgerPredFailure era -> Rep (DijkstraSubLedgerPredFailure era) x $cfrom :: forall era x. DijkstraSubLedgerPredFailure era -> Rep (DijkstraSubLedgerPredFailure era) x from :: forall x. DijkstraSubLedgerPredFailure era -> Rep (DijkstraSubLedgerPredFailure era) x $cto :: forall era x. Rep (DijkstraSubLedgerPredFailure era) x -> DijkstraSubLedgerPredFailure era to :: forall x. Rep (DijkstraSubLedgerPredFailure era) x -> DijkstraSubLedgerPredFailure era Generic) deriving stock instance ( Eq (PredicateFailure (EraRule "SUBGOV" era)) , Eq (PredicateFailure (EraRule "SUBCERTS" era)) , Eq (PredicateFailure (EraRule "SUBUTXOW" era)) ) => Eq (DijkstraSubLedgerPredFailure era) deriving stock instance ( Show (PredicateFailure (EraRule "SUBGOV" era)) , Show (PredicateFailure (EraRule "SUBCERTS" era)) , Show (PredicateFailure (EraRule "SUBUTXOW" era)) ) => Show (DijkstraSubLedgerPredFailure era) instance ( NoThunks (PredicateFailure (EraRule "SUBGOV" era)) , NoThunks (PredicateFailure (EraRule "SUBCERTS" era)) , NoThunks (PredicateFailure (EraRule "SUBUTXOW" era)) ) => NoThunks (DijkstraSubLedgerPredFailure era) instance ( NFData (PredicateFailure (EraRule "SUBGOV" era)) , NFData (PredicateFailure (EraRule "SUBCERTS" era)) , NFData (PredicateFailure (EraRule "SUBUTXOW" era)) ) => NFData (DijkstraSubLedgerPredFailure era) type instance EraRuleFailure "SUBLEDGER" DijkstraEra = DijkstraSubLedgerPredFailure DijkstraEra type instance EraRuleEvent "SUBLEDGER" DijkstraEra = DijkstraSubLedgerEvent DijkstraEra instance InjectRuleFailure "SUBLEDGER" DijkstraSubLedgerPredFailure DijkstraEra instance InjectRuleFailure "SUBLEDGER" DijkstraSubGovPredFailure DijkstraEra where injectFailure :: DijkstraSubGovPredFailure DijkstraEra -> EraRuleFailure "SUBLEDGER" DijkstraEra injectFailure = PredicateFailure (EraRule "SUBGOV" DijkstraEra) -> DijkstraSubLedgerPredFailure DijkstraEra DijkstraSubGovPredFailure DijkstraEra -> EraRuleFailure "SUBLEDGER" DijkstraEra forall era. PredicateFailure (EraRule "SUBGOV" era) -> DijkstraSubLedgerPredFailure era SubGovFailure instance InjectRuleFailure "SUBLEDGER" DijkstraSubUtxowPredFailure DijkstraEra where injectFailure :: DijkstraSubUtxowPredFailure DijkstraEra -> EraRuleFailure "SUBLEDGER" DijkstraEra injectFailure = PredicateFailure (EraRule "SUBUTXOW" DijkstraEra) -> DijkstraSubLedgerPredFailure DijkstraEra DijkstraSubUtxowPredFailure DijkstraEra -> EraRuleFailure "SUBLEDGER" DijkstraEra forall era. PredicateFailure (EraRule "SUBUTXOW" era) -> DijkstraSubLedgerPredFailure era SubUtxowFailure instance InjectRuleFailure "SUBLEDGER" DijkstraSubCertsPredFailure DijkstraEra where injectFailure :: DijkstraSubCertsPredFailure DijkstraEra -> EraRuleFailure "SUBLEDGER" DijkstraEra injectFailure = PredicateFailure (EraRule "SUBCERTS" DijkstraEra) -> DijkstraSubLedgerPredFailure DijkstraEra DijkstraSubCertsPredFailure DijkstraEra -> EraRuleFailure "SUBLEDGER" DijkstraEra forall era. PredicateFailure (EraRule "SUBCERTS" era) -> DijkstraSubLedgerPredFailure era SubCertsFailure data DijkstraSubLedgerEvent era = SubCertsEvent (Event (EraRule "SUBCERTS" era)) | SubGovEvent (Event (EraRule "SUBGOV" era)) | SubUtxowEvent (Event (EraRule "SUBUTXOW" era)) deriving ((forall x. DijkstraSubLedgerEvent era -> Rep (DijkstraSubLedgerEvent era) x) -> (forall x. Rep (DijkstraSubLedgerEvent era) x -> DijkstraSubLedgerEvent era) -> Generic (DijkstraSubLedgerEvent era) forall x. Rep (DijkstraSubLedgerEvent era) x -> DijkstraSubLedgerEvent era forall x. DijkstraSubLedgerEvent era -> Rep (DijkstraSubLedgerEvent era) x forall a. (forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a forall era x. Rep (DijkstraSubLedgerEvent era) x -> DijkstraSubLedgerEvent era forall era x. DijkstraSubLedgerEvent era -> Rep (DijkstraSubLedgerEvent era) x $cfrom :: forall era x. DijkstraSubLedgerEvent era -> Rep (DijkstraSubLedgerEvent era) x from :: forall x. DijkstraSubLedgerEvent era -> Rep (DijkstraSubLedgerEvent era) x $cto :: forall era x. Rep (DijkstraSubLedgerEvent era) x -> DijkstraSubLedgerEvent era to :: forall x. Rep (DijkstraSubLedgerEvent era) x -> DijkstraSubLedgerEvent era Generic) deriving instance ( Eq (Event (EraRule "SUBCERTS" era)) , Eq (Event (EraRule "SUBGOV" era)) , Eq (Event (EraRule "SUBUTXOW" era)) ) => Eq (DijkstraSubLedgerEvent era) instance ( NFData (Event (EraRule "SUBCERTS" era)) , NFData (Event (EraRule "SUBGOV" era)) , NFData (Event (EraRule "SUBUTXOW" era)) ) => NFData (DijkstraSubLedgerEvent era) instance InjectRuleEvent "SUBLEDGER" DijkstraSubLedgerEvent DijkstraEra instance ( EraTx era , ConwayEraTxBody era , ConwayEraGov era , ConwayEraCertState era , EraRule "SUBLEDGER" era ~ DijkstraSUBLEDGER era , EraRule "SUBGOV" era ~ DijkstraSUBGOV era , EraRule "SUBUTXO" era ~ DijkstraSUBUTXO era , EraRule "SUBUTXOW" era ~ DijkstraSUBUTXOW era , EraRule "SUBUTXOS" era ~ DijkstraSUBUTXOS 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 , Embed (EraRule "SUBGOV" era) (DijkstraSUBLEDGER era) , Embed (EraRule "SUBUTXOW" era) (DijkstraSUBLEDGER era) , Embed (EraRule "SUBCERTS" era) (DijkstraSUBCERTS era) , InjectRuleEvent "SUBPOOL" PoolEvent era , InjectRuleEvent "SUBPOOL" DijkstraSubPoolEvent era , InjectRuleFailure "SUBPOOL" ShelleyPoolPredFailure era , InjectRuleFailure "SUBPOOL" DijkstraSubPoolPredFailure era , TxCert era ~ DijkstraTxCert era ) => STS (DijkstraSUBLEDGER era) where type State (DijkstraSUBLEDGER era) = LedgerState era type Signal (DijkstraSUBLEDGER era) = Tx SubTx era type Environment (DijkstraSUBLEDGER era) = LedgerEnv era type BaseM (DijkstraSUBLEDGER era) = ShelleyBase type PredicateFailure (DijkstraSUBLEDGER era) = DijkstraSubLedgerPredFailure era type Event (DijkstraSUBLEDGER era) = DijkstraSubLedgerEvent era transitionRules :: [TransitionRule (DijkstraSUBLEDGER era)] transitionRules = [forall era. (EraTx era, ConwayEraTxBody era, ConwayEraGov era, ConwayEraCertState era, EraRule "SUBLEDGER" era ~ DijkstraSUBLEDGER era, EraRule "SUBGOV" era ~ DijkstraSUBGOV 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, Embed (EraRule "SUBGOV" era) (DijkstraSUBLEDGER era), Embed (EraRule "SUBUTXOW" era) (DijkstraSUBLEDGER era), InjectRuleEvent "SUBPOOL" PoolEvent era, InjectRuleEvent "SUBPOOL" DijkstraSubPoolEvent era, InjectRuleFailure "SUBPOOL" ShelleyPoolPredFailure era, InjectRuleFailure "SUBPOOL" DijkstraSubPoolPredFailure era, STS (EraRule "SUBLEDGER" era), TxCert era ~ DijkstraTxCert era) => TransitionRule (EraRule "SUBLEDGER" era) dijkstraSubLedgersTransition @era] dijkstraSubLedgersTransition :: forall era. ( EraTx era , ConwayEraTxBody era , ConwayEraGov era , ConwayEraCertState era , EraRule "SUBLEDGER" era ~ DijkstraSUBLEDGER era , EraRule "SUBGOV" era ~ DijkstraSUBGOV 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 , Embed (EraRule "SUBGOV" era) (DijkstraSUBLEDGER era) , Embed (EraRule "SUBUTXOW" era) (DijkstraSUBLEDGER era) , InjectRuleEvent "SUBPOOL" PoolEvent era , InjectRuleEvent "SUBPOOL" DijkstraSubPoolEvent era , InjectRuleFailure "SUBPOOL" ShelleyPoolPredFailure era , InjectRuleFailure "SUBPOOL" DijkstraSubPoolPredFailure era , STS (EraRule "SUBLEDGER" era) , TxCert era ~ DijkstraTxCert era ) => TransitionRule (EraRule "SUBLEDGER" era) dijkstraSubLedgersTransition :: forall era. (EraTx era, ConwayEraTxBody era, ConwayEraGov era, ConwayEraCertState era, EraRule "SUBLEDGER" era ~ DijkstraSUBLEDGER era, EraRule "SUBGOV" era ~ DijkstraSUBGOV 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, Embed (EraRule "SUBGOV" era) (DijkstraSUBLEDGER era), Embed (EraRule "SUBUTXOW" era) (DijkstraSUBLEDGER era), InjectRuleEvent "SUBPOOL" PoolEvent era, InjectRuleEvent "SUBPOOL" DijkstraSubPoolEvent era, InjectRuleFailure "SUBPOOL" ShelleyPoolPredFailure era, InjectRuleFailure "SUBPOOL" DijkstraSubPoolPredFailure era, STS (EraRule "SUBLEDGER" era), TxCert era ~ DijkstraTxCert era) => TransitionRule (EraRule "SUBLEDGER" era) dijkstraSubLedgersTransition = do TRC ( LedgerEnv slot mbCurEpochNo _ pp _ , ledgerState , tx ) <- Rule (DijkstraSUBLEDGER era) 'Transition (RuleContext 'Transition (DijkstraSUBLEDGER era)) F (Clause (DijkstraSUBLEDGER era) 'Transition) (TRC (DijkstraSUBLEDGER era)) forall sts (rtype :: RuleType). Rule sts rtype (RuleContext rtype sts) judgmentContext curEpochNo <- maybe (liftSTS $ epochFromSlot slot) pure mbCurEpochNo let txBody = Tx SubTx era Signal (DijkstraSUBLEDGER era) tx Tx SubTx era -> Getting (TxBody SubTx era) (Tx SubTx era) (TxBody SubTx era) -> TxBody SubTx era forall s a. s -> Getting a s a -> a ^. Getting (TxBody SubTx era) (Tx SubTx era) (TxBody SubTx 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 let govState = State (DijkstraSUBLEDGER era) LedgerState era ledgerState LedgerState era -> Getting (GovState era) (LedgerState era) (GovState era) -> GovState era forall s a. s -> Getting a s a -> a ^. (UTxOState era -> Const (GovState era) (UTxOState era)) -> LedgerState era -> Const (GovState era) (LedgerState era) forall era (f :: * -> *). Functor f => (UTxOState era -> f (UTxOState era)) -> LedgerState era -> f (LedgerState era) lsUTxOStateL ((UTxOState era -> Const (GovState era) (UTxOState era)) -> LedgerState era -> Const (GovState era) (LedgerState era)) -> ((GovState era -> Const (GovState era) (GovState era)) -> UTxOState era -> Const (GovState era) (UTxOState era)) -> Getting (GovState era) (LedgerState era) (GovState era) forall b c a. (b -> c) -> (a -> b) -> a -> c . (GovState era -> Const (GovState era) (GovState era)) -> UTxOState era -> Const (GovState era) (UTxOState era) forall era (f :: * -> *). Functor f => (GovState era -> f (GovState era)) -> UTxOState era -> f (UTxOState era) utxosGovStateL let committee = GovState era govState GovState era -> Getting (StrictMaybe (Committee era)) (GovState era) (StrictMaybe (Committee era)) -> StrictMaybe (Committee era) forall s a. s -> Getting a s a -> a ^. Getting (StrictMaybe (Committee era)) (GovState era) (StrictMaybe (Committee era)) forall era. ConwayEraGov era => Lens' (GovState era) (StrictMaybe (Committee era)) Lens' (GovState era) (StrictMaybe (Committee era)) committeeGovStateL let proposals = GovState era govState GovState era -> Getting (Proposals era) (GovState era) (Proposals era) -> Proposals era forall s a. s -> Getting a s a -> a ^. Getting (Proposals era) (GovState era) (Proposals era) forall era. ConwayEraGov era => Lens' (GovState era) (Proposals era) Lens' (GovState era) (Proposals era) proposalsGovStateL certStateAfterSubCerts <- trans @(EraRule "SUBCERTS" era) $ TRC ( SubCertsEnv tx pp curEpochNo committee (proposalsWithPurpose grCommitteeL proposals) , ledgerState ^. lsCertStateL , StrictSeq.fromStrict $ txBody ^. certsTxBodyL ) let govEnv = TxId -> EpochNo -> PParams era -> StrictMaybe ScriptHash -> CertState era -> StrictMaybe (Committee era) -> GovEnv era forall era. TxId -> EpochNo -> PParams era -> StrictMaybe ScriptHash -> CertState era -> StrictMaybe (Committee era) -> GovEnv era GovEnv (TxBody SubTx era -> TxId forall era (l :: TxLevel). EraTxBody era => TxBody l era -> TxId txIdTxBody TxBody SubTx era txBody) EpochNo curEpochNo PParams era pp (GovState era govState GovState era -> Getting (StrictMaybe ScriptHash) (GovState era) (StrictMaybe ScriptHash) -> StrictMaybe ScriptHash forall s a. s -> Getting a s a -> a ^. (Constitution era -> Const (StrictMaybe ScriptHash) (Constitution era)) -> GovState era -> Const (StrictMaybe ScriptHash) (GovState era) forall era. ConwayEraGov era => Lens' (GovState era) (Constitution era) Lens' (GovState era) (Constitution era) constitutionGovStateL ((Constitution era -> Const (StrictMaybe ScriptHash) (Constitution era)) -> GovState era -> Const (StrictMaybe ScriptHash) (GovState era)) -> ((StrictMaybe ScriptHash -> Const (StrictMaybe ScriptHash) (StrictMaybe ScriptHash)) -> Constitution era -> Const (StrictMaybe ScriptHash) (Constitution era)) -> Getting (StrictMaybe ScriptHash) (GovState era) (StrictMaybe ScriptHash) forall b c a. (b -> c) -> (a -> b) -> a -> c . (StrictMaybe ScriptHash -> Const (StrictMaybe ScriptHash) (StrictMaybe ScriptHash)) -> Constitution era -> Const (StrictMaybe ScriptHash) (Constitution era) forall era (f :: * -> *). Functor f => (StrictMaybe ScriptHash -> f (StrictMaybe ScriptHash)) -> Constitution era -> f (Constitution era) constitutionGuardrailsScriptHashL) CertState era certStateAfterSubCerts StrictMaybe (Committee era) committee let govSignal = GovSignal { gsVotingProcedures :: VotingProcedures era gsVotingProcedures = TxBody SubTx era txBody TxBody SubTx era -> Getting (VotingProcedures era) (TxBody SubTx era) (VotingProcedures era) -> VotingProcedures era forall s a. s -> Getting a s a -> a ^. Getting (VotingProcedures era) (TxBody SubTx era) (VotingProcedures era) forall era (l :: TxLevel). ConwayEraTxBody era => Lens' (TxBody l era) (VotingProcedures era) forall (l :: TxLevel). Lens' (TxBody l era) (VotingProcedures era) votingProceduresTxBodyL , gsProposalProcedures :: OSet (ProposalProcedure era) gsProposalProcedures = TxBody SubTx era txBody TxBody SubTx era -> Getting (OSet (ProposalProcedure era)) (TxBody SubTx era) (OSet (ProposalProcedure era)) -> OSet (ProposalProcedure era) forall s a. s -> Getting a s a -> a ^. Getting (OSet (ProposalProcedure era)) (TxBody SubTx era) (OSet (ProposalProcedure era)) forall era (l :: TxLevel). ConwayEraTxBody era => Lens' (TxBody l era) (OSet (ProposalProcedure era)) forall (l :: TxLevel). Lens' (TxBody l era) (OSet (ProposalProcedure era)) proposalProceduresTxBodyL , gsCertificates :: StrictSeq (TxCert era) gsCertificates = TxBody SubTx era txBody TxBody SubTx era -> Getting (StrictSeq (DijkstraTxCert era)) (TxBody SubTx era) (StrictSeq (DijkstraTxCert era)) -> StrictSeq (DijkstraTxCert era) forall s a. s -> Getting a s a -> a ^. (StrictSeq (TxCert era) -> Const (StrictSeq (DijkstraTxCert era)) (StrictSeq (TxCert era))) -> TxBody SubTx era -> Const (StrictSeq (DijkstraTxCert era)) (TxBody SubTx era) Getting (StrictSeq (DijkstraTxCert era)) (TxBody SubTx era) (StrictSeq (DijkstraTxCert era)) forall era (l :: TxLevel). EraTxBody era => Lens' (TxBody l era) (StrictSeq (TxCert era)) forall (l :: TxLevel). Lens' (TxBody l era) (StrictSeq (TxCert era)) certsTxBodyL } proposalsState <- trans @(EraRule "SUBGOV" era) $ TRC ( govEnv , proposals , govSignal ) utxoStateAfterSubUtxow <- trans @(EraRule "SUBUTXOW" era) $ TRC ( UtxoEnv @era slot pp (ledgerState ^. lsCertStateL) , ledgerState ^. lsUTxOStateL , tx ) pure $ ledgerState & lsUTxOStateL .~ utxoStateAfterSubUtxow & lsUTxOStateL . utxosGovStateL . proposalsGovStateL .~ proposalsState & lsCertStateL .~ certStateAfterSubCerts instance ( ConwayEraGov era , ConwayEraCertState era , EraRule "SUBGOV" era ~ DijkstraSUBGOV era ) => Embed (DijkstraSUBGOV era) (DijkstraSUBLEDGER era) where wrapFailed :: PredicateFailure (DijkstraSUBGOV era) -> PredicateFailure (DijkstraSUBLEDGER era) wrapFailed = PredicateFailure (EraRule "SUBGOV" era) -> DijkstraSubLedgerPredFailure era PredicateFailure (DijkstraSUBGOV era) -> PredicateFailure (DijkstraSUBLEDGER era) forall era. PredicateFailure (EraRule "SUBGOV" era) -> DijkstraSubLedgerPredFailure era SubGovFailure wrapEvent :: Event (DijkstraSUBGOV era) -> Event (DijkstraSUBLEDGER era) wrapEvent = Event (EraRule "SUBGOV" era) -> DijkstraSubLedgerEvent era Event (DijkstraSUBGOV era) -> Event (DijkstraSUBLEDGER era) forall era. Event (EraRule "SUBGOV" era) -> DijkstraSubLedgerEvent era SubGovEvent instance ( ConwayEraGov era , ConwayEraCertState era , ConwayEraTxBody era , EraPlutusContext era , EraRule "SUBUTXO" era ~ DijkstraSUBUTXO era , EraRule "SUBUTXOW" era ~ DijkstraSUBUTXOW era , EraRule "SUBUTXOS" era ~ DijkstraSUBUTXOS era ) => Embed (DijkstraSUBUTXOW era) (DijkstraSUBLEDGER era) where wrapFailed :: PredicateFailure (DijkstraSUBUTXOW era) -> PredicateFailure (DijkstraSUBLEDGER era) wrapFailed = PredicateFailure (EraRule "SUBUTXOW" era) -> DijkstraSubLedgerPredFailure era PredicateFailure (DijkstraSUBUTXOW era) -> PredicateFailure (DijkstraSUBLEDGER era) forall era. PredicateFailure (EraRule "SUBUTXOW" era) -> DijkstraSubLedgerPredFailure era SubUtxowFailure wrapEvent :: Event (DijkstraSUBUTXOW era) -> Event (DijkstraSUBLEDGER era) wrapEvent = Event (EraRule "SUBUTXOW" era) -> DijkstraSubLedgerEvent era Event (DijkstraSUBUTXOW era) -> Event (DijkstraSUBLEDGER era) forall era. Event (EraRule "SUBUTXOW" era) -> DijkstraSubLedgerEvent era SubUtxowEvent instance ( ConwayEraGov era , ConwayEraCertState 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 , InjectRuleEvent "SUBPOOL" DijkstraSubPoolEvent era , InjectRuleEvent "SUBPOOL" PoolEvent era , InjectRuleFailure "SUBPOOL" DijkstraSubPoolPredFailure era , InjectRuleFailure "SUBPOOL" ShelleyPoolPredFailure era , TxCert era ~ DijkstraTxCert era ) => Embed (DijkstraSUBCERTS era) (DijkstraSUBLEDGER era) where wrapFailed :: PredicateFailure (DijkstraSUBCERTS era) -> PredicateFailure (DijkstraSUBLEDGER era) wrapFailed = PredicateFailure (EraRule "SUBCERTS" era) -> DijkstraSubLedgerPredFailure era PredicateFailure (DijkstraSUBCERTS era) -> PredicateFailure (DijkstraSUBLEDGER era) forall era. PredicateFailure (EraRule "SUBCERTS" era) -> DijkstraSubLedgerPredFailure era SubCertsFailure wrapEvent :: Event (DijkstraSUBCERTS era) -> Event (DijkstraSUBLEDGER era) wrapEvent = Event (EraRule "SUBCERTS" era) -> DijkstraSubLedgerEvent era Event (DijkstraSUBCERTS era) -> Event (DijkstraSUBLEDGER era) forall era. Event (EraRule "SUBCERTS" era) -> DijkstraSubLedgerEvent era SubCertsEvent instance ( Era era , EncCBOR (PredicateFailure (EraRule "SUBUTXOW" era)) , EncCBOR (PredicateFailure (EraRule "SUBCERTS" era)) , EncCBOR (PredicateFailure (EraRule "SUBGOV" era)) ) => EncCBOR (DijkstraSubLedgerPredFailure era) where encCBOR :: DijkstraSubLedgerPredFailure era -> Encoding encCBOR = Encode Open (DijkstraSubLedgerPredFailure era) -> Encoding forall (w :: Wrapped) t. Encode w t -> Encoding encode (Encode Open (DijkstraSubLedgerPredFailure era) -> Encoding) -> (DijkstraSubLedgerPredFailure era -> Encode Open (DijkstraSubLedgerPredFailure era)) -> DijkstraSubLedgerPredFailure era -> Encoding forall b c a. (b -> c) -> (a -> b) -> a -> c . \case SubUtxowFailure PredicateFailure (EraRule "SUBUTXOW" era) x -> (PredicateFailure (EraRule "SUBUTXOW" era) -> DijkstraSubLedgerPredFailure era) -> Word -> Encode Open (PredicateFailure (EraRule "SUBUTXOW" era) -> DijkstraSubLedgerPredFailure era) forall t. t -> Word -> Encode Open t Sum (forall era. PredicateFailure (EraRule "SUBUTXOW" era) -> DijkstraSubLedgerPredFailure era SubUtxowFailure @era) Word 1 Encode Open (PredicateFailure (EraRule "SUBUTXOW" era) -> DijkstraSubLedgerPredFailure era) -> Encode (Closed Dense) (PredicateFailure (EraRule "SUBUTXOW" era)) -> Encode Open (DijkstraSubLedgerPredFailure era) forall (w :: Wrapped) a t (r :: Density). Encode w (a -> t) -> Encode (Closed r) a -> Encode w t !> PredicateFailure (EraRule "SUBUTXOW" era) -> Encode (Closed Dense) (PredicateFailure (EraRule "SUBUTXOW" era)) forall t. EncCBOR t => t -> Encode (Closed Dense) t To PredicateFailure (EraRule "SUBUTXOW" era) x SubCertsFailure PredicateFailure (EraRule "SUBCERTS" era) x -> (PredicateFailure (EraRule "SUBCERTS" era) -> DijkstraSubLedgerPredFailure era) -> Word -> Encode Open (PredicateFailure (EraRule "SUBCERTS" era) -> DijkstraSubLedgerPredFailure era) forall t. t -> Word -> Encode Open t Sum (forall era. PredicateFailure (EraRule "SUBCERTS" era) -> DijkstraSubLedgerPredFailure era SubCertsFailure @era) Word 2 Encode Open (PredicateFailure (EraRule "SUBCERTS" era) -> DijkstraSubLedgerPredFailure era) -> Encode (Closed Dense) (PredicateFailure (EraRule "SUBCERTS" era)) -> Encode Open (DijkstraSubLedgerPredFailure era) forall (w :: Wrapped) a t (r :: Density). Encode w (a -> t) -> Encode (Closed r) a -> Encode w t !> PredicateFailure (EraRule "SUBCERTS" era) -> Encode (Closed Dense) (PredicateFailure (EraRule "SUBCERTS" era)) forall t. EncCBOR t => t -> Encode (Closed Dense) t To PredicateFailure (EraRule "SUBCERTS" era) x SubGovFailure PredicateFailure (EraRule "SUBGOV" era) x -> (PredicateFailure (EraRule "SUBGOV" era) -> DijkstraSubLedgerPredFailure era) -> Word -> Encode Open (PredicateFailure (EraRule "SUBGOV" era) -> DijkstraSubLedgerPredFailure era) forall t. t -> Word -> Encode Open t Sum (forall era. PredicateFailure (EraRule "SUBGOV" era) -> DijkstraSubLedgerPredFailure era SubGovFailure @era) Word 3 Encode Open (PredicateFailure (EraRule "SUBGOV" era) -> DijkstraSubLedgerPredFailure era) -> Encode (Closed Dense) (PredicateFailure (EraRule "SUBGOV" era)) -> Encode Open (DijkstraSubLedgerPredFailure era) forall (w :: Wrapped) a t (r :: Density). Encode w (a -> t) -> Encode (Closed r) a -> Encode w t !> PredicateFailure (EraRule "SUBGOV" era) -> Encode (Closed Dense) (PredicateFailure (EraRule "SUBGOV" era)) forall t. EncCBOR t => t -> Encode (Closed Dense) t To PredicateFailure (EraRule "SUBGOV" era) x SubWdrlNotDelegatedToDRep NonEmpty (KeyHash Staking) x -> (NonEmpty (KeyHash Staking) -> DijkstraSubLedgerPredFailure era) -> Word -> Encode Open (NonEmpty (KeyHash Staking) -> DijkstraSubLedgerPredFailure era) forall t. t -> Word -> Encode Open t Sum (forall era. NonEmpty (KeyHash Staking) -> DijkstraSubLedgerPredFailure era SubWdrlNotDelegatedToDRep @era) Word 4 Encode Open (NonEmpty (KeyHash Staking) -> DijkstraSubLedgerPredFailure era) -> Encode (Closed Dense) (NonEmpty (KeyHash Staking)) -> Encode Open (DijkstraSubLedgerPredFailure 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 SubTreasuryValueMismatch Mismatch RelEQ Coin mm -> (Mismatch RelEQ Coin -> DijkstraSubLedgerPredFailure era) -> Word -> Encode Open (Mismatch RelEQ Coin -> DijkstraSubLedgerPredFailure era) forall t. t -> Word -> Encode Open t Sum (forall era. Mismatch RelEQ Coin -> DijkstraSubLedgerPredFailure era SubTreasuryValueMismatch @era) Word 5 Encode Open (Mismatch RelEQ Coin -> DijkstraSubLedgerPredFailure era) -> Encode (Closed Dense) (Mismatch RelEQ Coin) -> Encode Open (DijkstraSubLedgerPredFailure 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 SubTxRefScriptsSizeTooBig Mismatch RelLTEQ Int mm -> (Mismatch RelLTEQ Int -> DijkstraSubLedgerPredFailure era) -> Word -> Encode Open (Mismatch RelLTEQ Int -> DijkstraSubLedgerPredFailure era) forall t. t -> Word -> Encode Open t Sum Mismatch RelLTEQ Int -> DijkstraSubLedgerPredFailure era forall era. Mismatch RelLTEQ Int -> DijkstraSubLedgerPredFailure era SubTxRefScriptsSizeTooBig Word 6 Encode Open (Mismatch RelLTEQ Int -> DijkstraSubLedgerPredFailure era) -> Encode (Closed Dense) (Mismatch RelLTEQ Int) -> Encode Open (DijkstraSubLedgerPredFailure 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 SubWithdrawalsMissingAccounts Withdrawals w -> (Withdrawals -> DijkstraSubLedgerPredFailure era) -> Word -> Encode Open (Withdrawals -> DijkstraSubLedgerPredFailure era) forall t. t -> Word -> Encode Open t Sum Withdrawals -> DijkstraSubLedgerPredFailure era forall era. Withdrawals -> DijkstraSubLedgerPredFailure era SubWithdrawalsMissingAccounts Word 7 Encode Open (Withdrawals -> DijkstraSubLedgerPredFailure era) -> Encode (Closed Dense) Withdrawals -> Encode Open (DijkstraSubLedgerPredFailure 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 SubIncompleteWithdrawals NonEmptyMap RewardAccount (Mismatch RelEQ Coin) w -> (NonEmptyMap RewardAccount (Mismatch RelEQ Coin) -> DijkstraSubLedgerPredFailure era) -> Word -> Encode Open (NonEmptyMap RewardAccount (Mismatch RelEQ Coin) -> DijkstraSubLedgerPredFailure era) forall t. t -> Word -> Encode Open t Sum NonEmptyMap RewardAccount (Mismatch RelEQ Coin) -> DijkstraSubLedgerPredFailure era forall era. NonEmptyMap RewardAccount (Mismatch RelEQ Coin) -> DijkstraSubLedgerPredFailure era SubIncompleteWithdrawals Word 8 Encode Open (NonEmptyMap RewardAccount (Mismatch RelEQ Coin) -> DijkstraSubLedgerPredFailure era) -> Encode (Closed Dense) (NonEmptyMap RewardAccount (Mismatch RelEQ Coin)) -> Encode Open (DijkstraSubLedgerPredFailure era) forall (w :: Wrapped) a t (r :: Density). Encode w (a -> t) -> Encode (Closed r) a -> Encode w t !> NonEmptyMap RewardAccount (Mismatch RelEQ Coin) -> Encode (Closed Dense) (NonEmptyMap RewardAccount (Mismatch RelEQ Coin)) forall t. EncCBOR t => t -> Encode (Closed Dense) t To NonEmptyMap RewardAccount (Mismatch RelEQ Coin) w instance ( Era era , DecCBOR (PredicateFailure (EraRule "SUBUTXOW" era)) , DecCBOR (PredicateFailure (EraRule "SUBCERTS" era)) , DecCBOR (PredicateFailure (EraRule "SUBGOV" era)) ) => DecCBOR (DijkstraSubLedgerPredFailure era) where decCBOR :: forall s. Decoder s (DijkstraSubLedgerPredFailure era) decCBOR = Decode (Closed Dense) (DijkstraSubLedgerPredFailure era) -> Decoder s (DijkstraSubLedgerPredFailure era) forall t (w :: Wrapped) s. Typeable t => Decode w t -> Decoder s t decode (Decode (Closed Dense) (DijkstraSubLedgerPredFailure era) -> Decoder s (DijkstraSubLedgerPredFailure era)) -> ((Word -> Decode Open (DijkstraSubLedgerPredFailure era)) -> Decode (Closed Dense) (DijkstraSubLedgerPredFailure era)) -> (Word -> Decode Open (DijkstraSubLedgerPredFailure era)) -> Decoder s (DijkstraSubLedgerPredFailure era) forall b c a. (b -> c) -> (a -> b) -> a -> c . Text -> (Word -> Decode Open (DijkstraSubLedgerPredFailure era)) -> Decode (Closed Dense) (DijkstraSubLedgerPredFailure era) forall t. Text -> (Word -> Decode Open t) -> Decode (Closed Dense) t Summands Text "DijkstraSubLedgerPredFailure" ((Word -> Decode Open (DijkstraSubLedgerPredFailure era)) -> Decoder s (DijkstraSubLedgerPredFailure era)) -> (Word -> Decode Open (DijkstraSubLedgerPredFailure era)) -> Decoder s (DijkstraSubLedgerPredFailure era) forall a b. (a -> b) -> a -> b $ \case Word 1 -> (PredicateFailure (EraRule "SUBUTXOW" era) -> DijkstraSubLedgerPredFailure era) -> Decode Open (PredicateFailure (EraRule "SUBUTXOW" era) -> DijkstraSubLedgerPredFailure era) forall t. t -> Decode Open t SumD PredicateFailure (EraRule "SUBUTXOW" era) -> DijkstraSubLedgerPredFailure era forall era. PredicateFailure (EraRule "SUBUTXOW" era) -> DijkstraSubLedgerPredFailure era SubUtxowFailure Decode Open (PredicateFailure (EraRule "SUBUTXOW" era) -> DijkstraSubLedgerPredFailure era) -> Decode (Closed (ZonkAny 0)) (PredicateFailure (EraRule "SUBUTXOW" era)) -> Decode Open (DijkstraSubLedgerPredFailure 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 "SUBUTXOW" era)) forall t (w :: Wrapped). DecCBOR t => Decode w t From Word 2 -> (PredicateFailure (EraRule "SUBCERTS" era) -> DijkstraSubLedgerPredFailure era) -> Decode Open (PredicateFailure (EraRule "SUBCERTS" era) -> DijkstraSubLedgerPredFailure era) forall t. t -> Decode Open t SumD PredicateFailure (EraRule "SUBCERTS" era) -> DijkstraSubLedgerPredFailure era forall era. PredicateFailure (EraRule "SUBCERTS" era) -> DijkstraSubLedgerPredFailure era SubCertsFailure Decode Open (PredicateFailure (EraRule "SUBCERTS" era) -> DijkstraSubLedgerPredFailure era) -> Decode (Closed (ZonkAny 1)) (PredicateFailure (EraRule "SUBCERTS" era)) -> Decode Open (DijkstraSubLedgerPredFailure 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 "SUBCERTS" era)) forall t (w :: Wrapped). DecCBOR t => Decode w t From Word 3 -> (PredicateFailure (EraRule "SUBGOV" era) -> DijkstraSubLedgerPredFailure era) -> Decode Open (PredicateFailure (EraRule "SUBGOV" era) -> DijkstraSubLedgerPredFailure era) forall t. t -> Decode Open t SumD PredicateFailure (EraRule "SUBGOV" era) -> DijkstraSubLedgerPredFailure era forall era. PredicateFailure (EraRule "SUBGOV" era) -> DijkstraSubLedgerPredFailure era SubGovFailure Decode Open (PredicateFailure (EraRule "SUBGOV" era) -> DijkstraSubLedgerPredFailure era) -> Decode (Closed (ZonkAny 2)) (PredicateFailure (EraRule "SUBGOV" era)) -> Decode Open (DijkstraSubLedgerPredFailure 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 "SUBGOV" era)) forall t (w :: Wrapped). DecCBOR t => Decode w t From Word 4 -> (NonEmpty (KeyHash Staking) -> DijkstraSubLedgerPredFailure era) -> Decode Open (NonEmpty (KeyHash Staking) -> DijkstraSubLedgerPredFailure era) forall t. t -> Decode Open t SumD NonEmpty (KeyHash Staking) -> DijkstraSubLedgerPredFailure era forall era. NonEmpty (KeyHash Staking) -> DijkstraSubLedgerPredFailure era SubWdrlNotDelegatedToDRep Decode Open (NonEmpty (KeyHash Staking) -> DijkstraSubLedgerPredFailure era) -> Decode (Closed (ZonkAny 3)) (NonEmpty (KeyHash Staking)) -> Decode Open (DijkstraSubLedgerPredFailure 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 -> DijkstraSubLedgerPredFailure era) -> Decode Open (Mismatch RelEQ Coin -> DijkstraSubLedgerPredFailure era) forall t. t -> Decode Open t SumD Mismatch RelEQ Coin -> DijkstraSubLedgerPredFailure era forall era. Mismatch RelEQ Coin -> DijkstraSubLedgerPredFailure era SubTreasuryValueMismatch Decode Open (Mismatch RelEQ Coin -> DijkstraSubLedgerPredFailure era) -> Decode (Closed (ZonkAny 4)) (Mismatch RelEQ Coin) -> Decode Open (DijkstraSubLedgerPredFailure 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 -> DijkstraSubLedgerPredFailure era) -> Decode Open (Mismatch RelLTEQ Int -> DijkstraSubLedgerPredFailure era) forall t. t -> Decode Open t SumD Mismatch RelLTEQ Int -> DijkstraSubLedgerPredFailure era forall era. Mismatch RelLTEQ Int -> DijkstraSubLedgerPredFailure era SubTxRefScriptsSizeTooBig Decode Open (Mismatch RelLTEQ Int -> DijkstraSubLedgerPredFailure era) -> Decode (Closed (ZonkAny 5)) (Mismatch RelLTEQ Int) -> Decode Open (DijkstraSubLedgerPredFailure 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 -> DijkstraSubLedgerPredFailure era) -> Decode Open (Withdrawals -> DijkstraSubLedgerPredFailure era) forall t. t -> Decode Open t SumD Withdrawals -> DijkstraSubLedgerPredFailure era forall era. Withdrawals -> DijkstraSubLedgerPredFailure era SubWithdrawalsMissingAccounts Decode Open (Withdrawals -> DijkstraSubLedgerPredFailure era) -> Decode (Closed (ZonkAny 6)) Withdrawals -> Decode Open (DijkstraSubLedgerPredFailure 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 RewardAccount (Mismatch RelEQ Coin) -> DijkstraSubLedgerPredFailure era) -> Decode Open (NonEmptyMap RewardAccount (Mismatch RelEQ Coin) -> DijkstraSubLedgerPredFailure era) forall t. t -> Decode Open t SumD NonEmptyMap RewardAccount (Mismatch RelEQ Coin) -> DijkstraSubLedgerPredFailure era forall era. NonEmptyMap RewardAccount (Mismatch RelEQ Coin) -> DijkstraSubLedgerPredFailure era SubIncompleteWithdrawals Decode Open (NonEmptyMap RewardAccount (Mismatch RelEQ Coin) -> DijkstraSubLedgerPredFailure era) -> Decode (Closed (ZonkAny 7)) (NonEmptyMap RewardAccount (Mismatch RelEQ Coin)) -> Decode Open (DijkstraSubLedgerPredFailure 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 RewardAccount (Mismatch RelEQ Coin)) forall t (w :: Wrapped). DecCBOR t => Decode w t From Word n -> Word -> Decode Open (DijkstraSubLedgerPredFailure era) forall (w :: Wrapped) t. Word -> Decode w t Invalid Word n