{-# LANGUAGE DerivingStrategies #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-} {-# LANGUAGE StandaloneDeriving #-} {-# OPTIONS_GHC -Wno-orphans #-} module Test.Cardano.Ledger.Dijkstra.Arbitrary () where import Cardano.Ledger.BaseTypes (StrictMaybe) import Cardano.Ledger.Dijkstra (DijkstraEra) import Cardano.Ledger.Dijkstra.Core (EraTx (..), EraTxBody (..)) import Cardano.Ledger.Dijkstra.Genesis (DijkstraGenesis (..)) import Cardano.Ledger.Dijkstra.PParams (DijkstraPParams, UpgradeDijkstraPParams) import Cardano.Ledger.Dijkstra.Transition (TransitionConfig (..)) import Cardano.Ledger.Dijkstra.Tx (Tx (..)) import Cardano.Ledger.Dijkstra.TxBody (TxBody (..)) import Data.Functor.Identity (Identity) import Generic.Random (genericArbitraryU) import Test.Cardano.Ledger.Common (Arbitrary (..), scale) import Test.Cardano.Ledger.Conway.Arbitrary () 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 -> Set (KeyHash 'Witness) -> 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 (ConwayTxCert DijkstraEra) -> Withdrawals -> Coin -> ValidityInterval -> Set (KeyHash 'Witness) -> 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 (ConwayTxCert DijkstraEra) -> Withdrawals -> Coin -> ValidityInterval -> Set (KeyHash 'Witness) -> 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 (ConwayTxCert DijkstraEra) -> Withdrawals -> Coin -> ValidityInterval -> Set (KeyHash 'Witness) -> 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 (ConwayTxCert DijkstraEra) -> Withdrawals -> Coin -> ValidityInterval -> Set (KeyHash 'Witness) -> 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 (ConwayTxCert DijkstraEra) -> Withdrawals -> Coin -> ValidityInterval -> Set (KeyHash 'Witness) -> 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 (ConwayTxCert DijkstraEra) -> Withdrawals -> Coin -> ValidityInterval -> Set (KeyHash 'Witness) -> 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 (ConwayTxCert DijkstraEra) -> Withdrawals -> Coin -> ValidityInterval -> Set (KeyHash 'Witness) -> 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 (ConwayTxCert DijkstraEra) -> Withdrawals -> Coin -> ValidityInterval -> Set (KeyHash 'Witness) -> 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 (ConwayTxCert DijkstraEra) -> Withdrawals -> Coin -> ValidityInterval -> Set (KeyHash 'Witness) -> 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 (ConwayTxCert DijkstraEra) -> Withdrawals -> Coin -> ValidityInterval -> Set (KeyHash 'Witness) -> 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 (ConwayTxCert DijkstraEra) -> Withdrawals -> Coin -> ValidityInterval -> Set (KeyHash 'Witness) -> 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 (ConwayTxCert DijkstraEra) -> Withdrawals -> Coin -> ValidityInterval -> Set (KeyHash 'Witness) -> MultiAsset -> StrictMaybe ScriptIntegrityHash -> StrictMaybe TxAuxDataHash -> StrictMaybe Network -> VotingProcedures DijkstraEra -> OSet (ProposalProcedure DijkstraEra) -> StrictMaybe Coin -> Coin -> TxBody DijkstraEra) -> Gen (StrictMaybe Coin) -> Gen (OSet (ConwayTxCert DijkstraEra) -> Withdrawals -> Coin -> ValidityInterval -> Set (KeyHash 'Witness) -> 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 (ConwayTxCert DijkstraEra) -> Withdrawals -> Coin -> ValidityInterval -> Set (KeyHash 'Witness) -> MultiAsset -> StrictMaybe ScriptIntegrityHash -> StrictMaybe TxAuxDataHash -> StrictMaybe Network -> VotingProcedures DijkstraEra -> OSet (ProposalProcedure DijkstraEra) -> StrictMaybe Coin -> Coin -> TxBody DijkstraEra) -> Gen (OSet (ConwayTxCert DijkstraEra)) -> Gen (Withdrawals -> Coin -> ValidityInterval -> Set (KeyHash 'Witness) -> 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 (ConwayTxCert DijkstraEra)) forall a. Arbitrary a => Gen a arbitrary Gen (Withdrawals -> Coin -> ValidityInterval -> Set (KeyHash 'Witness) -> MultiAsset -> StrictMaybe ScriptIntegrityHash -> StrictMaybe TxAuxDataHash -> StrictMaybe Network -> VotingProcedures DijkstraEra -> OSet (ProposalProcedure DijkstraEra) -> StrictMaybe Coin -> Coin -> TxBody DijkstraEra) -> Gen Withdrawals -> Gen (Coin -> ValidityInterval -> Set (KeyHash 'Witness) -> 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 -> Set (KeyHash 'Witness) -> MultiAsset -> StrictMaybe ScriptIntegrityHash -> StrictMaybe TxAuxDataHash -> StrictMaybe Network -> VotingProcedures DijkstraEra -> OSet (ProposalProcedure DijkstraEra) -> StrictMaybe Coin -> Coin -> TxBody DijkstraEra) -> Gen Coin -> Gen (ValidityInterval -> Set (KeyHash 'Witness) -> 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 -> Set (KeyHash 'Witness) -> MultiAsset -> StrictMaybe ScriptIntegrityHash -> StrictMaybe TxAuxDataHash -> StrictMaybe Network -> VotingProcedures DijkstraEra -> OSet (ProposalProcedure DijkstraEra) -> StrictMaybe Coin -> Coin -> TxBody DijkstraEra) -> Gen ValidityInterval -> Gen (Set (KeyHash 'Witness) -> 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 (Set (KeyHash 'Witness) -> MultiAsset -> StrictMaybe ScriptIntegrityHash -> StrictMaybe TxAuxDataHash -> StrictMaybe Network -> VotingProcedures DijkstraEra -> OSet (ProposalProcedure DijkstraEra) -> StrictMaybe Coin -> Coin -> TxBody DijkstraEra) -> Gen (Set (KeyHash 'Witness)) -> 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 (Set (KeyHash 'Witness)) 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 deriving newtype instance Arbitrary (Tx DijkstraEra)