diff --git a/concordium-consensus/src/Concordium/GlobalState/BakerInfo.hs b/concordium-consensus/src/Concordium/GlobalState/BakerInfo.hs index 8bbac188f..abff2ab30 100644 --- a/concordium-consensus/src/Concordium/GlobalState/BakerInfo.hs +++ b/concordium-consensus/src/Concordium/GlobalState/BakerInfo.hs @@ -219,8 +219,9 @@ data ValidatorAdd = ValidatorAdd -- | The metadata URL for the validator. vaMetadataURL :: !UrlText, -- | The commission rates for the validator. - vaCommissionRates :: !CommissionRates - -- TODO (drsk) Github issue #1246. Support suspend/resume for ValidatorAdd. + vaCommissionRates :: !CommissionRates, + -- | Whether the validator should be added as suspended. + vaSuspended :: !Bool } deriving (Eq, Show) diff --git a/concordium-consensus/src/Concordium/Scheduler.hs b/concordium-consensus/src/Concordium/Scheduler.hs index eedd34c33..4d99ca264 100644 --- a/concordium-consensus/src/Concordium/Scheduler.hs +++ b/concordium-consensus/src/Concordium/Scheduler.hs @@ -2114,6 +2114,7 @@ handleConfigureBaker let vaCommissionRates = CommissionRates{..} vaOpenForDelegation <- cbOpenForDelegation vaMetadataURL <- cbMetadataURL + let vaSuspended = fromMaybe False cbSuspend return CBCAdd { cbcRemoveDelegator = removeDelegator, diff --git a/concordium-consensus/tests/globalstate/GlobalStateTests/ConfigureValidator.hs b/concordium-consensus/tests/globalstate/GlobalStateTests/ConfigureValidator.hs index a3b7fddb0..cc532787a 100644 --- a/concordium-consensus/tests/globalstate/GlobalStateTests/ConfigureValidator.hs +++ b/concordium-consensus/tests/globalstate/GlobalStateTests/ConfigureValidator.hs @@ -142,7 +142,8 @@ testAddValidatorAllCases spv = describe "bsoAddValidator" $ do { _finalizationCommission = makeAmountFraction $ if vcFinalizationRewardNotInRange then 100 else 300, _bakingCommission = makeAmountFraction $ if vcBakingRewardNotInRange then 100 else 500, _transactionCommission = makeAmountFraction $ if vcTransactionFeeNotInRange then 300 else 100 - } + }, + vaSuspended = False } initialAccounts <- mapM makeDummyAccount (addValidatorTestAccounts withCooldown) initialBS <- mkInitialState initialAccounts diff --git a/concordium-consensus/tests/globalstate/GlobalStateTests/Updates.hs b/concordium-consensus/tests/globalstate/GlobalStateTests/Updates.hs index a4115215c..acaa5e716 100644 --- a/concordium-consensus/tests/globalstate/GlobalStateTests/Updates.hs +++ b/concordium-consensus/tests/globalstate/GlobalStateTests/Updates.hs @@ -143,7 +143,8 @@ addBakerWith am (bs, ai) = do { _transactionCommission = makeAmountFraction 0, _finalizationCommission = makeAmountFraction 0, _bakingCommission = makeAmountFraction 0 - } + }, + vaSuspended = False } res <- bsoAddValidator bs ai conf return ((,ai) <$> res)