{-# LANGUAGE DataKinds #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE TypeApplications #-} {-# LANGUAGE TypeFamilies #-} {-# LANGUAGE TypeOperators #-} module Test.Cardano.Ledger.Alonzo.Examples ( ledgerExamples, mkLedgerExamples, exampleTx, exampleDatum, exampleAlonzoGenesis, ) 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 (..), AlonzoScript (..), ExUnits (..), Prices (..), ) import Cardano.Ledger.Alonzo.TxAuxData (AlonzoTxAuxData, mkAlonzoTxAuxData) import Cardano.Ledger.Alonzo.TxWits (Redeemers (..), TxDats (..)) import Cardano.Ledger.BaseTypes (StrictMaybe (..)) import Cardano.Ledger.Coin (Coin (..)) import Cardano.Ledger.Keys (asWitness) import Cardano.Ledger.Mary.Value (MaryValue (..)) import Cardano.Ledger.Plutus.Data (Data (..), hashData) import Cardano.Ledger.Plutus.Language (Language (..)) import Cardano.Ledger.Shelley.API ( Credential (..), Network (..), NewEpochState (..), ProposedPPUpdates (..), TxId (..), Update (..), ) import Cardano.Ledger.Shelley.Rules ( ShelleyDelegPredFailure (DelegateeNotRegisteredDELEG), ShelleyDelegsPredFailure (DelplFailure), ShelleyDelplPredFailure (DelegFailure), ShelleyLedgerPredFailure (DelegsFailure), ) import Cardano.Ledger.Shelley.Scripts import Cardano.Ledger.TxIn (mkTxInPartial) import Cardano.Slotting.Slot (EpochNo (..), SlotNo (..)) import Data.Default (def) 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.Alonzo.Arbitrary (alwaysFails, alwaysSucceeds) import Test.Cardano.Ledger.Core.KeyPair (mkAddr, mkWitnessesVKey) import Test.Cardano.Ledger.Core.Utils (mkDummySafeHash, unsafeBoundRational) import Test.Cardano.Ledger.Mary.Examples (exampleMultiAssetValue) import Test.Cardano.Ledger.Plutus (zeroTestingCostModelV1) import Test.Cardano.Ledger.Shelley.Examples ( LedgerExamples (..), exampleAuxDataMap, exampleCerts, exampleNewEpochState, exampleNonMyopicRewards, examplePayKey, examplePoolDistr, exampleStakeKey, keyToCredential, 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 mkLedgerExamples ( 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 mkLedgerExamples :: forall era. AlonzoEraPParams era => ApplyTxError era -> NewEpochState era -> Tx TopTx era -> TranslationContext era -> LedgerExamples era mkLedgerExamples :: forall era. AlonzoEraPParams era => ApplyTxError era -> NewEpochState era -> Tx TopTx era -> TranslationContext era -> LedgerExamples era mkLedgerExamples 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 -> NativeScript AlonzoEra -> Tx TopTx AlonzoEra forall era. (AlonzoEraTx era, EraPlutusTxInfo 'PlutusV1 era, TxAuxData era ~ AlonzoTxAuxData era, Script era ~ AlonzoScript era) => TxBody TopTx era -> PlutusPurpose AsIx era -> NativeScript era -> Tx TopTx era exampleTx TxBody TopTx AlonzoEra exampleTxBodyAlonzo (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) (forall era. ShelleyEraScript era => StrictSeq (NativeScript era) -> NativeScript era RequireAllOf @AlonzoEra StrictSeq (Timelock AlonzoEra) StrictSeq (NativeScript AlonzoEra) forall a. Monoid a => a mempty) exampleTx :: forall era. ( AlonzoEraTx era , EraPlutusTxInfo 'PlutusV1 era , TxAuxData era ~ AlonzoTxAuxData era , Script era ~ AlonzoScript era ) => TxBody TopTx era -> PlutusPurpose AsIx era -> NativeScript era -> Tx TopTx era exampleTx :: forall era. (AlonzoEraTx era, EraPlutusTxInfo 'PlutusV1 era, TxAuxData era ~ AlonzoTxAuxData era, Script era ~ AlonzoScript era) => TxBody TopTx era -> PlutusPurpose AsIx era -> NativeScript era -> Tx TopTx era exampleTx TxBody TopTx era txBody PlutusPurpose AsIx era scriptPurpose NativeScript era nativeScript = forall era (l :: TxLevel). EraTx era => TxBody l era -> Tx l era mkBasicTx @era 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 s t a b. ASetter s t a b -> b -> 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 & (Set (WitVKey Witness) -> Identity (Set (WitVKey Witness))) -> TxWits era -> Identity (TxWits era) forall era. EraTxWits era => Lens' (TxWits era) (Set (WitVKey Witness)) Lens' (TxWits era) (Set (WitVKey Witness)) addrTxWitsL ((Set (WitVKey Witness) -> Identity (Set (WitVKey Witness))) -> TxWits era -> Identity (TxWits era)) -> Set (WitVKey Witness) -> TxWits era -> TxWits era forall s t a b. ASetter s t a b -> b -> s -> t .~ SafeHash EraIndependentTxBody -> [KeyPair Witness] -> Set (WitVKey Witness) forall (kr :: KeyRole). SafeHash EraIndependentTxBody -> [KeyPair kr] -> Set (WitVKey Witness) mkWitnessesVKey (TxBody TopTx era -> SafeHash EraIndependentTxBody forall x i. HashAnnotated x i => x -> SafeHash i hashAnnotated TxBody TopTx era txBody) [KeyPair Payment -> KeyPair Witness forall (a :: KeyRole -> *) (r :: KeyRole). HasKeyRole a => a r -> a Witness asWitness KeyPair Payment examplePayKey] TxWits era -> (TxWits era -> TxWits era) -> TxWits era forall a b. a -> (a -> b) -> b & (Set BootstrapWitness -> Identity (Set BootstrapWitness)) -> TxWits era -> Identity (TxWits era) forall era. EraTxWits era => Lens' (TxWits era) (Set BootstrapWitness) Lens' (TxWits era) (Set BootstrapWitness) bootAddrTxWitsL ((Set BootstrapWitness -> Identity (Set BootstrapWitness)) -> TxWits era -> Identity (TxWits era)) -> Set BootstrapWitness -> TxWits era -> TxWits era forall s t a b. ASetter s t a b -> b -> s -> t .~ Set BootstrapWitness forall a. Monoid a => a mempty 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 & (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 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) (StrictMaybe (AlonzoTxAuxData era) -> Identity (StrictMaybe (AlonzoTxAuxData 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 (AlonzoTxAuxData era) -> Identity (StrictMaybe (AlonzoTxAuxData era))) -> Tx TopTx era -> Identity (Tx TopTx era)) -> StrictMaybe (AlonzoTxAuxData era) -> Tx TopTx era -> Tx TopTx era forall s t a b. ASetter s t a b -> b -> s -> t .~ AlonzoTxAuxData era -> StrictMaybe (AlonzoTxAuxData era) forall a. a -> StrictMaybe a SJust ( Map Word64 Metadatum -> [AlonzoScript era] -> AlonzoTxAuxData era forall (f :: * -> *) era. (Foldable f, AlonzoEraScript era) => Map Word64 Metadatum -> f (AlonzoScript era) -> AlonzoTxAuxData era mkAlonzoTxAuxData Map Word64 Metadatum exampleAuxDataMap [forall (l :: Language) era. (HasCallStack, EraPlutusTxInfo l era) => Natural -> Script era alwaysFails @'PlutusV1 Natural 2, NativeScript era -> AlonzoScript era forall era. NativeScript era -> AlonzoScript era NativeScript NativeScript era nativeScript] ) exampleTxBodyAlonzo :: TxBody TopTx AlonzoEra exampleTxBodyAlonzo :: TxBody TopTx AlonzoEra exampleTxBodyAlonzo = TxBody TopTx AlonzoEra forall era (l :: TxLevel). (EraTxBody era, Typeable l) => TxBody l era forall (l :: TxLevel). Typeable l => TxBody l AlonzoEra mkBasicTxBody TxBody TopTx AlonzoEra -> (TxBody TopTx AlonzoEra -> TxBody TopTx AlonzoEra) -> TxBody TopTx AlonzoEra forall a b. a -> (a -> b) -> b & (Set TxIn -> Identity (Set TxIn)) -> TxBody TopTx AlonzoEra -> Identity (TxBody TopTx AlonzoEra) forall era (l :: TxLevel). EraTxBody era => Lens' (TxBody l era) (Set TxIn) forall (l :: TxLevel). Lens' (TxBody l AlonzoEra) (Set TxIn) inputsTxBodyL ((Set TxIn -> Identity (Set TxIn)) -> TxBody TopTx AlonzoEra -> Identity (TxBody TopTx AlonzoEra)) -> Set TxIn -> TxBody TopTx AlonzoEra -> TxBody TopTx AlonzoEra forall s t a b. ASetter s t a b -> b -> s -> t .~ [TxIn] -> Set TxIn forall a. Ord a => [a] -> Set a Set.fromList [HasCallStack => TxId -> Integer -> TxIn TxId -> Integer -> TxIn mkTxInPartial (SafeHash EraIndependentTxBody -> TxId TxId (Int -> SafeHash EraIndependentTxBody forall a. Int -> SafeHash a mkDummySafeHash Int 1)) Integer 0] TxBody TopTx AlonzoEra -> (TxBody TopTx AlonzoEra -> TxBody TopTx AlonzoEra) -> TxBody TopTx AlonzoEra forall a b. a -> (a -> b) -> b & (Set TxIn -> Identity (Set TxIn)) -> TxBody TopTx AlonzoEra -> Identity (TxBody TopTx AlonzoEra) forall era. AlonzoEraTxBody era => Lens' (TxBody TopTx era) (Set TxIn) Lens' (TxBody TopTx AlonzoEra) (Set TxIn) collateralInputsTxBodyL ((Set TxIn -> Identity (Set TxIn)) -> TxBody TopTx AlonzoEra -> Identity (TxBody TopTx AlonzoEra)) -> Set TxIn -> TxBody TopTx AlonzoEra -> TxBody TopTx AlonzoEra forall s t a b. ASetter s t a b -> b -> s -> t .~ [TxIn] -> Set TxIn forall a. Ord a => [a] -> Set a Set.fromList [HasCallStack => TxId -> Integer -> TxIn TxId -> Integer -> TxIn mkTxInPartial (SafeHash EraIndependentTxBody -> TxId TxId (Int -> SafeHash EraIndependentTxBody forall a. Int -> SafeHash a mkDummySafeHash Int 2)) Integer 1] TxBody TopTx AlonzoEra -> (TxBody TopTx AlonzoEra -> TxBody TopTx AlonzoEra) -> TxBody TopTx AlonzoEra forall a b. a -> (a -> b) -> b & (StrictSeq (TxOut AlonzoEra) -> Identity (StrictSeq (TxOut AlonzoEra))) -> TxBody TopTx AlonzoEra -> Identity (TxBody TopTx AlonzoEra) (StrictSeq (AlonzoTxOut AlonzoEra) -> Identity (StrictSeq (AlonzoTxOut AlonzoEra))) -> TxBody TopTx AlonzoEra -> Identity (TxBody TopTx AlonzoEra) forall era (l :: TxLevel). EraTxBody era => Lens' (TxBody l era) (StrictSeq (TxOut era)) forall (l :: TxLevel). Lens' (TxBody l AlonzoEra) (StrictSeq (TxOut AlonzoEra)) outputsTxBodyL ((StrictSeq (AlonzoTxOut AlonzoEra) -> Identity (StrictSeq (AlonzoTxOut AlonzoEra))) -> TxBody TopTx AlonzoEra -> Identity (TxBody TopTx AlonzoEra)) -> StrictSeq (AlonzoTxOut AlonzoEra) -> TxBody TopTx AlonzoEra -> TxBody TopTx AlonzoEra forall s t a b. ASetter s t a b -> b -> s -> t .~ [AlonzoTxOut AlonzoEra] -> StrictSeq (AlonzoTxOut AlonzoEra) forall a. [a] -> StrictSeq a StrictSeq.fromList [ Addr -> Value AlonzoEra -> TxOut AlonzoEra 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 AlonzoEra -> (TxOut AlonzoEra -> AlonzoTxOut AlonzoEra) -> AlonzoTxOut AlonzoEra forall a b. a -> (a -> b) -> b & (StrictMaybe DataHash -> Identity (StrictMaybe DataHash)) -> TxOut AlonzoEra -> Identity (TxOut AlonzoEra) (StrictMaybe DataHash -> Identity (StrictMaybe DataHash)) -> TxOut AlonzoEra -> Identity (AlonzoTxOut AlonzoEra) forall era. AlonzoEraTxOut era => Lens' (TxOut era) (StrictMaybe DataHash) Lens' (TxOut AlonzoEra) (StrictMaybe DataHash) dataHashTxOutL ((StrictMaybe DataHash -> Identity (StrictMaybe DataHash)) -> TxOut AlonzoEra -> Identity (AlonzoTxOut AlonzoEra)) -> StrictMaybe DataHash -> TxOut AlonzoEra -> AlonzoTxOut AlonzoEra 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 AlonzoEra -> (TxBody TopTx AlonzoEra -> TxBody TopTx AlonzoEra) -> TxBody TopTx AlonzoEra forall a b. a -> (a -> b) -> b & (StrictSeq (TxCert AlonzoEra) -> Identity (StrictSeq (TxCert AlonzoEra))) -> TxBody TopTx AlonzoEra -> Identity (TxBody TopTx AlonzoEra) (StrictSeq (ShelleyTxCert AlonzoEra) -> Identity (StrictSeq (ShelleyTxCert AlonzoEra))) -> TxBody TopTx AlonzoEra -> Identity (TxBody TopTx AlonzoEra) forall era (l :: TxLevel). EraTxBody era => Lens' (TxBody l era) (StrictSeq (TxCert era)) forall (l :: TxLevel). Lens' (TxBody l AlonzoEra) (StrictSeq (TxCert AlonzoEra)) certsTxBodyL ((StrictSeq (ShelleyTxCert AlonzoEra) -> Identity (StrictSeq (ShelleyTxCert AlonzoEra))) -> TxBody TopTx AlonzoEra -> Identity (TxBody TopTx AlonzoEra)) -> StrictSeq (ShelleyTxCert AlonzoEra) -> TxBody TopTx AlonzoEra -> TxBody TopTx AlonzoEra forall s t a b. ASetter s t a b -> b -> s -> t .~ StrictSeq (TxCert AlonzoEra) StrictSeq (ShelleyTxCert AlonzoEra) forall era. (ShelleyEraTxCert era, AtMostEra "Babbage" era) => StrictSeq (TxCert era) exampleCerts TxBody TopTx AlonzoEra -> (TxBody TopTx AlonzoEra -> TxBody TopTx AlonzoEra) -> TxBody TopTx AlonzoEra forall a b. a -> (a -> b) -> b & (Withdrawals -> Identity Withdrawals) -> TxBody TopTx AlonzoEra -> Identity (TxBody TopTx AlonzoEra) forall era (l :: TxLevel). EraTxBody era => Lens' (TxBody l era) Withdrawals forall (l :: TxLevel). Lens' (TxBody l AlonzoEra) Withdrawals withdrawalsTxBodyL ((Withdrawals -> Identity Withdrawals) -> TxBody TopTx AlonzoEra -> Identity (TxBody TopTx AlonzoEra)) -> Withdrawals -> TxBody TopTx AlonzoEra -> TxBody TopTx AlonzoEra forall s t a b. ASetter s t a b -> b -> s -> t .~ Map AccountAddress Coin -> Withdrawals Withdrawals ( 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 (KeyPair Staking -> Credential Staking forall (r :: KeyRole). KeyPair r -> Credential r keyToCredential KeyPair Staking exampleStakeKey))) (Integer -> Coin Coin Integer 100) ) TxBody TopTx AlonzoEra -> (TxBody TopTx AlonzoEra -> TxBody TopTx AlonzoEra) -> TxBody TopTx AlonzoEra forall a b. a -> (a -> b) -> b & (Coin -> Identity Coin) -> TxBody TopTx AlonzoEra -> Identity (TxBody TopTx AlonzoEra) forall era. EraTxBody era => Lens' (TxBody TopTx era) Coin Lens' (TxBody TopTx AlonzoEra) Coin feeTxBodyL ((Coin -> Identity Coin) -> TxBody TopTx AlonzoEra -> Identity (TxBody TopTx AlonzoEra)) -> Coin -> TxBody TopTx AlonzoEra -> TxBody TopTx AlonzoEra forall s t a b. ASetter s t a b -> b -> s -> t .~ Integer -> Coin Coin Integer 999 TxBody TopTx AlonzoEra -> (TxBody TopTx AlonzoEra -> TxBody TopTx AlonzoEra) -> TxBody TopTx AlonzoEra forall a b. a -> (a -> b) -> b & (ValidityInterval -> Identity ValidityInterval) -> TxBody TopTx AlonzoEra -> Identity (TxBody TopTx AlonzoEra) forall era (l :: TxLevel). AllegraEraTxBody era => Lens' (TxBody l era) ValidityInterval forall (l :: TxLevel). Lens' (TxBody l AlonzoEra) ValidityInterval vldtTxBodyL ((ValidityInterval -> Identity ValidityInterval) -> TxBody TopTx AlonzoEra -> Identity (TxBody TopTx AlonzoEra)) -> ValidityInterval -> TxBody TopTx AlonzoEra -> TxBody TopTx AlonzoEra forall s t a b. ASetter s t a b -> b -> s -> t .~ StrictMaybe SlotNo -> StrictMaybe SlotNo -> ValidityInterval ValidityInterval (SlotNo -> StrictMaybe SlotNo forall a. a -> StrictMaybe a SJust (Word64 -> SlotNo SlotNo Word64 2)) (SlotNo -> StrictMaybe SlotNo forall a. a -> StrictMaybe a SJust (Word64 -> SlotNo SlotNo Word64 4)) TxBody TopTx AlonzoEra -> (TxBody TopTx AlonzoEra -> TxBody TopTx AlonzoEra) -> TxBody TopTx AlonzoEra forall a b. a -> (a -> b) -> b & (StrictMaybe (Update AlonzoEra) -> Identity (StrictMaybe (Update AlonzoEra))) -> TxBody TopTx AlonzoEra -> Identity (TxBody TopTx AlonzoEra) forall era. ShelleyEraTxBody era => Lens' (TxBody TopTx era) (StrictMaybe (Update era)) Lens' (TxBody TopTx AlonzoEra) (StrictMaybe (Update AlonzoEra)) updateTxBodyL ((StrictMaybe (Update AlonzoEra) -> Identity (StrictMaybe (Update AlonzoEra))) -> TxBody TopTx AlonzoEra -> Identity (TxBody TopTx AlonzoEra)) -> StrictMaybe (Update AlonzoEra) -> TxBody TopTx AlonzoEra -> TxBody TopTx AlonzoEra forall s t a b. ASetter s t a b -> b -> s -> t .~ Update AlonzoEra -> StrictMaybe (Update AlonzoEra) forall a. a -> StrictMaybe a SJust ( ProposedPPUpdates AlonzoEra -> EpochNo -> Update AlonzoEra forall era. ProposedPPUpdates era -> EpochNo -> Update era Update ( Map (KeyHash GenesisRole) (PParamsUpdate AlonzoEra) -> ProposedPPUpdates AlonzoEra forall era. Map (KeyHash GenesisRole) (PParamsUpdate era) -> ProposedPPUpdates era ProposedPPUpdates (Map (KeyHash GenesisRole) (PParamsUpdate AlonzoEra) -> ProposedPPUpdates AlonzoEra) -> Map (KeyHash GenesisRole) (PParamsUpdate AlonzoEra) -> ProposedPPUpdates AlonzoEra forall a b. (a -> b) -> a -> b $ KeyHash GenesisRole -> PParamsUpdate AlonzoEra -> Map (KeyHash GenesisRole) (PParamsUpdate AlonzoEra) forall k a. k -> a -> Map k a Map.singleton (Int -> KeyHash GenesisRole forall (discriminator :: KeyRole). Int -> KeyHash discriminator mkKeyHash Int 1) (PParamsUpdate AlonzoEra forall era. EraPParams era => PParamsUpdate era emptyPParamsUpdate PParamsUpdate AlonzoEra -> (PParamsUpdate AlonzoEra -> PParamsUpdate AlonzoEra) -> PParamsUpdate AlonzoEra forall a b. a -> (a -> b) -> b & (StrictMaybe Word16 -> Identity (StrictMaybe Word16)) -> PParamsUpdate AlonzoEra -> Identity (PParamsUpdate AlonzoEra) forall era. EraPParams era => Lens' (PParamsUpdate era) (StrictMaybe Word16) Lens' (PParamsUpdate AlonzoEra) (StrictMaybe Word16) ppuMaxBHSizeL ((StrictMaybe Word16 -> Identity (StrictMaybe Word16)) -> PParamsUpdate AlonzoEra -> Identity (PParamsUpdate AlonzoEra)) -> StrictMaybe Word16 -> PParamsUpdate AlonzoEra -> PParamsUpdate AlonzoEra forall s t a b. ASetter s t a b -> b -> s -> t .~ Word16 -> StrictMaybe Word16 forall a. a -> StrictMaybe a SJust Word16 4000) ) (Word64 -> EpochNo EpochNo Word64 0) ) TxBody TopTx AlonzoEra -> (TxBody TopTx AlonzoEra -> TxBody TopTx AlonzoEra) -> TxBody TopTx AlonzoEra forall a b. a -> (a -> b) -> b & (Set (KeyHash Guard) -> Identity (Set (KeyHash Guard))) -> TxBody TopTx AlonzoEra -> Identity (TxBody TopTx AlonzoEra) forall era (l :: TxLevel). (AlonzoEraTxBody era, AtMostEra "Conway" era) => Lens' (TxBody l era) (Set (KeyHash Guard)) forall (l :: TxLevel). AtMostEra "Conway" AlonzoEra => Lens' (TxBody l AlonzoEra) (Set (KeyHash Guard)) Lens' (TxBody TopTx AlonzoEra) (Set (KeyHash Guard)) reqSignerHashesTxBodyL ((Set (KeyHash Guard) -> Identity (Set (KeyHash Guard))) -> TxBody TopTx AlonzoEra -> Identity (TxBody TopTx AlonzoEra)) -> Set (KeyHash Guard) -> TxBody TopTx AlonzoEra -> TxBody TopTx AlonzoEra 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) TxBody TopTx AlonzoEra -> (TxBody TopTx AlonzoEra -> TxBody TopTx AlonzoEra) -> TxBody TopTx AlonzoEra forall a b. a -> (a -> b) -> b & (MultiAsset -> Identity MultiAsset) -> TxBody TopTx AlonzoEra -> Identity (TxBody TopTx AlonzoEra) forall era (l :: TxLevel). MaryEraTxBody era => Lens' (TxBody l era) MultiAsset forall (l :: TxLevel). Lens' (TxBody l AlonzoEra) MultiAsset mintTxBodyL ((MultiAsset -> Identity MultiAsset) -> TxBody TopTx AlonzoEra -> Identity (TxBody TopTx AlonzoEra)) -> MultiAsset -> TxBody TopTx AlonzoEra -> TxBody TopTx AlonzoEra forall s t a b. ASetter s t a b -> b -> s -> t .~ MultiAsset exampleMultiAsset TxBody TopTx AlonzoEra -> (TxBody TopTx AlonzoEra -> TxBody TopTx AlonzoEra) -> TxBody TopTx AlonzoEra forall a b. a -> (a -> b) -> b & (StrictMaybe ScriptIntegrityHash -> Identity (StrictMaybe ScriptIntegrityHash)) -> TxBody TopTx AlonzoEra -> Identity (TxBody TopTx AlonzoEra) forall era (l :: TxLevel). AlonzoEraTxBody era => Lens' (TxBody l era) (StrictMaybe ScriptIntegrityHash) forall (l :: TxLevel). Lens' (TxBody l AlonzoEra) (StrictMaybe ScriptIntegrityHash) scriptIntegrityHashTxBodyL ((StrictMaybe ScriptIntegrityHash -> Identity (StrictMaybe ScriptIntegrityHash)) -> TxBody TopTx AlonzoEra -> Identity (TxBody TopTx AlonzoEra)) -> StrictMaybe ScriptIntegrityHash -> TxBody TopTx AlonzoEra -> TxBody TopTx AlonzoEra 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 AlonzoEra -> (TxBody TopTx AlonzoEra -> TxBody TopTx AlonzoEra) -> TxBody TopTx AlonzoEra forall a b. a -> (a -> b) -> b & (StrictMaybe TxAuxDataHash -> Identity (StrictMaybe TxAuxDataHash)) -> TxBody TopTx AlonzoEra -> Identity (TxBody TopTx AlonzoEra) forall era (l :: TxLevel). EraTxBody era => Lens' (TxBody l era) (StrictMaybe TxAuxDataHash) forall (l :: TxLevel). Lens' (TxBody l AlonzoEra) (StrictMaybe TxAuxDataHash) auxDataHashTxBodyL ((StrictMaybe TxAuxDataHash -> Identity (StrictMaybe TxAuxDataHash)) -> TxBody TopTx AlonzoEra -> Identity (TxBody TopTx AlonzoEra)) -> StrictMaybe TxAuxDataHash -> TxBody TopTx AlonzoEra -> TxBody TopTx AlonzoEra forall s t a b. ASetter s t a b -> b -> s -> t .~ TxAuxDataHash -> StrictMaybe TxAuxDataHash forall a. a -> StrictMaybe a SJust (SafeHash EraIndependentTxAuxData -> TxAuxDataHash TxAuxDataHash (SafeHash EraIndependentTxAuxData -> TxAuxDataHash) -> SafeHash EraIndependentTxAuxData -> TxAuxDataHash forall a b. (a -> b) -> a -> b $ Int -> SafeHash EraIndependentTxAuxData forall a. Int -> SafeHash a mkDummySafeHash Int 42) TxBody TopTx AlonzoEra -> (TxBody TopTx AlonzoEra -> TxBody TopTx AlonzoEra) -> TxBody TopTx AlonzoEra forall a b. a -> (a -> b) -> b & (StrictMaybe Network -> Identity (StrictMaybe Network)) -> TxBody TopTx AlonzoEra -> Identity (TxBody TopTx AlonzoEra) forall era (l :: TxLevel). AlonzoEraTxBody era => Lens' (TxBody l era) (StrictMaybe Network) forall (l :: TxLevel). Lens' (TxBody l AlonzoEra) (StrictMaybe Network) networkIdTxBodyL ((StrictMaybe Network -> Identity (StrictMaybe Network)) -> TxBody TopTx AlonzoEra -> Identity (TxBody TopTx AlonzoEra)) -> StrictMaybe Network -> TxBody TopTx AlonzoEra -> TxBody TopTx AlonzoEra forall s t a b. ASetter s t a b -> b -> s -> t .~ Network -> StrictMaybe Network forall a. a -> StrictMaybe a SJust Network Mainnet where MaryValue Coin _ MultiAsset exampleMultiAsset = Int -> MaryValue exampleMultiAssetValue Int 3 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 }