{-# LANGUAGE AllowAmbiguousTypes #-}
{-# LANGUAGE ConstraintKinds #-}
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE GADTs #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE OverloadedLists #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE PatternSynonyms #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE TypeApplications #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE TypeOperators #-}
{-# LANGUAGE UndecidableInstances #-}
module Test.Cardano.Ledger.Examples.AlonzoBBODY (tests) where
import Cardano.Ledger.Address (RewardAccount (..))
import Cardano.Ledger.Allegra.Scripts (pattern RequireTimeStart)
import Cardano.Ledger.Alonzo.Plutus.Context (EraPlutusTxInfo)
import Cardano.Ledger.Alonzo.Scripts (ExUnits (..))
import Cardano.Ledger.Alonzo.TxWits (Redeemers (..), hashDataTxWitsL)
import Cardano.Ledger.BHeaderView (BHeaderView (..))
import Cardano.Ledger.BaseTypes (
BlocksMade (..),
Network (..),
ShelleyBase,
StrictMaybe (..),
natVersion,
textToUrl,
)
import Cardano.Ledger.Block (Block (..))
import Cardano.Ledger.Coin (Coin (..), CompactForm (..))
import Cardano.Ledger.Compactible (fromCompact)
import Cardano.Ledger.Conway.Core
import Cardano.Ledger.Credential (Credential (..), Ptr (..), StakeCredential)
import Cardano.Ledger.Keys (coerceKeyRole)
import Cardano.Ledger.Mary.Value (AssetName (..), MaryValue (..), MultiAsset (..), PolicyID (..))
import Cardano.Ledger.Plutus.Data (Data (..), hashData)
import Cardano.Ledger.Plutus.Language (Language (..))
import Cardano.Ledger.PoolParams (PoolMetadata (..))
import Cardano.Ledger.Shelley.API (
GenDelegs (..),
LedgerState (..),
PoolParams (..),
ProtVer (..),
)
import Cardano.Ledger.Shelley.LedgerState (smartUTxOState)
import Cardano.Ledger.Shelley.Rules (
BbodyEnv (..),
ShelleyBbodyState (..),
ShelleyPoolPredFailure (..),
)
import Cardano.Ledger.Shelley.Scripts (
ShelleyEraScript,
pattern RequireAllOf,
pattern RequireSignature,
)
import Cardano.Ledger.State
import Cardano.Ledger.TxIn (TxIn (..))
import Cardano.Ledger.Val (inject, (<->))
import Cardano.Protocol.Crypto (hashVerKeyVRF)
import Cardano.Slotting.Slot (SlotNo (..))
import Control.State.Transition.Extended (STS (..), TRC (..))
import qualified Data.ByteString as BS (replicate)
import Data.Default (Default (..))
import qualified Data.Map.Strict as Map
import Data.Maybe (fromJust)
import qualified Data.Sequence.Strict as SSeq
import qualified Data.Sequence.Strict as StrictSeq
import qualified Data.Set as Set
import Data.TreeDiff (ToExpr)
import Lens.Micro ((&), (.~))
import qualified PlutusLedgerApi.V1 as PV1
import Test.Cardano.Ledger.Core.KeyPair (KeyPair (..), mkAddr, mkWitnessVKey)
import Test.Cardano.Ledger.Era (registerTestAccount)
import Test.Cardano.Ledger.Examples.STSTestUtils (
EraModel (..),
alwaysFailsHash,
alwaysSucceedsHash,
genericCont,
initUTxO,
mkGenesisTxIn,
mkSingleRedeemer,
mkTxDats,
someAddr,
someKeys,
someScriptAddr,
)
import Test.Cardano.Ledger.Generic.Indexed (theKeyHash)
import Test.Cardano.Ledger.Generic.Instances ()
import Test.Cardano.Ledger.Generic.Proof
import Test.Cardano.Ledger.Plutus (zeroTestingCostModels)
import Test.Cardano.Ledger.Shelley.ConcreteCryptoTypes (MockCrypto)
import Test.Cardano.Ledger.Shelley.Utils (
RawSeed (..),
mkKeyPair,
mkKeyPair',
mkVRFKeyPair,
)
import Test.Cardano.Protocol.TPraos.Create (VRFKeyPair (..))
import Test.Tasty (TestTree, testGroup)
import Test.Tasty.HUnit (testCase)
forge :: forall era. EraScript era => Integer -> Script era -> MultiAsset
forge :: forall era. EraScript era => Integer -> Script era -> MultiAsset
forge Integer
n Script era
s = Map PolicyID (Map AssetName Integer) -> MultiAsset
MultiAsset (Map PolicyID (Map AssetName Integer) -> MultiAsset)
-> Map PolicyID (Map AssetName Integer) -> MultiAsset
forall a b. (a -> b) -> a -> b
$ PolicyID
-> Map AssetName Integer -> Map PolicyID (Map AssetName Integer)
forall k a. k -> a -> Map k a
Map.singleton PolicyID
pid (AssetName -> Integer -> Map AssetName Integer
forall k a. k -> a -> Map k a
Map.singleton AssetName
an Integer
n)
where
pid :: PolicyID
pid = ScriptHash -> PolicyID
PolicyID (forall era. EraScript era => Script era -> ScriptHash
hashScript @era Script era
s)
an :: AssetName
an = ShortByteString -> AssetName
AssetName ShortByteString
"an"
tests :: TestTree
tests :: TestTree
tests =
TestName -> [TestTree] -> TestTree
testGroup
TestName
"Generic Tests, testing Alonzo PredicateFailures, in postAlonzo eras."
[ Proof AlonzoEra -> TestTree
forall era.
(BaseM (EraRule "BBODY" era) ~ ShelleyBase,
Environment (EraRule "BBODY" era) ~ BbodyEnv era,
State (EraRule "BBODY" era) ~ ShelleyBbodyState era,
Signal (EraRule "BBODY" era) ~ Block BHeaderView era,
InjectRuleFailure "BBODY" ShelleyPoolPredFailure era,
STS (EraRule "BBODY" era),
State (EraRule "LEDGERS" era) ~ LedgerState era,
ShelleyEraTxCert era, AlonzoEraTx era, Value era ~ MaryValue,
ToExpr (PredicateFailure (EraRule "BBODY" era)), EraModel era,
EraPlutusTxInfo 'PlutusV1 era) =>
Proof era -> TestTree
alonzoBBODYexamplesP Proof AlonzoEra
Alonzo
, Proof BabbageEra -> TestTree
forall era.
(BaseM (EraRule "BBODY" era) ~ ShelleyBase,
Environment (EraRule "BBODY" era) ~ BbodyEnv era,
State (EraRule "BBODY" era) ~ ShelleyBbodyState era,
Signal (EraRule "BBODY" era) ~ Block BHeaderView era,
InjectRuleFailure "BBODY" ShelleyPoolPredFailure era,
STS (EraRule "BBODY" era),
State (EraRule "LEDGERS" era) ~ LedgerState era,
ShelleyEraTxCert era, AlonzoEraTx era, Value era ~ MaryValue,
ToExpr (PredicateFailure (EraRule "BBODY" era)), EraModel era,
EraPlutusTxInfo 'PlutusV1 era) =>
Proof era -> TestTree
alonzoBBODYexamplesP Proof BabbageEra
Babbage
, Proof ConwayEra -> TestTree
forall era.
(BaseM (EraRule "BBODY" era) ~ ShelleyBase,
Environment (EraRule "BBODY" era) ~ BbodyEnv era,
State (EraRule "BBODY" era) ~ ShelleyBbodyState era,
Signal (EraRule "BBODY" era) ~ Block BHeaderView era,
InjectRuleFailure "BBODY" ShelleyPoolPredFailure era,
STS (EraRule "BBODY" era),
State (EraRule "LEDGERS" era) ~ LedgerState era,
ShelleyEraTxCert era, AlonzoEraTx era, Value era ~ MaryValue,
ToExpr (PredicateFailure (EraRule "BBODY" era)), EraModel era,
EraPlutusTxInfo 'PlutusV1 era) =>
Proof era -> TestTree
alonzoBBODYexamplesP Proof ConwayEra
Conway
]
alonzoBBODYexamplesP ::
forall era.
( BaseM (EraRule "BBODY" era) ~ ShelleyBase
, Environment (EraRule "BBODY" era) ~ BbodyEnv era
, State (EraRule "BBODY" era) ~ ShelleyBbodyState era
, Signal (EraRule "BBODY" era) ~ Block BHeaderView era
, InjectRuleFailure "BBODY" ShelleyPoolPredFailure era
, STS (EraRule "BBODY" era)
, State (EraRule "LEDGERS" era) ~ LedgerState era
, ShelleyEraTxCert era
, AlonzoEraTx era
, Value era ~ MaryValue
, ToExpr (PredicateFailure (EraRule "BBODY" era))
, EraModel era
, EraPlutusTxInfo PlutusV1 era
) =>
Proof era ->
TestTree
alonzoBBODYexamplesP :: forall era.
(BaseM (EraRule "BBODY" era) ~ ShelleyBase,
Environment (EraRule "BBODY" era) ~ BbodyEnv era,
State (EraRule "BBODY" era) ~ ShelleyBbodyState era,
Signal (EraRule "BBODY" era) ~ Block BHeaderView era,
InjectRuleFailure "BBODY" ShelleyPoolPredFailure era,
STS (EraRule "BBODY" era),
State (EraRule "LEDGERS" era) ~ LedgerState era,
ShelleyEraTxCert era, AlonzoEraTx era, Value era ~ MaryValue,
ToExpr (PredicateFailure (EraRule "BBODY" era)), EraModel era,
EraPlutusTxInfo 'PlutusV1 era) =>
Proof era -> TestTree
alonzoBBODYexamplesP Proof era
proof =
TestName -> [TestTree] -> TestTree
testGroup
(Proof era -> TestName
forall a. Show a => a -> TestName
show Proof era
proof TestName -> TestName -> TestName
forall a. [a] -> [a] -> [a]
++ TestName
" BBODY examples")
[ TestName -> Assertion -> TestTree
testCase TestName
"eight plutus scripts cases" (Assertion -> TestTree) -> Assertion -> TestTree
forall a b. (a -> b) -> a -> b
$
forall (s :: Symbol) e ans.
(BaseM (EraRule s e) ~ ShelleyBase, STS (EraRule s e)) =>
TRC (EraRule s e)
-> (Either
(NonEmpty (PredicateFailure (EraRule s e))) (State (EraRule s e))
-> ans)
-> ans
runSTS @"BBODY" @era
((Environment (EraRule "BBODY" era), State (EraRule "BBODY" era),
Signal (EraRule "BBODY" era))
-> TRC (EraRule "BBODY" era)
forall sts. (Environment sts, State sts, Signal sts) -> TRC sts
TRC (forall era. PParams era -> ChainAccountState -> BbodyEnv era
BbodyEnv @era PParams era
forall era. AlonzoEraPParams era => PParams era
defaultPParams ChainAccountState
forall a. Default a => a
def, forall era.
(State (EraRule "LEDGERS" era) ~ LedgerState era,
AlonzoEraPParams era, AlonzoEraScript era, EraModel era) =>
UTxO era -> ShelleyBbodyState era
initialBBodyState @era UTxO era
forall era.
(AllegraEraScript era, AlonzoEraTxOut era, EraModel era) =>
UTxO era
initUTxO, forall era.
(Value era ~ MaryValue, ShelleyEraTxCert era, AlonzoEraTx era,
EraModel era, EraPlutusTxInfo 'PlutusV1 era) =>
Block BHeaderView era
testAlonzoBlock @era))
(TestName
-> Either
(NonEmpty (PredicateFailure (EraRule "BBODY" era)))
(State (EraRule "BBODY" era))
-> Either
(NonEmpty (PredicateFailure (EraRule "BBODY" era)))
(State (EraRule "BBODY" era))
-> Assertion
forall (t :: * -> *) x y.
(Eq (t x), Eq y, ToExpr y, HasCallStack, ToExpr (t x)) =>
TestName -> Either (t x) y -> Either (t x) y -> Assertion
genericCont TestName
"" (Either
(NonEmpty (PredicateFailure (EraRule "BBODY" era)))
(State (EraRule "BBODY" era))
-> Either
(NonEmpty (PredicateFailure (EraRule "BBODY" era)))
(State (EraRule "BBODY" era))
-> Assertion)
-> Either
(NonEmpty (PredicateFailure (EraRule "BBODY" era)))
(State (EraRule "BBODY" era))
-> Either
(NonEmpty (PredicateFailure (EraRule "BBODY" era)))
(State (EraRule "BBODY" era))
-> Assertion
forall a b. (a -> b) -> a -> b
$ ShelleyBbodyState era
-> Either
(NonEmpty (PredicateFailure (EraRule "BBODY" era)))
(ShelleyBbodyState era)
forall a b. b -> Either a b
Right ShelleyBbodyState era
forall era.
(Value era ~ MaryValue,
State (EraRule "LEDGERS" era) ~ LedgerState era,
ShelleyEraTxCert era, AlonzoEraTxBody era, EraModel era,
EraPlutusTxInfo 'PlutusV1 era) =>
ShelleyBbodyState era
testBBodyState)
, TestName -> Assertion -> TestTree
testCase TestName
"block with bad pool md hash in tx" (Assertion -> TestTree) -> Assertion -> TestTree
forall a b. (a -> b) -> a -> b
$
forall (s :: Symbol) e ans.
(BaseM (EraRule s e) ~ ShelleyBase, STS (EraRule s e)) =>
TRC (EraRule s e)
-> (Either
(NonEmpty (PredicateFailure (EraRule s e))) (State (EraRule s e))
-> ans)
-> ans
runSTS @"BBODY" @era
((Environment (EraRule "BBODY" era), State (EraRule "BBODY" era),
Signal (EraRule "BBODY" era))
-> TRC (EraRule "BBODY" era)
forall sts. (Environment sts, State sts, Signal sts) -> TRC sts
TRC (forall era. PParams era -> ChainAccountState -> BbodyEnv era
BbodyEnv @era PParams era
forall era. AlonzoEraPParams era => PParams era
defaultPParams ChainAccountState
forall a. Default a => a
def, UTxO era -> ShelleyBbodyState era
forall era.
(State (EraRule "LEDGERS" era) ~ LedgerState era,
AlonzoEraPParams era, AlonzoEraScript era, EraModel era) =>
UTxO era -> ShelleyBbodyState era
initialBBodyState UTxO era
forall era.
(AllegraEraScript era, AlonzoEraTxOut era, EraModel era) =>
UTxO era
initUTxO, Block BHeaderView era
Signal (EraRule "BBODY" era)
forall era.
(AlonzoEraTx era, EraModel era) =>
Block BHeaderView era
testAlonzoBadPMDHBlock))
(TestName
-> Either
(NonEmpty (PredicateFailure (EraRule "BBODY" era)))
(ShelleyBbodyState era)
-> Either
(NonEmpty (PredicateFailure (EraRule "BBODY" era)))
(ShelleyBbodyState era)
-> Assertion
forall (t :: * -> *) x y.
(Eq (t x), Eq y, ToExpr y, HasCallStack, ToExpr (t x)) =>
TestName -> Either (t x) y -> Either (t x) y -> Assertion
genericCont TestName
"" (Either
(NonEmpty (PredicateFailure (EraRule "BBODY" era)))
(ShelleyBbodyState era)
-> Either
(NonEmpty (PredicateFailure (EraRule "BBODY" era)))
(State (EraRule "BBODY" era))
-> Assertion)
-> (PredicateFailure (EraRule "BBODY" era)
-> Either
(NonEmpty (PredicateFailure (EraRule "BBODY" era)))
(ShelleyBbodyState era))
-> PredicateFailure (EraRule "BBODY" era)
-> Either
(NonEmpty (PredicateFailure (EraRule "BBODY" era)))
(State (EraRule "BBODY" era))
-> Assertion
forall b c a. (b -> c) -> (a -> b) -> a -> c
. NonEmpty (PredicateFailure (EraRule "BBODY" era))
-> Either
(NonEmpty (PredicateFailure (EraRule "BBODY" era)))
(ShelleyBbodyState era)
forall a b. a -> Either a b
Left (NonEmpty (PredicateFailure (EraRule "BBODY" era))
-> Either
(NonEmpty (PredicateFailure (EraRule "BBODY" era)))
(ShelleyBbodyState era))
-> (PredicateFailure (EraRule "BBODY" era)
-> NonEmpty (PredicateFailure (EraRule "BBODY" era)))
-> PredicateFailure (EraRule "BBODY" era)
-> Either
(NonEmpty (PredicateFailure (EraRule "BBODY" era)))
(ShelleyBbodyState era)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. PredicateFailure (EraRule "BBODY" era)
-> NonEmpty (PredicateFailure (EraRule "BBODY" era))
forall a. a -> NonEmpty a
forall (f :: * -> *) a. Applicative f => a -> f a
pure (PredicateFailure (EraRule "BBODY" era)
-> Either
(NonEmpty (PredicateFailure (EraRule "BBODY" era)))
(State (EraRule "BBODY" era))
-> Assertion)
-> PredicateFailure (EraRule "BBODY" era)
-> Either
(NonEmpty (PredicateFailure (EraRule "BBODY" era)))
(State (EraRule "BBODY" era))
-> Assertion
forall a b. (a -> b) -> a -> b
$ forall era.
InjectRuleFailure "BBODY" ShelleyPoolPredFailure era =>
PredicateFailure (EraRule "BBODY" era)
makeTooBig @era)
]
initialBBodyState ::
forall era.
( State (EraRule "LEDGERS" era) ~ LedgerState era
, AlonzoEraPParams era
, AlonzoEraScript era
, EraModel era
) =>
UTxO era ->
ShelleyBbodyState era
initialBBodyState :: forall era.
(State (EraRule "LEDGERS" era) ~ LedgerState era,
AlonzoEraPParams era, AlonzoEraScript era, EraModel era) =>
UTxO era -> ShelleyBbodyState era
initialBBodyState UTxO era
utxo =
State (EraRule "LEDGERS" era)
-> BlocksMade -> ShelleyBbodyState era
forall era.
State (EraRule "LEDGERS" era)
-> BlocksMade -> ShelleyBbodyState era
BbodyState (UTxOState era -> CertState era -> LedgerState era
forall era. UTxOState era -> CertState era -> LedgerState era
LedgerState UTxOState era
initialUtxoSt CertState era
dpstate) (Map (KeyHash 'StakePool) Natural -> BlocksMade
BlocksMade Map (KeyHash 'StakePool) Natural
forall a. Monoid a => a
mempty)
where
initialUtxoSt :: UTxOState era
initialUtxoSt =
PParams era
-> UTxO era
-> Coin
-> Coin
-> GovState era
-> Coin
-> UTxOState era
forall era.
EraStake era =>
PParams era
-> UTxO era
-> Coin
-> Coin
-> GovState era
-> Coin
-> UTxOState era
smartUTxOState PParams era
forall era. AlonzoEraPParams era => PParams era
defaultPParams UTxO era
utxo (CompactForm Coin -> Coin
forall a. Compactible a => CompactForm a -> a
fromCompact CompactForm Coin
successDeposit) (Integer -> Coin
Coin Integer
0) GovState era
forall a. Default a => a
def Coin
forall a. Monoid a => a
mempty
ptr :: Maybe Ptr
ptr = Ptr -> Maybe Ptr
forall a. a -> Maybe a
Just (SlotNo32 -> TxIx -> CertIx -> Ptr
Ptr SlotNo32
forall a. Bounded a => a
minBound TxIx
forall a. Bounded a => a
minBound CertIx
forall a. Bounded a => a
minBound)
cred :: StakeCredential
cred = forall era. (ShelleyEraScript era, EraModel era) => StakeCredential
scriptStakeCredSucceed @era
dpstate :: CertState era
dpstate =
CertState era
forall a. Default a => a
def
CertState era -> (CertState era -> CertState era) -> CertState era
forall a b. a -> (a -> b) -> b
& (DState era -> Identity (DState era))
-> CertState era -> Identity (CertState era)
forall era. EraCertState era => Lens' (CertState era) (DState era)
Lens' (CertState era) (DState era)
certDStateL
((DState era -> Identity (DState era))
-> CertState era -> Identity (CertState era))
-> DState era -> CertState era -> CertState era
forall s t a b. ASetter s t a b -> b -> s -> t
.~ DState
{ dsAccounts :: Accounts era
dsAccounts =
Map StakeCredential (CompactForm Coin)
-> Accounts era -> Accounts era
forall era.
EraAccounts era =>
Map StakeCredential (CompactForm Coin)
-> Accounts era -> Accounts era
addToBalanceAccounts (StakeCredential
-> CompactForm Coin -> Map StakeCredential (CompactForm Coin)
forall k a. k -> a -> Map k a
Map.singleton StakeCredential
cred (Word64 -> CompactForm Coin
CompactCoin Word64
1000)) (Accounts era -> Accounts era) -> Accounts era -> Accounts era
forall a b. (a -> b) -> a -> b
$
StakeCredential
-> Maybe Ptr
-> CompactForm Coin
-> Maybe (KeyHash 'StakePool)
-> Maybe DRep
-> Accounts era
-> Accounts era
forall era.
(HasCallStack, EraTest era) =>
StakeCredential
-> Maybe Ptr
-> CompactForm Coin
-> Maybe (KeyHash 'StakePool)
-> Maybe DRep
-> Accounts era
-> Accounts era
registerTestAccount StakeCredential
cred Maybe Ptr
ptr CompactForm Coin
successDeposit Maybe (KeyHash 'StakePool)
forall a. Maybe a
Nothing Maybe DRep
forall a. Maybe a
Nothing Accounts era
forall a. Default a => a
def
, dsFutureGenDelegs :: Map FutureGenDeleg GenDelegPair
dsFutureGenDelegs = Map FutureGenDeleg GenDelegPair
forall k a. Map k a
Map.empty
, dsGenDelegs :: GenDelegs
dsGenDelegs = Map (KeyHash 'Genesis) GenDelegPair -> GenDelegs
GenDelegs Map (KeyHash 'Genesis) GenDelegPair
forall k a. Map k a
Map.empty
, dsIRewards :: InstantaneousRewards
dsIRewards = InstantaneousRewards
forall a. Default a => a
def
}
testAlonzoBlock ::
( Value era ~ MaryValue
, ShelleyEraTxCert era
, AlonzoEraTx era
, EraModel era
, EraPlutusTxInfo PlutusV1 era
) =>
Block BHeaderView era
testAlonzoBlock :: forall era.
(Value era ~ MaryValue, ShelleyEraTxCert era, AlonzoEraTx era,
EraModel era, EraPlutusTxInfo 'PlutusV1 era) =>
Block BHeaderView era
testAlonzoBlock =
[Tx era] -> Block BHeaderView era
forall era. EraBlockBody era => [Tx era] -> Block BHeaderView era
makeNaiveBlock
[ Tx era
forall era.
(AlonzoEraTxWits era, AlonzoEraTxBody era, EraModel era) =>
Tx era
validatingTx Tx era -> (Tx era -> Tx era) -> Tx era
forall a b. a -> (a -> b) -> b
& (IsValid -> Identity IsValid) -> Tx era -> Identity (Tx era)
forall era. AlonzoEraTx era => Lens' (Tx era) IsValid
Lens' (Tx era) IsValid
isValidTxL ((IsValid -> Identity IsValid) -> Tx era -> Identity (Tx era))
-> IsValid -> Tx era -> Tx era
forall s t a b. ASetter s t a b -> b -> s -> t
.~ Bool -> IsValid
IsValid Bool
True
, Tx era
forall era.
(AlonzoEraTxWits era, AlonzoEraTxBody era, EraModel era) =>
Tx era
notValidatingTx Tx era -> (Tx era -> Tx era) -> Tx era
forall a b. a -> (a -> b) -> b
& (IsValid -> Identity IsValid) -> Tx era -> Identity (Tx era)
forall era. AlonzoEraTx era => Lens' (Tx era) IsValid
Lens' (Tx era) IsValid
isValidTxL ((IsValid -> Identity IsValid) -> Tx era -> Identity (Tx era))
-> IsValid -> Tx era -> Tx era
forall s t a b. ASetter s t a b -> b -> s -> t
.~ Bool -> IsValid
IsValid Bool
False
, Tx era
forall era.
(AlonzoEraTxBody era, EraModel era, AlonzoEraTxWits era) =>
Tx era
validatingTxWithWithdrawal Tx era -> (Tx era -> Tx era) -> Tx era
forall a b. a -> (a -> b) -> b
& (IsValid -> Identity IsValid) -> Tx era -> Identity (Tx era)
forall era. AlonzoEraTx era => Lens' (Tx era) IsValid
Lens' (Tx era) IsValid
isValidTxL ((IsValid -> Identity IsValid) -> Tx era -> Identity (Tx era))
-> IsValid -> Tx era -> Tx era
forall s t a b. ASetter s t a b -> b -> s -> t
.~ Bool -> IsValid
IsValid Bool
True
, Tx era
forall era.
(AlonzoEraTxWits era, AlonzoEraTxBody era, EraModel era) =>
Tx era
notValidatingTxWithWithdrawal Tx era -> (Tx era -> Tx era) -> Tx era
forall a b. a -> (a -> b) -> b
& (IsValid -> Identity IsValid) -> Tx era -> Identity (Tx era)
forall era. AlonzoEraTx era => Lens' (Tx era) IsValid
Lens' (Tx era) IsValid
isValidTxL ((IsValid -> Identity IsValid) -> Tx era -> Identity (Tx era))
-> IsValid -> Tx era -> Tx era
forall s t a b. ASetter s t a b -> b -> s -> t
.~ Bool -> IsValid
IsValid Bool
False
, Tx era
forall era.
(ShelleyEraTxCert era, AlonzoEraTxWits era, AlonzoEraTxBody era,
EraModel era) =>
Tx era
validatingTxWithCert Tx era -> (Tx era -> Tx era) -> Tx era
forall a b. a -> (a -> b) -> b
& (IsValid -> Identity IsValid) -> Tx era -> Identity (Tx era)
forall era. AlonzoEraTx era => Lens' (Tx era) IsValid
Lens' (Tx era) IsValid
isValidTxL ((IsValid -> Identity IsValid) -> Tx era -> Identity (Tx era))
-> IsValid -> Tx era -> Tx era
forall s t a b. ASetter s t a b -> b -> s -> t
.~ Bool -> IsValid
IsValid Bool
True
, Tx era
forall era.
(ShelleyEraTxCert era, AlonzoEraTxWits era, AlonzoEraTxBody era,
EraModel era) =>
Tx era
notValidatingTxWithCert Tx era -> (Tx era -> Tx era) -> Tx era
forall a b. a -> (a -> b) -> b
& (IsValid -> Identity IsValid) -> Tx era -> Identity (Tx era)
forall era. AlonzoEraTx era => Lens' (Tx era) IsValid
Lens' (Tx era) IsValid
isValidTxL ((IsValid -> Identity IsValid) -> Tx era -> Identity (Tx era))
-> IsValid -> Tx era -> Tx era
forall s t a b. ASetter s t a b -> b -> s -> t
.~ Bool -> IsValid
IsValid Bool
False
, Tx era
forall era.
(Value era ~ MaryValue, AlonzoEraTxWits era, AlonzoEraTxBody era,
EraModel era, EraPlutusTxInfo 'PlutusV1 era) =>
Tx era
validatingTxWithMint Tx era -> (Tx era -> Tx era) -> Tx era
forall a b. a -> (a -> b) -> b
& (IsValid -> Identity IsValid) -> Tx era -> Identity (Tx era)
forall era. AlonzoEraTx era => Lens' (Tx era) IsValid
Lens' (Tx era) IsValid
isValidTxL ((IsValid -> Identity IsValid) -> Tx era -> Identity (Tx era))
-> IsValid -> Tx era -> Tx era
forall s t a b. ASetter s t a b -> b -> s -> t
.~ Bool -> IsValid
IsValid Bool
True
, Tx era
forall era.
(Value era ~ MaryValue, AlonzoEraTxWits era, AlonzoEraTxBody era,
EraModel era) =>
Tx era
notValidatingTxWithMint Tx era -> (Tx era -> Tx era) -> Tx era
forall a b. a -> (a -> b) -> b
& (IsValid -> Identity IsValid) -> Tx era -> Identity (Tx era)
forall era. AlonzoEraTx era => Lens' (Tx era) IsValid
Lens' (Tx era) IsValid
isValidTxL ((IsValid -> Identity IsValid) -> Tx era -> Identity (Tx era))
-> IsValid -> Tx era -> Tx era
forall s t a b. ASetter s t a b -> b -> s -> t
.~ Bool -> IsValid
IsValid Bool
False
]
testAlonzoBadPMDHBlock ::
( AlonzoEraTx era
, EraModel era
) =>
Block BHeaderView era
testAlonzoBadPMDHBlock :: forall era.
(AlonzoEraTx era, EraModel era) =>
Block BHeaderView era
testAlonzoBadPMDHBlock = [Tx era] -> Block BHeaderView era
forall era. EraBlockBody era => [Tx era] -> Block BHeaderView era
makeNaiveBlock [Tx era
forall era. (ShelleyEraScript era, EraModel era) => Tx era
poolMDHTooBigTx Tx era -> (Tx era -> Tx era) -> Tx era
forall a b. a -> (a -> b) -> b
& (IsValid -> Identity IsValid) -> Tx era -> Identity (Tx era)
forall era. AlonzoEraTx era => Lens' (Tx era) IsValid
Lens' (Tx era) IsValid
isValidTxL ((IsValid -> Identity IsValid) -> Tx era -> Identity (Tx era))
-> IsValid -> Tx era -> Tx era
forall s t a b. ASetter s t a b -> b -> s -> t
.~ Bool -> IsValid
IsValid Bool
True]
someDatum :: Era era => Data era
someDatum :: forall era. Era era => Data era
someDatum = Data -> Data era
forall era. Era era => Data -> Data era
Data (Integer -> Data
PV1.I Integer
123)
anotherDatum :: Era era => Data era
anotherDatum :: forall era. Era era => Data era
anotherDatum = Data -> Data era
forall era. Era era => Data -> Data era
Data (Integer -> Data
PV1.I Integer
0)
validatingTx ::
forall era.
( AlonzoEraTxWits era
, AlonzoEraTxBody era
, EraModel era
) =>
Tx era
validatingTx :: forall era.
(AlonzoEraTxWits era, AlonzoEraTxBody era, EraModel era) =>
Tx era
validatingTx =
TxBody era -> Tx era
forall era. EraTx era => TxBody era -> Tx era
mkBasicTx TxBody era
forall era.
(AlonzoEraTxBody era, AlonzoEraScript era, EraModel era) =>
TxBody era
validatingBody
Tx era -> (Tx era -> Tx era) -> Tx era
forall a b. a -> (a -> b) -> b
& (TxWits era -> Identity (TxWits era))
-> Tx era -> Identity (Tx era)
forall era. EraTx era => Lens' (Tx era) (TxWits era)
Lens' (Tx era) (TxWits era)
witsTxL ((TxWits era -> Identity (TxWits era))
-> Tx era -> Identity (Tx era))
-> ((Set (WitVKey 'Witness) -> Identity (Set (WitVKey 'Witness)))
-> TxWits era -> Identity (TxWits era))
-> (Set (WitVKey 'Witness) -> Identity (Set (WitVKey 'Witness)))
-> Tx era
-> Identity (Tx era)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Set (WitVKey 'Witness) -> Identity (Set (WitVKey 'Witness)))
-> TxWits era -> Identity (TxWits era)
forall era.
EraTxWits era =>
Lens' (TxWits era) (Set (WitVKey 'Witness))
Lens' (TxWits era) (Set (WitVKey 'Witness))
addrTxWitsL ((Set (WitVKey 'Witness) -> Identity (Set (WitVKey 'Witness)))
-> Tx era -> Identity (Tx era))
-> Set (WitVKey 'Witness) -> Tx era -> Tx era
forall s t a b. ASetter s t a b -> b -> s -> t
.~ [SafeHash EraIndependentTxBody
-> KeyPair 'Payment -> WitVKey 'Witness
forall (kr :: KeyRole).
SafeHash EraIndependentTxBody -> KeyPair kr -> WitVKey 'Witness
mkWitnessVKey (TxBody era -> SafeHash EraIndependentTxBody
forall x i. HashAnnotated x i => x -> SafeHash i
hashAnnotated (TxBody era -> SafeHash EraIndependentTxBody)
-> TxBody era -> SafeHash EraIndependentTxBody
forall a b. (a -> b) -> a -> b
$ forall era.
(AlonzoEraTxBody era, AlonzoEraScript era, EraModel era) =>
TxBody era
validatingBody @era) KeyPair 'Payment
someKeys]
Tx era -> (Tx era -> Tx era) -> Tx era
forall a b. a -> (a -> b) -> b
& (TxWits era -> Identity (TxWits era))
-> Tx era -> Identity (Tx era)
forall era. EraTx era => Lens' (Tx era) (TxWits era)
Lens' (Tx era) (TxWits era)
witsTxL ((TxWits era -> Identity (TxWits era))
-> Tx era -> Identity (Tx era))
-> ((Map ScriptHash (Script era) -> Identity [Script era])
-> TxWits era -> Identity (TxWits era))
-> (Map ScriptHash (Script era) -> Identity [Script era])
-> Tx era
-> Identity (Tx era)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Map ScriptHash (Script era) -> Identity [Script era])
-> TxWits era -> Identity (TxWits era)
forall era.
EraTxWits era =>
Lens
(TxWits era)
(TxWits era)
(Map ScriptHash (Script era))
[Script era]
Lens
(TxWits era)
(TxWits era)
(Map ScriptHash (Script era))
[Script era]
hashScriptTxWitsL ((Map ScriptHash (Script era) -> Identity [Script era])
-> Tx era -> Identity (Tx era))
-> [Script era] -> Tx era -> Tx era
forall s t a b. ASetter s t a b -> b -> s -> t
.~ [Natural -> Script era
forall era. EraModel era => Natural -> Script era
always Natural
3]
Tx era -> (Tx era -> Tx era) -> Tx era
forall a b. a -> (a -> b) -> b
& (TxWits era -> Identity (TxWits era))
-> Tx era -> Identity (Tx era)
forall era. EraTx era => Lens' (Tx era) (TxWits era)
Lens' (Tx era) (TxWits era)
witsTxL ((TxWits era -> Identity (TxWits era))
-> Tx era -> Identity (Tx era))
-> ((TxDats era -> Identity [Data era])
-> TxWits era -> Identity (TxWits era))
-> (TxDats era -> Identity [Data era])
-> Tx era
-> Identity (Tx era)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (TxDats era -> Identity [Data era])
-> TxWits era -> Identity (TxWits era)
forall era.
AlonzoEraTxWits era =>
Lens (TxWits era) (TxWits era) (TxDats era) [Data era]
Lens (TxWits era) (TxWits era) (TxDats era) [Data era]
hashDataTxWitsL ((TxDats era -> Identity [Data era])
-> Tx era -> Identity (Tx era))
-> [Data era] -> Tx era -> Tx era
forall s t a b. ASetter s t a b -> b -> s -> t
.~ [Item [Data era]
Data era
forall era. Era era => Data era
someDatum]
Tx era -> (Tx era -> Tx era) -> Tx era
forall a b. a -> (a -> b) -> b
& (TxWits era -> Identity (TxWits era))
-> Tx era -> Identity (Tx era)
forall era. EraTx era => Lens' (Tx era) (TxWits era)
Lens' (Tx era) (TxWits era)
witsTxL ((TxWits era -> Identity (TxWits era))
-> Tx era -> Identity (Tx era))
-> ((Redeemers era -> Identity (Redeemers era))
-> TxWits era -> Identity (TxWits era))
-> (Redeemers era -> Identity (Redeemers era))
-> Tx era
-> Identity (Tx era)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Redeemers era -> Identity (Redeemers era))
-> TxWits era -> Identity (TxWits era)
forall era.
AlonzoEraTxWits era =>
Lens' (TxWits era) (Redeemers era)
Lens' (TxWits era) (Redeemers era)
rdmrsTxWitsL ((Redeemers era -> Identity (Redeemers era))
-> Tx era -> Identity (Tx era))
-> Redeemers era -> Tx era -> Tx era
forall s t a b. ASetter s t a b -> b -> s -> t
.~ Redeemers era
forall era. AlonzoEraScript era => Redeemers era
validatingRedeemers
validatingBody ::
forall era.
( AlonzoEraTxBody era
, AlonzoEraScript era
, EraModel era
) =>
TxBody era
validatingBody :: forall era.
(AlonzoEraTxBody era, AlonzoEraScript era, EraModel era) =>
TxBody era
validatingBody =
TxBody era
forall era. EraTxBody era => TxBody era
mkBasicTxBody
TxBody era -> (TxBody era -> TxBody era) -> TxBody era
forall a b. a -> (a -> b) -> b
& (Set TxIn -> Identity (Set TxIn))
-> TxBody era -> Identity (TxBody era)
forall era. EraTxBody era => Lens' (TxBody era) (Set TxIn)
Lens' (TxBody era) (Set TxIn)
inputsTxBodyL ((Set TxIn -> Identity (Set TxIn))
-> TxBody era -> Identity (TxBody era))
-> Set TxIn -> TxBody era -> TxBody era
forall s t a b. ASetter s t a b -> b -> s -> t
.~ TxIn -> Set TxIn
forall a. a -> Set a
Set.singleton (HasCallStack => Integer -> TxIn
Integer -> TxIn
mkGenesisTxIn Integer
1)
TxBody era -> (TxBody era -> TxBody era) -> TxBody era
forall a b. a -> (a -> b) -> b
& (Set TxIn -> Identity (Set TxIn))
-> TxBody era -> Identity (TxBody era)
forall era. AlonzoEraTxBody era => Lens' (TxBody era) (Set TxIn)
Lens' (TxBody era) (Set TxIn)
collateralInputsTxBodyL ((Set TxIn -> Identity (Set TxIn))
-> TxBody era -> Identity (TxBody era))
-> Set TxIn -> TxBody era -> TxBody era
forall s t a b. ASetter s t a b -> b -> s -> t
.~ TxIn -> Set TxIn
forall a. a -> Set a
Set.singleton (HasCallStack => Integer -> TxIn
Integer -> TxIn
mkGenesisTxIn Integer
11)
TxBody era -> (TxBody era -> TxBody era) -> TxBody era
forall a b. a -> (a -> b) -> b
& (StrictSeq (TxOut era) -> Identity (StrictSeq (TxOut era)))
-> TxBody era -> Identity (TxBody era)
forall era.
EraTxBody era =>
Lens' (TxBody era) (StrictSeq (TxOut era))
Lens' (TxBody era) (StrictSeq (TxOut era))
outputsTxBodyL ((StrictSeq (TxOut era) -> Identity (StrictSeq (TxOut era)))
-> TxBody era -> Identity (TxBody era))
-> StrictSeq (TxOut era) -> TxBody era -> TxBody era
forall s t a b. ASetter s t a b -> b -> s -> t
.~ TxOut era -> StrictSeq (TxOut era)
forall a. a -> StrictSeq a
SSeq.singleton TxOut era
forall era. EraTxOut era => TxOut era
validatingTxOut
TxBody era -> (TxBody era -> TxBody era) -> TxBody era
forall a b. a -> (a -> b) -> b
& (Coin -> Identity Coin) -> TxBody era -> Identity (TxBody era)
forall era. EraTxBody era => Lens' (TxBody era) Coin
Lens' (TxBody era) Coin
feeTxBodyL ((Coin -> Identity Coin) -> TxBody era -> Identity (TxBody era))
-> Coin -> TxBody era -> TxBody era
forall s t a b. ASetter s t a b -> b -> s -> t
.~ Integer -> Coin
Coin Integer
5
TxBody era -> (TxBody era -> TxBody era) -> TxBody era
forall a b. a -> (a -> b) -> b
& (StrictMaybe ScriptIntegrityHash
-> Identity (StrictMaybe ScriptIntegrityHash))
-> TxBody era -> Identity (TxBody era)
forall era.
AlonzoEraTxBody era =>
Lens' (TxBody era) (StrictMaybe ScriptIntegrityHash)
Lens' (TxBody era) (StrictMaybe ScriptIntegrityHash)
scriptIntegrityHashTxBodyL
((StrictMaybe ScriptIntegrityHash
-> Identity (StrictMaybe ScriptIntegrityHash))
-> TxBody era -> Identity (TxBody era))
-> StrictMaybe ScriptIntegrityHash -> TxBody era -> TxBody era
forall s t a b. ASetter s t a b -> b -> s -> t
.~ forall era.
EraModel era =>
PParams era
-> [Language]
-> Redeemers era
-> TxDats era
-> StrictMaybe ScriptIntegrityHash
newScriptIntegrityHash @era PParams era
forall era. AlonzoEraPParams era => PParams era
defaultPParams [Item [Language]
Language
PlutusV1] Redeemers era
forall era. AlonzoEraScript era => Redeemers era
validatingRedeemers (Data era -> TxDats era
forall era. Era era => Data era -> TxDats era
mkTxDats Data era
forall era. Era era => Data era
someDatum)
validatingRedeemers :: AlonzoEraScript era => Redeemers era
validatingRedeemers :: forall era. AlonzoEraScript era => Redeemers era
validatingRedeemers = PlutusPurpose AsIx era -> Data era -> Redeemers era
forall era.
AlonzoEraScript era =>
PlutusPurpose AsIx era -> Data era -> Redeemers era
mkSingleRedeemer (AsIx Word32 TxIn -> PlutusPurpose AsIx era
forall era (f :: * -> * -> *).
AlonzoEraScript era =>
f Word32 TxIn -> PlutusPurpose f era
SpendingPurpose (AsIx Word32 TxIn -> PlutusPurpose AsIx era)
-> AsIx Word32 TxIn -> PlutusPurpose AsIx era
forall a b. (a -> b) -> a -> b
$ Word32 -> AsIx Word32 TxIn
forall ix it. ix -> AsIx ix it
AsIx Word32
0) (Data -> Data era
forall era. Era era => Data -> Data era
Data (Integer -> Data
PV1.I Integer
42))
validatingTxOut :: EraTxOut era => TxOut era
validatingTxOut :: forall era. EraTxOut era => TxOut era
validatingTxOut = Addr -> Value era -> TxOut era
forall era.
(EraTxOut era, HasCallStack) =>
Addr -> Value era -> TxOut era
mkBasicTxOut Addr
someAddr (Coin -> Value era
forall t s. Inject t s => t -> s
inject (Coin -> Value era) -> Coin -> Value era
forall a b. (a -> b) -> a -> b
$ Integer -> Coin
Coin Integer
4995)
notValidatingTx ::
forall era.
( AlonzoEraTxWits era
, AlonzoEraTxBody era
, EraModel era
) =>
Tx era
notValidatingTx :: forall era.
(AlonzoEraTxWits era, AlonzoEraTxBody era, EraModel era) =>
Tx era
notValidatingTx =
TxBody era -> Tx era
forall era. EraTx era => TxBody era -> Tx era
mkBasicTx TxBody era
notValidatingBody
Tx era -> (Tx era -> Tx era) -> Tx era
forall a b. a -> (a -> b) -> b
& (TxWits era -> Identity (TxWits era))
-> Tx era -> Identity (Tx era)
forall era. EraTx era => Lens' (Tx era) (TxWits era)
Lens' (Tx era) (TxWits era)
witsTxL ((TxWits era -> Identity (TxWits era))
-> Tx era -> Identity (Tx era))
-> ((Set (WitVKey 'Witness) -> Identity (Set (WitVKey 'Witness)))
-> TxWits era -> Identity (TxWits era))
-> (Set (WitVKey 'Witness) -> Identity (Set (WitVKey 'Witness)))
-> Tx era
-> Identity (Tx era)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Set (WitVKey 'Witness) -> Identity (Set (WitVKey 'Witness)))
-> TxWits era -> Identity (TxWits era)
forall era.
EraTxWits era =>
Lens' (TxWits era) (Set (WitVKey 'Witness))
Lens' (TxWits era) (Set (WitVKey 'Witness))
addrTxWitsL ((Set (WitVKey 'Witness) -> Identity (Set (WitVKey 'Witness)))
-> Tx era -> Identity (Tx era))
-> Set (WitVKey 'Witness) -> Tx era -> Tx era
forall s t a b. ASetter s t a b -> b -> s -> t
.~ [SafeHash EraIndependentTxBody
-> KeyPair 'Payment -> WitVKey 'Witness
forall (kr :: KeyRole).
SafeHash EraIndependentTxBody -> KeyPair kr -> WitVKey 'Witness
mkWitnessVKey (TxBody era -> SafeHash EraIndependentTxBody
forall x i. HashAnnotated x i => x -> SafeHash i
hashAnnotated TxBody era
notValidatingBody) KeyPair 'Payment
someKeys]
Tx era -> (Tx era -> Tx era) -> Tx era
forall a b. a -> (a -> b) -> b
& (TxWits era -> Identity (TxWits era))
-> Tx era -> Identity (Tx era)
forall era. EraTx era => Lens' (Tx era) (TxWits era)
Lens' (Tx era) (TxWits era)
witsTxL ((TxWits era -> Identity (TxWits era))
-> Tx era -> Identity (Tx era))
-> ((Map ScriptHash (Script era) -> Identity [Script era])
-> TxWits era -> Identity (TxWits era))
-> (Map ScriptHash (Script era) -> Identity [Script era])
-> Tx era
-> Identity (Tx era)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Map ScriptHash (Script era) -> Identity [Script era])
-> TxWits era -> Identity (TxWits era)
forall era.
EraTxWits era =>
Lens
(TxWits era)
(TxWits era)
(Map ScriptHash (Script era))
[Script era]
Lens
(TxWits era)
(TxWits era)
(Map ScriptHash (Script era))
[Script era]
hashScriptTxWitsL ((Map ScriptHash (Script era) -> Identity [Script era])
-> Tx era -> Identity (Tx era))
-> [Script era] -> Tx era -> Tx era
forall s t a b. ASetter s t a b -> b -> s -> t
.~ [Natural -> Script era
forall era. EraModel era => Natural -> Script era
never Natural
0]
Tx era -> (Tx era -> Tx era) -> Tx era
forall a b. a -> (a -> b) -> b
& (TxWits era -> Identity (TxWits era))
-> Tx era -> Identity (Tx era)
forall era. EraTx era => Lens' (Tx era) (TxWits era)
Lens' (Tx era) (TxWits era)
witsTxL ((TxWits era -> Identity (TxWits era))
-> Tx era -> Identity (Tx era))
-> ((TxDats era -> Identity [Data era])
-> TxWits era -> Identity (TxWits era))
-> (TxDats era -> Identity [Data era])
-> Tx era
-> Identity (Tx era)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (TxDats era -> Identity [Data era])
-> TxWits era -> Identity (TxWits era)
forall era.
AlonzoEraTxWits era =>
Lens (TxWits era) (TxWits era) (TxDats era) [Data era]
Lens (TxWits era) (TxWits era) (TxDats era) [Data era]
hashDataTxWitsL ((TxDats era -> Identity [Data era])
-> Tx era -> Identity (Tx era))
-> [Data era] -> Tx era -> Tx era
forall s t a b. ASetter s t a b -> b -> s -> t
.~ [Item [Data era]
Data era
forall era. Era era => Data era
anotherDatum]
Tx era -> (Tx era -> Tx era) -> Tx era
forall a b. a -> (a -> b) -> b
& (TxWits era -> Identity (TxWits era))
-> Tx era -> Identity (Tx era)
forall era. EraTx era => Lens' (Tx era) (TxWits era)
Lens' (Tx era) (TxWits era)
witsTxL ((TxWits era -> Identity (TxWits era))
-> Tx era -> Identity (Tx era))
-> ((Redeemers era -> Identity (Redeemers era))
-> TxWits era -> Identity (TxWits era))
-> (Redeemers era -> Identity (Redeemers era))
-> Tx era
-> Identity (Tx era)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Redeemers era -> Identity (Redeemers era))
-> TxWits era -> Identity (TxWits era)
forall era.
AlonzoEraTxWits era =>
Lens' (TxWits era) (Redeemers era)
Lens' (TxWits era) (Redeemers era)
rdmrsTxWitsL ((Redeemers era -> Identity (Redeemers era))
-> Tx era -> Identity (Tx era))
-> Redeemers era -> Tx era -> Tx era
forall s t a b. ASetter s t a b -> b -> s -> t
.~ Redeemers era
notValidatingRedeemers
where
notValidatingBody :: TxBody era
notValidatingBody =
forall era. EraTxBody era => TxBody era
mkBasicTxBody @era
TxBody era -> (TxBody era -> TxBody era) -> TxBody era
forall a b. a -> (a -> b) -> b
& (Set TxIn -> Identity (Set TxIn))
-> TxBody era -> Identity (TxBody era)
forall era. EraTxBody era => Lens' (TxBody era) (Set TxIn)
Lens' (TxBody era) (Set TxIn)
inputsTxBodyL ((Set TxIn -> Identity (Set TxIn))
-> TxBody era -> Identity (TxBody era))
-> Set TxIn -> TxBody era -> TxBody era
forall s t a b. ASetter s t a b -> b -> s -> t
.~ TxIn -> Set TxIn
forall a. a -> Set a
Set.singleton (HasCallStack => Integer -> TxIn
Integer -> TxIn
mkGenesisTxIn Integer
2)
TxBody era -> (TxBody era -> TxBody era) -> TxBody era
forall a b. a -> (a -> b) -> b
& (Set TxIn -> Identity (Set TxIn))
-> TxBody era -> Identity (TxBody era)
forall era. AlonzoEraTxBody era => Lens' (TxBody era) (Set TxIn)
Lens' (TxBody era) (Set TxIn)
collateralInputsTxBodyL ((Set TxIn -> Identity (Set TxIn))
-> TxBody era -> Identity (TxBody era))
-> Set TxIn -> TxBody era -> TxBody era
forall s t a b. ASetter s t a b -> b -> s -> t
.~ TxIn -> Set TxIn
forall a. a -> Set a
Set.singleton (HasCallStack => Integer -> TxIn
Integer -> TxIn
mkGenesisTxIn Integer
12)
TxBody era -> (TxBody era -> TxBody era) -> TxBody era
forall a b. a -> (a -> b) -> b
& (StrictSeq (TxOut era) -> Identity (StrictSeq (TxOut era)))
-> TxBody era -> Identity (TxBody era)
forall era.
EraTxBody era =>
Lens' (TxBody era) (StrictSeq (TxOut era))
Lens' (TxBody era) (StrictSeq (TxOut era))
outputsTxBodyL ((StrictSeq (TxOut era) -> Identity (StrictSeq (TxOut era)))
-> TxBody era -> Identity (TxBody era))
-> StrictSeq (TxOut era) -> TxBody era -> TxBody era
forall s t a b. ASetter s t a b -> b -> s -> t
.~ TxOut era -> StrictSeq (TxOut era)
forall a. a -> StrictSeq a
SSeq.singleton (Addr -> Value era -> TxOut era
forall era.
(EraTxOut era, HasCallStack) =>
Addr -> Value era -> TxOut era
mkBasicTxOut Addr
someAddr (Coin -> Value era
forall t s. Inject t s => t -> s
inject (Coin -> Value era) -> Coin -> Value era
forall a b. (a -> b) -> a -> b
$ Integer -> Coin
Coin Integer
2995))
TxBody era -> (TxBody era -> TxBody era) -> TxBody era
forall a b. a -> (a -> b) -> b
& (Coin -> Identity Coin) -> TxBody era -> Identity (TxBody era)
forall era. EraTxBody era => Lens' (TxBody era) Coin
Lens' (TxBody era) Coin
feeTxBodyL ((Coin -> Identity Coin) -> TxBody era -> Identity (TxBody era))
-> Coin -> TxBody era -> TxBody era
forall s t a b. ASetter s t a b -> b -> s -> t
.~ Integer -> Coin
Coin Integer
5
TxBody era -> (TxBody era -> TxBody era) -> TxBody era
forall a b. a -> (a -> b) -> b
& (StrictMaybe ScriptIntegrityHash
-> Identity (StrictMaybe ScriptIntegrityHash))
-> TxBody era -> Identity (TxBody era)
forall era.
AlonzoEraTxBody era =>
Lens' (TxBody era) (StrictMaybe ScriptIntegrityHash)
Lens' (TxBody era) (StrictMaybe ScriptIntegrityHash)
scriptIntegrityHashTxBodyL
((StrictMaybe ScriptIntegrityHash
-> Identity (StrictMaybe ScriptIntegrityHash))
-> TxBody era -> Identity (TxBody era))
-> StrictMaybe ScriptIntegrityHash -> TxBody era -> TxBody era
forall s t a b. ASetter s t a b -> b -> s -> t
.~ 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
forall era. AlonzoEraPParams era => PParams era
defaultPParams
[Item [Language]
Language
PlutusV1]
Redeemers era
notValidatingRedeemers
(Data era -> TxDats era
forall era. Era era => Data era -> TxDats era
mkTxDats Data era
forall era. Era era => Data era
anotherDatum)
notValidatingRedeemers :: Redeemers era
notValidatingRedeemers = PlutusPurpose AsIx era -> Data era -> Redeemers era
forall era.
AlonzoEraScript era =>
PlutusPurpose AsIx era -> Data era -> Redeemers era
mkSingleRedeemer (AsIx Word32 TxIn -> PlutusPurpose AsIx era
forall era (f :: * -> * -> *).
AlonzoEraScript era =>
f Word32 TxIn -> PlutusPurpose f era
SpendingPurpose (AsIx Word32 TxIn -> PlutusPurpose AsIx era)
-> AsIx Word32 TxIn -> PlutusPurpose AsIx era
forall a b. (a -> b) -> a -> b
$ Word32 -> AsIx Word32 TxIn
forall ix it. ix -> AsIx ix it
AsIx Word32
0) (Data -> Data era
forall era. Era era => Data -> Data era
Data (Integer -> Data
PV1.I Integer
1))
validatingTxWithWithdrawal ::
forall era.
(AlonzoEraTxBody era, EraModel era, AlonzoEraTxWits era) =>
Tx era
validatingTxWithWithdrawal :: forall era.
(AlonzoEraTxBody era, EraModel era, AlonzoEraTxWits era) =>
Tx era
validatingTxWithWithdrawal =
TxBody era -> Tx era
forall era. EraTx era => TxBody era -> Tx era
mkBasicTx TxBody era
forall era.
(AlonzoEraTxBody era, AlonzoEraScript era, EraModel era) =>
TxBody era
validatingBodyWithWithdrawal
Tx era -> (Tx era -> Tx era) -> Tx era
forall a b. a -> (a -> b) -> b
& (TxWits era -> Identity (TxWits era))
-> Tx era -> Identity (Tx era)
forall era. EraTx era => Lens' (Tx era) (TxWits era)
Lens' (Tx era) (TxWits era)
witsTxL ((TxWits era -> Identity (TxWits era))
-> Tx era -> Identity (Tx era))
-> ((Set (WitVKey 'Witness) -> Identity (Set (WitVKey 'Witness)))
-> TxWits era -> Identity (TxWits era))
-> (Set (WitVKey 'Witness) -> Identity (Set (WitVKey 'Witness)))
-> Tx era
-> Identity (Tx era)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Set (WitVKey 'Witness) -> Identity (Set (WitVKey 'Witness)))
-> TxWits era -> Identity (TxWits era)
forall era.
EraTxWits era =>
Lens' (TxWits era) (Set (WitVKey 'Witness))
Lens' (TxWits era) (Set (WitVKey 'Witness))
addrTxWitsL
((Set (WitVKey 'Witness) -> Identity (Set (WitVKey 'Witness)))
-> Tx era -> Identity (Tx era))
-> Set (WitVKey 'Witness) -> Tx era -> Tx era
forall s t a b. ASetter s t a b -> b -> s -> t
.~ [SafeHash EraIndependentTxBody
-> KeyPair 'Payment -> WitVKey 'Witness
forall (kr :: KeyRole).
SafeHash EraIndependentTxBody -> KeyPair kr -> WitVKey 'Witness
mkWitnessVKey (TxBody era -> SafeHash EraIndependentTxBody
forall x i. HashAnnotated x i => x -> SafeHash i
hashAnnotated (TxBody era -> SafeHash EraIndependentTxBody)
-> TxBody era -> SafeHash EraIndependentTxBody
forall a b. (a -> b) -> a -> b
$ forall era.
(AlonzoEraTxBody era, AlonzoEraScript era, EraModel era) =>
TxBody era
validatingBodyWithWithdrawal @era) KeyPair 'Payment
someKeys]
Tx era -> (Tx era -> Tx era) -> Tx era
forall a b. a -> (a -> b) -> b
& (TxWits era -> Identity (TxWits era))
-> Tx era -> Identity (Tx era)
forall era. EraTx era => Lens' (Tx era) (TxWits era)
Lens' (Tx era) (TxWits era)
witsTxL ((TxWits era -> Identity (TxWits era))
-> Tx era -> Identity (Tx era))
-> ((Map ScriptHash (Script era) -> Identity [Script era])
-> TxWits era -> Identity (TxWits era))
-> (Map ScriptHash (Script era) -> Identity [Script era])
-> Tx era
-> Identity (Tx era)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Map ScriptHash (Script era) -> Identity [Script era])
-> TxWits era -> Identity (TxWits era)
forall era.
EraTxWits era =>
Lens
(TxWits era)
(TxWits era)
(Map ScriptHash (Script era))
[Script era]
Lens
(TxWits era)
(TxWits era)
(Map ScriptHash (Script era))
[Script era]
hashScriptTxWitsL ((Map ScriptHash (Script era) -> Identity [Script era])
-> Tx era -> Identity (Tx era))
-> [Script era] -> Tx era -> Tx era
forall s t a b. ASetter s t a b -> b -> s -> t
.~ [Natural -> Script era
forall era. EraModel era => Natural -> Script era
always Natural
2]
Tx era -> (Tx era -> Tx era) -> Tx era
forall a b. a -> (a -> b) -> b
& (TxWits era -> Identity (TxWits era))
-> Tx era -> Identity (Tx era)
forall era. EraTx era => Lens' (Tx era) (TxWits era)
Lens' (Tx era) (TxWits era)
witsTxL ((TxWits era -> Identity (TxWits era))
-> Tx era -> Identity (Tx era))
-> ((Redeemers era -> Identity (Redeemers era))
-> TxWits era -> Identity (TxWits era))
-> (Redeemers era -> Identity (Redeemers era))
-> Tx era
-> Identity (Tx era)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Redeemers era -> Identity (Redeemers era))
-> TxWits era -> Identity (TxWits era)
forall era.
AlonzoEraTxWits era =>
Lens' (TxWits era) (Redeemers era)
Lens' (TxWits era) (Redeemers era)
rdmrsTxWitsL ((Redeemers era -> Identity (Redeemers era))
-> Tx era -> Identity (Tx era))
-> Redeemers era -> Tx era -> Tx era
forall s t a b. ASetter s t a b -> b -> s -> t
.~ Redeemers era
forall era. AlonzoEraScript era => Redeemers era
validatingWithWithdrawalRedeemers
validatingBodyWithWithdrawal ::
forall era.
( AlonzoEraTxBody era
, AlonzoEraScript era
, EraModel era
) =>
TxBody era
validatingBodyWithWithdrawal :: forall era.
(AlonzoEraTxBody era, AlonzoEraScript era, EraModel era) =>
TxBody era
validatingBodyWithWithdrawal =
TxBody era
forall era. EraTxBody era => TxBody era
mkBasicTxBody
TxBody era -> (TxBody era -> TxBody era) -> TxBody era
forall a b. a -> (a -> b) -> b
& (Set TxIn -> Identity (Set TxIn))
-> TxBody era -> Identity (TxBody era)
forall era. EraTxBody era => Lens' (TxBody era) (Set TxIn)
Lens' (TxBody era) (Set TxIn)
inputsTxBodyL ((Set TxIn -> Identity (Set TxIn))
-> TxBody era -> Identity (TxBody era))
-> Set TxIn -> TxBody era -> TxBody era
forall s t a b. ASetter s t a b -> b -> s -> t
.~ TxIn -> Set TxIn
forall a. a -> Set a
Set.singleton (HasCallStack => Integer -> TxIn
Integer -> TxIn
mkGenesisTxIn Integer
5)
TxBody era -> (TxBody era -> TxBody era) -> TxBody era
forall a b. a -> (a -> b) -> b
& (Set TxIn -> Identity (Set TxIn))
-> TxBody era -> Identity (TxBody era)
forall era. AlonzoEraTxBody era => Lens' (TxBody era) (Set TxIn)
Lens' (TxBody era) (Set TxIn)
collateralInputsTxBodyL ((Set TxIn -> Identity (Set TxIn))
-> TxBody era -> Identity (TxBody era))
-> Set TxIn -> TxBody era -> TxBody era
forall s t a b. ASetter s t a b -> b -> s -> t
.~ TxIn -> Set TxIn
forall a. a -> Set a
Set.singleton (HasCallStack => Integer -> TxIn
Integer -> TxIn
mkGenesisTxIn Integer
15)
TxBody era -> (TxBody era -> TxBody era) -> TxBody era
forall a b. a -> (a -> b) -> b
& (StrictSeq (TxOut era) -> Identity (StrictSeq (TxOut era)))
-> TxBody era -> Identity (TxBody era)
forall era.
EraTxBody era =>
Lens' (TxBody era) (StrictSeq (TxOut era))
Lens' (TxBody era) (StrictSeq (TxOut era))
outputsTxBodyL ((StrictSeq (TxOut era) -> Identity (StrictSeq (TxOut era)))
-> TxBody era -> Identity (TxBody era))
-> StrictSeq (TxOut era) -> TxBody era -> TxBody era
forall s t a b. ASetter s t a b -> b -> s -> t
.~ TxOut era -> StrictSeq (TxOut era)
forall a. a -> StrictSeq a
SSeq.singleton TxOut era
forall era. EraTxOut era => TxOut era
validatingTxWithWithdrawalOut
TxBody era -> (TxBody era -> TxBody era) -> TxBody era
forall a b. a -> (a -> b) -> b
& (Coin -> Identity Coin) -> TxBody era -> Identity (TxBody era)
forall era. EraTxBody era => Lens' (TxBody era) Coin
Lens' (TxBody era) Coin
feeTxBodyL ((Coin -> Identity Coin) -> TxBody era -> Identity (TxBody era))
-> Coin -> TxBody era -> TxBody era
forall s t a b. ASetter s t a b -> b -> s -> t
.~ Integer -> Coin
Coin Integer
5
TxBody era -> (TxBody era -> TxBody era) -> TxBody era
forall a b. a -> (a -> b) -> b
& (Withdrawals -> Identity Withdrawals)
-> TxBody era -> Identity (TxBody era)
forall era. EraTxBody era => Lens' (TxBody era) Withdrawals
Lens' (TxBody era) Withdrawals
withdrawalsTxBodyL
((Withdrawals -> Identity Withdrawals)
-> TxBody era -> Identity (TxBody era))
-> Withdrawals -> TxBody era -> TxBody era
forall s t a b. ASetter s t a b -> b -> s -> t
.~ Map RewardAccount Coin -> Withdrawals
Withdrawals (RewardAccount -> Coin -> Map RewardAccount Coin
forall k a. k -> a -> Map k a
Map.singleton (Network -> StakeCredential -> RewardAccount
RewardAccount Network
Testnet (forall era. (ShelleyEraScript era, EraModel era) => StakeCredential
scriptStakeCredSucceed @era)) (Coin -> Map RewardAccount Coin) -> Coin -> Map RewardAccount Coin
forall a b. (a -> b) -> a -> b
$ Integer -> Coin
Coin Integer
1000)
TxBody era -> (TxBody era -> TxBody era) -> TxBody era
forall a b. a -> (a -> b) -> b
& (StrictMaybe ScriptIntegrityHash
-> Identity (StrictMaybe ScriptIntegrityHash))
-> TxBody era -> Identity (TxBody era)
forall era.
AlonzoEraTxBody era =>
Lens' (TxBody era) (StrictMaybe ScriptIntegrityHash)
Lens' (TxBody era) (StrictMaybe ScriptIntegrityHash)
scriptIntegrityHashTxBodyL
((StrictMaybe ScriptIntegrityHash
-> Identity (StrictMaybe ScriptIntegrityHash))
-> TxBody era -> Identity (TxBody era))
-> StrictMaybe ScriptIntegrityHash -> TxBody era -> TxBody era
forall s t a b. ASetter s t a b -> b -> s -> t
.~ forall era.
EraModel era =>
PParams era
-> [Language]
-> Redeemers era
-> TxDats era
-> StrictMaybe ScriptIntegrityHash
newScriptIntegrityHash @era
PParams era
forall era. AlonzoEraPParams era => PParams era
defaultPParams
[Item [Language]
Language
PlutusV1]
Redeemers era
forall era. AlonzoEraScript era => Redeemers era
validatingWithWithdrawalRedeemers
TxDats era
forall a. Monoid a => a
mempty
validatingWithWithdrawalRedeemers :: AlonzoEraScript era => Redeemers era
validatingWithWithdrawalRedeemers :: forall era. AlonzoEraScript era => Redeemers era
validatingWithWithdrawalRedeemers = PlutusPurpose AsIx era -> Data era -> Redeemers era
forall era.
AlonzoEraScript era =>
PlutusPurpose AsIx era -> Data era -> Redeemers era
mkSingleRedeemer (AsIx Word32 RewardAccount -> PlutusPurpose AsIx era
forall era (f :: * -> * -> *).
AlonzoEraScript era =>
f Word32 RewardAccount -> PlutusPurpose f era
RewardingPurpose (AsIx Word32 RewardAccount -> PlutusPurpose AsIx era)
-> AsIx Word32 RewardAccount -> PlutusPurpose AsIx era
forall a b. (a -> b) -> a -> b
$ Word32 -> AsIx Word32 RewardAccount
forall ix it. ix -> AsIx ix it
AsIx Word32
0) (Data -> Data era
forall era. Era era => Data -> Data era
Data (Integer -> Data
PV1.I Integer
42))
validatingTxWithWithdrawalOut :: EraTxOut era => TxOut era
validatingTxWithWithdrawalOut :: forall era. EraTxOut era => TxOut era
validatingTxWithWithdrawalOut = Addr -> Value era -> TxOut era
forall era.
(EraTxOut era, HasCallStack) =>
Addr -> Value era -> TxOut era
mkBasicTxOut Addr
someAddr (Value era -> TxOut era)
-> (Coin -> Value era) -> Coin -> TxOut era
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Coin -> Value era
forall t s. Inject t s => t -> s
inject (Coin -> TxOut era) -> Coin -> TxOut era
forall a b. (a -> b) -> a -> b
$ Integer -> Coin
Coin Integer
1995
notValidatingTxWithWithdrawal ::
forall era.
( AlonzoEraTxWits era
, AlonzoEraTxBody era
, EraModel era
) =>
Tx era
notValidatingTxWithWithdrawal :: forall era.
(AlonzoEraTxWits era, AlonzoEraTxBody era, EraModel era) =>
Tx era
notValidatingTxWithWithdrawal =
TxBody era -> Tx era
forall era. EraTx era => TxBody era -> Tx era
mkBasicTx TxBody era
notValidatingBodyWithWithdrawal
Tx era -> (Tx era -> Tx era) -> Tx era
forall a b. a -> (a -> b) -> b
& (TxWits era -> Identity (TxWits era))
-> Tx era -> Identity (Tx era)
forall era. EraTx era => Lens' (Tx era) (TxWits era)
Lens' (Tx era) (TxWits era)
witsTxL ((TxWits era -> Identity (TxWits era))
-> Tx era -> Identity (Tx era))
-> ((Set (WitVKey 'Witness) -> Identity (Set (WitVKey 'Witness)))
-> TxWits era -> Identity (TxWits era))
-> (Set (WitVKey 'Witness) -> Identity (Set (WitVKey 'Witness)))
-> Tx era
-> Identity (Tx era)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Set (WitVKey 'Witness) -> Identity (Set (WitVKey 'Witness)))
-> TxWits era -> Identity (TxWits era)
forall era.
EraTxWits era =>
Lens' (TxWits era) (Set (WitVKey 'Witness))
Lens' (TxWits era) (Set (WitVKey 'Witness))
addrTxWitsL ((Set (WitVKey 'Witness) -> Identity (Set (WitVKey 'Witness)))
-> Tx era -> Identity (Tx era))
-> Set (WitVKey 'Witness) -> Tx era -> Tx era
forall s t a b. ASetter s t a b -> b -> s -> t
.~ [SafeHash EraIndependentTxBody
-> KeyPair 'Payment -> WitVKey 'Witness
forall (kr :: KeyRole).
SafeHash EraIndependentTxBody -> KeyPair kr -> WitVKey 'Witness
mkWitnessVKey (TxBody era -> SafeHash EraIndependentTxBody
forall x i. HashAnnotated x i => x -> SafeHash i
hashAnnotated TxBody era
notValidatingBodyWithWithdrawal) KeyPair 'Payment
someKeys]
Tx era -> (Tx era -> Tx era) -> Tx era
forall a b. a -> (a -> b) -> b
& (TxWits era -> Identity (TxWits era))
-> Tx era -> Identity (Tx era)
forall era. EraTx era => Lens' (Tx era) (TxWits era)
Lens' (Tx era) (TxWits era)
witsTxL ((TxWits era -> Identity (TxWits era))
-> Tx era -> Identity (Tx era))
-> ((Map ScriptHash (Script era) -> Identity [Script era])
-> TxWits era -> Identity (TxWits era))
-> (Map ScriptHash (Script era) -> Identity [Script era])
-> Tx era
-> Identity (Tx era)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Map ScriptHash (Script era) -> Identity [Script era])
-> TxWits era -> Identity (TxWits era)
forall era.
EraTxWits era =>
Lens
(TxWits era)
(TxWits era)
(Map ScriptHash (Script era))
[Script era]
Lens
(TxWits era)
(TxWits era)
(Map ScriptHash (Script era))
[Script era]
hashScriptTxWitsL ((Map ScriptHash (Script era) -> Identity [Script era])
-> Tx era -> Identity (Tx era))
-> [Script era] -> Tx era -> Tx era
forall s t a b. ASetter s t a b -> b -> s -> t
.~ [Natural -> Script era
forall era. EraModel era => Natural -> Script era
never Natural
1]
Tx era -> (Tx era -> Tx era) -> Tx era
forall a b. a -> (a -> b) -> b
& (TxWits era -> Identity (TxWits era))
-> Tx era -> Identity (Tx era)
forall era. EraTx era => Lens' (Tx era) (TxWits era)
Lens' (Tx era) (TxWits era)
witsTxL ((TxWits era -> Identity (TxWits era))
-> Tx era -> Identity (Tx era))
-> ((Redeemers era -> Identity (Redeemers era))
-> TxWits era -> Identity (TxWits era))
-> (Redeemers era -> Identity (Redeemers era))
-> Tx era
-> Identity (Tx era)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Redeemers era -> Identity (Redeemers era))
-> TxWits era -> Identity (TxWits era)
forall era.
AlonzoEraTxWits era =>
Lens' (TxWits era) (Redeemers era)
Lens' (TxWits era) (Redeemers era)
rdmrsTxWitsL ((Redeemers era -> Identity (Redeemers era))
-> Tx era -> Identity (Tx era))
-> Redeemers era -> Tx era -> Tx era
forall s t a b. ASetter s t a b -> b -> s -> t
.~ Redeemers era
notValidatingRedeemers
where
notValidatingBodyWithWithdrawal :: TxBody era
notValidatingBodyWithWithdrawal =
TxBody era
forall era. EraTxBody era => TxBody era
mkBasicTxBody
TxBody era -> (TxBody era -> TxBody era) -> TxBody era
forall a b. a -> (a -> b) -> b
& (Set TxIn -> Identity (Set TxIn))
-> TxBody era -> Identity (TxBody era)
forall era. EraTxBody era => Lens' (TxBody era) (Set TxIn)
Lens' (TxBody era) (Set TxIn)
inputsTxBodyL ((Set TxIn -> Identity (Set TxIn))
-> TxBody era -> Identity (TxBody era))
-> Set TxIn -> TxBody era -> TxBody era
forall s t a b. ASetter s t a b -> b -> s -> t
.~ TxIn -> Set TxIn
forall a. a -> Set a
Set.singleton (HasCallStack => Integer -> TxIn
Integer -> TxIn
mkGenesisTxIn Integer
6)
TxBody era -> (TxBody era -> TxBody era) -> TxBody era
forall a b. a -> (a -> b) -> b
& (Set TxIn -> Identity (Set TxIn))
-> TxBody era -> Identity (TxBody era)
forall era. AlonzoEraTxBody era => Lens' (TxBody era) (Set TxIn)
Lens' (TxBody era) (Set TxIn)
collateralInputsTxBodyL ((Set TxIn -> Identity (Set TxIn))
-> TxBody era -> Identity (TxBody era))
-> Set TxIn -> TxBody era -> TxBody era
forall s t a b. ASetter s t a b -> b -> s -> t
.~ TxIn -> Set TxIn
forall a. a -> Set a
Set.singleton (HasCallStack => Integer -> TxIn
Integer -> TxIn
mkGenesisTxIn Integer
16)
TxBody era -> (TxBody era -> TxBody era) -> TxBody era
forall a b. a -> (a -> b) -> b
& (StrictSeq (TxOut era) -> Identity (StrictSeq (TxOut era)))
-> TxBody era -> Identity (TxBody era)
forall era.
EraTxBody era =>
Lens' (TxBody era) (StrictSeq (TxOut era))
Lens' (TxBody era) (StrictSeq (TxOut era))
outputsTxBodyL ((StrictSeq (TxOut era) -> Identity (StrictSeq (TxOut era)))
-> TxBody era -> Identity (TxBody era))
-> StrictSeq (TxOut era) -> TxBody era -> TxBody era
forall s t a b. ASetter s t a b -> b -> s -> t
.~ TxOut era -> StrictSeq (TxOut era)
forall a. a -> StrictSeq a
SSeq.singleton (Addr -> Value era -> TxOut era
forall era.
(EraTxOut era, HasCallStack) =>
Addr -> Value era -> TxOut era
mkBasicTxOut Addr
someAddr (Value era -> TxOut era)
-> (Coin -> Value era) -> Coin -> TxOut era
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Coin -> Value era
forall t s. Inject t s => t -> s
inject (Coin -> TxOut era) -> Coin -> TxOut era
forall a b. (a -> b) -> a -> b
$ Integer -> Coin
Coin Integer
1995)
TxBody era -> (TxBody era -> TxBody era) -> TxBody era
forall a b. a -> (a -> b) -> b
& (Coin -> Identity Coin) -> TxBody era -> Identity (TxBody era)
forall era. EraTxBody era => Lens' (TxBody era) Coin
Lens' (TxBody era) Coin
feeTxBodyL ((Coin -> Identity Coin) -> TxBody era -> Identity (TxBody era))
-> Coin -> TxBody era -> TxBody era
forall s t a b. ASetter s t a b -> b -> s -> t
.~ Integer -> Coin
Coin Integer
5
TxBody era -> (TxBody era -> TxBody era) -> TxBody era
forall a b. a -> (a -> b) -> b
& (Withdrawals -> Identity Withdrawals)
-> TxBody era -> Identity (TxBody era)
forall era. EraTxBody era => Lens' (TxBody era) Withdrawals
Lens' (TxBody era) Withdrawals
withdrawalsTxBodyL
((Withdrawals -> Identity Withdrawals)
-> TxBody era -> Identity (TxBody era))
-> Withdrawals -> TxBody era -> TxBody era
forall s t a b. ASetter s t a b -> b -> s -> t
.~ Map RewardAccount Coin -> Withdrawals
Withdrawals (RewardAccount -> Coin -> Map RewardAccount Coin
forall k a. k -> a -> Map k a
Map.singleton (Network -> StakeCredential -> RewardAccount
RewardAccount Network
Testnet (StakeCredential -> RewardAccount)
-> StakeCredential -> RewardAccount
forall a b. (a -> b) -> a -> b
$ forall era. (ShelleyEraScript era, EraModel era) => StakeCredential
scriptStakeCredFail @era) (Coin -> Map RewardAccount Coin)
-> (Coin -> Coin) -> Coin -> Map RewardAccount Coin
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Coin -> Coin
forall t s. Inject t s => t -> s
inject (Coin -> Map RewardAccount Coin) -> Coin -> Map RewardAccount Coin
forall a b. (a -> b) -> a -> b
$ Integer -> Coin
Coin Integer
1000)
TxBody era -> (TxBody era -> TxBody era) -> TxBody era
forall a b. a -> (a -> b) -> b
& (StrictMaybe ScriptIntegrityHash
-> Identity (StrictMaybe ScriptIntegrityHash))
-> TxBody era -> Identity (TxBody era)
forall era.
AlonzoEraTxBody era =>
Lens' (TxBody era) (StrictMaybe ScriptIntegrityHash)
Lens' (TxBody era) (StrictMaybe ScriptIntegrityHash)
scriptIntegrityHashTxBodyL
((StrictMaybe ScriptIntegrityHash
-> Identity (StrictMaybe ScriptIntegrityHash))
-> TxBody era -> Identity (TxBody era))
-> StrictMaybe ScriptIntegrityHash -> TxBody era -> TxBody era
forall s t a b. ASetter s t a b -> b -> s -> t
.~ 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
forall era. AlonzoEraPParams era => PParams era
defaultPParams [Item [Language]
Language
PlutusV1] Redeemers era
notValidatingRedeemers TxDats era
forall a. Monoid a => a
mempty
notValidatingRedeemers :: Redeemers era
notValidatingRedeemers = PlutusPurpose AsIx era -> Data era -> Redeemers era
forall era.
AlonzoEraScript era =>
PlutusPurpose AsIx era -> Data era -> Redeemers era
mkSingleRedeemer (AsIx Word32 RewardAccount -> PlutusPurpose AsIx era
forall era (f :: * -> * -> *).
AlonzoEraScript era =>
f Word32 RewardAccount -> PlutusPurpose f era
RewardingPurpose (AsIx Word32 RewardAccount -> PlutusPurpose AsIx era)
-> AsIx Word32 RewardAccount -> PlutusPurpose AsIx era
forall a b. (a -> b) -> a -> b
$ Word32 -> AsIx Word32 RewardAccount
forall ix it. ix -> AsIx ix it
AsIx Word32
0) (Data -> Data era
forall era. Era era => Data -> Data era
Data (Integer -> Data
PV1.I Integer
0))
validatingTxWithCert ::
forall era.
( ShelleyEraTxCert era
, AlonzoEraTxWits era
, AlonzoEraTxBody era
, EraModel era
) =>
Tx era
validatingTxWithCert :: forall era.
(ShelleyEraTxCert era, AlonzoEraTxWits era, AlonzoEraTxBody era,
EraModel era) =>
Tx era
validatingTxWithCert =
TxBody era -> Tx era
forall era. EraTx era => TxBody era -> Tx era
mkBasicTx TxBody era
forall era.
(ShelleyEraTxCert era, AlonzoEraTxBody era, AlonzoEraScript era,
EraModel era) =>
TxBody era
validatingBodyWithCert
Tx era -> (Tx era -> Tx era) -> Tx era
forall a b. a -> (a -> b) -> b
& (TxWits era -> Identity (TxWits era))
-> Tx era -> Identity (Tx era)
forall era. EraTx era => Lens' (Tx era) (TxWits era)
Lens' (Tx era) (TxWits era)
witsTxL ((TxWits era -> Identity (TxWits era))
-> Tx era -> Identity (Tx era))
-> ((Set (WitVKey 'Witness) -> Identity (Set (WitVKey 'Witness)))
-> TxWits era -> Identity (TxWits era))
-> (Set (WitVKey 'Witness) -> Identity (Set (WitVKey 'Witness)))
-> Tx era
-> Identity (Tx era)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Set (WitVKey 'Witness) -> Identity (Set (WitVKey 'Witness)))
-> TxWits era -> Identity (TxWits era)
forall era.
EraTxWits era =>
Lens' (TxWits era) (Set (WitVKey 'Witness))
Lens' (TxWits era) (Set (WitVKey 'Witness))
addrTxWitsL ((Set (WitVKey 'Witness) -> Identity (Set (WitVKey 'Witness)))
-> Tx era -> Identity (Tx era))
-> Set (WitVKey 'Witness) -> Tx era -> Tx era
forall s t a b. ASetter s t a b -> b -> s -> t
.~ [SafeHash EraIndependentTxBody
-> KeyPair 'Payment -> WitVKey 'Witness
forall (kr :: KeyRole).
SafeHash EraIndependentTxBody -> KeyPair kr -> WitVKey 'Witness
mkWitnessVKey (TxBody era -> SafeHash EraIndependentTxBody
forall x i. HashAnnotated x i => x -> SafeHash i
hashAnnotated (TxBody era -> SafeHash EraIndependentTxBody)
-> TxBody era -> SafeHash EraIndependentTxBody
forall a b. (a -> b) -> a -> b
$ forall era.
(ShelleyEraTxCert era, AlonzoEraTxBody era, AlonzoEraScript era,
EraModel era) =>
TxBody era
validatingBodyWithCert @era) KeyPair 'Payment
someKeys]
Tx era -> (Tx era -> Tx era) -> Tx era
forall a b. a -> (a -> b) -> b
& (TxWits era -> Identity (TxWits era))
-> Tx era -> Identity (Tx era)
forall era. EraTx era => Lens' (Tx era) (TxWits era)
Lens' (Tx era) (TxWits era)
witsTxL ((TxWits era -> Identity (TxWits era))
-> Tx era -> Identity (Tx era))
-> ((Map ScriptHash (Script era) -> Identity [Script era])
-> TxWits era -> Identity (TxWits era))
-> (Map ScriptHash (Script era) -> Identity [Script era])
-> Tx era
-> Identity (Tx era)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Map ScriptHash (Script era) -> Identity [Script era])
-> TxWits era -> Identity (TxWits era)
forall era.
EraTxWits era =>
Lens
(TxWits era)
(TxWits era)
(Map ScriptHash (Script era))
[Script era]
Lens
(TxWits era)
(TxWits era)
(Map ScriptHash (Script era))
[Script era]
hashScriptTxWitsL ((Map ScriptHash (Script era) -> Identity [Script era])
-> Tx era -> Identity (Tx era))
-> [Script era] -> Tx era -> Tx era
forall s t a b. ASetter s t a b -> b -> s -> t
.~ [Natural -> Script era
forall era. EraModel era => Natural -> Script era
always Natural
2]
Tx era -> (Tx era -> Tx era) -> Tx era
forall a b. a -> (a -> b) -> b
& (TxWits era -> Identity (TxWits era))
-> Tx era -> Identity (Tx era)
forall era. EraTx era => Lens' (Tx era) (TxWits era)
Lens' (Tx era) (TxWits era)
witsTxL ((TxWits era -> Identity (TxWits era))
-> Tx era -> Identity (Tx era))
-> ((Redeemers era -> Identity (Redeemers era))
-> TxWits era -> Identity (TxWits era))
-> (Redeemers era -> Identity (Redeemers era))
-> Tx era
-> Identity (Tx era)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Redeemers era -> Identity (Redeemers era))
-> TxWits era -> Identity (TxWits era)
forall era.
AlonzoEraTxWits era =>
Lens' (TxWits era) (Redeemers era)
Lens' (TxWits era) (Redeemers era)
rdmrsTxWitsL ((Redeemers era -> Identity (Redeemers era))
-> Tx era -> Identity (Tx era))
-> Redeemers era -> Tx era -> Tx era
forall s t a b. ASetter s t a b -> b -> s -> t
.~ Redeemers era
forall era. AlonzoEraScript era => Redeemers era
validatingRedeemersWithCert
validatingBodyWithCert ::
forall era.
( ShelleyEraTxCert era
, AlonzoEraTxBody era
, AlonzoEraScript era
, EraModel era
) =>
TxBody era
validatingBodyWithCert :: forall era.
(ShelleyEraTxCert era, AlonzoEraTxBody era, AlonzoEraScript era,
EraModel era) =>
TxBody era
validatingBodyWithCert =
TxBody era
forall era. EraTxBody era => TxBody era
mkBasicTxBody
TxBody era -> (TxBody era -> TxBody era) -> TxBody era
forall a b. a -> (a -> b) -> b
& (Set TxIn -> Identity (Set TxIn))
-> TxBody era -> Identity (TxBody era)
forall era. EraTxBody era => Lens' (TxBody era) (Set TxIn)
Lens' (TxBody era) (Set TxIn)
inputsTxBodyL ((Set TxIn -> Identity (Set TxIn))
-> TxBody era -> Identity (TxBody era))
-> Set TxIn -> TxBody era -> TxBody era
forall s t a b. ASetter s t a b -> b -> s -> t
.~ TxIn -> Set TxIn
forall a. a -> Set a
Set.singleton (HasCallStack => Integer -> TxIn
Integer -> TxIn
mkGenesisTxIn Integer
3)
TxBody era -> (TxBody era -> TxBody era) -> TxBody era
forall a b. a -> (a -> b) -> b
& (Set TxIn -> Identity (Set TxIn))
-> TxBody era -> Identity (TxBody era)
forall era. AlonzoEraTxBody era => Lens' (TxBody era) (Set TxIn)
Lens' (TxBody era) (Set TxIn)
collateralInputsTxBodyL ((Set TxIn -> Identity (Set TxIn))
-> TxBody era -> Identity (TxBody era))
-> Set TxIn -> TxBody era -> TxBody era
forall s t a b. ASetter s t a b -> b -> s -> t
.~ TxIn -> Set TxIn
forall a. a -> Set a
Set.singleton (HasCallStack => Integer -> TxIn
Integer -> TxIn
mkGenesisTxIn Integer
13)
TxBody era -> (TxBody era -> TxBody era) -> TxBody era
forall a b. a -> (a -> b) -> b
& (StrictSeq (TxOut era) -> Identity (StrictSeq (TxOut era)))
-> TxBody era -> Identity (TxBody era)
forall era.
EraTxBody era =>
Lens' (TxBody era) (StrictSeq (TxOut era))
Lens' (TxBody era) (StrictSeq (TxOut era))
outputsTxBodyL ((StrictSeq (TxOut era) -> Identity (StrictSeq (TxOut era)))
-> TxBody era -> Identity (TxBody era))
-> StrictSeq (TxOut era) -> TxBody era -> TxBody era
forall s t a b. ASetter s t a b -> b -> s -> t
.~ TxOut era -> StrictSeq (TxOut era)
forall a. a -> StrictSeq a
SSeq.singleton TxOut era
forall era. EraTxOut era => TxOut era
validatingTxWithCertOut
TxBody era -> (TxBody era -> TxBody era) -> TxBody era
forall a b. a -> (a -> b) -> b
& (StrictSeq (TxCert era) -> Identity (StrictSeq (TxCert era)))
-> TxBody era -> Identity (TxBody era)
forall era.
EraTxBody era =>
Lens' (TxBody era) (StrictSeq (TxCert era))
Lens' (TxBody era) (StrictSeq (TxCert era))
certsTxBodyL ((StrictSeq (TxCert era) -> Identity (StrictSeq (TxCert era)))
-> TxBody era -> Identity (TxBody era))
-> StrictSeq (TxCert era) -> TxBody era -> TxBody era
forall s t a b. ASetter s t a b -> b -> s -> t
.~ TxCert era -> StrictSeq (TxCert era)
forall a. a -> StrictSeq a
SSeq.singleton (StakeCredential -> TxCert era
forall era. ShelleyEraTxCert era => StakeCredential -> TxCert era
UnRegTxCert (StakeCredential -> TxCert era) -> StakeCredential -> TxCert era
forall a b. (a -> b) -> a -> b
$ forall era. (ShelleyEraScript era, EraModel era) => StakeCredential
scriptStakeCredSucceed @era)
TxBody era -> (TxBody era -> TxBody era) -> TxBody era
forall a b. a -> (a -> b) -> b
& (Coin -> Identity Coin) -> TxBody era -> Identity (TxBody era)
forall era. EraTxBody era => Lens' (TxBody era) Coin
Lens' (TxBody era) Coin
feeTxBodyL ((Coin -> Identity Coin) -> TxBody era -> Identity (TxBody era))
-> Coin -> TxBody era -> TxBody era
forall s t a b. ASetter s t a b -> b -> s -> t
.~ Integer -> Coin
Coin Integer
5
TxBody era -> (TxBody era -> TxBody era) -> TxBody era
forall a b. a -> (a -> b) -> b
& (StrictMaybe ScriptIntegrityHash
-> Identity (StrictMaybe ScriptIntegrityHash))
-> TxBody era -> Identity (TxBody era)
forall era.
AlonzoEraTxBody era =>
Lens' (TxBody era) (StrictMaybe ScriptIntegrityHash)
Lens' (TxBody era) (StrictMaybe ScriptIntegrityHash)
scriptIntegrityHashTxBodyL
((StrictMaybe ScriptIntegrityHash
-> Identity (StrictMaybe ScriptIntegrityHash))
-> TxBody era -> Identity (TxBody era))
-> StrictMaybe ScriptIntegrityHash -> TxBody era -> TxBody era
forall s t a b. ASetter s t a b -> b -> s -> t
.~ forall era.
EraModel era =>
PParams era
-> [Language]
-> Redeemers era
-> TxDats era
-> StrictMaybe ScriptIntegrityHash
newScriptIntegrityHash @era PParams era
forall era. AlonzoEraPParams era => PParams era
defaultPParams [Item [Language]
Language
PlutusV1] Redeemers era
forall era. AlonzoEraScript era => Redeemers era
validatingRedeemersWithCert TxDats era
forall a. Monoid a => a
mempty
validatingRedeemersWithCert :: AlonzoEraScript era => Redeemers era
validatingRedeemersWithCert :: forall era. AlonzoEraScript era => Redeemers era
validatingRedeemersWithCert = PlutusPurpose AsIx era -> Data era -> Redeemers era
forall era.
AlonzoEraScript era =>
PlutusPurpose AsIx era -> Data era -> Redeemers era
mkSingleRedeemer (AsIx Word32 (TxCert era) -> PlutusPurpose AsIx era
forall era (f :: * -> * -> *).
AlonzoEraScript era =>
f Word32 (TxCert era) -> PlutusPurpose f era
CertifyingPurpose (AsIx Word32 (TxCert era) -> PlutusPurpose AsIx era)
-> AsIx Word32 (TxCert era) -> PlutusPurpose AsIx era
forall a b. (a -> b) -> a -> b
$ Word32 -> AsIx Word32 (TxCert era)
forall ix it. ix -> AsIx ix it
AsIx Word32
0) (Data -> Data era
forall era. Era era => Data -> Data era
Data (Integer -> Data
PV1.I Integer
42))
validatingTxWithCertOut :: EraTxOut era => TxOut era
validatingTxWithCertOut :: forall era. EraTxOut era => TxOut era
validatingTxWithCertOut =
Addr -> Value era -> TxOut era
forall era.
(EraTxOut era, HasCallStack) =>
Addr -> Value era -> TxOut era
mkBasicTxOut Addr
someAddr (Value era -> TxOut era)
-> (Coin -> Value era) -> Coin -> TxOut era
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Coin -> Value era
forall t s. Inject t s => t -> s
inject (Coin -> TxOut era) -> Coin -> TxOut era
forall a b. (a -> b) -> a -> b
$ Integer -> Coin
Coin Integer
995 Coin -> Coin -> Coin
forall a. Semigroup a => a -> a -> a
<> CompactForm Coin -> Coin
forall a. Compactible a => CompactForm a -> a
fromCompact CompactForm Coin
successDeposit
notValidatingTxWithCert ::
forall era.
( ShelleyEraTxCert era
, AlonzoEraTxWits era
, AlonzoEraTxBody era
, EraModel era
) =>
Tx era
notValidatingTxWithCert :: forall era.
(ShelleyEraTxCert era, AlonzoEraTxWits era, AlonzoEraTxBody era,
EraModel era) =>
Tx era
notValidatingTxWithCert =
TxBody era -> Tx era
forall era. EraTx era => TxBody era -> Tx era
mkBasicTx TxBody era
notValidatingBodyWithCert
Tx era -> (Tx era -> Tx era) -> Tx era
forall a b. a -> (a -> b) -> b
& (TxWits era -> Identity (TxWits era))
-> Tx era -> Identity (Tx era)
forall era. EraTx era => Lens' (Tx era) (TxWits era)
Lens' (Tx era) (TxWits era)
witsTxL ((TxWits era -> Identity (TxWits era))
-> Tx era -> Identity (Tx era))
-> ((Set (WitVKey 'Witness) -> Identity (Set (WitVKey 'Witness)))
-> TxWits era -> Identity (TxWits era))
-> (Set (WitVKey 'Witness) -> Identity (Set (WitVKey 'Witness)))
-> Tx era
-> Identity (Tx era)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Set (WitVKey 'Witness) -> Identity (Set (WitVKey 'Witness)))
-> TxWits era -> Identity (TxWits era)
forall era.
EraTxWits era =>
Lens' (TxWits era) (Set (WitVKey 'Witness))
Lens' (TxWits era) (Set (WitVKey 'Witness))
addrTxWitsL ((Set (WitVKey 'Witness) -> Identity (Set (WitVKey 'Witness)))
-> Tx era -> Identity (Tx era))
-> Set (WitVKey 'Witness) -> Tx era -> Tx era
forall s t a b. ASetter s t a b -> b -> s -> t
.~ [SafeHash EraIndependentTxBody
-> KeyPair 'Payment -> WitVKey 'Witness
forall (kr :: KeyRole).
SafeHash EraIndependentTxBody -> KeyPair kr -> WitVKey 'Witness
mkWitnessVKey (TxBody era -> SafeHash EraIndependentTxBody
forall x i. HashAnnotated x i => x -> SafeHash i
hashAnnotated TxBody era
notValidatingBodyWithCert) KeyPair 'Payment
someKeys]
Tx era -> (Tx era -> Tx era) -> Tx era
forall a b. a -> (a -> b) -> b
& (TxWits era -> Identity (TxWits era))
-> Tx era -> Identity (Tx era)
forall era. EraTx era => Lens' (Tx era) (TxWits era)
Lens' (Tx era) (TxWits era)
witsTxL ((TxWits era -> Identity (TxWits era))
-> Tx era -> Identity (Tx era))
-> ((Map ScriptHash (Script era) -> Identity [Script era])
-> TxWits era -> Identity (TxWits era))
-> (Map ScriptHash (Script era) -> Identity [Script era])
-> Tx era
-> Identity (Tx era)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Map ScriptHash (Script era) -> Identity [Script era])
-> TxWits era -> Identity (TxWits era)
forall era.
EraTxWits era =>
Lens
(TxWits era)
(TxWits era)
(Map ScriptHash (Script era))
[Script era]
Lens
(TxWits era)
(TxWits era)
(Map ScriptHash (Script era))
[Script era]
hashScriptTxWitsL ((Map ScriptHash (Script era) -> Identity [Script era])
-> Tx era -> Identity (Tx era))
-> [Script era] -> Tx era -> Tx era
forall s t a b. ASetter s t a b -> b -> s -> t
.~ [Natural -> Script era
forall era. EraModel era => Natural -> Script era
never Natural
1]
Tx era -> (Tx era -> Tx era) -> Tx era
forall a b. a -> (a -> b) -> b
& (TxWits era -> Identity (TxWits era))
-> Tx era -> Identity (Tx era)
forall era. EraTx era => Lens' (Tx era) (TxWits era)
Lens' (Tx era) (TxWits era)
witsTxL ((TxWits era -> Identity (TxWits era))
-> Tx era -> Identity (Tx era))
-> ((Redeemers era -> Identity (Redeemers era))
-> TxWits era -> Identity (TxWits era))
-> (Redeemers era -> Identity (Redeemers era))
-> Tx era
-> Identity (Tx era)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Redeemers era -> Identity (Redeemers era))
-> TxWits era -> Identity (TxWits era)
forall era.
AlonzoEraTxWits era =>
Lens' (TxWits era) (Redeemers era)
Lens' (TxWits era) (Redeemers era)
rdmrsTxWitsL ((Redeemers era -> Identity (Redeemers era))
-> Tx era -> Identity (Tx era))
-> Redeemers era -> Tx era -> Tx era
forall s t a b. ASetter s t a b -> b -> s -> t
.~ Redeemers era
notValidatingRedeemersWithCert
where
notValidatingBodyWithCert :: TxBody era
notValidatingBodyWithCert =
TxBody era
forall era. EraTxBody era => TxBody era
mkBasicTxBody
TxBody era -> (TxBody era -> TxBody era) -> TxBody era
forall a b. a -> (a -> b) -> b
& (Set TxIn -> Identity (Set TxIn))
-> TxBody era -> Identity (TxBody era)
forall era. EraTxBody era => Lens' (TxBody era) (Set TxIn)
Lens' (TxBody era) (Set TxIn)
inputsTxBodyL ((Set TxIn -> Identity (Set TxIn))
-> TxBody era -> Identity (TxBody era))
-> Set TxIn -> TxBody era -> TxBody era
forall s t a b. ASetter s t a b -> b -> s -> t
.~ TxIn -> Set TxIn
forall a. a -> Set a
Set.singleton (HasCallStack => Integer -> TxIn
Integer -> TxIn
mkGenesisTxIn Integer
4)
TxBody era -> (TxBody era -> TxBody era) -> TxBody era
forall a b. a -> (a -> b) -> b
& (Set TxIn -> Identity (Set TxIn))
-> TxBody era -> Identity (TxBody era)
forall era. AlonzoEraTxBody era => Lens' (TxBody era) (Set TxIn)
Lens' (TxBody era) (Set TxIn)
collateralInputsTxBodyL ((Set TxIn -> Identity (Set TxIn))
-> TxBody era -> Identity (TxBody era))
-> Set TxIn -> TxBody era -> TxBody era
forall s t a b. ASetter s t a b -> b -> s -> t
.~ TxIn -> Set TxIn
forall a. a -> Set a
Set.singleton (HasCallStack => Integer -> TxIn
Integer -> TxIn
mkGenesisTxIn Integer
14)
TxBody era -> (TxBody era -> TxBody era) -> TxBody era
forall a b. a -> (a -> b) -> b
& (StrictSeq (TxOut era) -> Identity (StrictSeq (TxOut era)))
-> TxBody era -> Identity (TxBody era)
forall era.
EraTxBody era =>
Lens' (TxBody era) (StrictSeq (TxOut era))
Lens' (TxBody era) (StrictSeq (TxOut era))
outputsTxBodyL ((StrictSeq (TxOut era) -> Identity (StrictSeq (TxOut era)))
-> TxBody era -> Identity (TxBody era))
-> StrictSeq (TxOut era) -> TxBody era -> TxBody era
forall s t a b. ASetter s t a b -> b -> s -> t
.~ TxOut era -> StrictSeq (TxOut era)
forall a. a -> StrictSeq a
SSeq.singleton (Addr -> Value era -> TxOut era
forall era.
(EraTxOut era, HasCallStack) =>
Addr -> Value era -> TxOut era
mkBasicTxOut Addr
someAddr (Value era -> TxOut era)
-> (Coin -> Value era) -> Coin -> TxOut era
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Coin -> Value era
forall t s. Inject t s => t -> s
inject (Coin -> TxOut era) -> Coin -> TxOut era
forall a b. (a -> b) -> a -> b
$ Integer -> Coin
Coin Integer
995)
TxBody era -> (TxBody era -> TxBody era) -> TxBody era
forall a b. a -> (a -> b) -> b
& (StrictSeq (TxCert era) -> Identity (StrictSeq (TxCert era)))
-> TxBody era -> Identity (TxBody era)
forall era.
EraTxBody era =>
Lens' (TxBody era) (StrictSeq (TxCert era))
Lens' (TxBody era) (StrictSeq (TxCert era))
certsTxBodyL ((StrictSeq (TxCert era) -> Identity (StrictSeq (TxCert era)))
-> TxBody era -> Identity (TxBody era))
-> StrictSeq (TxCert era) -> TxBody era -> TxBody era
forall s t a b. ASetter s t a b -> b -> s -> t
.~ TxCert era -> StrictSeq (TxCert era)
forall a. a -> StrictSeq a
SSeq.singleton (StakeCredential -> TxCert era
forall era. ShelleyEraTxCert era => StakeCredential -> TxCert era
UnRegTxCert (StakeCredential -> TxCert era) -> StakeCredential -> TxCert era
forall a b. (a -> b) -> a -> b
$ forall era. (ShelleyEraScript era, EraModel era) => StakeCredential
scriptStakeCredFail @era)
TxBody era -> (TxBody era -> TxBody era) -> TxBody era
forall a b. a -> (a -> b) -> b
& (Coin -> Identity Coin) -> TxBody era -> Identity (TxBody era)
forall era. EraTxBody era => Lens' (TxBody era) Coin
Lens' (TxBody era) Coin
feeTxBodyL ((Coin -> Identity Coin) -> TxBody era -> Identity (TxBody era))
-> Coin -> TxBody era -> TxBody era
forall s t a b. ASetter s t a b -> b -> s -> t
.~ Integer -> Coin
Coin Integer
5
TxBody era -> (TxBody era -> TxBody era) -> TxBody era
forall a b. a -> (a -> b) -> b
& (StrictMaybe ScriptIntegrityHash
-> Identity (StrictMaybe ScriptIntegrityHash))
-> TxBody era -> Identity (TxBody era)
forall era.
AlonzoEraTxBody era =>
Lens' (TxBody era) (StrictMaybe ScriptIntegrityHash)
Lens' (TxBody era) (StrictMaybe ScriptIntegrityHash)
scriptIntegrityHashTxBodyL
((StrictMaybe ScriptIntegrityHash
-> Identity (StrictMaybe ScriptIntegrityHash))
-> TxBody era -> Identity (TxBody era))
-> StrictMaybe ScriptIntegrityHash -> TxBody era -> TxBody era
forall s t a b. ASetter s t a b -> b -> s -> t
.~ forall era.
EraModel era =>
PParams era
-> [Language]
-> Redeemers era
-> TxDats era
-> StrictMaybe ScriptIntegrityHash
newScriptIntegrityHash @era PParams era
forall era. AlonzoEraPParams era => PParams era
defaultPParams [Item [Language]
Language
PlutusV1] Redeemers era
notValidatingRedeemersWithCert TxDats era
forall a. Monoid a => a
mempty
notValidatingRedeemersWithCert :: Redeemers era
notValidatingRedeemersWithCert = PlutusPurpose AsIx era -> Data era -> Redeemers era
forall era.
AlonzoEraScript era =>
PlutusPurpose AsIx era -> Data era -> Redeemers era
mkSingleRedeemer (AsIx Word32 (TxCert era) -> PlutusPurpose AsIx era
forall era (f :: * -> * -> *).
AlonzoEraScript era =>
f Word32 (TxCert era) -> PlutusPurpose f era
CertifyingPurpose (AsIx Word32 (TxCert era) -> PlutusPurpose AsIx era)
-> AsIx Word32 (TxCert era) -> PlutusPurpose AsIx era
forall a b. (a -> b) -> a -> b
$ Word32 -> AsIx Word32 (TxCert era)
forall ix it. ix -> AsIx ix it
AsIx Word32
0) (Data -> Data era
forall era. Era era => Data -> Data era
Data (Integer -> Data
PV1.I Integer
0))
validatingTxWithMint ::
forall era.
( Value era ~ MaryValue
, AlonzoEraTxWits era
, AlonzoEraTxBody era
, EraModel era
, EraPlutusTxInfo PlutusV1 era
) =>
Tx era
validatingTxWithMint :: forall era.
(Value era ~ MaryValue, AlonzoEraTxWits era, AlonzoEraTxBody era,
EraModel era, EraPlutusTxInfo 'PlutusV1 era) =>
Tx era
validatingTxWithMint =
TxBody era -> Tx era
forall era. EraTx era => TxBody era -> Tx era
mkBasicTx TxBody era
forall era.
(Value era ~ MaryValue, AlonzoEraTxBody era, EraModel era,
EraPlutusTxInfo 'PlutusV1 era) =>
TxBody era
validatingBodyWithMint
Tx era -> (Tx era -> Tx era) -> Tx era
forall a b. a -> (a -> b) -> b
& (TxWits era -> Identity (TxWits era))
-> Tx era -> Identity (Tx era)
forall era. EraTx era => Lens' (Tx era) (TxWits era)
Lens' (Tx era) (TxWits era)
witsTxL ((TxWits era -> Identity (TxWits era))
-> Tx era -> Identity (Tx era))
-> ((Set (WitVKey 'Witness) -> Identity (Set (WitVKey 'Witness)))
-> TxWits era -> Identity (TxWits era))
-> (Set (WitVKey 'Witness) -> Identity (Set (WitVKey 'Witness)))
-> Tx era
-> Identity (Tx era)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Set (WitVKey 'Witness) -> Identity (Set (WitVKey 'Witness)))
-> TxWits era -> Identity (TxWits era)
forall era.
EraTxWits era =>
Lens' (TxWits era) (Set (WitVKey 'Witness))
Lens' (TxWits era) (Set (WitVKey 'Witness))
addrTxWitsL ((Set (WitVKey 'Witness) -> Identity (Set (WitVKey 'Witness)))
-> Tx era -> Identity (Tx era))
-> Set (WitVKey 'Witness) -> Tx era -> Tx era
forall s t a b. ASetter s t a b -> b -> s -> t
.~ [SafeHash EraIndependentTxBody
-> KeyPair 'Payment -> WitVKey 'Witness
forall (kr :: KeyRole).
SafeHash EraIndependentTxBody -> KeyPair kr -> WitVKey 'Witness
mkWitnessVKey (TxBody era -> SafeHash EraIndependentTxBody
forall x i. HashAnnotated x i => x -> SafeHash i
hashAnnotated (TxBody era -> SafeHash EraIndependentTxBody)
-> TxBody era -> SafeHash EraIndependentTxBody
forall a b. (a -> b) -> a -> b
$ forall era.
(Value era ~ MaryValue, AlonzoEraTxBody era, EraModel era,
EraPlutusTxInfo 'PlutusV1 era) =>
TxBody era
validatingBodyWithMint @era) KeyPair 'Payment
someKeys]
Tx era -> (Tx era -> Tx era) -> Tx era
forall a b. a -> (a -> b) -> b
& (TxWits era -> Identity (TxWits era))
-> Tx era -> Identity (Tx era)
forall era. EraTx era => Lens' (Tx era) (TxWits era)
Lens' (Tx era) (TxWits era)
witsTxL ((TxWits era -> Identity (TxWits era))
-> Tx era -> Identity (Tx era))
-> ((Map ScriptHash (Script era) -> Identity [Script era])
-> TxWits era -> Identity (TxWits era))
-> (Map ScriptHash (Script era) -> Identity [Script era])
-> Tx era
-> Identity (Tx era)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Map ScriptHash (Script era) -> Identity [Script era])
-> TxWits era -> Identity (TxWits era)
forall era.
EraTxWits era =>
Lens
(TxWits era)
(TxWits era)
(Map ScriptHash (Script era))
[Script era]
Lens
(TxWits era)
(TxWits era)
(Map ScriptHash (Script era))
[Script era]
hashScriptTxWitsL ((Map ScriptHash (Script era) -> Identity [Script era])
-> Tx era -> Identity (Tx era))
-> [Script era] -> Tx era -> Tx era
forall s t a b. ASetter s t a b -> b -> s -> t
.~ [Natural -> Script era
forall era. EraModel era => Natural -> Script era
always Natural
2]
Tx era -> (Tx era -> Tx era) -> Tx era
forall a b. a -> (a -> b) -> b
& (TxWits era -> Identity (TxWits era))
-> Tx era -> Identity (Tx era)
forall era. EraTx era => Lens' (Tx era) (TxWits era)
Lens' (Tx era) (TxWits era)
witsTxL ((TxWits era -> Identity (TxWits era))
-> Tx era -> Identity (Tx era))
-> ((Redeemers era -> Identity (Redeemers era))
-> TxWits era -> Identity (TxWits era))
-> (Redeemers era -> Identity (Redeemers era))
-> Tx era
-> Identity (Tx era)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Redeemers era -> Identity (Redeemers era))
-> TxWits era -> Identity (TxWits era)
forall era.
AlonzoEraTxWits era =>
Lens' (TxWits era) (Redeemers era)
Lens' (TxWits era) (Redeemers era)
rdmrsTxWitsL ((Redeemers era -> Identity (Redeemers era))
-> Tx era -> Identity (Tx era))
-> Redeemers era -> Tx era -> Tx era
forall s t a b. ASetter s t a b -> b -> s -> t
.~ Redeemers era
forall era. AlonzoEraScript era => Redeemers era
validatingRedeemersWithMint
validatingBodyWithMint ::
forall era.
( Value era ~ MaryValue
, AlonzoEraTxBody era
, EraModel era
, EraPlutusTxInfo PlutusV1 era
) =>
TxBody era
validatingBodyWithMint :: forall era.
(Value era ~ MaryValue, AlonzoEraTxBody era, EraModel era,
EraPlutusTxInfo 'PlutusV1 era) =>
TxBody era
validatingBodyWithMint =
TxBody era
forall era. EraTxBody era => TxBody era
mkBasicTxBody
TxBody era -> (TxBody era -> TxBody era) -> TxBody era
forall a b. a -> (a -> b) -> b
& (Set TxIn -> Identity (Set TxIn))
-> TxBody era -> Identity (TxBody era)
forall era. EraTxBody era => Lens' (TxBody era) (Set TxIn)
Lens' (TxBody era) (Set TxIn)
inputsTxBodyL ((Set TxIn -> Identity (Set TxIn))
-> TxBody era -> Identity (TxBody era))
-> Set TxIn -> TxBody era -> TxBody era
forall s t a b. ASetter s t a b -> b -> s -> t
.~ TxIn -> Set TxIn
forall a. a -> Set a
Set.singleton (HasCallStack => Integer -> TxIn
Integer -> TxIn
mkGenesisTxIn Integer
7)
TxBody era -> (TxBody era -> TxBody era) -> TxBody era
forall a b. a -> (a -> b) -> b
& (Set TxIn -> Identity (Set TxIn))
-> TxBody era -> Identity (TxBody era)
forall era. AlonzoEraTxBody era => Lens' (TxBody era) (Set TxIn)
Lens' (TxBody era) (Set TxIn)
collateralInputsTxBodyL ((Set TxIn -> Identity (Set TxIn))
-> TxBody era -> Identity (TxBody era))
-> Set TxIn -> TxBody era -> TxBody era
forall s t a b. ASetter s t a b -> b -> s -> t
.~ TxIn -> Set TxIn
forall a. a -> Set a
Set.singleton (HasCallStack => Integer -> TxIn
Integer -> TxIn
mkGenesisTxIn Integer
17)
TxBody era -> (TxBody era -> TxBody era) -> TxBody era
forall a b. a -> (a -> b) -> b
& (StrictSeq (TxOut era) -> Identity (StrictSeq (TxOut era)))
-> TxBody era -> Identity (TxBody era)
forall era.
EraTxBody era =>
Lens' (TxBody era) (StrictSeq (TxOut era))
Lens' (TxBody era) (StrictSeq (TxOut era))
outputsTxBodyL ((StrictSeq (TxOut era) -> Identity (StrictSeq (TxOut era)))
-> TxBody era -> Identity (TxBody era))
-> StrictSeq (TxOut era) -> TxBody era -> TxBody era
forall s t a b. ASetter s t a b -> b -> s -> t
.~ TxOut era -> StrictSeq (TxOut era)
forall a. a -> StrictSeq a
SSeq.singleton TxOut era
forall era. (Value era ~ MaryValue, EraModel era) => TxOut era
validatingTxWithMintOut
TxBody era -> (TxBody era -> TxBody era) -> TxBody era
forall a b. a -> (a -> b) -> b
& (Coin -> Identity Coin) -> TxBody era -> Identity (TxBody era)
forall era. EraTxBody era => Lens' (TxBody era) Coin
Lens' (TxBody era) Coin
feeTxBodyL ((Coin -> Identity Coin) -> TxBody era -> Identity (TxBody era))
-> Coin -> TxBody era -> TxBody era
forall s t a b. ASetter s t a b -> b -> s -> t
.~ Integer -> Coin
Coin Integer
5
TxBody era -> (TxBody era -> TxBody era) -> TxBody era
forall a b. a -> (a -> b) -> b
& (MultiAsset -> Identity MultiAsset)
-> TxBody era -> Identity (TxBody era)
forall era. MaryEraTxBody era => Lens' (TxBody era) MultiAsset
Lens' (TxBody era) MultiAsset
mintTxBodyL ((MultiAsset -> Identity MultiAsset)
-> TxBody era -> Identity (TxBody era))
-> MultiAsset -> TxBody era -> TxBody era
forall s t a b. ASetter s t a b -> b -> s -> t
.~ forall era. EraModel era => MultiAsset
multiAsset @era
TxBody era -> (TxBody era -> TxBody era) -> TxBody era
forall a b. a -> (a -> b) -> b
& (StrictMaybe ScriptIntegrityHash
-> Identity (StrictMaybe ScriptIntegrityHash))
-> TxBody era -> Identity (TxBody era)
forall era.
AlonzoEraTxBody era =>
Lens' (TxBody era) (StrictMaybe ScriptIntegrityHash)
Lens' (TxBody era) (StrictMaybe ScriptIntegrityHash)
scriptIntegrityHashTxBodyL
((StrictMaybe ScriptIntegrityHash
-> Identity (StrictMaybe ScriptIntegrityHash))
-> TxBody era -> Identity (TxBody era))
-> StrictMaybe ScriptIntegrityHash -> TxBody era -> TxBody era
forall s t a b. ASetter s t a b -> b -> s -> t
.~ forall era.
EraModel era =>
PParams era
-> [Language]
-> Redeemers era
-> TxDats era
-> StrictMaybe ScriptIntegrityHash
newScriptIntegrityHash @era PParams era
forall era. AlonzoEraPParams era => PParams era
defaultPParams [Item [Language]
Language
PlutusV1] Redeemers era
forall era. AlonzoEraScript era => Redeemers era
validatingRedeemersWithMint TxDats era
forall a. Monoid a => a
mempty
validatingRedeemersWithMint :: AlonzoEraScript era => Redeemers era
validatingRedeemersWithMint :: forall era. AlonzoEraScript era => Redeemers era
validatingRedeemersWithMint = PlutusPurpose AsIx era -> Data era -> Redeemers era
forall era.
AlonzoEraScript era =>
PlutusPurpose AsIx era -> Data era -> Redeemers era
mkSingleRedeemer (AsIx Word32 PolicyID -> PlutusPurpose AsIx era
forall era (f :: * -> * -> *).
AlonzoEraScript era =>
f Word32 PolicyID -> PlutusPurpose f era
MintingPurpose (AsIx Word32 PolicyID -> PlutusPurpose AsIx era)
-> AsIx Word32 PolicyID -> PlutusPurpose AsIx era
forall a b. (a -> b) -> a -> b
$ Word32 -> AsIx Word32 PolicyID
forall ix it. ix -> AsIx ix it
AsIx Word32
0) (Data -> Data era
forall era. Era era => Data -> Data era
Data (Integer -> Data
PV1.I Integer
42))
multiAsset :: forall era. EraModel era => MultiAsset
multiAsset :: forall era. EraModel era => MultiAsset
multiAsset = forall era. EraScript era => Integer -> Script era -> MultiAsset
forge @era Integer
1 (Script era -> MultiAsset) -> Script era -> MultiAsset
forall a b. (a -> b) -> a -> b
$ Natural -> Script era
forall era. EraModel era => Natural -> Script era
always Natural
2
validatingTxWithMintOut ::
forall era.
( Value era ~ MaryValue
, EraModel era
) =>
TxOut era
validatingTxWithMintOut :: forall era. (Value era ~ MaryValue, EraModel era) => TxOut era
validatingTxWithMintOut =
Addr -> Value era -> TxOut era
forall era.
(EraTxOut era, HasCallStack) =>
Addr -> Value era -> TxOut era
mkBasicTxOut Addr
someAddr (MaryValue -> TxOut era)
-> (MultiAsset -> MaryValue) -> MultiAsset -> TxOut era
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Coin -> MultiAsset -> MaryValue
MaryValue (Integer -> Coin
Coin Integer
995) (MultiAsset -> TxOut era) -> MultiAsset -> TxOut era
forall a b. (a -> b) -> a -> b
$ forall era. EraModel era => MultiAsset
multiAsset @era
notValidatingTxWithMint ::
forall era.
( Value era ~ MaryValue
, AlonzoEraTxWits era
, AlonzoEraTxBody era
, EraModel era
) =>
Tx era
notValidatingTxWithMint :: forall era.
(Value era ~ MaryValue, AlonzoEraTxWits era, AlonzoEraTxBody era,
EraModel era) =>
Tx era
notValidatingTxWithMint =
TxBody era -> Tx era
forall era. EraTx era => TxBody era -> Tx era
mkBasicTx TxBody era
notValidatingBodyWithMint
Tx era -> (Tx era -> Tx era) -> Tx era
forall a b. a -> (a -> b) -> b
& (TxWits era -> Identity (TxWits era))
-> Tx era -> Identity (Tx era)
forall era. EraTx era => Lens' (Tx era) (TxWits era)
Lens' (Tx era) (TxWits era)
witsTxL ((TxWits era -> Identity (TxWits era))
-> Tx era -> Identity (Tx era))
-> ((Set (WitVKey 'Witness) -> Identity (Set (WitVKey 'Witness)))
-> TxWits era -> Identity (TxWits era))
-> (Set (WitVKey 'Witness) -> Identity (Set (WitVKey 'Witness)))
-> Tx era
-> Identity (Tx era)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Set (WitVKey 'Witness) -> Identity (Set (WitVKey 'Witness)))
-> TxWits era -> Identity (TxWits era)
forall era.
EraTxWits era =>
Lens' (TxWits era) (Set (WitVKey 'Witness))
Lens' (TxWits era) (Set (WitVKey 'Witness))
addrTxWitsL ((Set (WitVKey 'Witness) -> Identity (Set (WitVKey 'Witness)))
-> Tx era -> Identity (Tx era))
-> Set (WitVKey 'Witness) -> Tx era -> Tx era
forall s t a b. ASetter s t a b -> b -> s -> t
.~ [SafeHash EraIndependentTxBody
-> KeyPair 'Payment -> WitVKey 'Witness
forall (kr :: KeyRole).
SafeHash EraIndependentTxBody -> KeyPair kr -> WitVKey 'Witness
mkWitnessVKey (TxBody era -> SafeHash EraIndependentTxBody
forall x i. HashAnnotated x i => x -> SafeHash i
hashAnnotated TxBody era
notValidatingBodyWithMint) KeyPair 'Payment
someKeys]
Tx era -> (Tx era -> Tx era) -> Tx era
forall a b. a -> (a -> b) -> b
& (TxWits era -> Identity (TxWits era))
-> Tx era -> Identity (Tx era)
forall era. EraTx era => Lens' (Tx era) (TxWits era)
Lens' (Tx era) (TxWits era)
witsTxL ((TxWits era -> Identity (TxWits era))
-> Tx era -> Identity (Tx era))
-> ((Map ScriptHash (Script era) -> Identity [Script era])
-> TxWits era -> Identity (TxWits era))
-> (Map ScriptHash (Script era) -> Identity [Script era])
-> Tx era
-> Identity (Tx era)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Map ScriptHash (Script era) -> Identity [Script era])
-> TxWits era -> Identity (TxWits era)
forall era.
EraTxWits era =>
Lens
(TxWits era)
(TxWits era)
(Map ScriptHash (Script era))
[Script era]
Lens
(TxWits era)
(TxWits era)
(Map ScriptHash (Script era))
[Script era]
hashScriptTxWitsL ((Map ScriptHash (Script era) -> Identity [Script era])
-> Tx era -> Identity (Tx era))
-> [Script era] -> Tx era -> Tx era
forall s t a b. ASetter s t a b -> b -> s -> t
.~ [Natural -> Script era
forall era. EraModel era => Natural -> Script era
never Natural
1]
Tx era -> (Tx era -> Tx era) -> Tx era
forall a b. a -> (a -> b) -> b
& (TxWits era -> Identity (TxWits era))
-> Tx era -> Identity (Tx era)
forall era. EraTx era => Lens' (Tx era) (TxWits era)
Lens' (Tx era) (TxWits era)
witsTxL ((TxWits era -> Identity (TxWits era))
-> Tx era -> Identity (Tx era))
-> ((Redeemers era -> Identity (Redeemers era))
-> TxWits era -> Identity (TxWits era))
-> (Redeemers era -> Identity (Redeemers era))
-> Tx era
-> Identity (Tx era)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Redeemers era -> Identity (Redeemers era))
-> TxWits era -> Identity (TxWits era)
forall era.
AlonzoEraTxWits era =>
Lens' (TxWits era) (Redeemers era)
Lens' (TxWits era) (Redeemers era)
rdmrsTxWitsL ((Redeemers era -> Identity (Redeemers era))
-> Tx era -> Identity (Tx era))
-> Redeemers era -> Tx era -> Tx era
forall s t a b. ASetter s t a b -> b -> s -> t
.~ Redeemers era
notValidatingRedeemersWithMint
where
notValidatingBodyWithMint :: TxBody era
notValidatingBodyWithMint =
TxBody era
forall era. EraTxBody era => TxBody era
mkBasicTxBody
TxBody era -> (TxBody era -> TxBody era) -> TxBody era
forall a b. a -> (a -> b) -> b
& (Set TxIn -> Identity (Set TxIn))
-> TxBody era -> Identity (TxBody era)
forall era. EraTxBody era => Lens' (TxBody era) (Set TxIn)
Lens' (TxBody era) (Set TxIn)
inputsTxBodyL ((Set TxIn -> Identity (Set TxIn))
-> TxBody era -> Identity (TxBody era))
-> Set TxIn -> TxBody era -> TxBody era
forall s t a b. ASetter s t a b -> b -> s -> t
.~ TxIn -> Set TxIn
forall a. a -> Set a
Set.singleton (HasCallStack => Integer -> TxIn
Integer -> TxIn
mkGenesisTxIn Integer
8)
TxBody era -> (TxBody era -> TxBody era) -> TxBody era
forall a b. a -> (a -> b) -> b
& (Set TxIn -> Identity (Set TxIn))
-> TxBody era -> Identity (TxBody era)
forall era. AlonzoEraTxBody era => Lens' (TxBody era) (Set TxIn)
Lens' (TxBody era) (Set TxIn)
collateralInputsTxBodyL ((Set TxIn -> Identity (Set TxIn))
-> TxBody era -> Identity (TxBody era))
-> Set TxIn -> TxBody era -> TxBody era
forall s t a b. ASetter s t a b -> b -> s -> t
.~ TxIn -> Set TxIn
forall a. a -> Set a
Set.singleton (HasCallStack => Integer -> TxIn
Integer -> TxIn
mkGenesisTxIn Integer
18)
TxBody era -> (TxBody era -> TxBody era) -> TxBody era
forall a b. a -> (a -> b) -> b
& (StrictSeq (TxOut era) -> Identity (StrictSeq (TxOut era)))
-> TxBody era -> Identity (TxBody era)
forall era.
EraTxBody era =>
Lens' (TxBody era) (StrictSeq (TxOut era))
Lens' (TxBody era) (StrictSeq (TxOut era))
outputsTxBodyL
((StrictSeq (TxOut era) -> Identity (StrictSeq (TxOut era)))
-> TxBody era -> Identity (TxBody era))
-> StrictSeq (TxOut era) -> TxBody era -> TxBody era
forall s t a b. ASetter s t a b -> b -> s -> t
.~ [Addr -> Value era -> TxOut era
forall era.
(EraTxOut era, HasCallStack) =>
Addr -> Value era -> TxOut era
mkBasicTxOut Addr
someAddr (Value era -> TxOut era) -> Value era -> TxOut era
forall a b. (a -> b) -> a -> b
$ Coin -> MultiAsset -> MaryValue
MaryValue (Integer -> Coin
Coin Integer
995) MultiAsset
ma]
TxBody era -> (TxBody era -> TxBody era) -> TxBody era
forall a b. a -> (a -> b) -> b
& (Coin -> Identity Coin) -> TxBody era -> Identity (TxBody era)
forall era. EraTxBody era => Lens' (TxBody era) Coin
Lens' (TxBody era) Coin
feeTxBodyL ((Coin -> Identity Coin) -> TxBody era -> Identity (TxBody era))
-> Coin -> TxBody era -> TxBody era
forall s t a b. ASetter s t a b -> b -> s -> t
.~ Integer -> Coin
Coin Integer
5
TxBody era -> (TxBody era -> TxBody era) -> TxBody era
forall a b. a -> (a -> b) -> b
& (MultiAsset -> Identity MultiAsset)
-> TxBody era -> Identity (TxBody era)
forall era. MaryEraTxBody era => Lens' (TxBody era) MultiAsset
Lens' (TxBody era) MultiAsset
mintTxBodyL ((MultiAsset -> Identity MultiAsset)
-> TxBody era -> Identity (TxBody era))
-> MultiAsset -> TxBody era -> TxBody era
forall s t a b. ASetter s t a b -> b -> s -> t
.~ MultiAsset
ma
TxBody era -> (TxBody era -> TxBody era) -> TxBody era
forall a b. a -> (a -> b) -> b
& (StrictMaybe ScriptIntegrityHash
-> Identity (StrictMaybe ScriptIntegrityHash))
-> TxBody era -> Identity (TxBody era)
forall era.
AlonzoEraTxBody era =>
Lens' (TxBody era) (StrictMaybe ScriptIntegrityHash)
Lens' (TxBody era) (StrictMaybe ScriptIntegrityHash)
scriptIntegrityHashTxBodyL
((StrictMaybe ScriptIntegrityHash
-> Identity (StrictMaybe ScriptIntegrityHash))
-> TxBody era -> Identity (TxBody era))
-> StrictMaybe ScriptIntegrityHash -> TxBody era -> TxBody era
forall s t a b. ASetter s t a b -> b -> s -> t
.~ 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
forall era. AlonzoEraPParams era => PParams era
defaultPParams [Item [Language]
Language
PlutusV1] Redeemers era
notValidatingRedeemersWithMint TxDats era
forall a. Monoid a => a
mempty
notValidatingRedeemersWithMint :: Redeemers era
notValidatingRedeemersWithMint = forall era.
AlonzoEraScript era =>
PlutusPurpose AsIx era -> Data era -> Redeemers era
mkSingleRedeemer @era (AsIx Word32 PolicyID -> PlutusPurpose AsIx era
forall era (f :: * -> * -> *).
AlonzoEraScript era =>
f Word32 PolicyID -> PlutusPurpose f era
MintingPurpose (AsIx Word32 PolicyID -> PlutusPurpose AsIx era)
-> AsIx Word32 PolicyID -> PlutusPurpose AsIx era
forall a b. (a -> b) -> a -> b
$ Word32 -> AsIx Word32 PolicyID
forall ix it. ix -> AsIx ix it
AsIx Word32
0) (Data -> Data era
forall era. Era era => Data -> Data era
Data (Integer -> Data
PV1.I Integer
0))
ma :: MultiAsset
ma = forall era. EraScript era => Integer -> Script era -> MultiAsset
forge @era Integer
1 (Natural -> Script era
forall era. EraModel era => Natural -> Script era
never Natural
1)
poolMDHTooBigTx ::
forall era.
(ShelleyEraScript era, EraModel era) =>
Tx era
poolMDHTooBigTx :: forall era. (ShelleyEraScript era, EraModel era) => Tx era
poolMDHTooBigTx =
TxBody era -> Tx era
forall era. EraTx era => TxBody era -> Tx era
mkBasicTx TxBody era
poolMDHTooBigTxBody
Tx era -> (Tx era -> Tx era) -> Tx era
forall a b. a -> (a -> b) -> b
& (TxWits era -> Identity (TxWits era))
-> Tx era -> Identity (Tx era)
forall era. EraTx era => Lens' (Tx era) (TxWits era)
Lens' (Tx era) (TxWits era)
witsTxL ((TxWits era -> Identity (TxWits era))
-> Tx era -> Identity (Tx era))
-> ((Set (WitVKey 'Witness) -> Identity (Set (WitVKey 'Witness)))
-> TxWits era -> Identity (TxWits era))
-> (Set (WitVKey 'Witness) -> Identity (Set (WitVKey 'Witness)))
-> Tx era
-> Identity (Tx era)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Set (WitVKey 'Witness) -> Identity (Set (WitVKey 'Witness)))
-> TxWits era -> Identity (TxWits era)
forall era.
EraTxWits era =>
Lens' (TxWits era) (Set (WitVKey 'Witness))
Lens' (TxWits era) (Set (WitVKey 'Witness))
addrTxWitsL ((Set (WitVKey 'Witness) -> Identity (Set (WitVKey 'Witness)))
-> Tx era -> Identity (Tx era))
-> Set (WitVKey 'Witness) -> Tx era -> Tx era
forall s t a b. ASetter s t a b -> b -> s -> t
.~ [SafeHash EraIndependentTxBody
-> KeyPair 'Payment -> WitVKey 'Witness
forall (kr :: KeyRole).
SafeHash EraIndependentTxBody -> KeyPair kr -> WitVKey 'Witness
mkWitnessVKey (TxBody era -> SafeHash EraIndependentTxBody
forall x i. HashAnnotated x i => x -> SafeHash i
hashAnnotated TxBody era
poolMDHTooBigTxBody) KeyPair 'Payment
someKeys]
where
poolMDHTooBigTxBody :: TxBody era
poolMDHTooBigTxBody =
TxBody era
forall era. EraTxBody era => TxBody era
mkBasicTxBody
TxBody era -> (TxBody era -> TxBody era) -> TxBody era
forall a b. a -> (a -> b) -> b
& (Set TxIn -> Identity (Set TxIn))
-> TxBody era -> Identity (TxBody era)
forall era. EraTxBody era => Lens' (TxBody era) (Set TxIn)
Lens' (TxBody era) (Set TxIn)
inputsTxBodyL ((Set TxIn -> Identity (Set TxIn))
-> TxBody era -> Identity (TxBody era))
-> Set TxIn -> TxBody era -> TxBody era
forall s t a b. ASetter s t a b -> b -> s -> t
.~ [HasCallStack => Integer -> TxIn
Integer -> TxIn
mkGenesisTxIn Integer
3]
TxBody era -> (TxBody era -> TxBody era) -> TxBody era
forall a b. a -> (a -> b) -> b
& (StrictSeq (TxOut era) -> Identity (StrictSeq (TxOut era)))
-> TxBody era -> Identity (TxBody era)
forall era.
EraTxBody era =>
Lens' (TxBody era) (StrictSeq (TxOut era))
Lens' (TxBody era) (StrictSeq (TxOut era))
outputsTxBodyL ((StrictSeq (TxOut era) -> Identity (StrictSeq (TxOut era)))
-> TxBody era -> Identity (TxBody era))
-> StrictSeq (TxOut era) -> TxBody era -> TxBody era
forall s t a b. ASetter s t a b -> b -> s -> t
.~ [Addr -> Value era -> TxOut era
forall era.
(EraTxOut era, HasCallStack) =>
Addr -> Value era -> TxOut era
mkBasicTxOut Addr
someAddr (Value era -> Item (StrictSeq (TxOut era)))
-> (Coin -> Value era) -> Coin -> Item (StrictSeq (TxOut era))
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Coin -> Value era
forall t s. Inject t s => t -> s
inject (Coin -> Item (StrictSeq (TxOut era)))
-> Coin -> Item (StrictSeq (TxOut era))
forall a b. (a -> b) -> a -> b
$ Integer -> Coin
Coin Integer
995 Coin -> Coin -> Coin
forall t. Val t => t -> t -> t
<-> Coin
poolDeposit]
TxBody era -> (TxBody era -> TxBody era) -> TxBody era
forall a b. a -> (a -> b) -> b
& (StrictSeq (TxCert era) -> Identity (StrictSeq (TxCert era)))
-> TxBody era -> Identity (TxBody era)
forall era.
EraTxBody era =>
Lens' (TxBody era) (StrictSeq (TxCert era))
Lens' (TxBody era) (StrictSeq (TxCert era))
certsTxBodyL ((StrictSeq (TxCert era) -> Identity (StrictSeq (TxCert era)))
-> TxBody era -> Identity (TxBody era))
-> StrictSeq (TxCert era) -> TxBody era -> TxBody era
forall s t a b. ASetter s t a b -> b -> s -> t
.~ [PoolParams -> TxCert era
forall era. EraTxCert era => PoolParams -> TxCert era
RegPoolTxCert PoolParams
poolParams]
TxBody era -> (TxBody era -> TxBody era) -> TxBody era
forall a b. a -> (a -> b) -> b
& (Coin -> Identity Coin) -> TxBody era -> Identity (TxBody era)
forall era. EraTxBody era => Lens' (TxBody era) Coin
Lens' (TxBody era) Coin
feeTxBodyL ((Coin -> Identity Coin) -> TxBody era -> Identity (TxBody era))
-> Coin -> TxBody era -> TxBody era
forall s t a b. ASetter s t a b -> b -> s -> t
.~ Integer -> Coin
Coin Integer
5
where
tooManyBytes :: ByteString
tooManyBytes = Int -> Word8 -> ByteString
BS.replicate (Int
standardHashSize Int -> Int -> Int
forall a. Num a => a -> a -> a
+ Int
1) Word8
0
poolParams :: PoolParams
poolParams =
PoolParams
{ ppId :: KeyHash 'StakePool
ppId = KeyHash 'Payment -> KeyHash 'StakePool
forall (r :: KeyRole) (r' :: KeyRole). KeyHash r -> KeyHash r'
forall (a :: KeyRole -> *) (r :: KeyRole) (r' :: KeyRole).
HasKeyRole a =>
a r -> a r'
coerceKeyRole (KeyHash 'Payment -> KeyHash 'StakePool)
-> (VKey 'Payment -> KeyHash 'Payment)
-> VKey 'Payment
-> KeyHash 'StakePool
forall b c a. (b -> c) -> (a -> b) -> a -> c
. VKey 'Payment -> KeyHash 'Payment
forall (kd :: KeyRole). VKey kd -> KeyHash kd
hashKey (VKey 'Payment -> KeyHash 'StakePool)
-> VKey 'Payment -> KeyHash 'StakePool
forall a b. (a -> b) -> a -> b
$ KeyPair 'Payment -> VKey 'Payment
forall (kd :: KeyRole). KeyPair kd -> VKey kd
vKey KeyPair 'Payment
someKeys
, ppVrf :: VRFVerKeyHash 'StakePoolVRF
ppVrf =
forall c (r :: KeyRoleVRF).
Crypto c =>
VerKeyVRF (VRF c) -> VRFVerKeyHash r
hashVerKeyVRF @MockCrypto (VerKeyVRF FakeVRF -> VRFVerKeyHash 'StakePoolVRF)
-> (RawSeed -> VerKeyVRF FakeVRF)
-> RawSeed
-> VRFVerKeyHash 'StakePoolVRF
forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall c. VRFKeyPair c -> VerKeyVRF (VRF c)
vrfVerKey @MockCrypto (VRFKeyPair MockCrypto -> VerKeyVRF FakeVRF)
-> (RawSeed -> VRFKeyPair MockCrypto)
-> RawSeed
-> VerKeyVRF FakeVRF
forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall c. Crypto c => RawSeed -> VRFKeyPair c
mkVRFKeyPair @MockCrypto (RawSeed -> VRFVerKeyHash 'StakePoolVRF)
-> RawSeed -> VRFVerKeyHash 'StakePoolVRF
forall a b. (a -> b) -> a -> b
$
Word64 -> Word64 -> Word64 -> Word64 -> Word64 -> RawSeed
RawSeed Word64
0 Word64
0 Word64
0 Word64
0 Word64
0
, ppPledge :: Coin
ppPledge = Integer -> Coin
Coin Integer
0
, ppCost :: Coin
ppCost = Integer -> Coin
Coin Integer
0
, ppMargin :: UnitInterval
ppMargin = UnitInterval
forall a. Bounded a => a
minBound
, ppRewardAccount :: RewardAccount
ppRewardAccount = Network -> StakeCredential -> RewardAccount
RewardAccount Network
Testnet (StakeCredential -> RewardAccount)
-> StakeCredential -> RewardAccount
forall a b. (a -> b) -> a -> b
$ forall era. (ShelleyEraScript era, EraModel era) => StakeCredential
scriptStakeCredSucceed @era
, ppOwners :: Set (KeyHash 'Staking)
ppOwners = Set (KeyHash 'Staking)
forall a. Monoid a => a
mempty
, ppRelays :: StrictSeq StakePoolRelay
ppRelays = StrictSeq StakePoolRelay
forall a. Monoid a => a
mempty
, ppMetadata :: StrictMaybe PoolMetadata
ppMetadata = PoolMetadata -> StrictMaybe PoolMetadata
forall a. a -> StrictMaybe a
SJust (PoolMetadata -> StrictMaybe PoolMetadata)
-> PoolMetadata -> StrictMaybe PoolMetadata
forall a b. (a -> b) -> a -> b
$ Url -> ByteString -> PoolMetadata
PoolMetadata (Maybe Url -> Url
forall a. HasCallStack => Maybe a -> a
fromJust (Maybe Url -> Url) -> Maybe Url -> Url
forall a b. (a -> b) -> a -> b
$ Int -> Text -> Maybe Url
forall (m :: * -> *). MonadFail m => Int -> Text -> m Url
textToUrl Int
64 Text
"") ByteString
tooManyBytes
}
testBBodyState ::
forall era.
( Value era ~ MaryValue
, State (EraRule "LEDGERS" era) ~ LedgerState era
, ShelleyEraTxCert era
, AlonzoEraTxBody era
, EraModel era
, EraPlutusTxInfo PlutusV1 era
) =>
ShelleyBbodyState era
testBBodyState :: forall era.
(Value era ~ MaryValue,
State (EraRule "LEDGERS" era) ~ LedgerState era,
ShelleyEraTxCert era, AlonzoEraTxBody era, EraModel era,
EraPlutusTxInfo 'PlutusV1 era) =>
ShelleyBbodyState era
testBBodyState =
let utxo :: UTxO era
utxo =
Map TxIn (TxOut era) -> UTxO era
forall era. Map TxIn (TxOut era) -> UTxO era
UTxO (Map TxIn (TxOut era) -> UTxO era)
-> Map TxIn (TxOut era) -> UTxO era
forall a b. (a -> b) -> a -> b
$
[(TxIn, TxOut era)] -> Map TxIn (TxOut era)
forall k a. Ord k => [(k, a)] -> Map k a
Map.fromList
[ (TxId -> TxIx -> TxIn
TxIn (forall era. EraTxBody era => TxBody era -> TxId
txIdTxBody @era TxBody era
forall era.
(AlonzoEraTxBody era, AlonzoEraScript era, EraModel era) =>
TxBody era
validatingBody) TxIx
forall a. Bounded a => a
minBound, TxOut era
forall era. EraTxOut era => TxOut era
validatingTxOut)
, (TxId -> TxIx -> TxIn
TxIn (forall era. EraTxBody era => TxBody era -> TxId
txIdTxBody @era TxBody era
forall era.
(ShelleyEraTxCert era, AlonzoEraTxBody era, AlonzoEraScript era,
EraModel era) =>
TxBody era
validatingBodyWithCert) TxIx
forall a. Bounded a => a
minBound, TxOut era
forall era. EraTxOut era => TxOut era
validatingTxWithCertOut)
, (TxId -> TxIx -> TxIn
TxIn (forall era. EraTxBody era => TxBody era -> TxId
txIdTxBody @era TxBody era
forall era.
(AlonzoEraTxBody era, AlonzoEraScript era, EraModel era) =>
TxBody era
validatingBodyWithWithdrawal) TxIx
forall a. Bounded a => a
minBound, TxOut era
forall era. EraTxOut era => TxOut era
validatingTxWithWithdrawalOut)
, (TxId -> TxIx -> TxIn
TxIn (forall era. EraTxBody era => TxBody era -> TxId
txIdTxBody @era TxBody era
forall era.
(Value era ~ MaryValue, AlonzoEraTxBody era, EraModel era,
EraPlutusTxInfo 'PlutusV1 era) =>
TxBody era
validatingBodyWithMint) TxIx
forall a. Bounded a => a
minBound, TxOut era
forall era. (Value era ~ MaryValue, EraModel era) => TxOut era
validatingTxWithMintOut)
, (HasCallStack => Integer -> TxIn
Integer -> TxIn
mkGenesisTxIn Integer
11, Addr -> Value era -> TxOut era
forall era.
(EraTxOut era, HasCallStack) =>
Addr -> Value era -> TxOut era
mkBasicTxOut Addr
someAddr (Value era -> TxOut era) -> Value era -> TxOut era
forall a b. (a -> b) -> a -> b
$ Coin -> Value era
forall t s. Inject t s => t -> s
inject (Coin -> Value era) -> Coin -> Value era
forall a b. (a -> b) -> a -> b
$ Integer -> Coin
Coin Integer
5)
, (HasCallStack => Integer -> TxIn
Integer -> TxIn
mkGenesisTxIn Integer
2, TxOut era
alwaysFailsOutput)
, (HasCallStack => Integer -> TxIn
Integer -> TxIn
mkGenesisTxIn Integer
13, Addr -> Value era -> TxOut era
forall era.
(EraTxOut era, HasCallStack) =>
Addr -> Value era -> TxOut era
mkBasicTxOut Addr
someAddr (Value era -> TxOut era)
-> (Coin -> Value era) -> Coin -> TxOut era
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Coin -> Value era
forall t s. Inject t s => t -> s
inject (Coin -> TxOut era) -> Coin -> TxOut era
forall a b. (a -> b) -> a -> b
$ Integer -> Coin
Coin Integer
5)
, (HasCallStack => Integer -> TxIn
Integer -> TxIn
mkGenesisTxIn Integer
4, Addr -> Value era -> TxOut era
forall era.
(EraTxOut era, HasCallStack) =>
Addr -> Value era -> TxOut era
mkBasicTxOut Addr
someAddr (Value era -> TxOut era)
-> (Coin -> Value era) -> Coin -> TxOut era
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Coin -> Value era
forall t s. Inject t s => t -> s
inject (Coin -> TxOut era) -> Coin -> TxOut era
forall a b. (a -> b) -> a -> b
$ Integer -> Coin
Coin Integer
1000)
, (HasCallStack => Integer -> TxIn
Integer -> TxIn
mkGenesisTxIn Integer
15, Addr -> Value era -> TxOut era
forall era.
(EraTxOut era, HasCallStack) =>
Addr -> Value era -> TxOut era
mkBasicTxOut Addr
someAddr (Value era -> TxOut era)
-> (Coin -> Value era) -> Coin -> TxOut era
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Coin -> Value era
forall t s. Inject t s => t -> s
inject (Coin -> TxOut era) -> Coin -> TxOut era
forall a b. (a -> b) -> a -> b
$ Integer -> Coin
Coin Integer
5)
, (HasCallStack => Integer -> TxIn
Integer -> TxIn
mkGenesisTxIn Integer
6, Addr -> Value era -> TxOut era
forall era.
(EraTxOut era, HasCallStack) =>
Addr -> Value era -> TxOut era
mkBasicTxOut Addr
someAddr (Value era -> TxOut era)
-> (Coin -> Value era) -> Coin -> TxOut era
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Coin -> Value era
forall t s. Inject t s => t -> s
inject (Coin -> TxOut era) -> Coin -> TxOut era
forall a b. (a -> b) -> a -> b
$ Integer -> Coin
Coin Integer
1000)
, (HasCallStack => Integer -> TxIn
Integer -> TxIn
mkGenesisTxIn Integer
17, Addr -> Value era -> TxOut era
forall era.
(EraTxOut era, HasCallStack) =>
Addr -> Value era -> TxOut era
mkBasicTxOut Addr
someAddr (Value era -> TxOut era)
-> (Coin -> Value era) -> Coin -> TxOut era
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Coin -> Value era
forall t s. Inject t s => t -> s
inject (Coin -> TxOut era) -> Coin -> TxOut era
forall a b. (a -> b) -> a -> b
$ Integer -> Coin
Coin Integer
5)
, (HasCallStack => Integer -> TxIn
Integer -> TxIn
mkGenesisTxIn Integer
8, Addr -> Value era -> TxOut era
forall era.
(EraTxOut era, HasCallStack) =>
Addr -> Value era -> TxOut era
mkBasicTxOut Addr
someAddr (Value era -> TxOut era)
-> (Coin -> Value era) -> Coin -> TxOut era
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Coin -> Value era
forall t s. Inject t s => t -> s
inject (Coin -> TxOut era) -> Coin -> TxOut era
forall a b. (a -> b) -> a -> b
$ Integer -> Coin
Coin Integer
1000)
, (HasCallStack => Integer -> TxIn
Integer -> TxIn
mkGenesisTxIn Integer
100, TxOut era
timelockOut)
, (HasCallStack => Integer -> TxIn
Integer -> TxIn
mkGenesisTxIn Integer
101, TxOut era
unspendableOut)
, (HasCallStack => Integer -> TxIn
Integer -> TxIn
mkGenesisTxIn Integer
102, TxOut era
alwaysSucceedsOutputV1)
, (HasCallStack => Integer -> TxIn
Integer -> TxIn
mkGenesisTxIn Integer
103, TxOut era
nonScriptOutWithDatum)
]
alwaysFailsOutput :: TxOut era
alwaysFailsOutput =
Addr -> Value era -> TxOut era
forall era.
(EraTxOut era, HasCallStack) =>
Addr -> Value era -> TxOut era
mkBasicTxOut
(Script era -> Addr
forall era. EraScript era => Script era -> Addr
someScriptAddr (Script era -> Addr) -> Script era -> Addr
forall a b. (a -> b) -> a -> b
$ forall era. EraModel era => Natural -> Script era
never @era Natural
0)
(Coin -> Value era
forall t s. Inject t s => t -> s
inject (Coin -> Value era) -> Coin -> Value era
forall a b. (a -> b) -> a -> b
$ Integer -> Coin
Coin Integer
3000)
TxOut era -> (TxOut era -> TxOut era) -> TxOut era
forall a b. a -> (a -> b) -> b
& (StrictMaybe DataHash -> Identity (StrictMaybe DataHash))
-> TxOut era -> Identity (TxOut era)
forall era.
AlonzoEraTxOut era =>
Lens' (TxOut era) (StrictMaybe DataHash)
Lens' (TxOut era) (StrictMaybe DataHash)
dataHashTxOutL ((StrictMaybe DataHash -> Identity (StrictMaybe DataHash))
-> TxOut era -> Identity (TxOut era))
-> StrictMaybe DataHash -> TxOut era -> TxOut era
forall s t a b. ASetter s t a b -> b -> s -> t
.~ DataHash -> StrictMaybe DataHash
forall a. a -> StrictMaybe a
SJust (Data era -> DataHash
forall era. Data era -> DataHash
hashData (Data era -> DataHash) -> Data era -> DataHash
forall a b. (a -> b) -> a -> b
$ forall era. Era era => Data era
anotherDatum @era)
timelockOut :: TxOut era
timelockOut = Addr -> Value era -> TxOut era
forall era.
(EraTxOut era, HasCallStack) =>
Addr -> Value era -> TxOut era
mkBasicTxOut Addr
timelockAddr (Value era -> TxOut era)
-> (Coin -> Value era) -> Coin -> TxOut era
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Coin -> Value era
forall t s. Inject t s => t -> s
inject (Coin -> TxOut era) -> Coin -> TxOut era
forall a b. (a -> b) -> a -> b
$ Integer -> Coin
Coin Integer
1
timelockAddr :: Addr
timelockAddr = ScriptHash -> KeyPair 'Staking -> Addr
forall p s.
(MakeCredential p 'Payment, MakeStakeReference s) =>
p -> s -> Addr
mkAddr ScriptHash
timelockHash (KeyPair 'Staking -> Addr) -> KeyPair 'Staking -> Addr
forall a b. (a -> b) -> a -> b
$ forall (kd :: KeyRole). RawSeed -> KeyPair kd
mkKeyPair' @'Staking (Word64 -> Word64 -> Word64 -> Word64 -> Word64 -> RawSeed
RawSeed Word64
0 Word64
0 Word64
0 Word64
0 Word64
2)
where
timelockHash :: ScriptHash
timelockHash =
Script era -> ScriptHash
forall era. EraScript era => Script era -> ScriptHash
hashScript (Script era -> ScriptHash)
-> (NativeScript era -> Script era)
-> NativeScript era
-> ScriptHash
forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall era. EraScript era => NativeScript era -> Script era
fromNativeScript @era (NativeScript era -> ScriptHash) -> NativeScript era -> ScriptHash
forall a b. (a -> b) -> a -> b
$
StrictSeq (NativeScript era) -> NativeScript era
forall era.
ShelleyEraScript era =>
StrictSeq (NativeScript era) -> NativeScript era
RequireAllOf [KeyHash 'Witness -> NativeScript era
forall era.
ShelleyEraScript era =>
KeyHash 'Witness -> NativeScript era
RequireSignature (KeyHash 'Witness -> NativeScript era)
-> KeyHash 'Witness -> NativeScript era
forall a b. (a -> b) -> a -> b
$ Int -> KeyHash 'Witness
forall (kr :: KeyRole). Int -> KeyHash kr
theKeyHash Int
1, SlotNo -> NativeScript era
forall era. AllegraEraScript era => SlotNo -> NativeScript era
RequireTimeStart SlotNo
100]
unspendableOut :: TxOut era
unspendableOut =
Addr -> Value era -> TxOut era
forall era.
(EraTxOut era, HasCallStack) =>
Addr -> Value era -> TxOut era
mkBasicTxOut
(Script era -> Addr
forall era. EraScript era => Script era -> Addr
someScriptAddr (Script era -> Addr) -> Script era -> Addr
forall a b. (a -> b) -> a -> b
$ forall era. EraModel era => Natural -> Script era
always @era Natural
3)
(Coin -> Value era
forall t s. Inject t s => t -> s
inject (Coin -> Value era) -> Coin -> Value era
forall a b. (a -> b) -> a -> b
$ Integer -> Coin
Coin Integer
5000)
alwaysSucceedsOutputV1 :: TxOut era
alwaysSucceedsOutputV1 =
Addr -> Value era -> TxOut era
forall era.
(EraTxOut era, HasCallStack) =>
Addr -> Value era -> TxOut era
mkBasicTxOut
(Script era -> Addr
forall era. EraScript era => Script era -> Addr
someScriptAddr (Script era -> Addr) -> Script era -> Addr
forall a b. (a -> b) -> a -> b
$ forall era. EraModel era => Natural -> Script era
always @era Natural
3)
(Coin -> Value era
forall t s. Inject t s => t -> s
inject (Coin -> Value era) -> Coin -> Value era
forall a b. (a -> b) -> a -> b
$ Integer -> Coin
Coin Integer
5000)
TxOut era -> (TxOut era -> TxOut era) -> TxOut era
forall a b. a -> (a -> b) -> b
& (StrictMaybe DataHash -> Identity (StrictMaybe DataHash))
-> TxOut era -> Identity (TxOut era)
forall era.
AlonzoEraTxOut era =>
Lens' (TxOut era) (StrictMaybe DataHash)
Lens' (TxOut era) (StrictMaybe DataHash)
dataHashTxOutL ((StrictMaybe DataHash -> Identity (StrictMaybe DataHash))
-> TxOut era -> Identity (TxOut era))
-> StrictMaybe DataHash -> TxOut era -> TxOut era
forall s t a b. ASetter s t a b -> b -> s -> t
.~ DataHash -> StrictMaybe DataHash
forall a. a -> StrictMaybe a
SJust (Data era -> DataHash
forall era. Data era -> DataHash
hashData (Data era -> DataHash) -> Data era -> DataHash
forall a b. (a -> b) -> a -> b
$ forall era. Era era => Data era
someDatum @era)
nonScriptOutWithDatum :: TxOut era
nonScriptOutWithDatum =
Addr -> Value era -> TxOut era
forall era.
(EraTxOut era, HasCallStack) =>
Addr -> Value era -> TxOut era
mkBasicTxOut Addr
someAddr (Coin -> Value era
forall t s. Inject t s => t -> s
inject (Coin -> Value era) -> Coin -> Value era
forall a b. (a -> b) -> a -> b
$ Integer -> Coin
Coin Integer
1221)
TxOut era -> (TxOut era -> TxOut era) -> TxOut era
forall a b. a -> (a -> b) -> b
& (StrictMaybe DataHash -> Identity (StrictMaybe DataHash))
-> TxOut era -> Identity (TxOut era)
forall era.
AlonzoEraTxOut era =>
Lens' (TxOut era) (StrictMaybe DataHash)
Lens' (TxOut era) (StrictMaybe DataHash)
dataHashTxOutL ((StrictMaybe DataHash -> Identity (StrictMaybe DataHash))
-> TxOut era -> Identity (TxOut era))
-> StrictMaybe DataHash -> TxOut era -> TxOut era
forall s t a b. ASetter s t a b -> b -> s -> t
.~ DataHash -> StrictMaybe DataHash
forall a. a -> StrictMaybe a
SJust (Data era -> DataHash
forall era. Data era -> DataHash
hashData (Data era -> DataHash) -> Data era -> DataHash
forall a b. (a -> b) -> a -> b
$ forall era. Era era => Data era
someDatum @era)
poolID :: KeyHash kd
poolID = VKey kd -> KeyHash kd
forall (kd :: KeyRole). VKey kd -> KeyHash kd
hashKey (VKey kd -> KeyHash kd)
-> (KeyPair 'BlockIssuer -> VKey kd)
-> KeyPair 'BlockIssuer
-> KeyHash kd
forall b c a. (b -> c) -> (a -> b) -> a -> c
. KeyPair kd -> VKey kd
forall (kd :: KeyRole). KeyPair kd -> VKey kd
vKey (KeyPair kd -> VKey kd)
-> (KeyPair 'BlockIssuer -> KeyPair kd)
-> KeyPair 'BlockIssuer
-> VKey kd
forall b c a. (b -> c) -> (a -> b) -> a -> c
. KeyPair 'BlockIssuer -> KeyPair kd
forall (r :: KeyRole) (r' :: KeyRole). KeyPair r -> KeyPair r'
forall (a :: KeyRole -> *) (r :: KeyRole) (r' :: KeyRole).
HasKeyRole a =>
a r -> a r'
coerceKeyRole (KeyPair 'BlockIssuer -> KeyHash kd)
-> KeyPair 'BlockIssuer -> KeyHash kd
forall a b. (a -> b) -> a -> b
$ KeyPair 'BlockIssuer
coldKeys
example1UtxoSt :: UTxOState era
example1UtxoSt =
PParams era
-> UTxO era
-> Coin
-> Coin
-> GovState era
-> Coin
-> UTxOState era
forall era.
EraStake era =>
PParams era
-> UTxO era
-> Coin
-> Coin
-> GovState era
-> Coin
-> UTxOState era
smartUTxOState PParams era
forall era. AlonzoEraPParams era => PParams era
defaultPParams UTxO era
utxo Coin
totalDeposits (Integer -> Coin
Coin Integer
40) GovState era
forall a. Default a => a
def Coin
forall a. Monoid a => a
mempty
totalDeposits :: Coin
totalDeposits = Integer -> Coin
Coin Integer
0
in State (EraRule "LEDGERS" era)
-> BlocksMade -> ShelleyBbodyState era
forall era.
State (EraRule "LEDGERS" era)
-> BlocksMade -> ShelleyBbodyState era
BbodyState
(UTxOState era -> CertState era -> LedgerState era
forall era. UTxOState era -> CertState era -> LedgerState era
LedgerState UTxOState era
example1UtxoSt CertState era
forall a. Default a => a
def)
(Map (KeyHash 'StakePool) Natural -> BlocksMade
BlocksMade (Map (KeyHash 'StakePool) Natural -> BlocksMade)
-> Map (KeyHash 'StakePool) Natural -> BlocksMade
forall a b. (a -> b) -> a -> b
$ KeyHash 'StakePool -> Natural -> Map (KeyHash 'StakePool) Natural
forall k a. k -> a -> Map k a
Map.singleton KeyHash 'StakePool
forall {kd :: KeyRole}. KeyHash kd
poolID Natural
1)
makeTooBig ::
forall era.
InjectRuleFailure "BBODY" ShelleyPoolPredFailure era =>
PredicateFailure (EraRule "BBODY" era)
makeTooBig :: forall era.
InjectRuleFailure "BBODY" ShelleyPoolPredFailure era =>
PredicateFailure (EraRule "BBODY" era)
makeTooBig =
forall (rule :: Symbol) (t :: * -> *) era.
InjectRuleFailure rule t era =>
t era -> EraRuleFailure rule era
injectFailure @"BBODY" @_ @era (ShelleyPoolPredFailure era -> EraRuleFailure "BBODY" era)
-> ShelleyPoolPredFailure era -> EraRuleFailure "BBODY" era
forall a b. (a -> b) -> a -> b
$
KeyHash 'StakePool -> Int -> ShelleyPoolPredFailure era
forall era. KeyHash 'StakePool -> Int -> ShelleyPoolPredFailure era
PoolMedataHashTooBig (KeyHash 'Payment -> KeyHash 'StakePool
forall (r :: KeyRole) (r' :: KeyRole). KeyHash r -> KeyHash r'
forall (a :: KeyRole -> *) (r :: KeyRole) (r' :: KeyRole).
HasKeyRole a =>
a r -> a r'
coerceKeyRole (KeyHash 'Payment -> KeyHash 'StakePool)
-> (VKey 'Payment -> KeyHash 'Payment)
-> VKey 'Payment
-> KeyHash 'StakePool
forall b c a. (b -> c) -> (a -> b) -> a -> c
. VKey 'Payment -> KeyHash 'Payment
forall (kd :: KeyRole). VKey kd -> KeyHash kd
hashKey (VKey 'Payment -> KeyHash 'StakePool)
-> VKey 'Payment -> KeyHash 'StakePool
forall a b. (a -> b) -> a -> b
$ KeyPair 'Payment -> VKey 'Payment
forall (kd :: KeyRole). KeyPair kd -> VKey kd
vKey KeyPair 'Payment
someKeys) (Int
standardHashSize Int -> Int -> Int
forall a. Num a => a -> a -> a
+ Int
1)
coldKeys :: KeyPair 'BlockIssuer
coldKeys :: KeyPair 'BlockIssuer
coldKeys = VKey 'BlockIssuer -> SignKeyDSIGN DSIGN -> KeyPair 'BlockIssuer
forall (kd :: KeyRole). VKey kd -> SignKeyDSIGN DSIGN -> KeyPair kd
KeyPair VKey 'BlockIssuer
forall {kd :: KeyRole}. VKey kd
vk SignKeyDSIGN DSIGN
sk
where
(SignKeyDSIGN DSIGN
sk, VKey kd
vk) = RawSeed -> (SignKeyDSIGN DSIGN, VKey kd)
forall (kd :: KeyRole). RawSeed -> (SignKeyDSIGN DSIGN, VKey kd)
mkKeyPair (Word64 -> Word64 -> Word64 -> Word64 -> Word64 -> RawSeed
RawSeed Word64
1 Word64
2 Word64
3 Word64
2 Word64
1)
makeNaiveBlock ::
forall era. EraBlockBody era => [Tx era] -> Block BHeaderView era
makeNaiveBlock :: forall era. EraBlockBody era => [Tx era] -> Block BHeaderView era
makeNaiveBlock [Tx era]
txs = BHeaderView -> BlockBody era -> Block BHeaderView era
forall h era. h -> BlockBody era -> Block h era
Block BHeaderView
bhView BlockBody era
blockBody
where
bhView :: BHeaderView
bhView =
BHeaderView
{ bhviewID :: KeyHash 'BlockIssuer
bhviewID = VKey 'BlockIssuer -> KeyHash 'BlockIssuer
forall (kd :: KeyRole). VKey kd -> KeyHash kd
hashKey (KeyPair 'BlockIssuer -> VKey 'BlockIssuer
forall (kd :: KeyRole). KeyPair kd -> VKey kd
vKey KeyPair 'BlockIssuer
coldKeys)
, bhviewBSize :: Word32
bhviewBSize = Int -> Word32
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> Word32) -> Int -> Word32
forall a b. (a -> b) -> a -> b
$ ProtVer -> BlockBody era -> Int
forall era. EraBlockBody era => ProtVer -> BlockBody era -> Int
bBodySize (Version -> Natural -> ProtVer
ProtVer (forall era. Era era => Version
eraProtVerLow @era) Natural
0) BlockBody era
blockBody
, bhviewHSize :: Int
bhviewHSize = Int
0
, bhviewBHash :: Hash HASH EraIndependentBlockBody
bhviewBHash = BlockBody era -> Hash HASH EraIndependentBlockBody
forall era.
EraBlockBody era =>
BlockBody era -> Hash HASH EraIndependentBlockBody
hashBlockBody BlockBody era
blockBody
, bhviewSlot :: SlotNo
bhviewSlot = Word64 -> SlotNo
SlotNo Word64
0
}
blockBody :: BlockBody era
blockBody = BlockBody era
forall era. EraBlockBody era => BlockBody era
mkBasicBlockBody BlockBody era -> (BlockBody era -> BlockBody era) -> BlockBody era
forall a b. a -> (a -> b) -> b
& (StrictSeq (Tx era) -> Identity (StrictSeq (Tx era)))
-> BlockBody era -> Identity (BlockBody era)
forall era.
EraBlockBody era =>
Lens' (BlockBody era) (StrictSeq (Tx era))
Lens' (BlockBody era) (StrictSeq (Tx era))
txSeqBlockBodyL ((StrictSeq (Tx era) -> Identity (StrictSeq (Tx era)))
-> BlockBody era -> Identity (BlockBody era))
-> StrictSeq (Tx era) -> BlockBody era -> BlockBody era
forall s t a b. ASetter s t a b -> b -> s -> t
.~ [Tx era] -> StrictSeq (Tx era)
forall a. [a] -> StrictSeq a
StrictSeq.fromList [Tx era]
txs
scriptStakeCredFail :: forall era. (ShelleyEraScript era, EraModel era) => StakeCredential
scriptStakeCredFail :: forall era. (ShelleyEraScript era, EraModel era) => StakeCredential
scriptStakeCredFail = ScriptHash -> StakeCredential
forall (kr :: KeyRole). ScriptHash -> Credential kr
ScriptHashObj (forall era.
(ShelleyEraScript era, EraModel era) =>
Natural -> ScriptHash
alwaysFailsHash @era Natural
1)
scriptStakeCredSucceed :: forall era. (ShelleyEraScript era, EraModel era) => StakeCredential
scriptStakeCredSucceed :: forall era. (ShelleyEraScript era, EraModel era) => StakeCredential
scriptStakeCredSucceed = ScriptHash -> StakeCredential
forall (kr :: KeyRole). ScriptHash -> Credential kr
ScriptHashObj (forall era.
(ShelleyEraScript era, EraModel era) =>
Natural -> ScriptHash
alwaysSucceedsHash @era Natural
2)
successDeposit :: CompactForm Coin
successDeposit :: CompactForm Coin
successDeposit = Word64 -> CompactForm Coin
CompactCoin Word64
7
poolDeposit :: Coin
poolDeposit :: Coin
poolDeposit = Integer -> Coin
Coin Integer
5
defaultPParams :: AlonzoEraPParams era => PParams era
defaultPParams :: forall era. AlonzoEraPParams era => PParams era
defaultPParams =
PParams era
forall era. EraPParams era => PParams era
emptyPParams
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
.~ HasCallStack => [Language] -> CostModels
[Language] -> CostModels
zeroTestingCostModels [Item [Language]
Language
PlutusV1]
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
1000000000
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
.~ Natural -> Natural -> ExUnits
ExUnits Natural
1000000 Natural
1000000
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
ppMaxBlockExUnitsL ((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
.~ Natural -> Natural -> ExUnits
ExUnits Natural
1000000 Natural
1000000
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 (v :: Natural).
(KnownNat v, MinVersion <= v, v <= MaxVersion) =>
Version
natVersion @5) Natural
0
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
100
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
& (Coin -> Identity Coin) -> PParams era -> Identity (PParams era)
forall era.
(EraPParams era, HasCallStack) =>
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
.~ Coin
poolDeposit