{-# 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.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,
constitutionGuardrailsScriptHashL,
grCommitteeL,
proposalsWithPurpose,
)
import Cardano.Ledger.Conway.PParams (ppMaxRefScriptSizePerTxG)
import Cardano.Ledger.Conway.Rules (
CertsEnv (..),
ConwayCERTS,
ConwayCertPredFailure (..),
ConwayCertsPredFailure (..),
ConwayDelegPredFailure,
ConwayGovCertPredFailure,
ConwayGovPredFailure,
ConwayLedgerPredFailure,
ConwayUtxoPredFailure,
ConwayUtxosPredFailure,
ConwayUtxowPredFailure,
GovEnv (..),
GovSignal (..),
updateDormantDRepExpiries,
updateVotingDRepExpiries,
validateTreasuryValue,
validateWithdrawalsDelegated,
)
import qualified Cardano.Ledger.Conway.Rules as Conway
import Cardano.Ledger.Conway.State
import Cardano.Ledger.Dijkstra.Era (
DijkstraEra,
DijkstraGOV,
DijkstraLEDGER,
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.SubLedger
import Cardano.Ledger.Dijkstra.Rules.SubLedgers
import Cardano.Ledger.Dijkstra.Rules.Utxo (DijkstraUtxoEnv (..), DijkstraUtxoPredFailure)
import Cardano.Ledger.Dijkstra.Rules.Utxow (DijkstraUtxowPredFailure)
import Cardano.Ledger.Dijkstra.Tx (DijkstraStAnnTx (..))
import Cardano.Ledger.Dijkstra.TxBody
import Cardano.Ledger.Dijkstra.UTxO (batchNonDistinctRefScriptsSize)
import Cardano.Ledger.Rules.ValidationMode (Test, runTest)
import Cardano.Ledger.Shelley.LedgerState (
LedgerState (..),
UTxOState (..),
lsUTxOStateL,
utxosGovStateL,
utxosUtxo,
)
import Cardano.Ledger.Shelley.Rules (
LedgerEnv (..),
ShelleyLEDGERS,
ShelleyLedgerPredFailure (..),
ShelleyLedgersEvent (LedgerEvent),
ShelleyLedgersPredFailure (LedgerFailure),
ShelleyPoolPredFailure,
ShelleyUtxoPredFailure,
ShelleyUtxowPredFailure,
renderDepositEqualsObligationViolation,
shelleyLedgerAssertions,
testIncompleteAndMissingWithdrawals,
)
import Cardano.Ledger.Slot (epochFromSlot)
import Control.DeepSeq (NFData)
import Control.State.Transition.Extended
import Data.List.NonEmpty (NonEmpty)
import Data.Map.NonEmpty (NonEmptyMap)
import Data.Sequence (Seq)
import qualified Data.Sequence.Strict as StrictSeq
import Data.Word (Word32)
import GHC.Generics (Generic (..))
import Lens.Micro
import Validation (failureUnless)
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))
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
, 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
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
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
, EraUTxO 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) ~ DijkstraUtxoEnv era
, Environment (EraRule "CERTS" era) ~ CertsEnv era
, Environment (EraRule "GOV" era) ~ GovEnv era
, Signal (EraRule "UTXOW" era) ~ StAnnTx TopTx era
, Signal (EraRule "CERTS" era) ~ Seq (TxCert era)
, Signal (EraRule "GOV" era) ~ GovSignal era
, Signal (EraRule "SUBLEDGERS" era) ~ [StAnnTx SubTx era]
, StAnnTx TopTx era ~ DijkstraStAnnTx TopTx era
, StAnnTx SubTx era ~ DijkstraStAnnTx SubTx 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) = StAnnTx 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, EraUTxO 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) ~ DijkstraUtxoEnv era,
Environment (EraRule "GOV" era) ~ GovEnv era,
Environment (EraRule "CERTS" era) ~ CertsEnv era,
Signal (EraRule "UTXOW" era) ~ StAnnTx TopTx era,
Signal (EraRule "CERTS" era) ~ Seq (TxCert era),
Signal (EraRule "GOV" era) ~ GovSignal era,
StAnnTx TopTx era ~ DijkstraStAnnTx TopTx era,
StAnnTx SubTx era ~ DijkstraStAnnTx SubTx era,
STS (DijkstraLEDGER era),
EraRule "LEDGER" era ~ DijkstraLEDGER era,
EraRule "SUBLEDGERS" era ~ DijkstraSUBLEDGERS era,
InjectRuleFailure "LEDGER" ShelleyLedgerPredFailure era,
InjectRuleFailure "LEDGER" ConwayLedgerPredFailure era,
InjectRuleFailure "LEDGER" DijkstraLedgerPredFailure 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 ~ StAnnTx 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
validateAllRefScriptSize ::
( EraTx era
, DijkstraEraTxBody era
) =>
PParams era ->
UTxO era ->
Tx TopTx era ->
Test (DijkstraLedgerPredFailure era)
validateAllRefScriptSize :: forall era.
(EraTx era, DijkstraEraTxBody era) =>
PParams era
-> UTxO era -> Tx TopTx era -> Test (DijkstraLedgerPredFailure era)
validateAllRefScriptSize PParams era
pp UTxO era
utxo Tx TopTx era
tx =
let totalRefScriptSize :: Int
totalRefScriptSize = UTxO era -> Tx TopTx era -> Int
forall era.
(EraTx era, DijkstraEraTxBody era) =>
UTxO era -> Tx TopTx era -> Int
batchNonDistinctRefScriptsSize UTxO era
utxo Tx TopTx era
tx
maxRefScriptSizePerTx :: Int
maxRefScriptSizePerTx = forall a b. (Integral a, Num b) => a -> b
fromIntegral @Word32 @Int (Word32 -> Int) -> Word32 -> Int
forall a b. (a -> b) -> a -> b
$ PParams era
pp PParams era -> Getting Word32 (PParams era) Word32 -> Word32
forall s a. s -> Getting a s a -> a
^. Getting Word32 (PParams era) Word32
forall era.
ConwayEraPParams era =>
SimpleGetter (PParams era) Word32
SimpleGetter (PParams era) Word32
ppMaxRefScriptSizePerTxG
in Bool
-> DijkstraLedgerPredFailure era
-> Validation (NonEmpty (DijkstraLedgerPredFailure era)) ()
forall e. Bool -> e -> Validation (NonEmpty e) ()
failureUnless (Int
totalRefScriptSize Int -> Int -> Bool
forall a. Ord a => a -> a -> Bool
<= Int
maxRefScriptSizePerTx) (DijkstraLedgerPredFailure era
-> Validation (NonEmpty (DijkstraLedgerPredFailure era)) ())
-> DijkstraLedgerPredFailure era
-> Validation (NonEmpty (DijkstraLedgerPredFailure era)) ()
forall a b. (a -> b) -> a -> b
$
Mismatch RelLTEQ Int -> DijkstraLedgerPredFailure era
forall era. Mismatch RelLTEQ Int -> DijkstraLedgerPredFailure era
DijkstraTxRefScriptsSizeTooBig
Mismatch
{ mismatchSupplied :: Int
mismatchSupplied = Int
totalRefScriptSize
, mismatchExpected :: Int
mismatchExpected = Int
maxRefScriptSizePerTx
}
dijkstraLedgerTransition ::
forall era.
( AlonzoEraTx era
, ConwayEraCertState era
, ConwayEraGov era
, DijkstraEraTxBody era
, EraUTxO 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) ~ DijkstraUtxoEnv era
, Environment (EraRule "GOV" era) ~ GovEnv era
, Environment (EraRule "CERTS" era) ~ CertsEnv era
, Signal (EraRule "UTXOW" era) ~ StAnnTx TopTx era
, Signal (EraRule "CERTS" era) ~ Seq (TxCert era)
, Signal (EraRule "GOV" era) ~ GovSignal era
, StAnnTx TopTx era ~ DijkstraStAnnTx TopTx era
, StAnnTx SubTx era ~ DijkstraStAnnTx SubTx era
, STS (DijkstraLEDGER era)
, EraRule "LEDGER" era ~ DijkstraLEDGER era
, EraRule "SUBLEDGERS" era ~ DijkstraSUBLEDGERS era
, InjectRuleFailure "LEDGER" ShelleyLedgerPredFailure era
, InjectRuleFailure "LEDGER" ConwayLedgerPredFailure era
, InjectRuleFailure "LEDGER" DijkstraLedgerPredFailure era
) =>
TransitionRule (DijkstraLEDGER era)
dijkstraLedgerTransition :: forall era.
(AlonzoEraTx era, ConwayEraCertState era, ConwayEraGov era,
DijkstraEraTxBody era, EraUTxO 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) ~ DijkstraUtxoEnv era,
Environment (EraRule "GOV" era) ~ GovEnv era,
Environment (EraRule "CERTS" era) ~ CertsEnv era,
Signal (EraRule "UTXOW" era) ~ StAnnTx TopTx era,
Signal (EraRule "CERTS" era) ~ Seq (TxCert era),
Signal (EraRule "GOV" era) ~ GovSignal era,
StAnnTx TopTx era ~ DijkstraStAnnTx TopTx era,
StAnnTx SubTx era ~ DijkstraStAnnTx SubTx era,
STS (DijkstraLEDGER era),
EraRule "LEDGER" era ~ DijkstraLEDGER era,
EraRule "SUBLEDGERS" era ~ DijkstraSUBLEDGERS era,
InjectRuleFailure "LEDGER" ShelleyLedgerPredFailure era,
InjectRuleFailure "LEDGER" ConwayLedgerPredFailure era,
InjectRuleFailure "LEDGER" DijkstraLedgerPredFailure era) =>
TransitionRule (DijkstraLEDGER era)
dijkstraLedgerTransition = do
TRC (LedgerEnv slot mbCurEpochNo txIx pp chainAccountState, ledgerState, stAnnTx) <-
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
let tx = Signal (DijkstraLEDGER era)
DijkstraStAnnTx TopTx era
stAnnTx DijkstraStAnnTx TopTx era
-> Getting
(Tx TopTx era) (DijkstraStAnnTx TopTx era) (Tx TopTx era)
-> Tx TopTx era
forall s a. s -> Getting a s a -> a
^. Getting (Tx TopTx era) (StAnnTx TopTx era) (Tx TopTx era)
Getting (Tx TopTx era) (DijkstraStAnnTx TopTx era) (Tx TopTx era)
forall era (l :: TxLevel).
EraTx era =>
SimpleGetter (StAnnTx l era) (Tx l era)
forall (l :: TxLevel). SimpleGetter (StAnnTx l era) (Tx l era)
txStAnnTxG
let originalUtxo = UTxOState era -> UTxO era
forall era. UTxOState era -> UTxO era
utxosUtxo (State (DijkstraLEDGER era)
LedgerState era
ledgerState LedgerState era
-> Getting (UTxOState era) (LedgerState era) (UTxOState era)
-> UTxOState era
forall s a. s -> Getting a s a -> a
^. Getting (UTxOState era) (LedgerState era) (UTxOState era)
forall era (f :: * -> *).
Functor f =>
(UTxOState era -> f (UTxOState era))
-> LedgerState era -> f (LedgerState era)
lsUTxOStateL)
subStAnnTxs = DijkstraStAnnTx TopTx era -> [DijkstraStAnnTx SubTx era]
forall era.
DijkstraStAnnTx TopTx era -> [DijkstraStAnnTx SubTx era]
dsattStAnnSubTxs Signal (DijkstraLEDGER era)
DijkstraStAnnTx TopTx era
stAnnTx
scriptsProvided = UTxO era -> Tx TopTx era -> ScriptsProvided era
forall era (t :: TxLevel).
EraUTxO era =>
UTxO era -> Tx t era -> ScriptsProvided era
forall (t :: TxLevel). UTxO era -> Tx t era -> ScriptsProvided era
getScriptsProvided UTxO era
originalUtxo Tx TopTx era
tx
LedgerState utxoStateAfterSubLedgers certStateAfterSubLedgers <-
trans @(EraRule "SUBLEDGERS" era) $
TRC
( SubLedgerEnv
slot
mbCurEpochNo
txIx
pp
chainAccountState
scriptsProvided
originalUtxo
(tx ^. isValidTxL)
, ledgerState
, subStAnnTxs
)
curEpochNo <- maybe (liftSTS $ epochFromSlot slot) pure mbCurEpochNo
let LedgerState _ certState = ledgerState
(utxoStateBeforeUtxow, certStateAfterCERTS) <-
if tx ^. isValidTxL == IsValid True
then do
let txBody = Tx TopTx era
tx Tx TopTx era
-> Getting (TxBody TopTx era) (Tx TopTx era) (TxBody TopTx era)
-> TxBody TopTx era
forall s a. s -> Getting a s a -> a
^. Getting (TxBody TopTx era) (Tx TopTx era) (TxBody 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
runTest $ validateTreasuryValue txBody (chainAccountState ^. casTreasuryL)
runTest $ validateAllRefScriptSize pp originalUtxo tx
let govState = UTxOState era
utxoStateAfterSubLedgers UTxOState era
-> Getting
(ConwayGovState era) (UTxOState era) (ConwayGovState era)
-> ConwayGovState era
forall s a. s -> Getting a s a -> a
^. (GovState era -> Const (ConwayGovState era) (GovState era))
-> UTxOState era -> Const (ConwayGovState era) (UTxOState era)
Getting (ConwayGovState era) (UTxOState era) (ConwayGovState era)
forall era (f :: * -> *).
Functor f =>
(GovState era -> f (GovState era))
-> UTxOState era -> f (UTxOState era)
utxosGovStateL
committee = ConwayGovState era
govState ConwayGovState era
-> Getting
(StrictMaybe (Committee era))
(ConwayGovState era)
(StrictMaybe (Committee era))
-> StrictMaybe (Committee era)
forall s a. s -> Getting a s a -> a
^. (StrictMaybe (Committee era)
-> Const
(StrictMaybe (Committee era)) (StrictMaybe (Committee era)))
-> GovState era
-> Const (StrictMaybe (Committee era)) (GovState era)
Getting
(StrictMaybe (Committee era))
(ConwayGovState era)
(StrictMaybe (Committee era))
forall era.
ConwayEraGov era =>
Lens' (GovState era) (StrictMaybe (Committee era))
Lens' (GovState era) (StrictMaybe (Committee era))
committeeGovStateL
proposals = ConwayGovState era
govState ConwayGovState era
-> Getting (Proposals era) (ConwayGovState era) (Proposals era)
-> Proposals era
forall s a. s -> Getting a s a -> a
^. (Proposals era -> Const (Proposals era) (Proposals era))
-> GovState era -> Const (Proposals era) (GovState era)
Getting (Proposals era) (ConwayGovState era) (Proposals era)
forall era.
ConwayEraGov era =>
Lens' (GovState era) (Proposals era)
Lens' (GovState era) (Proposals era)
proposalsGovStateL
committeeProposals = (forall (f1 :: * -> *) (f2 :: * -> *).
Functor f2 =>
(f1 (GovPurposeId 'CommitteePurpose)
-> f2 (f1 (GovPurposeId 'CommitteePurpose)))
-> GovRelation f1 -> f2 (GovRelation f1))
-> Proposals era
-> Map (GovPurposeId 'CommitteePurpose) (GovActionState era)
forall (p :: GovActionPurpose) era.
ToGovActionPurpose p =>
(forall (f1 :: * -> *) (f2 :: * -> *).
Functor f2 =>
(f1 (GovPurposeId p) -> f2 (f1 (GovPurposeId p)))
-> GovRelation f1 -> f2 (GovRelation f1))
-> Proposals era -> Map (GovPurposeId p) (GovActionState era)
proposalsWithPurpose (f1 (GovPurposeId 'CommitteePurpose)
-> f2 (f1 (GovPurposeId 'CommitteePurpose)))
-> GovRelation f1 -> f2 (GovRelation f1)
forall (f1 :: * -> *) (f2 :: * -> *).
Functor f2 =>
(f1 (GovPurposeId 'CommitteePurpose)
-> f2 (f1 (GovPurposeId 'CommitteePurpose)))
-> GovRelation f1 -> f2 (GovRelation f1)
grCommitteeL Proposals era
proposals
accounts = CertState era
certState CertState era
-> Getting (Accounts era) (CertState era) (Accounts era)
-> Accounts era
forall s a. s -> Getting a s a -> a
^. (DState era -> Const (Accounts era) (DState era))
-> CertState era -> Const (Accounts era) (CertState era)
forall era. EraCertState era => Lens' (CertState era) (DState era)
Lens' (CertState era) (DState era)
certDStateL ((DState era -> Const (Accounts era) (DState era))
-> CertState era -> Const (Accounts era) (CertState era))
-> ((Accounts era -> Const (Accounts era) (Accounts era))
-> DState era -> Const (Accounts era) (DState era))
-> Getting (Accounts era) (CertState era) (Accounts era)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Accounts era -> Const (Accounts era) (Accounts era))
-> DState era -> Const (Accounts era) (DState era)
forall era. Lens' (DState era) (Accounts era)
forall (t :: * -> *) era.
CanSetAccounts t =>
Lens' (t era) (Accounts era)
accountsL
runTest $ validateWithdrawalsDelegated accounts tx
let withdrawals = Tx TopTx era
tx Tx TopTx era
-> Getting Withdrawals (Tx TopTx era) Withdrawals -> Withdrawals
forall s a. s -> Getting a s a -> a
^. (TxBody TopTx era -> Const Withdrawals (TxBody TopTx era))
-> Tx TopTx era -> Const Withdrawals (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 Withdrawals (TxBody TopTx era))
-> Tx TopTx era -> Const Withdrawals (Tx TopTx era))
-> ((Withdrawals -> Const Withdrawals Withdrawals)
-> TxBody TopTx era -> Const Withdrawals (TxBody TopTx era))
-> Getting Withdrawals (Tx TopTx era) Withdrawals
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Withdrawals -> Const Withdrawals Withdrawals)
-> TxBody TopTx era -> Const Withdrawals (TxBody TopTx era)
forall era (l :: TxLevel).
EraTxBody era =>
Lens' (TxBody l era) Withdrawals
forall (l :: TxLevel). Lens' (TxBody l era) Withdrawals
withdrawalsTxBodyL
testIncompleteAndMissingWithdrawals accounts withdrawals
certStateAfterCERTS <-
trans @(EraRule "CERTS" era) $
TRC
( CertsEnv tx pp curEpochNo committee committeeProposals
, certState
& updateDormantDRepExpiries tx curEpochNo
& updateVotingDRepExpiries tx curEpochNo (pp ^. ppDRepActivityL)
& certDStateL . accountsL %~ drainAccounts withdrawals
, StrictSeq.fromStrict $ txBody ^. certsTxBodyL
)
let govSignal =
GovSignal
{ gsVotingProcedures :: VotingProcedures era
gsVotingProcedures = TxBody TopTx era
txBody TxBody TopTx era
-> Getting
(VotingProcedures era) (TxBody TopTx era) (VotingProcedures era)
-> VotingProcedures era
forall s a. s -> Getting a s a -> a
^. Getting
(VotingProcedures era) (TxBody TopTx 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 TopTx era
txBody TxBody TopTx era
-> Getting
(OSet (ProposalProcedure era))
(TxBody TopTx era)
(OSet (ProposalProcedure era))
-> OSet (ProposalProcedure era)
forall s a. s -> Getting a s a -> a
^. Getting
(OSet (ProposalProcedure era))
(TxBody TopTx 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 TopTx era
txBody TxBody TopTx era
-> Getting
(StrictSeq (TxCert era))
(TxBody TopTx era)
(StrictSeq (TxCert era))
-> StrictSeq (TxCert era)
forall s a. s -> Getting a s a -> a
^. Getting
(StrictSeq (TxCert era))
(TxBody TopTx era)
(StrictSeq (TxCert 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 "GOV" era) $
TRC
( GovEnv
(txIdTxBody txBody)
curEpochNo
pp
(govState ^. constitutionGovStateL . constitutionGuardrailsScriptHashL)
certStateAfterCERTS
(govState ^. committeeGovStateL)
, proposals
, govSignal
)
pure
( utxoStateAfterSubLedgers
& utxosGovStateL . proposalsGovStateL .~ proposalsState
, certStateAfterCERTS
)
else pure (utxoStateAfterSubLedgers, certStateAfterSubLedgers)
utxoStateFinal <-
trans @(EraRule "UTXOW" era) $
TRC
( DijkstraUtxoEnv slot pp certState originalUtxo scriptsProvided
, utxoStateBeforeUtxow
, stAnnTx
)
pure $ LedgerState utxoStateFinal certStateAfterCERTS
instance
( AlonzoEraTx era
, EraUTxO era
, BabbageEraTxBody era
, Embed (EraRule "UTXO" era) (DijkstraUTXOW era)
, State (EraRule "UTXO" era) ~ UTxOState era
, Environment (EraRule "UTXO" era) ~ DijkstraUtxoEnv era
, Script era ~ AlonzoScript era
, TxOut era ~ BabbageTxOut era
, ScriptsNeeded era ~ AlonzoScriptsNeeded era
, Signal (EraRule "UTXO" era) ~ StAnnTx 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
( STS (DijkstraLEDGER era)
, PredicateFailure (EraRule "LEDGER" era) ~ DijkstraLedgerPredFailure era
, Event (EraRule "LEDGER" era) ~ DijkstraLedgerEvent 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
( STS (DijkstraGOV era)
, PredicateFailure (EraRule "GOV" era) ~ DijkstraGovPredFailure era
, Event (EraRule "GOV" era) ~ Conway.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
( STS (ConwayCERTS era)
, PredicateFailure (EraRule "CERTS" era) ~ ConwayCertsPredFailure era
, Event (EraRule "CERTS" era) ~ Conway.ConwayCertsEvent 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
( STS (DijkstraSUBLEDGERS era)
, PredicateFailure (EraRule "SUBLEDGERS" era) ~ DijkstraSubLedgersPredFailure era
, Event (EraRule "SUBLEDGERS" era) ~ DijkstraSubLedgersEvent 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