diff --git a/cardano-cli/src/Cardano/CLI/EraBased/Commands/Governance/Committee.hs b/cardano-cli/src/Cardano/CLI/EraBased/Commands/Governance/Committee.hs index 927726604e..1691961fa9 100644 --- a/cardano-cli/src/Cardano/CLI/EraBased/Commands/Governance/Committee.hs +++ b/cardano-cli/src/Cardano/CLI/EraBased/Commands/Governance/Committee.hs @@ -60,7 +60,7 @@ data GovernanceCommitteeCreateHotKeyAuthorizationCertificateCmdArgs era = data GovernanceCommitteeCreateColdKeyResignationCertificateCmdArgs era = GovernanceCommitteeCreateColdKeyResignationCertificateCmdArgs { eon :: !(ConwayEraOnwards era) - , vkeyColdKeySource :: !(VerificationKeyOrHashOrFile CommitteeColdKey) + , vkeyColdKeySource :: !(VerificationKeyOrHashOrFileOrScriptHash CommitteeColdKey) , anchor :: !(Maybe (L.Anchor (L.EraCrypto (ShelleyLedgerEra era)))) , outFile :: !(File () Out) } deriving Show diff --git a/cardano-cli/src/Cardano/CLI/EraBased/Options/Governance/Committee.hs b/cardano-cli/src/Cardano/CLI/EraBased/Options/Governance/Committee.hs index 0d02abb30c..73e112e35f 100644 --- a/cardano-cli/src/Cardano/CLI/EraBased/Options/Governance/Committee.hs +++ b/cardano-cli/src/Cardano/CLI/EraBased/Options/Governance/Committee.hs @@ -136,13 +136,19 @@ pGovernanceCommitteeCreateColdKeyResignationCertificateCmd era = do [ "Create cold key resignation certificate for a Constitutional Committee Member" ] where - mkParser w = GovernanceCommitteeCreateColdKeyResignationCertificateCmd <$> - ( - GovernanceCommitteeCreateColdKeyResignationCertificateCmdArgs w <$> - pCommitteeColdVerificationKeyOrHashOrFile <*> - pAnchor <*> - pOutputFile - ) + mkParser w = + GovernanceCommitteeCreateColdKeyResignationCertificateCmd <$> + (GovernanceCommitteeCreateColdKeyResignationCertificateCmdArgs w <$> + coldVKeyOrFileOrScriptHash <*> pAnchor <*> pOutputFile) + coldVKeyOrFileOrScriptHash = + asum + [ VkhfshKeyHashFile . VerificationKeyOrFile <$> pCommitteeColdVerificationKeyOrFile + , VkhfshKeyHashFile . VerificationKeyHash <$> pCommitteeColdVerificationKeyHash + , VkhfshScriptHash <$> + pScriptHash + "cold-script-hash" + "Cold Native or Plutus script file hash (hex-encoded). Obtain it with \"cardano-cli conway governance hash script ...\"." + ] pAnchor :: Parser (Maybe (L.Anchor L.StandardCrypto)) pAnchor = diff --git a/cardano-cli/src/Cardano/CLI/EraBased/Run/Governance/Committee.hs b/cardano-cli/src/Cardano/CLI/EraBased/Run/Governance/Committee.hs index 94187fd93a..0ff4383d1e 100644 --- a/cardano-cli/src/Cardano/CLI/EraBased/Run/Governance/Committee.hs +++ b/cardano-cli/src/Cardano/CLI/EraBased/Run/Governance/Committee.hs @@ -165,18 +165,18 @@ runGovernanceCommitteeColdKeyResignationCertificate :: () -> ExceptT GovernanceCommitteeError IO () runGovernanceCommitteeColdKeyResignationCertificate Cmd.GovernanceCommitteeCreateColdKeyResignationCertificateCmdArgs - { Cmd.eon = w - , Cmd.vkeyColdKeySource = coldVkOrHashOrFp - , Cmd.anchor = anchor - , Cmd.outFile = oFp + { Cmd.eon + , Cmd.vkeyColdKeySource + , Cmd.anchor + , Cmd.outFile } = - conwayEraOnwardsConstraints w $ do - CommitteeColdKeyHash coldVKHash <- modifyError GovernanceCommitteeCmdKeyReadError $ - readVerificationKeyOrHashOrTextEnvFile AsCommitteeColdKey coldVkOrHashOrFp + conwayEraOnwardsConstraints eon $ do + coldVKeyCred <- modifyError GovernanceCommitteeCmdKeyReadError $ + readVerificaitonKeyOrHashOrFileOrScriptHash AsCommitteeColdKey unCommitteeColdKeyHash vkeyColdKeySource - makeCommitteeColdkeyResignationCertificate (CommitteeColdkeyResignationRequirements w coldVKHash anchor) + makeCommitteeColdkeyResignationCertificate (CommitteeColdkeyResignationRequirements eon coldVKeyCred anchor) & textEnvelopeToJSON (Just genKeyDelegCertDesc) - & writeLazyByteStringFile oFp + & writeLazyByteStringFile outFile & firstExceptT GovernanceCommitteeCmdTextEnvWriteError . newExceptT where diff --git a/cardano-cli/test/cardano-cli-golden/files/golden/help.cli b/cardano-cli/test/cardano-cli-golden/files/golden/help.cli index e21d3e043c..081d79267c 100644 --- a/cardano-cli/test/cardano-cli-golden/files/golden/help.cli +++ b/cardano-cli/test/cardano-cli-golden/files/golden/help.cli @@ -6402,6 +6402,7 @@ Usage: cardano-cli conway governance committee create-cold-key-resignation-certi ( --cold-verification-key STRING | --cold-verification-key-file FILE | --cold-verification-key-hash STRING + | --cold-script-hash HASH ) [--resignation-metadata-url TEXT --resignation-metadata-hash HASH] diff --git a/cardano-cli/test/cardano-cli-golden/files/golden/help/conway_governance_committee_create-cold-key-resignation-certificate.cli b/cardano-cli/test/cardano-cli-golden/files/golden/help/conway_governance_committee_create-cold-key-resignation-certificate.cli index 6a87a83d97..762121a40d 100644 --- a/cardano-cli/test/cardano-cli-golden/files/golden/help/conway_governance_committee_create-cold-key-resignation-certificate.cli +++ b/cardano-cli/test/cardano-cli-golden/files/golden/help/conway_governance_committee_create-cold-key-resignation-certificate.cli @@ -2,6 +2,7 @@ Usage: cardano-cli conway governance committee create-cold-key-resignation-certi ( --cold-verification-key STRING | --cold-verification-key-file FILE | --cold-verification-key-hash STRING + | --cold-script-hash HASH ) [--resignation-metadata-url TEXT --resignation-metadata-hash HASH] @@ -16,6 +17,9 @@ Available options: Filepath of the Consitutional Committee cold key. --cold-verification-key-hash STRING Constitutional Committee key hash (hex-encoded). + --cold-script-hash HASH Cold Native or Plutus script file hash (hex-encoded). + Obtain it with "cardano-cli conway governance hash + script ...". --resignation-metadata-url TEXT Constitutional Committee cold key resignation certificate URL