@@ -36,8 +36,6 @@ import Cardano.Ledger.Plutus (
3636 hashPlutusScript ,
3737 )
3838import Cardano.Ledger.Shelley.LedgerState
39- import qualified Cardano.Ledger.Shelley.Rules as Shelley
40- import Cardano.Ledger.Shelley.Scripts
4139import Cardano.Ledger.Val (Val (.. ))
4240import qualified Data.Map.Strict as Map
4341import qualified Data.Sequence.Strict as SSeq
@@ -54,15 +52,6 @@ spec ::
5452 SpecWith (ImpInit (LedgerSpec era ))
5553spec = 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
0 commit comments