Skip to content

Commit

Permalink
Set default era to Conway. Add older eras deprecation notice.
Browse files Browse the repository at this point in the history
  • Loading branch information
carbolymer committed Sep 2, 2024
1 parent 9e2dd2c commit fc4f649
Show file tree
Hide file tree
Showing 54 changed files with 441 additions and 270 deletions.
13 changes: 7 additions & 6 deletions cardano-cli/src/Cardano/CLI/EraBased/Commands.hs
Original file line number Diff line number Diff line change
Expand Up @@ -38,11 +38,12 @@ import Cardano.CLI.EraBased.Options.Transaction
import Data.Foldable
import Data.Maybe
import Data.Text (Text)
import Data.Typeable (Typeable)
import Options.Applicative (Parser)
import qualified Options.Applicative as Opt

data AnyEraCommand where
AnyEraCommandOf :: ShelleyBasedEra era -> Cmds era -> AnyEraCommand
AnyEraCommandOf :: Typeable era => ShelleyBasedEra era -> Cmds era -> AnyEraCommand

renderAnyEraCommand :: AnyEraCommand -> Text
renderAnyEraCommand = \case
Expand Down Expand Up @@ -90,16 +91,16 @@ pAnyEraCommand envCli =

subParser "shelley" $
Opt.info (AnyEraCommandOf ShelleyBasedEraShelley <$> pCmds ShelleyBasedEraShelley envCli) $
Opt.progDesc "Shelley era commands"
Opt.progDesc ("Shelley era commands" <> deprecationText)
, subParser "allegra" $
Opt.info (AnyEraCommandOf ShelleyBasedEraAllegra <$> pCmds ShelleyBasedEraAllegra envCli) $
Opt.progDesc "Allegra era commands"
Opt.progDesc ("Allegra era commands" <> deprecationText)
, subParser "mary" $
Opt.info (AnyEraCommandOf ShelleyBasedEraMary <$> pCmds ShelleyBasedEraMary envCli) $
Opt.progDesc "Mary era commands"
Opt.progDesc ("Mary era commands" <> deprecationText)
, subParser "alonzo" $
Opt.info (AnyEraCommandOf ShelleyBasedEraAlonzo <$> pCmds ShelleyBasedEraAlonzo envCli) $
Opt.progDesc "Alonzo era commands"
Opt.progDesc ("Alonzo era commands" <> deprecationText)
, subParser "babbage" $
Opt.info (AnyEraCommandOf ShelleyBasedEraBabbage <$> pCmds ShelleyBasedEraBabbage envCli) $
Opt.progDesc "Babbage era commands"
Expand All @@ -108,7 +109,7 @@ pAnyEraCommand envCli =
Opt.progDesc "Conway era commands"
, subParser "latest" $
Opt.info (AnyEraCommandOf ShelleyBasedEraBabbage <$> pCmds ShelleyBasedEraBabbage envCli) $
Opt.progDesc "Latest era commands (Babbage)"
Opt.progDesc ("Latest era commands (Babbage)" <> deprecationText)
]

pCmds :: ShelleyBasedEra era -> EnvCli -> Parser (Cmds era)
Expand Down
42 changes: 21 additions & 21 deletions cardano-cli/src/Cardano/CLI/EraBased/Options/Common.hs
Original file line number Diff line number Diff line change
Expand Up @@ -58,10 +58,7 @@ import qualified Text.Parsec.Token as Parsec
import Text.Read (readEither, readMaybe)

defaultShelleyBasedEra :: EraInEon ShelleyBasedEra
defaultShelleyBasedEra = EraInEon ShelleyBasedEraBabbage

defaultShelleyToBabbageEra :: EraInEon ShelleyToBabbageEra
defaultShelleyToBabbageEra = EraInEon ShelleyToBabbageEraBabbage
defaultShelleyBasedEra = EraInEon ShelleyBasedEraConway

command' :: String -> String -> Parser a -> Mod CommandFields a
command' c descr p =
Expand Down Expand Up @@ -373,40 +370,43 @@ pAnyShelleyBasedEra envCli =
mconcat
[
[ Opt.flag' (EraInEon ShelleyBasedEraShelley) $
mconcat [Opt.long "shelley-era", Opt.help "Specify the Shelley era"]
mconcat [Opt.long "shelley-era", Opt.help $ "Specify the Shelley era" <> deprecationText]
, Opt.flag' (EraInEon ShelleyBasedEraAllegra) $
mconcat [Opt.long "allegra-era", Opt.help "Specify the Allegra era"]
mconcat [Opt.long "allegra-era", Opt.help $ "Specify the Allegra era" <> deprecationText]
, Opt.flag' (EraInEon ShelleyBasedEraMary) $
mconcat [Opt.long "mary-era", Opt.help "Specify the Mary era"]
mconcat [Opt.long "mary-era", Opt.help $ "Specify the Mary era" <> deprecationText]
, Opt.flag' (EraInEon ShelleyBasedEraAlonzo) $
mconcat [Opt.long "alonzo-era", Opt.help "Specify the Alonzo era"]
mconcat [Opt.long "alonzo-era", Opt.help $ "Specify the Alonzo era" <> deprecationText]
, Opt.flag' (EraInEon ShelleyBasedEraBabbage) $
mconcat [Opt.long "babbage-era", Opt.help "Specify the Babbage era (default)"]
mconcat [Opt.long "babbage-era", Opt.help $ "Specify the Babbage era" <> deprecationText]
, Opt.flag' (EraInEon ShelleyBasedEraConway) $
mconcat [Opt.long "conway-era", Opt.help "Specify the Conway era"]
mconcat [Opt.long "conway-era", Opt.help "Specify the Conway era (default)"]
]
, maybeToList $ pure <$> envCliAnyShelleyBasedEra envCli
, pure $ pure defaultShelleyBasedEra
]

deprecationText :: String
deprecationText = " - DEPRECATED - will be removed in the future release"

pAnyShelleyToBabbageEra :: EnvCli -> Parser (EraInEon ShelleyToBabbageEra)
pAnyShelleyToBabbageEra envCli =
asum $
mconcat
[
[ Opt.flag' (EraInEon ShelleyToBabbageEraShelley) $
mconcat [Opt.long "shelley-era", Opt.help "Specify the Shelley era"]
mconcat [Opt.long "shelley-era", Opt.help $ "Specify the Shelley era" <> deprecationText]
, Opt.flag' (EraInEon ShelleyToBabbageEraAllegra) $
mconcat [Opt.long "allegra-era", Opt.help "Specify the Allegra era"]
mconcat [Opt.long "allegra-era", Opt.help $ "Specify the Allegra era" <> deprecationText]
, Opt.flag' (EraInEon ShelleyToBabbageEraMary) $
mconcat [Opt.long "mary-era", Opt.help "Specify the Mary era"]
mconcat [Opt.long "mary-era", Opt.help $ "Specify the Mary era" <> deprecationText]
, Opt.flag' (EraInEon ShelleyToBabbageEraAlonzo) $
mconcat [Opt.long "alonzo-era", Opt.help "Specify the Alonzo era"]
mconcat [Opt.long "alonzo-era", Opt.help $ "Specify the Alonzo era" <> deprecationText]
, Opt.flag' (EraInEon ShelleyToBabbageEraBabbage) $
mconcat [Opt.long "babbage-era", Opt.help "Specify the Babbage era (default)"]
]
, maybeToList $ pure <$> envCliAnyShelleyToBabbageEra envCli
, pure $ pure defaultShelleyToBabbageEra
, pure . pure $ EraInEon ShelleyToBabbageEraBabbage
]

pShelleyBasedShelley :: EnvCli -> Parser (EraInEon ShelleyBasedEra)
Expand All @@ -415,7 +415,7 @@ pShelleyBasedShelley envCli =
mconcat
[
[ Opt.flag' (EraInEon ShelleyBasedEraShelley) $
mconcat [Opt.long "shelley-era", Opt.help "Specify the Shelley era"]
mconcat [Opt.long "shelley-era", Opt.help $ "Specify the Shelley era" <> deprecationText]
]
, maybeToList $
fmap pure $
Expand All @@ -429,7 +429,7 @@ pShelleyBasedAllegra envCli =
mconcat
[
[ Opt.flag' (EraInEon ShelleyBasedEraAllegra) $
mconcat [Opt.long "allegra-era", Opt.help "Specify the Allegra era"]
mconcat [Opt.long "allegra-era", Opt.help $ "Specify the Allegra era" <> deprecationText]
]
, maybeToList $
fmap pure $
Expand All @@ -443,7 +443,7 @@ pShelleyBasedMary envCli =
mconcat
[
[ Opt.flag' (EraInEon ShelleyBasedEraMary) $
mconcat [Opt.long "mary-era", Opt.help "Specify the Mary era"]
mconcat [Opt.long "mary-era", Opt.help $ "Specify the Mary era" <> deprecationText]
]
, maybeToList $
fmap pure $
Expand All @@ -457,7 +457,7 @@ pShelleyBasedAlonzo envCli =
mconcat
[
[ Opt.flag' (EraInEon ShelleyBasedEraAlonzo) $
mconcat [Opt.long "alonzo-era", Opt.help "Specify the Alonzo era"]
mconcat [Opt.long "alonzo-era", Opt.help $ "Specify the Alonzo era" <> deprecationText]
]
, maybeToList $
fmap pure $
Expand All @@ -471,7 +471,7 @@ pShelleyBasedBabbage envCli =
mconcat
[
[ Opt.flag' (EraInEon ShelleyBasedEraBabbage) $
mconcat [Opt.long "babbage-era", Opt.help "Specify the Babbage era (default)"]
mconcat [Opt.long "babbage-era", Opt.help $ "Specify the Babbage era" <> deprecationText]
]
, maybeToList $
fmap pure $
Expand All @@ -485,7 +485,7 @@ pShelleyBasedConway envCli =
mconcat
[
[ Opt.flag' (EraInEon ShelleyBasedEraConway) $
mconcat [Opt.long "conway-era", Opt.help "Specify the Conway era"]
mconcat [Opt.long "conway-era", Opt.help "Specify the Conway era (default)"]
]
, maybeToList $
fmap pure $
Expand Down
8 changes: 7 additions & 1 deletion cardano-cli/src/Cardano/CLI/EraBased/Run.hs
Original file line number Diff line number Diff line change
Expand Up @@ -21,16 +21,22 @@ import Cardano.CLI.EraBased.Run.StakeAddress
import Cardano.CLI.EraBased.Run.StakePool
import Cardano.CLI.EraBased.Run.TextView
import Cardano.CLI.EraBased.Run.Transaction
import Cardano.CLI.Helpers (printWarning)
import Cardano.CLI.Types.Errors.CmdError

import Control.Monad
import Data.Function ((&))

runAnyEraCommand
:: ()
=> AnyEraCommand
-> ExceptT CmdError IO ()
runAnyEraCommand = \case
AnyEraCommandOf sbe cmd ->
AnyEraCommandOf sbe cmd -> do
let selectedEraNum = fromEnum $ AnyShelleyBasedEra sbe
currentEraNum = fromEnum $ AnyShelleyBasedEra ShelleyBasedEraBabbage
when (selectedEraNum < currentEraNum) $
printWarning "Selected era is deprecated and will be removed in the future."
shelleyBasedEraConstraints sbe $ runCmds cmd

runCmds
Expand Down
4 changes: 2 additions & 2 deletions cardano-cli/src/Cardano/CLI/Helpers.hs
Original file line number Diff line number Diff line change
Expand Up @@ -75,8 +75,8 @@ decodeCBOR
decodeCBOR bs decoder =
first CBORDecodingError $ deserialiseFromBytes decoder bs

printWarning :: String -> IO ()
printWarning warning = do
printWarning :: MonadIO m => String -> m ()
printWarning warning = liftIO $ do
ANSI.hSetSGR IO.stderr [SetColor Foreground Vivid Yellow]
IO.hPutStrLn IO.stderr $ "WARNING: " <> warning
ANSI.hSetSGR IO.stderr [Reset]
Expand Down
32 changes: 13 additions & 19 deletions cardano-cli/src/Cardano/CLI/Legacy/Options.hs
Original file line number Diff line number Diff line change
Expand Up @@ -1303,43 +1303,37 @@ pLegacyCardanoEra envCli =
[ Opt.flag' (AnyCardanoEra ByronEra) $
mconcat
[ Opt.long "byron-era"
, Opt.help "Specify the Byron era"
, Opt.help $ "Specify the Byron era" <> deprecationText
]
, Opt.flag' (AnyCardanoEra ShelleyEra) $
mconcat
[ Opt.long "shelley-era"
, Opt.help "Specify the Shelley era"
, Opt.help $ "Specify the Shelley era" <> deprecationText
]
, Opt.flag' (AnyCardanoEra AllegraEra) $
mconcat
[ Opt.long "allegra-era"
, Opt.help "Specify the Allegra era"
, Opt.help $ "Specify the Allegra era" <> deprecationText
]
, Opt.flag' (AnyCardanoEra MaryEra) $
mconcat
[ Opt.long "mary-era"
, Opt.help "Specify the Mary era"
, Opt.help $ "Specify the Mary era" <> deprecationText
]
, Opt.flag' (AnyCardanoEra AlonzoEra) $
mconcat
[ Opt.long "alonzo-era"
, Opt.help "Specify the Alonzo era"
, Opt.help $ "Specify the Alonzo era" <> deprecationText
]
, Opt.flag' (AnyCardanoEra BabbageEra) $
mconcat
[ Opt.long "babbage-era"
, Opt.help "Specify the Babbage era (default)"
, Opt.help $ "Specify the Babbage era (default)" <> deprecationText
]
]
, maybeToList $ pure <$> envCliAnyCardanoEra envCli
, -- TODO is this default needed anymore?
pure $ pure defaultCardanoEra
, pure . pure $ AnyCardanoEra BabbageEra
]
where
defaultCardanoEra =
defaultShelleyBasedEra & \(EraInEon era) ->
let cera = toCardanoEra era
in cardanoEraConstraints cera (AnyCardanoEra cera)

pLegacyShelleyBasedEra :: EnvCli -> Parser (EraInEon ShelleyBasedEra)
pLegacyShelleyBasedEra envCli =
Expand All @@ -1349,29 +1343,29 @@ pLegacyShelleyBasedEra envCli =
[ Opt.flag' (EraInEon ShelleyBasedEraShelley) $
mconcat
[ Opt.long "shelley-era"
, Opt.help "Specify the Shelley era"
, Opt.help $ "Specify the Shelley era" <> deprecationText
]
, Opt.flag' (EraInEon ShelleyBasedEraAllegra) $
mconcat
[ Opt.long "allegra-era"
, Opt.help "Specify the Allegra era"
, Opt.help $ "Specify the Allegra era" <> deprecationText
]
, Opt.flag' (EraInEon ShelleyBasedEraMary) $
mconcat
[ Opt.long "mary-era"
, Opt.help "Specify the Mary era"
, Opt.help $ "Specify the Mary era" <> deprecationText
]
, Opt.flag' (EraInEon ShelleyBasedEraAlonzo) $
mconcat
[ Opt.long "alonzo-era"
, Opt.help "Specify the Alonzo era"
, Opt.help $ "Specify the Alonzo era" <> deprecationText
]
, Opt.flag' (EraInEon ShelleyBasedEraBabbage) $
mconcat
[ Opt.long "babbage-era"
, Opt.help "Specify the Babbage era (default)"
, Opt.help $ "Specify the Babbage era (default)" <> deprecationText
]
]
, maybeToList $ pure <$> envCliAnyShelleyBasedEra envCli
, pure $ pure defaultShelleyBasedEra
, pure . pure $ EraInEon ShelleyBasedEraBabbage
]
2 changes: 1 addition & 1 deletion cardano-cli/src/Cardano/CLI/Options.hs
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@ parseLegacy :: EnvCli -> Parser ClientCommand
parseLegacy envCli =
subParser "legacy" $
Opt.info (LegacyCmds <$> parseLegacyCmds envCli) $
Opt.progDesc "Legacy commands"
Opt.progDesc ("Legacy commands" <> deprecationText)

_parseTopLevelLatest :: EnvCli -> Parser ClientCommand
_parseTopLevelLatest envCli =
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,10 +28,10 @@ hprop_golden_shelleyStakeAddressCertificates = propertyOnce . H.moduleWorkspace
referenceDeregistrationCertificate <-
noteInputFile
"test/cardano-cli-golden/files/input/shelley/certificates/stake_address_deregistration_certificate"
referenceDelegationCertificate <-
noteInputFile
"test/cardano-cli-golden/files/input/shelley/certificates/stake_address_delegation_certificate"
operatorVkey <- noteInputFile "test/cardano-cli-golden/files/input/shelley/node-pool/operator.vkey"
-- referenceDelegationCertificate <-
-- noteInputFile
-- "test/cardano-cli-golden/files/input/shelley/certificates/stake_address_delegation_certificate"
-- operatorVkey <- noteInputFile "test/cardano-cli-golden/files/input/shelley/node-pool/operator.vkey"

-- Key filepaths
verKey <- noteTempFile tempDir "stake-verification-key-file"
Expand All @@ -42,7 +42,8 @@ hprop_golden_shelleyStakeAddressCertificates = propertyOnce . H.moduleWorkspace
-- Generate stake verification key
void $
execCardanoCLI
[ "stake-address"
[ "babbage"
, "stake-address"
, "key-gen"
, "--verification-key-file"
, verKey
Expand Down Expand Up @@ -92,22 +93,23 @@ hprop_golden_shelleyStakeAddressCertificates = propertyOnce . H.moduleWorkspace
referenceDeregistrationCertificate
deregistrationCertificate

-- Create stake address delegation certificate
void $
execCardanoCLI
[ "stake-address"
, "delegation-certificate"
, "--stake-verification-key-file"
, verKey
, "--cold-verification-key-file"
, operatorVkey
, "--out-file"
, deregistrationCertificate
]

-- Check the newly created files have not deviated from the
-- golden files
checkTextEnvelopeFormat
registrationCertificateType
referenceDelegationCertificate
deregistrationCertificate
-- TODO that's a legacy command, to be removed
-- -- Create stake address delegation certificate
-- void $
-- execCardanoCLI
-- [ "stake-address"
-- , "delegation-certificate"
-- , "--stake-verification-key-file"
-- , verKey
-- , "--cold-verification-key-file"
-- , operatorVkey
-- , "--out-file"
-- , deregistrationCertificate
-- ]
--
-- -- Check the newly created files have not deviated from the
-- -- golden files
-- checkTextEnvelopeFormat
-- registrationCertificateType
-- referenceDelegationCertificate
-- deregistrationCertificate
Loading

0 comments on commit fc4f649

Please sign in to comment.