Skip to content

Use experimental Era type in governance actions #1158

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 2 commits into
base: master
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions cabal.project
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,12 @@ index-state:
, hackage.haskell.org 2025-04-16T18:30:40Z
, cardano-haskell-packages 2025-04-25T15:50:18Z

source-repository-package
type: git
location: https://github.com/intersectmbo/cardano-api.git
tag: 664d95473b40a23333495641159623761370c201
subdir: cardano-api
--sha256: sha256-B/4eaFkXWhf5KJXynxgZy1r87kJENS/Yo/Y4Dp/GYTs=

packages:
cardano-cli
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ module Cardano.CLI.EraBased.Governance.Actions.Command
where

import Cardano.Api
import Cardano.Api.Experimental (Era)
import Cardano.Api.Ledger qualified as L
import Cardano.Api.Shelley

Expand All @@ -46,7 +47,7 @@ data GovernanceActionCmds era

data GovernanceActionUpdateCommitteeCmdArgs era
= GovernanceActionUpdateCommitteeCmdArgs
{ eon :: !(ConwayEraOnwards era)
{ eon :: !(Era era)
, networkId :: !L.Network
, deposit :: !Lovelace
, returnAddress :: !StakeIdentifier
Expand Down Expand Up @@ -82,7 +83,7 @@ data GovernanceActionCreateConstitutionCmdArgs era
-- | Datatype to carry data for the create-info governance action
data GovernanceActionInfoCmdArgs era
= GovernanceActionInfoCmdArgs
{ eon :: !(ConwayEraOnwards era)
{ eon :: !(Era era)
, networkId :: !L.Network
, deposit :: !Lovelace
, returnStakeAddress :: !StakeIdentifier
Expand Down Expand Up @@ -127,7 +128,7 @@ data GovernanceActionProtocolParametersUpdateCmdArgs era

data GovernanceActionTreasuryWithdrawalCmdArgs era
= GovernanceActionTreasuryWithdrawalCmdArgs
{ eon :: !(ConwayEraOnwards era)
{ eon :: !(Era era)
, networkId :: !L.Network
, deposit :: !Lovelace
, returnAddr :: !StakeIdentifier
Expand All @@ -142,7 +143,7 @@ data GovernanceActionTreasuryWithdrawalCmdArgs era

data GovernanceActionHardforkInitCmdArgs era
= GovernanceActionHardforkInitCmdArgs
{ eon :: !(ConwayEraOnwards era)
{ eon :: !(Era era)
, networkId :: !L.Network
, deposit :: !Lovelace
, returnStakeAddress :: !StakeIdentifier
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ module Cardano.CLI.EraBased.Governance.Actions.Option
where

import Cardano.Api
import Cardano.Api.Experimental (Era)
import Cardano.Api.Ledger qualified as L
import Cardano.Api.Shelley

Expand Down Expand Up @@ -129,7 +130,7 @@ pGovernanceActionUpdateCommitteeCmd era = do

pUpdateCommitteeCmd
:: ()
=> ConwayEraOnwards era
=> Era era
-> Parser (Cmd.GovernanceActionUpdateCommitteeCmdArgs era)
pUpdateCommitteeCmd eon =
Cmd.GovernanceActionUpdateCommitteeCmdArgs eon
Expand Down
33 changes: 16 additions & 17 deletions cardano-cli/src/Cardano/CLI/EraBased/Governance/Actions/Run.hs
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ module Cardano.CLI.EraBased.Governance.Actions.Run
where

import Cardano.Api
import Cardano.Api.Experimental (obtainCommonConstraints)
import Cardano.Api.Ledger (StrictMaybe (..))
import Cardano.Api.Ledger qualified as L
import Cardano.Api.Shelley
Expand Down Expand Up @@ -101,12 +102,11 @@ runGovernanceActionInfoCmd

carryHashChecks checkProposalHash proposalAnchor ProposalCheck

let sbe = convert eon
govAction = InfoAct
proposalProcedure = createProposalProcedure sbe networkId deposit depositStakeCredential govAction proposalAnchor
let govAction = InfoAct
proposalProcedure = createProposalProcedure eon networkId deposit depositStakeCredential govAction proposalAnchor

firstExceptT GovernanceActionsCmdWriteFileError . newExceptT $
conwayEraOnwardsConstraints eon $
obtainCommonConstraints eon $
writeFileTextEnvelope outFile (Just "Info proposal") proposalProcedure

fetchURLErrorToGovernanceActionError
Expand Down Expand Up @@ -295,11 +295,12 @@ runGovernanceActionUpdateCommitteeCmd
proposalAnchor

firstExceptT GovernanceActionsCmdWriteFileError . newExceptT $
conwayEraOnwardsConstraints eon $
writeFileTextEnvelope
outFile
(Just "New constitutional committee and/or threshold and/or terms proposal")
proposal
obtainCommonConstraints eon $
shelleyBasedEraConstraints sbe $
writeFileTextEnvelope
outFile
(Just "New constitutional committee and/or threshold and/or terms proposal")
proposal

runGovernanceActionCreateProtocolParametersUpdateCmd
:: forall era
Expand Down Expand Up @@ -449,22 +450,21 @@ runGovernanceActionTreasuryWithdrawalCmd
firstExceptT GovernanceActionsReadStakeCredErrror $ getStakeCredentialFromIdentifier stakeIdentifier
pure (networkId, stakeCredential, lovelace)

let sbe = convert eon
treasuryWithdrawals =
let treasuryWithdrawals =
TreasuryWithdrawal
withdrawals
(toShelleyScriptHash <$> L.maybeToStrictMaybe constitutionScriptHash)
proposal =
createProposalProcedure
sbe
eon
networkId
deposit
depositStakeCredential
treasuryWithdrawals
proposalAnchor

firstExceptT GovernanceActionsCmdWriteFileError . newExceptT $
conwayEraOnwardsConstraints eon $
obtainCommonConstraints eon $
writeFileTextEnvelope outFile (Just "Treasury withdrawal proposal") proposal

runGovernanceActionHardforkInitCmd
Expand Down Expand Up @@ -497,19 +497,18 @@ runGovernanceActionHardforkInitCmd

carryHashChecks checkProposalHash proposalAnchor ProposalCheck

let sbe = convert eon
govActIdentifier =
let govActIdentifier =
L.maybeToStrictMaybe $
L.GovPurposeId <$> mPrevGovernanceActionId
initHardfork =
InitiateHardfork
govActIdentifier
protVer

proposalProcedure = createProposalProcedure sbe networkId deposit depositStakeCredential initHardfork proposalAnchor
proposalProcedure = createProposalProcedure eon networkId deposit depositStakeCredential initHardfork proposalAnchor

firstExceptT GovernanceActionsCmdWriteFileError . newExceptT $
conwayEraOnwardsConstraints eon $
obtainCommonConstraints eon $
writeFileTextEnvelope outFile (Just "Hardfork initiation proposal") proposalProcedure

-- | Check the hash of the anchor data against the hash in the anchor if
Expand Down
Loading