{-# LANGUAGE DataKinds #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE TypeApplications #-} {-# LANGUAGE TypeFamilies #-} {-# LANGUAGE TypeOperators #-} module Test.Cardano.Ledger.Alonzo.Examples ( ledgerExamples, mkAlonzoBasedLedgerExamples, mkAlonzoBasedExampleTx, exampleAlonzoBasedShelleyTxBody, exampleAlonzoBasedTxBody, exampleDatum, ) where import Cardano.Ledger.Alonzo (AlonzoEra, ApplyTxError (AlonzoApplyTxError)) import Cardano.Ledger.Alonzo.Core import Cardano.Ledger.Alonzo.Genesis (AlonzoGenesis (..)) import Cardano.Ledger.Alonzo.Plutus.Context (EraPlutusTxInfo) import Cardano.Ledger.Alonzo.Scripts ( AlonzoPlutusPurpose (..), ExUnits (..), Prices (..), ) import Cardano.Ledger.Alonzo.TxWits (Redeemers (..), TxDats (..)) import Cardano.Ledger.BaseTypes (StrictMaybe (..)) import Cardano.Ledger.Coin (Coin (..)) import Cardano.Ledger.Mary.Value (MaryValue) import Cardano.Ledger.Plutus.Data (Data (..), hashData) import Cardano.Ledger.Plutus.Language (Language (..), plutusBinary) import Cardano.Ledger.Shelley.API ( Credential (..), Network (..), NewEpochState (..), ProposedPPUpdates (..), ) import Cardano.Ledger.Shelley.Rules ( ShelleyDelegPredFailure (DelegateeNotRegisteredDELEG), ShelleyDelegsPredFailure (DelplFailure), ShelleyDelplPredFailure (DelegFailure), ShelleyLedgerPredFailure (DelegsFailure), ) import Data.Default (def) import qualified Data.List.NonEmpty as NE import qualified Data.Map.Strict as Map import qualified Data.Sequence.Strict as StrictSeq import qualified Data.Set as Set import Lens.Micro import qualified PlutusLedgerApi.Common as P import Test.Cardano.Ledger.Allegra.Examples (mkAllegraBasedExampleTx) import Test.Cardano.Ledger.Alonzo.Arbitrary (alwaysSucceeds) import Test.Cardano.Ledger.Core.KeyPair (mkAddr) import Test.Cardano.Ledger.Core.Utils (mkDummySafeHash, unsafeBoundRational) import Test.Cardano.Ledger.Mary.Examples ( exampleMaryBasedShelleyTxBody, exampleMaryBasedTxBody, exampleMultiAssetValue, ) import Test.Cardano.Ledger.Plutus (alwaysFailsPlutus, zeroTestingCostModelV1) import Test.Cardano.Ledger.Shelley.Examples ( LedgerExamples (..), exampleNewEpochState, exampleNonMyopicRewards, examplePayKey, examplePoolDistr, exampleStakeKey, exampleTxIns, mkKeyHash, mkScriptHash, testShelleyGenesis, ) ledgerExamples :: LedgerExamples AlonzoEra ledgerExamples :: LedgerExamples AlonzoEra ledgerExamples = ApplyTxError AlonzoEra -> NewEpochState AlonzoEra -> Tx TopTx AlonzoEra -> TranslationContext AlonzoEra -> LedgerExamples AlonzoEra forall era. AlonzoEraPParams era => ApplyTxError era -> NewEpochState era -> Tx TopTx era -> TranslationContext era -> LedgerExamples era mkAlonzoBasedLedgerExamples ( NonEmpty (ShelleyLedgerPredFailure AlonzoEra) -> ApplyTxError AlonzoEra AlonzoApplyTxError (NonEmpty (ShelleyLedgerPredFailure AlonzoEra) -> ApplyTxError AlonzoEra) -> NonEmpty (ShelleyLedgerPredFailure AlonzoEra) -> ApplyTxError AlonzoEra forall a b. (a -> b) -> a -> b $ ShelleyLedgerPredFailure AlonzoEra -> NonEmpty (ShelleyLedgerPredFailure AlonzoEra) forall a. a -> NonEmpty a forall (f :: * -> *) a. Applicative f => a -> f a pure (ShelleyLedgerPredFailure AlonzoEra -> NonEmpty (ShelleyLedgerPredFailure AlonzoEra)) -> ShelleyLedgerPredFailure AlonzoEra -> NonEmpty (ShelleyLedgerPredFailure AlonzoEra) forall a b. (a -> b) -> a -> b $ PredicateFailure (EraRule "DELEGS" AlonzoEra) -> ShelleyLedgerPredFailure AlonzoEra forall era. PredicateFailure (EraRule "DELEGS" era) -> ShelleyLedgerPredFailure era DelegsFailure (PredicateFailure (EraRule "DELEGS" AlonzoEra) -> ShelleyLedgerPredFailure AlonzoEra) -> PredicateFailure (EraRule "DELEGS" AlonzoEra) -> ShelleyLedgerPredFailure AlonzoEra forall a b. (a -> b) -> a -> b $ PredicateFailure (EraRule "DELPL" AlonzoEra) -> ShelleyDelegsPredFailure AlonzoEra forall era. PredicateFailure (EraRule "DELPL" era) -> ShelleyDelegsPredFailure era DelplFailure (PredicateFailure (EraRule "DELPL" AlonzoEra) -> ShelleyDelegsPredFailure AlonzoEra) -> PredicateFailure (EraRule "DELPL" AlonzoEra) -> ShelleyDelegsPredFailure AlonzoEra forall a b. (a -> b) -> a -> b $ PredicateFailure (EraRule "DELEG" AlonzoEra) -> ShelleyDelplPredFailure AlonzoEra forall era. PredicateFailure (EraRule "DELEG" era) -> ShelleyDelplPredFailure era DelegFailure (PredicateFailure (EraRule "DELEG" AlonzoEra) -> ShelleyDelplPredFailure AlonzoEra) -> PredicateFailure (EraRule "DELEG" AlonzoEra) -> ShelleyDelplPredFailure AlonzoEra forall a b. (a -> b) -> a -> b $ forall era. KeyHash StakePool -> ShelleyDelegPredFailure era DelegateeNotRegisteredDELEG @AlonzoEra (Int -> KeyHash StakePool forall (discriminator :: KeyRole). Int -> KeyHash discriminator mkKeyHash Int 1) ) NewEpochState AlonzoEra exampleAlonzoNewEpochState Tx TopTx AlonzoEra exampleTxAlonzo TranslationContext AlonzoEra AlonzoGenesis exampleAlonzoGenesis mkAlonzoBasedLedgerExamples :: forall era. AlonzoEraPParams era => ApplyTxError era -> NewEpochState era -> Tx TopTx era -> TranslationContext era -> LedgerExamples era mkAlonzoBasedLedgerExamples :: forall era. AlonzoEraPParams era => ApplyTxError era -> NewEpochState era -> Tx TopTx era -> TranslationContext era -> LedgerExamples era mkAlonzoBasedLedgerExamples ApplyTxError era applyTxError NewEpochState era newEpochState Tx TopTx era tx TranslationContext era translationContext = LedgerExamples { leTx :: Tx TopTx era leTx = Tx TopTx era tx , leApplyTxError :: ApplyTxError era leApplyTxError = ApplyTxError era applyTxError , lePParams :: PParams era lePParams = PParams era forall a. Default a => a def , leProposedPPUpdates :: ProposedPPUpdates era leProposedPPUpdates = Map (KeyHash GenesisRole) (PParamsUpdate era) -> ProposedPPUpdates era forall era. Map (KeyHash GenesisRole) (PParamsUpdate era) -> ProposedPPUpdates era ProposedPPUpdates (Map (KeyHash GenesisRole) (PParamsUpdate era) -> ProposedPPUpdates era) -> Map (KeyHash GenesisRole) (PParamsUpdate era) -> ProposedPPUpdates era forall a b. (a -> b) -> a -> b $ KeyHash GenesisRole -> PParamsUpdate era -> Map (KeyHash GenesisRole) (PParamsUpdate era) forall k a. k -> a -> Map k a Map.singleton (Int -> KeyHash GenesisRole forall (discriminator :: KeyRole). Int -> KeyHash discriminator mkKeyHash Int 0) (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 Word16 -> Identity (StrictMaybe Word16)) -> PParamsUpdate era -> Identity (PParamsUpdate era) forall era. AlonzoEraPParams era => Lens' (PParamsUpdate era) (StrictMaybe Word16) Lens' (PParamsUpdate era) (StrictMaybe Word16) ppuCollateralPercentageL ((StrictMaybe Word16 -> Identity (StrictMaybe Word16)) -> PParamsUpdate era -> Identity (PParamsUpdate era)) -> StrictMaybe Word16 -> PParamsUpdate era -> PParamsUpdate era forall s t a b. ASetter s t a b -> b -> s -> t .~ Word16 -> StrictMaybe Word16 forall a. a -> StrictMaybe a SJust Word16 150) , leNewEpochState :: NewEpochState era leNewEpochState = NewEpochState era newEpochState , lePoolDistr :: PoolDistr lePoolDistr = PoolDistr examplePoolDistr , leRewardsCredentials :: Set (Either Coin (Credential Staking)) leRewardsCredentials = [Either Coin (Credential Staking)] -> Set (Either Coin (Credential Staking)) forall a. Ord a => [a] -> Set a Set.fromList [ Coin -> Either Coin (Credential Staking) forall a b. a -> Either a b Left (Integer -> Coin Coin Integer 100) , Credential Staking -> Either Coin (Credential Staking) forall a b. b -> Either a b Right (ScriptHash -> Credential Staking forall (kr :: KeyRole). ScriptHash -> Credential kr ScriptHashObj (Int -> ScriptHash mkScriptHash Int 1)) , Credential Staking -> Either Coin (Credential Staking) forall a b. b -> Either a b Right (KeyHash Staking -> Credential Staking forall (kr :: KeyRole). KeyHash kr -> Credential kr KeyHashObj (Int -> KeyHash Staking forall (discriminator :: KeyRole). Int -> KeyHash discriminator mkKeyHash Int 2)) ] , leNonMyopicRewards :: Map (Either Coin (Credential Staking)) (Map (KeyHash StakePool) Coin) leNonMyopicRewards = Map (Either Coin (Credential Staking)) (Map (KeyHash StakePool) Coin) exampleNonMyopicRewards , leTranslationContext :: TranslationContext era leTranslationContext = TranslationContext era translationContext , leShelleyGenesis :: ShelleyGenesis leShelleyGenesis = ShelleyGenesis testShelleyGenesis } exampleAlonzoNewEpochState :: NewEpochState AlonzoEra exampleAlonzoNewEpochState :: NewEpochState AlonzoEra exampleAlonzoNewEpochState = Value AlonzoEra -> PParams AlonzoEra -> PParams AlonzoEra -> NewEpochState AlonzoEra forall era. (EraTxOut era, EraGov era, EraStake era, EraCertState era, Default (StashedAVVMAddresses era)) => Value era -> PParams era -> PParams era -> NewEpochState era exampleNewEpochState (Int -> MaryValue exampleMultiAssetValue Int 1) PParams AlonzoEra forall era. EraPParams era => PParams era emptyPParams (PParams AlonzoEra forall era. EraPParams era => PParams era emptyPParams PParams AlonzoEra -> (PParams AlonzoEra -> PParams AlonzoEra) -> PParams AlonzoEra forall a b. a -> (a -> b) -> b & (CoinPerWord -> Identity CoinPerWord) -> PParams AlonzoEra -> Identity (PParams AlonzoEra) forall era. (AlonzoEraPParams era, ExactEra AlonzoEra era) => Lens' (PParams era) CoinPerWord Lens' (PParams AlonzoEra) CoinPerWord ppCoinsPerUTxOWordL ((CoinPerWord -> Identity CoinPerWord) -> PParams AlonzoEra -> Identity (PParams AlonzoEra)) -> CoinPerWord -> PParams AlonzoEra -> PParams AlonzoEra forall s t a b. ASetter s t a b -> b -> s -> t .~ Coin -> CoinPerWord CoinPerWord (Integer -> Coin Coin Integer 1)) exampleTxAlonzo :: Tx TopTx AlonzoEra exampleTxAlonzo :: Tx TopTx AlonzoEra exampleTxAlonzo = TxBody TopTx AlonzoEra -> PlutusPurpose AsIx AlonzoEra -> Tx TopTx AlonzoEra forall era. (AlonzoEraTx era, AlonzoEraTxAuxData era, EraPlutusTxInfo 'PlutusV1 era) => TxBody TopTx era -> PlutusPurpose AsIx era -> Tx TopTx era mkAlonzoBasedExampleTx TxBody TopTx AlonzoEra forall era. (AlonzoEraTxBody era, ShelleyEraTxBody era, Value era ~ MaryValue) => TxBody TopTx era exampleAlonzoBasedShelleyTxBody (AsIx Word32 TxIn -> AlonzoPlutusPurpose AsIx AlonzoEra forall (f :: * -> * -> *) era. f Word32 TxIn -> AlonzoPlutusPurpose f era AlonzoSpending (AsIx Word32 TxIn -> AlonzoPlutusPurpose AsIx AlonzoEra) -> AsIx Word32 TxIn -> AlonzoPlutusPurpose AsIx AlonzoEra forall a b. (a -> b) -> a -> b $ Word32 -> AsIx Word32 TxIn forall ix it. ix -> AsIx ix it AsIx Word32 0) mkAlonzoBasedExampleTx :: forall era. ( AlonzoEraTx era , AlonzoEraTxAuxData era , EraPlutusTxInfo 'PlutusV1 era ) => TxBody TopTx era -> PlutusPurpose AsIx era -> Tx TopTx era mkAlonzoBasedExampleTx :: forall era. (AlonzoEraTx era, AlonzoEraTxAuxData era, EraPlutusTxInfo 'PlutusV1 era) => TxBody TopTx era -> PlutusPurpose AsIx era -> Tx TopTx era mkAlonzoBasedExampleTx TxBody TopTx era txBody PlutusPurpose AsIx era scriptPurpose = TxBody TopTx era -> Tx TopTx era forall era. (EraTx era, AllegraEraTxAuxData era, AllegraEraScript era) => TxBody TopTx era -> Tx TopTx era mkAllegraBasedExampleTx TxBody TopTx era txBody 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 @'PlutusV1 Natural 3) (forall (l :: Language) era. (HasCallStack, EraPlutusTxInfo l era) => Natural -> Script era alwaysSucceeds @'PlutusV1 Natural 3) TxWits era -> (TxWits era -> TxWits era) -> TxWits era forall a b. a -> (a -> b) -> b & (TxDats era -> Identity (TxDats era)) -> TxWits era -> Identity (TxWits era) forall era. AlonzoEraTxWits era => Lens' (TxWits era) (TxDats era) Lens' (TxWits era) (TxDats era) datsTxWitsL ((TxDats era -> Identity (TxDats era)) -> TxWits era -> Identity (TxWits era)) -> TxDats era -> TxWits era -> TxWits era forall s t a b. ASetter s t a b -> b -> s -> t .~ Map DataHash (Data era) -> TxDats era forall era. Era era => Map DataHash (Data era) -> TxDats era TxDats (DataHash -> Data era -> Map DataHash (Data era) forall k a. k -> a -> Map k a Map.singleton (Data era -> DataHash forall era. Data era -> DataHash hashData (forall era. Era era => Data era exampleDatum @era)) Data era forall era. Era era => Data era exampleDatum) TxWits era -> (TxWits era -> TxWits era) -> TxWits era forall a b. a -> (a -> b) -> b & (Redeemers era -> Identity (Redeemers era)) -> TxWits era -> Identity (TxWits era) forall era. AlonzoEraTxWits era => Lens' (TxWits era) (Redeemers era) Lens' (TxWits era) (Redeemers era) rdmrsTxWitsL ((Redeemers era -> Identity (Redeemers era)) -> TxWits era -> Identity (TxWits era)) -> Redeemers era -> TxWits era -> TxWits era forall s t a b. ASetter s t a b -> b -> s -> t .~ Map (PlutusPurpose AsIx era) (Data era, ExUnits) -> Redeemers era forall era. AlonzoEraScript era => Map (PlutusPurpose AsIx era) (Data era, ExUnits) -> Redeemers era Redeemers (PlutusPurpose AsIx era -> (Data era, ExUnits) -> Map (PlutusPurpose AsIx era) (Data era, ExUnits) forall k a. k -> a -> Map k a Map.singleton PlutusPurpose AsIx era scriptPurpose (Data era forall era. Era era => Data era exampleRedeemer, Natural -> Natural -> ExUnits ExUnits Natural 5000 Natural 5000)) ) 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 PlutusV1 (PlutusBinary -> NonEmpty PlutusBinary forall a. a -> NonEmpty a NE.singleton (Plutus 'PlutusV1 -> PlutusBinary forall (l :: Language). Plutus l -> PlutusBinary plutusBinary (forall (l :: Language). Natural -> Plutus l alwaysFailsPlutus @'PlutusV1 Natural 2))) ) Tx TopTx era -> (Tx TopTx era -> Tx TopTx era) -> Tx TopTx era forall a b. a -> (a -> b) -> b & (IsValid -> Identity IsValid) -> Tx TopTx era -> Identity (Tx TopTx era) forall era. AlonzoEraTx era => Lens' (Tx TopTx era) IsValid Lens' (Tx TopTx era) IsValid isValidTxL ((IsValid -> Identity IsValid) -> Tx TopTx era -> Identity (Tx TopTx era)) -> IsValid -> Tx TopTx era -> Tx TopTx era forall s t a b. ASetter s t a b -> b -> s -> t .~ Bool -> IsValid IsValid Bool True exampleAlonzoBasedTxBody :: forall era. ( AlonzoEraTxBody era , Value era ~ MaryValue ) => TxBody TopTx era exampleAlonzoBasedTxBody :: forall era. (AlonzoEraTxBody era, Value era ~ MaryValue) => TxBody TopTx era exampleAlonzoBasedTxBody = TxBody TopTx era -> TxBody TopTx era forall era. (AlonzoEraTxBody era, Value era ~ MaryValue) => TxBody TopTx era -> TxBody TopTx era mkAlonzoBasedExampleTxBody TxBody TopTx era forall era. (MaryEraTxBody era, Value era ~ MaryValue) => TxBody TopTx era exampleMaryBasedTxBody exampleAlonzoBasedShelleyTxBody :: forall era. ( AlonzoEraTxBody era , ShelleyEraTxBody era , Value era ~ MaryValue ) => TxBody TopTx era exampleAlonzoBasedShelleyTxBody :: forall era. (AlonzoEraTxBody era, ShelleyEraTxBody era, Value era ~ MaryValue) => TxBody TopTx era exampleAlonzoBasedShelleyTxBody = TxBody TopTx era -> TxBody TopTx era forall era. (AlonzoEraTxBody era, Value era ~ MaryValue, AtMostEra "Conway" era) => TxBody TopTx era -> TxBody TopTx era mkAlonzoBasedPreConwayExampleTxBody TxBody TopTx era forall era. (MaryEraTxBody era, ShelleyEraTxBody era, Value era ~ MaryValue) => TxBody TopTx era exampleMaryBasedShelleyTxBody mkAlonzoBasedPreConwayExampleTxBody :: forall era. ( AlonzoEraTxBody era , Value era ~ MaryValue , AtMostEra "Conway" era ) => TxBody TopTx era -> TxBody TopTx era mkAlonzoBasedPreConwayExampleTxBody :: forall era. (AlonzoEraTxBody era, Value era ~ MaryValue, AtMostEra "Conway" era) => TxBody TopTx era -> TxBody TopTx era mkAlonzoBasedPreConwayExampleTxBody TxBody TopTx era txBody = TxBody TopTx era -> TxBody TopTx era forall era. (AlonzoEraTxBody era, Value era ~ MaryValue) => TxBody TopTx era -> TxBody TopTx era mkAlonzoBasedExampleTxBody TxBody TopTx era txBody TxBody TopTx era -> (TxBody TopTx era -> TxBody TopTx era) -> TxBody TopTx era forall a b. a -> (a -> b) -> b & (Set (KeyHash Guard) -> Identity (Set (KeyHash Guard))) -> TxBody TopTx era -> Identity (TxBody TopTx era) forall era (l :: TxLevel). (AlonzoEraTxBody era, AtMostEra "Conway" era) => Lens' (TxBody l era) (Set (KeyHash Guard)) forall (l :: TxLevel). AtMostEra "Conway" era => Lens' (TxBody l era) (Set (KeyHash Guard)) Lens' (TxBody TopTx era) (Set (KeyHash Guard)) reqSignerHashesTxBodyL ((Set (KeyHash Guard) -> Identity (Set (KeyHash Guard))) -> TxBody TopTx era -> Identity (TxBody TopTx era)) -> Set (KeyHash Guard) -> TxBody TopTx era -> TxBody TopTx era forall s t a b. ASetter s t a b -> b -> s -> t .~ KeyHash Guard -> Set (KeyHash Guard) forall a. a -> Set a Set.singleton (Int -> KeyHash Guard forall (discriminator :: KeyRole). Int -> KeyHash discriminator mkKeyHash Int 212) mkAlonzoBasedExampleTxBody :: forall era. ( AlonzoEraTxBody era , Value era ~ MaryValue ) => TxBody TopTx era -> TxBody TopTx era mkAlonzoBasedExampleTxBody :: forall era. (AlonzoEraTxBody era, Value era ~ MaryValue) => TxBody TopTx era -> TxBody TopTx era mkAlonzoBasedExampleTxBody 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 & (Set TxIn -> Identity (Set TxIn)) -> TxBody TopTx era -> Identity (TxBody TopTx era) forall era. AlonzoEraTxBody era => Lens' (TxBody TopTx era) (Set TxIn) Lens' (TxBody TopTx era) (Set TxIn) collateralInputsTxBodyL ((Set TxIn -> Identity (Set TxIn)) -> TxBody TopTx era -> Identity (TxBody TopTx era)) -> Set TxIn -> TxBody TopTx era -> TxBody TopTx era forall s t a b. ASetter s t a b -> b -> s -> t .~ Set TxIn exampleTxIns 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 3) TxOut era -> (TxOut era -> TxOut era) -> TxOut era forall a b. a -> (a -> b) -> b & (StrictMaybe DataHash -> Identity (StrictMaybe DataHash)) -> TxOut era -> Identity (TxOut era) forall era. AlonzoEraTxOut era => Lens' (TxOut era) (StrictMaybe DataHash) Lens' (TxOut era) (StrictMaybe DataHash) dataHashTxOutL ((StrictMaybe DataHash -> Identity (StrictMaybe DataHash)) -> TxOut era -> Identity (TxOut era)) -> StrictMaybe DataHash -> TxOut era -> TxOut era forall s t a b. ASetter s t a b -> b -> s -> t .~ DataHash -> StrictMaybe DataHash forall a. a -> StrictMaybe a SJust (Int -> DataHash forall a. Int -> SafeHash a mkDummySafeHash Int 1) ] TxBody TopTx era -> (TxBody TopTx era -> TxBody TopTx era) -> TxBody TopTx era forall a b. a -> (a -> b) -> b & (StrictMaybe ScriptIntegrityHash -> Identity (StrictMaybe ScriptIntegrityHash)) -> TxBody TopTx era -> Identity (TxBody TopTx era) forall era (l :: TxLevel). AlonzoEraTxBody era => Lens' (TxBody l era) (StrictMaybe ScriptIntegrityHash) forall (l :: TxLevel). Lens' (TxBody l era) (StrictMaybe ScriptIntegrityHash) scriptIntegrityHashTxBodyL ((StrictMaybe ScriptIntegrityHash -> Identity (StrictMaybe ScriptIntegrityHash)) -> TxBody TopTx era -> Identity (TxBody TopTx era)) -> StrictMaybe ScriptIntegrityHash -> TxBody TopTx era -> TxBody TopTx era forall s t a b. ASetter s t a b -> b -> s -> t .~ ScriptIntegrityHash -> StrictMaybe ScriptIntegrityHash forall a. a -> StrictMaybe a SJust (Int -> ScriptIntegrityHash forall a. Int -> SafeHash a mkDummySafeHash Int 42) TxBody TopTx era -> (TxBody TopTx era -> TxBody TopTx era) -> TxBody TopTx era forall a b. a -> (a -> b) -> b & (StrictMaybe Network -> Identity (StrictMaybe Network)) -> TxBody TopTx era -> Identity (TxBody TopTx era) forall era (l :: TxLevel). AlonzoEraTxBody era => Lens' (TxBody l era) (StrictMaybe Network) forall (l :: TxLevel). Lens' (TxBody l era) (StrictMaybe Network) networkIdTxBodyL ((StrictMaybe Network -> Identity (StrictMaybe Network)) -> TxBody TopTx era -> Identity (TxBody TopTx era)) -> StrictMaybe Network -> TxBody TopTx era -> TxBody TopTx era forall s t a b. ASetter s t a b -> b -> s -> t .~ Network -> StrictMaybe Network forall a. a -> StrictMaybe a SJust Network Mainnet exampleDatum :: Era era => Data era exampleDatum :: forall era. Era era => Data era exampleDatum = Data -> Data era forall era. Era era => Data -> Data era Data (Integer -> Data P.I Integer 191) exampleRedeemer :: Era era => Data era exampleRedeemer :: forall era. Era era => Data era exampleRedeemer = Data -> Data era forall era. Era era => Data -> Data era Data (Integer -> Data P.I Integer 919) exampleAlonzoGenesis :: AlonzoGenesis exampleAlonzoGenesis :: AlonzoGenesis exampleAlonzoGenesis = AlonzoGenesis { agCoinsPerUTxOWord :: CoinPerWord agCoinsPerUTxOWord = Coin -> CoinPerWord CoinPerWord (Coin -> CoinPerWord) -> Coin -> CoinPerWord forall a b. (a -> b) -> a -> b $ Integer -> Coin Coin Integer 1 , agPlutusV1CostModel :: CostModel agPlutusV1CostModel = CostModel HasCallStack => CostModel zeroTestingCostModelV1 , agPrices :: Prices agPrices = NonNegativeInterval -> NonNegativeInterval -> Prices Prices (Rational -> NonNegativeInterval forall r. (HasCallStack, Typeable r, BoundedRational r) => Rational -> r unsafeBoundRational Rational 90) (Rational -> NonNegativeInterval forall r. (HasCallStack, Typeable r, BoundedRational r) => Rational -> r unsafeBoundRational Rational 91) , agMaxTxExUnits :: ExUnits agMaxTxExUnits = Natural -> Natural -> ExUnits ExUnits Natural 123 Natural 123 , agMaxBlockExUnits :: ExUnits agMaxBlockExUnits = Natural -> Natural -> ExUnits ExUnits Natural 223 Natural 223 , agMaxValSize :: Word32 agMaxValSize = Word32 1234 , agCollateralPercentage :: Word16 agCollateralPercentage = Word16 20 , agMaxCollateralInputs :: Word16 agMaxCollateralInputs = Word16 30 , agExtraConfig :: Maybe AlonzoExtraConfig agExtraConfig = Maybe AlonzoExtraConfig forall a. Maybe a Nothing }