@@ -32,11 +32,13 @@ import GHC.Stack (callStack)
32
32
import Lens.Micro ((^?) )
33
33
import System.FilePath ((</>) )
34
34
35
+ import qualified Testnet.Components.DReps as DRep
35
36
import Testnet.Components.DReps (createCertificatePublicationTxBody , createVotingTxBody ,
36
- generateVoteFiles , retrieveTransactionId , signTx , submitTx )
37
+ retrieveTransactionId , signTx , submitTx )
37
38
import Testnet.Components.Query (EpochStateView , findLargestUtxoForPaymentKey ,
38
39
getCurrentEpochNo , getEpochStateView , getMinDRepDeposit )
39
- import Testnet.Defaults (defaultDRepKeyPair , defaultDelegatorStakeKeyPair )
40
+ import qualified Testnet.Components.SPO as SPO
41
+ import Testnet.Defaults (defaultDRepKeyPair , defaultDelegatorStakeKeyPair , defaultSPOKeys )
40
42
import qualified Testnet.Process.Cli as P
41
43
import qualified Testnet.Process.Run as H
42
44
import qualified Testnet.Property.Utils as H
@@ -209,7 +211,7 @@ desiredPoolNumberProposalTest execConfig epochStateView configurationFile socket
209
211
ceo baseDir " proposal" previousProposalInfo (fromIntegral change) wallet
210
212
211
213
voteChangeProposal execConfig epochStateView sbe baseDir " vote"
212
- governanceActionTxId governanceActionIndex propVotes wallet
214
+ governanceActionTxId governanceActionIndex propVotes [] wallet
213
215
214
216
(EpochNo epochAfterProp) <- getCurrentEpochNo epochStateView
215
217
H. note_ $ " Epoch after \" " <> prefix <> " \" prop: " <> show epochAfterProp
@@ -319,26 +321,42 @@ voteChangeProposal :: (MonadTest m, MonadIO m, MonadCatch m, H.MonadAssertion m)
319
321
-> FilePath
320
322
-> String
321
323
-> Word32
322
- -> [([Char ], Int )]
324
+ -> [(String , Int )]
325
+ -> [(String , Int )]
323
326
-> PaymentKeyInfo
324
327
-> m ()
325
- voteChangeProposal execConfig epochStateView sbe work prefix governanceActionTxId governanceActionIndex votes wallet = do
328
+ voteChangeProposal execConfig epochStateView sbe work prefix governanceActionTxId governanceActionIndex drepVotes spoVotes wallet = do
326
329
baseDir <- H. createDirectoryIfMissing $ work </> prefix
327
330
328
331
let era = toCardanoEra sbe
329
332
cEra = AnyCardanoEra era
330
333
331
- voteFiles <- generateVoteFiles execConfig baseDir " vote-files"
332
- governanceActionTxId governanceActionIndex
333
- [(defaultDRepKeyPair idx, vote) | (vote, idx) <- votes]
334
+ drepVoteFiles <- DRep. generateVoteFiles execConfig baseDir " drep-vote-files"
335
+ governanceActionTxId governanceActionIndex
336
+ [(defaultDRepKeyPair idx, vote) | (vote, idx) <- drepVotes]
337
+
338
+ spoVoteFiles <- SPO. generateVoteFiles execConfig baseDir " spo-vote-files"
339
+ governanceActionTxId governanceActionIndex
340
+ [(defaultSPOKeys idx, vote) | (vote, idx) <- spoVotes]
341
+
342
+ let voteFiles = drepVoteFiles ++ spoVoteFiles
334
343
335
344
voteTxBodyFp <- createVotingTxBody execConfig epochStateView sbe baseDir " vote-tx-body"
336
345
voteFiles wallet
337
346
338
347
voteTxFp <- signTx execConfig cEra baseDir " signed-vote-tx" voteTxBodyFp
339
- (paymentKeyInfoPair wallet: [defaultDRepKeyPair n | (_, n) <- votes])
348
+ (paymentKeyInfoPair wallet:
349
+ [defaultDRepKeyPair n | (_, n) <- drepVotes] ++
350
+ [defaultSPOColdKeyPair n | (_, n) <- drepVotes]
351
+ )
340
352
submitTx execConfig cEra voteTxFp
341
353
354
+ defaultSPOColdKeyPair :: Int -> PaymentKeyPair
355
+ defaultSPOColdKeyPair n = PaymentKeyPair { paymentVKey = poolNodeKeysColdVkey spoKeys
356
+ , paymentSKey = poolNodeKeysColdSkey spoKeys
357
+ }
358
+ where spoKeys = defaultSPOKeys n
359
+
342
360
getDesiredPoolNumberValue :: (MonadTest m , MonadCatch m , MonadIO m ) => H. ExecConfig -> m Integer
343
361
getDesiredPoolNumberValue execConfig = do
344
362
govStateString <- H. execCli' execConfig
0 commit comments