Skip to content

Commit 776956c

Browse files
committed
Move DELEG tests compatible with previous eras to new shelleyDelegSpec
1 parent 8464bf5 commit 776956c

File tree

4 files changed

+204
-175
lines changed

4 files changed

+204
-175
lines changed

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

Lines changed: 1 addition & 175 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,6 @@ import Cardano.Ledger.Plutus (
3636
hashPlutusScript,
3737
)
3838
import Cardano.Ledger.Shelley.LedgerState
39-
import qualified Cardano.Ledger.Shelley.Rules as Shelley
40-
import Cardano.Ledger.Shelley.Scripts
4139
import Cardano.Ledger.Val (Val (..))
4240
import qualified Data.Map.Strict as Map
4341
import qualified Data.Sequence.Strict as SSeq
@@ -54,15 +52,6 @@ spec ::
5452
SpecWith (ImpInit (LedgerSpec era))
5553
spec = do
5654
describe "Register stake credential" $ do
57-
it "With correct deposit or without any deposit" $ do
58-
cred <- KeyHashObj <$> freshKeyHash
59-
-- NOTE: This will always generate certs with deposits post-Conway
60-
regTxCert <- genRegTxCert cred
61-
submitTx_ $
62-
mkBasicTx mkBasicTxBody
63-
& bodyTxL . certsTxBodyL .~ [regTxCert]
64-
expectStakeCredRegistered cred
65-
6655
it "With correct deposit" $ do
6756
expectedDeposit <- getsNES $ nesEsL . curPParamsEpochStateL . ppKeyDepositL
6857
freshKeyHash >>= \kh -> do
@@ -81,21 +70,6 @@ spec = do
8170
& bodyTxL . certsTxBodyL
8271
.~ [regTxCert, regTxCert]
8372
expectStakeCredRegistered (KeyHashObj kh)
84-
85-
it "When already already registered" $ do
86-
cred <- ScriptHashObj <$> impAddNativeScript (RequireAllOf [])
87-
regTxCert <- genRegTxCert cred
88-
let tx =
89-
mkBasicTx mkBasicTxBody
90-
& bodyTxL . certsTxBodyL
91-
.~ [regTxCert]
92-
submitTx_ tx
93-
submitFailingTx
94-
tx
95-
[ injectFailure $ Shelley.StakeKeyAlreadyRegisteredDELEG cred
96-
]
97-
expectStakeCredRegistered cred
98-
9973
it "With incorrect deposit" $ do
10074
expectedDeposit <- getsNES $ nesEsL . curPParamsEpochStateL . ppKeyDepositL
10175
pv <- getsNES $ nesEsL . curPParamsEpochStateL . ppProtocolVersionL
@@ -122,31 +96,6 @@ spec = do
12296
expectStakeCredNotRegistered (KeyHashObj kh)
12397

12498
describe "Unregister stake credentials" $ do
125-
it "When registered" $ do
126-
cred <- ScriptHashObj <$> impAddNativeScript (RequireAllOf [])
127-
regTxCert <- genRegTxCert cred
128-
submitTx_ $
129-
mkBasicTx mkBasicTxBody
130-
& bodyTxL . certsTxBodyL .~ [regTxCert]
131-
expectStakeCredRegistered cred
132-
133-
unRegTxCert <- genUnRegTxCert cred
134-
submitTx_ $
135-
mkBasicTx mkBasicTxBody
136-
& bodyTxL . certsTxBodyL
137-
.~ [unRegTxCert]
138-
expectStakeCredNotRegistered cred
139-
140-
it "When not registered" $ do
141-
freshKeyHash >>= \kh -> do
142-
unRegTxCert <- genUnRegTxCert (KeyHashObj kh)
143-
submitFailingTx
144-
( mkBasicTx mkBasicTxBody
145-
& bodyTxL . certsTxBodyL
146-
.~ [unRegTxCert]
147-
)
148-
[injectFailure $ StakeKeyNotRegisteredDELEG (KeyHashObj kh)]
149-
15099
it "With incorrect refund" $ do
151100
expectedDeposit <- getsNES $ nesEsL . curPParamsEpochStateL . ppKeyDepositL
152101
pv <- getsNES $ nesEsL . curPParamsEpochStateL . ppProtocolVersionL
@@ -178,38 +127,7 @@ spec = do
178127

179128
expectStakeCredRegistered cred
180129

181-
-- https://github.com/IntersectMBO/formal-ledger-specifications/issues/917
182-
-- impacts `registerAndRetirePoolToMakeReward`
183-
-- TODO: Re-enable after issue is resolved, by removing this override
184-
disableInConformanceIt "With non-zero reward balance" $ do
185-
cred <- KeyHashObj <$> freshKeyHash
186-
regTxCert <- genRegTxCert cred
187-
188-
submitTx_ $
189-
mkBasicTx mkBasicTxBody
190-
& bodyTxL . certsTxBodyL .~ [regTxCert]
191-
192-
registerAndRetirePoolToMakeReward cred
193-
194-
balance <- getBalance cred
195-
unRegTxCert <- genUnRegTxCert cred
196-
submitFailingTx
197-
( mkBasicTx mkBasicTxBody
198-
& bodyTxL . certsTxBodyL .~ [unRegTxCert]
199-
)
200-
[injectFailure $ Shelley.StakeKeyNonZeroAccountBalanceDELEG balance]
201-
expectStakeCredRegistered cred
202-
203-
it "Register and unregister in the same transaction" $ do
204-
freshKeyHash >>= \kh -> do
205-
regTxCert <- genRegTxCert (KeyHashObj kh)
206-
unRegTxCert <- genUnRegTxCert (KeyHashObj kh)
207-
submitTx_ $
208-
mkBasicTx mkBasicTxBody
209-
& bodyTxL . certsTxBodyL .~ [regTxCert, unRegTxCert]
210-
expectStakeCredNotRegistered (KeyHashObj kh)
211-
212-
it "deregistering returns the deposit" $ do
130+
it "Deregistering returns the deposit" $ do
213131
let
214132
keyDeposit = Coin 2
215133
-- This is paid out as the reward
@@ -250,49 +168,6 @@ spec = do
250168
expectNotRegisteredRewardAddress rewardAccount
251169

252170
describe "Delegate stake" $ do
253-
it "Delegate registered stake credentials to registered pool" $ do
254-
cred <- KeyHashObj <$> freshKeyHash
255-
regTxCert <- genRegTxCert cred
256-
submitTx_ $
257-
mkBasicTx mkBasicTxBody
258-
& bodyTxL . certsTxBodyL .~ [regTxCert]
259-
260-
poolKh <- freshKeyHash
261-
registerPool poolKh
262-
263-
submitTx_ $
264-
mkBasicTx mkBasicTxBody
265-
& bodyTxL . certsTxBodyL .~ [delegStakeTxCert cred poolKh]
266-
expectDelegatedToPool cred poolKh
267-
268-
it "Register and delegate in the same transaction" $ do
269-
poolKh <- freshKeyHash
270-
registerPool poolKh
271-
freshKeyHash >>= \kh -> do
272-
regTxCert <- genRegTxCert (KeyHashObj kh)
273-
submitTx_ $
274-
mkBasicTx mkBasicTxBody
275-
& bodyTxL . certsTxBodyL
276-
.~ [regTxCert, delegStakeTxCert (KeyHashObj kh) poolKh]
277-
expectDelegatedToPool (KeyHashObj kh) poolKh
278-
279-
it "Delegate unregistered stake credentials" $ do
280-
cred <- KeyHashObj <$> freshKeyHash
281-
poolKh <- freshKeyHash
282-
registerPool poolKh
283-
pv <- getProtVer
284-
submitFailingTx
285-
( mkBasicTx mkBasicTxBody
286-
& bodyTxL . certsTxBodyL
287-
.~ [delegStakeTxCert cred poolKh]
288-
)
289-
[ injectFailure $
290-
if pvMajor pv < natVersion @9
291-
then Shelley.StakeDelegationImpossibleDELEG cred
292-
else Shelley.StakeKeyNotRegisteredDELEG cred
293-
]
294-
expectStakeCredNotRegistered cred
295-
296171
it "Delegate to unregistered pool" $ do
297172
expectedDeposit <- getsNES $ nesEsL . curPParamsEpochStateL . ppKeyDepositL
298173

@@ -311,55 +186,6 @@ spec = do
311186
[injectFailure $ DelegateeStakePoolNotRegisteredDELEG poolKh]
312187
expectNotDelegatedToPool cred
313188

314-
it "Delegate already delegated credentials" $ do
315-
cred <- KeyHashObj <$> freshKeyHash
316-
poolKh <- freshKeyHash
317-
registerPool poolKh
318-
regTxCert <- genRegTxCert cred
319-
let delegTxCert = delegStakeTxCert cred poolKh
320-
submitTx_ $
321-
mkBasicTx mkBasicTxBody
322-
& bodyTxL . certsTxBodyL .~ [regTxCert, delegTxCert]
323-
expectDelegatedToPool cred poolKh
324-
submitTx_ $
325-
mkBasicTx mkBasicTxBody
326-
& bodyTxL . certsTxBodyL .~ [delegTxCert]
327-
expectDelegatedToPool cred poolKh
328-
329-
poolKh1 <- freshKeyHash
330-
registerPool poolKh1
331-
submitTx_ $
332-
mkBasicTx mkBasicTxBody
333-
& bodyTxL . certsTxBodyL
334-
.~ [delegStakeTxCert cred poolKh1]
335-
expectDelegatedToPool cred poolKh1
336-
337-
poolKh2 <- freshKeyHash
338-
registerPool poolKh2
339-
poolKh3 <- freshKeyHash
340-
registerPool poolKh3
341-
342-
submitTx_ $
343-
mkBasicTx mkBasicTxBody
344-
& bodyTxL . certsTxBodyL
345-
.~ [ delegStakeTxCert cred poolKh2
346-
, delegStakeTxCert cred poolKh3
347-
]
348-
349-
expectDelegatedToPool cred poolKh3
350-
351-
it "Delegate and unregister" $ do
352-
cred <- KeyHashObj <$> freshKeyHash
353-
poolKh <- freshKeyHash
354-
registerPool poolKh
355-
regTxCert <- genRegTxCert cred
356-
unRegTxCert <- genUnRegTxCert cred
357-
submitTx_ $
358-
mkBasicTx mkBasicTxBody
359-
& bodyTxL . certsTxBodyL
360-
.~ [regTxCert, delegStakeTxCert cred poolKh, unRegTxCert]
361-
expectStakeCredNotRegistered cred
362-
363189
describe "Delegate vote" $ do
364190
it "Delegate vote of registered stake credentials to registered drep" $ do
365191
expectedDeposit <- getsNES $ nesEsL . curPParamsEpochStateL . ppKeyDepositL

eras/shelley/impl/cardano-ledger-shelley.cabal

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,7 @@ library testlib
146146
Test.Cardano.Ledger.Shelley.Era
147147
Test.Cardano.Ledger.Shelley.Examples
148148
Test.Cardano.Ledger.Shelley.Imp
149+
Test.Cardano.Ledger.Shelley.Imp.DelegSpec
149150
Test.Cardano.Ledger.Shelley.Imp.EpochSpec
150151
Test.Cardano.Ledger.Shelley.Imp.LedgerSpec
151152
Test.Cardano.Ledger.Shelley.Imp.PoolSpec

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ module Test.Cardano.Ledger.Shelley.Imp (spec) where
99

1010
import Cardano.Ledger.Shelley (ShelleyEra)
1111
import Test.Cardano.Ledger.Imp.Common
12+
import qualified Test.Cardano.Ledger.Shelley.Imp.DelegSpec as Deleg
1213
import qualified Test.Cardano.Ledger.Shelley.Imp.EpochSpec as Epoch
1314
import qualified Test.Cardano.Ledger.Shelley.Imp.LedgerSpec as Ledger
1415
import qualified Test.Cardano.Ledger.Shelley.Imp.PoolSpec as Pool
@@ -26,6 +27,7 @@ spec ::
2627
spec = do
2728
describe "Era specific tests" . withEachEraVersion @era $ eraSpecificSpec
2829
describe "ShelleyImpSpec" $ withEachEraVersion @era $ do
30+
describe "DELEG" Deleg.spec
2931
Epoch.spec
3032
Ledger.spec
3133
Pool.spec

0 commit comments

Comments
 (0)