Skip to content

Commit 90286f2

Browse files
committed
Replace ConwayNewEpochPredFailure with Void.
Replace the corresponding check with an assertion.
1 parent 2d1e94c commit 90286f2

File tree

5 files changed

+11
-34
lines changed
  • eras/conway/impl
  • libs
    • cardano-ledger-conformance/src/Test/Cardano/Ledger/Conformance/SpecTranslate/Conway
    • cardano-ledger-test/src/Test/Cardano/Ledger/Generic

5 files changed

+11
-34
lines changed

eras/conway/impl/CHANGELOG.md

+1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
## 1.20.0.0
44

5+
- Remove `ConwayNewEpochPredFailure` and replace it with `Void`. #5007
56
* Bump `ProtVerHigh ConwayEra` to `11`
67
* Remove `ConwayTxBody`
78
* Removed `era` parameter from `ConwayTxBodyRaw`

eras/conway/impl/src/Cardano/Ledger/Conway/Rules/NewEpoch.hs

+9-19
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717

1818
module Cardano.Ledger.Conway.Rules.NewEpoch (
1919
ConwayNEWEPOCH,
20-
ConwayNewEpochPredFailure (..),
2120
ConwayNewEpochEvent (..),
2221
) where
2322

@@ -54,28 +53,15 @@ import Cardano.Ledger.Slot (EpochNo (EpochNo))
5453
import Cardano.Ledger.State
5554
import qualified Cardano.Ledger.Val as Val
5655
import Control.DeepSeq (NFData)
56+
import Control.Exception (assert)
5757
import Control.State.Transition
5858
import Data.Default (Default (..))
5959
import qualified Data.Map.Strict as Map
6060
import Data.Set (Set)
61+
import Data.Void (Void)
6162
import GHC.Generics (Generic)
6263
import Lens.Micro ((%~), (&), (^.))
6364

64-
newtype ConwayNewEpochPredFailure era
65-
= CorruptRewardUpdate
66-
RewardUpdate -- The reward update which violates an invariant
67-
deriving (Generic)
68-
69-
deriving instance Eq (ConwayNewEpochPredFailure era)
70-
71-
deriving instance
72-
( Show (PredicateFailure (EraRule "EPOCH" era))
73-
, Show (PredicateFailure (EraRule "RATIFY" era))
74-
) =>
75-
Show (ConwayNewEpochPredFailure era)
76-
77-
instance NFData (ConwayNewEpochPredFailure era)
78-
7965
data ConwayNewEpochEvent era
8066
= DeltaRewardEvent !(Event (EraRule "RUPD" era))
8167
| RestrainedRewards
@@ -121,14 +107,16 @@ instance
121107
, GovState era ~ ConwayGovState era
122108
, Eq (PredicateFailure (EraRule "RATIFY" era))
123109
, Show (PredicateFailure (EraRule "RATIFY" era))
110+
, Eq (PredicateFailure (ConwayNEWEPOCH era))
111+
, Show (PredicateFailure (ConwayNEWEPOCH era))
124112
) =>
125113
STS (ConwayNEWEPOCH era)
126114
where
127115
type State (ConwayNEWEPOCH era) = NewEpochState era
128116
type Signal (ConwayNEWEPOCH era) = EpochNo
129117
type Environment (ConwayNEWEPOCH era) = ()
130118
type BaseM (ConwayNEWEPOCH era) = ShelleyBase
131-
type PredicateFailure (ConwayNEWEPOCH era) = ConwayNewEpochPredFailure era
119+
type PredicateFailure (ConwayNEWEPOCH era) = Void
132120
type Event (ConwayNEWEPOCH era) = ConwayNewEpochEvent era
133121

134122
initialRules =
@@ -162,6 +150,8 @@ newEpochTransition ::
162150
, GovState era ~ ConwayGovState era
163151
, Eq (PredicateFailure (EraRule "RATIFY" era))
164152
, Show (PredicateFailure (EraRule "RATIFY" era))
153+
, Eq (PredicateFailure (ConwayNEWEPOCH era))
154+
, Show (PredicateFailure (ConwayNEWEPOCH era))
165155
) =>
166156
TransitionRule (ConwayNEWEPOCH era)
167157
newEpochTransition = do
@@ -216,7 +206,7 @@ updateRewards ::
216206
Rule (ConwayNEWEPOCH era) 'Transition (EpochState era)
217207
updateRewards es e ru'@(RewardUpdate dt dr rs_ df _) = do
218208
let totRs = sumRewards (es ^. prevPParamsEpochStateL . ppProtocolVersionL) rs_
219-
Val.isZero (dt <> dr <> toDeltaCoin totRs <> df) ?! CorruptRewardUpdate ru'
209+
in assert (Val.isZero (dt <> dr <> toDeltaCoin totRs <> df)) (pure ())
220210
let !(!es', filtered) = applyRUpdFiltered ru' es
221211
tellEvent $ RestrainedRewards e (frShelleyIgnored filtered) (frUnregistered filtered)
222212
-- This event (which is only generated once per epoch) must be generated even if the
@@ -226,8 +216,8 @@ updateRewards es e ru'@(RewardUpdate dt dr rs_ df _) = do
226216

227217
instance
228218
( STS (ConwayNEWEPOCH era)
229-
, PredicateFailure (EraRule "NEWEPOCH" era) ~ ConwayNewEpochPredFailure era
230219
, Event (EraRule "NEWEPOCH" era) ~ ConwayNewEpochEvent era
220+
, PredicateFailure (EraRule "NEWEPOCH" era) ~ PredicateFailure (ConwayNEWEPOCH era)
231221
) =>
232222
Embed (ConwayNEWEPOCH era) (ShelleyTICK era)
233223
where

eras/conway/impl/testlib/Test/Cardano/Ledger/Conway/TreeDiff.hs

-2
Original file line numberDiff line numberDiff line change
@@ -281,8 +281,6 @@ instance ToExpr (PParamsHKD StrictMaybe era) => ToExpr (RatifySignal era)
281281

282282
instance ToExpr (PParamsHKD StrictMaybe era) => ToExpr (EnactSignal era)
283283

284-
instance ToExpr (ConwayNewEpochPredFailure era)
285-
286284
instance
287285
( ToExpr (PParamsHKD Identity era)
288286
, ToExpr (PParamsHKD StrictMaybe era)

libs/cardano-ledger-conformance/src/Test/Cardano/Ledger/Conformance/SpecTranslate/Conway/Cert.hs

-4
Original file line numberDiff line numberDiff line change
@@ -223,7 +223,3 @@ instance
223223
<$> toSpecRep nesEL
224224
<*> toSpecRep nesEs
225225
<*> toSpecRep nesRu
226-
227-
instance SpecTranslate ctx (ConwayNewEpochPredFailure era) where
228-
type SpecRep (ConwayNewEpochPredFailure era) = OpaqueErrorString
229-
toSpecRep = pure . showOpaqueErrorString

libs/cardano-ledger-test/src/Test/Cardano/Ledger/Generic/PrettyCore.hs

+1-9
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,6 @@ import Cardano.Ledger.Conway.Rules (
134134
ConwayGovCertPredFailure (..),
135135
ConwayGovPredFailure (..),
136136
ConwayLedgerPredFailure (..),
137-
ConwayNewEpochPredFailure,
138137
ConwayUtxosPredFailure,
139138
EnactSignal (..),
140139
GovEnv (..),
@@ -1265,7 +1264,7 @@ ppNEWEPOCH Allegra x = ppShelleyNewEpochPredicateFailure x
12651264
ppNEWEPOCH Mary x = ppShelleyNewEpochPredicateFailure x
12661265
ppNEWEPOCH Alonzo x = ppShelleyNewEpochPredicateFailure x
12671266
ppNEWEPOCH Babbage x = ppShelleyNewEpochPredicateFailure x
1268-
ppNEWEPOCH Conway x = ppConwayNewEpochPredFailure x
1267+
ppNEWEPOCH Conway x = absurd x
12691268

12701269
ppEPOCH :: Proof era -> PredicateFailure (EraRule "EPOCH" era) -> PDoc
12711270
ppEPOCH Shelley x = ppShelleyEpochPredFailure x
@@ -1710,13 +1709,6 @@ ppShelleyNewEpochPredicateFailure (MirFailure _) =
17101709
instance Reflect era => PrettyA (ShelleyNewEpochPredFailure era) where
17111710
prettyA = ppShelleyNewEpochPredicateFailure
17121711

1713-
ppConwayNewEpochPredFailure :: ConwayNewEpochPredFailure era -> PDoc
1714-
ppConwayNewEpochPredFailure (ConwayRules.CorruptRewardUpdate x) =
1715-
ppSexp "CorruptRewardUpdate" [ppRewardUpdate x]
1716-
1717-
instance PrettyA (ConwayNewEpochPredFailure era) where
1718-
prettyA = ppConwayNewEpochPredFailure
1719-
17201712
-- ===============
17211713

17221714
ppShelleyEpochPredFailure :: forall era. ShelleyEpochPredFailure era -> PDoc

0 commit comments

Comments
 (0)