{-# LANGUAGE DataKinds #-}
{-# LANGUAGE DerivingStrategies #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
{-# LANGUAGE OverloadedLists #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE StandaloneDeriving #-}
{-# LANGUAGE UndecidableInstances #-}
{-# OPTIONS_GHC -Wno-orphans #-}

module Test.Cardano.Ledger.Babbage.Arbitrary () where

import Cardano.Ledger.Babbage
import Cardano.Ledger.Babbage.Core
import Cardano.Ledger.Babbage.PParams
import Cardano.Ledger.Babbage.Rules (BabbageUtxoPredFailure (..), BabbageUtxowPredFailure (..))
import Cardano.Ledger.Babbage.Transition (TransitionConfig (..))
import Cardano.Ledger.Babbage.TxBody (BabbageTxOut (..))
import Cardano.Ledger.Babbage.TxInfo (BabbageContextError (..))
import Cardano.Ledger.BaseTypes (StrictMaybe (..))
import Cardano.Ledger.Plutus
import Control.State.Transition (STS (PredicateFailure))
import Data.Functor.Identity (Identity)
import Generic.Random (genericArbitraryU)
import Test.Cardano.Ledger.Alonzo.Arbitrary ()
import Test.Cardano.Ledger.Core.Arbitrary (genValidCostModels)
import Test.QuickCheck

deriving instance Arbitrary CoinPerByte

instance Arbitrary (BabbagePParams Identity era) where
  arbitrary :: Gen (BabbagePParams Identity era)
arbitrary =
    CompactForm Coin
-> CompactForm Coin
-> Word32
-> Word32
-> Word16
-> CompactForm Coin
-> CompactForm Coin
-> EpochInterval
-> Word16
-> NonNegativeInterval
-> UnitInterval
-> UnitInterval
-> ProtVer
-> CompactForm Coin
-> CoinPerByte
-> CostModels
-> Prices
-> OrdExUnits
-> OrdExUnits
-> Natural
-> Natural
-> Natural
-> BabbagePParams Identity era
HKD Identity (CompactForm Coin)
-> HKD Identity (CompactForm Coin)
-> HKD Identity Word32
-> HKD Identity Word32
-> HKD Identity Word16
-> HKD Identity (CompactForm Coin)
-> HKD Identity (CompactForm Coin)
-> HKD Identity EpochInterval
-> HKD Identity Word16
-> HKD Identity NonNegativeInterval
-> HKD Identity UnitInterval
-> HKD Identity UnitInterval
-> HKD Identity ProtVer
-> HKD Identity (CompactForm Coin)
-> HKD Identity CoinPerByte
-> HKD Identity CostModels
-> HKD Identity Prices
-> HKD Identity OrdExUnits
-> HKD Identity OrdExUnits
-> HKD Identity Natural
-> HKD Identity Natural
-> HKD Identity Natural
-> BabbagePParams Identity era
forall (f :: * -> *) era.
HKD f (CompactForm Coin)
-> HKD f (CompactForm Coin)
-> HKD f Word32
-> HKD f Word32
-> HKD f Word16
-> HKD f (CompactForm Coin)
-> HKD f (CompactForm Coin)
-> HKD f EpochInterval
-> HKD f Word16
-> HKD f NonNegativeInterval
-> HKD f UnitInterval
-> HKD f UnitInterval
-> HKD f ProtVer
-> HKD f (CompactForm Coin)
-> HKD f CoinPerByte
-> HKD f CostModels
-> HKD f Prices
-> HKD f OrdExUnits
-> HKD f OrdExUnits
-> HKD f Natural
-> HKD f Natural
-> HKD f Natural
-> BabbagePParams f era
BabbagePParams
      (CompactForm Coin
 -> CompactForm Coin
 -> Word32
 -> Word32
 -> Word16
 -> CompactForm Coin
 -> CompactForm Coin
 -> EpochInterval
 -> Word16
 -> NonNegativeInterval
 -> UnitInterval
 -> UnitInterval
 -> ProtVer
 -> CompactForm Coin
 -> CoinPerByte
 -> CostModels
 -> Prices
 -> OrdExUnits
 -> OrdExUnits
 -> Natural
 -> Natural
 -> Natural
 -> BabbagePParams Identity era)
-> Gen (CompactForm Coin)
-> Gen
     (CompactForm Coin
      -> Word32
      -> Word32
      -> Word16
      -> CompactForm Coin
      -> CompactForm Coin
      -> EpochInterval
      -> Word16
      -> NonNegativeInterval
      -> UnitInterval
      -> UnitInterval
      -> ProtVer
      -> CompactForm Coin
      -> CoinPerByte
      -> CostModels
      -> Prices
      -> OrdExUnits
      -> OrdExUnits
      -> Natural
      -> Natural
      -> Natural
      -> BabbagePParams Identity era)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Gen (CompactForm Coin)
forall a. Arbitrary a => Gen a
arbitrary
      Gen
  (CompactForm Coin
   -> Word32
   -> Word32
   -> Word16
   -> CompactForm Coin
   -> CompactForm Coin
   -> EpochInterval
   -> Word16
   -> NonNegativeInterval
   -> UnitInterval
   -> UnitInterval
   -> ProtVer
   -> CompactForm Coin
   -> CoinPerByte
   -> CostModels
   -> Prices
   -> OrdExUnits
   -> OrdExUnits
   -> Natural
   -> Natural
   -> Natural
   -> BabbagePParams Identity era)
-> Gen (CompactForm Coin)
-> Gen
     (Word32
      -> Word32
      -> Word16
      -> CompactForm Coin
      -> CompactForm Coin
      -> EpochInterval
      -> Word16
      -> NonNegativeInterval
      -> UnitInterval
      -> UnitInterval
      -> ProtVer
      -> CompactForm Coin
      -> CoinPerByte
      -> CostModels
      -> Prices
      -> OrdExUnits
      -> OrdExUnits
      -> Natural
      -> Natural
      -> Natural
      -> BabbagePParams Identity 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 (CompactForm Coin)
forall a. Arbitrary a => Gen a
arbitrary
      Gen
  (Word32
   -> Word32
   -> Word16
   -> CompactForm Coin
   -> CompactForm Coin
   -> EpochInterval
   -> Word16
   -> NonNegativeInterval
   -> UnitInterval
   -> UnitInterval
   -> ProtVer
   -> CompactForm Coin
   -> CoinPerByte
   -> CostModels
   -> Prices
   -> OrdExUnits
   -> OrdExUnits
   -> Natural
   -> Natural
   -> Natural
   -> BabbagePParams Identity era)
-> Gen Word32
-> Gen
     (Word32
      -> Word16
      -> CompactForm Coin
      -> CompactForm Coin
      -> EpochInterval
      -> Word16
      -> NonNegativeInterval
      -> UnitInterval
      -> UnitInterval
      -> ProtVer
      -> CompactForm Coin
      -> CoinPerByte
      -> CostModels
      -> Prices
      -> OrdExUnits
      -> OrdExUnits
      -> Natural
      -> Natural
      -> Natural
      -> BabbagePParams Identity 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 Word32
forall a. Arbitrary a => Gen a
arbitrary
      Gen
  (Word32
   -> Word16
   -> CompactForm Coin
   -> CompactForm Coin
   -> EpochInterval
   -> Word16
   -> NonNegativeInterval
   -> UnitInterval
   -> UnitInterval
   -> ProtVer
   -> CompactForm Coin
   -> CoinPerByte
   -> CostModels
   -> Prices
   -> OrdExUnits
   -> OrdExUnits
   -> Natural
   -> Natural
   -> Natural
   -> BabbagePParams Identity era)
-> Gen Word32
-> Gen
     (Word16
      -> CompactForm Coin
      -> CompactForm Coin
      -> EpochInterval
      -> Word16
      -> NonNegativeInterval
      -> UnitInterval
      -> UnitInterval
      -> ProtVer
      -> CompactForm Coin
      -> CoinPerByte
      -> CostModels
      -> Prices
      -> OrdExUnits
      -> OrdExUnits
      -> Natural
      -> Natural
      -> Natural
      -> BabbagePParams Identity 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 Word32
forall a. Arbitrary a => Gen a
arbitrary
      Gen
  (Word16
   -> CompactForm Coin
   -> CompactForm Coin
   -> EpochInterval
   -> Word16
   -> NonNegativeInterval
   -> UnitInterval
   -> UnitInterval
   -> ProtVer
   -> CompactForm Coin
   -> CoinPerByte
   -> CostModels
   -> Prices
   -> OrdExUnits
   -> OrdExUnits
   -> Natural
   -> Natural
   -> Natural
   -> BabbagePParams Identity era)
-> Gen Word16
-> Gen
     (CompactForm Coin
      -> CompactForm Coin
      -> EpochInterval
      -> Word16
      -> NonNegativeInterval
      -> UnitInterval
      -> UnitInterval
      -> ProtVer
      -> CompactForm Coin
      -> CoinPerByte
      -> CostModels
      -> Prices
      -> OrdExUnits
      -> OrdExUnits
      -> Natural
      -> Natural
      -> Natural
      -> BabbagePParams Identity 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 Word16
forall a. Arbitrary a => Gen a
arbitrary
      Gen
  (CompactForm Coin
   -> CompactForm Coin
   -> EpochInterval
   -> Word16
   -> NonNegativeInterval
   -> UnitInterval
   -> UnitInterval
   -> ProtVer
   -> CompactForm Coin
   -> CoinPerByte
   -> CostModels
   -> Prices
   -> OrdExUnits
   -> OrdExUnits
   -> Natural
   -> Natural
   -> Natural
   -> BabbagePParams Identity era)
-> Gen (CompactForm Coin)
-> Gen
     (CompactForm Coin
      -> EpochInterval
      -> Word16
      -> NonNegativeInterval
      -> UnitInterval
      -> UnitInterval
      -> ProtVer
      -> CompactForm Coin
      -> CoinPerByte
      -> CostModels
      -> Prices
      -> OrdExUnits
      -> OrdExUnits
      -> Natural
      -> Natural
      -> Natural
      -> BabbagePParams Identity 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 (CompactForm Coin)
forall a. Arbitrary a => Gen a
arbitrary
      Gen
  (CompactForm Coin
   -> EpochInterval
   -> Word16
   -> NonNegativeInterval
   -> UnitInterval
   -> UnitInterval
   -> ProtVer
   -> CompactForm Coin
   -> CoinPerByte
   -> CostModels
   -> Prices
   -> OrdExUnits
   -> OrdExUnits
   -> Natural
   -> Natural
   -> Natural
   -> BabbagePParams Identity era)
-> Gen (CompactForm Coin)
-> Gen
     (EpochInterval
      -> Word16
      -> NonNegativeInterval
      -> UnitInterval
      -> UnitInterval
      -> ProtVer
      -> CompactForm Coin
      -> CoinPerByte
      -> CostModels
      -> Prices
      -> OrdExUnits
      -> OrdExUnits
      -> Natural
      -> Natural
      -> Natural
      -> BabbagePParams Identity 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 (CompactForm Coin)
forall a. Arbitrary a => Gen a
arbitrary
      Gen
  (EpochInterval
   -> Word16
   -> NonNegativeInterval
   -> UnitInterval
   -> UnitInterval
   -> ProtVer
   -> CompactForm Coin
   -> CoinPerByte
   -> CostModels
   -> Prices
   -> OrdExUnits
   -> OrdExUnits
   -> Natural
   -> Natural
   -> Natural
   -> BabbagePParams Identity era)
-> Gen EpochInterval
-> Gen
     (Word16
      -> NonNegativeInterval
      -> UnitInterval
      -> UnitInterval
      -> ProtVer
      -> CompactForm Coin
      -> CoinPerByte
      -> CostModels
      -> Prices
      -> OrdExUnits
      -> OrdExUnits
      -> Natural
      -> Natural
      -> Natural
      -> BabbagePParams Identity 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 EpochInterval
forall a. Arbitrary a => Gen a
arbitrary
      Gen
  (Word16
   -> NonNegativeInterval
   -> UnitInterval
   -> UnitInterval
   -> ProtVer
   -> CompactForm Coin
   -> CoinPerByte
   -> CostModels
   -> Prices
   -> OrdExUnits
   -> OrdExUnits
   -> Natural
   -> Natural
   -> Natural
   -> BabbagePParams Identity era)
-> Gen Word16
-> Gen
     (NonNegativeInterval
      -> UnitInterval
      -> UnitInterval
      -> ProtVer
      -> CompactForm Coin
      -> CoinPerByte
      -> CostModels
      -> Prices
      -> OrdExUnits
      -> OrdExUnits
      -> Natural
      -> Natural
      -> Natural
      -> BabbagePParams Identity 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 Word16
forall a. Arbitrary a => Gen a
arbitrary
      Gen
  (NonNegativeInterval
   -> UnitInterval
   -> UnitInterval
   -> ProtVer
   -> CompactForm Coin
   -> CoinPerByte
   -> CostModels
   -> Prices
   -> OrdExUnits
   -> OrdExUnits
   -> Natural
   -> Natural
   -> Natural
   -> BabbagePParams Identity era)
-> Gen NonNegativeInterval
-> Gen
     (UnitInterval
      -> UnitInterval
      -> ProtVer
      -> CompactForm Coin
      -> CoinPerByte
      -> CostModels
      -> Prices
      -> OrdExUnits
      -> OrdExUnits
      -> Natural
      -> Natural
      -> Natural
      -> BabbagePParams Identity 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 NonNegativeInterval
forall a. Arbitrary a => Gen a
arbitrary
      Gen
  (UnitInterval
   -> UnitInterval
   -> ProtVer
   -> CompactForm Coin
   -> CoinPerByte
   -> CostModels
   -> Prices
   -> OrdExUnits
   -> OrdExUnits
   -> Natural
   -> Natural
   -> Natural
   -> BabbagePParams Identity era)
-> Gen UnitInterval
-> Gen
     (UnitInterval
      -> ProtVer
      -> CompactForm Coin
      -> CoinPerByte
      -> CostModels
      -> Prices
      -> OrdExUnits
      -> OrdExUnits
      -> Natural
      -> Natural
      -> Natural
      -> BabbagePParams Identity 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 UnitInterval
forall a. Arbitrary a => Gen a
arbitrary
      Gen
  (UnitInterval
   -> ProtVer
   -> CompactForm Coin
   -> CoinPerByte
   -> CostModels
   -> Prices
   -> OrdExUnits
   -> OrdExUnits
   -> Natural
   -> Natural
   -> Natural
   -> BabbagePParams Identity era)
-> Gen UnitInterval
-> Gen
     (ProtVer
      -> CompactForm Coin
      -> CoinPerByte
      -> CostModels
      -> Prices
      -> OrdExUnits
      -> OrdExUnits
      -> Natural
      -> Natural
      -> Natural
      -> BabbagePParams Identity 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 UnitInterval
forall a. Arbitrary a => Gen a
arbitrary
      Gen
  (ProtVer
   -> CompactForm Coin
   -> CoinPerByte
   -> CostModels
   -> Prices
   -> OrdExUnits
   -> OrdExUnits
   -> Natural
   -> Natural
   -> Natural
   -> BabbagePParams Identity era)
-> Gen ProtVer
-> Gen
     (CompactForm Coin
      -> CoinPerByte
      -> CostModels
      -> Prices
      -> OrdExUnits
      -> OrdExUnits
      -> Natural
      -> Natural
      -> Natural
      -> BabbagePParams Identity 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 ProtVer
forall a. Arbitrary a => Gen a
arbitrary
      Gen
  (CompactForm Coin
   -> CoinPerByte
   -> CostModels
   -> Prices
   -> OrdExUnits
   -> OrdExUnits
   -> Natural
   -> Natural
   -> Natural
   -> BabbagePParams Identity era)
-> Gen (CompactForm Coin)
-> Gen
     (CoinPerByte
      -> CostModels
      -> Prices
      -> OrdExUnits
      -> OrdExUnits
      -> Natural
      -> Natural
      -> Natural
      -> BabbagePParams Identity 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 (CompactForm Coin)
forall a. Arbitrary a => Gen a
arbitrary
      Gen
  (CoinPerByte
   -> CostModels
   -> Prices
   -> OrdExUnits
   -> OrdExUnits
   -> Natural
   -> Natural
   -> Natural
   -> BabbagePParams Identity era)
-> Gen CoinPerByte
-> Gen
     (CostModels
      -> Prices
      -> OrdExUnits
      -> OrdExUnits
      -> Natural
      -> Natural
      -> Natural
      -> BabbagePParams Identity 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 CoinPerByte
forall a. Arbitrary a => Gen a
arbitrary
      Gen
  (CostModels
   -> Prices
   -> OrdExUnits
   -> OrdExUnits
   -> Natural
   -> Natural
   -> Natural
   -> BabbagePParams Identity era)
-> Gen CostModels
-> Gen
     (Prices
      -> OrdExUnits
      -> OrdExUnits
      -> Natural
      -> Natural
      -> Natural
      -> BabbagePParams Identity era)
forall a b. Gen (a -> b) -> Gen a -> Gen b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Set Language -> Gen CostModels
genValidCostModels [Item (Set Language)
Language
PlutusV1, Item (Set Language)
Language
PlutusV2]
      Gen
  (Prices
   -> OrdExUnits
   -> OrdExUnits
   -> Natural
   -> Natural
   -> Natural
   -> BabbagePParams Identity era)
-> Gen Prices
-> Gen
     (OrdExUnits
      -> OrdExUnits
      -> Natural
      -> Natural
      -> Natural
      -> BabbagePParams Identity 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 Prices
forall a. Arbitrary a => Gen a
arbitrary
      Gen
  (OrdExUnits
   -> OrdExUnits
   -> Natural
   -> Natural
   -> Natural
   -> BabbagePParams Identity era)
-> Gen OrdExUnits
-> Gen
     (OrdExUnits
      -> Natural -> Natural -> Natural -> BabbagePParams Identity 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 OrdExUnits
forall a. Arbitrary a => Gen a
arbitrary
      Gen
  (OrdExUnits
   -> Natural -> Natural -> Natural -> BabbagePParams Identity era)
-> Gen OrdExUnits
-> Gen
     (Natural -> Natural -> Natural -> BabbagePParams Identity 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 OrdExUnits
forall a. Arbitrary a => Gen a
arbitrary
      Gen (Natural -> Natural -> Natural -> BabbagePParams Identity era)
-> Gen Natural
-> Gen (Natural -> Natural -> BabbagePParams Identity 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 Natural
forall a. Arbitrary a => Gen a
arbitrary
      Gen (Natural -> Natural -> BabbagePParams Identity era)
-> Gen Natural -> Gen (Natural -> BabbagePParams Identity 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 Natural
forall a. Arbitrary a => Gen a
arbitrary
      Gen (Natural -> BabbagePParams Identity era)
-> Gen Natural -> Gen (BabbagePParams Identity 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 Natural
forall a. Arbitrary a => Gen a
arbitrary

instance Arbitrary (BabbagePParams StrictMaybe era) where
  arbitrary :: Gen (BabbagePParams StrictMaybe era)
arbitrary =
    StrictMaybe (CompactForm Coin)
-> StrictMaybe (CompactForm Coin)
-> StrictMaybe Word32
-> StrictMaybe Word32
-> StrictMaybe Word16
-> StrictMaybe (CompactForm Coin)
-> StrictMaybe (CompactForm Coin)
-> StrictMaybe EpochInterval
-> StrictMaybe Word16
-> StrictMaybe NonNegativeInterval
-> StrictMaybe UnitInterval
-> StrictMaybe UnitInterval
-> StrictMaybe ProtVer
-> StrictMaybe (CompactForm Coin)
-> StrictMaybe CoinPerByte
-> StrictMaybe CostModels
-> StrictMaybe Prices
-> StrictMaybe OrdExUnits
-> StrictMaybe OrdExUnits
-> StrictMaybe Natural
-> StrictMaybe Natural
-> StrictMaybe Natural
-> BabbagePParams StrictMaybe era
HKD StrictMaybe (CompactForm Coin)
-> HKD StrictMaybe (CompactForm Coin)
-> HKD StrictMaybe Word32
-> HKD StrictMaybe Word32
-> HKD StrictMaybe Word16
-> HKD StrictMaybe (CompactForm Coin)
-> HKD StrictMaybe (CompactForm Coin)
-> HKD StrictMaybe EpochInterval
-> HKD StrictMaybe Word16
-> HKD StrictMaybe NonNegativeInterval
-> HKD StrictMaybe UnitInterval
-> HKD StrictMaybe UnitInterval
-> HKD StrictMaybe ProtVer
-> HKD StrictMaybe (CompactForm Coin)
-> HKD StrictMaybe CoinPerByte
-> HKD StrictMaybe CostModels
-> HKD StrictMaybe Prices
-> HKD StrictMaybe OrdExUnits
-> HKD StrictMaybe OrdExUnits
-> HKD StrictMaybe Natural
-> HKD StrictMaybe Natural
-> HKD StrictMaybe Natural
-> BabbagePParams StrictMaybe era
forall (f :: * -> *) era.
HKD f (CompactForm Coin)
-> HKD f (CompactForm Coin)
-> HKD f Word32
-> HKD f Word32
-> HKD f Word16
-> HKD f (CompactForm Coin)
-> HKD f (CompactForm Coin)
-> HKD f EpochInterval
-> HKD f Word16
-> HKD f NonNegativeInterval
-> HKD f UnitInterval
-> HKD f UnitInterval
-> HKD f ProtVer
-> HKD f (CompactForm Coin)
-> HKD f CoinPerByte
-> HKD f CostModels
-> HKD f Prices
-> HKD f OrdExUnits
-> HKD f OrdExUnits
-> HKD f Natural
-> HKD f Natural
-> HKD f Natural
-> BabbagePParams f era
BabbagePParams
      (StrictMaybe (CompactForm Coin)
 -> StrictMaybe (CompactForm Coin)
 -> StrictMaybe Word32
 -> StrictMaybe Word32
 -> StrictMaybe Word16
 -> StrictMaybe (CompactForm Coin)
 -> StrictMaybe (CompactForm Coin)
 -> StrictMaybe EpochInterval
 -> StrictMaybe Word16
 -> StrictMaybe NonNegativeInterval
 -> StrictMaybe UnitInterval
 -> StrictMaybe UnitInterval
 -> StrictMaybe ProtVer
 -> StrictMaybe (CompactForm Coin)
 -> StrictMaybe CoinPerByte
 -> StrictMaybe CostModels
 -> StrictMaybe Prices
 -> StrictMaybe OrdExUnits
 -> StrictMaybe OrdExUnits
 -> StrictMaybe Natural
 -> StrictMaybe Natural
 -> StrictMaybe Natural
 -> BabbagePParams StrictMaybe era)
-> Gen (StrictMaybe (CompactForm Coin))
-> Gen
     (StrictMaybe (CompactForm Coin)
      -> StrictMaybe Word32
      -> StrictMaybe Word32
      -> StrictMaybe Word16
      -> StrictMaybe (CompactForm Coin)
      -> StrictMaybe (CompactForm Coin)
      -> StrictMaybe EpochInterval
      -> StrictMaybe Word16
      -> StrictMaybe NonNegativeInterval
      -> StrictMaybe UnitInterval
      -> StrictMaybe UnitInterval
      -> StrictMaybe ProtVer
      -> StrictMaybe (CompactForm Coin)
      -> StrictMaybe CoinPerByte
      -> StrictMaybe CostModels
      -> StrictMaybe Prices
      -> StrictMaybe OrdExUnits
      -> StrictMaybe OrdExUnits
      -> StrictMaybe Natural
      -> StrictMaybe Natural
      -> StrictMaybe Natural
      -> BabbagePParams StrictMaybe era)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Gen (StrictMaybe (CompactForm Coin))
forall a. Arbitrary a => Gen a
arbitrary
      Gen
  (StrictMaybe (CompactForm Coin)
   -> StrictMaybe Word32
   -> StrictMaybe Word32
   -> StrictMaybe Word16
   -> StrictMaybe (CompactForm Coin)
   -> StrictMaybe (CompactForm Coin)
   -> StrictMaybe EpochInterval
   -> StrictMaybe Word16
   -> StrictMaybe NonNegativeInterval
   -> StrictMaybe UnitInterval
   -> StrictMaybe UnitInterval
   -> StrictMaybe ProtVer
   -> StrictMaybe (CompactForm Coin)
   -> StrictMaybe CoinPerByte
   -> StrictMaybe CostModels
   -> StrictMaybe Prices
   -> StrictMaybe OrdExUnits
   -> StrictMaybe OrdExUnits
   -> StrictMaybe Natural
   -> StrictMaybe Natural
   -> StrictMaybe Natural
   -> BabbagePParams StrictMaybe era)
-> Gen (StrictMaybe (CompactForm Coin))
-> Gen
     (StrictMaybe Word32
      -> StrictMaybe Word32
      -> StrictMaybe Word16
      -> StrictMaybe (CompactForm Coin)
      -> StrictMaybe (CompactForm Coin)
      -> StrictMaybe EpochInterval
      -> StrictMaybe Word16
      -> StrictMaybe NonNegativeInterval
      -> StrictMaybe UnitInterval
      -> StrictMaybe UnitInterval
      -> StrictMaybe ProtVer
      -> StrictMaybe (CompactForm Coin)
      -> StrictMaybe CoinPerByte
      -> StrictMaybe CostModels
      -> StrictMaybe Prices
      -> StrictMaybe OrdExUnits
      -> StrictMaybe OrdExUnits
      -> StrictMaybe Natural
      -> StrictMaybe Natural
      -> StrictMaybe Natural
      -> BabbagePParams StrictMaybe 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 (CompactForm Coin))
forall a. Arbitrary a => Gen a
arbitrary
      Gen
  (StrictMaybe Word32
   -> StrictMaybe Word32
   -> StrictMaybe Word16
   -> StrictMaybe (CompactForm Coin)
   -> StrictMaybe (CompactForm Coin)
   -> StrictMaybe EpochInterval
   -> StrictMaybe Word16
   -> StrictMaybe NonNegativeInterval
   -> StrictMaybe UnitInterval
   -> StrictMaybe UnitInterval
   -> StrictMaybe ProtVer
   -> StrictMaybe (CompactForm Coin)
   -> StrictMaybe CoinPerByte
   -> StrictMaybe CostModels
   -> StrictMaybe Prices
   -> StrictMaybe OrdExUnits
   -> StrictMaybe OrdExUnits
   -> StrictMaybe Natural
   -> StrictMaybe Natural
   -> StrictMaybe Natural
   -> BabbagePParams StrictMaybe era)
-> Gen (StrictMaybe Word32)
-> Gen
     (StrictMaybe Word32
      -> StrictMaybe Word16
      -> StrictMaybe (CompactForm Coin)
      -> StrictMaybe (CompactForm Coin)
      -> StrictMaybe EpochInterval
      -> StrictMaybe Word16
      -> StrictMaybe NonNegativeInterval
      -> StrictMaybe UnitInterval
      -> StrictMaybe UnitInterval
      -> StrictMaybe ProtVer
      -> StrictMaybe (CompactForm Coin)
      -> StrictMaybe CoinPerByte
      -> StrictMaybe CostModels
      -> StrictMaybe Prices
      -> StrictMaybe OrdExUnits
      -> StrictMaybe OrdExUnits
      -> StrictMaybe Natural
      -> StrictMaybe Natural
      -> StrictMaybe Natural
      -> BabbagePParams StrictMaybe 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 Word32)
forall a. Arbitrary a => Gen a
arbitrary
      Gen
  (StrictMaybe Word32
   -> StrictMaybe Word16
   -> StrictMaybe (CompactForm Coin)
   -> StrictMaybe (CompactForm Coin)
   -> StrictMaybe EpochInterval
   -> StrictMaybe Word16
   -> StrictMaybe NonNegativeInterval
   -> StrictMaybe UnitInterval
   -> StrictMaybe UnitInterval
   -> StrictMaybe ProtVer
   -> StrictMaybe (CompactForm Coin)
   -> StrictMaybe CoinPerByte
   -> StrictMaybe CostModels
   -> StrictMaybe Prices
   -> StrictMaybe OrdExUnits
   -> StrictMaybe OrdExUnits
   -> StrictMaybe Natural
   -> StrictMaybe Natural
   -> StrictMaybe Natural
   -> BabbagePParams StrictMaybe era)
-> Gen (StrictMaybe Word32)
-> Gen
     (StrictMaybe Word16
      -> StrictMaybe (CompactForm Coin)
      -> StrictMaybe (CompactForm Coin)
      -> StrictMaybe EpochInterval
      -> StrictMaybe Word16
      -> StrictMaybe NonNegativeInterval
      -> StrictMaybe UnitInterval
      -> StrictMaybe UnitInterval
      -> StrictMaybe ProtVer
      -> StrictMaybe (CompactForm Coin)
      -> StrictMaybe CoinPerByte
      -> StrictMaybe CostModels
      -> StrictMaybe Prices
      -> StrictMaybe OrdExUnits
      -> StrictMaybe OrdExUnits
      -> StrictMaybe Natural
      -> StrictMaybe Natural
      -> StrictMaybe Natural
      -> BabbagePParams StrictMaybe 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 Word32)
forall a. Arbitrary a => Gen a
arbitrary
      Gen
  (StrictMaybe Word16
   -> StrictMaybe (CompactForm Coin)
   -> StrictMaybe (CompactForm Coin)
   -> StrictMaybe EpochInterval
   -> StrictMaybe Word16
   -> StrictMaybe NonNegativeInterval
   -> StrictMaybe UnitInterval
   -> StrictMaybe UnitInterval
   -> StrictMaybe ProtVer
   -> StrictMaybe (CompactForm Coin)
   -> StrictMaybe CoinPerByte
   -> StrictMaybe CostModels
   -> StrictMaybe Prices
   -> StrictMaybe OrdExUnits
   -> StrictMaybe OrdExUnits
   -> StrictMaybe Natural
   -> StrictMaybe Natural
   -> StrictMaybe Natural
   -> BabbagePParams StrictMaybe era)
-> Gen (StrictMaybe Word16)
-> Gen
     (StrictMaybe (CompactForm Coin)
      -> StrictMaybe (CompactForm Coin)
      -> StrictMaybe EpochInterval
      -> StrictMaybe Word16
      -> StrictMaybe NonNegativeInterval
      -> StrictMaybe UnitInterval
      -> StrictMaybe UnitInterval
      -> StrictMaybe ProtVer
      -> StrictMaybe (CompactForm Coin)
      -> StrictMaybe CoinPerByte
      -> StrictMaybe CostModels
      -> StrictMaybe Prices
      -> StrictMaybe OrdExUnits
      -> StrictMaybe OrdExUnits
      -> StrictMaybe Natural
      -> StrictMaybe Natural
      -> StrictMaybe Natural
      -> BabbagePParams StrictMaybe 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 Word16)
forall a. Arbitrary a => Gen a
arbitrary
      Gen
  (StrictMaybe (CompactForm Coin)
   -> StrictMaybe (CompactForm Coin)
   -> StrictMaybe EpochInterval
   -> StrictMaybe Word16
   -> StrictMaybe NonNegativeInterval
   -> StrictMaybe UnitInterval
   -> StrictMaybe UnitInterval
   -> StrictMaybe ProtVer
   -> StrictMaybe (CompactForm Coin)
   -> StrictMaybe CoinPerByte
   -> StrictMaybe CostModels
   -> StrictMaybe Prices
   -> StrictMaybe OrdExUnits
   -> StrictMaybe OrdExUnits
   -> StrictMaybe Natural
   -> StrictMaybe Natural
   -> StrictMaybe Natural
   -> BabbagePParams StrictMaybe era)
-> Gen (StrictMaybe (CompactForm Coin))
-> Gen
     (StrictMaybe (CompactForm Coin)
      -> StrictMaybe EpochInterval
      -> StrictMaybe Word16
      -> StrictMaybe NonNegativeInterval
      -> StrictMaybe UnitInterval
      -> StrictMaybe UnitInterval
      -> StrictMaybe ProtVer
      -> StrictMaybe (CompactForm Coin)
      -> StrictMaybe CoinPerByte
      -> StrictMaybe CostModels
      -> StrictMaybe Prices
      -> StrictMaybe OrdExUnits
      -> StrictMaybe OrdExUnits
      -> StrictMaybe Natural
      -> StrictMaybe Natural
      -> StrictMaybe Natural
      -> BabbagePParams StrictMaybe 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 (CompactForm Coin))
forall a. Arbitrary a => Gen a
arbitrary
      Gen
  (StrictMaybe (CompactForm Coin)
   -> StrictMaybe EpochInterval
   -> StrictMaybe Word16
   -> StrictMaybe NonNegativeInterval
   -> StrictMaybe UnitInterval
   -> StrictMaybe UnitInterval
   -> StrictMaybe ProtVer
   -> StrictMaybe (CompactForm Coin)
   -> StrictMaybe CoinPerByte
   -> StrictMaybe CostModels
   -> StrictMaybe Prices
   -> StrictMaybe OrdExUnits
   -> StrictMaybe OrdExUnits
   -> StrictMaybe Natural
   -> StrictMaybe Natural
   -> StrictMaybe Natural
   -> BabbagePParams StrictMaybe era)
-> Gen (StrictMaybe (CompactForm Coin))
-> Gen
     (StrictMaybe EpochInterval
      -> StrictMaybe Word16
      -> StrictMaybe NonNegativeInterval
      -> StrictMaybe UnitInterval
      -> StrictMaybe UnitInterval
      -> StrictMaybe ProtVer
      -> StrictMaybe (CompactForm Coin)
      -> StrictMaybe CoinPerByte
      -> StrictMaybe CostModels
      -> StrictMaybe Prices
      -> StrictMaybe OrdExUnits
      -> StrictMaybe OrdExUnits
      -> StrictMaybe Natural
      -> StrictMaybe Natural
      -> StrictMaybe Natural
      -> BabbagePParams StrictMaybe 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 (CompactForm Coin))
forall a. Arbitrary a => Gen a
arbitrary
      Gen
  (StrictMaybe EpochInterval
   -> StrictMaybe Word16
   -> StrictMaybe NonNegativeInterval
   -> StrictMaybe UnitInterval
   -> StrictMaybe UnitInterval
   -> StrictMaybe ProtVer
   -> StrictMaybe (CompactForm Coin)
   -> StrictMaybe CoinPerByte
   -> StrictMaybe CostModels
   -> StrictMaybe Prices
   -> StrictMaybe OrdExUnits
   -> StrictMaybe OrdExUnits
   -> StrictMaybe Natural
   -> StrictMaybe Natural
   -> StrictMaybe Natural
   -> BabbagePParams StrictMaybe era)
-> Gen (StrictMaybe EpochInterval)
-> Gen
     (StrictMaybe Word16
      -> StrictMaybe NonNegativeInterval
      -> StrictMaybe UnitInterval
      -> StrictMaybe UnitInterval
      -> StrictMaybe ProtVer
      -> StrictMaybe (CompactForm Coin)
      -> StrictMaybe CoinPerByte
      -> StrictMaybe CostModels
      -> StrictMaybe Prices
      -> StrictMaybe OrdExUnits
      -> StrictMaybe OrdExUnits
      -> StrictMaybe Natural
      -> StrictMaybe Natural
      -> StrictMaybe Natural
      -> BabbagePParams StrictMaybe 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 EpochInterval)
forall a. Arbitrary a => Gen a
arbitrary
      Gen
  (StrictMaybe Word16
   -> StrictMaybe NonNegativeInterval
   -> StrictMaybe UnitInterval
   -> StrictMaybe UnitInterval
   -> StrictMaybe ProtVer
   -> StrictMaybe (CompactForm Coin)
   -> StrictMaybe CoinPerByte
   -> StrictMaybe CostModels
   -> StrictMaybe Prices
   -> StrictMaybe OrdExUnits
   -> StrictMaybe OrdExUnits
   -> StrictMaybe Natural
   -> StrictMaybe Natural
   -> StrictMaybe Natural
   -> BabbagePParams StrictMaybe era)
-> Gen (StrictMaybe Word16)
-> Gen
     (StrictMaybe NonNegativeInterval
      -> StrictMaybe UnitInterval
      -> StrictMaybe UnitInterval
      -> StrictMaybe ProtVer
      -> StrictMaybe (CompactForm Coin)
      -> StrictMaybe CoinPerByte
      -> StrictMaybe CostModels
      -> StrictMaybe Prices
      -> StrictMaybe OrdExUnits
      -> StrictMaybe OrdExUnits
      -> StrictMaybe Natural
      -> StrictMaybe Natural
      -> StrictMaybe Natural
      -> BabbagePParams StrictMaybe 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 Word16)
forall a. Arbitrary a => Gen a
arbitrary
      Gen
  (StrictMaybe NonNegativeInterval
   -> StrictMaybe UnitInterval
   -> StrictMaybe UnitInterval
   -> StrictMaybe ProtVer
   -> StrictMaybe (CompactForm Coin)
   -> StrictMaybe CoinPerByte
   -> StrictMaybe CostModels
   -> StrictMaybe Prices
   -> StrictMaybe OrdExUnits
   -> StrictMaybe OrdExUnits
   -> StrictMaybe Natural
   -> StrictMaybe Natural
   -> StrictMaybe Natural
   -> BabbagePParams StrictMaybe era)
-> Gen (StrictMaybe NonNegativeInterval)
-> Gen
     (StrictMaybe UnitInterval
      -> StrictMaybe UnitInterval
      -> StrictMaybe ProtVer
      -> StrictMaybe (CompactForm Coin)
      -> StrictMaybe CoinPerByte
      -> StrictMaybe CostModels
      -> StrictMaybe Prices
      -> StrictMaybe OrdExUnits
      -> StrictMaybe OrdExUnits
      -> StrictMaybe Natural
      -> StrictMaybe Natural
      -> StrictMaybe Natural
      -> BabbagePParams StrictMaybe 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 NonNegativeInterval)
forall a. Arbitrary a => Gen a
arbitrary
      Gen
  (StrictMaybe UnitInterval
   -> StrictMaybe UnitInterval
   -> StrictMaybe ProtVer
   -> StrictMaybe (CompactForm Coin)
   -> StrictMaybe CoinPerByte
   -> StrictMaybe CostModels
   -> StrictMaybe Prices
   -> StrictMaybe OrdExUnits
   -> StrictMaybe OrdExUnits
   -> StrictMaybe Natural
   -> StrictMaybe Natural
   -> StrictMaybe Natural
   -> BabbagePParams StrictMaybe era)
-> Gen (StrictMaybe UnitInterval)
-> Gen
     (StrictMaybe UnitInterval
      -> StrictMaybe ProtVer
      -> StrictMaybe (CompactForm Coin)
      -> StrictMaybe CoinPerByte
      -> StrictMaybe CostModels
      -> StrictMaybe Prices
      -> StrictMaybe OrdExUnits
      -> StrictMaybe OrdExUnits
      -> StrictMaybe Natural
      -> StrictMaybe Natural
      -> StrictMaybe Natural
      -> BabbagePParams StrictMaybe 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 UnitInterval)
forall a. Arbitrary a => Gen a
arbitrary
      Gen
  (StrictMaybe UnitInterval
   -> StrictMaybe ProtVer
   -> StrictMaybe (CompactForm Coin)
   -> StrictMaybe CoinPerByte
   -> StrictMaybe CostModels
   -> StrictMaybe Prices
   -> StrictMaybe OrdExUnits
   -> StrictMaybe OrdExUnits
   -> StrictMaybe Natural
   -> StrictMaybe Natural
   -> StrictMaybe Natural
   -> BabbagePParams StrictMaybe era)
-> Gen (StrictMaybe UnitInterval)
-> Gen
     (StrictMaybe ProtVer
      -> StrictMaybe (CompactForm Coin)
      -> StrictMaybe CoinPerByte
      -> StrictMaybe CostModels
      -> StrictMaybe Prices
      -> StrictMaybe OrdExUnits
      -> StrictMaybe OrdExUnits
      -> StrictMaybe Natural
      -> StrictMaybe Natural
      -> StrictMaybe Natural
      -> BabbagePParams StrictMaybe 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 UnitInterval)
forall a. Arbitrary a => Gen a
arbitrary
      Gen
  (StrictMaybe ProtVer
   -> StrictMaybe (CompactForm Coin)
   -> StrictMaybe CoinPerByte
   -> StrictMaybe CostModels
   -> StrictMaybe Prices
   -> StrictMaybe OrdExUnits
   -> StrictMaybe OrdExUnits
   -> StrictMaybe Natural
   -> StrictMaybe Natural
   -> StrictMaybe Natural
   -> BabbagePParams StrictMaybe era)
-> Gen (StrictMaybe ProtVer)
-> Gen
     (StrictMaybe (CompactForm Coin)
      -> StrictMaybe CoinPerByte
      -> StrictMaybe CostModels
      -> StrictMaybe Prices
      -> StrictMaybe OrdExUnits
      -> StrictMaybe OrdExUnits
      -> StrictMaybe Natural
      -> StrictMaybe Natural
      -> StrictMaybe Natural
      -> BabbagePParams StrictMaybe 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 ProtVer)
forall a. Arbitrary a => Gen a
arbitrary
      Gen
  (StrictMaybe (CompactForm Coin)
   -> StrictMaybe CoinPerByte
   -> StrictMaybe CostModels
   -> StrictMaybe Prices
   -> StrictMaybe OrdExUnits
   -> StrictMaybe OrdExUnits
   -> StrictMaybe Natural
   -> StrictMaybe Natural
   -> StrictMaybe Natural
   -> BabbagePParams StrictMaybe era)
-> Gen (StrictMaybe (CompactForm Coin))
-> Gen
     (StrictMaybe CoinPerByte
      -> StrictMaybe CostModels
      -> StrictMaybe Prices
      -> StrictMaybe OrdExUnits
      -> StrictMaybe OrdExUnits
      -> StrictMaybe Natural
      -> StrictMaybe Natural
      -> StrictMaybe Natural
      -> BabbagePParams StrictMaybe 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 (CompactForm Coin))
forall a. Arbitrary a => Gen a
arbitrary
      Gen
  (StrictMaybe CoinPerByte
   -> StrictMaybe CostModels
   -> StrictMaybe Prices
   -> StrictMaybe OrdExUnits
   -> StrictMaybe OrdExUnits
   -> StrictMaybe Natural
   -> StrictMaybe Natural
   -> StrictMaybe Natural
   -> BabbagePParams StrictMaybe era)
-> Gen (StrictMaybe CoinPerByte)
-> Gen
     (StrictMaybe CostModels
      -> StrictMaybe Prices
      -> StrictMaybe OrdExUnits
      -> StrictMaybe OrdExUnits
      -> StrictMaybe Natural
      -> StrictMaybe Natural
      -> StrictMaybe Natural
      -> BabbagePParams StrictMaybe 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 CoinPerByte)
forall a. Arbitrary a => Gen a
arbitrary
      Gen
  (StrictMaybe CostModels
   -> StrictMaybe Prices
   -> StrictMaybe OrdExUnits
   -> StrictMaybe OrdExUnits
   -> StrictMaybe Natural
   -> StrictMaybe Natural
   -> StrictMaybe Natural
   -> BabbagePParams StrictMaybe era)
-> Gen (StrictMaybe CostModels)
-> Gen
     (StrictMaybe Prices
      -> StrictMaybe OrdExUnits
      -> StrictMaybe OrdExUnits
      -> StrictMaybe Natural
      -> StrictMaybe Natural
      -> StrictMaybe Natural
      -> BabbagePParams StrictMaybe 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 CostModels)] -> Gen (StrictMaybe CostModels)
forall a. HasCallStack => [Gen a] -> Gen a
oneof [StrictMaybe CostModels -> Gen (StrictMaybe CostModels)
forall a. a -> Gen a
forall (f :: * -> *) a. Applicative f => a -> f a
pure StrictMaybe CostModels
forall a. StrictMaybe a
SNothing, CostModels -> StrictMaybe CostModels
forall a. a -> StrictMaybe a
SJust (CostModels -> StrictMaybe CostModels)
-> Gen CostModels -> Gen (StrictMaybe CostModels)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Set Language -> Gen CostModels
genValidCostModels [Item (Set Language)
Language
PlutusV1, Item (Set Language)
Language
PlutusV2]]
      Gen
  (StrictMaybe Prices
   -> StrictMaybe OrdExUnits
   -> StrictMaybe OrdExUnits
   -> StrictMaybe Natural
   -> StrictMaybe Natural
   -> StrictMaybe Natural
   -> BabbagePParams StrictMaybe era)
-> Gen (StrictMaybe Prices)
-> Gen
     (StrictMaybe OrdExUnits
      -> StrictMaybe OrdExUnits
      -> StrictMaybe Natural
      -> StrictMaybe Natural
      -> StrictMaybe Natural
      -> BabbagePParams StrictMaybe 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 Prices)
forall a. Arbitrary a => Gen a
arbitrary
      Gen
  (StrictMaybe OrdExUnits
   -> StrictMaybe OrdExUnits
   -> StrictMaybe Natural
   -> StrictMaybe Natural
   -> StrictMaybe Natural
   -> BabbagePParams StrictMaybe era)
-> Gen (StrictMaybe OrdExUnits)
-> Gen
     (StrictMaybe OrdExUnits
      -> StrictMaybe Natural
      -> StrictMaybe Natural
      -> StrictMaybe Natural
      -> BabbagePParams StrictMaybe 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 OrdExUnits)
forall a. Arbitrary a => Gen a
arbitrary
      Gen
  (StrictMaybe OrdExUnits
   -> StrictMaybe Natural
   -> StrictMaybe Natural
   -> StrictMaybe Natural
   -> BabbagePParams StrictMaybe era)
-> Gen (StrictMaybe OrdExUnits)
-> Gen
     (StrictMaybe Natural
      -> StrictMaybe Natural
      -> StrictMaybe Natural
      -> BabbagePParams StrictMaybe 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 OrdExUnits)
forall a. Arbitrary a => Gen a
arbitrary
      Gen
  (StrictMaybe Natural
   -> StrictMaybe Natural
   -> StrictMaybe Natural
   -> BabbagePParams StrictMaybe era)
-> Gen (StrictMaybe Natural)
-> Gen
     (StrictMaybe Natural
      -> StrictMaybe Natural -> BabbagePParams StrictMaybe 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 Natural)
forall a. Arbitrary a => Gen a
arbitrary
      Gen
  (StrictMaybe Natural
   -> StrictMaybe Natural -> BabbagePParams StrictMaybe era)
-> Gen (StrictMaybe Natural)
-> Gen (StrictMaybe Natural -> BabbagePParams StrictMaybe 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 Natural)
forall a. Arbitrary a => Gen a
arbitrary
      Gen (StrictMaybe Natural -> BabbagePParams StrictMaybe era)
-> Gen (StrictMaybe Natural)
-> Gen (BabbagePParams StrictMaybe 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 Natural)
forall a. Arbitrary a => Gen a
arbitrary

instance Arbitrary TxOutSource where
  arbitrary :: Gen TxOutSource
arbitrary = Gen TxOutSource
forall a. (GArbitrary UnsizedOpts a, GUniformWeight a) => Gen a
genericArbitraryU

instance
  ( Era era
  , Arbitrary (PlutusPurpose AsIx era)
  ) =>
  Arbitrary (BabbageContextError era)
  where
  arbitrary :: Gen (BabbageContextError era)
arbitrary = Gen (BabbageContextError 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 (BabbageUtxoPredFailure era)
  where
  arbitrary :: Gen (BabbageUtxoPredFailure era)
arbitrary = Gen (BabbageUtxoPredFailure 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 (BabbageUtxowPredFailure era)
  where
  arbitrary :: Gen (BabbageUtxowPredFailure era)
arbitrary = Gen (BabbageUtxowPredFailure era)
forall a. (GArbitrary UnsizedOpts a, GUniformWeight a) => Gen a
genericArbitraryU

instance
  ( EraTxOut era
  , Arbitrary (Value era)
  , Arbitrary (Script era)
  ) =>
  Arbitrary (BabbageTxOut era)
  where
  arbitrary :: Gen (BabbageTxOut era)
arbitrary =
    Addr
-> Value era
-> Datum era
-> StrictMaybe (Script era)
-> BabbageTxOut era
forall era.
(Era era, Val (Value era), HasCallStack) =>
Addr
-> Value era
-> Datum era
-> StrictMaybe (Script era)
-> BabbageTxOut era
BabbageTxOut
      (Addr
 -> Value era
 -> Datum era
 -> StrictMaybe (Script era)
 -> BabbageTxOut era)
-> Gen Addr
-> Gen
     (Value era
      -> Datum era -> StrictMaybe (Script era) -> BabbageTxOut era)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Gen Addr
forall a. Arbitrary a => Gen a
arbitrary
      Gen
  (Value era
   -> Datum era -> StrictMaybe (Script era) -> BabbageTxOut era)
-> Gen (Value era)
-> Gen (Datum era -> StrictMaybe (Script era) -> BabbageTxOut era)
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 (Value era) -> Gen (Value era)
forall a. (Int -> Int) -> Gen a -> Gen a
scale (Int -> Int -> Int
forall a. Integral a => a -> a -> a
`div` Int
15) Gen (Value era)
forall a. Arbitrary a => Gen a
arbitrary
      Gen (Datum era -> StrictMaybe (Script era) -> BabbageTxOut era)
-> Gen (Datum era)
-> Gen (StrictMaybe (Script era) -> BabbageTxOut 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 (Datum era)
forall a. Arbitrary a => Gen a
arbitrary
      Gen (StrictMaybe (Script era) -> BabbageTxOut era)
-> Gen (StrictMaybe (Script era)) -> Gen (BabbageTxOut 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 (Script era))
forall a. Arbitrary a => Gen a
arbitrary

instance Arbitrary (TxBody TopTx BabbageEra) where
  arbitrary :: Gen (TxBody TopTx BabbageEra)
arbitrary =
    Set TxIn
-> Set TxIn
-> Set TxIn
-> StrictSeq (Sized (TxOut BabbageEra))
-> StrictMaybe (Sized (TxOut BabbageEra))
-> StrictMaybe Coin
-> StrictSeq (TxCert BabbageEra)
-> Withdrawals
-> Coin
-> ValidityInterval
-> StrictMaybe (Update BabbageEra)
-> Set (KeyHash Guard)
-> MultiAsset
-> StrictMaybe ScriptIntegrityHash
-> StrictMaybe TxAuxDataHash
-> StrictMaybe Network
-> TxBody TopTx BabbageEra
Set TxIn
-> Set TxIn
-> Set TxIn
-> StrictSeq (Sized (BabbageTxOut BabbageEra))
-> StrictMaybe (Sized (BabbageTxOut BabbageEra))
-> StrictMaybe Coin
-> StrictSeq (ShelleyTxCert BabbageEra)
-> Withdrawals
-> Coin
-> ValidityInterval
-> StrictMaybe (Update BabbageEra)
-> Set (KeyHash Guard)
-> MultiAsset
-> StrictMaybe ScriptIntegrityHash
-> StrictMaybe TxAuxDataHash
-> StrictMaybe Network
-> TxBody TopTx BabbageEra
BabbageTxBody
      (Set TxIn
 -> Set TxIn
 -> Set TxIn
 -> StrictSeq (Sized (BabbageTxOut BabbageEra))
 -> StrictMaybe (Sized (BabbageTxOut BabbageEra))
 -> StrictMaybe Coin
 -> StrictSeq (ShelleyTxCert BabbageEra)
 -> Withdrawals
 -> Coin
 -> ValidityInterval
 -> StrictMaybe (Update BabbageEra)
 -> Set (KeyHash Guard)
 -> MultiAsset
 -> StrictMaybe ScriptIntegrityHash
 -> StrictMaybe TxAuxDataHash
 -> StrictMaybe Network
 -> TxBody TopTx BabbageEra)
-> Gen (Set TxIn)
-> Gen
     (Set TxIn
      -> Set TxIn
      -> StrictSeq (Sized (BabbageTxOut BabbageEra))
      -> StrictMaybe (Sized (BabbageTxOut BabbageEra))
      -> StrictMaybe Coin
      -> StrictSeq (ShelleyTxCert BabbageEra)
      -> Withdrawals
      -> Coin
      -> ValidityInterval
      -> StrictMaybe (Update BabbageEra)
      -> Set (KeyHash Guard)
      -> MultiAsset
      -> StrictMaybe ScriptIntegrityHash
      -> StrictMaybe TxAuxDataHash
      -> StrictMaybe Network
      -> TxBody TopTx BabbageEra)
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 BabbageEra))
   -> StrictMaybe (Sized (BabbageTxOut BabbageEra))
   -> StrictMaybe Coin
   -> StrictSeq (ShelleyTxCert BabbageEra)
   -> Withdrawals
   -> Coin
   -> ValidityInterval
   -> StrictMaybe (Update BabbageEra)
   -> Set (KeyHash Guard)
   -> MultiAsset
   -> StrictMaybe ScriptIntegrityHash
   -> StrictMaybe TxAuxDataHash
   -> StrictMaybe Network
   -> TxBody TopTx BabbageEra)
-> Gen (Set TxIn)
-> Gen
     (Set TxIn
      -> StrictSeq (Sized (BabbageTxOut BabbageEra))
      -> StrictMaybe (Sized (BabbageTxOut BabbageEra))
      -> StrictMaybe Coin
      -> StrictSeq (ShelleyTxCert BabbageEra)
      -> Withdrawals
      -> Coin
      -> ValidityInterval
      -> StrictMaybe (Update BabbageEra)
      -> Set (KeyHash Guard)
      -> MultiAsset
      -> StrictMaybe ScriptIntegrityHash
      -> StrictMaybe TxAuxDataHash
      -> StrictMaybe Network
      -> TxBody TopTx BabbageEra)
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 BabbageEra))
   -> StrictMaybe (Sized (BabbageTxOut BabbageEra))
   -> StrictMaybe Coin
   -> StrictSeq (ShelleyTxCert BabbageEra)
   -> Withdrawals
   -> Coin
   -> ValidityInterval
   -> StrictMaybe (Update BabbageEra)
   -> Set (KeyHash Guard)
   -> MultiAsset
   -> StrictMaybe ScriptIntegrityHash
   -> StrictMaybe TxAuxDataHash
   -> StrictMaybe Network
   -> TxBody TopTx BabbageEra)
-> Gen (Set TxIn)
-> Gen
     (StrictSeq (Sized (BabbageTxOut BabbageEra))
      -> StrictMaybe (Sized (BabbageTxOut BabbageEra))
      -> StrictMaybe Coin
      -> StrictSeq (ShelleyTxCert BabbageEra)
      -> Withdrawals
      -> Coin
      -> ValidityInterval
      -> StrictMaybe (Update BabbageEra)
      -> Set (KeyHash Guard)
      -> MultiAsset
      -> StrictMaybe ScriptIntegrityHash
      -> StrictMaybe TxAuxDataHash
      -> StrictMaybe Network
      -> TxBody TopTx BabbageEra)
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 BabbageEra))
   -> StrictMaybe (Sized (BabbageTxOut BabbageEra))
   -> StrictMaybe Coin
   -> StrictSeq (ShelleyTxCert BabbageEra)
   -> Withdrawals
   -> Coin
   -> ValidityInterval
   -> StrictMaybe (Update BabbageEra)
   -> Set (KeyHash Guard)
   -> MultiAsset
   -> StrictMaybe ScriptIntegrityHash
   -> StrictMaybe TxAuxDataHash
   -> StrictMaybe Network
   -> TxBody TopTx BabbageEra)
-> Gen (StrictSeq (Sized (BabbageTxOut BabbageEra)))
-> Gen
     (StrictMaybe (Sized (BabbageTxOut BabbageEra))
      -> StrictMaybe Coin
      -> StrictSeq (ShelleyTxCert BabbageEra)
      -> Withdrawals
      -> Coin
      -> ValidityInterval
      -> StrictMaybe (Update BabbageEra)
      -> Set (KeyHash Guard)
      -> MultiAsset
      -> StrictMaybe ScriptIntegrityHash
      -> StrictMaybe TxAuxDataHash
      -> StrictMaybe Network
      -> TxBody TopTx BabbageEra)
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 BabbageEra)))
forall a. Arbitrary a => Gen a
arbitrary
      Gen
  (StrictMaybe (Sized (BabbageTxOut BabbageEra))
   -> StrictMaybe Coin
   -> StrictSeq (ShelleyTxCert BabbageEra)
   -> Withdrawals
   -> Coin
   -> ValidityInterval
   -> StrictMaybe (Update BabbageEra)
   -> Set (KeyHash Guard)
   -> MultiAsset
   -> StrictMaybe ScriptIntegrityHash
   -> StrictMaybe TxAuxDataHash
   -> StrictMaybe Network
   -> TxBody TopTx BabbageEra)
-> Gen (StrictMaybe (Sized (BabbageTxOut BabbageEra)))
-> Gen
     (StrictMaybe Coin
      -> StrictSeq (ShelleyTxCert BabbageEra)
      -> Withdrawals
      -> Coin
      -> ValidityInterval
      -> StrictMaybe (Update BabbageEra)
      -> Set (KeyHash Guard)
      -> MultiAsset
      -> StrictMaybe ScriptIntegrityHash
      -> StrictMaybe TxAuxDataHash
      -> StrictMaybe Network
      -> TxBody TopTx BabbageEra)
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 BabbageEra)))
forall a. Arbitrary a => Gen a
arbitrary
      Gen
  (StrictMaybe Coin
   -> StrictSeq (ShelleyTxCert BabbageEra)
   -> Withdrawals
   -> Coin
   -> ValidityInterval
   -> StrictMaybe (Update BabbageEra)
   -> Set (KeyHash Guard)
   -> MultiAsset
   -> StrictMaybe ScriptIntegrityHash
   -> StrictMaybe TxAuxDataHash
   -> StrictMaybe Network
   -> TxBody TopTx BabbageEra)
-> Gen (StrictMaybe Coin)
-> Gen
     (StrictSeq (ShelleyTxCert BabbageEra)
      -> Withdrawals
      -> Coin
      -> ValidityInterval
      -> StrictMaybe (Update BabbageEra)
      -> Set (KeyHash Guard)
      -> MultiAsset
      -> StrictMaybe ScriptIntegrityHash
      -> StrictMaybe TxAuxDataHash
      -> StrictMaybe Network
      -> TxBody TopTx BabbageEra)
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
  (StrictSeq (ShelleyTxCert BabbageEra)
   -> Withdrawals
   -> Coin
   -> ValidityInterval
   -> StrictMaybe (Update BabbageEra)
   -> Set (KeyHash Guard)
   -> MultiAsset
   -> StrictMaybe ScriptIntegrityHash
   -> StrictMaybe TxAuxDataHash
   -> StrictMaybe Network
   -> TxBody TopTx BabbageEra)
-> Gen (StrictSeq (ShelleyTxCert BabbageEra))
-> Gen
     (Withdrawals
      -> Coin
      -> ValidityInterval
      -> StrictMaybe (Update BabbageEra)
      -> Set (KeyHash Guard)
      -> MultiAsset
      -> StrictMaybe ScriptIntegrityHash
      -> StrictMaybe TxAuxDataHash
      -> StrictMaybe Network
      -> TxBody TopTx BabbageEra)
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 (ShelleyTxCert BabbageEra))
forall a. Arbitrary a => Gen a
arbitrary
      Gen
  (Withdrawals
   -> Coin
   -> ValidityInterval
   -> StrictMaybe (Update BabbageEra)
   -> Set (KeyHash Guard)
   -> MultiAsset
   -> StrictMaybe ScriptIntegrityHash
   -> StrictMaybe TxAuxDataHash
   -> StrictMaybe Network
   -> TxBody TopTx BabbageEra)
-> Gen Withdrawals
-> Gen
     (Coin
      -> ValidityInterval
      -> StrictMaybe (Update BabbageEra)
      -> Set (KeyHash Guard)
      -> MultiAsset
      -> StrictMaybe ScriptIntegrityHash
      -> StrictMaybe TxAuxDataHash
      -> StrictMaybe Network
      -> TxBody TopTx BabbageEra)
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
   -> StrictMaybe (Update BabbageEra)
   -> Set (KeyHash Guard)
   -> MultiAsset
   -> StrictMaybe ScriptIntegrityHash
   -> StrictMaybe TxAuxDataHash
   -> StrictMaybe Network
   -> TxBody TopTx BabbageEra)
-> Gen Coin
-> Gen
     (ValidityInterval
      -> StrictMaybe (Update BabbageEra)
      -> Set (KeyHash Guard)
      -> MultiAsset
      -> StrictMaybe ScriptIntegrityHash
      -> StrictMaybe TxAuxDataHash
      -> StrictMaybe Network
      -> TxBody TopTx BabbageEra)
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
   -> StrictMaybe (Update BabbageEra)
   -> Set (KeyHash Guard)
   -> MultiAsset
   -> StrictMaybe ScriptIntegrityHash
   -> StrictMaybe TxAuxDataHash
   -> StrictMaybe Network
   -> TxBody TopTx BabbageEra)
-> Gen ValidityInterval
-> Gen
     (StrictMaybe (Update BabbageEra)
      -> Set (KeyHash Guard)
      -> MultiAsset
      -> StrictMaybe ScriptIntegrityHash
      -> StrictMaybe TxAuxDataHash
      -> StrictMaybe Network
      -> TxBody TopTx BabbageEra)
forall a b. Gen (a -> b) -> Gen a -> Gen b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Gen ValidityInterval
forall a. Arbitrary a => Gen a
arbitrary
      Gen
  (StrictMaybe (Update BabbageEra)
   -> Set (KeyHash Guard)
   -> MultiAsset
   -> StrictMaybe ScriptIntegrityHash
   -> StrictMaybe TxAuxDataHash
   -> StrictMaybe Network
   -> TxBody TopTx BabbageEra)
-> Gen (StrictMaybe (Update BabbageEra))
-> Gen
     (Set (KeyHash Guard)
      -> MultiAsset
      -> StrictMaybe ScriptIntegrityHash
      -> StrictMaybe TxAuxDataHash
      -> StrictMaybe Network
      -> TxBody TopTx BabbageEra)
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 (StrictMaybe (Update BabbageEra))
-> Gen (StrictMaybe (Update BabbageEra))
forall a. (Int -> Int) -> Gen a -> Gen a
scale (Int -> Int -> Int
forall a. Integral a => a -> a -> a
`div` Int
15) Gen (StrictMaybe (Update BabbageEra))
forall a. Arbitrary a => Gen a
arbitrary
      Gen
  (Set (KeyHash Guard)
   -> MultiAsset
   -> StrictMaybe ScriptIntegrityHash
   -> StrictMaybe TxAuxDataHash
   -> StrictMaybe Network
   -> TxBody TopTx BabbageEra)
-> Gen (Set (KeyHash Guard))
-> Gen
     (MultiAsset
      -> StrictMaybe ScriptIntegrityHash
      -> StrictMaybe TxAuxDataHash
      -> StrictMaybe Network
      -> TxBody TopTx BabbageEra)
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 Guard))
forall a. Arbitrary a => Gen a
arbitrary
      Gen
  (MultiAsset
   -> StrictMaybe ScriptIntegrityHash
   -> StrictMaybe TxAuxDataHash
   -> StrictMaybe Network
   -> TxBody TopTx BabbageEra)
-> Gen MultiAsset
-> Gen
     (StrictMaybe ScriptIntegrityHash
      -> StrictMaybe TxAuxDataHash
      -> StrictMaybe Network
      -> TxBody TopTx BabbageEra)
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
   -> TxBody TopTx BabbageEra)
-> Gen (StrictMaybe ScriptIntegrityHash)
-> Gen
     (StrictMaybe TxAuxDataHash
      -> StrictMaybe Network -> TxBody TopTx BabbageEra)
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 -> TxBody TopTx BabbageEra)
-> Gen (StrictMaybe TxAuxDataHash)
-> Gen (StrictMaybe Network -> TxBody TopTx BabbageEra)
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 -> TxBody TopTx BabbageEra)
-> Gen (StrictMaybe Network) -> Gen (TxBody TopTx BabbageEra)
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

deriving newtype instance Arbitrary (TransitionConfig BabbageEra)

deriving newtype instance Arbitrary (Tx TopTx BabbageEra)