Skip to content

Commit a18f850

Browse files
committed
Make genRegTxCert a method of ShelleyEraImp
1 parent e630cf0 commit a18f850

File tree

8 files changed

+63
-31
lines changed
  • eras

8 files changed

+63
-31
lines changed

eras/allegra/impl/testlib/Test/Cardano/Ledger/Allegra/ImpTest.hs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ instance ShelleyEraImp AllegraEra where
4343
fixupTx = shelleyFixupTx
4444
expectTxSuccess = impShelleyExpectTxSuccess
4545
registerStakeCredential = shelleyRegisterStakeCredential
46+
genRegTxCert = shelleyGenRegTxCert
4647

4748
impAllegraSatisfyNativeScript ::
4849
( AllegraEraScript era

eras/alonzo/impl/testlib/Test/Cardano/Ledger/Alonzo/ImpTest.hs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -429,6 +429,7 @@ instance ShelleyEraImp AlonzoEra where
429429
fixupTx = alonzoFixupTx
430430
expectTxSuccess = impAlonzoExpectTxSuccess
431431
registerStakeCredential = shelleyRegisterStakeCredential
432+
genRegTxCert = shelleyGenRegTxCert
432433

433434
instance MaryEraImp AlonzoEra
434435

eras/babbage/impl/testlib/Test/Cardano/Ledger/Babbage/ImpTest.hs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ instance ShelleyEraImp BabbageEra where
5454
fixupTx = babbageFixupTx
5555
expectTxSuccess = impBabbageExpectTxSuccess
5656
registerStakeCredential = shelleyRegisterStakeCredential
57+
genRegTxCert = shelleyGenRegTxCert
5758

5859
babbageFixupTx ::
5960
( HasCallStack

eras/conway/impl/testlib/Test/Cardano/Ledger/Conway/Imp/DelegSpec.hs

Lines changed: 17 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -728,37 +728,33 @@ conwayEraSpecificSpec ::
728728
conwayEraSpecificSpec = do
729729
describe "Register stake credential" $ do
730730
it "Without any deposit" $ do
731-
freshKeyHash >>= \kh -> do
732-
let cred = KeyHashObj kh
733-
regTxCert <- genRegTxCert cred
734-
submitTx_ $
735-
mkBasicTx mkBasicTxBody
736-
& bodyTxL . certsTxBodyL .~ [regTxCert]
737-
expectRegistered cred
731+
(regTxCert, cred) <- genRegTxCert
732+
submitTx_ $
733+
mkBasicTx mkBasicTxBody
734+
& bodyTxL . certsTxBodyL .~ [regTxCert]
735+
expectRegistered cred
738736

739737
describe "Delegate stake" $ do
740738
it "Register and delegate in the same transaction" $ do
741-
expectedDeposit <- getsNES $ nesEsL . curPParamsEpochStateL . ppKeyDepositL
742-
743-
cred <- KeyHashObj <$> freshKeyHash
739+
(regTxCert1, cred1) <- genRegTxCert
744740
poolKh <- freshKeyHash
745741
registerPoolWithDeposit poolKh
746742
submitTx_ $
747743
mkBasicTx mkBasicTxBody
748744
& bodyTxL . certsTxBodyL
749-
.~ [ RegDepositTxCert cred expectedDeposit
750-
, DelegTxCert cred (DelegStake poolKh)
745+
.~ [ regTxCert1
746+
, DelegTxCert cred1 (DelegStake poolKh)
751747
]
752-
expectDelegatedToPool cred poolKh
748+
expectDelegatedToPool cred1 poolKh
753749

754-
freshKeyHash >>= \kh -> do
755-
submitTx_ $
756-
mkBasicTx mkBasicTxBody
757-
& bodyTxL . certsTxBodyL
758-
.~ [ RegDepositTxCert (KeyHashObj kh) expectedDeposit
759-
, DelegStakeTxCert (KeyHashObj kh) poolKh -- using the pattern from Shelley
760-
]
761-
expectDelegatedToPool (KeyHashObj kh) poolKh
750+
(regTxCert2, cred2) <- genRegTxCert
751+
submitTx_ $
752+
mkBasicTx mkBasicTxBody
753+
& bodyTxL . certsTxBodyL
754+
.~ [ regTxCert2
755+
, DelegStakeTxCert cred2 poolKh -- using the pattern from Shelley
756+
]
757+
expectDelegatedToPool cred2 poolKh
762758

763759
expectRegistered :: (HasCallStack, ConwayEraImp era) => Credential 'Staking -> ImpTestM era ()
764760
expectRegistered cred = do

eras/conway/impl/testlib/Test/Cardano/Ledger/Conway/ImpTest.hs

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ module Test.Cardano.Ledger.Conway.ImpTest (
4545
submitYesVote_,
4646
submitFailingVote,
4747
trySubmitVote,
48-
genRegTxCert,
48+
conwayGenRegTxCert,
4949
genUnRegTxCert,
5050
registerDRep,
5151
unRegisterDRep,
@@ -302,6 +302,7 @@ instance ShelleyEraImp ConwayEra where
302302
fixupTx = babbageFixupTx
303303
expectTxSuccess = impBabbageExpectTxSuccess
304304
registerStakeCredential = conwayRegisterStakeCredential
305+
genRegTxCert = conwayGenRegTxCert
305306

306307
instance MaryEraImp ConwayEra
307308

@@ -408,20 +409,22 @@ genUnRegTxCert stakingCredential = do
408409
, UnRegDepositTxCert stakingCredential (fromCompact (accountState ^. depositAccountStateL))
409410
]
410411

411-
genRegTxCert ::
412+
conwayGenRegTxCert ::
412413
forall era.
413414
( ShelleyEraImp era
414415
, ShelleyEraTxCert era
415416
, ConwayEraTxCert era
416417
) =>
417-
Credential 'Staking ->
418-
ImpTestM era (TxCert era)
419-
genRegTxCert stakingCredential =
420-
oneof
421-
[ pure $ RegTxCert stakingCredential
422-
, RegDepositTxCert stakingCredential
423-
<$> getsNES (nesEsL . curPParamsEpochStateL . ppKeyDepositL)
424-
]
418+
ImpTestM era (TxCert era, Credential 'Staking)
419+
conwayGenRegTxCert = do
420+
stakingCredential <- KeyHashObj <$> freshKeyHash
421+
cert <-
422+
oneof
423+
[ pure $ RegTxCert stakingCredential
424+
, RegDepositTxCert stakingCredential
425+
<$> getsNES (nesEsL . curPParamsEpochStateL . ppKeyDepositL)
426+
]
427+
pure (cert, stakingCredential)
425428

426429
-- | Submit a transaction that updates a given DRep
427430
updateDRep ::

eras/dijkstra/testlib/Test/Cardano/Ledger/Dijkstra/ImpTest.hs

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
{-# LANGUAGE DataKinds #-}
22
{-# LANGUAGE MultiParamTypeClasses #-}
33
{-# LANGUAGE NumericUnderscores #-}
4+
{-# LANGUAGE RankNTypes #-}
45
{-# LANGUAGE TypeApplications #-}
56
{-# LANGUAGE TypeFamilies #-}
67
{-# LANGUAGE UndecidableSuperClasses #-}
@@ -10,6 +11,7 @@ module Test.Cardano.Ledger.Dijkstra.ImpTest (
1011
module Test.Cardano.Ledger.Conway.ImpTest,
1112
exampleDijkstraGenesis,
1213
DijkstraEraImp,
14+
dijkstraGenRegTxCert,
1315
) where
1416

1517
import Cardano.Ledger.BaseTypes
@@ -21,6 +23,7 @@ import Cardano.Ledger.Conway.Rules (
2123
ConwayLedgerPredFailure (..),
2224
)
2325
import Cardano.Ledger.Conway.TxCert
26+
import Cardano.Ledger.Credential
2427
import Cardano.Ledger.Dijkstra (DijkstraEra)
2528
import Cardano.Ledger.Dijkstra.Core
2629
import Cardano.Ledger.Dijkstra.Genesis (DijkstraGenesis (..))
@@ -54,6 +57,7 @@ instance ShelleyEraImp DijkstraEra where
5457
fixupTx = babbageFixupTx
5558
expectTxSuccess = impBabbageExpectTxSuccess
5659
registerStakeCredential = conwayRegisterStakeCredential
60+
genRegTxCert = dijkstraGenRegTxCert
5761

5862
instance MaryEraImp DijkstraEra
5963

@@ -117,3 +121,16 @@ exampleDijkstraGenesis =
117121
, udppRefScriptCostMultiplier = fromJust $ boundRational 1.2
118122
}
119123
}
124+
125+
dijkstraGenRegTxCert ::
126+
forall era.
127+
( ShelleyEraImp era
128+
, ConwayEraTxCert era
129+
) =>
130+
ImpTestM era (TxCert era, Credential 'Staking)
131+
dijkstraGenRegTxCert = do
132+
stakingCredential <- KeyHashObj <$> freshKeyHash
133+
cert <-
134+
RegDepositTxCert stakingCredential
135+
<$> getsNES (nesEsL . curPParamsEpochStateL . ppKeyDepositL)
136+
pure (cert, stakingCredential)

eras/mary/impl/testlib/Test/Cardano/Ledger/Mary/ImpTest.hs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ instance ShelleyEraImp MaryEra where
2828
fixupTx = shelleyFixupTx
2929
expectTxSuccess = impShelleyExpectTxSuccess
3030
registerStakeCredential = shelleyRegisterStakeCredential
31+
genRegTxCert = shelleyGenRegTxCert
3132

3233
class
3334
( ShelleyEraImp era

eras/shelley/impl/testlib/Test/Cardano/Ledger/Shelley/ImpTest.hs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,7 @@ module Test.Cardano.Ledger.Shelley.ImpTest (
117117
unlessMajorVersion,
118118
getsPParams,
119119
withEachEraVersion,
120+
shelleyGenRegTxCert,
120121

121122
-- * Logging
122123
Doc,
@@ -496,6 +497,8 @@ class
496497

497498
registerStakeCredential :: HasCallStack => Credential 'Staking -> ImpTestM era RewardAccount
498499

500+
genRegTxCert :: HasCallStack => ImpTestM era (TxCert era, Credential 'Staking)
501+
499502
defaultInitNewEpochState ::
500503
forall era g s m.
501504
( MonadState s m
@@ -740,6 +743,7 @@ instance
740743
fixupTx = shelleyFixupTx
741744
expectTxSuccess = impShelleyExpectTxSuccess
742745
registerStakeCredential = shelleyRegisterStakeCredential
746+
genRegTxCert = shelleyGenRegTxCert
743747

744748
-- | Figure out all the Byron Addresses that need witnesses as well as all of the
745749
-- KeyHashes for Shelley Key witnesses that are required.
@@ -1781,3 +1785,11 @@ simulateThenRestore sim = do
17811785
result <- sim
17821786
put snapshot
17831787
pure result
1788+
1789+
shelleyGenRegTxCert ::
1790+
forall era.
1791+
ShelleyEraTxCert era =>
1792+
ImpTestM era (TxCert era, Credential 'Staking)
1793+
shelleyGenRegTxCert = do
1794+
stakingCredential <- KeyHashObj <$> freshKeyHash
1795+
pure (RegTxCert stakingCredential, stakingCredential)

0 commit comments

Comments
 (0)