Skip to content

Commit e1e3b92

Browse files
committed
Replace ConwayNewEpochPredFailure with Void
1 parent 855f74e commit e1e3b92

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
* Add `MkConwayTxBody` and all members of `ConwayTxBodyRaw`:
67
(`ConwayTxBodyRaw`, `ctbrAuxDataHash`, `ctbrCerts`, `ctbrCollateralInputs`,
78
`ctbrCollateralReturn`, `ctbrCurrentTreasuryValue`, `ctbrFee`, `ctbrMint`, `ctbrNetworkId`,

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
@@ -285,8 +285,6 @@ instance ToExpr (PParamsHKD StrictMaybe era) => ToExpr (RatifySignal era)
285285

286286
instance ToExpr (PParamsHKD StrictMaybe era) => ToExpr (EnactSignal era)
287287

288-
instance ToExpr (ConwayNewEpochPredFailure era)
289-
290288
instance
291289
( ToExpr (PParamsHKD Identity era)
292290
, 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
@@ -135,7 +135,6 @@ import Cardano.Ledger.Conway.Rules (
135135
ConwayGovCertPredFailure (..),
136136
ConwayGovPredFailure (..),
137137
ConwayLedgerPredFailure (..),
138-
ConwayNewEpochPredFailure,
139138
ConwayUtxosPredFailure,
140139
EnactSignal (..),
141140
GovEnv (..),
@@ -1273,7 +1272,7 @@ ppNEWEPOCH Allegra x = ppShelleyNewEpochPredicateFailure x
12731272
ppNEWEPOCH Mary x = ppShelleyNewEpochPredicateFailure x
12741273
ppNEWEPOCH Alonzo x = ppShelleyNewEpochPredicateFailure x
12751274
ppNEWEPOCH Babbage x = ppShelleyNewEpochPredicateFailure x
1276-
ppNEWEPOCH Conway x = ppConwayNewEpochPredFailure x
1275+
ppNEWEPOCH Conway _ = ppString "PredicateFailure (ConwayNEWEPOCH era) = Void, and can never Fail"
12771276

12781277
ppEPOCH :: Proof era -> PredicateFailure (EraRule "EPOCH" era) -> PDoc
12791278
ppEPOCH Shelley x = ppShelleyEpochPredFailure x
@@ -1718,13 +1717,6 @@ ppShelleyNewEpochPredicateFailure (MirFailure _) =
17181717
instance Reflect era => PrettyA (ShelleyNewEpochPredFailure era) where
17191718
prettyA = ppShelleyNewEpochPredicateFailure
17201719

1721-
ppConwayNewEpochPredFailure :: ConwayNewEpochPredFailure era -> PDoc
1722-
ppConwayNewEpochPredFailure (ConwayRules.CorruptRewardUpdate x) =
1723-
ppSexp "CorruptRewardUpdate" [ppRewardUpdate x]
1724-
1725-
instance PrettyA (ConwayNewEpochPredFailure era) where
1726-
prettyA = ppConwayNewEpochPredFailure
1727-
17281720
-- ===============
17291721

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

0 commit comments

Comments
 (0)