Open
Description
We had a similar test:
-- | This property test checks the correctness of the TICKF transation.
-- TICKF is used by the consensus layer to get a ledger view in a computationally
-- cheaper way than using the TICK rule.
-- Therefore TICKF and TICK need to compute the same ledger view.
propTickfPerservesLedgerView :: NewEpochState ShelleyEra -> Property
propTickfPerservesLedgerView nes =
let (EpochNo e) = nesEL nes
slot = slotFromEpoch (EpochNo $ e + 1)
nes' = setDepositsToObligation (filterEmptyRewards nes)
tickNes = runShelleyBase $ applySTSTest @(ShelleyTICK ShelleyEra) (TRC ((), nes', slot))
tickFNes = runShelleyBase $ applySTSTest @(ShelleyTICKF ShelleyEra) (TRC ((), nes', slot))
in fromMaybe discard $ do
Right tickNes' <- pure tickNes
Right tickFNes' <- pure tickFNes
pure $ currentLedgerView tickNes' === currentLedgerView tickFNes'
which was removed in #5007, due to triggering assertions introduced in the same PR.
The goal of this ticket is to bring back the same kind of test that runs for all eras, not just Shelley, but also with a reasonable NewEpochState that is actually valid. Likely through the utilization of constraint generators.