Skip to content

Commit 17fafc0

Browse files
committed
Apply LEDGER validations in SUBLEDGER
1 parent bd7347b commit 17fafc0

1 file changed

Lines changed: 16 additions & 6 deletions

File tree

  • eras/dijkstra/impl/src/Cardano/Ledger/Dijkstra/Rules

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

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,8 @@ import Cardano.Ledger.Conway.Rules (
4343
gsCertificates,
4444
gsProposalProcedures,
4545
gsVotingProcedures,
46+
validateTreasuryValue,
47+
validateWithdrawalsDelegated,
4648
)
4749
import Cardano.Ledger.Conway.State
4850
import Cardano.Ledger.Dijkstra.Era (
@@ -67,6 +69,7 @@ import Cardano.Ledger.Dijkstra.Rules.SubPool (DijkstraSubPoolEvent, DijkstraSubP
6769
import Cardano.Ledger.Dijkstra.Rules.SubUtxow (DijkstraSubUtxowPredFailure (..))
6870
import Cardano.Ledger.Dijkstra.Rules.Utxow (DijkstraUtxowPredFailure (..))
6971
import Cardano.Ledger.Dijkstra.TxCert
72+
import Cardano.Ledger.Rules.ValidationMode (runTest)
7073
import Cardano.Ledger.Shelley.LedgerState
7174
import Cardano.Ledger.Shelley.Rules (
7275
LedgerEnv (..),
@@ -230,6 +233,7 @@ dijkstraSubLedgersTransition ::
230233
, EraRule "SUBGOVCERT" era ~ DijkstraSUBGOVCERT era
231234
, Embed (EraRule "SUBGOV" era) (DijkstraSUBLEDGER era)
232235
, Embed (EraRule "SUBUTXOW" era) (DijkstraSUBLEDGER era)
236+
, InjectRuleFailure "SUBLEDGER" ConwayLedgerPredFailure era
233237
, InjectRuleEvent "SUBPOOL" PoolEvent era
234238
, InjectRuleEvent "SUBPOOL" DijkstraSubPoolEvent era
235239
, InjectRuleFailure "SUBPOOL" ShelleyPoolPredFailure era
@@ -244,22 +248,28 @@ dijkstraSubLedgersTransition ::
244248
TransitionRule (EraRule "SUBLEDGER" era)
245249
dijkstraSubLedgersTransition = do
246250
TRC
247-
( LedgerEnv slot mbCurEpochNo _ pp _
248-
, ledgerState
251+
( LedgerEnv slot mbCurEpochNo _ pp chainAccountState
252+
, ledgerState@(LedgerState utxoState certState)
249253
, tx
250254
) <-
251255
judgmentContext
252256

253257
curEpochNo <- maybe (liftSTS $ epochFromSlot slot) pure mbCurEpochNo
254258
let txBody = tx ^. bodyTxL
255-
let govState = ledgerState ^. lsUTxOStateL . utxosGovStateL
259+
let govState = utxoState ^. utxosGovStateL
256260
let committee = govState ^. committeeGovStateL
257261
let proposals = govState ^. proposalsGovStateL
262+
accounts = certState ^. certDStateL . accountsL
263+
264+
runTest $ validateTreasuryValue txBody (chainAccountState ^. casTreasuryL)
265+
266+
runTest $ validateWithdrawalsDelegated accounts tx
267+
258268
certStateAfterSubCerts <-
259269
trans @(EraRule "SUBCERTS" era) $
260270
TRC
261271
( SubCertsEnv tx pp curEpochNo committee (proposalsWithPurpose grCommitteeL proposals)
262-
, ledgerState ^. lsCertStateL
272+
, certState
263273
, StrictSeq.fromStrict $ txBody ^. certsTxBodyL
264274
)
265275
let govEnv =
@@ -287,8 +297,8 @@ dijkstraSubLedgersTransition = do
287297
utxoStateAfterSubUtxow <-
288298
trans @(EraRule "SUBUTXOW" era) $
289299
TRC
290-
( UtxoEnv @era slot pp (ledgerState ^. lsCertStateL)
291-
, ledgerState ^. lsUTxOStateL
300+
( UtxoEnv @era slot pp certState
301+
, utxoState
292302
, tx
293303
)
294304
pure $

0 commit comments

Comments
 (0)