module Cardano.YTxP.SDK.Redeemers (
AuthorisedScriptIndex (AuthorisedScriptIndex),
AuthorisedScriptPurpose (Minting, Spending, Rewarding),
AuthorisedScriptProofIndex (AuthorisedScriptProofIndex),
YieldingRedeemer (
YieldingRedeemer,
authorisedScriptIndex,
authorisedScriptProofIndex
),
) where
import GHC.Generics (Generic)
import Generics.SOP qualified as SOP
import PlutusTx qualified
import PlutusTx.Blueprint (HasBlueprintDefinition)
import PlutusTx.Prelude qualified as PlutusTx
import Test.QuickCheck (Arbitrary (arbitrary), arbitraryBoundedEnum)
newtype AuthorisedScriptIndex = AuthorisedScriptIndex Integer
deriving newtype
( Int -> AuthorisedScriptIndex -> ShowS
[AuthorisedScriptIndex] -> ShowS
AuthorisedScriptIndex -> String
(Int -> AuthorisedScriptIndex -> ShowS)
-> (AuthorisedScriptIndex -> String)
-> ([AuthorisedScriptIndex] -> ShowS)
-> Show AuthorisedScriptIndex
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> AuthorisedScriptIndex -> ShowS
showsPrec :: Int -> AuthorisedScriptIndex -> ShowS
$cshow :: AuthorisedScriptIndex -> String
show :: AuthorisedScriptIndex -> String
$cshowList :: [AuthorisedScriptIndex] -> ShowS
showList :: [AuthorisedScriptIndex] -> ShowS
Show
, AuthorisedScriptIndex -> AuthorisedScriptIndex -> Bool
(AuthorisedScriptIndex -> AuthorisedScriptIndex -> Bool)
-> (AuthorisedScriptIndex -> AuthorisedScriptIndex -> Bool)
-> Eq AuthorisedScriptIndex
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: AuthorisedScriptIndex -> AuthorisedScriptIndex -> Bool
== :: AuthorisedScriptIndex -> AuthorisedScriptIndex -> Bool
$c/= :: AuthorisedScriptIndex -> AuthorisedScriptIndex -> Bool
/= :: AuthorisedScriptIndex -> AuthorisedScriptIndex -> Bool
Eq
, AuthorisedScriptIndex -> BuiltinData
(AuthorisedScriptIndex -> BuiltinData)
-> ToData AuthorisedScriptIndex
forall a. (a -> BuiltinData) -> ToData a
$ctoBuiltinData :: AuthorisedScriptIndex -> BuiltinData
toBuiltinData :: AuthorisedScriptIndex -> BuiltinData
PlutusTx.ToData
, BuiltinData -> Maybe AuthorisedScriptIndex
(BuiltinData -> Maybe AuthorisedScriptIndex)
-> FromData AuthorisedScriptIndex
forall a. (BuiltinData -> Maybe a) -> FromData a
$cfromBuiltinData :: BuiltinData -> Maybe AuthorisedScriptIndex
fromBuiltinData :: BuiltinData -> Maybe AuthorisedScriptIndex
PlutusTx.FromData
, BuiltinData -> AuthorisedScriptIndex
(BuiltinData -> AuthorisedScriptIndex)
-> UnsafeFromData AuthorisedScriptIndex
forall a. (BuiltinData -> a) -> UnsafeFromData a
$cunsafeFromBuiltinData :: BuiltinData -> AuthorisedScriptIndex
unsafeFromBuiltinData :: BuiltinData -> AuthorisedScriptIndex
PlutusTx.UnsafeFromData
, AuthorisedScriptIndex -> AuthorisedScriptIndex -> Bool
(AuthorisedScriptIndex -> AuthorisedScriptIndex -> Bool)
-> Eq AuthorisedScriptIndex
forall a. (a -> a -> Bool) -> Eq a
$c== :: AuthorisedScriptIndex -> AuthorisedScriptIndex -> Bool
== :: AuthorisedScriptIndex -> AuthorisedScriptIndex -> Bool
PlutusTx.Eq
, Gen AuthorisedScriptIndex
Gen AuthorisedScriptIndex
-> (AuthorisedScriptIndex -> [AuthorisedScriptIndex])
-> Arbitrary AuthorisedScriptIndex
AuthorisedScriptIndex -> [AuthorisedScriptIndex]
forall a. Gen a -> (a -> [a]) -> Arbitrary a
$carbitrary :: Gen AuthorisedScriptIndex
arbitrary :: Gen AuthorisedScriptIndex
$cshrink :: AuthorisedScriptIndex -> [AuthorisedScriptIndex]
shrink :: AuthorisedScriptIndex -> [AuthorisedScriptIndex]
Arbitrary
)
data AuthorisedScriptPurpose = Minting | Spending | Rewarding
deriving stock (Int -> AuthorisedScriptPurpose -> ShowS
[AuthorisedScriptPurpose] -> ShowS
AuthorisedScriptPurpose -> String
(Int -> AuthorisedScriptPurpose -> ShowS)
-> (AuthorisedScriptPurpose -> String)
-> ([AuthorisedScriptPurpose] -> ShowS)
-> Show AuthorisedScriptPurpose
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> AuthorisedScriptPurpose -> ShowS
showsPrec :: Int -> AuthorisedScriptPurpose -> ShowS
$cshow :: AuthorisedScriptPurpose -> String
show :: AuthorisedScriptPurpose -> String
$cshowList :: [AuthorisedScriptPurpose] -> ShowS
showList :: [AuthorisedScriptPurpose] -> ShowS
Show, (forall x.
AuthorisedScriptPurpose -> Rep AuthorisedScriptPurpose x)
-> (forall x.
Rep AuthorisedScriptPurpose x -> AuthorisedScriptPurpose)
-> Generic AuthorisedScriptPurpose
forall x. Rep AuthorisedScriptPurpose x -> AuthorisedScriptPurpose
forall x. AuthorisedScriptPurpose -> Rep AuthorisedScriptPurpose x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. AuthorisedScriptPurpose -> Rep AuthorisedScriptPurpose x
from :: forall x. AuthorisedScriptPurpose -> Rep AuthorisedScriptPurpose x
$cto :: forall x. Rep AuthorisedScriptPurpose x -> AuthorisedScriptPurpose
to :: forall x. Rep AuthorisedScriptPurpose x -> AuthorisedScriptPurpose
Generic, AuthorisedScriptPurpose -> AuthorisedScriptPurpose -> Bool
(AuthorisedScriptPurpose -> AuthorisedScriptPurpose -> Bool)
-> (AuthorisedScriptPurpose -> AuthorisedScriptPurpose -> Bool)
-> Eq AuthorisedScriptPurpose
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: AuthorisedScriptPurpose -> AuthorisedScriptPurpose -> Bool
== :: AuthorisedScriptPurpose -> AuthorisedScriptPurpose -> Bool
$c/= :: AuthorisedScriptPurpose -> AuthorisedScriptPurpose -> Bool
/= :: AuthorisedScriptPurpose -> AuthorisedScriptPurpose -> Bool
Eq, Int -> AuthorisedScriptPurpose
AuthorisedScriptPurpose -> Int
AuthorisedScriptPurpose -> [AuthorisedScriptPurpose]
AuthorisedScriptPurpose -> AuthorisedScriptPurpose
AuthorisedScriptPurpose
-> AuthorisedScriptPurpose -> [AuthorisedScriptPurpose]
AuthorisedScriptPurpose
-> AuthorisedScriptPurpose
-> AuthorisedScriptPurpose
-> [AuthorisedScriptPurpose]
(AuthorisedScriptPurpose -> AuthorisedScriptPurpose)
-> (AuthorisedScriptPurpose -> AuthorisedScriptPurpose)
-> (Int -> AuthorisedScriptPurpose)
-> (AuthorisedScriptPurpose -> Int)
-> (AuthorisedScriptPurpose -> [AuthorisedScriptPurpose])
-> (AuthorisedScriptPurpose
-> AuthorisedScriptPurpose -> [AuthorisedScriptPurpose])
-> (AuthorisedScriptPurpose
-> AuthorisedScriptPurpose -> [AuthorisedScriptPurpose])
-> (AuthorisedScriptPurpose
-> AuthorisedScriptPurpose
-> AuthorisedScriptPurpose
-> [AuthorisedScriptPurpose])
-> Enum AuthorisedScriptPurpose
forall a.
(a -> a)
-> (a -> a)
-> (Int -> a)
-> (a -> Int)
-> (a -> [a])
-> (a -> a -> [a])
-> (a -> a -> [a])
-> (a -> a -> a -> [a])
-> Enum a
$csucc :: AuthorisedScriptPurpose -> AuthorisedScriptPurpose
succ :: AuthorisedScriptPurpose -> AuthorisedScriptPurpose
$cpred :: AuthorisedScriptPurpose -> AuthorisedScriptPurpose
pred :: AuthorisedScriptPurpose -> AuthorisedScriptPurpose
$ctoEnum :: Int -> AuthorisedScriptPurpose
toEnum :: Int -> AuthorisedScriptPurpose
$cfromEnum :: AuthorisedScriptPurpose -> Int
fromEnum :: AuthorisedScriptPurpose -> Int
$cenumFrom :: AuthorisedScriptPurpose -> [AuthorisedScriptPurpose]
enumFrom :: AuthorisedScriptPurpose -> [AuthorisedScriptPurpose]
$cenumFromThen :: AuthorisedScriptPurpose
-> AuthorisedScriptPurpose -> [AuthorisedScriptPurpose]
enumFromThen :: AuthorisedScriptPurpose
-> AuthorisedScriptPurpose -> [AuthorisedScriptPurpose]
$cenumFromTo :: AuthorisedScriptPurpose
-> AuthorisedScriptPurpose -> [AuthorisedScriptPurpose]
enumFromTo :: AuthorisedScriptPurpose
-> AuthorisedScriptPurpose -> [AuthorisedScriptPurpose]
$cenumFromThenTo :: AuthorisedScriptPurpose
-> AuthorisedScriptPurpose
-> AuthorisedScriptPurpose
-> [AuthorisedScriptPurpose]
enumFromThenTo :: AuthorisedScriptPurpose
-> AuthorisedScriptPurpose
-> AuthorisedScriptPurpose
-> [AuthorisedScriptPurpose]
Enum, AuthorisedScriptPurpose
AuthorisedScriptPurpose
-> AuthorisedScriptPurpose -> Bounded AuthorisedScriptPurpose
forall a. a -> a -> Bounded a
$cminBound :: AuthorisedScriptPurpose
minBound :: AuthorisedScriptPurpose
$cmaxBound :: AuthorisedScriptPurpose
maxBound :: AuthorisedScriptPurpose
Bounded)
deriving anyclass (All @[Type] (SListI @Type) (Code AuthorisedScriptPurpose)
All @[Type] (SListI @Type) (Code AuthorisedScriptPurpose) =>
(AuthorisedScriptPurpose -> Rep AuthorisedScriptPurpose)
-> (Rep AuthorisedScriptPurpose -> AuthorisedScriptPurpose)
-> Generic AuthorisedScriptPurpose
Rep AuthorisedScriptPurpose -> AuthorisedScriptPurpose
AuthorisedScriptPurpose -> Rep AuthorisedScriptPurpose
forall a.
All @[Type] (SListI @Type) (Code a) =>
(a -> Rep a) -> (Rep a -> a) -> Generic a
$cfrom :: AuthorisedScriptPurpose -> Rep AuthorisedScriptPurpose
from :: AuthorisedScriptPurpose -> Rep AuthorisedScriptPurpose
$cto :: Rep AuthorisedScriptPurpose -> AuthorisedScriptPurpose
to :: Rep AuthorisedScriptPurpose -> AuthorisedScriptPurpose
SOP.Generic)
instance Arbitrary AuthorisedScriptPurpose where
arbitrary :: Gen AuthorisedScriptPurpose
arbitrary = Gen AuthorisedScriptPurpose
forall a. (Bounded a, Enum a) => Gen a
arbitraryBoundedEnum
instance PlutusTx.ToData AuthorisedScriptPurpose where
{-# INLINEABLE toBuiltinData #-}
toBuiltinData :: AuthorisedScriptPurpose -> BuiltinData
toBuiltinData = Integer -> BuiltinData
forall a. ToData a => a -> BuiltinData
PlutusTx.toBuiltinData (Integer -> BuiltinData)
-> (AuthorisedScriptPurpose -> Integer)
-> AuthorisedScriptPurpose
-> BuiltinData
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Int -> Integer
forall a. Integral a => a -> Integer
toInteger (Int -> Integer)
-> (AuthorisedScriptPurpose -> Int)
-> AuthorisedScriptPurpose
-> Integer
forall b c a. (b -> c) -> (a -> b) -> a -> c
. AuthorisedScriptPurpose -> Int
forall a. Enum a => a -> Int
fromEnum
instance PlutusTx.FromData AuthorisedScriptPurpose where
{-# INLINEABLE fromBuiltinData #-}
fromBuiltinData :: BuiltinData -> Maybe AuthorisedScriptPurpose
fromBuiltinData BuiltinData
d = case forall a. FromData a => BuiltinData -> Maybe a
PlutusTx.fromBuiltinData @Integer BuiltinData
d of
Maybe Integer
PlutusTx.Nothing -> Maybe AuthorisedScriptPurpose
forall a. Maybe a
PlutusTx.Nothing
PlutusTx.Just Integer
i ->
if Integer
i Integer -> Integer -> Bool
forall a. Eq a => a -> a -> Bool
PlutusTx.== Integer
0
then AuthorisedScriptPurpose -> Maybe AuthorisedScriptPurpose
forall a. a -> Maybe a
PlutusTx.Just AuthorisedScriptPurpose
Minting
else
if Integer
i Integer -> Integer -> Bool
forall a. Eq a => a -> a -> Bool
PlutusTx.== Integer
1
then AuthorisedScriptPurpose -> Maybe AuthorisedScriptPurpose
forall a. a -> Maybe a
PlutusTx.Just AuthorisedScriptPurpose
Spending
else
if Integer
i Integer -> Integer -> Bool
forall a. Eq a => a -> a -> Bool
PlutusTx.== Integer
2
then AuthorisedScriptPurpose -> Maybe AuthorisedScriptPurpose
forall a. a -> Maybe a
PlutusTx.Just AuthorisedScriptPurpose
Rewarding
else Maybe AuthorisedScriptPurpose
forall a. Maybe a
PlutusTx.Nothing
instance PlutusTx.UnsafeFromData AuthorisedScriptPurpose where
{-# INLINEABLE unsafeFromBuiltinData #-}
unsafeFromBuiltinData :: BuiltinData -> AuthorisedScriptPurpose
unsafeFromBuiltinData BuiltinData
d = case BuiltinData -> Maybe AuthorisedScriptPurpose
forall a. FromData a => BuiltinData -> Maybe a
PlutusTx.fromBuiltinData BuiltinData
d of
Maybe AuthorisedScriptPurpose
Nothing -> () -> AuthorisedScriptPurpose
forall a. () -> a
PlutusTx.error ()
Just AuthorisedScriptPurpose
i -> AuthorisedScriptPurpose
i
instance PlutusTx.Eq AuthorisedScriptPurpose where
{-# INLINEABLE (==) #-}
AuthorisedScriptPurpose
Minting == :: AuthorisedScriptPurpose -> AuthorisedScriptPurpose -> Bool
== AuthorisedScriptPurpose
Minting = Bool
True
AuthorisedScriptPurpose
Spending == AuthorisedScriptPurpose
Spending = Bool
True
AuthorisedScriptPurpose
Rewarding == AuthorisedScriptPurpose
Rewarding = Bool
True
AuthorisedScriptPurpose
_ == AuthorisedScriptPurpose
_ = Bool
False
newtype AuthorisedScriptProofIndex
= AuthorisedScriptProofIndex (AuthorisedScriptPurpose, Integer)
deriving newtype
( Int -> AuthorisedScriptProofIndex -> ShowS
[AuthorisedScriptProofIndex] -> ShowS
AuthorisedScriptProofIndex -> String
(Int -> AuthorisedScriptProofIndex -> ShowS)
-> (AuthorisedScriptProofIndex -> String)
-> ([AuthorisedScriptProofIndex] -> ShowS)
-> Show AuthorisedScriptProofIndex
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> AuthorisedScriptProofIndex -> ShowS
showsPrec :: Int -> AuthorisedScriptProofIndex -> ShowS
$cshow :: AuthorisedScriptProofIndex -> String
show :: AuthorisedScriptProofIndex -> String
$cshowList :: [AuthorisedScriptProofIndex] -> ShowS
showList :: [AuthorisedScriptProofIndex] -> ShowS
Show
, AuthorisedScriptProofIndex -> AuthorisedScriptProofIndex -> Bool
(AuthorisedScriptProofIndex -> AuthorisedScriptProofIndex -> Bool)
-> (AuthorisedScriptProofIndex
-> AuthorisedScriptProofIndex -> Bool)
-> Eq AuthorisedScriptProofIndex
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: AuthorisedScriptProofIndex -> AuthorisedScriptProofIndex -> Bool
== :: AuthorisedScriptProofIndex -> AuthorisedScriptProofIndex -> Bool
$c/= :: AuthorisedScriptProofIndex -> AuthorisedScriptProofIndex -> Bool
/= :: AuthorisedScriptProofIndex -> AuthorisedScriptProofIndex -> Bool
Eq
, AuthorisedScriptProofIndex -> BuiltinData
(AuthorisedScriptProofIndex -> BuiltinData)
-> ToData AuthorisedScriptProofIndex
forall a. (a -> BuiltinData) -> ToData a
$ctoBuiltinData :: AuthorisedScriptProofIndex -> BuiltinData
toBuiltinData :: AuthorisedScriptProofIndex -> BuiltinData
PlutusTx.ToData
, BuiltinData -> Maybe AuthorisedScriptProofIndex
(BuiltinData -> Maybe AuthorisedScriptProofIndex)
-> FromData AuthorisedScriptProofIndex
forall a. (BuiltinData -> Maybe a) -> FromData a
$cfromBuiltinData :: BuiltinData -> Maybe AuthorisedScriptProofIndex
fromBuiltinData :: BuiltinData -> Maybe AuthorisedScriptProofIndex
PlutusTx.FromData
, BuiltinData -> AuthorisedScriptProofIndex
(BuiltinData -> AuthorisedScriptProofIndex)
-> UnsafeFromData AuthorisedScriptProofIndex
forall a. (BuiltinData -> a) -> UnsafeFromData a
$cunsafeFromBuiltinData :: BuiltinData -> AuthorisedScriptProofIndex
unsafeFromBuiltinData :: BuiltinData -> AuthorisedScriptProofIndex
PlutusTx.UnsafeFromData
, AuthorisedScriptProofIndex -> AuthorisedScriptProofIndex -> Bool
(AuthorisedScriptProofIndex -> AuthorisedScriptProofIndex -> Bool)
-> Eq AuthorisedScriptProofIndex
forall a. (a -> a -> Bool) -> Eq a
$c== :: AuthorisedScriptProofIndex -> AuthorisedScriptProofIndex -> Bool
== :: AuthorisedScriptProofIndex -> AuthorisedScriptProofIndex -> Bool
PlutusTx.Eq
, Gen AuthorisedScriptProofIndex
Gen AuthorisedScriptProofIndex
-> (AuthorisedScriptProofIndex -> [AuthorisedScriptProofIndex])
-> Arbitrary AuthorisedScriptProofIndex
AuthorisedScriptProofIndex -> [AuthorisedScriptProofIndex]
forall a. Gen a -> (a -> [a]) -> Arbitrary a
$carbitrary :: Gen AuthorisedScriptProofIndex
arbitrary :: Gen AuthorisedScriptProofIndex
$cshrink :: AuthorisedScriptProofIndex -> [AuthorisedScriptProofIndex]
shrink :: AuthorisedScriptProofIndex -> [AuthorisedScriptProofIndex]
Arbitrary
)
data YieldingRedeemer = YieldingRedeemer
{ YieldingRedeemer -> AuthorisedScriptIndex
authorisedScriptIndex :: AuthorisedScriptIndex
, YieldingRedeemer -> AuthorisedScriptProofIndex
authorisedScriptProofIndex :: AuthorisedScriptProofIndex
}
deriving stock (Int -> YieldingRedeemer -> ShowS
[YieldingRedeemer] -> ShowS
YieldingRedeemer -> String
(Int -> YieldingRedeemer -> ShowS)
-> (YieldingRedeemer -> String)
-> ([YieldingRedeemer] -> ShowS)
-> Show YieldingRedeemer
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> YieldingRedeemer -> ShowS
showsPrec :: Int -> YieldingRedeemer -> ShowS
$cshow :: YieldingRedeemer -> String
show :: YieldingRedeemer -> String
$cshowList :: [YieldingRedeemer] -> ShowS
showList :: [YieldingRedeemer] -> ShowS
Show, (forall x. YieldingRedeemer -> Rep YieldingRedeemer x)
-> (forall x. Rep YieldingRedeemer x -> YieldingRedeemer)
-> Generic YieldingRedeemer
forall x. Rep YieldingRedeemer x -> YieldingRedeemer
forall x. YieldingRedeemer -> Rep YieldingRedeemer x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. YieldingRedeemer -> Rep YieldingRedeemer x
from :: forall x. YieldingRedeemer -> Rep YieldingRedeemer x
$cto :: forall x. Rep YieldingRedeemer x -> YieldingRedeemer
to :: forall x. Rep YieldingRedeemer x -> YieldingRedeemer
Generic, YieldingRedeemer -> YieldingRedeemer -> Bool
(YieldingRedeemer -> YieldingRedeemer -> Bool)
-> (YieldingRedeemer -> YieldingRedeemer -> Bool)
-> Eq YieldingRedeemer
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: YieldingRedeemer -> YieldingRedeemer -> Bool
== :: YieldingRedeemer -> YieldingRedeemer -> Bool
$c/= :: YieldingRedeemer -> YieldingRedeemer -> Bool
/= :: YieldingRedeemer -> YieldingRedeemer -> Bool
Eq)
deriving anyclass (DefinitionId
DefinitionId -> HasBlueprintDefinition YieldingRedeemer
forall t. DefinitionId -> HasBlueprintDefinition t
$cdefinitionId :: DefinitionId
definitionId :: DefinitionId
HasBlueprintDefinition)
instance Arbitrary YieldingRedeemer where
arbitrary :: Gen YieldingRedeemer
arbitrary = AuthorisedScriptIndex
-> AuthorisedScriptProofIndex -> YieldingRedeemer
YieldingRedeemer (AuthorisedScriptIndex
-> AuthorisedScriptProofIndex -> YieldingRedeemer)
-> Gen AuthorisedScriptIndex
-> Gen (AuthorisedScriptProofIndex -> YieldingRedeemer)
forall (f :: Type -> Type) a b. Functor f => (a -> b) -> f a -> f b
<$> Gen AuthorisedScriptIndex
forall a. Arbitrary a => Gen a
arbitrary Gen (AuthorisedScriptProofIndex -> YieldingRedeemer)
-> Gen AuthorisedScriptProofIndex -> Gen YieldingRedeemer
forall a b. Gen (a -> b) -> Gen a -> Gen b
forall (f :: Type -> Type) a b.
Applicative f =>
f (a -> b) -> f a -> f b
<*> Gen AuthorisedScriptProofIndex
forall a. Arbitrary a => Gen a
arbitrary
instance PlutusTx.Eq YieldingRedeemer where
{-# INLINEABLE (==) #-}
YieldingRedeemer AuthorisedScriptIndex
si AuthorisedScriptProofIndex
spi == :: YieldingRedeemer -> YieldingRedeemer -> Bool
== YieldingRedeemer AuthorisedScriptIndex
si' AuthorisedScriptProofIndex
spi' =
AuthorisedScriptIndex
si AuthorisedScriptIndex -> AuthorisedScriptIndex -> Bool
forall a. Eq a => a -> a -> Bool
PlutusTx.== AuthorisedScriptIndex
si' Bool -> Bool -> Bool
PlutusTx.&& AuthorisedScriptProofIndex
spi AuthorisedScriptProofIndex -> AuthorisedScriptProofIndex -> Bool
forall a. Eq a => a -> a -> Bool
PlutusTx.== AuthorisedScriptProofIndex
spi'
PlutusTx.makeIsDataIndexed ''YieldingRedeemer [('YieldingRedeemer, 0)]