Skip to content

Commit 21e5e9c

Browse files
committed
WIP
1 parent 3232f6f commit 21e5e9c

File tree

10 files changed

+681
-8
lines changed

10 files changed

+681
-8
lines changed

cardano-api/cardano-api.cabal

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -227,15 +227,18 @@ library
227227
Cardano.Api.Experimental.Plutus.Internal.Script
228228
Cardano.Api.Experimental.Plutus.Internal.ScriptWitness
229229
Cardano.Api.Experimental.Plutus.Internal.Shim.LegacyScripts
230+
Cardano.Api.Experimental.Script
230231
Cardano.Api.Experimental.Serialise.TextEnvelope.Internal
231232
Cardano.Api.Experimental.Tx.Internal.AnyWitness
232-
Cardano.Api.Experimental.Tx.Internal.Body
233+
Cardano.Api.Experimental.Tx.Internal.BodyContent.New
234+
Cardano.Api.Experimental.Tx.Internal.BodyContent.Old
233235
Cardano.Api.Experimental.Tx.Internal.Certificate
234236
Cardano.Api.Experimental.Tx.Internal.Certificate.Compatible
235237
Cardano.Api.Experimental.Tx.Internal.Certificate.Type
236238
Cardano.Api.Experimental.Tx.Internal.Compatible
237239
Cardano.Api.Experimental.Tx.Internal.Fee
238240
Cardano.Api.Experimental.Tx.Internal.TxScriptWitnessRequirements
241+
Cardano.Api.Experimental.Tx.Internal.Type
239242
Cardano.Api.Genesis.Internal
240243
Cardano.Api.Genesis.Internal.Parameters
241244
Cardano.Api.Governance.Internal.Action.ProposalProcedure

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)