Skip to content

Commit 8afcdd3

Browse files
committed
Replace ConwayNewEpochPredFailure with Void
1 parent 39a08b0 commit 8afcdd3

File tree

5 files changed

+11
-40
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
-40
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`
56
* Remove `ConwayTxBody`
67
* Removed `era` parameter from `ConwayTxBodyRaw`
78
* Add `MkConwayTxBody` and all members of `ConwayTxBodyRaw`:

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

+9-25
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

@@ -26,7 +25,6 @@ import Cardano.Ledger.BaseTypes (
2625
ShelleyBase,
2726
StrictMaybe (SJust, SNothing),
2827
)
29-
import Cardano.Ledger.Coin (toDeltaCoin)
3028
import Cardano.Ledger.Conway.Core
3129
import Cardano.Ledger.Conway.Era (ConwayEPOCH, ConwayEra, ConwayNEWEPOCH)
3230
import Cardano.Ledger.Conway.Governance (
@@ -43,7 +41,6 @@ import Cardano.Ledger.Conway.Rules.Epoch (ConwayEpochEvent)
4341
import Cardano.Ledger.Credential (Credential)
4442
import Cardano.Ledger.Shelley.AdaPots (AdaPots (..), totalAdaPotsES)
4543
import Cardano.Ledger.Shelley.LedgerState
46-
import Cardano.Ledger.Shelley.Rewards (sumRewards)
4744
import Cardano.Ledger.Shelley.Rules (
4845
RupdEvent (..),
4946
ShelleyTICK,
@@ -52,29 +49,14 @@ import Cardano.Ledger.Shelley.Rules (
5249
)
5350
import Cardano.Ledger.Slot (EpochNo (EpochNo))
5451
import Cardano.Ledger.State
55-
import qualified Cardano.Ledger.Val as Val
5652
import Control.DeepSeq (NFData)
5753
import Control.State.Transition
5854
import Data.Default (Default (..))
5955
import qualified Data.Map.Strict as Map
6056
import Data.Set (Set)
57+
import Data.Void (Void)
6158
import GHC.Generics (Generic)
62-
import Lens.Micro ((%~), (&), (^.))
63-
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)
59+
import Lens.Micro ((%~), (&))
7860

7961
data ConwayNewEpochEvent era
8062
= DeltaRewardEvent !(Event (EraRule "RUPD" era))
@@ -121,14 +103,16 @@ instance
121103
, GovState era ~ ConwayGovState era
122104
, Eq (PredicateFailure (EraRule "RATIFY" era))
123105
, Show (PredicateFailure (EraRule "RATIFY" era))
106+
, Eq (PredicateFailure (ConwayNEWEPOCH era))
107+
, Show (PredicateFailure (ConwayNEWEPOCH era))
124108
) =>
125109
STS (ConwayNEWEPOCH era)
126110
where
127111
type State (ConwayNEWEPOCH era) = NewEpochState era
128112
type Signal (ConwayNEWEPOCH era) = EpochNo
129113
type Environment (ConwayNEWEPOCH era) = ()
130114
type BaseM (ConwayNEWEPOCH era) = ShelleyBase
131-
type PredicateFailure (ConwayNEWEPOCH era) = ConwayNewEpochPredFailure era
115+
type PredicateFailure (ConwayNEWEPOCH era) = Void
132116
type Event (ConwayNEWEPOCH era) = ConwayNewEpochEvent era
133117

134118
initialRules =
@@ -162,6 +146,8 @@ newEpochTransition ::
162146
, GovState era ~ ConwayGovState era
163147
, Eq (PredicateFailure (EraRule "RATIFY" era))
164148
, Show (PredicateFailure (EraRule "RATIFY" era))
149+
, Eq (PredicateFailure (ConwayNEWEPOCH era))
150+
, Show (PredicateFailure (ConwayNEWEPOCH era))
165151
) =>
166152
TransitionRule (ConwayNEWEPOCH era)
167153
newEpochTransition = do
@@ -214,9 +200,7 @@ updateRewards ::
214200
EpochNo ->
215201
RewardUpdate ->
216202
Rule (ConwayNEWEPOCH era) 'Transition (EpochState era)
217-
updateRewards es e ru'@(RewardUpdate dt dr rs_ df _) = do
218-
let totRs = sumRewards (es ^. prevPParamsEpochStateL . ppProtocolVersionL) rs_
219-
Val.isZero (dt <> dr <> toDeltaCoin totRs <> df) ?! CorruptRewardUpdate ru'
203+
updateRewards es e ru' = do
220204
let !(!es', filtered) = applyRUpdFiltered ru' es
221205
tellEvent $ RestrainedRewards e (frShelleyIgnored filtered) (frUnregistered filtered)
222206
-- This event (which is only generated once per epoch) must be generated even if the
@@ -226,8 +210,8 @@ updateRewards es e ru'@(RewardUpdate dt dr rs_ df _) = do
226210

227211
instance
228212
( STS (ConwayNEWEPOCH era)
229-
, PredicateFailure (EraRule "NEWEPOCH" era) ~ ConwayNewEpochPredFailure era
230213
, Event (EraRule "NEWEPOCH" era) ~ ConwayNewEpochEvent era
214+
, PredicateFailure (EraRule "NEWEPOCH" era) ~ PredicateFailure (ConwayNEWEPOCH era)
231215
) =>
232216
Embed (ConwayNEWEPOCH era) (ShelleyTICK era)
233217
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 _ = ppString "PredicateFailure (ConwayNEWEPOCH era) = Void, and can never Fail"
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)