Skip to content

Commit 2f56201

Browse files
committed
Implement SUBGOVCERT by reusing the GOVCERT transition
1 parent 6f94465 commit 2f56201

File tree

7 files changed

+48
-13
lines changed

7 files changed

+48
-13
lines changed

eras/dijkstra/impl/src/Cardano/Ledger/Dijkstra/Rules/Ledger.hs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,7 @@ import Cardano.Ledger.Dijkstra.Era (
9191
import Cardano.Ledger.Dijkstra.Rules.Certs ()
9292
import Cardano.Ledger.Dijkstra.Rules.Gov (DijkstraGovPredFailure)
9393
import Cardano.Ledger.Dijkstra.Rules.GovCert (DijkstraGovCertPredFailure)
94+
import Cardano.Ledger.Dijkstra.Rules.SubGovCert (DijkstraSubGovCertPredFailure)
9495
import Cardano.Ledger.Dijkstra.Rules.SubLedger
9596
import Cardano.Ledger.Dijkstra.Rules.SubLedgers
9697
import Cardano.Ledger.Dijkstra.Rules.SubPool
@@ -481,6 +482,8 @@ instance
481482
, InjectRuleEvent "SUBPOOL" PoolEvent era
482483
, InjectRuleFailure "SUBPOOL" DijkstraSubPoolPredFailure era
483484
, InjectRuleFailure "SUBPOOL" ShelleyPoolPredFailure era
485+
, InjectRuleFailure "SUBGOVCERT" DijkstraSubGovCertPredFailure era
486+
, InjectRuleFailure "SUBGOVCERT" ConwayGovCertPredFailure era
484487
, TxCert era ~ DijkstraTxCert era
485488
) =>
486489
Embed (DijkstraLEDGER era) (ShelleyLEDGERS era)
@@ -578,6 +581,8 @@ instance
578581
, InjectRuleEvent "SUBPOOL" DijkstraSubPoolEvent era
579582
, InjectRuleFailure "SUBPOOL" ShelleyPoolPredFailure era
580583
, InjectRuleFailure "SUBPOOL" DijkstraSubPoolPredFailure era
584+
, InjectRuleFailure "SUBGOVCERT" DijkstraSubGovCertPredFailure era
585+
, InjectRuleFailure "SUBGOVCERT" ConwayGovCertPredFailure era
581586
, TxCert era ~ DijkstraTxCert era
582587
) =>
583588
Embed (DijkstraSUBLEDGERS era) (DijkstraLEDGER era)

eras/dijkstra/impl/src/Cardano/Ledger/Dijkstra/Rules/Mempool.hs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ import Cardano.Ledger.Conway.Governance (
3939
)
4040
import Cardano.Ledger.Conway.Rules (
4141
CertsEnv,
42+
ConwayGovCertPredFailure,
4243
ConwayLedgerPredFailure (ConwayMempoolFailure),
4344
GovEnv,
4445
GovSignal,
@@ -64,6 +65,7 @@ import Cardano.Ledger.Dijkstra.Rules.Ledger (
6465
DijkstraLedgerPredFailure (..),
6566
conwayToDijkstraLedgerPredFailure,
6667
)
68+
import Cardano.Ledger.Dijkstra.Rules.SubGovCert (DijkstraSubGovCertPredFailure)
6769
import Cardano.Ledger.Dijkstra.Rules.SubLedgers (DijkstraSubLedgersPredFailure (..))
6870
import Cardano.Ledger.Dijkstra.Rules.SubPool (DijkstraSubPoolEvent, DijkstraSubPoolPredFailure)
6971
import Cardano.Ledger.Dijkstra.Rules.Utxo (DijkstraUtxoPredFailure)
@@ -264,6 +266,8 @@ instance
264266
, InjectRuleEvent "SUBPOOL" PoolEvent era
265267
, InjectRuleFailure "SUBPOOL" DijkstraSubPoolPredFailure era
266268
, InjectRuleFailure "SUBPOOL" ShelleyPoolPredFailure era
269+
, InjectRuleFailure "SUBGOVCERT" DijkstraSubGovCertPredFailure era
270+
, InjectRuleFailure "SUBGOVCERT" ConwayGovCertPredFailure era
267271
, TxCert era ~ DijkstraTxCert era
268272
) =>
269273
Embed (DijkstraLEDGER era) (DijkstraMEMPOOL era)

eras/dijkstra/impl/src/Cardano/Ledger/Dijkstra/Rules/SubCert.hs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ import Cardano.Ledger.Conway.Rules (
3535
CertEnv (..),
3636
ConwayDelegEnv (..),
3737
ConwayGovCertEnv (..),
38+
ConwayGovCertPredFailure,
3839
)
3940
import Cardano.Ledger.Conway.State
4041
import Cardano.Ledger.Dijkstra.Era (
@@ -222,9 +223,12 @@ instance
222223

223224
instance
224225
( ConwayEraGov era
226+
, ConwayEraPParams era
225227
, ConwayEraCertState era
226228
, EraRule "SUBCERT" era ~ DijkstraSUBCERT era
227229
, EraRule "SUBGOVCERT" era ~ DijkstraSUBGOVCERT era
230+
, InjectRuleFailure "SUBGOVCERT" ConwayGovCertPredFailure era
231+
, InjectRuleFailure "SUBGOVCERT" DijkstraSubGovCertPredFailure era
228232
) =>
229233
Embed (DijkstraSUBGOVCERT era) (DijkstraSUBCERT era)
230234
where

eras/dijkstra/impl/src/Cardano/Ledger/Dijkstra/Rules/SubCerts.hs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ import Cardano.Ledger.Binary (
3232
import Cardano.Ledger.Binary.Coders
3333
import Cardano.Ledger.Conway.Core
3434
import Cardano.Ledger.Conway.Governance
35-
import Cardano.Ledger.Conway.Rules (CertEnv (..))
35+
import Cardano.Ledger.Conway.Rules (CertEnv (..), ConwayGovCertPredFailure)
3636
import Cardano.Ledger.Conway.State
3737
import Cardano.Ledger.Dijkstra.Era (
3838
DijkstraEra,
@@ -43,6 +43,7 @@ import Cardano.Ledger.Dijkstra.Era (
4343
DijkstraSUBPOOL,
4444
)
4545
import Cardano.Ledger.Dijkstra.Rules.SubCert (DijkstraSubCertPredFailure)
46+
import Cardano.Ledger.Dijkstra.Rules.SubGovCert (DijkstraSubGovCertPredFailure)
4647
import Cardano.Ledger.Dijkstra.Rules.SubPool (DijkstraSubPoolEvent, DijkstraSubPoolPredFailure)
4748
import Cardano.Ledger.Dijkstra.TxCert
4849
import Cardano.Ledger.Shelley.Rules (PoolEvent, ShelleyPoolPredFailure)
@@ -145,6 +146,7 @@ dijkstraSubCertsTransition = do
145146
instance
146147
( ConwayEraGov era
147148
, ConwayEraCertState era
149+
, ConwayEraPParams era
148150
, EraRule "SUBCERTS" era ~ DijkstraSUBCERTS era
149151
, EraRule "SUBCERT" era ~ DijkstraSUBCERT era
150152
, EraRule "SUBDELEG" era ~ DijkstraSUBDELEG era
@@ -154,6 +156,8 @@ instance
154156
, InjectRuleEvent "SUBPOOL" PoolEvent era
155157
, InjectRuleFailure "SUBPOOL" DijkstraSubPoolPredFailure era
156158
, InjectRuleFailure "SUBPOOL" ShelleyPoolPredFailure era
159+
, InjectRuleFailure "SUBGOVCERT" DijkstraSubGovCertPredFailure era
160+
, InjectRuleFailure "SUBGOVCERT" ConwayGovCertPredFailure era
157161
, TxCert era ~ DijkstraTxCert era
158162
) =>
159163
Embed (DijkstraSUBCERT era) (DijkstraSUBCERTS era)

eras/dijkstra/impl/src/Cardano/Ledger/Dijkstra/Rules/SubGovCert.hs

Lines changed: 17 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -25,14 +25,21 @@ import Cardano.Ledger.Binary (
2525
EncCBOR (..),
2626
)
2727
import Cardano.Ledger.Conway.Core
28-
import Cardano.Ledger.Conway.Rules (ConwayGovCertEnv)
28+
import Cardano.Ledger.Conway.Rules (
29+
ConwayGovCertEnv,
30+
ConwayGovCertPredFailure,
31+
conwayGovCertTransition,
32+
)
2933
import Cardano.Ledger.Conway.State
3034
import Cardano.Ledger.Conway.TxCert (ConwayGovCert)
3135
import Cardano.Ledger.Dijkstra.Era (
3236
DijkstraEra,
3337
DijkstraSUBGOVCERT,
3438
)
35-
import Cardano.Ledger.Dijkstra.Rules.GovCert (DijkstraGovCertPredFailure)
39+
import Cardano.Ledger.Dijkstra.Rules.GovCert (
40+
DijkstraGovCertPredFailure,
41+
conwayToDijkstraGovCertPredFailure,
42+
)
3643
import Control.DeepSeq (NFData)
3744
import Control.State.Transition.Extended (
3845
BaseM,
@@ -42,9 +49,6 @@ import Control.State.Transition.Extended (
4249
STS,
4350
Signal,
4451
State,
45-
TRC (TRC),
46-
TransitionRule,
47-
judgmentContext,
4852
transitionRules,
4953
)
5054
import Data.Void (Void)
@@ -59,12 +63,18 @@ type instance EraRuleFailure "SUBGOVCERT" DijkstraEra = DijkstraSubGovCertPredFa
5963

6064
type instance EraRuleEvent "SUBGOVCERT" DijkstraEra = VoidEraRule "SUBGOVCERT" DijkstraEra
6165

66+
instance InjectRuleFailure "SUBGOVCERT" ConwayGovCertPredFailure DijkstraEra where
67+
injectFailure = DijkstraSubGovCertPredFailure . conwayToDijkstraGovCertPredFailure
68+
6269
instance InjectRuleFailure "SUBGOVCERT" DijkstraSubGovCertPredFailure DijkstraEra
6370

6471
instance
6572
( EraGov era
66-
, EraCertState era
73+
, ConwayEraPParams era
74+
, ConwayEraCertState era
6775
, EraRule "SUBGOVCERT" era ~ DijkstraSUBGOVCERT era
76+
, InjectRuleFailure "SUBGOVCERT" ConwayGovCertPredFailure era
77+
, InjectRuleFailure "SUBGOVCERT" DijkstraSubGovCertPredFailure era
6878
) =>
6979
STS (DijkstraSUBGOVCERT era)
7080
where
@@ -75,9 +85,4 @@ instance
7585
type PredicateFailure (DijkstraSUBGOVCERT era) = DijkstraSubGovCertPredFailure era
7686
type Event (DijkstraSUBGOVCERT era) = Void
7787

78-
transitionRules = [dijkstraSubGovCertTransition @era]
79-
80-
dijkstraSubGovCertTransition :: TransitionRule (EraRule "SUBGOVCERT" era)
81-
dijkstraSubGovCertTransition = do
82-
TRC (_, st, _) <- judgmentContext
83-
pure st
88+
transitionRules = [conwayGovCertTransition]

eras/dijkstra/impl/src/Cardano/Ledger/Dijkstra/Rules/SubLedger.hs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ import Cardano.Ledger.Coin (Coin)
3333
import Cardano.Ledger.Conway.Core
3434
import Cardano.Ledger.Conway.Governance
3535
import Cardano.Ledger.Conway.Rules (
36+
ConwayGovCertPredFailure,
3637
GovEnv (..),
3738
GovSignal (..),
3839
gsCertificates,
@@ -55,6 +56,7 @@ import Cardano.Ledger.Dijkstra.Era (
5556
)
5657
import Cardano.Ledger.Dijkstra.Rules.SubCerts (DijkstraSubCertsPredFailure (..), SubCertsEnv (..))
5758
import Cardano.Ledger.Dijkstra.Rules.SubGov (DijkstraSubGovPredFailure (..))
59+
import Cardano.Ledger.Dijkstra.Rules.SubGovCert (DijkstraSubGovCertPredFailure)
5860
import Cardano.Ledger.Dijkstra.Rules.SubPool (DijkstraSubPoolEvent, DijkstraSubPoolPredFailure)
5961
import Cardano.Ledger.Dijkstra.Rules.SubUtxow (DijkstraSubUtxowPredFailure (..))
6062
import Cardano.Ledger.Dijkstra.TxCert
@@ -188,6 +190,8 @@ instance
188190
, InjectRuleEvent "SUBPOOL" DijkstraSubPoolEvent era
189191
, InjectRuleFailure "SUBPOOL" ShelleyPoolPredFailure era
190192
, InjectRuleFailure "SUBPOOL" DijkstraSubPoolPredFailure era
193+
, InjectRuleFailure "SUBGOVCERT" DijkstraSubGovCertPredFailure era
194+
, InjectRuleFailure "SUBGOVCERT" ConwayGovCertPredFailure era
191195
, TxCert era ~ DijkstraTxCert era
192196
) =>
193197
STS (DijkstraSUBLEDGER era)
@@ -221,6 +225,8 @@ dijkstraSubLedgersTransition ::
221225
, InjectRuleEvent "SUBPOOL" DijkstraSubPoolEvent era
222226
, InjectRuleFailure "SUBPOOL" ShelleyPoolPredFailure era
223227
, InjectRuleFailure "SUBPOOL" DijkstraSubPoolPredFailure era
228+
, InjectRuleFailure "SUBGOVCERT" DijkstraSubGovCertPredFailure era
229+
, InjectRuleFailure "SUBGOVCERT" ConwayGovCertPredFailure era
224230
, STS (EraRule "SUBLEDGER" era)
225231
, TxCert era ~ DijkstraTxCert era
226232
) =>
@@ -306,6 +312,7 @@ instance
306312

307313
instance
308314
( ConwayEraGov era
315+
, ConwayEraPParams era
309316
, ConwayEraCertState era
310317
, EraRule "SUBCERTS" era ~ DijkstraSUBCERTS era
311318
, EraRule "SUBCERT" era ~ DijkstraSUBCERT era
@@ -316,6 +323,8 @@ instance
316323
, InjectRuleEvent "SUBPOOL" PoolEvent era
317324
, InjectRuleFailure "SUBPOOL" DijkstraSubPoolPredFailure era
318325
, InjectRuleFailure "SUBPOOL" ShelleyPoolPredFailure era
326+
, InjectRuleFailure "SUBGOVCERT" DijkstraSubGovCertPredFailure era
327+
, InjectRuleFailure "SUBGOVCERT" ConwayGovCertPredFailure era
319328
, TxCert era ~ DijkstraTxCert era
320329
) =>
321330
Embed (DijkstraSUBCERTS era) (DijkstraSUBLEDGER era)

eras/dijkstra/impl/src/Cardano/Ledger/Dijkstra/Rules/SubLedgers.hs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ import Cardano.Ledger.Binary (
2929
)
3030
import Cardano.Ledger.Conway.Core
3131
import Cardano.Ledger.Conway.Governance
32+
import Cardano.Ledger.Conway.Rules (ConwayGovCertPredFailure)
3233
import Cardano.Ledger.Conway.State
3334
import Cardano.Ledger.Dijkstra.Era (
3435
DijkstraEra,
@@ -44,6 +45,7 @@ import Cardano.Ledger.Dijkstra.Era (
4445
DijkstraSUBUTXOS,
4546
DijkstraSUBUTXOW,
4647
)
48+
import Cardano.Ledger.Dijkstra.Rules.SubGovCert (DijkstraSubGovCertPredFailure)
4749
import Cardano.Ledger.Dijkstra.Rules.SubLedger (DijkstraSubLedgerPredFailure (..))
4850
import Cardano.Ledger.Dijkstra.Rules.SubPool (DijkstraSubPoolEvent, DijkstraSubPoolPredFailure (..))
4951
import Cardano.Ledger.Dijkstra.TxCert
@@ -167,6 +169,8 @@ instance
167169
, InjectRuleEvent "SUBPOOL" DijkstraSubPoolEvent era
168170
, InjectRuleFailure "SUBPOOL" ShelleyPoolPredFailure era
169171
, InjectRuleFailure "SUBPOOL" DijkstraSubPoolPredFailure era
172+
, InjectRuleFailure "SUBGOVCERT" DijkstraSubGovCertPredFailure era
173+
, InjectRuleFailure "SUBGOVCERT" ConwayGovCertPredFailure era
170174
, TxCert era ~ DijkstraTxCert era
171175
) =>
172176
Embed (DijkstraSUBLEDGER era) (DijkstraSUBLEDGERS era)

0 commit comments

Comments
 (0)