module Test.Cardano.Chain.MempoolPayload.Gen ( genMempoolPayload, ) where import Cardano.Chain.MempoolPayload (AMempoolPayload (..), MempoolPayload) import Cardano.Crypto (ProtocolMagicId) import Cardano.Prelude import Hedgehog import qualified Hedgehog.Gen as Gen import Test.Cardano.Chain.Delegation.Gen as Delegation (genCertificate) import Test.Cardano.Chain.UTxO.Gen (genTxAux) import Test.Cardano.Chain.Update.Gen as Update (genProposal, genVote) genMempoolPayload :: ProtocolMagicId -> Gen MempoolPayload genMempoolPayload :: ProtocolMagicId -> Gen MempoolPayload genMempoolPayload ProtocolMagicId pmi = [Gen MempoolPayload] -> Gen MempoolPayload forall (m :: * -> *) a. MonadGen m => [m a] -> m a Gen.choice [ ATxAux () -> MempoolPayload forall a. ATxAux a -> AMempoolPayload a MempoolTx (ATxAux () -> MempoolPayload) -> GenT Identity (ATxAux ()) -> Gen MempoolPayload forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> ProtocolMagicId -> GenT Identity (ATxAux ()) genTxAux ProtocolMagicId pmi , ACertificate () -> MempoolPayload forall a. ACertificate a -> AMempoolPayload a MempoolDlg (ACertificate () -> MempoolPayload) -> GenT Identity (ACertificate ()) -> Gen MempoolPayload forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> ProtocolMagicId -> GenT Identity (ACertificate ()) Delegation.genCertificate ProtocolMagicId pmi , AProposal () -> MempoolPayload forall a. AProposal a -> AMempoolPayload a MempoolUpdateProposal (AProposal () -> MempoolPayload) -> GenT Identity (AProposal ()) -> Gen MempoolPayload forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> ProtocolMagicId -> GenT Identity (AProposal ()) Update.genProposal ProtocolMagicId pmi , AVote () -> MempoolPayload forall a. AVote a -> AMempoolPayload a MempoolUpdateVote (AVote () -> MempoolPayload) -> GenT Identity (AVote ()) -> Gen MempoolPayload forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> ProtocolMagicId -> GenT Identity (AVote ()) Update.genVote ProtocolMagicId pmi ]