Skip to content

Commit a91cc5d

Browse files
committed
Implement new TxBodyContent
1 parent 3232f6f commit a91cc5d

File tree

8 files changed

+674
-3
lines changed

8 files changed

+674
-3
lines changed

cardano-api/src/Cardano/Api/Experimental/Plutus/Internal/ScriptWitness.hs

Lines changed: 50 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ data PlutusScriptPurpose
9292
| -- | Witnesses a vote
9393
VotingScript
9494

95-
data NoScriptDatum = NoScriptDatumAllowed deriving Show
95+
data NoScriptDatum = NoScriptDatumAllowed deriving (Eq, Show)
9696

9797
-- | The PlutusScriptDatum type family is used to determine if a script datum is allowed
9898
-- for a given plutus script purpose and version. This change was proposed in CIP-69
@@ -130,6 +130,55 @@ data PlutusScriptDatum (lang :: L.Language) (purpose :: PlutusScriptPurpose) whe
130130
NoScriptDatum
131131
:: PlutusScriptDatum lang purpose
132132

133+
instance Eq (PlutusScriptDatum L.PlutusV1 SpendingScript) where
134+
(==) (SpendingScriptDatum d1) (SpendingScriptDatum d2) = d1 == d2
135+
(==) InlineDatum InlineDatum = True
136+
(==) NoScriptDatum NoScriptDatum = True
137+
(==) _ _ = False
138+
139+
instance Eq (PlutusScriptDatum L.PlutusV2 SpendingScript) where
140+
(==) (SpendingScriptDatum d1) (SpendingScriptDatum d2) = d1 == d2
141+
(==) InlineDatum InlineDatum = True
142+
(==) NoScriptDatum NoScriptDatum = True
143+
(==) _ _ = False
144+
145+
instance Eq (PlutusScriptDatum L.PlutusV3 SpendingScript) where
146+
(==) (SpendingScriptDatum d1) (SpendingScriptDatum d2) = d1 == d2
147+
(==) InlineDatum InlineDatum = True
148+
(==) NoScriptDatum NoScriptDatum = True
149+
(==) _ _ = False
150+
151+
instance Eq (PlutusScriptDatum L.PlutusV4 SpendingScript) where
152+
(==) (SpendingScriptDatum d1) (SpendingScriptDatum d2) = d1 == d2
153+
(==) InlineDatum InlineDatum = True
154+
(==) NoScriptDatum NoScriptDatum = True
155+
(==) _ _ = False
156+
157+
instance Eq (PlutusScriptDatum lang MintingScript) where
158+
(==) InlineDatum InlineDatum = True
159+
(==) NoScriptDatum NoScriptDatum = True
160+
(==) _ _ = False
161+
162+
instance Eq (PlutusScriptDatum lang WithdrawingScript) where
163+
(==) InlineDatum InlineDatum = True
164+
(==) NoScriptDatum NoScriptDatum = True
165+
(==) _ _ = False
166+
167+
instance Eq (PlutusScriptDatum lang CertifyingScript) where
168+
(==) InlineDatum InlineDatum = True
169+
(==) NoScriptDatum NoScriptDatum = True
170+
(==) _ _ = False
171+
172+
instance Eq (PlutusScriptDatum lang ProposingScript) where
173+
(==) InlineDatum InlineDatum = True
174+
(==) NoScriptDatum NoScriptDatum = True
175+
(==) _ _ = False
176+
177+
instance Eq (PlutusScriptDatum lang VotingScript) where
178+
(==) InlineDatum InlineDatum = True
179+
(==) NoScriptDatum NoScriptDatum = True
180+
(==) _ _ = False
181+
133182
instance Show (PlutusScriptDatum lang purpose) where
134183
show = \case
135184
SpendingScriptDatum _d -> "Datum"

cardano-api/src/Cardano/Api/Experimental/Plutus/Internal/Shim/LegacyScripts.hs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -192,7 +192,10 @@ legacyWitnessToScriptRequirements
192192
-> Either CBOR.DecoderError (TxScriptWitnessRequirements (ShelleyLedgerEra era))
193193
legacyWitnessToScriptRequirements eon wits = do
194194
r <- legacyWitnessConversion eon wits
195-
return $ getTxScriptWitnessesRequirements eon r
195+
return $
196+
alonzoEraOnwardsConstraints eon $
197+
obtainMonoidConstraint eon $
198+
getTxScriptWitnessesRequirements r
196199

197200
-- Misc helpers
198201

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
{-# LANGUAGE GADTs #-}
2+
3+
module Cardano.Api.Experimental.Script
4+
( AnyScript (..)
5+
)
6+
where
7+
8+
import Cardano.Api.Experimental.Plutus.Internal.Script
9+
import Cardano.Api.Experimental.Simple.Script
10+
11+
data AnyScript era where
12+
SimpleScript :: SimpleScriptOrReferenceInput era -> AnyScript era
13+
PlutusScript :: PlutusScriptOrReferenceInput lang era -> AnyScript era

0 commit comments

Comments
 (0)