{-# LANGUAGE DataKinds #-}
{-# LANGUAGE DerivingStrategies #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE GADTs #-}
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
{-# LANGUAGE LambdaCase #-}
{-# LANGUAGE PatternSynonyms #-}
{-# LANGUAGE QuantifiedConstraints #-}
{-# LANGUAGE RankNTypes #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE StandaloneDeriving #-}
{-# LANGUAGE TypeApplications #-}
{-# 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 (PerasCert (..), 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.Rules
import Cardano.Ledger.Dijkstra.Scripts
import Cardano.Ledger.Dijkstra.Transition (TransitionConfig (..))
import Cardano.Ledger.Dijkstra.Tx (DijkstraTx (..), Tx (..))
import Cardano.Ledger.Dijkstra.TxBody (TxBody (..))
import Cardano.Ledger.Dijkstra.TxCert
import Cardano.Ledger.Dijkstra.TxInfo (DijkstraContextError)
import Cardano.Ledger.Shelley.Scripts (
pattern RequireSignature,
)
import Control.State.Transition (
STS (..),
)
import Data.Functor.Identity (Identity)
import qualified Data.OMap.Strict as OMap
import Data.Typeable (Typeable)
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 SubTx DijkstraEra) where
arbitrary :: Gen (TxBody SubTx DijkstraEra)
arbitrary =
(EncCBOR (Tx SubTx DijkstraEra), Eq (Tx SubTx DijkstraEra),
NFData (Tx SubTx DijkstraEra), Show (Tx SubTx DijkstraEra),
DecCBOR (Annotator (Tx SubTx DijkstraEra)),
HasOKey TxId (Tx SubTx DijkstraEra)) =>
Set TxIn
-> Set TxIn
-> StrictSeq (Sized (TxOut DijkstraEra))
-> OSet (TxCert DijkstraEra)
-> Withdrawals
-> ValidityInterval
-> OSet (Credential Guard)
-> MultiAsset
-> StrictMaybe ScriptIntegrityHash
-> StrictMaybe TxAuxDataHash
-> StrictMaybe Network
-> VotingProcedures DijkstraEra
-> OSet (ProposalProcedure DijkstraEra)
-> StrictMaybe Coin
-> Coin
-> Map (Credential Guard) (StrictMaybe (Data DijkstraEra))
-> TxBody SubTx DijkstraEra
Set TxIn
-> Set TxIn
-> StrictSeq (Sized (TxOut DijkstraEra))
-> OSet (TxCert DijkstraEra)
-> Withdrawals
-> ValidityInterval
-> OSet (Credential Guard)
-> MultiAsset
-> StrictMaybe ScriptIntegrityHash
-> StrictMaybe TxAuxDataHash
-> StrictMaybe Network
-> VotingProcedures DijkstraEra
-> OSet (ProposalProcedure DijkstraEra)
-> StrictMaybe Coin
-> Coin
-> Map (Credential Guard) (StrictMaybe (Data DijkstraEra))
-> TxBody SubTx DijkstraEra
Set TxIn
-> Set TxIn
-> StrictSeq (Sized (BabbageTxOut DijkstraEra))
-> OSet (DijkstraTxCert DijkstraEra)
-> Withdrawals
-> ValidityInterval
-> OSet (Credential Guard)
-> MultiAsset
-> StrictMaybe ScriptIntegrityHash
-> StrictMaybe TxAuxDataHash
-> StrictMaybe Network
-> VotingProcedures DijkstraEra
-> OSet (ProposalProcedure DijkstraEra)
-> StrictMaybe Coin
-> Coin
-> Map (Credential Guard) (StrictMaybe (Data DijkstraEra))
-> TxBody SubTx DijkstraEra
DijkstraSubTxBody
(Set TxIn
-> Set TxIn
-> StrictSeq (Sized (BabbageTxOut DijkstraEra))
-> OSet (DijkstraTxCert DijkstraEra)
-> Withdrawals
-> ValidityInterval
-> OSet (Credential Guard)
-> MultiAsset
-> StrictMaybe ScriptIntegrityHash
-> StrictMaybe TxAuxDataHash
-> StrictMaybe Network
-> VotingProcedures DijkstraEra
-> OSet (ProposalProcedure DijkstraEra)
-> StrictMaybe Coin
-> Coin
-> Map (Credential Guard) (StrictMaybe (Data DijkstraEra))
-> TxBody SubTx DijkstraEra)
-> Gen (Set TxIn)
-> Gen
(Set TxIn
-> StrictSeq (Sized (BabbageTxOut DijkstraEra))
-> OSet (DijkstraTxCert DijkstraEra)
-> Withdrawals
-> ValidityInterval
-> OSet (Credential Guard)
-> MultiAsset
-> StrictMaybe ScriptIntegrityHash
-> StrictMaybe TxAuxDataHash
-> StrictMaybe Network
-> VotingProcedures DijkstraEra
-> OSet (ProposalProcedure DijkstraEra)
-> StrictMaybe Coin
-> Coin
-> Map (Credential Guard) (StrictMaybe (Data DijkstraEra))
-> TxBody SubTx 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
-> StrictSeq (Sized (BabbageTxOut DijkstraEra))
-> OSet (DijkstraTxCert DijkstraEra)
-> Withdrawals
-> ValidityInterval
-> OSet (Credential Guard)
-> MultiAsset
-> StrictMaybe ScriptIntegrityHash
-> StrictMaybe TxAuxDataHash
-> StrictMaybe Network
-> VotingProcedures DijkstraEra
-> OSet (ProposalProcedure DijkstraEra)
-> StrictMaybe Coin
-> Coin
-> Map (Credential Guard) (StrictMaybe (Data DijkstraEra))
-> TxBody SubTx DijkstraEra)
-> Gen (Set TxIn)
-> Gen
(StrictSeq (Sized (BabbageTxOut DijkstraEra))
-> OSet (DijkstraTxCert DijkstraEra)
-> Withdrawals
-> ValidityInterval
-> OSet (Credential Guard)
-> MultiAsset
-> StrictMaybe ScriptIntegrityHash
-> StrictMaybe TxAuxDataHash
-> StrictMaybe Network
-> VotingProcedures DijkstraEra
-> OSet (ProposalProcedure DijkstraEra)
-> StrictMaybe Coin
-> Coin
-> Map (Credential Guard) (StrictMaybe (Data DijkstraEra))
-> TxBody SubTx 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))
-> OSet (DijkstraTxCert DijkstraEra)
-> Withdrawals
-> ValidityInterval
-> OSet (Credential Guard)
-> MultiAsset
-> StrictMaybe ScriptIntegrityHash
-> StrictMaybe TxAuxDataHash
-> StrictMaybe Network
-> VotingProcedures DijkstraEra
-> OSet (ProposalProcedure DijkstraEra)
-> StrictMaybe Coin
-> Coin
-> Map (Credential Guard) (StrictMaybe (Data DijkstraEra))
-> TxBody SubTx DijkstraEra)
-> Gen (StrictSeq (Sized (BabbageTxOut DijkstraEra)))
-> Gen
(OSet (DijkstraTxCert DijkstraEra)
-> Withdrawals
-> ValidityInterval
-> OSet (Credential Guard)
-> MultiAsset
-> StrictMaybe ScriptIntegrityHash
-> StrictMaybe TxAuxDataHash
-> StrictMaybe Network
-> VotingProcedures DijkstraEra
-> OSet (ProposalProcedure DijkstraEra)
-> StrictMaybe Coin
-> Coin
-> Map (Credential Guard) (StrictMaybe (Data DijkstraEra))
-> TxBody SubTx 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
(OSet (DijkstraTxCert DijkstraEra)
-> Withdrawals
-> ValidityInterval
-> OSet (Credential Guard)
-> MultiAsset
-> StrictMaybe ScriptIntegrityHash
-> StrictMaybe TxAuxDataHash
-> StrictMaybe Network
-> VotingProcedures DijkstraEra
-> OSet (ProposalProcedure DijkstraEra)
-> StrictMaybe Coin
-> Coin
-> Map (Credential Guard) (StrictMaybe (Data DijkstraEra))
-> TxBody SubTx DijkstraEra)
-> Gen (OSet (DijkstraTxCert DijkstraEra))
-> Gen
(Withdrawals
-> ValidityInterval
-> OSet (Credential Guard)
-> MultiAsset
-> StrictMaybe ScriptIntegrityHash
-> StrictMaybe TxAuxDataHash
-> StrictMaybe Network
-> VotingProcedures DijkstraEra
-> OSet (ProposalProcedure DijkstraEra)
-> StrictMaybe Coin
-> Coin
-> Map (Credential Guard) (StrictMaybe (Data DijkstraEra))
-> TxBody SubTx 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
-> ValidityInterval
-> OSet (Credential Guard)
-> MultiAsset
-> StrictMaybe ScriptIntegrityHash
-> StrictMaybe TxAuxDataHash
-> StrictMaybe Network
-> VotingProcedures DijkstraEra
-> OSet (ProposalProcedure DijkstraEra)
-> StrictMaybe Coin
-> Coin
-> Map (Credential Guard) (StrictMaybe (Data DijkstraEra))
-> TxBody SubTx DijkstraEra)
-> Gen Withdrawals
-> Gen
(ValidityInterval
-> OSet (Credential Guard)
-> MultiAsset
-> StrictMaybe ScriptIntegrityHash
-> StrictMaybe TxAuxDataHash
-> StrictMaybe Network
-> VotingProcedures DijkstraEra
-> OSet (ProposalProcedure DijkstraEra)
-> StrictMaybe Coin
-> Coin
-> Map (Credential Guard) (StrictMaybe (Data DijkstraEra))
-> TxBody SubTx 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
(ValidityInterval
-> OSet (Credential Guard)
-> MultiAsset
-> StrictMaybe ScriptIntegrityHash
-> StrictMaybe TxAuxDataHash
-> StrictMaybe Network
-> VotingProcedures DijkstraEra
-> OSet (ProposalProcedure DijkstraEra)
-> StrictMaybe Coin
-> Coin
-> Map (Credential Guard) (StrictMaybe (Data DijkstraEra))
-> TxBody SubTx DijkstraEra)
-> Gen ValidityInterval
-> Gen
(OSet (Credential Guard)
-> MultiAsset
-> StrictMaybe ScriptIntegrityHash
-> StrictMaybe TxAuxDataHash
-> StrictMaybe Network
-> VotingProcedures DijkstraEra
-> OSet (ProposalProcedure DijkstraEra)
-> StrictMaybe Coin
-> Coin
-> Map (Credential Guard) (StrictMaybe (Data DijkstraEra))
-> TxBody SubTx 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
-> Map (Credential Guard) (StrictMaybe (Data DijkstraEra))
-> TxBody SubTx DijkstraEra)
-> Gen (OSet (Credential Guard))
-> Gen
(MultiAsset
-> StrictMaybe ScriptIntegrityHash
-> StrictMaybe TxAuxDataHash
-> StrictMaybe Network
-> VotingProcedures DijkstraEra
-> OSet (ProposalProcedure DijkstraEra)
-> StrictMaybe Coin
-> Coin
-> Map (Credential Guard) (StrictMaybe (Data DijkstraEra))
-> TxBody SubTx 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
-> Map (Credential Guard) (StrictMaybe (Data DijkstraEra))
-> TxBody SubTx DijkstraEra)
-> Gen MultiAsset
-> Gen
(StrictMaybe ScriptIntegrityHash
-> StrictMaybe TxAuxDataHash
-> StrictMaybe Network
-> VotingProcedures DijkstraEra
-> OSet (ProposalProcedure DijkstraEra)
-> StrictMaybe Coin
-> Coin
-> Map (Credential Guard) (StrictMaybe (Data DijkstraEra))
-> TxBody SubTx 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
-> Map (Credential Guard) (StrictMaybe (Data DijkstraEra))
-> TxBody SubTx DijkstraEra)
-> Gen (StrictMaybe ScriptIntegrityHash)
-> Gen
(StrictMaybe TxAuxDataHash
-> StrictMaybe Network
-> VotingProcedures DijkstraEra
-> OSet (ProposalProcedure DijkstraEra)
-> StrictMaybe Coin
-> Coin
-> Map (Credential Guard) (StrictMaybe (Data DijkstraEra))
-> TxBody SubTx 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
-> Map (Credential Guard) (StrictMaybe (Data DijkstraEra))
-> TxBody SubTx DijkstraEra)
-> Gen (StrictMaybe TxAuxDataHash)
-> Gen
(StrictMaybe Network
-> VotingProcedures DijkstraEra
-> OSet (ProposalProcedure DijkstraEra)
-> StrictMaybe Coin
-> Coin
-> Map (Credential Guard) (StrictMaybe (Data DijkstraEra))
-> TxBody SubTx 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
-> Map (Credential Guard) (StrictMaybe (Data DijkstraEra))
-> TxBody SubTx DijkstraEra)
-> Gen (StrictMaybe Network)
-> Gen
(VotingProcedures DijkstraEra
-> OSet (ProposalProcedure DijkstraEra)
-> StrictMaybe Coin
-> Coin
-> Map (Credential Guard) (StrictMaybe (Data DijkstraEra))
-> TxBody SubTx 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
-> Map (Credential Guard) (StrictMaybe (Data DijkstraEra))
-> TxBody SubTx DijkstraEra)
-> Gen (VotingProcedures DijkstraEra)
-> Gen
(OSet (ProposalProcedure DijkstraEra)
-> StrictMaybe Coin
-> Coin
-> Map (Credential Guard) (StrictMaybe (Data DijkstraEra))
-> TxBody SubTx 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
-> Map (Credential Guard) (StrictMaybe (Data DijkstraEra))
-> TxBody SubTx DijkstraEra)
-> Gen (OSet (ProposalProcedure DijkstraEra))
-> Gen
(StrictMaybe Coin
-> Coin
-> Map (Credential Guard) (StrictMaybe (Data DijkstraEra))
-> TxBody SubTx 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
-> Map (Credential Guard) (StrictMaybe (Data DijkstraEra))
-> TxBody SubTx DijkstraEra)
-> Gen (StrictMaybe Coin)
-> Gen
(Coin
-> Map (Credential Guard) (StrictMaybe (Data DijkstraEra))
-> TxBody SubTx 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
-> Map (Credential Guard) (StrictMaybe (Data DijkstraEra))
-> TxBody SubTx DijkstraEra)
-> Gen Coin
-> Gen
(Map (Credential Guard) (StrictMaybe (Data DijkstraEra))
-> TxBody SubTx 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
(Map (Credential Guard) (StrictMaybe (Data DijkstraEra))
-> TxBody SubTx DijkstraEra)
-> Gen (Map (Credential Guard) (StrictMaybe (Data DijkstraEra)))
-> Gen (TxBody SubTx 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 (Map (Credential Guard) (StrictMaybe (Data DijkstraEra)))
forall a. Arbitrary a => Gen a
arbitrary
instance Arbitrary (TxBody TopTx DijkstraEra) where
arbitrary :: Gen (TxBody TopTx DijkstraEra)
arbitrary =
(EncCBOR (Tx SubTx DijkstraEra), Eq (Tx SubTx DijkstraEra),
NFData (Tx SubTx DijkstraEra), Show (Tx SubTx DijkstraEra),
DecCBOR (Annotator (Tx SubTx DijkstraEra)),
HasOKey TxId (Tx SubTx DijkstraEra)) =>
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
-> OMap TxId (Tx SubTx DijkstraEra)
-> TxBody TopTx DijkstraEra
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
-> OMap TxId (Tx SubTx DijkstraEra)
-> TxBody TopTx 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
-> OMap TxId (Tx SubTx DijkstraEra)
-> TxBody TopTx 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
-> OMap TxId (Tx SubTx DijkstraEra)
-> TxBody TopTx 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
-> OMap TxId (Tx SubTx DijkstraEra)
-> TxBody TopTx 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
-> OMap TxId (Tx SubTx DijkstraEra)
-> TxBody TopTx 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
-> OMap TxId (Tx SubTx DijkstraEra)
-> TxBody TopTx 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
-> OMap TxId (Tx SubTx DijkstraEra)
-> TxBody TopTx 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
-> OMap TxId (Tx SubTx DijkstraEra)
-> TxBody TopTx 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
-> OMap TxId (Tx SubTx DijkstraEra)
-> TxBody TopTx 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
-> OMap TxId (Tx SubTx DijkstraEra)
-> TxBody TopTx 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
-> OMap TxId (Tx SubTx DijkstraEra)
-> TxBody TopTx 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
-> OMap TxId (Tx SubTx DijkstraEra)
-> TxBody TopTx 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
-> OMap TxId (Tx SubTx DijkstraEra)
-> TxBody TopTx 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
-> OMap TxId (Tx SubTx DijkstraEra)
-> TxBody TopTx 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
-> OMap TxId (Tx SubTx DijkstraEra)
-> TxBody TopTx 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
-> OMap TxId (Tx SubTx DijkstraEra)
-> TxBody TopTx 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
-> OMap TxId (Tx SubTx DijkstraEra)
-> TxBody TopTx DijkstraEra)
-> Gen Withdrawals
-> Gen
(Coin
-> ValidityInterval
-> OSet (Credential Guard)
-> MultiAsset
-> StrictMaybe ScriptIntegrityHash
-> StrictMaybe TxAuxDataHash
-> StrictMaybe Network
-> VotingProcedures DijkstraEra
-> OSet (ProposalProcedure DijkstraEra)
-> StrictMaybe Coin
-> Coin
-> OMap TxId (Tx SubTx DijkstraEra)
-> TxBody TopTx 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
-> OMap TxId (Tx SubTx DijkstraEra)
-> TxBody TopTx DijkstraEra)
-> Gen Coin
-> Gen
(ValidityInterval
-> OSet (Credential Guard)
-> MultiAsset
-> StrictMaybe ScriptIntegrityHash
-> StrictMaybe TxAuxDataHash
-> StrictMaybe Network
-> VotingProcedures DijkstraEra
-> OSet (ProposalProcedure DijkstraEra)
-> StrictMaybe Coin
-> Coin
-> OMap TxId (Tx SubTx DijkstraEra)
-> TxBody TopTx 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
-> OMap TxId (Tx SubTx DijkstraEra)
-> TxBody TopTx DijkstraEra)
-> Gen ValidityInterval
-> Gen
(OSet (Credential Guard)
-> MultiAsset
-> StrictMaybe ScriptIntegrityHash
-> StrictMaybe TxAuxDataHash
-> StrictMaybe Network
-> VotingProcedures DijkstraEra
-> OSet (ProposalProcedure DijkstraEra)
-> StrictMaybe Coin
-> Coin
-> OMap TxId (Tx SubTx DijkstraEra)
-> TxBody TopTx 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
-> OMap TxId (Tx SubTx DijkstraEra)
-> TxBody TopTx DijkstraEra)
-> Gen (OSet (Credential Guard))
-> Gen
(MultiAsset
-> StrictMaybe ScriptIntegrityHash
-> StrictMaybe TxAuxDataHash
-> StrictMaybe Network
-> VotingProcedures DijkstraEra
-> OSet (ProposalProcedure DijkstraEra)
-> StrictMaybe Coin
-> Coin
-> OMap TxId (Tx SubTx DijkstraEra)
-> TxBody TopTx 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
-> OMap TxId (Tx SubTx DijkstraEra)
-> TxBody TopTx DijkstraEra)
-> Gen MultiAsset
-> Gen
(StrictMaybe ScriptIntegrityHash
-> StrictMaybe TxAuxDataHash
-> StrictMaybe Network
-> VotingProcedures DijkstraEra
-> OSet (ProposalProcedure DijkstraEra)
-> StrictMaybe Coin
-> Coin
-> OMap TxId (Tx SubTx DijkstraEra)
-> TxBody TopTx 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
-> OMap TxId (Tx SubTx DijkstraEra)
-> TxBody TopTx DijkstraEra)
-> Gen (StrictMaybe ScriptIntegrityHash)
-> Gen
(StrictMaybe TxAuxDataHash
-> StrictMaybe Network
-> VotingProcedures DijkstraEra
-> OSet (ProposalProcedure DijkstraEra)
-> StrictMaybe Coin
-> Coin
-> OMap TxId (Tx SubTx DijkstraEra)
-> TxBody TopTx 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
-> OMap TxId (Tx SubTx DijkstraEra)
-> TxBody TopTx DijkstraEra)
-> Gen (StrictMaybe TxAuxDataHash)
-> Gen
(StrictMaybe Network
-> VotingProcedures DijkstraEra
-> OSet (ProposalProcedure DijkstraEra)
-> StrictMaybe Coin
-> Coin
-> OMap TxId (Tx SubTx DijkstraEra)
-> TxBody TopTx 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
-> OMap TxId (Tx SubTx DijkstraEra)
-> TxBody TopTx DijkstraEra)
-> Gen (StrictMaybe Network)
-> Gen
(VotingProcedures DijkstraEra
-> OSet (ProposalProcedure DijkstraEra)
-> StrictMaybe Coin
-> Coin
-> OMap TxId (Tx SubTx DijkstraEra)
-> TxBody TopTx 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
-> OMap TxId (Tx SubTx DijkstraEra)
-> TxBody TopTx DijkstraEra)
-> Gen (VotingProcedures DijkstraEra)
-> Gen
(OSet (ProposalProcedure DijkstraEra)
-> StrictMaybe Coin
-> Coin
-> OMap TxId (Tx SubTx DijkstraEra)
-> TxBody TopTx 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
-> OMap TxId (Tx SubTx DijkstraEra)
-> TxBody TopTx DijkstraEra)
-> Gen (OSet (ProposalProcedure DijkstraEra))
-> Gen
(StrictMaybe Coin
-> Coin
-> OMap TxId (Tx SubTx DijkstraEra)
-> TxBody TopTx 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
-> OMap TxId (Tx SubTx DijkstraEra)
-> TxBody TopTx DijkstraEra)
-> Gen (StrictMaybe Coin)
-> Gen
(Coin
-> OMap TxId (Tx SubTx DijkstraEra) -> TxBody TopTx 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
-> OMap TxId (Tx SubTx DijkstraEra) -> TxBody TopTx DijkstraEra)
-> Gen Coin
-> Gen
(OMap TxId (Tx SubTx DijkstraEra) -> TxBody TopTx 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 (OMap TxId (Tx SubTx DijkstraEra) -> TxBody TopTx DijkstraEra)
-> Gen (OMap TxId (Tx SubTx DijkstraEra))
-> Gen (TxBody TopTx 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 Int
forall a. Random a => (a, a) -> Gen a
choose (Int
0, Int
4) Gen Int
-> (Int -> Gen (OMap TxId (Tx SubTx DijkstraEra)))
-> Gen (OMap TxId (Tx SubTx DijkstraEra))
forall a b. Gen a -> (a -> Gen b) -> Gen b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= \Int
n -> [Tx SubTx DijkstraEra] -> OMap TxId (Tx SubTx DijkstraEra)
forall (f :: * -> *) k v.
(Foldable f, HasOKey k v) =>
f v -> OMap k v
OMap.fromFoldable ([Tx SubTx DijkstraEra] -> OMap TxId (Tx SubTx DijkstraEra))
-> Gen [Tx SubTx DijkstraEra]
-> Gen (OMap TxId (Tx SubTx DijkstraEra))
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Int -> Gen (Tx SubTx DijkstraEra) -> Gen [Tx SubTx DijkstraEra]
forall a. Int -> Gen a -> Gen [a]
vectorOf Int
n Gen (Tx SubTx DijkstraEra)
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
]
instance (Arbitrary (TxBody l DijkstraEra), Typeable l) => Arbitrary (Tx l DijkstraEra) where
arbitrary :: Gen (Tx l DijkstraEra)
arbitrary =
(DijkstraTx l DijkstraEra -> Tx l DijkstraEra)
-> Gen (DijkstraTx l DijkstraEra) -> Gen (Tx l DijkstraEra)
forall a b. (a -> b) -> Gen a -> Gen b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap DijkstraTx l DijkstraEra -> Tx l DijkstraEra
forall (l :: TxLevel). DijkstraTx l DijkstraEra -> Tx l DijkstraEra
MkDijkstraTx (Gen (DijkstraTx l DijkstraEra) -> Gen (Tx l DijkstraEra))
-> ((STxBothLevels l (ZonkAny 0) -> Gen (DijkstraTx l DijkstraEra))
-> Gen (DijkstraTx l DijkstraEra))
-> (STxBothLevels l (ZonkAny 0) -> Gen (DijkstraTx l DijkstraEra))
-> Gen (Tx l DijkstraEra)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall (l :: TxLevel) era a.
(Typeable l, HasCallStack) =>
(STxBothLevels l era -> a) -> a
withSTxBothLevels @l ((STxBothLevels l (ZonkAny 0) -> Gen (DijkstraTx l DijkstraEra))
-> Gen (Tx l DijkstraEra))
-> (STxBothLevels l (ZonkAny 0) -> Gen (DijkstraTx l DijkstraEra))
-> Gen (Tx l DijkstraEra)
forall a b. (a -> b) -> a -> b
$ \case
STxBothLevels l (ZonkAny 0)
STopTx -> TxBody TopTx DijkstraEra
-> TxWits DijkstraEra
-> IsValid
-> StrictMaybe (TxAuxData DijkstraEra)
-> DijkstraTx TopTx DijkstraEra
TxBody TopTx DijkstraEra
-> AlonzoTxWits DijkstraEra
-> IsValid
-> StrictMaybe (AlonzoTxAuxData DijkstraEra)
-> DijkstraTx l DijkstraEra
forall era.
TxBody TopTx era
-> TxWits era
-> IsValid
-> StrictMaybe (TxAuxData era)
-> DijkstraTx TopTx era
DijkstraTx (TxBody TopTx DijkstraEra
-> AlonzoTxWits DijkstraEra
-> IsValid
-> StrictMaybe (AlonzoTxAuxData DijkstraEra)
-> DijkstraTx l DijkstraEra)
-> Gen (TxBody TopTx DijkstraEra)
-> Gen
(AlonzoTxWits DijkstraEra
-> IsValid
-> StrictMaybe (AlonzoTxAuxData DijkstraEra)
-> DijkstraTx l DijkstraEra)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Gen (TxBody TopTx DijkstraEra)
forall a. Arbitrary a => Gen a
arbitrary Gen
(AlonzoTxWits DijkstraEra
-> IsValid
-> StrictMaybe (AlonzoTxAuxData DijkstraEra)
-> DijkstraTx l DijkstraEra)
-> Gen (AlonzoTxWits DijkstraEra)
-> Gen
(IsValid
-> StrictMaybe (AlonzoTxAuxData DijkstraEra)
-> DijkstraTx l 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 (AlonzoTxWits DijkstraEra)
forall a. Arbitrary a => Gen a
arbitrary Gen
(IsValid
-> StrictMaybe (AlonzoTxAuxData DijkstraEra)
-> DijkstraTx l DijkstraEra)
-> Gen IsValid
-> Gen
(StrictMaybe (AlonzoTxAuxData DijkstraEra)
-> DijkstraTx l DijkstraEra)
forall a b. Gen (a -> b) -> Gen a -> Gen b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> IsValid -> Gen IsValid
forall a. a -> Gen a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (Bool -> IsValid
IsValid Bool
True) Gen
(StrictMaybe (AlonzoTxAuxData DijkstraEra)
-> DijkstraTx l DijkstraEra)
-> Gen (StrictMaybe (AlonzoTxAuxData DijkstraEra))
-> Gen (DijkstraTx l 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 (AlonzoTxAuxData DijkstraEra))
forall a. Arbitrary a => Gen a
arbitrary
STxBothLevels l (ZonkAny 0)
SSubTx -> TxBody SubTx DijkstraEra
-> TxWits DijkstraEra
-> StrictMaybe (TxAuxData DijkstraEra)
-> DijkstraTx SubTx DijkstraEra
TxBody SubTx DijkstraEra
-> AlonzoTxWits DijkstraEra
-> StrictMaybe (AlonzoTxAuxData DijkstraEra)
-> DijkstraTx l DijkstraEra
forall era.
TxBody SubTx era
-> TxWits era
-> StrictMaybe (TxAuxData era)
-> DijkstraTx SubTx era
DijkstraSubTx (TxBody SubTx DijkstraEra
-> AlonzoTxWits DijkstraEra
-> StrictMaybe (AlonzoTxAuxData DijkstraEra)
-> DijkstraTx l DijkstraEra)
-> Gen (TxBody SubTx DijkstraEra)
-> Gen
(AlonzoTxWits DijkstraEra
-> StrictMaybe (AlonzoTxAuxData DijkstraEra)
-> DijkstraTx l DijkstraEra)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Gen (TxBody SubTx DijkstraEra)
forall a. Arbitrary a => Gen a
arbitrary Gen
(AlonzoTxWits DijkstraEra
-> StrictMaybe (AlonzoTxAuxData DijkstraEra)
-> DijkstraTx l DijkstraEra)
-> Gen (AlonzoTxWits DijkstraEra)
-> Gen
(StrictMaybe (AlonzoTxAuxData DijkstraEra)
-> DijkstraTx l 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 (AlonzoTxWits DijkstraEra)
forall a. Arbitrary a => Gen a
arbitrary Gen
(StrictMaybe (AlonzoTxAuxData DijkstraEra)
-> DijkstraTx l DijkstraEra)
-> Gen (StrictMaybe (AlonzoTxAuxData DijkstraEra))
-> Gen (DijkstraTx l 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 (AlonzoTxAuxData DijkstraEra))
forall a. Arbitrary a => Gen a
arbitrary
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 = Credential Staking -> Delegatee -> Coin -> DijkstraDelegCert
DijkstraRegDelegCert (Credential Staking -> Delegatee -> Coin -> DijkstraDelegCert)
-> Gen (Credential Staking)
-> Gen (Delegatee -> Coin -> DijkstraDelegCert)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Gen (Credential Staking)
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
instance
( EraPParams era
, Arbitrary (PlutusPurpose AsItem era)
, Arbitrary (PlutusPurpose AsIx era)
, Arbitrary (PParamsHKD Identity era)
, Arbitrary (PParamsHKD StrictMaybe era)
, Arbitrary (TxCert era)
, Arbitrary (TxOut era)
) =>
Arbitrary (DijkstraContextError era)
where
arbitrary :: Gen (DijkstraContextError era)
arbitrary = Gen (DijkstraContextError era)
forall a. (GArbitrary UnsizedOpts a, GUniformWeight a) => Gen a
genericArbitraryU
instance
( Era era
, Arbitrary (PredicateFailure (EraRule "LEDGERS" era))
) =>
Arbitrary (DijkstraBbodyPredFailure era)
where
arbitrary :: Gen (DijkstraBbodyPredFailure era)
arbitrary = Gen (DijkstraBbodyPredFailure era)
forall a. (GArbitrary UnsizedOpts a, GUniformWeight a) => Gen a
genericArbitraryU
instance
( Era era
, Arbitrary (PredicateFailure (EraRule "UTXOW" era))
, Arbitrary (PredicateFailure (EraRule "CERTS" era))
, Arbitrary (PredicateFailure (EraRule "GOV" era))
) =>
Arbitrary (DijkstraLedgerPredFailure era)
where
arbitrary :: Gen (DijkstraLedgerPredFailure era)
arbitrary = Gen (DijkstraLedgerPredFailure era)
forall a. (GArbitrary UnsizedOpts a, GUniformWeight a) => Gen a
genericArbitraryU
instance
( EraTxOut era
, Arbitrary (Value era)
, Arbitrary (TxOut era)
, Arbitrary (PredicateFailure (EraRule "UTXOS" era))
) =>
Arbitrary (DijkstraUtxoPredFailure era)
where
arbitrary :: Gen (DijkstraUtxoPredFailure era)
arbitrary = Gen (DijkstraUtxoPredFailure era)
forall a. (GArbitrary UnsizedOpts a, GUniformWeight a) => Gen a
genericArbitraryU
instance
( Era era
, Arbitrary (PredicateFailure (EraRule "UTXO" era))
, Arbitrary (TxCert era)
, Arbitrary (PlutusPurpose AsItem era)
, Arbitrary (PlutusPurpose AsIx era)
) =>
Arbitrary (DijkstraUtxowPredFailure era)
where
arbitrary :: Gen (DijkstraUtxowPredFailure era)
arbitrary = Gen (DijkstraUtxowPredFailure era)
forall a. (GArbitrary UnsizedOpts a, GUniformWeight a) => Gen a
genericArbitraryU
instance Era era => Arbitrary (DijkstraGovCertPredFailure era) where
arbitrary :: Gen (DijkstraGovCertPredFailure era)
arbitrary = Gen (DijkstraGovCertPredFailure era)
forall a. (GArbitrary UnsizedOpts a, GUniformWeight a) => Gen a
genericArbitraryU
instance
( Era era
, Arbitrary (PParamsHKD StrictMaybe era)
) =>
Arbitrary (DijkstraGovPredFailure era)
where
arbitrary :: Gen (DijkstraGovPredFailure era)
arbitrary = Gen (DijkstraGovPredFailure era)
forall a. (GArbitrary UnsizedOpts a, GUniformWeight a) => Gen a
genericArbitraryU
instance Arbitrary PerasCert where
arbitrary :: Gen PerasCert
arbitrary = PerasCert -> Gen PerasCert
forall a. a -> Gen a
forall (f :: * -> *) a. Applicative f => a -> f a
pure PerasCert
PerasCert
instance
( EraBlockBody era
, AlonzoEraTx era
, Arbitrary (Tx TopTx era)
, SafeToHash (TxWits era)
) =>
Arbitrary (DijkstraBlockBody era)
where
arbitrary :: Gen (DijkstraBlockBody era)
arbitrary = StrictSeq (Tx TopTx era)
-> StrictMaybe PerasCert -> DijkstraBlockBody era
forall era.
(AlonzoEraTx era, SafeToHash (TxWits era)) =>
StrictSeq (Tx TopTx era)
-> StrictMaybe PerasCert -> DijkstraBlockBody era
DijkstraBlockBody (StrictSeq (Tx TopTx era)
-> StrictMaybe PerasCert -> DijkstraBlockBody era)
-> Gen (StrictSeq (Tx TopTx era))
-> Gen (StrictMaybe PerasCert -> DijkstraBlockBody era)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Gen (StrictSeq (Tx TopTx era))
forall a. Arbitrary a => Gen a
arbitrary Gen (StrictMaybe PerasCert -> DijkstraBlockBody era)
-> Gen (StrictMaybe PerasCert) -> Gen (DijkstraBlockBody era)
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 PerasCert)
forall a. Arbitrary a => Gen a
arbitrary