{-# LANGUAGE DerivingStrategies #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-} {-# LANGUAGE PatternSynonyms #-} {-# LANGUAGE QuantifiedConstraints #-} {-# LANGUAGE RankNTypes #-} {-# LANGUAGE StandaloneDeriving #-} {-# LANGUAGE UndecidableInstances #-} {-# OPTIONS_GHC -Wno-orphans #-} module Test.Cardano.Ledger.Dijkstra.Arbitrary () where import Cardano.Ledger.Allegra.Scripts ( pattern RequireTimeExpire, pattern RequireTimeStart, ) import Cardano.Ledger.BaseTypes (StrictMaybe) import Cardano.Ledger.Dijkstra (DijkstraEra) import Cardano.Ledger.Dijkstra.Core import Cardano.Ledger.Dijkstra.Genesis (DijkstraGenesis (..)) import Cardano.Ledger.Dijkstra.PParams (DijkstraPParams, UpgradeDijkstraPParams) import Cardano.Ledger.Dijkstra.Scripts import Cardano.Ledger.Dijkstra.Transition (TransitionConfig (..)) import Cardano.Ledger.Dijkstra.Tx (Tx (..)) import Cardano.Ledger.Dijkstra.TxBody (TxBody (..)) import Cardano.Ledger.Dijkstra.TxCert import Cardano.Ledger.Shelley.Scripts ( pattern RequireSignature, ) import Data.Functor.Identity (Identity) import Generic.Random (genericArbitraryU) import Test.Cardano.Ledger.Allegra.Arbitrary (maxTimelockDepth) import Test.Cardano.Ledger.Common import Test.Cardano.Ledger.Conway.Arbitrary () import Test.Cardano.Ledger.Shelley.Arbitrary (sizedNativeScriptGens) instance Arbitrary (DijkstraPParams Identity DijkstraEra) where arbitrary :: Gen (DijkstraPParams Identity DijkstraEra) arbitrary = Gen (DijkstraPParams Identity DijkstraEra) forall a. (GArbitrary UnsizedOpts a, GUniformWeight a) => Gen a genericArbitraryU instance Arbitrary (DijkstraPParams StrictMaybe DijkstraEra) where arbitrary :: Gen (DijkstraPParams StrictMaybe DijkstraEra) arbitrary = Gen (DijkstraPParams StrictMaybe DijkstraEra) forall a. (GArbitrary UnsizedOpts a, GUniformWeight a) => Gen a genericArbitraryU instance Arbitrary (TxBody DijkstraEra) where arbitrary :: Gen (TxBody DijkstraEra) arbitrary = Set TxIn -> Set TxIn -> Set TxIn -> StrictSeq (Sized (TxOut DijkstraEra)) -> StrictMaybe (Sized (TxOut DijkstraEra)) -> StrictMaybe Coin -> OSet (TxCert DijkstraEra) -> Withdrawals -> Coin -> ValidityInterval -> OSet (Credential 'Guard) -> MultiAsset -> StrictMaybe ScriptIntegrityHash -> StrictMaybe TxAuxDataHash -> StrictMaybe Network -> VotingProcedures DijkstraEra -> OSet (ProposalProcedure DijkstraEra) -> StrictMaybe Coin -> Coin -> TxBody DijkstraEra Set TxIn -> Set TxIn -> Set TxIn -> StrictSeq (Sized (BabbageTxOut DijkstraEra)) -> StrictMaybe (Sized (BabbageTxOut DijkstraEra)) -> StrictMaybe Coin -> OSet (DijkstraTxCert DijkstraEra) -> Withdrawals -> Coin -> ValidityInterval -> OSet (Credential 'Guard) -> MultiAsset -> StrictMaybe ScriptIntegrityHash -> StrictMaybe TxAuxDataHash -> StrictMaybe Network -> VotingProcedures DijkstraEra -> OSet (ProposalProcedure DijkstraEra) -> StrictMaybe Coin -> Coin -> TxBody DijkstraEra DijkstraTxBody (Set TxIn -> Set TxIn -> Set TxIn -> StrictSeq (Sized (BabbageTxOut DijkstraEra)) -> StrictMaybe (Sized (BabbageTxOut DijkstraEra)) -> StrictMaybe Coin -> OSet (DijkstraTxCert DijkstraEra) -> Withdrawals -> Coin -> ValidityInterval -> OSet (Credential 'Guard) -> MultiAsset -> StrictMaybe ScriptIntegrityHash -> StrictMaybe TxAuxDataHash -> StrictMaybe Network -> VotingProcedures DijkstraEra -> OSet (ProposalProcedure DijkstraEra) -> StrictMaybe Coin -> Coin -> TxBody DijkstraEra) -> Gen (Set TxIn) -> Gen (Set TxIn -> Set TxIn -> StrictSeq (Sized (BabbageTxOut DijkstraEra)) -> StrictMaybe (Sized (BabbageTxOut DijkstraEra)) -> StrictMaybe Coin -> OSet (DijkstraTxCert DijkstraEra) -> Withdrawals -> Coin -> ValidityInterval -> OSet (Credential 'Guard) -> MultiAsset -> StrictMaybe ScriptIntegrityHash -> StrictMaybe TxAuxDataHash -> StrictMaybe Network -> VotingProcedures DijkstraEra -> OSet (ProposalProcedure DijkstraEra) -> StrictMaybe Coin -> Coin -> TxBody DijkstraEra) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> Gen (Set TxIn) forall a. Arbitrary a => Gen a arbitrary Gen (Set TxIn -> Set TxIn -> StrictSeq (Sized (BabbageTxOut DijkstraEra)) -> StrictMaybe (Sized (BabbageTxOut DijkstraEra)) -> StrictMaybe Coin -> OSet (DijkstraTxCert DijkstraEra) -> Withdrawals -> Coin -> ValidityInterval -> OSet (Credential 'Guard) -> MultiAsset -> StrictMaybe ScriptIntegrityHash -> StrictMaybe TxAuxDataHash -> StrictMaybe Network -> VotingProcedures DijkstraEra -> OSet (ProposalProcedure DijkstraEra) -> StrictMaybe Coin -> Coin -> TxBody DijkstraEra) -> Gen (Set TxIn) -> Gen (Set TxIn -> StrictSeq (Sized (BabbageTxOut DijkstraEra)) -> StrictMaybe (Sized (BabbageTxOut DijkstraEra)) -> StrictMaybe Coin -> OSet (DijkstraTxCert DijkstraEra) -> Withdrawals -> Coin -> ValidityInterval -> OSet (Credential 'Guard) -> MultiAsset -> StrictMaybe ScriptIntegrityHash -> StrictMaybe TxAuxDataHash -> StrictMaybe Network -> VotingProcedures DijkstraEra -> OSet (ProposalProcedure DijkstraEra) -> StrictMaybe Coin -> Coin -> TxBody DijkstraEra) forall a b. Gen (a -> b) -> Gen a -> Gen b forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b <*> Gen (Set TxIn) forall a. Arbitrary a => Gen a arbitrary Gen (Set TxIn -> StrictSeq (Sized (BabbageTxOut DijkstraEra)) -> StrictMaybe (Sized (BabbageTxOut DijkstraEra)) -> StrictMaybe Coin -> OSet (DijkstraTxCert DijkstraEra) -> Withdrawals -> Coin -> ValidityInterval -> OSet (Credential 'Guard) -> MultiAsset -> StrictMaybe ScriptIntegrityHash -> StrictMaybe TxAuxDataHash -> StrictMaybe Network -> VotingProcedures DijkstraEra -> OSet (ProposalProcedure DijkstraEra) -> StrictMaybe Coin -> Coin -> TxBody DijkstraEra) -> Gen (Set TxIn) -> Gen (StrictSeq (Sized (BabbageTxOut DijkstraEra)) -> StrictMaybe (Sized (BabbageTxOut DijkstraEra)) -> StrictMaybe Coin -> OSet (DijkstraTxCert DijkstraEra) -> Withdrawals -> Coin -> ValidityInterval -> OSet (Credential 'Guard) -> MultiAsset -> StrictMaybe ScriptIntegrityHash -> StrictMaybe TxAuxDataHash -> StrictMaybe Network -> VotingProcedures DijkstraEra -> OSet (ProposalProcedure DijkstraEra) -> StrictMaybe Coin -> Coin -> TxBody DijkstraEra) forall a b. Gen (a -> b) -> Gen a -> Gen b forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b <*> Gen (Set TxIn) forall a. Arbitrary a => Gen a arbitrary Gen (StrictSeq (Sized (BabbageTxOut DijkstraEra)) -> StrictMaybe (Sized (BabbageTxOut DijkstraEra)) -> StrictMaybe Coin -> OSet (DijkstraTxCert DijkstraEra) -> Withdrawals -> Coin -> ValidityInterval -> OSet (Credential 'Guard) -> MultiAsset -> StrictMaybe ScriptIntegrityHash -> StrictMaybe TxAuxDataHash -> StrictMaybe Network -> VotingProcedures DijkstraEra -> OSet (ProposalProcedure DijkstraEra) -> StrictMaybe Coin -> Coin -> TxBody DijkstraEra) -> Gen (StrictSeq (Sized (BabbageTxOut DijkstraEra))) -> Gen (StrictMaybe (Sized (BabbageTxOut DijkstraEra)) -> StrictMaybe Coin -> OSet (DijkstraTxCert DijkstraEra) -> Withdrawals -> Coin -> ValidityInterval -> OSet (Credential 'Guard) -> MultiAsset -> StrictMaybe ScriptIntegrityHash -> StrictMaybe TxAuxDataHash -> StrictMaybe Network -> VotingProcedures DijkstraEra -> OSet (ProposalProcedure DijkstraEra) -> StrictMaybe Coin -> Coin -> TxBody DijkstraEra) forall a b. Gen (a -> b) -> Gen a -> Gen b forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b <*> Gen (StrictSeq (Sized (BabbageTxOut DijkstraEra))) forall a. Arbitrary a => Gen a arbitrary Gen (StrictMaybe (Sized (BabbageTxOut DijkstraEra)) -> StrictMaybe Coin -> OSet (DijkstraTxCert DijkstraEra) -> Withdrawals -> Coin -> ValidityInterval -> OSet (Credential 'Guard) -> MultiAsset -> StrictMaybe ScriptIntegrityHash -> StrictMaybe TxAuxDataHash -> StrictMaybe Network -> VotingProcedures DijkstraEra -> OSet (ProposalProcedure DijkstraEra) -> StrictMaybe Coin -> Coin -> TxBody DijkstraEra) -> Gen (StrictMaybe (Sized (BabbageTxOut DijkstraEra))) -> Gen (StrictMaybe Coin -> OSet (DijkstraTxCert DijkstraEra) -> Withdrawals -> Coin -> ValidityInterval -> OSet (Credential 'Guard) -> MultiAsset -> StrictMaybe ScriptIntegrityHash -> StrictMaybe TxAuxDataHash -> StrictMaybe Network -> VotingProcedures DijkstraEra -> OSet (ProposalProcedure DijkstraEra) -> StrictMaybe Coin -> Coin -> TxBody DijkstraEra) forall a b. Gen (a -> b) -> Gen a -> Gen b forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b <*> Gen (StrictMaybe (Sized (BabbageTxOut DijkstraEra))) forall a. Arbitrary a => Gen a arbitrary Gen (StrictMaybe Coin -> OSet (DijkstraTxCert DijkstraEra) -> Withdrawals -> Coin -> ValidityInterval -> OSet (Credential 'Guard) -> MultiAsset -> StrictMaybe ScriptIntegrityHash -> StrictMaybe TxAuxDataHash -> StrictMaybe Network -> VotingProcedures DijkstraEra -> OSet (ProposalProcedure DijkstraEra) -> StrictMaybe Coin -> Coin -> TxBody DijkstraEra) -> Gen (StrictMaybe Coin) -> Gen (OSet (DijkstraTxCert DijkstraEra) -> Withdrawals -> Coin -> ValidityInterval -> OSet (Credential 'Guard) -> MultiAsset -> StrictMaybe ScriptIntegrityHash -> StrictMaybe TxAuxDataHash -> StrictMaybe Network -> VotingProcedures DijkstraEra -> OSet (ProposalProcedure DijkstraEra) -> StrictMaybe Coin -> Coin -> TxBody DijkstraEra) forall a b. Gen (a -> b) -> Gen a -> Gen b forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b <*> Gen (StrictMaybe Coin) forall a. Arbitrary a => Gen a arbitrary Gen (OSet (DijkstraTxCert DijkstraEra) -> Withdrawals -> Coin -> ValidityInterval -> OSet (Credential 'Guard) -> MultiAsset -> StrictMaybe ScriptIntegrityHash -> StrictMaybe TxAuxDataHash -> StrictMaybe Network -> VotingProcedures DijkstraEra -> OSet (ProposalProcedure DijkstraEra) -> StrictMaybe Coin -> Coin -> TxBody DijkstraEra) -> Gen (OSet (DijkstraTxCert DijkstraEra)) -> Gen (Withdrawals -> Coin -> ValidityInterval -> OSet (Credential 'Guard) -> MultiAsset -> StrictMaybe ScriptIntegrityHash -> StrictMaybe TxAuxDataHash -> StrictMaybe Network -> VotingProcedures DijkstraEra -> OSet (ProposalProcedure DijkstraEra) -> StrictMaybe Coin -> Coin -> TxBody DijkstraEra) forall a b. Gen (a -> b) -> Gen a -> Gen b forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b <*> Gen (OSet (DijkstraTxCert DijkstraEra)) forall a. Arbitrary a => Gen a arbitrary Gen (Withdrawals -> Coin -> ValidityInterval -> OSet (Credential 'Guard) -> MultiAsset -> StrictMaybe ScriptIntegrityHash -> StrictMaybe TxAuxDataHash -> StrictMaybe Network -> VotingProcedures DijkstraEra -> OSet (ProposalProcedure DijkstraEra) -> StrictMaybe Coin -> Coin -> TxBody DijkstraEra) -> Gen Withdrawals -> Gen (Coin -> ValidityInterval -> OSet (Credential 'Guard) -> MultiAsset -> StrictMaybe ScriptIntegrityHash -> StrictMaybe TxAuxDataHash -> StrictMaybe Network -> VotingProcedures DijkstraEra -> OSet (ProposalProcedure DijkstraEra) -> StrictMaybe Coin -> Coin -> TxBody DijkstraEra) forall a b. Gen (a -> b) -> Gen a -> Gen b forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b <*> Gen Withdrawals forall a. Arbitrary a => Gen a arbitrary Gen (Coin -> ValidityInterval -> OSet (Credential 'Guard) -> MultiAsset -> StrictMaybe ScriptIntegrityHash -> StrictMaybe TxAuxDataHash -> StrictMaybe Network -> VotingProcedures DijkstraEra -> OSet (ProposalProcedure DijkstraEra) -> StrictMaybe Coin -> Coin -> TxBody DijkstraEra) -> Gen Coin -> Gen (ValidityInterval -> OSet (Credential 'Guard) -> MultiAsset -> StrictMaybe ScriptIntegrityHash -> StrictMaybe TxAuxDataHash -> StrictMaybe Network -> VotingProcedures DijkstraEra -> OSet (ProposalProcedure DijkstraEra) -> StrictMaybe Coin -> Coin -> TxBody DijkstraEra) forall a b. Gen (a -> b) -> Gen a -> Gen b forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b <*> Gen Coin forall a. Arbitrary a => Gen a arbitrary Gen (ValidityInterval -> OSet (Credential 'Guard) -> MultiAsset -> StrictMaybe ScriptIntegrityHash -> StrictMaybe TxAuxDataHash -> StrictMaybe Network -> VotingProcedures DijkstraEra -> OSet (ProposalProcedure DijkstraEra) -> StrictMaybe Coin -> Coin -> TxBody DijkstraEra) -> Gen ValidityInterval -> Gen (OSet (Credential 'Guard) -> MultiAsset -> StrictMaybe ScriptIntegrityHash -> StrictMaybe TxAuxDataHash -> StrictMaybe Network -> VotingProcedures DijkstraEra -> OSet (ProposalProcedure DijkstraEra) -> StrictMaybe Coin -> Coin -> TxBody DijkstraEra) forall a b. Gen (a -> b) -> Gen a -> Gen b forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b <*> (Int -> Int) -> Gen ValidityInterval -> Gen ValidityInterval forall a. (Int -> Int) -> Gen a -> Gen a scale (Int -> Int -> Int forall a. Integral a => a -> a -> a `div` Int 15) Gen ValidityInterval forall a. Arbitrary a => Gen a arbitrary Gen (OSet (Credential 'Guard) -> MultiAsset -> StrictMaybe ScriptIntegrityHash -> StrictMaybe TxAuxDataHash -> StrictMaybe Network -> VotingProcedures DijkstraEra -> OSet (ProposalProcedure DijkstraEra) -> StrictMaybe Coin -> Coin -> TxBody DijkstraEra) -> Gen (OSet (Credential 'Guard)) -> Gen (MultiAsset -> StrictMaybe ScriptIntegrityHash -> StrictMaybe TxAuxDataHash -> StrictMaybe Network -> VotingProcedures DijkstraEra -> OSet (ProposalProcedure DijkstraEra) -> StrictMaybe Coin -> Coin -> TxBody DijkstraEra) forall a b. Gen (a -> b) -> Gen a -> Gen b forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b <*> Gen (OSet (Credential 'Guard)) forall a. Arbitrary a => Gen a arbitrary Gen (MultiAsset -> StrictMaybe ScriptIntegrityHash -> StrictMaybe TxAuxDataHash -> StrictMaybe Network -> VotingProcedures DijkstraEra -> OSet (ProposalProcedure DijkstraEra) -> StrictMaybe Coin -> Coin -> TxBody DijkstraEra) -> Gen MultiAsset -> Gen (StrictMaybe ScriptIntegrityHash -> StrictMaybe TxAuxDataHash -> StrictMaybe Network -> VotingProcedures DijkstraEra -> OSet (ProposalProcedure DijkstraEra) -> StrictMaybe Coin -> Coin -> TxBody DijkstraEra) forall a b. Gen (a -> b) -> Gen a -> Gen b forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b <*> (Int -> Int) -> Gen MultiAsset -> Gen MultiAsset forall a. (Int -> Int) -> Gen a -> Gen a scale (Int -> Int -> Int forall a. Integral a => a -> a -> a `div` Int 15) Gen MultiAsset forall a. Arbitrary a => Gen a arbitrary Gen (StrictMaybe ScriptIntegrityHash -> StrictMaybe TxAuxDataHash -> StrictMaybe Network -> VotingProcedures DijkstraEra -> OSet (ProposalProcedure DijkstraEra) -> StrictMaybe Coin -> Coin -> TxBody DijkstraEra) -> Gen (StrictMaybe ScriptIntegrityHash) -> Gen (StrictMaybe TxAuxDataHash -> StrictMaybe Network -> VotingProcedures DijkstraEra -> OSet (ProposalProcedure DijkstraEra) -> StrictMaybe Coin -> Coin -> TxBody DijkstraEra) forall a b. Gen (a -> b) -> Gen a -> Gen b forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b <*> Gen (StrictMaybe ScriptIntegrityHash) forall a. Arbitrary a => Gen a arbitrary Gen (StrictMaybe TxAuxDataHash -> StrictMaybe Network -> VotingProcedures DijkstraEra -> OSet (ProposalProcedure DijkstraEra) -> StrictMaybe Coin -> Coin -> TxBody DijkstraEra) -> Gen (StrictMaybe TxAuxDataHash) -> Gen (StrictMaybe Network -> VotingProcedures DijkstraEra -> OSet (ProposalProcedure DijkstraEra) -> StrictMaybe Coin -> Coin -> TxBody DijkstraEra) forall a b. Gen (a -> b) -> Gen a -> Gen b forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b <*> Gen (StrictMaybe TxAuxDataHash) forall a. Arbitrary a => Gen a arbitrary Gen (StrictMaybe Network -> VotingProcedures DijkstraEra -> OSet (ProposalProcedure DijkstraEra) -> StrictMaybe Coin -> Coin -> TxBody DijkstraEra) -> Gen (StrictMaybe Network) -> Gen (VotingProcedures DijkstraEra -> OSet (ProposalProcedure DijkstraEra) -> StrictMaybe Coin -> Coin -> TxBody DijkstraEra) forall a b. Gen (a -> b) -> Gen a -> Gen b forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b <*> Gen (StrictMaybe Network) forall a. Arbitrary a => Gen a arbitrary Gen (VotingProcedures DijkstraEra -> OSet (ProposalProcedure DijkstraEra) -> StrictMaybe Coin -> Coin -> TxBody DijkstraEra) -> Gen (VotingProcedures DijkstraEra) -> Gen (OSet (ProposalProcedure DijkstraEra) -> StrictMaybe Coin -> Coin -> TxBody DijkstraEra) forall a b. Gen (a -> b) -> Gen a -> Gen b forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b <*> Gen (VotingProcedures DijkstraEra) forall a. Arbitrary a => Gen a arbitrary Gen (OSet (ProposalProcedure DijkstraEra) -> StrictMaybe Coin -> Coin -> TxBody DijkstraEra) -> Gen (OSet (ProposalProcedure DijkstraEra)) -> Gen (StrictMaybe Coin -> Coin -> TxBody DijkstraEra) forall a b. Gen (a -> b) -> Gen a -> Gen b forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b <*> Gen (OSet (ProposalProcedure DijkstraEra)) forall a. Arbitrary a => Gen a arbitrary Gen (StrictMaybe Coin -> Coin -> TxBody DijkstraEra) -> Gen (StrictMaybe Coin) -> Gen (Coin -> TxBody DijkstraEra) forall a b. Gen (a -> b) -> Gen a -> Gen b forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b <*> Gen (StrictMaybe Coin) forall a. Arbitrary a => Gen a arbitrary Gen (Coin -> TxBody DijkstraEra) -> Gen Coin -> Gen (TxBody DijkstraEra) forall a b. Gen (a -> b) -> Gen a -> Gen b forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b <*> Gen Coin forall a. Arbitrary a => Gen a arbitrary instance Arbitrary (UpgradeDijkstraPParams Identity DijkstraEra) where arbitrary :: Gen (UpgradeDijkstraPParams Identity DijkstraEra) arbitrary = Gen (UpgradeDijkstraPParams Identity DijkstraEra) forall a. (GArbitrary UnsizedOpts a, GUniformWeight a) => Gen a genericArbitraryU instance Arbitrary DijkstraGenesis where arbitrary :: Gen DijkstraGenesis arbitrary = Gen DijkstraGenesis forall a. (GArbitrary UnsizedOpts a, GUniformWeight a) => Gen a genericArbitraryU instance Arbitrary (TransitionConfig DijkstraEra) where arbitrary :: Gen (TransitionConfig DijkstraEra) arbitrary = DijkstraGenesis -> TransitionConfig ConwayEra -> TransitionConfig DijkstraEra DijkstraTransitionConfig (DijkstraGenesis -> TransitionConfig ConwayEra -> TransitionConfig DijkstraEra) -> Gen DijkstraGenesis -> Gen (TransitionConfig ConwayEra -> TransitionConfig DijkstraEra) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> Gen DijkstraGenesis forall a. Arbitrary a => Gen a arbitrary Gen (TransitionConfig ConwayEra -> TransitionConfig DijkstraEra) -> Gen (TransitionConfig ConwayEra) -> Gen (TransitionConfig DijkstraEra) forall a b. Gen (a -> b) -> Gen a -> Gen b forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b <*> Gen (TransitionConfig ConwayEra) forall a. Arbitrary a => Gen a arbitrary instance (forall a b. (Arbitrary a, Arbitrary b) => Arbitrary (f a b)) => Arbitrary (DijkstraPlutusPurpose f DijkstraEra) where arbitrary :: Gen (DijkstraPlutusPurpose f DijkstraEra) arbitrary = Gen (DijkstraPlutusPurpose f DijkstraEra) forall a. (GArbitrary UnsizedOpts a, GUniformWeight a) => Gen a genericArbitraryU instance Arbitrary (DijkstraNativeScript DijkstraEra) where arbitrary :: Gen (DijkstraNativeScript DijkstraEra) arbitrary = Int -> Gen (NativeScript DijkstraEra) forall era. DijkstraEraScript era => Int -> Gen (NativeScript era) sizedDijkstraNativeScript Int maxTimelockDepth sizedDijkstraNativeScript :: DijkstraEraScript era => Int -> Gen (NativeScript era) sizedDijkstraNativeScript :: forall era. DijkstraEraScript era => Int -> Gen (NativeScript era) sizedDijkstraNativeScript Int 0 = KeyHash 'Witness -> NativeScript era forall era. ShelleyEraScript era => KeyHash 'Witness -> NativeScript era RequireSignature (KeyHash 'Witness -> NativeScript era) -> Gen (KeyHash 'Witness) -> Gen (NativeScript era) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> Gen (KeyHash 'Witness) forall a. Arbitrary a => Gen a arbitrary sizedDijkstraNativeScript Int n = [Gen (NativeScript era)] -> Gen (NativeScript era) forall a. HasCallStack => [Gen a] -> Gen a oneof ([Gen (NativeScript era)] -> Gen (NativeScript era)) -> [Gen (NativeScript era)] -> Gen (NativeScript era) forall a b. (a -> b) -> a -> b $ Int -> [Gen (NativeScript era)] forall era. ShelleyEraScript era => Int -> [Gen (NativeScript era)] sizedNativeScriptGens Int n [Gen (NativeScript era)] -> [Gen (NativeScript era)] -> [Gen (NativeScript era)] forall a. Semigroup a => a -> a -> a <> [ SlotNo -> NativeScript era forall era. AllegraEraScript era => SlotNo -> NativeScript era RequireTimeStart (SlotNo -> NativeScript era) -> Gen SlotNo -> Gen (NativeScript era) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> Gen SlotNo forall a. Arbitrary a => Gen a arbitrary , SlotNo -> NativeScript era forall era. AllegraEraScript era => SlotNo -> NativeScript era RequireTimeExpire (SlotNo -> NativeScript era) -> Gen SlotNo -> Gen (NativeScript era) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> Gen SlotNo forall a. Arbitrary a => Gen a arbitrary , Credential 'Guard -> NativeScript era forall era. DijkstraEraScript era => Credential 'Guard -> NativeScript era RequireGuard (Credential 'Guard -> NativeScript era) -> Gen (Credential 'Guard) -> Gen (NativeScript era) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> Gen (Credential 'Guard) forall a. Arbitrary a => Gen a arbitrary ] deriving newtype instance Arbitrary (Tx DijkstraEra) instance Era era => Arbitrary (DijkstraTxCert era) where arbitrary :: Gen (DijkstraTxCert era) arbitrary = [Gen (DijkstraTxCert era)] -> Gen (DijkstraTxCert era) forall a. HasCallStack => [Gen a] -> Gen a oneof [ DijkstraDelegCert -> DijkstraTxCert era forall era. DijkstraDelegCert -> DijkstraTxCert era DijkstraTxCertDeleg (DijkstraDelegCert -> DijkstraTxCert era) -> Gen DijkstraDelegCert -> Gen (DijkstraTxCert era) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> Gen DijkstraDelegCert forall a. Arbitrary a => Gen a arbitrary , PoolCert -> DijkstraTxCert era forall era. PoolCert -> DijkstraTxCert era DijkstraTxCertPool (PoolCert -> DijkstraTxCert era) -> Gen PoolCert -> Gen (DijkstraTxCert era) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> Gen PoolCert forall a. Arbitrary a => Gen a arbitrary , ConwayGovCert -> DijkstraTxCert era forall era. ConwayGovCert -> DijkstraTxCert era DijkstraTxCertGov (ConwayGovCert -> DijkstraTxCert era) -> Gen ConwayGovCert -> Gen (DijkstraTxCert era) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> Gen ConwayGovCert forall a. Arbitrary a => Gen a arbitrary ] instance Arbitrary DijkstraDelegCert where arbitrary :: Gen DijkstraDelegCert arbitrary = StakeCredential -> Delegatee -> Coin -> DijkstraDelegCert DijkstraRegDelegCert (StakeCredential -> Delegatee -> Coin -> DijkstraDelegCert) -> Gen StakeCredential -> Gen (Delegatee -> Coin -> DijkstraDelegCert) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> Gen StakeCredential forall a. Arbitrary a => Gen a arbitrary Gen (Delegatee -> Coin -> DijkstraDelegCert) -> Gen Delegatee -> Gen (Coin -> DijkstraDelegCert) forall a b. Gen (a -> b) -> Gen a -> Gen b forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b <*> Gen Delegatee forall a. Arbitrary a => Gen a arbitrary Gen (Coin -> DijkstraDelegCert) -> Gen Coin -> Gen DijkstraDelegCert forall a b. Gen (a -> b) -> Gen a -> Gen b forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b <*> Gen Coin forall a. Arbitrary a => Gen a arbitrary