{-# LANGUAGE BangPatterns #-}
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedLists #-}
{-# LANGUAGE PatternSynonyms #-}
{-# LANGUAGE RankNTypes #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE TypeApplications #-}
{-# OPTIONS_GHC -Wno-orphans #-}
module Test.Cardano.Ledger.Generic.Instances () where
import Cardano.Ledger.Address (Addr (..))
import Cardano.Ledger.Allegra (AllegraEra)
import Cardano.Ledger.Alonzo (AlonzoEra)
import Cardano.Ledger.Alonzo.Core (
AllegraEraTxBody (..),
AlonzoEraPParams,
AlonzoEraScript,
AlonzoEraTx (..),
AlonzoEraTxWits (..),
EraPParams (..),
EraScript (..),
EraTxBody (..),
EraTxOut (..),
EraTxWits (..),
PParams,
PoolCert (..),
ScriptHash,
ValidityInterval (..),
emptyPParams,
eraProtVerLow,
ppCollateralPercentageL,
ppCostModelsL,
ppEMaxL,
ppKeyDepositL,
ppMaxBlockExUnitsL,
ppMaxTxExUnitsL,
ppMaxTxSizeL,
ppMaxValSizeL,
ppMinFeeAL,
ppMinFeeBL,
ppPoolDepositL,
)
import Cardano.Ledger.Alonzo.Scripts (isPlutusScript)
import Cardano.Ledger.Alonzo.Tx (IsValid (..))
import Cardano.Ledger.Babbage (BabbageEra)
import Cardano.Ledger.BaseTypes (
EpochInterval (..),
ProtVer (..),
SlotNo (..),
StrictMaybe (..),
mkTxIxPartial,
)
import Cardano.Ledger.Coin (Coin (..))
import Cardano.Ledger.Conway (ConwayEra)
import Cardano.Ledger.Conway.Core (
AlonzoEraTxBody (..),
BabbageEraTxBody (..),
EraTx (..),
ScriptIntegrityHash,
ShelleyEraTxBody (..),
ppMaxCollateralInputsL,
)
import Cardano.Ledger.Credential (Credential (..))
import Cardano.Ledger.Mary (MaryEra)
import Cardano.Ledger.Plutus (ExUnits (..), Language (..))
import Cardano.Ledger.PoolParams (PoolParams (..))
import Cardano.Ledger.Shelley (ShelleyEra)
import Cardano.Ledger.Shelley.Scripts (pattern RequireAllOf, pattern RequireAnyOf)
import Cardano.Ledger.Shelley.TxCert (ShelleyDelegCert (..), ShelleyTxCert (..))
import Cardano.Ledger.Val (Val (..))
import Control.Monad.RWS.Strict (gets)
import Control.Monad.Trans (MonadTrans (..))
import qualified Data.Foldable as F
import Data.Map.Strict (Map)
import qualified Data.Map.Strict as Map
import Data.Ratio ((%))
import Data.TreeDiff (ToExpr (..))
import Lens.Micro (Lens', (&), (.~), (<>~), (^.))
import qualified Lens.Micro as L
import Test.Cardano.Ledger.Alonzo.Era (AlonzoEraTest, EraTest (..))
import Test.Cardano.Ledger.Alonzo.Scripts (alwaysFails, alwaysSucceeds)
import Test.Cardano.Ledger.Alonzo.Tools (EraModel (..))
import Test.Cardano.Ledger.Common (Arbitrary (..), Gen, choose, chooseInt, elements)
import Test.Cardano.Ledger.Generic.ApplyTx (applyTxBody, applyTxFail, applyTxSimple, epochBoundary)
import Test.Cardano.Ledger.Generic.GenState (
EraGenericGen (..),
GenEnv (..),
GenRS,
GenSize (..),
GenState (..),
)
import Test.Cardano.Ledger.Generic.ModelState (Model, ModelNewEpochState (..))
import Test.Cardano.Ledger.Generic.Proof (Reflect)
import Test.Cardano.Ledger.Generic.TxGen (
alonzoMkRedeemers,
alonzoMkRedeemersFromTags,
alonzoNewScriptIntegrityHash,
mkAlonzoPlutusPurposePointer,
mkConwayPlutusPurposePointer,
)
import Test.Cardano.Ledger.Shelley.Generator.Core (genNatural)
import Test.Cardano.Ledger.Shelley.Utils (epochFromSlotNo)
shelleyGenPParams :: EraPParams era => Gen (PParams era)
shelleyGenPParams :: forall era. EraPParams era => Gen (PParams era)
shelleyGenPParams = do
Coin
minfeeA <- Integer -> Coin
Coin (Integer -> Coin) -> Gen Integer -> Gen Coin
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Integer, Integer) -> Gen Integer
forall a. Random a => (a, a) -> Gen a
choose (Integer
0, Integer
1000)
Coin
minfeeB <- Integer -> Coin
Coin (Integer -> Coin) -> Gen Integer -> Gen Coin
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Integer, Integer) -> Gen Integer
forall a. Random a => (a, a) -> Gen a
choose (Integer
0, Integer
10000)
PParams era -> Gen (PParams era)
forall a. a -> Gen a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (PParams era -> Gen (PParams era))
-> PParams era -> Gen (PParams era)
forall a b. (a -> b) -> a -> b
$
PParams era
forall era. EraPParams era => PParams era
emptyPParams
PParams era -> (PParams era -> PParams era) -> PParams era
forall a b. a -> (a -> b) -> b
& (Coin -> Identity Coin) -> PParams era -> Identity (PParams era)
forall era. EraPParams era => Lens' (PParams era) Coin
Lens' (PParams era) Coin
ppMinFeeAL ((Coin -> Identity Coin) -> PParams era -> Identity (PParams era))
-> Coin -> PParams era -> PParams era
forall s t a b. ASetter s t a b -> b -> s -> t
.~ Coin
minfeeA
PParams era -> (PParams era -> PParams era) -> PParams era
forall a b. a -> (a -> b) -> b
& (Coin -> Identity Coin) -> PParams era -> Identity (PParams era)
forall era. EraPParams era => Lens' (PParams era) Coin
Lens' (PParams era) Coin
ppMinFeeBL ((Coin -> Identity Coin) -> PParams era -> Identity (PParams era))
-> Coin -> PParams era -> PParams era
forall s t a b. ASetter s t a b -> b -> s -> t
.~ Coin
minfeeB
PParams era -> (PParams era -> PParams era) -> PParams era
forall a b. a -> (a -> b) -> b
& (Word32 -> Identity Word32)
-> PParams era -> Identity (PParams era)
forall era. EraPParams era => Lens' (PParams era) Word32
Lens' (PParams era) Word32
ppMaxTxSizeL ((Word32 -> Identity Word32)
-> PParams era -> Identity (PParams era))
-> Word32 -> PParams era -> PParams era
forall s t a b. ASetter s t a b -> b -> s -> t
.~ Int -> Word32
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int
forall a. Bounded a => a
maxBound :: Int)
PParams era -> (PParams era -> PParams era) -> PParams era
forall a b. a -> (a -> b) -> b
& (ProtVer -> Identity ProtVer)
-> PParams era -> Identity (PParams era)
forall era. EraPParams era => Lens' (PParams era) ProtVer
Lens' (PParams era) ProtVer
ppProtocolVersionL ((ProtVer -> Identity ProtVer)
-> PParams era -> Identity (PParams era))
-> ProtVer -> PParams era -> PParams era
forall s t a b. ASetter s t a b -> b -> s -> t
.~ Version -> Natural -> ProtVer
ProtVer (forall era. Era era => Version
eraProtVerLow @ShelleyEra) Natural
0
PParams era -> (PParams era -> PParams era) -> PParams era
forall a b. a -> (a -> b) -> b
& (Coin -> Identity Coin) -> PParams era -> Identity (PParams era)
forall era. EraPParams era => Lens' (PParams era) Coin
Lens' (PParams era) Coin
ppPoolDepositL ((Coin -> Identity Coin) -> PParams era -> Identity (PParams era))
-> Coin -> PParams era -> PParams era
forall s t a b. ASetter s t a b -> b -> s -> t
.~ Integer -> Coin
Coin Integer
5
PParams era -> (PParams era -> PParams era) -> PParams era
forall a b. a -> (a -> b) -> b
& (Coin -> Identity Coin) -> PParams era -> Identity (PParams era)
forall era. EraPParams era => Lens' (PParams era) Coin
Lens' (PParams era) Coin
ppKeyDepositL ((Coin -> Identity Coin) -> PParams era -> Identity (PParams era))
-> Coin -> PParams era -> PParams era
forall s t a b. ASetter s t a b -> b -> s -> t
.~ Integer -> Coin
Coin Integer
2
PParams era -> (PParams era -> PParams era) -> PParams era
forall a b. a -> (a -> b) -> b
& (EpochInterval -> Identity EpochInterval)
-> PParams era -> Identity (PParams era)
forall era. EraPParams era => Lens' (PParams era) EpochInterval
Lens' (PParams era) EpochInterval
ppEMaxL ((EpochInterval -> Identity EpochInterval)
-> PParams era -> Identity (PParams era))
-> EpochInterval -> PParams era -> PParams era
forall s t a b. ASetter s t a b -> b -> s -> t
.~ Word32 -> EpochInterval
EpochInterval Word32
5
applyShelleyCert :: forall era. EraPParams era => Model era -> ShelleyTxCert era -> Model era
applyShelleyCert :: forall era.
EraPParams era =>
Model era -> ShelleyTxCert era -> Model era
applyShelleyCert Model era
model ShelleyTxCert era
dcert = case ShelleyTxCert era
dcert of
ShelleyTxCertDelegCert (ShelleyRegCert Credential 'Staking
x) ->
Model era
model
{ mRewards = Map.insert x (Coin 0) (mRewards model)
, mKeyDeposits = Map.insert x (pp ^. ppKeyDepositL) (mKeyDeposits model)
, mDeposited = mDeposited model <+> pp ^. ppKeyDepositL
}
where
pp :: PParams era
pp = Model era -> PParams era
forall era. ModelNewEpochState era -> PParams era
mPParams Model era
model
ShelleyTxCertDelegCert (ShelleyUnRegCert Credential 'Staking
x) -> case Credential 'Staking -> Map (Credential 'Staking) Coin -> Maybe Coin
forall k a. Ord k => k -> Map k a -> Maybe a
Map.lookup Credential 'Staking
x (Model era -> Map (Credential 'Staking) Coin
forall era.
ModelNewEpochState era -> Map (Credential 'Staking) Coin
mRewards Model era
model) of
Maybe Coin
Nothing -> [Char] -> Model era
forall a. HasCallStack => [Char] -> a
error ([Char]
"DeRegKey not in rewards: " [Char] -> [Char] -> [Char]
forall a. Semigroup a => a -> a -> a
<> Expr -> [Char]
forall a. Show a => a -> [Char]
show (Credential 'Staking -> Expr
forall a. ToExpr a => a -> Expr
toExpr Credential 'Staking
x))
Just (Coin Integer
0) ->
Model era
model
{ mRewards = Map.delete x (mRewards model)
, mKeyDeposits = Map.delete x (mKeyDeposits model)
, mDeposited = mDeposited model <-> keyDeposit
}
where
keyDeposit :: Coin
keyDeposit = Coin
-> Credential 'Staking -> Map (Credential 'Staking) Coin -> Coin
forall k a. Ord k => a -> k -> Map k a -> a
Map.findWithDefault Coin
forall a. Monoid a => a
mempty Credential 'Staking
x (Model era -> Map (Credential 'Staking) Coin
forall era.
ModelNewEpochState era -> Map (Credential 'Staking) Coin
mKeyDeposits Model era
model)
Just (Coin Integer
_n) -> [Char] -> Model era
forall a. HasCallStack => [Char] -> a
error [Char]
"DeRegKey with non-zero balance"
ShelleyTxCertDelegCert (ShelleyDelegCert Credential 'Staking
cred KeyHash 'StakePool
hash) ->
Model era
model {mDelegations = Map.insert cred hash (mDelegations model)}
ShelleyTxCertPool (RegPool PoolParams
poolparams) ->
Model era
model
{ mPoolParams = Map.insert hk poolparams (mPoolParams model)
, mDeposited =
if Map.member hk (mPoolDeposits model)
then mDeposited model
else mDeposited model <+> pp ^. ppPoolDepositL
, mPoolDeposits
=
if Map.member hk (mPoolDeposits model)
then mPoolDeposits model
else Map.insert hk (pp ^. ppPoolDepositL) (mPoolDeposits model)
}
where
hk :: KeyHash 'StakePool
hk = PoolParams -> KeyHash 'StakePool
ppId PoolParams
poolparams
pp :: PParams era
pp = Model era -> PParams era
forall era. ModelNewEpochState era -> PParams era
mPParams Model era
model
ShelleyTxCertPool (RetirePool KeyHash 'StakePool
keyhash EpochNo
epoch) ->
Model era
model
{ mRetiring = Map.insert keyhash epoch (mRetiring model)
, mDeposited = mDeposited model <-> pp ^. ppPoolDepositL
}
where
pp :: PParams era
pp = Model era -> PParams era
forall era. ModelNewEpochState era -> PParams era
mPParams Model era
model
ShelleyTxCertGenesisDeleg GenesisDelegCert
_ -> Model era
model
ShelleyTxCertMir MIRCert
_ -> Model era
model
timeToLive :: ValidityInterval -> SlotNo
timeToLive :: ValidityInterval -> SlotNo
timeToLive (ValidityInterval StrictMaybe SlotNo
_ (SJust SlotNo
n)) = SlotNo
n
timeToLive (ValidityInterval StrictMaybe SlotNo
_ StrictMaybe SlotNo
SNothing) = Word64 -> SlotNo
SlotNo Word64
forall a. Bounded a => a
maxBound
shelleySetValidity :: ValidityInterval -> TxBody ShelleyEra -> TxBody ShelleyEra
shelleySetValidity :: ValidityInterval -> TxBody ShelleyEra -> TxBody ShelleyEra
shelleySetValidity ValidityInterval
vi = (SlotNo -> Identity SlotNo)
-> TxBody ShelleyEra -> Identity (TxBody ShelleyEra)
forall era.
(ShelleyEraTxBody era, ExactEra ShelleyEra era) =>
Lens' (TxBody era) SlotNo
Lens' (TxBody ShelleyEra) SlotNo
ttlTxBodyL ((SlotNo -> Identity SlotNo)
-> TxBody ShelleyEra -> Identity (TxBody ShelleyEra))
-> SlotNo -> TxBody ShelleyEra -> TxBody ShelleyEra
forall s t a b. ASetter s t a b -> b -> s -> t
.~ ValidityInterval -> SlotNo
timeToLive ValidityInterval
vi
allegraSetValidity :: AllegraEraTxBody era => ValidityInterval -> TxBody era -> TxBody era
allegraSetValidity :: forall era.
AllegraEraTxBody era =>
ValidityInterval -> TxBody era -> TxBody era
allegraSetValidity ValidityInterval
vi = (ValidityInterval -> Identity ValidityInterval)
-> TxBody era -> Identity (TxBody era)
forall era.
AllegraEraTxBody era =>
Lens' (TxBody era) ValidityInterval
Lens' (TxBody era) ValidityInterval
vldtTxBodyL ((ValidityInterval -> Identity ValidityInterval)
-> TxBody era -> Identity (TxBody era))
-> ValidityInterval -> TxBody era -> TxBody era
forall s t a b. ASetter s t a b -> b -> s -> t
.~ ValidityInterval
vi
allegraValidTxOut :: EraTxOut era => Map ScriptHash (Script era) -> TxOut era -> Bool
allegraValidTxOut :: forall era.
EraTxOut era =>
Map ScriptHash (Script era) -> TxOut era -> Bool
allegraValidTxOut Map ScriptHash (Script era)
_ TxOut era
txOut = case TxOut era
txOut TxOut era -> Getting Addr (TxOut era) Addr -> Addr
forall s a. s -> Getting a s a -> a
^. Getting Addr (TxOut era) Addr
forall era. EraTxOut era => Lens' (TxOut era) Addr
Lens' (TxOut era) Addr
addrTxOutL of
Addr Network
_ KeyHashObj {} StakeReference
_ -> Bool
True
Addr
_ -> Bool
False
alonzoValidTxOut ::
( EraTxOut era
, AlonzoEraScript era
) =>
Map ScriptHash (Script era) -> TxOut era -> Bool
alonzoValidTxOut :: forall era.
(EraTxOut era, AlonzoEraScript era) =>
Map ScriptHash (Script era) -> TxOut era -> Bool
alonzoValidTxOut Map ScriptHash (Script era)
scripts TxOut era
txOut = case TxOut era
txOut TxOut era -> Getting Addr (TxOut era) Addr -> Addr
forall s a. s -> Getting a s a -> a
^. Getting Addr (TxOut era) Addr
forall era. EraTxOut era => Lens' (TxOut era) Addr
Lens' (TxOut era) Addr
addrTxOutL of
Addr Network
_ KeyHashObj {} StakeReference
_ -> Bool
True
Addr Network
_ (ScriptHashObj ScriptHash
sh) StakeReference
_ ->
case ScriptHash -> Map ScriptHash (Script era) -> Maybe (Script era)
forall k a. Ord k => k -> Map k a -> Maybe a
Map.lookup ScriptHash
sh Map ScriptHash (Script era)
scripts of
Just Script era
s -> Script era -> Bool
forall era. AlonzoEraScript era => Script era -> Bool
isPlutusScript Script era
s
Maybe (Script era)
_ -> Bool
False
AddrBootstrap {} -> Bool
False
alonzoGenPParams :: forall era. AlonzoEraTest era => GenSize -> Gen (PParams era)
alonzoGenPParams :: forall era. AlonzoEraTest era => GenSize -> Gen (PParams era)
alonzoGenPParams GenSize
gsize = do
PParams era
pp <- Gen (PParams era)
forall era. EraPParams era => Gen (PParams era)
shelleyGenPParams
ExUnits
maxTxExUnits <- Gen ExUnits
forall a. Arbitrary a => Gen a
arbitrary :: Gen ExUnits
Natural
maxCollateralInputs <- [Natural] -> Gen Natural
forall a. HasCallStack => [a] -> Gen a
elements [Natural
Item [Natural]
1 .. GenSize -> Natural
collInputsMax GenSize
gsize]
Natural
collateralPercentage <- Int -> Natural
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> Natural) -> Gen Int -> Gen Natural
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> (Int, Int) -> Gen Int
chooseInt (Int
1, Int
10000)
PParams era -> Gen (PParams era)
forall a. a -> Gen a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (PParams era -> Gen (PParams era))
-> PParams era -> Gen (PParams era)
forall a b. (a -> b) -> a -> b
$
PParams era
pp
PParams era -> (PParams era -> PParams era) -> PParams era
forall a b. a -> (a -> b) -> b
& (ExUnits -> Identity ExUnits)
-> PParams era -> Identity (PParams era)
forall era. AlonzoEraPParams era => Lens' (PParams era) ExUnits
Lens' (PParams era) ExUnits
ppMaxTxExUnitsL ((ExUnits -> Identity ExUnits)
-> PParams era -> Identity (PParams era))
-> ExUnits -> PParams era -> PParams era
forall s t a b. ASetter s t a b -> b -> s -> t
.~ ExUnits
maxTxExUnits
PParams era -> (PParams era -> PParams era) -> PParams era
forall a b. a -> (a -> b) -> b
& (CostModels -> Identity CostModels)
-> PParams era -> Identity (PParams era)
forall era. AlonzoEraPParams era => Lens' (PParams era) CostModels
Lens' (PParams era) CostModels
ppCostModelsL ((CostModels -> Identity CostModels)
-> PParams era -> Identity (PParams era))
-> CostModels -> PParams era -> PParams era
forall s t a b. ASetter s t a b -> b -> s -> t
.~ forall era. EraTest era => CostModels
zeroCostModels @era
PParams era -> (PParams era -> PParams era) -> PParams era
forall a b. a -> (a -> b) -> b
& (Natural -> Identity Natural)
-> PParams era -> Identity (PParams era)
forall era. AlonzoEraPParams era => Lens' (PParams era) Natural
Lens' (PParams era) Natural
ppMaxValSizeL ((Natural -> Identity Natural)
-> PParams era -> Identity (PParams era))
-> Natural -> PParams era -> PParams era
forall s t a b. ASetter s t a b -> b -> s -> t
.~ Natural
1000
PParams era -> (PParams era -> PParams era) -> PParams era
forall a b. a -> (a -> b) -> b
& (Natural -> Identity Natural)
-> PParams era -> Identity (PParams era)
forall era. AlonzoEraPParams era => Lens' (PParams era) Natural
Lens' (PParams era) Natural
ppMaxCollateralInputsL ((Natural -> Identity Natural)
-> PParams era -> Identity (PParams era))
-> Natural -> PParams era -> PParams era
forall s t a b. ASetter s t a b -> b -> s -> t
.~ Natural
maxCollateralInputs
PParams era -> (PParams era -> PParams era) -> PParams era
forall a b. a -> (a -> b) -> b
& (Natural -> Identity Natural)
-> PParams era -> Identity (PParams era)
forall era. AlonzoEraPParams era => Lens' (PParams era) Natural
Lens' (PParams era) Natural
ppCollateralPercentageL ((Natural -> Identity Natural)
-> PParams era -> Identity (PParams era))
-> Natural -> PParams era -> PParams era
forall s t a b. ASetter s t a b -> b -> s -> t
.~ Natural
collateralPercentage
PParams era -> (PParams era -> PParams era) -> PParams era
forall a b. a -> (a -> b) -> b
& (ProtVer -> Identity ProtVer)
-> PParams era -> Identity (PParams era)
forall era. EraPParams era => Lens' (PParams era) ProtVer
Lens' (PParams era) ProtVer
ppProtocolVersionL ((ProtVer -> Identity ProtVer)
-> PParams era -> Identity (PParams era))
-> ProtVer -> PParams era -> PParams era
forall s t a b. ASetter s t a b -> b -> s -> t
.~ Version -> Natural -> ProtVer
ProtVer (forall era. Era era => Version
eraProtVerLow @era) Natural
0
instance EraModel ShelleyEra where
applyTx :: Int
-> SlotNo -> Model ShelleyEra -> Tx ShelleyEra -> Model ShelleyEra
applyTx = Int
-> SlotNo -> Model ShelleyEra -> Tx ShelleyEra -> Model ShelleyEra
forall era.
EraModel era =>
Int -> SlotNo -> Model era -> Tx era -> Model era
shelleyApplyTx
applyCert :: Model ShelleyEra -> TxCert ShelleyEra -> Model ShelleyEra
applyCert = Model ShelleyEra -> TxCert ShelleyEra -> Model ShelleyEra
Model ShelleyEra -> ShelleyTxCert ShelleyEra -> Model ShelleyEra
forall era.
EraPParams era =>
Model era -> ShelleyTxCert era -> Model era
applyShelleyCert
always :: Natural -> Script ShelleyEra
always Natural
_ = NativeScript ShelleyEra -> Script ShelleyEra
forall era. EraScript era => NativeScript era -> Script era
fromNativeScript (NativeScript ShelleyEra -> Script ShelleyEra)
-> NativeScript ShelleyEra -> Script ShelleyEra
forall a b. (a -> b) -> a -> b
$ StrictSeq (NativeScript ShelleyEra) -> NativeScript ShelleyEra
forall era.
ShelleyEraScript era =>
StrictSeq (NativeScript era) -> NativeScript era
RequireAllOf []
never :: Natural -> Script ShelleyEra
never Natural
_ = NativeScript ShelleyEra -> Script ShelleyEra
forall era. EraScript era => NativeScript era -> Script era
fromNativeScript (NativeScript ShelleyEra -> Script ShelleyEra)
-> NativeScript ShelleyEra -> Script ShelleyEra
forall a b. (a -> b) -> a -> b
$ StrictSeq (NativeScript ShelleyEra) -> NativeScript ShelleyEra
forall era.
ShelleyEraScript era =>
StrictSeq (NativeScript era) -> NativeScript era
RequireAnyOf []
collateralReturnTxBodyT :: Lens' (TxBody ShelleyEra) (StrictMaybe (TxOut ShelleyEra))
collateralReturnTxBodyT = StrictMaybe (ShelleyTxOut ShelleyEra)
-> Lens'
(TxBody ShelleyEra) (StrictMaybe (ShelleyTxOut ShelleyEra))
forall b a. b -> Lens' a b
dummyLens StrictMaybe (ShelleyTxOut ShelleyEra)
forall a. StrictMaybe a
SNothing
validTxOut :: Map ScriptHash (Script ShelleyEra) -> TxOut ShelleyEra -> Bool
validTxOut Map ScriptHash (Script ShelleyEra)
scripts TxOut ShelleyEra
txOut =
case TxOut ShelleyEra
ShelleyTxOut ShelleyEra
txOut ShelleyTxOut ShelleyEra
-> Getting Addr (ShelleyTxOut ShelleyEra) Addr -> Addr
forall s a. s -> Getting a s a -> a
^. (Addr -> Const Addr Addr)
-> TxOut ShelleyEra -> Const Addr (TxOut ShelleyEra)
Getting Addr (ShelleyTxOut ShelleyEra) Addr
forall era. EraTxOut era => Lens' (TxOut era) Addr
Lens' (TxOut ShelleyEra) Addr
addrTxOutL of
Addr Network
_ (KeyHashObj KeyHash 'Payment
_) StakeReference
_ -> Bool
True
Addr Network
_ (ScriptHashObj ScriptHash
sh) StakeReference
_ -> ScriptHash -> Map ScriptHash (MultiSig ShelleyEra) -> Bool
forall k a. Ord k => k -> Map k a -> Bool
Map.member ScriptHash
sh Map ScriptHash (Script ShelleyEra)
Map ScriptHash (MultiSig ShelleyEra)
scripts
AddrBootstrap {} -> Bool
False
instance EraModel AllegraEra where
applyTx :: Int
-> SlotNo -> Model AllegraEra -> Tx AllegraEra -> Model AllegraEra
applyTx = Int
-> SlotNo -> Model AllegraEra -> Tx AllegraEra -> Model AllegraEra
forall era.
EraModel era =>
Int -> SlotNo -> Model era -> Tx era -> Model era
shelleyApplyTx
applyCert :: Model AllegraEra -> TxCert AllegraEra -> Model AllegraEra
applyCert = Model AllegraEra -> TxCert AllegraEra -> Model AllegraEra
Model AllegraEra -> ShelleyTxCert AllegraEra -> Model AllegraEra
forall era.
EraPParams era =>
Model era -> ShelleyTxCert era -> Model era
applyShelleyCert
always :: Natural -> Script AllegraEra
always Natural
_ = NativeScript AllegraEra -> Script AllegraEra
forall era. EraScript era => NativeScript era -> Script era
fromNativeScript (NativeScript AllegraEra -> Script AllegraEra)
-> NativeScript AllegraEra -> Script AllegraEra
forall a b. (a -> b) -> a -> b
$ StrictSeq (NativeScript AllegraEra) -> NativeScript AllegraEra
forall era.
ShelleyEraScript era =>
StrictSeq (NativeScript era) -> NativeScript era
RequireAllOf []
never :: Natural -> Script AllegraEra
never Natural
_ = NativeScript AllegraEra -> Script AllegraEra
forall era. EraScript era => NativeScript era -> Script era
fromNativeScript (NativeScript AllegraEra -> Script AllegraEra)
-> NativeScript AllegraEra -> Script AllegraEra
forall a b. (a -> b) -> a -> b
$ StrictSeq (NativeScript AllegraEra) -> NativeScript AllegraEra
forall era.
ShelleyEraScript era =>
StrictSeq (NativeScript era) -> NativeScript era
RequireAnyOf []
collateralReturnTxBodyT :: Lens' (TxBody AllegraEra) (StrictMaybe (TxOut AllegraEra))
collateralReturnTxBodyT = StrictMaybe (ShelleyTxOut AllegraEra)
-> Lens'
(TxBody AllegraEra) (StrictMaybe (ShelleyTxOut AllegraEra))
forall b a. b -> Lens' a b
dummyLens StrictMaybe (ShelleyTxOut AllegraEra)
forall a. StrictMaybe a
SNothing
validTxOut :: Map ScriptHash (Script AllegraEra) -> TxOut AllegraEra -> Bool
validTxOut = Map ScriptHash (Script AllegraEra) -> TxOut AllegraEra -> Bool
forall era.
EraTxOut era =>
Map ScriptHash (Script era) -> TxOut era -> Bool
allegraValidTxOut
instance EraModel MaryEra where
applyTx :: Int -> SlotNo -> Model MaryEra -> Tx MaryEra -> Model MaryEra
applyTx = Int -> SlotNo -> Model MaryEra -> Tx MaryEra -> Model MaryEra
forall era.
EraModel era =>
Int -> SlotNo -> Model era -> Tx era -> Model era
shelleyApplyTx
applyCert :: Model MaryEra -> TxCert MaryEra -> Model MaryEra
applyCert = Model MaryEra -> TxCert MaryEra -> Model MaryEra
Model MaryEra -> ShelleyTxCert MaryEra -> Model MaryEra
forall era.
EraPParams era =>
Model era -> ShelleyTxCert era -> Model era
applyShelleyCert
always :: Natural -> Script MaryEra
always Natural
_ = NativeScript MaryEra -> Script MaryEra
forall era. EraScript era => NativeScript era -> Script era
fromNativeScript (NativeScript MaryEra -> Script MaryEra)
-> NativeScript MaryEra -> Script MaryEra
forall a b. (a -> b) -> a -> b
$ StrictSeq (NativeScript MaryEra) -> NativeScript MaryEra
forall era.
ShelleyEraScript era =>
StrictSeq (NativeScript era) -> NativeScript era
RequireAllOf []
never :: Natural -> Script MaryEra
never Natural
_ = NativeScript MaryEra -> Script MaryEra
forall era. EraScript era => NativeScript era -> Script era
fromNativeScript (NativeScript MaryEra -> Script MaryEra)
-> NativeScript MaryEra -> Script MaryEra
forall a b. (a -> b) -> a -> b
$ StrictSeq (NativeScript MaryEra) -> NativeScript MaryEra
forall era.
ShelleyEraScript era =>
StrictSeq (NativeScript era) -> NativeScript era
RequireAnyOf []
collateralReturnTxBodyT :: Lens' (TxBody MaryEra) (StrictMaybe (TxOut MaryEra))
collateralReturnTxBodyT = StrictMaybe (ShelleyTxOut MaryEra)
-> Lens' (TxBody MaryEra) (StrictMaybe (ShelleyTxOut MaryEra))
forall b a. b -> Lens' a b
dummyLens StrictMaybe (ShelleyTxOut MaryEra)
forall a. StrictMaybe a
SNothing
validTxOut :: Map ScriptHash (Script MaryEra) -> TxOut MaryEra -> Bool
validTxOut = Map ScriptHash (Script MaryEra) -> TxOut MaryEra -> Bool
forall era.
EraTxOut era =>
Map ScriptHash (Script era) -> TxOut era -> Bool
allegraValidTxOut
instance EraModel AlonzoEra where
applyTx :: Int -> SlotNo -> Model AlonzoEra -> Tx AlonzoEra -> Model AlonzoEra
applyTx = Int -> SlotNo -> Model AlonzoEra -> Tx AlonzoEra -> Model AlonzoEra
forall era.
(EraModel era, AlonzoEraTx era, Reflect era) =>
Int -> SlotNo -> Model era -> Tx era -> Model era
alonzoApplyTx
applyCert :: Model AlonzoEra -> TxCert AlonzoEra -> Model AlonzoEra
applyCert = Model AlonzoEra -> TxCert AlonzoEra -> Model AlonzoEra
Model AlonzoEra -> ShelleyTxCert AlonzoEra -> Model AlonzoEra
forall era.
EraPParams era =>
Model era -> ShelleyTxCert era -> Model era
applyShelleyCert
mkRedeemersFromTags :: [((PlutusPurposeTag, Word32), (Data AlonzoEra, ExUnits))]
-> Redeemers AlonzoEra
mkRedeemersFromTags = [((PlutusPurposeTag, Word32), (Data AlonzoEra, ExUnits))]
-> Redeemers AlonzoEra
forall era.
(AlonzoEraScript era, EraModel era) =>
[((PlutusPurposeTag, Word32), (Data era, ExUnits))]
-> Redeemers era
alonzoMkRedeemersFromTags
mkRedeemers :: [(PlutusPurpose AsIx AlonzoEra, (Data AlonzoEra, ExUnits))]
-> Redeemers AlonzoEra
mkRedeemers = [(PlutusPurpose AsIx AlonzoEra, (Data AlonzoEra, ExUnits))]
-> Redeemers AlonzoEra
forall era.
AlonzoEraScript era =>
[(PlutusPurpose AsIx era, (Data era, ExUnits))] -> Redeemers era
alonzoMkRedeemers
newScriptIntegrityHash :: PParams AlonzoEra
-> [Language]
-> Redeemers AlonzoEra
-> TxDats AlonzoEra
-> StrictMaybe ScriptIntegrityHash
newScriptIntegrityHash = PParams AlonzoEra
-> [Language]
-> Redeemers AlonzoEra
-> TxDats AlonzoEra
-> StrictMaybe ScriptIntegrityHash
forall era.
(AlonzoEraScript era, AlonzoEraPParams era) =>
PParams era
-> [Language]
-> Redeemers era
-> TxDats era
-> StrictMaybe ScriptIntegrityHash
alonzoNewScriptIntegrityHash
mkPlutusPurposePointer :: PlutusPurposeTag -> Word32 -> PlutusPurpose AsIx AlonzoEra
mkPlutusPurposePointer = PlutusPurposeTag -> Word32 -> AlonzoPlutusPurpose AsIx AlonzoEra
PlutusPurposeTag -> Word32 -> PlutusPurpose AsIx AlonzoEra
forall era.
Era era =>
PlutusPurposeTag -> Word32 -> AlonzoPlutusPurpose AsIx era
mkAlonzoPlutusPurposePointer
always :: Natural -> Script AlonzoEra
always = forall (l :: Language) era.
(HasCallStack, EraPlutusTxInfo l era) =>
Natural -> Script era
alwaysSucceeds @PlutusV1
never :: Natural -> Script AlonzoEra
never = forall (l :: Language) era.
(HasCallStack, EraPlutusTxInfo l era) =>
Natural -> Script era
alwaysFails @PlutusV1
collateralReturnTxBodyT :: Lens' (TxBody AlonzoEra) (StrictMaybe (TxOut AlonzoEra))
collateralReturnTxBodyT = StrictMaybe (AlonzoTxOut AlonzoEra)
-> Lens' (TxBody AlonzoEra) (StrictMaybe (AlonzoTxOut AlonzoEra))
forall b a. b -> Lens' a b
dummyLens StrictMaybe (AlonzoTxOut AlonzoEra)
forall a. StrictMaybe a
SNothing
validTxOut :: Map ScriptHash (Script AlonzoEra) -> TxOut AlonzoEra -> Bool
validTxOut = Map ScriptHash (Script AlonzoEra) -> TxOut AlonzoEra -> Bool
forall era.
(EraTxOut era, AlonzoEraScript era) =>
Map ScriptHash (Script era) -> TxOut era -> Bool
alonzoValidTxOut
instance EraModel BabbageEra where
applyTx :: Int
-> SlotNo -> Model BabbageEra -> Tx BabbageEra -> Model BabbageEra
applyTx = Int
-> SlotNo -> Model BabbageEra -> Tx BabbageEra -> Model BabbageEra
forall era.
(EraModel era, AlonzoEraTx era, Reflect era) =>
Int -> SlotNo -> Model era -> Tx era -> Model era
alonzoApplyTx
applyCert :: Model BabbageEra -> TxCert BabbageEra -> Model BabbageEra
applyCert = Model BabbageEra -> TxCert BabbageEra -> Model BabbageEra
Model BabbageEra -> ShelleyTxCert BabbageEra -> Model BabbageEra
forall era.
EraPParams era =>
Model era -> ShelleyTxCert era -> Model era
applyShelleyCert
mkRedeemersFromTags :: [((PlutusPurposeTag, Word32), (Data BabbageEra, ExUnits))]
-> Redeemers BabbageEra
mkRedeemersFromTags = [((PlutusPurposeTag, Word32), (Data BabbageEra, ExUnits))]
-> Redeemers BabbageEra
forall era.
(AlonzoEraScript era, EraModel era) =>
[((PlutusPurposeTag, Word32), (Data era, ExUnits))]
-> Redeemers era
alonzoMkRedeemersFromTags
mkRedeemers :: [(PlutusPurpose AsIx BabbageEra, (Data BabbageEra, ExUnits))]
-> Redeemers BabbageEra
mkRedeemers = [(PlutusPurpose AsIx BabbageEra, (Data BabbageEra, ExUnits))]
-> Redeemers BabbageEra
forall era.
AlonzoEraScript era =>
[(PlutusPurpose AsIx era, (Data era, ExUnits))] -> Redeemers era
alonzoMkRedeemers
newScriptIntegrityHash :: PParams BabbageEra
-> [Language]
-> Redeemers BabbageEra
-> TxDats BabbageEra
-> StrictMaybe ScriptIntegrityHash
newScriptIntegrityHash = PParams BabbageEra
-> [Language]
-> Redeemers BabbageEra
-> TxDats BabbageEra
-> StrictMaybe ScriptIntegrityHash
forall era.
(AlonzoEraScript era, AlonzoEraPParams era) =>
PParams era
-> [Language]
-> Redeemers era
-> TxDats era
-> StrictMaybe ScriptIntegrityHash
alonzoNewScriptIntegrityHash
mkPlutusPurposePointer :: PlutusPurposeTag -> Word32 -> PlutusPurpose AsIx BabbageEra
mkPlutusPurposePointer = PlutusPurposeTag -> Word32 -> AlonzoPlutusPurpose AsIx BabbageEra
PlutusPurposeTag -> Word32 -> PlutusPurpose AsIx BabbageEra
forall era.
Era era =>
PlutusPurposeTag -> Word32 -> AlonzoPlutusPurpose AsIx era
mkAlonzoPlutusPurposePointer
always :: Natural -> Script BabbageEra
always = forall (l :: Language) era.
(HasCallStack, EraPlutusTxInfo l era) =>
Natural -> Script era
alwaysSucceeds @PlutusV1
never :: Natural -> Script BabbageEra
never = forall (l :: Language) era.
(HasCallStack, EraPlutusTxInfo l era) =>
Natural -> Script era
alwaysFails @PlutusV1
collateralReturnTxBodyT :: Lens' (TxBody BabbageEra) (StrictMaybe (TxOut BabbageEra))
collateralReturnTxBodyT = (StrictMaybe (TxOut BabbageEra)
-> f (StrictMaybe (TxOut BabbageEra)))
-> TxBody BabbageEra -> f (TxBody BabbageEra)
forall era.
BabbageEraTxBody era =>
Lens' (TxBody era) (StrictMaybe (TxOut era))
Lens' (TxBody BabbageEra) (StrictMaybe (TxOut BabbageEra))
collateralReturnTxBodyL
validTxOut :: Map ScriptHash (Script BabbageEra) -> TxOut BabbageEra -> Bool
validTxOut = Map ScriptHash (Script BabbageEra) -> TxOut BabbageEra -> Bool
forall era.
(EraTxOut era, AlonzoEraScript era) =>
Map ScriptHash (Script era) -> TxOut era -> Bool
alonzoValidTxOut
instance EraModel ConwayEra where
applyTx :: Int -> SlotNo -> Model ConwayEra -> Tx ConwayEra -> Model ConwayEra
applyTx = Int -> SlotNo -> Model ConwayEra -> Tx ConwayEra -> Model ConwayEra
forall era.
(EraModel era, AlonzoEraTx era, Reflect era) =>
Int -> SlotNo -> Model era -> Tx era -> Model era
alonzoApplyTx
applyCert :: Model ConwayEra -> TxCert ConwayEra -> Model ConwayEra
applyCert = [Char]
-> Model ConwayEra -> ConwayTxCert ConwayEra -> Model ConwayEra
forall a. HasCallStack => [Char] -> a
error [Char]
"Not yet implemented"
mkRedeemersFromTags :: [((PlutusPurposeTag, Word32), (Data ConwayEra, ExUnits))]
-> Redeemers ConwayEra
mkRedeemersFromTags = [((PlutusPurposeTag, Word32), (Data ConwayEra, ExUnits))]
-> Redeemers ConwayEra
forall era.
(AlonzoEraScript era, EraModel era) =>
[((PlutusPurposeTag, Word32), (Data era, ExUnits))]
-> Redeemers era
alonzoMkRedeemersFromTags
mkRedeemers :: [(PlutusPurpose AsIx ConwayEra, (Data ConwayEra, ExUnits))]
-> Redeemers ConwayEra
mkRedeemers = [(PlutusPurpose AsIx ConwayEra, (Data ConwayEra, ExUnits))]
-> Redeemers ConwayEra
forall era.
AlonzoEraScript era =>
[(PlutusPurpose AsIx era, (Data era, ExUnits))] -> Redeemers era
alonzoMkRedeemers
newScriptIntegrityHash :: PParams ConwayEra
-> [Language]
-> Redeemers ConwayEra
-> TxDats ConwayEra
-> StrictMaybe ScriptIntegrityHash
newScriptIntegrityHash = PParams ConwayEra
-> [Language]
-> Redeemers ConwayEra
-> TxDats ConwayEra
-> StrictMaybe ScriptIntegrityHash
forall era.
(AlonzoEraScript era, AlonzoEraPParams era) =>
PParams era
-> [Language]
-> Redeemers era
-> TxDats era
-> StrictMaybe ScriptIntegrityHash
alonzoNewScriptIntegrityHash
mkPlutusPurposePointer :: PlutusPurposeTag -> Word32 -> PlutusPurpose AsIx ConwayEra
mkPlutusPurposePointer = PlutusPurposeTag -> Word32 -> PlutusPurpose AsIx ConwayEra
PlutusPurposeTag -> Word32 -> ConwayPlutusPurpose AsIx ConwayEra
forall era.
PlutusPurposeTag -> Word32 -> ConwayPlutusPurpose AsIx era
mkConwayPlutusPurposePointer
always :: Natural -> Script ConwayEra
always = forall (l :: Language) era.
(HasCallStack, EraPlutusTxInfo l era) =>
Natural -> Script era
alwaysSucceeds @PlutusV1
never :: Natural -> Script ConwayEra
never = forall (l :: Language) era.
(HasCallStack, EraPlutusTxInfo l era) =>
Natural -> Script era
alwaysFails @PlutusV1
collateralReturnTxBodyT :: Lens' (TxBody ConwayEra) (StrictMaybe (TxOut ConwayEra))
collateralReturnTxBodyT = (StrictMaybe (TxOut ConwayEra)
-> f (StrictMaybe (TxOut ConwayEra)))
-> TxBody ConwayEra -> f (TxBody ConwayEra)
forall era.
BabbageEraTxBody era =>
Lens' (TxBody era) (StrictMaybe (TxOut era))
Lens' (TxBody ConwayEra) (StrictMaybe (TxOut ConwayEra))
collateralReturnTxBodyL
validTxOut :: Map ScriptHash (Script ConwayEra) -> TxOut ConwayEra -> Bool
validTxOut = Map ScriptHash (Script ConwayEra) -> TxOut ConwayEra -> Bool
forall era.
(EraTxOut era, AlonzoEraScript era) =>
Map ScriptHash (Script era) -> TxOut era -> Bool
alonzoValidTxOut
instance EraGenericGen ShelleyEra where
setValidity :: ValidityInterval -> TxBody ShelleyEra -> TxBody ShelleyEra
setValidity = ValidityInterval -> TxBody ShelleyEra -> TxBody ShelleyEra
shelleySetValidity
setReferenceInputs :: Set TxIn -> TxBody ShelleyEra -> TxBody ShelleyEra
setReferenceInputs = (TxBody ShelleyEra -> TxBody ShelleyEra)
-> Set TxIn -> TxBody ShelleyEra -> TxBody ShelleyEra
forall a b. a -> b -> a
const TxBody ShelleyEra -> TxBody ShelleyEra
forall a. a -> a
id
setCollateralInputs :: Set TxIn -> TxBody ShelleyEra -> TxBody ShelleyEra
setCollateralInputs = (TxBody ShelleyEra -> TxBody ShelleyEra)
-> Set TxIn -> TxBody ShelleyEra -> TxBody ShelleyEra
forall a b. a -> b -> a
const TxBody ShelleyEra -> TxBody ShelleyEra
forall a. a -> a
id
setTotalCollateral :: StrictMaybe Coin -> TxBody ShelleyEra -> TxBody ShelleyEra
setTotalCollateral = (TxBody ShelleyEra -> TxBody ShelleyEra)
-> StrictMaybe Coin -> TxBody ShelleyEra -> TxBody ShelleyEra
forall a b. a -> b -> a
const TxBody ShelleyEra -> TxBody ShelleyEra
forall a. a -> a
id
setCollateralReturn :: StrictMaybe (TxOut ShelleyEra)
-> TxBody ShelleyEra -> TxBody ShelleyEra
setCollateralReturn = (TxBody ShelleyEra -> TxBody ShelleyEra)
-> StrictMaybe (ShelleyTxOut ShelleyEra)
-> TxBody ShelleyEra
-> TxBody ShelleyEra
forall a b. a -> b -> a
const TxBody ShelleyEra -> TxBody ShelleyEra
forall a. a -> a
id
addRedeemers :: Redeemers ShelleyEra -> TxWits ShelleyEra -> TxWits ShelleyEra
addRedeemers = (ShelleyTxWits ShelleyEra -> ShelleyTxWits ShelleyEra)
-> Redeemers ShelleyEra
-> ShelleyTxWits ShelleyEra
-> ShelleyTxWits ShelleyEra
forall a b. a -> b -> a
const ShelleyTxWits ShelleyEra -> ShelleyTxWits ShelleyEra
forall a. a -> a
id
setScriptIntegrityHash :: StrictMaybe ScriptIntegrityHash
-> TxBody ShelleyEra -> TxBody ShelleyEra
setScriptIntegrityHash = (TxBody ShelleyEra -> TxBody ShelleyEra)
-> StrictMaybe ScriptIntegrityHash
-> TxBody ShelleyEra
-> TxBody ShelleyEra
forall a b. a -> b -> a
const TxBody ShelleyEra -> TxBody ShelleyEra
forall a. a -> a
id
setNetworkIdTxBody :: StrictMaybe Network -> TxBody ShelleyEra -> TxBody ShelleyEra
setNetworkIdTxBody = (TxBody ShelleyEra -> TxBody ShelleyEra)
-> StrictMaybe Network -> TxBody ShelleyEra -> TxBody ShelleyEra
forall a b. a -> b -> a
const TxBody ShelleyEra -> TxBody ShelleyEra
forall a. a -> a
id
genExUnits :: Int -> GenRS ShelleyEra [ExUnits]
genExUnits = GenRS ShelleyEra [ExUnits] -> Int -> GenRS ShelleyEra [ExUnits]
forall a b. a -> b -> a
const (GenRS ShelleyEra [ExUnits] -> Int -> GenRS ShelleyEra [ExUnits])
-> GenRS ShelleyEra [ExUnits] -> Int -> GenRS ShelleyEra [ExUnits]
forall a b. (a -> b) -> a -> b
$ [ExUnits] -> GenRS ShelleyEra [ExUnits]
forall a.
a -> RWST (GenEnv ShelleyEra) () (GenState ShelleyEra) Gen a
forall (f :: * -> *) a. Applicative f => a -> f a
pure []
ppMaxCollateralInputsT :: Lens' (PParams ShelleyEra) Natural
ppMaxCollateralInputsT = Natural -> Lens' (PParams ShelleyEra) Natural
forall b a. b -> Lens' a b
dummyLens Natural
0
ppCollateralPercentageT :: Lens' (PParams ShelleyEra) Natural
ppCollateralPercentageT = Natural -> Lens' (PParams ShelleyEra) Natural
forall b a. b -> Lens' a b
dummyLens Natural
0
ppCostModelsT :: Lens' (PParams ShelleyEra) CostModels
ppCostModelsT = CostModels -> Lens' (PParams ShelleyEra) CostModels
forall b a. b -> Lens' a b
dummyLens CostModels
forall a. Monoid a => a
mempty
ppMaxTxExUnitsT :: Lens' (PParams ShelleyEra) ExUnits
ppMaxTxExUnitsT = ExUnits -> Lens' (PParams ShelleyEra) ExUnits
forall b a. b -> Lens' a b
dummyLens ExUnits
forall a. Monoid a => a
mempty
ppMaxBlockExUnitsT :: Lens' (PParams ShelleyEra) ExUnits
ppMaxBlockExUnitsT = ExUnits -> Lens' (PParams ShelleyEra) ExUnits
forall b a. b -> Lens' a b
dummyLens ExUnits
forall a. Monoid a => a
mempty
ppMaxValSizeT :: Lens' (PParams ShelleyEra) Natural
ppMaxValSizeT = Natural -> Lens' (PParams ShelleyEra) Natural
forall b a. b -> Lens' a b
dummyLens Natural
0
mkScriptIntegrityHash :: PParams ShelleyEra
-> [Language]
-> TxWits ShelleyEra
-> StrictMaybe ScriptIntegrityHash
mkScriptIntegrityHash PParams ShelleyEra
_ [Language]
_ TxWits ShelleyEra
_ = StrictMaybe ScriptIntegrityHash
forall a. StrictMaybe a
SNothing
genPParams :: GenSize -> Gen (PParams ShelleyEra)
genPParams GenSize
_ = Gen (PParams ShelleyEra)
forall era. EraPParams era => Gen (PParams era)
shelleyGenPParams
instance EraGenericGen MaryEra where
setValidity :: ValidityInterval -> TxBody MaryEra -> TxBody MaryEra
setValidity = ValidityInterval -> TxBody MaryEra -> TxBody MaryEra
forall era.
AllegraEraTxBody era =>
ValidityInterval -> TxBody era -> TxBody era
allegraSetValidity
setReferenceInputs :: Set TxIn -> TxBody MaryEra -> TxBody MaryEra
setReferenceInputs = (TxBody MaryEra -> TxBody MaryEra)
-> Set TxIn -> TxBody MaryEra -> TxBody MaryEra
forall a b. a -> b -> a
const TxBody MaryEra -> TxBody MaryEra
forall a. a -> a
id
setCollateralInputs :: Set TxIn -> TxBody MaryEra -> TxBody MaryEra
setCollateralInputs = (TxBody MaryEra -> TxBody MaryEra)
-> Set TxIn -> TxBody MaryEra -> TxBody MaryEra
forall a b. a -> b -> a
const TxBody MaryEra -> TxBody MaryEra
forall a. a -> a
id
setTotalCollateral :: StrictMaybe Coin -> TxBody MaryEra -> TxBody MaryEra
setTotalCollateral = (TxBody MaryEra -> TxBody MaryEra)
-> StrictMaybe Coin -> TxBody MaryEra -> TxBody MaryEra
forall a b. a -> b -> a
const TxBody MaryEra -> TxBody MaryEra
forall a. a -> a
id
setCollateralReturn :: StrictMaybe (TxOut MaryEra) -> TxBody MaryEra -> TxBody MaryEra
setCollateralReturn = (TxBody MaryEra -> TxBody MaryEra)
-> StrictMaybe (ShelleyTxOut MaryEra)
-> TxBody MaryEra
-> TxBody MaryEra
forall a b. a -> b -> a
const TxBody MaryEra -> TxBody MaryEra
forall a. a -> a
id
addRedeemers :: Redeemers MaryEra -> TxWits MaryEra -> TxWits MaryEra
addRedeemers = (ShelleyTxWits MaryEra -> ShelleyTxWits MaryEra)
-> Redeemers MaryEra
-> ShelleyTxWits MaryEra
-> ShelleyTxWits MaryEra
forall a b. a -> b -> a
const ShelleyTxWits MaryEra -> ShelleyTxWits MaryEra
forall a. a -> a
id
setScriptIntegrityHash :: StrictMaybe ScriptIntegrityHash -> TxBody MaryEra -> TxBody MaryEra
setScriptIntegrityHash = (TxBody MaryEra -> TxBody MaryEra)
-> StrictMaybe ScriptIntegrityHash
-> TxBody MaryEra
-> TxBody MaryEra
forall a b. a -> b -> a
const TxBody MaryEra -> TxBody MaryEra
forall a. a -> a
id
setNetworkIdTxBody :: StrictMaybe Network -> TxBody MaryEra -> TxBody MaryEra
setNetworkIdTxBody = (TxBody MaryEra -> TxBody MaryEra)
-> StrictMaybe Network -> TxBody MaryEra -> TxBody MaryEra
forall a b. a -> b -> a
const TxBody MaryEra -> TxBody MaryEra
forall a. a -> a
id
genExUnits :: Int -> GenRS MaryEra [ExUnits]
genExUnits = GenRS MaryEra [ExUnits] -> Int -> GenRS MaryEra [ExUnits]
forall a b. a -> b -> a
const (GenRS MaryEra [ExUnits] -> Int -> GenRS MaryEra [ExUnits])
-> GenRS MaryEra [ExUnits] -> Int -> GenRS MaryEra [ExUnits]
forall a b. (a -> b) -> a -> b
$ [ExUnits] -> GenRS MaryEra [ExUnits]
forall a. a -> RWST (GenEnv MaryEra) () (GenState MaryEra) Gen a
forall (f :: * -> *) a. Applicative f => a -> f a
pure []
ppMaxCollateralInputsT :: Lens' (PParams MaryEra) Natural
ppMaxCollateralInputsT = Natural -> Lens' (PParams MaryEra) Natural
forall b a. b -> Lens' a b
dummyLens Natural
0
ppCollateralPercentageT :: Lens' (PParams MaryEra) Natural
ppCollateralPercentageT = Natural -> Lens' (PParams MaryEra) Natural
forall b a. b -> Lens' a b
dummyLens Natural
0
ppCostModelsT :: Lens' (PParams MaryEra) CostModels
ppCostModelsT = CostModels -> Lens' (PParams MaryEra) CostModels
forall b a. b -> Lens' a b
dummyLens CostModels
forall a. Monoid a => a
mempty
ppMaxTxExUnitsT :: Lens' (PParams MaryEra) ExUnits
ppMaxTxExUnitsT = ExUnits -> Lens' (PParams MaryEra) ExUnits
forall b a. b -> Lens' a b
dummyLens ExUnits
forall a. Monoid a => a
mempty
ppMaxBlockExUnitsT :: Lens' (PParams MaryEra) ExUnits
ppMaxBlockExUnitsT = ExUnits -> Lens' (PParams MaryEra) ExUnits
forall b a. b -> Lens' a b
dummyLens ExUnits
forall a. Monoid a => a
mempty
ppMaxValSizeT :: Lens' (PParams MaryEra) Natural
ppMaxValSizeT = Natural -> Lens' (PParams MaryEra) Natural
forall b a. b -> Lens' a b
dummyLens Natural
0
mkScriptIntegrityHash :: PParams MaryEra
-> [Language] -> TxWits MaryEra -> StrictMaybe ScriptIntegrityHash
mkScriptIntegrityHash PParams MaryEra
_ [Language]
_ TxWits MaryEra
_ = StrictMaybe ScriptIntegrityHash
forall a. StrictMaybe a
SNothing
genPParams :: GenSize -> Gen (PParams MaryEra)
genPParams GenSize
_ = Gen (PParams MaryEra)
forall era. EraPParams era => Gen (PParams era)
shelleyGenPParams
instance EraGenericGen AllegraEra where
setValidity :: ValidityInterval -> TxBody AllegraEra -> TxBody AllegraEra
setValidity = ValidityInterval -> TxBody AllegraEra -> TxBody AllegraEra
forall era.
AllegraEraTxBody era =>
ValidityInterval -> TxBody era -> TxBody era
allegraSetValidity
setReferenceInputs :: Set TxIn -> TxBody AllegraEra -> TxBody AllegraEra
setReferenceInputs = (TxBody AllegraEra -> TxBody AllegraEra)
-> Set TxIn -> TxBody AllegraEra -> TxBody AllegraEra
forall a b. a -> b -> a
const TxBody AllegraEra -> TxBody AllegraEra
forall a. a -> a
id
setCollateralInputs :: Set TxIn -> TxBody AllegraEra -> TxBody AllegraEra
setCollateralInputs = (TxBody AllegraEra -> TxBody AllegraEra)
-> Set TxIn -> TxBody AllegraEra -> TxBody AllegraEra
forall a b. a -> b -> a
const TxBody AllegraEra -> TxBody AllegraEra
forall a. a -> a
id
setTotalCollateral :: StrictMaybe Coin -> TxBody AllegraEra -> TxBody AllegraEra
setTotalCollateral = (TxBody AllegraEra -> TxBody AllegraEra)
-> StrictMaybe Coin -> TxBody AllegraEra -> TxBody AllegraEra
forall a b. a -> b -> a
const TxBody AllegraEra -> TxBody AllegraEra
forall a. a -> a
id
setCollateralReturn :: StrictMaybe (TxOut AllegraEra)
-> TxBody AllegraEra -> TxBody AllegraEra
setCollateralReturn = (TxBody AllegraEra -> TxBody AllegraEra)
-> StrictMaybe (ShelleyTxOut AllegraEra)
-> TxBody AllegraEra
-> TxBody AllegraEra
forall a b. a -> b -> a
const TxBody AllegraEra -> TxBody AllegraEra
forall a. a -> a
id
addRedeemers :: Redeemers AllegraEra -> TxWits AllegraEra -> TxWits AllegraEra
addRedeemers = (ShelleyTxWits AllegraEra -> ShelleyTxWits AllegraEra)
-> Redeemers AllegraEra
-> ShelleyTxWits AllegraEra
-> ShelleyTxWits AllegraEra
forall a b. a -> b -> a
const ShelleyTxWits AllegraEra -> ShelleyTxWits AllegraEra
forall a. a -> a
id
setScriptIntegrityHash :: StrictMaybe ScriptIntegrityHash
-> TxBody AllegraEra -> TxBody AllegraEra
setScriptIntegrityHash = (TxBody AllegraEra -> TxBody AllegraEra)
-> StrictMaybe ScriptIntegrityHash
-> TxBody AllegraEra
-> TxBody AllegraEra
forall a b. a -> b -> a
const TxBody AllegraEra -> TxBody AllegraEra
forall a. a -> a
id
setNetworkIdTxBody :: StrictMaybe Network -> TxBody AllegraEra -> TxBody AllegraEra
setNetworkIdTxBody = (TxBody AllegraEra -> TxBody AllegraEra)
-> StrictMaybe Network -> TxBody AllegraEra -> TxBody AllegraEra
forall a b. a -> b -> a
const TxBody AllegraEra -> TxBody AllegraEra
forall a. a -> a
id
genExUnits :: Int -> GenRS AllegraEra [ExUnits]
genExUnits = GenRS AllegraEra [ExUnits] -> Int -> GenRS AllegraEra [ExUnits]
forall a b. a -> b -> a
const (GenRS AllegraEra [ExUnits] -> Int -> GenRS AllegraEra [ExUnits])
-> GenRS AllegraEra [ExUnits] -> Int -> GenRS AllegraEra [ExUnits]
forall a b. (a -> b) -> a -> b
$ [ExUnits] -> GenRS AllegraEra [ExUnits]
forall a.
a -> RWST (GenEnv AllegraEra) () (GenState AllegraEra) Gen a
forall (f :: * -> *) a. Applicative f => a -> f a
pure []
ppMaxCollateralInputsT :: Lens' (PParams AllegraEra) Natural
ppMaxCollateralInputsT = Natural -> Lens' (PParams AllegraEra) Natural
forall b a. b -> Lens' a b
dummyLens Natural
0
ppCollateralPercentageT :: Lens' (PParams AllegraEra) Natural
ppCollateralPercentageT = Natural -> Lens' (PParams AllegraEra) Natural
forall b a. b -> Lens' a b
dummyLens Natural
0
ppCostModelsT :: Lens' (PParams AllegraEra) CostModels
ppCostModelsT = CostModels -> Lens' (PParams AllegraEra) CostModels
forall b a. b -> Lens' a b
dummyLens CostModels
forall a. Monoid a => a
mempty
ppMaxTxExUnitsT :: Lens' (PParams AllegraEra) ExUnits
ppMaxTxExUnitsT = ExUnits -> Lens' (PParams AllegraEra) ExUnits
forall b a. b -> Lens' a b
dummyLens ExUnits
forall a. Monoid a => a
mempty
ppMaxBlockExUnitsT :: Lens' (PParams AllegraEra) ExUnits
ppMaxBlockExUnitsT = ExUnits -> Lens' (PParams AllegraEra) ExUnits
forall b a. b -> Lens' a b
dummyLens ExUnits
forall a. Monoid a => a
mempty
ppMaxValSizeT :: Lens' (PParams AllegraEra) Natural
ppMaxValSizeT = Natural -> Lens' (PParams AllegraEra) Natural
forall b a. b -> Lens' a b
dummyLens Natural
0
mkScriptIntegrityHash :: PParams AllegraEra
-> [Language]
-> TxWits AllegraEra
-> StrictMaybe ScriptIntegrityHash
mkScriptIntegrityHash PParams AllegraEra
_ [Language]
_ TxWits AllegraEra
_ = StrictMaybe ScriptIntegrityHash
forall a. StrictMaybe a
SNothing
genPParams :: GenSize -> Gen (PParams AllegraEra)
genPParams GenSize
_ = Gen (PParams AllegraEra)
forall era. EraPParams era => Gen (PParams era)
shelleyGenPParams
alonzoMkScriptIntegrityHash ::
( EraModel era
, AlonzoEraTxWits era
) =>
PParams era -> [Language] -> TxWits era -> StrictMaybe ScriptIntegrityHash
alonzoMkScriptIntegrityHash :: forall era.
(EraModel era, AlonzoEraTxWits era) =>
PParams era
-> [Language] -> TxWits era -> StrictMaybe ScriptIntegrityHash
alonzoMkScriptIntegrityHash PParams era
pp [Language]
langs TxWits era
wits =
PParams era
-> [Language]
-> Redeemers era
-> TxDats era
-> StrictMaybe ScriptIntegrityHash
forall era.
EraModel era =>
PParams era
-> [Language]
-> Redeemers era
-> TxDats era
-> StrictMaybe ScriptIntegrityHash
newScriptIntegrityHash PParams era
pp [Language]
langs (TxWits era
wits TxWits era
-> Getting (Redeemers era) (TxWits era) (Redeemers era)
-> Redeemers era
forall s a. s -> Getting a s a -> a
^. Getting (Redeemers era) (TxWits era) (Redeemers era)
forall era.
AlonzoEraTxWits era =>
Lens' (TxWits era) (Redeemers era)
Lens' (TxWits era) (Redeemers era)
rdmrsTxWitsL) (TxWits era
wits TxWits era
-> Getting (TxDats era) (TxWits era) (TxDats era) -> TxDats era
forall s a. s -> Getting a s a -> a
^. Getting (TxDats era) (TxWits era) (TxDats era)
forall era. AlonzoEraTxWits era => Lens' (TxWits era) (TxDats era)
Lens' (TxWits era) (TxDats era)
datsTxWitsL)
alonzoGenExUnits :: AlonzoEraPParams era => Int -> GenRS era [ExUnits]
alonzoGenExUnits :: forall era. AlonzoEraPParams era => Int -> GenRS era [ExUnits]
alonzoGenExUnits Int
n = do
GenEnv {PParams era
gePParams :: PParams era
gePParams :: forall era. GenEnv era -> PParams era
gePParams} <- (GenState era -> GenEnv era)
-> RWST (GenEnv era) () (GenState era) Gen (GenEnv era)
forall s (m :: * -> *) a. MonadState s m => (s -> a) -> m a
gets GenState era -> GenEnv era
forall era. GenState era -> GenEnv era
gsGenEnv
let ExUnits Natural
maxMemUnits Natural
maxStepUnits = PParams era
gePParams PParams era -> Getting ExUnits (PParams era) ExUnits -> ExUnits
forall s a. s -> Getting a s a -> a
^. Getting ExUnits (PParams era) ExUnits
forall era. AlonzoEraPParams era => Lens' (PParams era) ExUnits
Lens' (PParams era) ExUnits
ppMaxTxExUnitsL
[Natural]
memUnits <- Gen [Natural] -> RWST (GenEnv era) () (GenState era) Gen [Natural]
forall (m :: * -> *) a.
Monad m =>
m a -> RWST (GenEnv era) () (GenState era) m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (Gen [Natural]
-> RWST (GenEnv era) () (GenState era) Gen [Natural])
-> Gen [Natural]
-> RWST (GenEnv era) () (GenState era) Gen [Natural]
forall a b. (a -> b) -> a -> b
$ Natural -> Gen [Natural]
genSequenceSum Natural
maxMemUnits
[Natural]
stepUnits <- Gen [Natural] -> RWST (GenEnv era) () (GenState era) Gen [Natural]
forall (m :: * -> *) a.
Monad m =>
m a -> RWST (GenEnv era) () (GenState era) m a
forall (t :: (* -> *) -> * -> *) (m :: * -> *) a.
(MonadTrans t, Monad m) =>
m a -> t m a
lift (Gen [Natural]
-> RWST (GenEnv era) () (GenState era) Gen [Natural])
-> Gen [Natural]
-> RWST (GenEnv era) () (GenState era) Gen [Natural]
forall a b. (a -> b) -> a -> b
$ Natural -> Gen [Natural]
genSequenceSum Natural
maxStepUnits
[ExUnits] -> GenRS era [ExUnits]
forall a. a -> RWST (GenEnv era) () (GenState era) Gen a
forall (f :: * -> *) a. Applicative f => a -> f a
pure ([ExUnits] -> GenRS era [ExUnits])
-> [ExUnits] -> GenRS era [ExUnits]
forall a b. (a -> b) -> a -> b
$ (Natural -> Natural -> ExUnits)
-> [Natural] -> [Natural] -> [ExUnits]
forall a b c. (a -> b -> c) -> [a] -> [b] -> [c]
zipWith Natural -> Natural -> ExUnits
ExUnits [Natural]
memUnits [Natural]
stepUnits
where
un :: Natural
un = Int -> Natural
forall a b. (Integral a, Num b) => a -> b
fromIntegral Int
n
genUpTo :: Natural -> (a, [a]) -> p -> Gen (a, [a])
genUpTo Natural
maxVal (!a
totalLeft, ![a]
acc) p
_
| a
totalLeft a -> a -> Bool
forall a. Eq a => a -> a -> Bool
== a
0 = (a, [a]) -> Gen (a, [a])
forall a. a -> Gen a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (a
0, a
0 a -> [a] -> [a]
forall a. a -> [a] -> [a]
: [a]
acc)
| Bool
otherwise = do
a
x <- a -> a -> a
forall a. Ord a => a -> a -> a
min a
totalLeft (a -> a) -> (Natural -> a) -> Natural -> a
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Ratio Natural -> a
forall b. Integral b => Ratio Natural -> b
forall a b. (RealFrac a, Integral b) => a -> b
round (Ratio Natural -> a) -> (Natural -> Ratio Natural) -> Natural -> a
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Natural -> Natural -> Ratio Natural
forall a. Integral a => a -> a -> Ratio a
% Natural
un) (Natural -> a) -> Gen Natural -> Gen a
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Natural -> Natural -> Gen Natural
genNatural Natural
0 Natural
maxVal
(a, [a]) -> Gen (a, [a])
forall a. a -> Gen a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (a
totalLeft a -> a -> a
forall a. Num a => a -> a -> a
- a
x, a
x a -> [a] -> [a]
forall a. a -> [a] -> [a]
: [a]
acc)
genSequenceSum :: Natural -> Gen [Natural]
genSequenceSum Natural
maxVal
| Natural
maxVal Natural -> Natural -> Bool
forall a. Eq a => a -> a -> Bool
== Natural
0 = [Natural] -> Gen [Natural]
forall a. a -> Gen a
forall (f :: * -> *) a. Applicative f => a -> f a
pure ([Natural] -> Gen [Natural]) -> [Natural] -> Gen [Natural]
forall a b. (a -> b) -> a -> b
$ Int -> Natural -> [Natural]
forall a. Int -> a -> [a]
replicate Int
n Natural
0
| Bool
otherwise = (Natural, [Natural]) -> [Natural]
forall a b. (a, b) -> b
snd ((Natural, [Natural]) -> [Natural])
-> Gen (Natural, [Natural]) -> Gen [Natural]
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> ((Natural, [Natural]) -> Int -> Gen (Natural, [Natural]))
-> (Natural, [Natural]) -> [Int] -> Gen (Natural, [Natural])
forall (t :: * -> *) (m :: * -> *) b a.
(Foldable t, Monad m) =>
(b -> a -> m b) -> b -> t a -> m b
F.foldlM (Natural -> (Natural, [Natural]) -> Int -> Gen (Natural, [Natural])
forall {a} {p}.
Integral a =>
Natural -> (a, [a]) -> p -> Gen (a, [a])
genUpTo Natural
maxVal) (Natural
maxVal, []) ([Int
Item [Int]
1 .. Int
Item [Int]
n] :: [Int])
instance EraGenericGen AlonzoEra where
setValidity :: ValidityInterval -> TxBody AlonzoEra -> TxBody AlonzoEra
setValidity = ValidityInterval -> TxBody AlonzoEra -> TxBody AlonzoEra
forall era.
AllegraEraTxBody era =>
ValidityInterval -> TxBody era -> TxBody era
allegraSetValidity
setCollateralInputs :: Set TxIn -> TxBody AlonzoEra -> TxBody AlonzoEra
setCollateralInputs = ASetter (TxBody AlonzoEra) (TxBody AlonzoEra) (Set TxIn) (Set TxIn)
-> Set TxIn -> TxBody AlonzoEra -> TxBody AlonzoEra
forall s t a b. ASetter s t a b -> b -> s -> t
L.set ASetter (TxBody AlonzoEra) (TxBody AlonzoEra) (Set TxIn) (Set TxIn)
forall era. AlonzoEraTxBody era => Lens' (TxBody era) (Set TxIn)
Lens' (TxBody AlonzoEra) (Set TxIn)
collateralInputsTxBodyL
addRedeemers :: Redeemers AlonzoEra -> TxWits AlonzoEra -> TxWits AlonzoEra
addRedeemers Redeemers AlonzoEra
x = (Redeemers AlonzoEra -> Identity (Redeemers AlonzoEra))
-> TxWits AlonzoEra -> Identity (TxWits AlonzoEra)
(Redeemers AlonzoEra -> Identity (Redeemers AlonzoEra))
-> AlonzoTxWits AlonzoEra -> Identity (AlonzoTxWits AlonzoEra)
forall era.
AlonzoEraTxWits era =>
Lens' (TxWits era) (Redeemers era)
Lens' (TxWits AlonzoEra) (Redeemers AlonzoEra)
rdmrsTxWitsL ((Redeemers AlonzoEra -> Identity (Redeemers AlonzoEra))
-> AlonzoTxWits AlonzoEra -> Identity (AlonzoTxWits AlonzoEra))
-> Redeemers AlonzoEra
-> AlonzoTxWits AlonzoEra
-> AlonzoTxWits AlonzoEra
forall a s t. Monoid a => ASetter s t a a -> a -> s -> t
<>~ Redeemers AlonzoEra
x
genExUnits :: Int -> GenRS AlonzoEra [ExUnits]
genExUnits = Int -> GenRS AlonzoEra [ExUnits]
forall era. AlonzoEraPParams era => Int -> GenRS era [ExUnits]
alonzoGenExUnits
setNetworkIdTxBody :: StrictMaybe Network -> TxBody AlonzoEra -> TxBody AlonzoEra
setNetworkIdTxBody = ASetter
(TxBody AlonzoEra)
(TxBody AlonzoEra)
(StrictMaybe Network)
(StrictMaybe Network)
-> StrictMaybe Network -> TxBody AlonzoEra -> TxBody AlonzoEra
forall s t a b. ASetter s t a b -> b -> s -> t
L.set ASetter
(TxBody AlonzoEra)
(TxBody AlonzoEra)
(StrictMaybe Network)
(StrictMaybe Network)
forall era.
AlonzoEraTxBody era =>
Lens' (TxBody era) (StrictMaybe Network)
Lens' (TxBody AlonzoEra) (StrictMaybe Network)
networkIdTxBodyL
ppMaxCollateralInputsT :: Lens' (PParams AlonzoEra) Natural
ppMaxCollateralInputsT = (Natural -> f Natural)
-> PParams AlonzoEra -> f (PParams AlonzoEra)
forall era. AlonzoEraPParams era => Lens' (PParams era) Natural
Lens' (PParams AlonzoEra) Natural
ppMaxCollateralInputsL
ppCollateralPercentageT :: Lens' (PParams AlonzoEra) Natural
ppCollateralPercentageT = (Natural -> f Natural)
-> PParams AlonzoEra -> f (PParams AlonzoEra)
forall era. AlonzoEraPParams era => Lens' (PParams era) Natural
Lens' (PParams AlonzoEra) Natural
ppCollateralPercentageL
mkScriptIntegrityHash :: PParams AlonzoEra
-> [Language]
-> TxWits AlonzoEra
-> StrictMaybe ScriptIntegrityHash
mkScriptIntegrityHash = PParams AlonzoEra
-> [Language]
-> TxWits AlonzoEra
-> StrictMaybe ScriptIntegrityHash
forall era.
(EraModel era, AlonzoEraTxWits era) =>
PParams era
-> [Language] -> TxWits era -> StrictMaybe ScriptIntegrityHash
alonzoMkScriptIntegrityHash
ppCostModelsT :: Lens' (PParams AlonzoEra) CostModels
ppCostModelsT = (CostModels -> f CostModels)
-> PParams AlonzoEra -> f (PParams AlonzoEra)
forall era. AlonzoEraPParams era => Lens' (PParams era) CostModels
Lens' (PParams AlonzoEra) CostModels
ppCostModelsL
ppMaxTxExUnitsT :: Lens' (PParams AlonzoEra) ExUnits
ppMaxTxExUnitsT = (ExUnits -> f ExUnits)
-> PParams AlonzoEra -> f (PParams AlonzoEra)
forall era. AlonzoEraPParams era => Lens' (PParams era) ExUnits
Lens' (PParams AlonzoEra) ExUnits
ppMaxTxExUnitsL
ppMaxBlockExUnitsT :: Lens' (PParams AlonzoEra) ExUnits
ppMaxBlockExUnitsT = (ExUnits -> f ExUnits)
-> PParams AlonzoEra -> f (PParams AlonzoEra)
forall era. AlonzoEraPParams era => Lens' (PParams era) ExUnits
Lens' (PParams AlonzoEra) ExUnits
ppMaxBlockExUnitsL
ppMaxValSizeT :: Lens' (PParams AlonzoEra) Natural
ppMaxValSizeT = (Natural -> f Natural)
-> PParams AlonzoEra -> f (PParams AlonzoEra)
forall era. AlonzoEraPParams era => Lens' (PParams era) Natural
Lens' (PParams AlonzoEra) Natural
ppMaxValSizeL
setScriptIntegrityHash :: StrictMaybe ScriptIntegrityHash
-> TxBody AlonzoEra -> TxBody AlonzoEra
setScriptIntegrityHash = ASetter
(TxBody AlonzoEra)
(TxBody AlonzoEra)
(StrictMaybe ScriptIntegrityHash)
(StrictMaybe ScriptIntegrityHash)
-> StrictMaybe ScriptIntegrityHash
-> TxBody AlonzoEra
-> TxBody AlonzoEra
forall s t a b. ASetter s t a b -> b -> s -> t
L.set ASetter
(TxBody AlonzoEra)
(TxBody AlonzoEra)
(StrictMaybe ScriptIntegrityHash)
(StrictMaybe ScriptIntegrityHash)
forall era.
AlonzoEraTxBody era =>
Lens' (TxBody era) (StrictMaybe ScriptIntegrityHash)
Lens' (TxBody AlonzoEra) (StrictMaybe ScriptIntegrityHash)
scriptIntegrityHashTxBodyL
setReferenceInputs :: Set TxIn -> TxBody AlonzoEra -> TxBody AlonzoEra
setReferenceInputs = (TxBody AlonzoEra -> TxBody AlonzoEra)
-> Set TxIn -> TxBody AlonzoEra -> TxBody AlonzoEra
forall a b. a -> b -> a
const TxBody AlonzoEra -> TxBody AlonzoEra
forall a. a -> a
id
setTotalCollateral :: StrictMaybe Coin -> TxBody AlonzoEra -> TxBody AlonzoEra
setTotalCollateral = (TxBody AlonzoEra -> TxBody AlonzoEra)
-> StrictMaybe Coin -> TxBody AlonzoEra -> TxBody AlonzoEra
forall a b. a -> b -> a
const TxBody AlonzoEra -> TxBody AlonzoEra
forall a. a -> a
id
setCollateralReturn :: StrictMaybe (TxOut AlonzoEra)
-> TxBody AlonzoEra -> TxBody AlonzoEra
setCollateralReturn = (TxBody AlonzoEra -> TxBody AlonzoEra)
-> StrictMaybe (AlonzoTxOut AlonzoEra)
-> TxBody AlonzoEra
-> TxBody AlonzoEra
forall a b. a -> b -> a
const TxBody AlonzoEra -> TxBody AlonzoEra
forall a. a -> a
id
genPParams :: GenSize -> Gen (PParams AlonzoEra)
genPParams = GenSize -> Gen (PParams AlonzoEra)
forall era. AlonzoEraTest era => GenSize -> Gen (PParams era)
alonzoGenPParams
shelleyApplyTx :: EraModel era => Int -> SlotNo -> Model era -> Tx era -> Model era
shelleyApplyTx :: forall era.
EraModel era =>
Int -> SlotNo -> Model era -> Tx era -> Model era
shelleyApplyTx Int
count SlotNo
slot Model era
model Tx era
tx = Int -> Model era -> TxBody era -> Model era
forall era.
EraModel era =>
Int -> Model era -> TxBody era -> Model era
applyTxBody Int
count Model era
epochAccurateModel (TxBody era -> Model era) -> TxBody era -> Model era
forall a b. (a -> b) -> a -> b
$ Tx era
tx Tx era -> Getting (TxBody era) (Tx era) (TxBody era) -> TxBody era
forall s a. s -> Getting a s a -> a
^. Getting (TxBody era) (Tx era) (TxBody era)
forall era. EraTx era => Lens' (Tx era) (TxBody era)
Lens' (Tx era) (TxBody era)
bodyTxL
where
modelEpoch :: EpochNo
modelEpoch = Model era -> EpochNo
forall era. ModelNewEpochState era -> EpochNo
mEL Model era
model
transactionEpoch :: EpochNo
transactionEpoch = SlotNo -> EpochNo
epochFromSlotNo SlotNo
slot
epochAccurateModel :: Model era
epochAccurateModel = EpochNo -> EpochNo -> Model era -> Model era
forall era.
EraPParams era =>
EpochNo -> EpochNo -> Model era -> Model era
epochBoundary EpochNo
transactionEpoch EpochNo
modelEpoch Model era
model
alonzoApplyTx ::
forall era.
(EraModel era, AlonzoEraTx era, Reflect era) =>
Int -> SlotNo -> Model era -> Tx era -> Model era
alonzoApplyTx :: forall era.
(EraModel era, AlonzoEraTx era, Reflect era) =>
Int -> SlotNo -> Model era -> Tx era -> Model era
alonzoApplyTx Int
count SlotNo
slot Model era
model Tx era
tx = case Tx era
tx Tx era -> Getting IsValid (Tx era) IsValid -> IsValid
forall s a. s -> Getting a s a -> a
^. Getting IsValid (Tx era) IsValid
forall era. AlonzoEraTx era => Lens' (Tx era) IsValid
Lens' (Tx era) IsValid
isValidTxL of
IsValid Bool
True -> Int -> Model era -> Tx era -> Model era
forall era. EraModel era => Int -> Model era -> Tx era -> Model era
applyTxSimple Int
count Model era
epochAccurateModel Tx era
tx
IsValid Bool
False -> Int -> TxIx -> Model era -> Tx era -> Model era
forall era.
(Reflect era, AlonzoEraTxBody era, EraModel era) =>
Int -> TxIx -> Model era -> Tx era -> Model era
applyTxFail Int
count TxIx
nextTxIx Model era
epochAccurateModel Tx era
tx
where
transactionEpoch :: EpochNo
transactionEpoch = SlotNo -> EpochNo
epochFromSlotNo SlotNo
slot
modelEpoch :: EpochNo
modelEpoch = Model era -> EpochNo
forall era. ModelNewEpochState era -> EpochNo
mEL Model era
model
epochAccurateModel :: Model era
epochAccurateModel = EpochNo -> EpochNo -> Model era -> Model era
forall era.
EraPParams era =>
EpochNo -> EpochNo -> Model era -> Model era
epochBoundary EpochNo
transactionEpoch EpochNo
modelEpoch Model era
model
txbody :: TxBody era
txbody = Tx era
tx Tx era -> Getting (TxBody era) (Tx era) (TxBody era) -> TxBody era
forall s a. s -> Getting a s a -> a
^. Getting (TxBody era) (Tx era) (TxBody era)
forall era. EraTx era => Lens' (Tx era) (TxBody era)
Lens' (Tx era) (TxBody era)
bodyTxL
outputs :: StrictSeq (TxOut era)
outputs = TxBody era
txbody TxBody era
-> Getting
(StrictSeq (TxOut era)) (TxBody era) (StrictSeq (TxOut era))
-> StrictSeq (TxOut era)
forall s a. s -> Getting a s a -> a
^. Getting
(StrictSeq (TxOut era)) (TxBody era) (StrictSeq (TxOut era))
forall era.
EraTxBody era =>
Lens' (TxBody era) (StrictSeq (TxOut era))
Lens' (TxBody era) (StrictSeq (TxOut era))
outputsTxBodyL
nextTxIx :: TxIx
nextTxIx = HasCallStack => Integer -> TxIx
Integer -> TxIx
mkTxIxPartial (Int -> Integer
forall a b. (Integral a, Num b) => a -> b
fromIntegral (StrictSeq (TxOut era) -> Int
forall a. StrictSeq a -> Int
forall (t :: * -> *) a. Foldable t => t a -> Int
length StrictSeq (TxOut era)
outputs))
instance EraGenericGen BabbageEra where
setValidity :: ValidityInterval -> TxBody BabbageEra -> TxBody BabbageEra
setValidity = ValidityInterval -> TxBody BabbageEra -> TxBody BabbageEra
forall era.
AllegraEraTxBody era =>
ValidityInterval -> TxBody era -> TxBody era
allegraSetValidity
setReferenceInputs :: Set TxIn -> TxBody BabbageEra -> TxBody BabbageEra
setReferenceInputs = ASetter
(TxBody BabbageEra) (TxBody BabbageEra) (Set TxIn) (Set TxIn)
-> Set TxIn -> TxBody BabbageEra -> TxBody BabbageEra
forall s t a b. ASetter s t a b -> b -> s -> t
L.set ASetter
(TxBody BabbageEra) (TxBody BabbageEra) (Set TxIn) (Set TxIn)
forall era. BabbageEraTxBody era => Lens' (TxBody era) (Set TxIn)
Lens' (TxBody BabbageEra) (Set TxIn)
referenceInputsTxBodyL
setCollateralInputs :: Set TxIn -> TxBody BabbageEra -> TxBody BabbageEra
setCollateralInputs = ASetter
(TxBody BabbageEra) (TxBody BabbageEra) (Set TxIn) (Set TxIn)
-> Set TxIn -> TxBody BabbageEra -> TxBody BabbageEra
forall s t a b. ASetter s t a b -> b -> s -> t
L.set ASetter
(TxBody BabbageEra) (TxBody BabbageEra) (Set TxIn) (Set TxIn)
forall era. AlonzoEraTxBody era => Lens' (TxBody era) (Set TxIn)
Lens' (TxBody BabbageEra) (Set TxIn)
collateralInputsTxBodyL
setTotalCollateral :: StrictMaybe Coin -> TxBody BabbageEra -> TxBody BabbageEra
setTotalCollateral = ASetter
(TxBody BabbageEra)
(TxBody BabbageEra)
(StrictMaybe Coin)
(StrictMaybe Coin)
-> StrictMaybe Coin -> TxBody BabbageEra -> TxBody BabbageEra
forall s t a b. ASetter s t a b -> b -> s -> t
L.set ASetter
(TxBody BabbageEra)
(TxBody BabbageEra)
(StrictMaybe Coin)
(StrictMaybe Coin)
forall era.
BabbageEraTxBody era =>
Lens' (TxBody era) (StrictMaybe Coin)
Lens' (TxBody BabbageEra) (StrictMaybe Coin)
totalCollateralTxBodyL
setCollateralReturn :: StrictMaybe (TxOut BabbageEra)
-> TxBody BabbageEra -> TxBody BabbageEra
setCollateralReturn = ASetter
(TxBody BabbageEra)
(TxBody BabbageEra)
(StrictMaybe (BabbageTxOut BabbageEra))
(StrictMaybe (BabbageTxOut BabbageEra))
-> StrictMaybe (BabbageTxOut BabbageEra)
-> TxBody BabbageEra
-> TxBody BabbageEra
forall s t a b. ASetter s t a b -> b -> s -> t
L.set (StrictMaybe (TxOut BabbageEra)
-> Identity (StrictMaybe (TxOut BabbageEra)))
-> TxBody BabbageEra -> Identity (TxBody BabbageEra)
ASetter
(TxBody BabbageEra)
(TxBody BabbageEra)
(StrictMaybe (BabbageTxOut BabbageEra))
(StrictMaybe (BabbageTxOut BabbageEra))
forall era.
BabbageEraTxBody era =>
Lens' (TxBody era) (StrictMaybe (TxOut era))
Lens' (TxBody BabbageEra) (StrictMaybe (TxOut BabbageEra))
collateralReturnTxBodyL
addRedeemers :: Redeemers BabbageEra -> TxWits BabbageEra -> TxWits BabbageEra
addRedeemers Redeemers BabbageEra
x = (Redeemers BabbageEra -> Identity (Redeemers BabbageEra))
-> TxWits BabbageEra -> Identity (TxWits BabbageEra)
(Redeemers BabbageEra -> Identity (Redeemers BabbageEra))
-> AlonzoTxWits BabbageEra -> Identity (AlonzoTxWits BabbageEra)
forall era.
AlonzoEraTxWits era =>
Lens' (TxWits era) (Redeemers era)
Lens' (TxWits BabbageEra) (Redeemers BabbageEra)
rdmrsTxWitsL ((Redeemers BabbageEra -> Identity (Redeemers BabbageEra))
-> AlonzoTxWits BabbageEra -> Identity (AlonzoTxWits BabbageEra))
-> Redeemers BabbageEra
-> AlonzoTxWits BabbageEra
-> AlonzoTxWits BabbageEra
forall a s t. Monoid a => ASetter s t a a -> a -> s -> t
<>~ Redeemers BabbageEra
x
genExUnits :: Int -> GenRS BabbageEra [ExUnits]
genExUnits = Int -> GenRS BabbageEra [ExUnits]
forall era. AlonzoEraPParams era => Int -> GenRS era [ExUnits]
alonzoGenExUnits
setNetworkIdTxBody :: StrictMaybe Network -> TxBody BabbageEra -> TxBody BabbageEra
setNetworkIdTxBody = ASetter
(TxBody BabbageEra)
(TxBody BabbageEra)
(StrictMaybe Network)
(StrictMaybe Network)
-> StrictMaybe Network -> TxBody BabbageEra -> TxBody BabbageEra
forall s t a b. ASetter s t a b -> b -> s -> t
L.set ASetter
(TxBody BabbageEra)
(TxBody BabbageEra)
(StrictMaybe Network)
(StrictMaybe Network)
forall era.
AlonzoEraTxBody era =>
Lens' (TxBody era) (StrictMaybe Network)
Lens' (TxBody BabbageEra) (StrictMaybe Network)
networkIdTxBodyL
ppMaxCollateralInputsT :: Lens' (PParams BabbageEra) Natural
ppMaxCollateralInputsT = (Natural -> f Natural)
-> PParams BabbageEra -> f (PParams BabbageEra)
forall era. AlonzoEraPParams era => Lens' (PParams era) Natural
Lens' (PParams BabbageEra) Natural
ppMaxCollateralInputsL
ppCollateralPercentageT :: Lens' (PParams BabbageEra) Natural
ppCollateralPercentageT = (Natural -> f Natural)
-> PParams BabbageEra -> f (PParams BabbageEra)
forall era. AlonzoEraPParams era => Lens' (PParams era) Natural
Lens' (PParams BabbageEra) Natural
ppCollateralPercentageL
mkScriptIntegrityHash :: PParams BabbageEra
-> [Language]
-> TxWits BabbageEra
-> StrictMaybe ScriptIntegrityHash
mkScriptIntegrityHash = PParams BabbageEra
-> [Language]
-> TxWits BabbageEra
-> StrictMaybe ScriptIntegrityHash
forall era.
(EraModel era, AlonzoEraTxWits era) =>
PParams era
-> [Language] -> TxWits era -> StrictMaybe ScriptIntegrityHash
alonzoMkScriptIntegrityHash
ppCostModelsT :: Lens' (PParams BabbageEra) CostModels
ppCostModelsT = (CostModels -> f CostModels)
-> PParams BabbageEra -> f (PParams BabbageEra)
forall era. AlonzoEraPParams era => Lens' (PParams era) CostModels
Lens' (PParams BabbageEra) CostModels
ppCostModelsL
ppMaxTxExUnitsT :: Lens' (PParams BabbageEra) ExUnits
ppMaxTxExUnitsT = (ExUnits -> f ExUnits)
-> PParams BabbageEra -> f (PParams BabbageEra)
forall era. AlonzoEraPParams era => Lens' (PParams era) ExUnits
Lens' (PParams BabbageEra) ExUnits
ppMaxTxExUnitsL
ppMaxBlockExUnitsT :: Lens' (PParams BabbageEra) ExUnits
ppMaxBlockExUnitsT = (ExUnits -> f ExUnits)
-> PParams BabbageEra -> f (PParams BabbageEra)
forall era. AlonzoEraPParams era => Lens' (PParams era) ExUnits
Lens' (PParams BabbageEra) ExUnits
ppMaxBlockExUnitsL
ppMaxValSizeT :: Lens' (PParams BabbageEra) Natural
ppMaxValSizeT = (Natural -> f Natural)
-> PParams BabbageEra -> f (PParams BabbageEra)
forall era. AlonzoEraPParams era => Lens' (PParams era) Natural
Lens' (PParams BabbageEra) Natural
ppMaxValSizeL
setScriptIntegrityHash :: StrictMaybe ScriptIntegrityHash
-> TxBody BabbageEra -> TxBody BabbageEra
setScriptIntegrityHash = ASetter
(TxBody BabbageEra)
(TxBody BabbageEra)
(StrictMaybe ScriptIntegrityHash)
(StrictMaybe ScriptIntegrityHash)
-> StrictMaybe ScriptIntegrityHash
-> TxBody BabbageEra
-> TxBody BabbageEra
forall s t a b. ASetter s t a b -> b -> s -> t
L.set ASetter
(TxBody BabbageEra)
(TxBody BabbageEra)
(StrictMaybe ScriptIntegrityHash)
(StrictMaybe ScriptIntegrityHash)
forall era.
AlonzoEraTxBody era =>
Lens' (TxBody era) (StrictMaybe ScriptIntegrityHash)
Lens' (TxBody BabbageEra) (StrictMaybe ScriptIntegrityHash)
scriptIntegrityHashTxBodyL
genPParams :: GenSize -> Gen (PParams BabbageEra)
genPParams = GenSize -> Gen (PParams BabbageEra)
forall era. AlonzoEraTest era => GenSize -> Gen (PParams era)
alonzoGenPParams
instance EraGenericGen ConwayEra where
setValidity :: ValidityInterval -> TxBody ConwayEra -> TxBody ConwayEra
setValidity = ValidityInterval -> TxBody ConwayEra -> TxBody ConwayEra
forall era.
AllegraEraTxBody era =>
ValidityInterval -> TxBody era -> TxBody era
allegraSetValidity
setReferenceInputs :: Set TxIn -> TxBody ConwayEra -> TxBody ConwayEra
setReferenceInputs = ASetter (TxBody ConwayEra) (TxBody ConwayEra) (Set TxIn) (Set TxIn)
-> Set TxIn -> TxBody ConwayEra -> TxBody ConwayEra
forall s t a b. ASetter s t a b -> b -> s -> t
L.set ASetter (TxBody ConwayEra) (TxBody ConwayEra) (Set TxIn) (Set TxIn)
forall era. BabbageEraTxBody era => Lens' (TxBody era) (Set TxIn)
Lens' (TxBody ConwayEra) (Set TxIn)
referenceInputsTxBodyL
setCollateralInputs :: Set TxIn -> TxBody ConwayEra -> TxBody ConwayEra
setCollateralInputs = ASetter (TxBody ConwayEra) (TxBody ConwayEra) (Set TxIn) (Set TxIn)
-> Set TxIn -> TxBody ConwayEra -> TxBody ConwayEra
forall s t a b. ASetter s t a b -> b -> s -> t
L.set ASetter (TxBody ConwayEra) (TxBody ConwayEra) (Set TxIn) (Set TxIn)
forall era. AlonzoEraTxBody era => Lens' (TxBody era) (Set TxIn)
Lens' (TxBody ConwayEra) (Set TxIn)
collateralInputsTxBodyL
setTotalCollateral :: StrictMaybe Coin -> TxBody ConwayEra -> TxBody ConwayEra
setTotalCollateral = ASetter
(TxBody ConwayEra)
(TxBody ConwayEra)
(StrictMaybe Coin)
(StrictMaybe Coin)
-> StrictMaybe Coin -> TxBody ConwayEra -> TxBody ConwayEra
forall s t a b. ASetter s t a b -> b -> s -> t
L.set ASetter
(TxBody ConwayEra)
(TxBody ConwayEra)
(StrictMaybe Coin)
(StrictMaybe Coin)
forall era.
BabbageEraTxBody era =>
Lens' (TxBody era) (StrictMaybe Coin)
Lens' (TxBody ConwayEra) (StrictMaybe Coin)
totalCollateralTxBodyL
setCollateralReturn :: StrictMaybe (TxOut ConwayEra)
-> TxBody ConwayEra -> TxBody ConwayEra
setCollateralReturn = ASetter
(TxBody ConwayEra)
(TxBody ConwayEra)
(StrictMaybe (BabbageTxOut ConwayEra))
(StrictMaybe (BabbageTxOut ConwayEra))
-> StrictMaybe (BabbageTxOut ConwayEra)
-> TxBody ConwayEra
-> TxBody ConwayEra
forall s t a b. ASetter s t a b -> b -> s -> t
L.set (StrictMaybe (TxOut ConwayEra)
-> Identity (StrictMaybe (TxOut ConwayEra)))
-> TxBody ConwayEra -> Identity (TxBody ConwayEra)
ASetter
(TxBody ConwayEra)
(TxBody ConwayEra)
(StrictMaybe (BabbageTxOut ConwayEra))
(StrictMaybe (BabbageTxOut ConwayEra))
forall era.
BabbageEraTxBody era =>
Lens' (TxBody era) (StrictMaybe (TxOut era))
Lens' (TxBody ConwayEra) (StrictMaybe (TxOut ConwayEra))
collateralReturnTxBodyL
addRedeemers :: Redeemers ConwayEra -> TxWits ConwayEra -> TxWits ConwayEra
addRedeemers Redeemers ConwayEra
x = (Redeemers ConwayEra -> Identity (Redeemers ConwayEra))
-> TxWits ConwayEra -> Identity (TxWits ConwayEra)
(Redeemers ConwayEra -> Identity (Redeemers ConwayEra))
-> AlonzoTxWits ConwayEra -> Identity (AlonzoTxWits ConwayEra)
forall era.
AlonzoEraTxWits era =>
Lens' (TxWits era) (Redeemers era)
Lens' (TxWits ConwayEra) (Redeemers ConwayEra)
rdmrsTxWitsL ((Redeemers ConwayEra -> Identity (Redeemers ConwayEra))
-> AlonzoTxWits ConwayEra -> Identity (AlonzoTxWits ConwayEra))
-> Redeemers ConwayEra
-> AlonzoTxWits ConwayEra
-> AlonzoTxWits ConwayEra
forall a s t. Monoid a => ASetter s t a a -> a -> s -> t
<>~ Redeemers ConwayEra
x
genExUnits :: Int -> GenRS ConwayEra [ExUnits]
genExUnits = Int -> GenRS ConwayEra [ExUnits]
forall era. AlonzoEraPParams era => Int -> GenRS era [ExUnits]
alonzoGenExUnits
setNetworkIdTxBody :: StrictMaybe Network -> TxBody ConwayEra -> TxBody ConwayEra
setNetworkIdTxBody = ASetter
(TxBody ConwayEra)
(TxBody ConwayEra)
(StrictMaybe Network)
(StrictMaybe Network)
-> StrictMaybe Network -> TxBody ConwayEra -> TxBody ConwayEra
forall s t a b. ASetter s t a b -> b -> s -> t
L.set ASetter
(TxBody ConwayEra)
(TxBody ConwayEra)
(StrictMaybe Network)
(StrictMaybe Network)
forall era.
AlonzoEraTxBody era =>
Lens' (TxBody era) (StrictMaybe Network)
Lens' (TxBody ConwayEra) (StrictMaybe Network)
networkIdTxBodyL
ppMaxCollateralInputsT :: Lens' (PParams ConwayEra) Natural
ppMaxCollateralInputsT = (Natural -> f Natural)
-> PParams ConwayEra -> f (PParams ConwayEra)
forall era. AlonzoEraPParams era => Lens' (PParams era) Natural
Lens' (PParams ConwayEra) Natural
ppMaxCollateralInputsL
ppCollateralPercentageT :: Lens' (PParams ConwayEra) Natural
ppCollateralPercentageT = (Natural -> f Natural)
-> PParams ConwayEra -> f (PParams ConwayEra)
forall era. AlonzoEraPParams era => Lens' (PParams era) Natural
Lens' (PParams ConwayEra) Natural
ppCollateralPercentageL
mkScriptIntegrityHash :: PParams ConwayEra
-> [Language]
-> TxWits ConwayEra
-> StrictMaybe ScriptIntegrityHash
mkScriptIntegrityHash = PParams ConwayEra
-> [Language]
-> TxWits ConwayEra
-> StrictMaybe ScriptIntegrityHash
forall era.
(EraModel era, AlonzoEraTxWits era) =>
PParams era
-> [Language] -> TxWits era -> StrictMaybe ScriptIntegrityHash
alonzoMkScriptIntegrityHash
ppCostModelsT :: Lens' (PParams ConwayEra) CostModels
ppCostModelsT = (CostModels -> f CostModels)
-> PParams ConwayEra -> f (PParams ConwayEra)
forall era. AlonzoEraPParams era => Lens' (PParams era) CostModels
Lens' (PParams ConwayEra) CostModels
ppCostModelsL
ppMaxTxExUnitsT :: Lens' (PParams ConwayEra) ExUnits
ppMaxTxExUnitsT = (ExUnits -> f ExUnits)
-> PParams ConwayEra -> f (PParams ConwayEra)
forall era. AlonzoEraPParams era => Lens' (PParams era) ExUnits
Lens' (PParams ConwayEra) ExUnits
ppMaxTxExUnitsL
ppMaxBlockExUnitsT :: Lens' (PParams ConwayEra) ExUnits
ppMaxBlockExUnitsT = (ExUnits -> f ExUnits)
-> PParams ConwayEra -> f (PParams ConwayEra)
forall era. AlonzoEraPParams era => Lens' (PParams era) ExUnits
Lens' (PParams ConwayEra) ExUnits
ppMaxBlockExUnitsL
ppMaxValSizeT :: Lens' (PParams ConwayEra) Natural
ppMaxValSizeT = (Natural -> f Natural)
-> PParams ConwayEra -> f (PParams ConwayEra)
forall era. AlonzoEraPParams era => Lens' (PParams era) Natural
Lens' (PParams ConwayEra) Natural
ppMaxValSizeL
setScriptIntegrityHash :: StrictMaybe ScriptIntegrityHash
-> TxBody ConwayEra -> TxBody ConwayEra
setScriptIntegrityHash = ASetter
(TxBody ConwayEra)
(TxBody ConwayEra)
(StrictMaybe ScriptIntegrityHash)
(StrictMaybe ScriptIntegrityHash)
-> StrictMaybe ScriptIntegrityHash
-> TxBody ConwayEra
-> TxBody ConwayEra
forall s t a b. ASetter s t a b -> b -> s -> t
L.set ASetter
(TxBody ConwayEra)
(TxBody ConwayEra)
(StrictMaybe ScriptIntegrityHash)
(StrictMaybe ScriptIntegrityHash)
forall era.
AlonzoEraTxBody era =>
Lens' (TxBody era) (StrictMaybe ScriptIntegrityHash)
Lens' (TxBody ConwayEra) (StrictMaybe ScriptIntegrityHash)
scriptIntegrityHashTxBodyL
genPParams :: GenSize -> Gen (PParams ConwayEra)
genPParams = GenSize -> Gen (PParams ConwayEra)
forall era. AlonzoEraTest era => GenSize -> Gen (PParams era)
alonzoGenPParams
dummyLens :: b -> Lens' a b
dummyLens :: forall b a. b -> Lens' a b
dummyLens b
val = (a -> b) -> (a -> b -> a) -> Lens a a b b
forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
L.lens (b -> a -> b
forall a b. a -> b -> a
const b
val) a -> b -> a
forall a b. a -> b -> a
const