{-# LANGUAGE AllowAmbiguousTypes #-} {-# LANGUAGE DataKinds #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE RankNTypes #-} {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE TypeApplications #-} {-# LANGUAGE TypeOperators #-} module Test.Cardano.Ledger.Conway.Examples ( ledgerExamples, mkConwayBasedExampleTx, exampleConwayBasedTxBody, exampleAnchor, exampleVotingProcedures, exampleProposalProcedure, exampleProposalProcedureParameterChange, exampleProposalProcedureHardForkInitiation, exampleProposalProcedureTreasuryWithdrawals, exampleProposalProcedureNoConfidence, exampleProposalProcedureUpdateCommittee, exampleProposalProcedureNewConstitution, ) where import Cardano.Ledger.Alonzo.Plutus.Context (EraPlutusTxInfo) import Cardano.Ledger.BaseTypes import Cardano.Ledger.Coin (Coin (..)) import Cardano.Ledger.Conway (ApplyTxError (ConwayApplyTxError), ConwayEra) import Cardano.Ledger.Conway.Core import Cardano.Ledger.Conway.Genesis (ConwayGenesis (..)) import Cardano.Ledger.Conway.Governance ( Constitution (..), GovAction (..), GovActionId (..), GovActionIx (..), GovPurposeId (..), ProposalProcedure (..), Vote (..), Voter (..), VotingProcedure (..), VotingProcedures (..), ) import Cardano.Ledger.Conway.Rules (ConwayDelegPredFailure (..)) import Cardano.Ledger.Conway.Scripts (ConwayPlutusPurpose (..)) import Cardano.Ledger.Conway.TxCert import Cardano.Ledger.Credential (Credential (..)) import Cardano.Ledger.DRep (DRep (..)) import Cardano.Ledger.Mary.Value (MaryValue (..)) import Cardano.Ledger.Plutus.Data ( Datum (..), dataToBinaryData, ) import Cardano.Ledger.Plutus.Language (Language (..), plutusBinary) import Cardano.Ledger.State (StakePoolParams (sppId)) import Cardano.Ledger.TxIn (TxId (..)) import qualified Data.List.NonEmpty as NE import qualified Data.Map.Strict as Map import Data.Maybe (fromJust) import qualified Data.OSet.Strict as OSet import qualified Data.Sequence.Strict as StrictSeq import Lens.Micro import Test.Cardano.Ledger.Alonzo.Arbitrary (alwaysSucceeds) import Test.Cardano.Ledger.Alonzo.Examples ( exampleDatum, mkAlonzoBasedLedgerExamples, ) import Test.Cardano.Ledger.Babbage.Examples ( exampleBabbageBasedTxBody, exampleBabbageNewEpochState, mkBabbageBasedExampleTx, ) import Test.Cardano.Ledger.Conway.Era () import Test.Cardano.Ledger.Conway.Genesis (expectedConwayGenesis) import Test.Cardano.Ledger.Core.KeyPair (mkAddr) import Test.Cardano.Ledger.Core.Rational (IsRatio (..)) import Test.Cardano.Ledger.Core.Utils (mkDummySafeHash) import Test.Cardano.Ledger.Mary.Examples (exampleMultiAssetValue) import Test.Cardano.Ledger.Plutus (alwaysSucceedsPlutus) import Test.Cardano.Ledger.Shelley.Examples ( LedgerExamples (..), examplePayKey, exampleStakeKey, exampleStakePoolParams, mkKeyHash, mkScriptHash, ) ledgerExamples :: LedgerExamples ConwayEra ledgerExamples :: LedgerExamples ConwayEra ledgerExamples = ApplyTxError ConwayEra -> NewEpochState ConwayEra -> Tx TopTx ConwayEra -> TranslationContext ConwayEra -> LedgerExamples ConwayEra forall era. AlonzoEraPParams era => ApplyTxError era -> NewEpochState era -> Tx TopTx era -> TranslationContext era -> LedgerExamples era mkAlonzoBasedLedgerExamples ( NonEmpty (ConwayLedgerPredFailure ConwayEra) -> ApplyTxError ConwayEra ConwayApplyTxError (NonEmpty (ConwayLedgerPredFailure ConwayEra) -> ApplyTxError ConwayEra) -> NonEmpty (ConwayLedgerPredFailure ConwayEra) -> ApplyTxError ConwayEra forall a b. (a -> b) -> a -> b $ ConwayLedgerPredFailure ConwayEra -> NonEmpty (ConwayLedgerPredFailure ConwayEra) forall a. a -> NonEmpty a forall (f :: * -> *) a. Applicative f => a -> f a pure (ConwayLedgerPredFailure ConwayEra -> NonEmpty (ConwayLedgerPredFailure ConwayEra)) -> ConwayLedgerPredFailure ConwayEra -> NonEmpty (ConwayLedgerPredFailure ConwayEra) forall a b. (a -> b) -> a -> b $ ConwayDelegPredFailure ConwayEra -> EraRuleFailure "LEDGER" ConwayEra forall (rule :: Symbol) (t :: * -> *) era. InjectRuleFailure rule t era => t era -> EraRuleFailure rule era injectFailure (ConwayDelegPredFailure ConwayEra -> EraRuleFailure "LEDGER" ConwayEra) -> ConwayDelegPredFailure ConwayEra -> EraRuleFailure "LEDGER" ConwayEra forall a b. (a -> b) -> a -> b $ forall era. KeyHash StakePool -> ConwayDelegPredFailure era DelegateeStakePoolNotRegisteredDELEG @ConwayEra (Int -> KeyHash StakePool forall (discriminator :: KeyRole). Int -> KeyHash discriminator mkKeyHash Int 1) ) NewEpochState ConwayEra forall era. (BabbageEraTest era, Value era ~ MaryValue) => NewEpochState era exampleBabbageNewEpochState ( TxBody TopTx ConwayEra -> PlutusPurpose AsIx ConwayEra -> Tx TopTx ConwayEra forall era. (AlonzoEraTx era, AlonzoEraTxAuxData era, EraPlutusTxInfo 'PlutusV1 era, EraPlutusTxInfo 'PlutusV2 era, EraPlutusTxInfo 'PlutusV3 era) => TxBody TopTx era -> PlutusPurpose AsIx era -> Tx TopTx era mkConwayBasedExampleTx (StrictSeq (TxCert ConwayEra) -> TxBody TopTx ConwayEra forall era. (ConwayEraTxBody era, EraPlutusTxInfo 'PlutusV1 era, EraPlutusTxInfo 'PlutusV2 era, EraPlutusTxInfo 'PlutusV3 era, Value era ~ MaryValue) => StrictSeq (TxCert era) -> TxBody TopTx era exampleConwayBasedTxBody StrictSeq (TxCert ConwayEra) StrictSeq (ConwayTxCert ConwayEra) forall era. StrictSeq (ConwayTxCert era) exampleConwayCerts) (AsIx Word32 TxIn -> ConwayPlutusPurpose AsIx ConwayEra forall (f :: * -> * -> *) era. f Word32 TxIn -> ConwayPlutusPurpose f era ConwaySpending (AsIx Word32 TxIn -> ConwayPlutusPurpose AsIx ConwayEra) -> AsIx Word32 TxIn -> ConwayPlutusPurpose AsIx ConwayEra forall a b. (a -> b) -> a -> b $ Word32 -> AsIx Word32 TxIn forall ix it. ix -> AsIx ix it AsIx Word32 0) ) TranslationContext ConwayEra ConwayGenesis exampleConwayGenesis mkConwayBasedExampleTx :: forall era. ( AlonzoEraTx era , AlonzoEraTxAuxData era , EraPlutusTxInfo 'PlutusV1 era , EraPlutusTxInfo 'PlutusV2 era , EraPlutusTxInfo 'PlutusV3 era ) => TxBody TopTx era -> PlutusPurpose AsIx era -> Tx TopTx era mkConwayBasedExampleTx :: forall era. (AlonzoEraTx era, AlonzoEraTxAuxData era, EraPlutusTxInfo 'PlutusV1 era, EraPlutusTxInfo 'PlutusV2 era, EraPlutusTxInfo 'PlutusV3 era) => TxBody TopTx era -> PlutusPurpose AsIx era -> Tx TopTx era mkConwayBasedExampleTx TxBody TopTx era txBody PlutusPurpose AsIx era scriptPurpose = TxBody TopTx era -> PlutusPurpose AsIx era -> Tx TopTx era forall era. (AlonzoEraTx era, AlonzoEraTxAuxData era, EraPlutusTxInfo 'PlutusV1 era, EraPlutusTxInfo 'PlutusV2 era) => TxBody TopTx era -> PlutusPurpose AsIx era -> Tx TopTx era mkBabbageBasedExampleTx TxBody TopTx era txBody PlutusPurpose AsIx era scriptPurpose Tx TopTx era -> (Tx TopTx era -> Tx TopTx era) -> Tx TopTx era forall a b. a -> (a -> b) -> b & (TxWits era -> Identity (TxWits era)) -> Tx TopTx era -> Identity (Tx TopTx era) forall era (l :: TxLevel). EraTx era => Lens' (Tx l era) (TxWits era) forall (l :: TxLevel). Lens' (Tx l era) (TxWits era) witsTxL ((TxWits era -> Identity (TxWits era)) -> Tx TopTx era -> Identity (Tx TopTx era)) -> TxWits era -> Tx TopTx era -> Tx TopTx era forall a s t. Monoid a => ASetter s t a a -> a -> s -> t <>~ ( TxWits era forall era. EraTxWits era => TxWits era mkBasicTxWits TxWits era -> (TxWits era -> TxWits era) -> TxWits era forall a b. a -> (a -> b) -> b & (Map ScriptHash (Script era) -> Identity (Map ScriptHash (Script era))) -> TxWits era -> Identity (TxWits era) forall era. EraTxWits era => Lens' (TxWits era) (Map ScriptHash (Script era)) Lens' (TxWits era) (Map ScriptHash (Script era)) scriptTxWitsL ((Map ScriptHash (Script era) -> Identity (Map ScriptHash (Script era))) -> TxWits era -> Identity (TxWits era)) -> Map ScriptHash (Script era) -> TxWits era -> TxWits era forall s t a b. ASetter s t a b -> b -> s -> t .~ ScriptHash -> Script era -> Map ScriptHash (Script era) forall k a. k -> a -> Map k a Map.singleton (forall era. EraScript era => Script era -> ScriptHash hashScript @era (Script era -> ScriptHash) -> Script era -> ScriptHash forall a b. (a -> b) -> a -> b $ forall (l :: Language) era. (HasCallStack, EraPlutusTxInfo l era) => Natural -> Script era alwaysSucceeds @'PlutusV3 Natural 3) (forall (l :: Language) era. (HasCallStack, EraPlutusTxInfo l era) => Natural -> Script era alwaysSucceeds @'PlutusV3 Natural 3) ) Tx TopTx era -> (Tx TopTx era -> Tx TopTx era) -> Tx TopTx era forall a b. a -> (a -> b) -> b & (StrictMaybe (TxAuxData era) -> Identity (StrictMaybe (TxAuxData era))) -> Tx TopTx era -> Identity (Tx TopTx era) forall era (l :: TxLevel). EraTx era => Lens' (Tx l era) (StrictMaybe (TxAuxData era)) forall (l :: TxLevel). Lens' (Tx l era) (StrictMaybe (TxAuxData era)) auxDataTxL ((StrictMaybe (TxAuxData era) -> Identity (StrictMaybe (TxAuxData era))) -> Tx TopTx era -> Identity (Tx TopTx era)) -> (StrictMaybe (TxAuxData era) -> StrictMaybe (TxAuxData era)) -> Tx TopTx era -> Tx TopTx era forall s t a b. ASetter s t a b -> (a -> b) -> s -> t %~ (TxAuxData era -> TxAuxData era) -> StrictMaybe (TxAuxData era) -> StrictMaybe (TxAuxData era) forall a b. (a -> b) -> StrictMaybe a -> StrictMaybe b forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b fmap ( \TxAuxData era auxData -> TxAuxData era auxData TxAuxData era -> (TxAuxData era -> TxAuxData era) -> TxAuxData era forall a b. a -> (a -> b) -> b & (Map Language (NonEmpty PlutusBinary) -> Identity (Map Language (NonEmpty PlutusBinary))) -> TxAuxData era -> Identity (TxAuxData era) forall era. AlonzoEraTxAuxData era => Lens' (TxAuxData era) (Map Language (NonEmpty PlutusBinary)) Lens' (TxAuxData era) (Map Language (NonEmpty PlutusBinary)) plutusScriptsTxAuxDataL ((Map Language (NonEmpty PlutusBinary) -> Identity (Map Language (NonEmpty PlutusBinary))) -> TxAuxData era -> Identity (TxAuxData era)) -> Map Language (NonEmpty PlutusBinary) -> TxAuxData era -> TxAuxData era forall a s t. Monoid a => ASetter s t a a -> a -> s -> t <>~ Language -> NonEmpty PlutusBinary -> Map Language (NonEmpty PlutusBinary) forall k a. k -> a -> Map k a Map.singleton Language PlutusV3 (PlutusBinary -> NonEmpty PlutusBinary forall a. a -> NonEmpty a NE.singleton (Plutus 'PlutusV3 -> PlutusBinary forall (l :: Language). Plutus l -> PlutusBinary plutusBinary (forall (l :: Language). Natural -> Plutus l alwaysSucceedsPlutus @'PlutusV3 Natural 3))) ) exampleConwayBasedTxBody :: forall era. ( ConwayEraTxBody era , EraPlutusTxInfo PlutusV1 era , EraPlutusTxInfo PlutusV2 era , EraPlutusTxInfo PlutusV3 era , Value era ~ MaryValue ) => StrictSeq.StrictSeq (TxCert era) -> TxBody TopTx era exampleConwayBasedTxBody :: forall era. (ConwayEraTxBody era, EraPlutusTxInfo 'PlutusV1 era, EraPlutusTxInfo 'PlutusV2 era, EraPlutusTxInfo 'PlutusV3 era, Value era ~ MaryValue) => StrictSeq (TxCert era) -> TxBody TopTx era exampleConwayBasedTxBody StrictSeq (TxCert era) certs = StrictSeq (TxCert era) -> TxBody TopTx era -> TxBody TopTx era forall era. (ConwayEraTxBody era, Value era ~ MaryValue, EraPlutusTxInfo 'PlutusV3 era) => StrictSeq (TxCert era) -> TxBody TopTx era -> TxBody TopTx era mkConwayBasedExampleTxBody StrictSeq (TxCert era) certs TxBody TopTx era forall era. (BabbageEraTxBody era, EraPlutusTxInfo 'PlutusV1 era, EraPlutusTxInfo 'PlutusV2 era, Value era ~ MaryValue) => TxBody TopTx era exampleBabbageBasedTxBody mkConwayBasedExampleTxBody :: forall era. ( ConwayEraTxBody era , Value era ~ MaryValue , EraPlutusTxInfo PlutusV3 era ) => StrictSeq.StrictSeq (TxCert era) -> TxBody TopTx era -> TxBody TopTx era mkConwayBasedExampleTxBody :: forall era. (ConwayEraTxBody era, Value era ~ MaryValue, EraPlutusTxInfo 'PlutusV3 era) => StrictSeq (TxCert era) -> TxBody TopTx era -> TxBody TopTx era mkConwayBasedExampleTxBody StrictSeq (TxCert era) certs TxBody TopTx era txBody = TxBody TopTx era txBody TxBody TopTx era -> (TxBody TopTx era -> TxBody TopTx era) -> TxBody TopTx era forall a b. a -> (a -> b) -> b & (StrictSeq (TxOut era) -> Identity (StrictSeq (TxOut era))) -> TxBody TopTx era -> Identity (TxBody TopTx era) forall era (l :: TxLevel). EraTxBody era => Lens' (TxBody l era) (StrictSeq (TxOut era)) forall (l :: TxLevel). Lens' (TxBody l era) (StrictSeq (TxOut era)) outputsTxBodyL ((StrictSeq (TxOut era) -> Identity (StrictSeq (TxOut era))) -> TxBody TopTx era -> Identity (TxBody TopTx era)) -> StrictSeq (TxOut era) -> TxBody TopTx era -> TxBody TopTx era forall a s t. Monoid a => ASetter s t a a -> a -> s -> t <>~ [TxOut era] -> StrictSeq (TxOut era) forall a. [a] -> StrictSeq a StrictSeq.fromList [ Addr -> Value era -> TxOut era forall era. (EraTxOut era, HasCallStack) => Addr -> Value era -> TxOut era mkBasicTxOut (KeyPair Payment -> KeyPair Staking -> Addr forall p s. (MakeCredential p Payment, MakeStakeReference s) => p -> s -> Addr mkAddr KeyPair Payment examplePayKey KeyPair Staking exampleStakeKey) (Int -> MaryValue exampleMultiAssetValue Int 2) TxOut era -> (TxOut era -> TxOut era) -> TxOut era forall a b. a -> (a -> b) -> b & (Datum era -> Identity (Datum era)) -> TxOut era -> Identity (TxOut era) forall era. BabbageEraTxOut era => Lens' (TxOut era) (Datum era) Lens' (TxOut era) (Datum era) datumTxOutL ((Datum era -> Identity (Datum era)) -> TxOut era -> Identity (TxOut era)) -> Datum era -> TxOut era -> TxOut era forall s t a b. ASetter s t a b -> b -> s -> t .~ BinaryData era -> Datum era forall era. BinaryData era -> Datum era Datum (Data era -> BinaryData era forall era. Data era -> BinaryData era dataToBinaryData Data era forall era. Era era => Data era exampleDatum) TxOut era -> (TxOut era -> TxOut era) -> TxOut era forall a b. a -> (a -> b) -> b & (StrictMaybe (Script era) -> Identity (StrictMaybe (Script era))) -> TxOut era -> Identity (TxOut era) forall era. BabbageEraTxOut era => Lens' (TxOut era) (StrictMaybe (Script era)) Lens' (TxOut era) (StrictMaybe (Script era)) referenceScriptTxOutL ((StrictMaybe (Script era) -> Identity (StrictMaybe (Script era))) -> TxOut era -> Identity (TxOut era)) -> StrictMaybe (Script era) -> TxOut era -> TxOut era forall s t a b. ASetter s t a b -> b -> s -> t .~ Script era -> StrictMaybe (Script era) forall a. a -> StrictMaybe a SJust (forall (l :: Language) era. (HasCallStack, EraPlutusTxInfo l era) => Natural -> Script era alwaysSucceeds @'PlutusV3 Natural 3) ] TxBody TopTx era -> (TxBody TopTx era -> TxBody TopTx era) -> TxBody TopTx era forall a b. a -> (a -> b) -> b & (StrictSeq (TxCert era) -> Identity (StrictSeq (TxCert era))) -> TxBody TopTx era -> Identity (TxBody TopTx era) forall era (l :: TxLevel). EraTxBody era => Lens' (TxBody l era) (StrictSeq (TxCert era)) forall (l :: TxLevel). Lens' (TxBody l era) (StrictSeq (TxCert era)) certsTxBodyL ((StrictSeq (TxCert era) -> Identity (StrictSeq (TxCert era))) -> TxBody TopTx era -> Identity (TxBody TopTx era)) -> StrictSeq (TxCert era) -> TxBody TopTx era -> TxBody TopTx era forall s t a b. ASetter s t a b -> b -> s -> t .~ StrictSeq (TxCert era) certs TxBody TopTx era -> (TxBody TopTx era -> TxBody TopTx era) -> TxBody TopTx era forall a b. a -> (a -> b) -> b & (VotingProcedures era -> Identity (VotingProcedures era)) -> TxBody TopTx era -> Identity (TxBody TopTx era) forall era (l :: TxLevel). ConwayEraTxBody era => Lens' (TxBody l era) (VotingProcedures era) forall (l :: TxLevel). Lens' (TxBody l era) (VotingProcedures era) votingProceduresTxBodyL ((VotingProcedures era -> Identity (VotingProcedures era)) -> TxBody TopTx era -> Identity (TxBody TopTx era)) -> VotingProcedures era -> TxBody TopTx era -> TxBody TopTx era forall s t a b. ASetter s t a b -> b -> s -> t .~ VotingProcedures era forall era. VotingProcedures era exampleVotingProcedures TxBody TopTx era -> (TxBody TopTx era -> TxBody TopTx era) -> TxBody TopTx era forall a b. a -> (a -> b) -> b & (OSet (ProposalProcedure era) -> Identity (OSet (ProposalProcedure era))) -> TxBody TopTx era -> Identity (TxBody TopTx era) forall era (l :: TxLevel). ConwayEraTxBody era => Lens' (TxBody l era) (OSet (ProposalProcedure era)) forall (l :: TxLevel). Lens' (TxBody l era) (OSet (ProposalProcedure era)) proposalProceduresTxBodyL ((OSet (ProposalProcedure era) -> Identity (OSet (ProposalProcedure era))) -> TxBody TopTx era -> Identity (TxBody TopTx era)) -> OSet (ProposalProcedure era) -> TxBody TopTx era -> TxBody TopTx era forall s t a b. ASetter s t a b -> b -> s -> t .~ [ProposalProcedure era] -> OSet (ProposalProcedure era) forall a. Ord a => [a] -> OSet a OSet.fromList [ ProposalProcedure era forall era. ProposalProcedure era exampleProposalProcedure , ProposalProcedure era forall era. EraPParams era => ProposalProcedure era exampleProposalProcedureParameterChange , ProposalProcedure era forall era. ProposalProcedure era exampleProposalProcedureHardForkInitiation , ProposalProcedure era forall era. ProposalProcedure era exampleProposalProcedureTreasuryWithdrawals , ProposalProcedure era forall era. ProposalProcedure era exampleProposalProcedureNoConfidence , ProposalProcedure era forall era. ProposalProcedure era exampleProposalProcedureUpdateCommittee , ProposalProcedure era forall era. ProposalProcedure era exampleProposalProcedureNewConstitution ] TxBody TopTx era -> (TxBody TopTx era -> TxBody TopTx era) -> TxBody TopTx era forall a b. a -> (a -> b) -> b & (StrictMaybe Coin -> Identity (StrictMaybe Coin)) -> TxBody TopTx era -> Identity (TxBody TopTx era) forall era (l :: TxLevel). ConwayEraTxBody era => Lens' (TxBody l era) (StrictMaybe Coin) forall (l :: TxLevel). Lens' (TxBody l era) (StrictMaybe Coin) currentTreasuryValueTxBodyL ((StrictMaybe Coin -> Identity (StrictMaybe Coin)) -> TxBody TopTx era -> Identity (TxBody TopTx era)) -> StrictMaybe Coin -> TxBody TopTx era -> TxBody TopTx era forall s t a b. ASetter s t a b -> b -> s -> t .~ Coin -> StrictMaybe Coin forall a. a -> StrictMaybe a SJust (Integer -> Coin Coin Integer 867530900000) TxBody TopTx era -> (TxBody TopTx era -> TxBody TopTx era) -> TxBody TopTx era forall a b. a -> (a -> b) -> b & (Coin -> Identity Coin) -> TxBody TopTx era -> Identity (TxBody TopTx era) forall era (l :: TxLevel). ConwayEraTxBody era => Lens' (TxBody l era) Coin forall (l :: TxLevel). Lens' (TxBody l era) Coin treasuryDonationTxBodyL ((Coin -> Identity Coin) -> TxBody TopTx era -> Identity (TxBody TopTx era)) -> Coin -> TxBody TopTx era -> TxBody TopTx era forall s t a b. ASetter s t a b -> b -> s -> t .~ Integer -> Coin Coin Integer 1000000 exampleConwayCerts :: StrictSeq.StrictSeq (ConwayTxCert era) exampleConwayCerts :: forall era. StrictSeq (ConwayTxCert era) exampleConwayCerts = [ConwayTxCert era] -> StrictSeq (ConwayTxCert era) forall a. [a] -> StrictSeq a StrictSeq.fromList [ ConwayDelegCert -> ConwayTxCert era forall era. ConwayDelegCert -> ConwayTxCert era ConwayTxCertDeleg (ConwayDelegCert -> ConwayTxCert era) -> ConwayDelegCert -> ConwayTxCert era forall a b. (a -> b) -> a -> b $ Credential Staking -> StrictMaybe Coin -> ConwayDelegCert ConwayRegCert (KeyHash Staking -> Credential Staking forall (kr :: KeyRole). KeyHash kr -> Credential kr KeyHashObj (Int -> KeyHash Staking forall (discriminator :: KeyRole). Int -> KeyHash discriminator mkKeyHash Int 2)) (Coin -> StrictMaybe Coin forall a. a -> StrictMaybe a SJust (Integer -> Coin Coin Integer 2000000)) , ConwayDelegCert -> ConwayTxCert era forall era. ConwayDelegCert -> ConwayTxCert era ConwayTxCertDeleg (ConwayDelegCert -> ConwayTxCert era) -> ConwayDelegCert -> ConwayTxCert era forall a b. (a -> b) -> a -> b $ Credential Staking -> StrictMaybe Coin -> ConwayDelegCert ConwayUnRegCert (KeyHash Staking -> Credential Staking forall (kr :: KeyRole). KeyHash kr -> Credential kr KeyHashObj (Int -> KeyHash Staking forall (discriminator :: KeyRole). Int -> KeyHash discriminator mkKeyHash Int 2)) (Coin -> StrictMaybe Coin forall a. a -> StrictMaybe a SJust (Integer -> Coin Coin Integer 2000000)) , ConwayDelegCert -> ConwayTxCert era forall era. ConwayDelegCert -> ConwayTxCert era ConwayTxCertDeleg (ConwayDelegCert -> ConwayTxCert era) -> ConwayDelegCert -> ConwayTxCert era forall a b. (a -> b) -> a -> b $ Credential Staking -> Delegatee -> ConwayDelegCert ConwayDelegCert (KeyHash Staking -> Credential Staking forall (kr :: KeyRole). KeyHash kr -> Credential kr KeyHashObj (Int -> KeyHash Staking forall (discriminator :: KeyRole). Int -> KeyHash discriminator mkKeyHash Int 3)) (KeyHash StakePool -> Delegatee DelegStake (StakePoolParams -> KeyHash StakePool sppId StakePoolParams exampleStakePoolParams)) , ConwayDelegCert -> ConwayTxCert era forall era. ConwayDelegCert -> ConwayTxCert era ConwayTxCertDeleg (ConwayDelegCert -> ConwayTxCert era) -> ConwayDelegCert -> ConwayTxCert era forall a b. (a -> b) -> a -> b $ Credential Staking -> Delegatee -> ConwayDelegCert ConwayDelegCert (KeyHash Staking -> Credential Staking forall (kr :: KeyRole). KeyHash kr -> Credential kr KeyHashObj (Int -> KeyHash Staking forall (discriminator :: KeyRole). Int -> KeyHash discriminator mkKeyHash Int 4)) (DRep -> Delegatee DelegVote (KeyHash DRepRole -> DRep DRepKeyHash (Int -> KeyHash DRepRole forall (discriminator :: KeyRole). Int -> KeyHash discriminator mkKeyHash Int 5))) , ConwayDelegCert -> ConwayTxCert era forall era. ConwayDelegCert -> ConwayTxCert era ConwayTxCertDeleg (ConwayDelegCert -> ConwayTxCert era) -> ConwayDelegCert -> ConwayTxCert era forall a b. (a -> b) -> a -> b $ Credential Staking -> Delegatee -> ConwayDelegCert ConwayDelegCert (KeyHash Staking -> Credential Staking forall (kr :: KeyRole). KeyHash kr -> Credential kr KeyHashObj (Int -> KeyHash Staking forall (discriminator :: KeyRole). Int -> KeyHash discriminator mkKeyHash Int 6)) (KeyHash StakePool -> DRep -> Delegatee DelegStakeVote (StakePoolParams -> KeyHash StakePool sppId StakePoolParams exampleStakePoolParams) (KeyHash DRepRole -> DRep DRepKeyHash (Int -> KeyHash DRepRole forall (discriminator :: KeyRole). Int -> KeyHash discriminator mkKeyHash Int 7))) , ConwayDelegCert -> ConwayTxCert era forall era. ConwayDelegCert -> ConwayTxCert era ConwayTxCertDeleg (ConwayDelegCert -> ConwayTxCert era) -> ConwayDelegCert -> ConwayTxCert era forall a b. (a -> b) -> a -> b $ Credential Staking -> Delegatee -> Coin -> ConwayDelegCert ConwayRegDelegCert (KeyHash Staking -> Credential Staking forall (kr :: KeyRole). KeyHash kr -> Credential kr KeyHashObj (Int -> KeyHash Staking forall (discriminator :: KeyRole). Int -> KeyHash discriminator mkKeyHash Int 8)) (KeyHash StakePool -> Delegatee DelegStake (StakePoolParams -> KeyHash StakePool sppId StakePoolParams exampleStakePoolParams)) (Integer -> Coin Coin Integer 2000000) , PoolCert -> ConwayTxCert era forall era. PoolCert -> ConwayTxCert era ConwayTxCertPool (PoolCert -> ConwayTxCert era) -> PoolCert -> ConwayTxCert era forall a b. (a -> b) -> a -> b $ StakePoolParams -> PoolCert RegPool StakePoolParams exampleStakePoolParams , PoolCert -> ConwayTxCert era forall era. PoolCert -> ConwayTxCert era ConwayTxCertPool (PoolCert -> ConwayTxCert era) -> PoolCert -> ConwayTxCert era forall a b. (a -> b) -> a -> b $ KeyHash StakePool -> EpochNo -> PoolCert RetirePool (StakePoolParams -> KeyHash StakePool sppId StakePoolParams exampleStakePoolParams) (Word64 -> EpochNo EpochNo Word64 2) , ConwayGovCert -> ConwayTxCert era forall era. ConwayGovCert -> ConwayTxCert era ConwayTxCertGov (ConwayGovCert -> ConwayTxCert era) -> ConwayGovCert -> ConwayTxCert era forall a b. (a -> b) -> a -> b $ Credential DRepRole -> Coin -> StrictMaybe Anchor -> ConwayGovCert ConwayRegDRep (KeyHash DRepRole -> Credential DRepRole forall (kr :: KeyRole). KeyHash kr -> Credential kr KeyHashObj (Int -> KeyHash DRepRole forall (discriminator :: KeyRole). Int -> KeyHash discriminator mkKeyHash Int 9)) (Integer -> Coin Coin Integer 500000) (Anchor -> StrictMaybe Anchor forall a. a -> StrictMaybe a SJust Anchor exampleAnchor) , ConwayGovCert -> ConwayTxCert era forall era. ConwayGovCert -> ConwayTxCert era ConwayTxCertGov (ConwayGovCert -> ConwayTxCert era) -> ConwayGovCert -> ConwayTxCert era forall a b. (a -> b) -> a -> b $ Credential DRepRole -> Coin -> ConwayGovCert ConwayUnRegDRep (KeyHash DRepRole -> Credential DRepRole forall (kr :: KeyRole). KeyHash kr -> Credential kr KeyHashObj (Int -> KeyHash DRepRole forall (discriminator :: KeyRole). Int -> KeyHash discriminator mkKeyHash Int 9)) (Integer -> Coin Coin Integer 500000) , ConwayGovCert -> ConwayTxCert era forall era. ConwayGovCert -> ConwayTxCert era ConwayTxCertGov (ConwayGovCert -> ConwayTxCert era) -> ConwayGovCert -> ConwayTxCert era forall a b. (a -> b) -> a -> b $ Credential DRepRole -> StrictMaybe Anchor -> ConwayGovCert ConwayUpdateDRep (KeyHash DRepRole -> Credential DRepRole forall (kr :: KeyRole). KeyHash kr -> Credential kr KeyHashObj (Int -> KeyHash DRepRole forall (discriminator :: KeyRole). Int -> KeyHash discriminator mkKeyHash Int 9)) (Anchor -> StrictMaybe Anchor forall a. a -> StrictMaybe a SJust Anchor exampleAnchor) , ConwayGovCert -> ConwayTxCert era forall era. ConwayGovCert -> ConwayTxCert era ConwayTxCertGov (ConwayGovCert -> ConwayTxCert era) -> ConwayGovCert -> ConwayTxCert era forall a b. (a -> b) -> a -> b $ Credential ColdCommitteeRole -> Credential HotCommitteeRole -> ConwayGovCert ConwayAuthCommitteeHotKey (KeyHash ColdCommitteeRole -> Credential ColdCommitteeRole forall (kr :: KeyRole). KeyHash kr -> Credential kr KeyHashObj (Int -> KeyHash ColdCommitteeRole forall (discriminator :: KeyRole). Int -> KeyHash discriminator mkKeyHash Int 10)) (KeyHash HotCommitteeRole -> Credential HotCommitteeRole forall (kr :: KeyRole). KeyHash kr -> Credential kr KeyHashObj (Int -> KeyHash HotCommitteeRole forall (discriminator :: KeyRole). Int -> KeyHash discriminator mkKeyHash Int 11)) , ConwayGovCert -> ConwayTxCert era forall era. ConwayGovCert -> ConwayTxCert era ConwayTxCertGov (ConwayGovCert -> ConwayTxCert era) -> ConwayGovCert -> ConwayTxCert era forall a b. (a -> b) -> a -> b $ Credential ColdCommitteeRole -> StrictMaybe Anchor -> ConwayGovCert ConwayResignCommitteeColdKey (KeyHash ColdCommitteeRole -> Credential ColdCommitteeRole forall (kr :: KeyRole). KeyHash kr -> Credential kr KeyHashObj (Int -> KeyHash ColdCommitteeRole forall (discriminator :: KeyRole). Int -> KeyHash discriminator mkKeyHash Int 10)) (Anchor -> StrictMaybe Anchor forall a. a -> StrictMaybe a SJust Anchor exampleAnchor) ] exampleAnchor :: Anchor exampleAnchor :: Anchor exampleAnchor = Anchor { anchorUrl :: Url anchorUrl = Maybe Url -> Url forall a. HasCallStack => Maybe a -> a fromJust (Maybe Url -> Url) -> Maybe Url -> Url forall a b. (a -> b) -> a -> b $ Int -> Text -> Maybe Url forall (m :: * -> *). MonadFail m => Int -> Text -> m Url textToUrl Int 99 Text "https://example.com" , anchorDataHash :: SafeHash AnchorData anchorDataHash = Int -> SafeHash AnchorData forall a. Int -> SafeHash a mkDummySafeHash Int 0 } exampleVotingProcedures :: VotingProcedures era exampleVotingProcedures :: forall era. VotingProcedures era exampleVotingProcedures = Map Voter (Map GovActionId (VotingProcedure era)) -> VotingProcedures era forall era. Map Voter (Map GovActionId (VotingProcedure era)) -> VotingProcedures era VotingProcedures (Map Voter (Map GovActionId (VotingProcedure era)) -> VotingProcedures era) -> Map Voter (Map GovActionId (VotingProcedure era)) -> VotingProcedures era forall a b. (a -> b) -> a -> b $ [(Voter, Map GovActionId (VotingProcedure era))] -> Map Voter (Map GovActionId (VotingProcedure era)) forall k a. Ord k => [(k, a)] -> Map k a Map.fromList [ ( KeyHash StakePool -> Voter StakePoolVoter (Int -> KeyHash StakePool forall (discriminator :: KeyRole). Int -> KeyHash discriminator mkKeyHash Int 1) , GovActionId -> VotingProcedure era -> Map GovActionId (VotingProcedure era) forall k a. k -> a -> Map k a Map.singleton GovActionId exampleGovActionId (Vote -> StrictMaybe Anchor -> VotingProcedure era forall era. Vote -> StrictMaybe Anchor -> VotingProcedure era VotingProcedure Vote VoteYes (StrictMaybe Anchor -> VotingProcedure era) -> StrictMaybe Anchor -> VotingProcedure era forall a b. (a -> b) -> a -> b $ Anchor -> StrictMaybe Anchor forall a. a -> StrictMaybe a SJust Anchor exampleAnchor) ) , ( Credential DRepRole -> Voter DRepVoter (KeyHash DRepRole -> Credential DRepRole forall (kr :: KeyRole). KeyHash kr -> Credential kr KeyHashObj (Int -> KeyHash DRepRole forall (discriminator :: KeyRole). Int -> KeyHash discriminator mkKeyHash Int 2)) , GovActionId -> VotingProcedure era -> Map GovActionId (VotingProcedure era) forall k a. k -> a -> Map k a Map.singleton GovActionId exampleGovActionId (Vote -> StrictMaybe Anchor -> VotingProcedure era forall era. Vote -> StrictMaybe Anchor -> VotingProcedure era VotingProcedure Vote VoteNo (StrictMaybe Anchor -> VotingProcedure era) -> StrictMaybe Anchor -> VotingProcedure era forall a b. (a -> b) -> a -> b $ Anchor -> StrictMaybe Anchor forall a. a -> StrictMaybe a SJust Anchor exampleAnchor) ) , ( Credential HotCommitteeRole -> Voter CommitteeVoter (KeyHash HotCommitteeRole -> Credential HotCommitteeRole forall (kr :: KeyRole). KeyHash kr -> Credential kr KeyHashObj (Int -> KeyHash HotCommitteeRole forall (discriminator :: KeyRole). Int -> KeyHash discriminator mkKeyHash Int 3)) , GovActionId -> VotingProcedure era -> Map GovActionId (VotingProcedure era) forall k a. k -> a -> Map k a Map.singleton GovActionId exampleGovActionId (Vote -> StrictMaybe Anchor -> VotingProcedure era forall era. Vote -> StrictMaybe Anchor -> VotingProcedure era VotingProcedure Vote Abstain (Anchor -> StrictMaybe Anchor forall a. a -> StrictMaybe a SJust Anchor exampleAnchor)) ) ] exampleGovActionId :: GovActionId exampleGovActionId :: GovActionId exampleGovActionId = GovActionId { gaidTxId :: TxId gaidTxId = SafeHash EraIndependentTxBody -> TxId TxId (Int -> SafeHash EraIndependentTxBody forall a. Int -> SafeHash a mkDummySafeHash Int 1) , gaidGovActionIx :: GovActionIx gaidGovActionIx = Word16 -> GovActionIx GovActionIx Word16 0 } exampleProposalProcedure :: ProposalProcedure era exampleProposalProcedure :: forall era. ProposalProcedure era exampleProposalProcedure = ProposalProcedure { pProcDeposit :: Coin pProcDeposit = Integer -> Coin Coin Integer 1000000000 , pProcReturnAddr :: AccountAddress pProcReturnAddr = Network -> AccountId -> AccountAddress AccountAddress Network Testnet (Credential Staking -> AccountId AccountId (KeyHash Staking -> Credential Staking forall (kr :: KeyRole). KeyHash kr -> Credential kr KeyHashObj (Int -> KeyHash Staking forall (discriminator :: KeyRole). Int -> KeyHash discriminator mkKeyHash Int 0))) , pProcGovAction :: GovAction era pProcGovAction = GovAction era forall era. GovAction era InfoAction , pProcAnchor :: Anchor pProcAnchor = Anchor exampleAnchor } exampleProposalProcedureParameterChange :: EraPParams era => ProposalProcedure era exampleProposalProcedureParameterChange :: forall era. EraPParams era => ProposalProcedure era exampleProposalProcedureParameterChange = ProposalProcedure { pProcDeposit :: Coin pProcDeposit = Integer -> Coin Coin Integer 1000000000 , pProcReturnAddr :: AccountAddress pProcReturnAddr = Network -> AccountId -> AccountAddress AccountAddress Network Testnet (Credential Staking -> AccountId AccountId (KeyHash Staking -> Credential Staking forall (kr :: KeyRole). KeyHash kr -> Credential kr KeyHashObj (Int -> KeyHash Staking forall (discriminator :: KeyRole). Int -> KeyHash discriminator mkKeyHash Int 0))) , pProcGovAction :: GovAction era pProcGovAction = StrictMaybe (GovPurposeId 'PParamUpdatePurpose) -> PParamsUpdate era -> StrictMaybe ScriptHash -> GovAction era forall era. StrictMaybe (GovPurposeId 'PParamUpdatePurpose) -> PParamsUpdate era -> StrictMaybe ScriptHash -> GovAction era ParameterChange (GovPurposeId 'PParamUpdatePurpose -> StrictMaybe (GovPurposeId 'PParamUpdatePurpose) forall a. a -> StrictMaybe a SJust (GovActionId -> GovPurposeId 'PParamUpdatePurpose forall (p :: GovActionPurpose). GovActionId -> GovPurposeId p GovPurposeId GovActionId exampleGovActionId)) (PParamsUpdate era forall era. EraPParams era => PParamsUpdate era emptyPParamsUpdate PParamsUpdate era -> (PParamsUpdate era -> PParamsUpdate era) -> PParamsUpdate era forall a b. a -> (a -> b) -> b & (StrictMaybe Word32 -> Identity (StrictMaybe Word32)) -> PParamsUpdate era -> Identity (PParamsUpdate era) forall era. EraPParams era => Lens' (PParamsUpdate era) (StrictMaybe Word32) Lens' (PParamsUpdate era) (StrictMaybe Word32) ppuMaxBBSizeL ((StrictMaybe Word32 -> Identity (StrictMaybe Word32)) -> PParamsUpdate era -> Identity (PParamsUpdate era)) -> StrictMaybe Word32 -> PParamsUpdate era -> PParamsUpdate era forall s t a b. ASetter s t a b -> b -> s -> t .~ Word32 -> StrictMaybe Word32 forall a. a -> StrictMaybe a SJust Word32 65536) (ScriptHash -> StrictMaybe ScriptHash forall a. a -> StrictMaybe a SJust (Int -> ScriptHash mkScriptHash Int 1)) , pProcAnchor :: Anchor pProcAnchor = Anchor exampleAnchor } exampleProposalProcedureHardForkInitiation :: ProposalProcedure era exampleProposalProcedureHardForkInitiation :: forall era. ProposalProcedure era exampleProposalProcedureHardForkInitiation = ProposalProcedure { pProcDeposit :: Coin pProcDeposit = Integer -> Coin Coin Integer 1000000000 , pProcReturnAddr :: AccountAddress pProcReturnAddr = Network -> AccountId -> AccountAddress AccountAddress Network Testnet (Credential Staking -> AccountId AccountId (KeyHash Staking -> Credential Staking forall (kr :: KeyRole). KeyHash kr -> Credential kr KeyHashObj (Int -> KeyHash Staking forall (discriminator :: KeyRole). Int -> KeyHash discriminator mkKeyHash Int 0))) , pProcGovAction :: GovAction era pProcGovAction = StrictMaybe (GovPurposeId 'HardForkPurpose) -> ProtVer -> GovAction era forall era. StrictMaybe (GovPurposeId 'HardForkPurpose) -> ProtVer -> GovAction era HardForkInitiation (GovPurposeId 'HardForkPurpose -> StrictMaybe (GovPurposeId 'HardForkPurpose) forall a. a -> StrictMaybe a SJust (GovActionId -> GovPurposeId 'HardForkPurpose forall (p :: GovActionPurpose). GovActionId -> GovPurposeId p GovPurposeId GovActionId exampleGovActionId)) (Version -> Natural -> ProtVer ProtVer (forall (v :: Natural). (KnownNat v, MinVersion <= v, v <= MaxVersion) => Version natVersion @10) Natural 0) , pProcAnchor :: Anchor pProcAnchor = Anchor exampleAnchor } exampleProposalProcedureTreasuryWithdrawals :: ProposalProcedure era exampleProposalProcedureTreasuryWithdrawals :: forall era. ProposalProcedure era exampleProposalProcedureTreasuryWithdrawals = ProposalProcedure { pProcDeposit :: Coin pProcDeposit = Integer -> Coin Coin Integer 1000000000 , pProcReturnAddr :: AccountAddress pProcReturnAddr = Network -> AccountId -> AccountAddress AccountAddress Network Testnet (Credential Staking -> AccountId AccountId (KeyHash Staking -> Credential Staking forall (kr :: KeyRole). KeyHash kr -> Credential kr KeyHashObj (Int -> KeyHash Staking forall (discriminator :: KeyRole). Int -> KeyHash discriminator mkKeyHash Int 0))) , pProcGovAction :: GovAction era pProcGovAction = Map AccountAddress Coin -> StrictMaybe ScriptHash -> GovAction era forall era. Map AccountAddress Coin -> StrictMaybe ScriptHash -> GovAction era TreasuryWithdrawals (AccountAddress -> Coin -> Map AccountAddress Coin forall k a. k -> a -> Map k a Map.singleton (Network -> AccountId -> AccountAddress AccountAddress Network Testnet (Credential Staking -> AccountId AccountId (KeyHash Staking -> Credential Staking forall (kr :: KeyRole). KeyHash kr -> Credential kr KeyHashObj (Int -> KeyHash Staking forall (discriminator :: KeyRole). Int -> KeyHash discriminator mkKeyHash Int 0)))) (Integer -> Coin Coin Integer 1000000000)) (ScriptHash -> StrictMaybe ScriptHash forall a. a -> StrictMaybe a SJust (Int -> ScriptHash mkScriptHash Int 2)) , pProcAnchor :: Anchor pProcAnchor = Anchor exampleAnchor } exampleProposalProcedureNoConfidence :: ProposalProcedure era exampleProposalProcedureNoConfidence :: forall era. ProposalProcedure era exampleProposalProcedureNoConfidence = ProposalProcedure { pProcDeposit :: Coin pProcDeposit = Integer -> Coin Coin Integer 1000000000 , pProcReturnAddr :: AccountAddress pProcReturnAddr = Network -> AccountId -> AccountAddress AccountAddress Network Testnet (Credential Staking -> AccountId AccountId (KeyHash Staking -> Credential Staking forall (kr :: KeyRole). KeyHash kr -> Credential kr KeyHashObj (Int -> KeyHash Staking forall (discriminator :: KeyRole). Int -> KeyHash discriminator mkKeyHash Int 0))) , pProcGovAction :: GovAction era pProcGovAction = StrictMaybe (GovPurposeId 'CommitteePurpose) -> GovAction era forall era. StrictMaybe (GovPurposeId 'CommitteePurpose) -> GovAction era NoConfidence (GovPurposeId 'CommitteePurpose -> StrictMaybe (GovPurposeId 'CommitteePurpose) forall a. a -> StrictMaybe a SJust (GovActionId -> GovPurposeId 'CommitteePurpose forall (p :: GovActionPurpose). GovActionId -> GovPurposeId p GovPurposeId GovActionId exampleGovActionId)) , pProcAnchor :: Anchor pProcAnchor = Anchor exampleAnchor } exampleProposalProcedureUpdateCommittee :: ProposalProcedure era exampleProposalProcedureUpdateCommittee :: forall era. ProposalProcedure era exampleProposalProcedureUpdateCommittee = ProposalProcedure { pProcDeposit :: Coin pProcDeposit = Integer -> Coin Coin Integer 500000000 , pProcReturnAddr :: AccountAddress pProcReturnAddr = Network -> AccountId -> AccountAddress AccountAddress Network Testnet (Credential Staking -> AccountId AccountId (KeyHash Staking -> Credential Staking forall (kr :: KeyRole). KeyHash kr -> Credential kr KeyHashObj (Int -> KeyHash Staking forall (discriminator :: KeyRole). Int -> KeyHash discriminator mkKeyHash Int 1))) , pProcGovAction :: GovAction era pProcGovAction = StrictMaybe (GovPurposeId 'CommitteePurpose) -> Set (Credential ColdCommitteeRole) -> Map (Credential ColdCommitteeRole) EpochNo -> UnitInterval -> GovAction era forall era. StrictMaybe (GovPurposeId 'CommitteePurpose) -> Set (Credential ColdCommitteeRole) -> Map (Credential ColdCommitteeRole) EpochNo -> UnitInterval -> GovAction era UpdateCommittee (GovPurposeId 'CommitteePurpose -> StrictMaybe (GovPurposeId 'CommitteePurpose) forall a. a -> StrictMaybe a SJust (GovActionId -> GovPurposeId 'CommitteePurpose forall (p :: GovActionPurpose). GovActionId -> GovPurposeId p GovPurposeId GovActionId exampleGovActionId)) Set (Credential ColdCommitteeRole) forall a. Monoid a => a mempty (Credential ColdCommitteeRole -> EpochNo -> Map (Credential ColdCommitteeRole) EpochNo forall k a. k -> a -> Map k a Map.singleton (KeyHash ColdCommitteeRole -> Credential ColdCommitteeRole forall (kr :: KeyRole). KeyHash kr -> Credential kr KeyHashObj (Int -> KeyHash ColdCommitteeRole forall (discriminator :: KeyRole). Int -> KeyHash discriminator mkKeyHash Int 12)) (Word64 -> EpochNo EpochNo Word64 10)) (Integer 3 Integer -> Integer -> UnitInterval forall r. (IsRatio r, HasCallStack) => Integer -> Integer -> r %! Integer 5) , pProcAnchor :: Anchor pProcAnchor = Anchor exampleAnchor } exampleProposalProcedureNewConstitution :: ProposalProcedure era exampleProposalProcedureNewConstitution :: forall era. ProposalProcedure era exampleProposalProcedureNewConstitution = ProposalProcedure { pProcDeposit :: Coin pProcDeposit = Integer -> Coin Coin Integer 1000000000 , pProcReturnAddr :: AccountAddress pProcReturnAddr = Network -> AccountId -> AccountAddress AccountAddress Network Testnet (Credential Staking -> AccountId AccountId (KeyHash Staking -> Credential Staking forall (kr :: KeyRole). KeyHash kr -> Credential kr KeyHashObj (Int -> KeyHash Staking forall (discriminator :: KeyRole). Int -> KeyHash discriminator mkKeyHash Int 0))) , pProcGovAction :: GovAction era pProcGovAction = StrictMaybe (GovPurposeId 'ConstitutionPurpose) -> Constitution era -> GovAction era forall era. StrictMaybe (GovPurposeId 'ConstitutionPurpose) -> Constitution era -> GovAction era NewConstitution (GovPurposeId 'ConstitutionPurpose -> StrictMaybe (GovPurposeId 'ConstitutionPurpose) forall a. a -> StrictMaybe a SJust (GovActionId -> GovPurposeId 'ConstitutionPurpose forall (p :: GovActionPurpose). GovActionId -> GovPurposeId p GovPurposeId GovActionId exampleGovActionId)) Constitution { constitutionAnchor :: Anchor constitutionAnchor = Anchor exampleAnchor , constitutionGuardrailsScriptHash :: StrictMaybe ScriptHash constitutionGuardrailsScriptHash = ScriptHash -> StrictMaybe ScriptHash forall a. a -> StrictMaybe a SJust (Int -> ScriptHash mkScriptHash Int 3) } , pProcAnchor :: Anchor pProcAnchor = Anchor exampleAnchor } exampleConwayGenesis :: ConwayGenesis exampleConwayGenesis :: ConwayGenesis exampleConwayGenesis = ConwayGenesis expectedConwayGenesis