Skip to content

Commit

Permalink
Parameterize GovernanceAction on era and use Ledger.PParamsUpdate type
Browse files Browse the repository at this point in the history
in UpdatePParams constructor
  • Loading branch information
Jimbo4350 committed Oct 17, 2023
1 parent 7e54356 commit cacab2c
Showing 1 changed file with 12 additions and 16 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ import Cardano.Api.Value

import qualified Cardano.Binary as CBOR
import qualified Cardano.Ledger.Address as L
import qualified Cardano.Ledger.Allegra.Core as Ledger
import Cardano.Ledger.BaseTypes
import qualified Cardano.Ledger.Conway as Conway
import qualified Cardano.Ledger.Conway.Governance as Gov
Expand All @@ -45,7 +46,7 @@ import Data.Word
data AnyGovernanceAction = forall era. AnyGovernanceAction (Gov.GovAction era)

-- TODO: Conway - Transitiion to Ledger.GovAction
data GovernanceAction
data GovernanceAction era
= MotionOfNoConfidence
(StrictMaybe (Ledger.PrevGovActionId Ledger.CommitteePurpose StandardCrypto))
| ProposeNewConstitution
Expand All @@ -63,13 +64,11 @@ data GovernanceAction
ProtVer
| UpdatePParams
(StrictMaybe (Ledger.PrevGovActionId Ledger.PParamUpdatePurpose StandardCrypto))
ProtocolParametersUpdate
deriving (Eq, Show)

(Ledger.PParamsUpdate (ShelleyLedgerEra era))

toGovernanceAction :: ()
=> ShelleyBasedEra era
-> GovernanceAction
-> GovernanceAction era
-> Gov.GovAction (ShelleyLedgerEra era)
toGovernanceAction sbe =
shelleyBasedEraConstraints sbe $ \case
Expand Down Expand Up @@ -98,22 +97,19 @@ toGovernanceAction sbe =
InitiateHardfork prevGovId pVer ->
Gov.HardForkInitiation prevGovId pVer
UpdatePParams preGovId ppup ->
case toLedgerPParamsUpdate sbe ppup of
Left e -> error $ "toGovernanceAction: " <> show e
Right ppup' -> Gov.ParameterChange preGovId ppup'
Gov.ParameterChange preGovId ppup

fromGovernanceAction
:: EraCrypto (ShelleyLedgerEra era) ~ StandardCrypto
=> ShelleyBasedEra era
-> Gov.GovAction (ShelleyLedgerEra era)
-> GovernanceAction
fromGovernanceAction sbe = \case
=> Gov.GovAction (ShelleyLedgerEra era)
-> GovernanceAction era
fromGovernanceAction = \case
Gov.NoConfidence prevGovId ->
MotionOfNoConfidence prevGovId
Gov.NewConstitution prevGovId constitution ->
ProposeNewConstitution prevGovId $ Gov.constitutionAnchor constitution
Gov.ParameterChange prevGovId pparams ->
UpdatePParams prevGovId $ fromLedgerPParamsUpdate sbe pparams
UpdatePParams prevGovId pparams
Gov.HardForkInitiation prevGovId pVer ->
InitiateHardfork prevGovId pVer
Gov.TreasuryWithdrawals withdrawlMap ->
Expand Down Expand Up @@ -163,7 +159,7 @@ createProposalProcedure
-> Network
-> Lovelace -- ^ Deposit
-> Hash StakeKey -- ^ Return address
-> GovernanceAction
-> GovernanceAction era
-> Ledger.Anchor StandardCrypto
-> Proposal era
createProposalProcedure sbe nw dep (StakeKeyHash retAddrh) govAct anchor =
Expand All @@ -178,15 +174,15 @@ createProposalProcedure sbe nw dep (StakeKeyHash retAddrh) govAct anchor =
fromProposalProcedure
:: ShelleyBasedEra era
-> Proposal era
-> (Lovelace, Hash StakeKey, GovernanceAction)
-> (Lovelace, Hash StakeKey, GovernanceAction era)
fromProposalProcedure sbe (Proposal pp) =
shelleyBasedEraConstraints sbe
( fromShelleyLovelace $ Gov.pProcDeposit pp
, case fromShelleyStakeCredential (L.getRwdCred (Gov.pProcReturnAddr pp)) of
StakeCredentialByKey keyhash -> keyhash
StakeCredentialByScript _scripthash ->
error "fromProposalProcedure TODO: Conway era script reward addresses not yet supported"
, fromGovernanceAction sbe (Gov.pProcGovAction pp)
, fromGovernanceAction (Gov.pProcGovAction pp)
)


Expand Down

0 comments on commit cacab2c

Please sign in to comment.