Skip to content

Commit 39ca061

Browse files
committed
Write Eq instance for PlutusScriptWitness
1 parent 3b132f1 commit 39ca061

File tree

13 files changed

+460
-147
lines changed

13 files changed

+460
-147
lines changed

cardano-api/gen/Test/Gen/Cardano/Api/Experimental.hs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,19 +35,19 @@ genAnyWitness =
3535

3636
genAnyPlutusScriptWitnessV1 :: Gen (AnyWitness era)
3737
genAnyPlutusScriptWitnessV1 =
38-
AnyPlutusScriptWitness <$> genPlutusScriptWitness L.SPlutusV1
38+
AnyPlutusScriptWitness <$> error "TODO" -- genPlutusScriptWitness L.SPlutusV1
3939

4040
genAnyPlutusScriptWitnessV2 :: Gen (AnyWitness era)
4141
genAnyPlutusScriptWitnessV2 =
42-
AnyPlutusScriptWitness <$> genPlutusScriptWitness L.SPlutusV2
42+
AnyPlutusScriptWitness <$> error "TODO" -- genPlutusScriptWitness L.SPlutusV2
4343

4444
genAnyPlutusScriptWitnessV3 :: Gen (AnyWitness era)
4545
genAnyPlutusScriptWitnessV3 =
46-
AnyPlutusScriptWitness <$> genPlutusScriptWitness L.SPlutusV3
46+
AnyPlutusScriptWitness <$> error "TODO" -- genPlutusScriptWitness L.SPlutusV3
4747

4848
genAnyPlutusScriptWitnessV4 :: Gen (AnyWitness era)
4949
genAnyPlutusScriptWitnessV4 =
50-
AnyPlutusScriptWitness <$> genPlutusScriptWitness L.SPlutusV4
50+
AnyPlutusScriptWitness <$> error "TODO" -- genPlutusScriptWitness L.SPlutusV4
5151

5252
genAnySimpleScriptWitness :: Gen (SimpleScriptOrReferenceInput era)
5353
genAnySimpleScriptWitness = SReferenceScript <$> genTxIn

cardano-api/gen/Test/Gen/Cardano/Api/Typed.hs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1572,7 +1572,7 @@ genIndexedPlutusScriptWitness = do
15721572
Exp.IndexedPlutusScriptWitness
15731573
<$> genWitnessable
15741574
<*> genPlutusPurpose index witnessable
1575-
<*> genPlutusScriptWitness
1575+
<*> error "TODO" -- genPlutusScriptWitness
15761576

15771577
genPlutusPurpose
15781578
:: Word32

cardano-api/src/Cardano/Api/Certificate/Internal.hs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -145,13 +145,13 @@ deriving instance Ord (Certificate era)
145145

146146
deriving instance Show (Certificate era)
147147

148-
instance TestEquality Certificate where
149-
testEquality (ShelleyRelatedCertificate _ c) (ShelleyRelatedCertificate _ c') =
150-
shelleyCertTypeEquality c c'
151-
testEquality (ConwayCertificate _ c) (ConwayCertificate _ c') =
152-
conwayCertTypeEquality c c'
153-
testEquality ShelleyRelatedCertificate{} ConwayCertificate{} = Nothing
154-
testEquality ConwayCertificate{} ShelleyRelatedCertificate{} = Nothing
148+
-- instance TestEquality Certificate where
149+
-- testEquality (ShelleyRelatedCertificate _ c) (ShelleyRelatedCertificate _ c') =
150+
-- shelleyCertTypeEquality c c'
151+
-- testEquality (ConwayCertificate _ c) (ConwayCertificate _ c') =
152+
-- conwayCertTypeEquality c c'
153+
-- testEquality ShelleyRelatedCertificate{} ConwayCertificate{} = Nothing
154+
-- testEquality ConwayCertificate{} ShelleyRelatedCertificate{} = Nothing
155155

156156
conwayCertTypeEquality
157157
:: (Typeable eraA, Typeable eraB)
Lines changed: 228 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,237 @@
1+
{-# LANGUAGE DataKinds #-}
2+
{-# LANGUAGE FlexibleContexts #-}
13
{-# LANGUAGE GADTs #-}
4+
{-# LANGUAGE ScopedTypeVariables #-}
25
{-# LANGUAGE StandaloneDeriving #-}
6+
{-# LANGUAGE TypeOperators #-}
37

48
module Cardano.Api.Experimental.AnyScriptWitness
5-
( AnyScriptWitness(..)
6-
) where
9+
( AnyScriptWitness (..)
10+
, AnyPlutusScriptWitness (..)
11+
, PlutusSpendingScriptWitness (..)
12+
, getAnyPlutusScriptData
13+
, getAnyPlutusScriptWitnessExecutionUnits
14+
, getAnyPlutusScriptWitnessRedeemer
15+
, getAnyPlutusWitnessPlutusScript
16+
, getAnyPlutusScriptWitnessLanguage
17+
, langTypeEquality
18+
, updatePlutusScriptWitnessExecutionUnits
19+
)
20+
where
721

8-
import Cardano.Api.Experimental.Simple.Script
922
import Cardano.Api.Experimental.Plutus.Internal.ScriptWitness
10-
11-
data AnyScriptWitness era where
12-
AnyScriptWitnessSimple :: SimpleScriptOrReferenceInput era -> AnyScriptWitness era
13-
AnyScriptWitnessPlutus :: PlutusScriptWitness lang purpose era -> AnyScriptWitness era
23+
import Cardano.Api.Experimental.Simple.Script
24+
import Cardano.Api.Ledger.Internal.Reexport qualified as L
25+
import Cardano.Api.Plutus.Internal.Script (ExecutionUnits)
26+
27+
import Cardano.Ledger.Plutus.Language qualified as L
28+
29+
import Data.Type.Equality
30+
import Data.Typeable
31+
32+
data PlutusSpendingScriptWitness era
33+
= PlutusSpendingScriptWitnessV1 (PlutusScriptWitness L.PlutusV1 SpendingScript era)
34+
| PlutusSpendingScriptWitnessV2 (PlutusScriptWitness L.PlutusV2 SpendingScript era)
35+
| PlutusSpendingScriptWitnessV3 (PlutusScriptWitness L.PlutusV3 SpendingScript era)
36+
| PlutusSpendingScriptWitnessV4 (PlutusScriptWitness L.PlutusV4 SpendingScript era)
37+
deriving (Show, Eq)
38+
39+
data AnyPlutusScriptWitness lang purpose era where
40+
AnyPlutusSpendingScriptWitness
41+
:: PlutusSpendingScriptWitness era -> AnyPlutusScriptWitness lang SpendingScript era
42+
AnyPlutusMintingScriptWitness
43+
:: Typeable lang
44+
=> PlutusScriptWitness lang MintingScript era -> AnyPlutusScriptWitness lang MintingScript era
45+
AnyPlutusWithdrawingScriptWitness
46+
:: Typeable lang
47+
=> PlutusScriptWitness lang WithdrawingScript era -> AnyPlutusScriptWitness lang WithdrawingScript era
48+
AnyPlutusCertifyingScriptWitness
49+
:: Typeable lang
50+
=> PlutusScriptWitness lang CertifyingScript era -> AnyPlutusScriptWitness lang CertifyingScript era
51+
AnyPlutusProposingScriptWitness
52+
:: Typeable lang
53+
=> PlutusScriptWitness lang ProposingScript era -> AnyPlutusScriptWitness lang ProposingScript era
54+
AnyPlutusVotingScriptWitness
55+
:: Typeable lang
56+
=> PlutusScriptWitness lang VotingScript era -> AnyPlutusScriptWitness lang VotingScript era
57+
58+
deriving instance Show (AnyPlutusScriptWitness lang purpose era)
59+
60+
deriving instance Eq (AnyPlutusScriptWitness lang purpose era)
61+
62+
getAnyPlutusScriptWitnessExecutionUnits
63+
:: AnyPlutusScriptWitness lang purpose era -> ExecutionUnits
64+
getAnyPlutusScriptWitnessExecutionUnits (AnyPlutusSpendingScriptWitness s) =
65+
case s of
66+
PlutusSpendingScriptWitnessV1 (PlutusScriptWitness _ _ _ _ eu) -> eu
67+
PlutusSpendingScriptWitnessV2 (PlutusScriptWitness _ _ _ _ eu) -> eu
68+
PlutusSpendingScriptWitnessV3 (PlutusScriptWitness _ _ _ _ eu) -> eu
69+
PlutusSpendingScriptWitnessV4 (PlutusScriptWitness _ _ _ _ eu) -> eu
70+
getAnyPlutusScriptWitnessExecutionUnits (AnyPlutusMintingScriptWitness (PlutusScriptWitness _ _ _ _ eu)) = eu
71+
getAnyPlutusScriptWitnessExecutionUnits (AnyPlutusWithdrawingScriptWitness (PlutusScriptWitness _ _ _ _ eu)) = eu
72+
getAnyPlutusScriptWitnessExecutionUnits (AnyPlutusCertifyingScriptWitness (PlutusScriptWitness _ _ _ _ eu)) = eu
73+
getAnyPlutusScriptWitnessExecutionUnits (AnyPlutusProposingScriptWitness (PlutusScriptWitness _ _ _ _ eu)) = eu
74+
getAnyPlutusScriptWitnessExecutionUnits (AnyPlutusVotingScriptWitness (PlutusScriptWitness _ _ _ _ eu)) = eu
1475

76+
getAnyPlutusScriptWitnessRedeemer
77+
:: AnyPlutusScriptWitness lang purpose era
78+
-> ScriptRedeemer
79+
getAnyPlutusScriptWitnessRedeemer (AnyPlutusSpendingScriptWitness s) =
80+
case s of
81+
PlutusSpendingScriptWitnessV1 (PlutusScriptWitness _ _ _ redeemer _) -> redeemer
82+
PlutusSpendingScriptWitnessV2 (PlutusScriptWitness _ _ _ redeemer _) -> redeemer
83+
PlutusSpendingScriptWitnessV3 (PlutusScriptWitness _ _ _ redeemer _) -> redeemer
84+
PlutusSpendingScriptWitnessV4 (PlutusScriptWitness _ _ _ redeemer _) -> redeemer
85+
getAnyPlutusScriptWitnessRedeemer (AnyPlutusMintingScriptWitness (PlutusScriptWitness _ _ _ redeemer _)) = redeemer
86+
getAnyPlutusScriptWitnessRedeemer (AnyPlutusWithdrawingScriptWitness (PlutusScriptWitness _ _ _ redeemer _)) = redeemer
87+
getAnyPlutusScriptWitnessRedeemer (AnyPlutusCertifyingScriptWitness (PlutusScriptWitness _ _ _ redeemer _)) = redeemer
88+
getAnyPlutusScriptWitnessRedeemer (AnyPlutusProposingScriptWitness (PlutusScriptWitness _ _ _ redeemer _)) = redeemer
89+
getAnyPlutusScriptWitnessRedeemer (AnyPlutusVotingScriptWitness (PlutusScriptWitness _ _ _ redeemer _)) = redeemer
90+
91+
updatePlutusScriptWitnessExecutionUnits
92+
:: ExecutionUnits -> AnyPlutusScriptWitness lang purpose era -> AnyPlutusScriptWitness lang purpose era
93+
updatePlutusScriptWitnessExecutionUnits eu (AnyPlutusSpendingScriptWitness s) =
94+
case s of
95+
PlutusSpendingScriptWitnessV1 (PlutusScriptWitness lang script dat redeemer _) ->
96+
AnyPlutusSpendingScriptWitness
97+
(PlutusSpendingScriptWitnessV1 (PlutusScriptWitness lang script dat redeemer eu))
98+
PlutusSpendingScriptWitnessV2 (PlutusScriptWitness lang script dat redeemer _) ->
99+
AnyPlutusSpendingScriptWitness
100+
(PlutusSpendingScriptWitnessV2 (PlutusScriptWitness lang script dat redeemer eu))
101+
PlutusSpendingScriptWitnessV3 (PlutusScriptWitness lang script dat redeemer _) ->
102+
AnyPlutusSpendingScriptWitness
103+
(PlutusSpendingScriptWitnessV3 (PlutusScriptWitness lang script dat redeemer eu))
104+
PlutusSpendingScriptWitnessV4 (PlutusScriptWitness lang script dat redeemer _) ->
105+
AnyPlutusSpendingScriptWitness
106+
(PlutusSpendingScriptWitnessV4 (PlutusScriptWitness lang script dat redeemer eu))
107+
updatePlutusScriptWitnessExecutionUnits eu (AnyPlutusMintingScriptWitness (PlutusScriptWitness lang script dat redeemer _)) =
108+
AnyPlutusMintingScriptWitness (PlutusScriptWitness lang script dat redeemer eu)
109+
updatePlutusScriptWitnessExecutionUnits eu (AnyPlutusWithdrawingScriptWitness (PlutusScriptWitness lang script dat redeemer _)) =
110+
AnyPlutusWithdrawingScriptWitness (PlutusScriptWitness lang script dat redeemer eu)
111+
updatePlutusScriptWitnessExecutionUnits eu (AnyPlutusCertifyingScriptWitness (PlutusScriptWitness lang script dat redeemer _)) =
112+
AnyPlutusCertifyingScriptWitness (PlutusScriptWitness lang script dat redeemer eu)
113+
updatePlutusScriptWitnessExecutionUnits eu (AnyPlutusProposingScriptWitness (PlutusScriptWitness lang script dat redeemer _)) =
114+
AnyPlutusProposingScriptWitness (PlutusScriptWitness lang script dat redeemer eu)
115+
updatePlutusScriptWitnessExecutionUnits eu (AnyPlutusVotingScriptWitness (PlutusScriptWitness lang script dat redeemer _)) =
116+
AnyPlutusVotingScriptWitness (PlutusScriptWitness lang script dat redeemer eu)
117+
118+
getAnyPlutusScriptWitnessLanguage
119+
:: AnyPlutusScriptWitness lang purpose era -> L.Language
120+
getAnyPlutusScriptWitnessLanguage (AnyPlutusSpendingScriptWitness s) =
121+
case s of
122+
PlutusSpendingScriptWitnessV1 s' -> getPlutusScriptWitnessLanguage s'
123+
PlutusSpendingScriptWitnessV2 s' -> getPlutusScriptWitnessLanguage s'
124+
PlutusSpendingScriptWitnessV3 s' -> getPlutusScriptWitnessLanguage s'
125+
PlutusSpendingScriptWitnessV4 s' -> getPlutusScriptWitnessLanguage s'
126+
getAnyPlutusScriptWitnessLanguage (AnyPlutusMintingScriptWitness s) = getPlutusScriptWitnessLanguage s
127+
getAnyPlutusScriptWitnessLanguage (AnyPlutusWithdrawingScriptWitness s) = getPlutusScriptWitnessLanguage s
128+
getAnyPlutusScriptWitnessLanguage (AnyPlutusCertifyingScriptWitness s) = getPlutusScriptWitnessLanguage s
129+
getAnyPlutusScriptWitnessLanguage (AnyPlutusProposingScriptWitness s) = getPlutusScriptWitnessLanguage s
130+
getAnyPlutusScriptWitnessLanguage (AnyPlutusVotingScriptWitness s) = getPlutusScriptWitnessLanguage s
131+
132+
getAnyPlutusScriptData
133+
:: L.Era era
134+
=> AnyPlutusScriptWitness lang purpose era
135+
-> L.TxDats era
136+
getAnyPlutusScriptData (AnyPlutusSpendingScriptWitness s) =
137+
case s of
138+
PlutusSpendingScriptWitnessV1 sw -> getSpendingPlutusWitnessData sw
139+
PlutusSpendingScriptWitnessV2 sw -> getSpendingPlutusWitnessData sw
140+
PlutusSpendingScriptWitnessV3 sw -> getSpendingPlutusWitnessData sw
141+
PlutusSpendingScriptWitnessV4 sw -> getSpendingPlutusWitnessData sw
142+
getAnyPlutusScriptData AnyPlutusMintingScriptWitness{} = mempty
143+
getAnyPlutusScriptData AnyPlutusWithdrawingScriptWitness{} = mempty
144+
getAnyPlutusScriptData AnyPlutusCertifyingScriptWitness{} = mempty
145+
getAnyPlutusScriptData AnyPlutusProposingScriptWitness{} = mempty
146+
getAnyPlutusScriptData AnyPlutusVotingScriptWitness{} = mempty
147+
148+
getAnyPlutusWitnessPlutusScript
149+
:: L.AlonzoEraScript era
150+
=> AnyPlutusScriptWitness lang purpose era
151+
-> Maybe (L.Script era)
152+
getAnyPlutusWitnessPlutusScript (AnyPlutusSpendingScriptWitness (PlutusSpendingScriptWitnessV1 s)) =
153+
let plutusScriptRunnable = getPlutusScriptRunnable s
154+
in L.fromPlutusScript <$> (fromPlutusRunnable L.SPlutusV1 =<< plutusScriptRunnable)
155+
getAnyPlutusWitnessPlutusScript (AnyPlutusSpendingScriptWitness (PlutusSpendingScriptWitnessV2 s)) =
156+
let plutusScriptRunnable = getPlutusScriptRunnable s
157+
in L.fromPlutusScript <$> (fromPlutusRunnable L.SPlutusV2 =<< plutusScriptRunnable)
158+
getAnyPlutusWitnessPlutusScript (AnyPlutusSpendingScriptWitness (PlutusSpendingScriptWitnessV3 s)) =
159+
let plutusScriptRunnable = getPlutusScriptRunnable s
160+
in L.fromPlutusScript <$> (fromPlutusRunnable L.SPlutusV3 =<< plutusScriptRunnable)
161+
getAnyPlutusWitnessPlutusScript (AnyPlutusSpendingScriptWitness (PlutusSpendingScriptWitnessV4 s)) =
162+
let plutusScriptRunnable = getPlutusScriptRunnable s
163+
in L.fromPlutusScript <$> (fromPlutusRunnable L.SPlutusV4 =<< plutusScriptRunnable)
164+
getAnyPlutusWitnessPlutusScript (AnyPlutusMintingScriptWitness s@(PlutusScriptWitness l _ _ _ _)) =
165+
let plutusScriptRunnable = getPlutusScriptRunnable s
166+
in L.fromPlutusScript <$> (fromPlutusRunnable l =<< plutusScriptRunnable)
167+
getAnyPlutusWitnessPlutusScript (AnyPlutusWithdrawingScriptWitness s@(PlutusScriptWitness l _ _ _ _)) =
168+
let plutusScriptRunnable = getPlutusScriptRunnable s
169+
in L.fromPlutusScript <$> (fromPlutusRunnable l =<< plutusScriptRunnable)
170+
getAnyPlutusWitnessPlutusScript (AnyPlutusCertifyingScriptWitness s@(PlutusScriptWitness l _ _ _ _)) =
171+
let plutusScriptRunnable = getPlutusScriptRunnable s
172+
in L.fromPlutusScript <$> (fromPlutusRunnable l =<< plutusScriptRunnable)
173+
getAnyPlutusWitnessPlutusScript (AnyPlutusProposingScriptWitness s@(PlutusScriptWitness l _ _ _ _)) =
174+
let plutusScriptRunnable = getPlutusScriptRunnable s
175+
in L.fromPlutusScript <$> (fromPlutusRunnable l =<< plutusScriptRunnable)
176+
getAnyPlutusWitnessPlutusScript (AnyPlutusVotingScriptWitness s@(PlutusScriptWitness l _ _ _ _)) =
177+
let plutusScriptRunnable = getPlutusScriptRunnable s
178+
in L.fromPlutusScript <$> (fromPlutusRunnable l =<< plutusScriptRunnable)
179+
180+
-- It should be noted that 'PlutusRunnable' is constructed via deserialization. The deserialization
181+
-- instance lives in ledger and will fail for an invalid script language/era pairing. Therefore
182+
-- this function should never return 'Nothing'.
183+
fromPlutusRunnable
184+
:: L.AlonzoEraScript era
185+
=> L.SLanguage lang
186+
-> L.PlutusRunnable lang
187+
-> Maybe (L.PlutusScript era)
188+
fromPlutusRunnable L.SPlutusV1 runnable =
189+
L.mkPlutusScript $ L.plutusFromRunnable runnable
190+
fromPlutusRunnable L.SPlutusV2 runnable =
191+
L.mkPlutusScript $ L.plutusFromRunnable runnable
192+
fromPlutusRunnable L.SPlutusV3 runnable =
193+
L.mkPlutusScript $ L.plutusFromRunnable runnable
194+
fromPlutusRunnable L.SPlutusV4 runnable =
195+
L.mkPlutusScript $ L.plutusFromRunnable runnable
196+
197+
-- getAnyPlutusScript (AnyPlutusSpendingScriptWitness (PlutusSpendingScriptWitnessV2 s)) = getPlutusScriptRunnable s
198+
-- getAnyPlutusScript (AnyPlutusSpendingScriptWitness (PlutusSpendingScriptWitnessV3 s)) = getPlutusScriptRunnable s
199+
-- getAnyPlutusScript (AnyPlutusSpendingScriptWitness (PlutusSpendingScriptWitnessV4 s)) = getPlutusScriptRunnable s
200+
201+
data AnyScriptWitness era where
202+
AnyScriptWitnessSimple :: SimpleScriptOrReferenceInput era -> AnyScriptWitness era
203+
AnyScriptWitnessPlutus :: AnyPlutusScriptWitness lang purpose era -> AnyScriptWitness era
15204

16205
deriving instance Show (AnyScriptWitness era)
17-
instance Eq (AnyScriptWitness era) where
18-
-- TODO LEFT OFF HERE!
206+
207+
instance Eq (AnyScriptWitness era) where
208+
(AnyScriptWitnessSimple s1) == (AnyScriptWitnessSimple s2) = s1 == s2
209+
(AnyScriptWitnessPlutus (AnyPlutusSpendingScriptWitness s1)) == (AnyScriptWitnessPlutus (AnyPlutusSpendingScriptWitness s2)) = s1 == s2
210+
(AnyScriptWitnessPlutus (AnyPlutusMintingScriptWitness s1)) == (AnyScriptWitnessPlutus (AnyPlutusMintingScriptWitness s2)) =
211+
case langTypeEquality s1 s2 of
212+
Just Refl -> s1 == s2
213+
Nothing -> False
214+
(AnyScriptWitnessPlutus (AnyPlutusWithdrawingScriptWitness s1)) == (AnyScriptWitnessPlutus (AnyPlutusWithdrawingScriptWitness s2)) =
215+
case langTypeEquality s1 s2 of
216+
Just Refl -> s1 == s2
217+
Nothing -> False
218+
(AnyScriptWitnessPlutus (AnyPlutusCertifyingScriptWitness s1)) == (AnyScriptWitnessPlutus (AnyPlutusCertifyingScriptWitness s2)) =
219+
case langTypeEquality s1 s2 of
220+
Just Refl -> s1 == s2
221+
Nothing -> False
222+
(AnyScriptWitnessPlutus (AnyPlutusProposingScriptWitness s1)) == (AnyScriptWitnessPlutus (AnyPlutusProposingScriptWitness s2)) =
223+
case langTypeEquality s1 s2 of
224+
Just Refl -> s1 == s2
225+
Nothing -> False
226+
(AnyScriptWitnessPlutus (AnyPlutusVotingScriptWitness s1)) == (AnyScriptWitnessPlutus (AnyPlutusVotingScriptWitness s2)) =
227+
case langTypeEquality s1 s2 of
228+
Just Refl -> s1 == s2
229+
Nothing -> False
230+
_ == _ = False
231+
232+
langTypeEquality
233+
:: (Typeable langA, Typeable langB)
234+
=> PlutusScriptWitness langA purpose era
235+
-> PlutusScriptWitness langB purpose era
236+
-> Maybe (langA :~: langB)
237+
langTypeEquality _ _ = eqT

cardano-api/src/Cardano/Api/Experimental/Era.hs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -299,6 +299,7 @@ obtainConwayConstraints ConwayEra a = a
299299

300300
type EraCommonConstraints era =
301301
( L.AllegraEraScript (LedgerEra era)
302+
, L.AlonzoEraScript (LedgerEra era)
302303
, L.AlonzoEraTx (LedgerEra era)
303304
, L.BabbageEraPParams (LedgerEra era)
304305
, L.BabbageEraTxBody (LedgerEra era)

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ module Cardano.Api.Experimental.Plutus
1717
, PlutusScriptPurpose (..)
1818
, PlutusScriptDatum (..)
1919
, NoScriptDatum (..)
20-
, mkPlutusScriptWitness
20+
-- , mkPlutusScriptWitness
2121
, getPlutusScriptWitnessLanguage
2222

2323
-- ** Constuct an indexed plutus script witness.

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

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ where
2929
import Cardano.Api.Address
3030
import Cardano.Api.Era.Internal.Eon.AlonzoEraOnwards
3131
import Cardano.Api.Era.Internal.Eon.ShelleyBasedEra
32+
import Cardano.Api.Experimental.AnyScriptWitness
3233
import Cardano.Api.Experimental.Plutus.Internal.ScriptWitness
3334
import Cardano.Api.Experimental.Tx.Internal.AnyWitness
3435
import Cardano.Api.Ledger qualified as L
@@ -54,7 +55,7 @@ data IndexedPlutusScriptWitness witnessable (lang :: L.Language) (purpose :: Plu
5455
:: L.AlonzoEraScript era
5556
=> Witnessable witnessable era
5657
-> (L.PlutusPurpose L.AsIx era)
57-
-> (PlutusScriptWitness lang purpose era)
58+
-> AnyPlutusScriptWitness lang purpose era
5859
-> IndexedPlutusScriptWitness witnessable lang purpose era
5960

6061
deriving instance Show (IndexedPlutusScriptWitness witnessable lang purpose era)
@@ -147,7 +148,7 @@ createIndexedPlutusScriptWitness
147148
:: L.AlonzoEraScript era
148149
=> Word32
149150
-> Witnessable witnessable era
150-
-> PlutusScriptWitness lang purpose era
151+
-> AnyPlutusScriptWitness lang purpose era
151152
-> IndexedPlutusScriptWitness witnessable lang purpose era
152153
createIndexedPlutusScriptWitness index witnessable =
153154
IndexedPlutusScriptWitness witnessable (toPlutusScriptPurpose index witnessable)
@@ -183,7 +184,8 @@ constructRedeemerPointer
183184
=> AnyIndexedPlutusScriptWitness era
184185
-> L.Redeemers era
185186
constructRedeemerPointer (AnyIndexedPlutusScriptWitness (IndexedPlutusScriptWitness _ purpose scriptWit)) =
186-
let PlutusScriptWitness _ _ _ redeemer execUnits = scriptWit
187+
let redeemer = getAnyPlutusScriptWitnessRedeemer scriptWit
188+
execUnits = getAnyPlutusScriptWitnessExecutionUnits scriptWit
187189
in L.Redeemers $
188190
fromList [(purpose, (toAlonzoData redeemer, toAlonzoExUnits execUnits))]
189191

0 commit comments

Comments
 (0)