Skip to content

Commit 7f5ec42

Browse files
committed
Final changes
1 parent 7f90092 commit 7f5ec42

File tree

6 files changed

+83
-48
lines changed

6 files changed

+83
-48
lines changed

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

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ where
1010

1111
import Cardano.Api (TxIn)
1212
import Cardano.Api.Experimental
13+
import Cardano.Api.Experimental.AnyScriptWitness
1314
import Cardano.Api.Experimental.Tx
1415
import Cardano.Api.Ledger qualified as L
1516

@@ -35,19 +36,19 @@ genAnyWitness =
3536

3637
genAnyPlutusScriptWitnessV1 :: Gen (AnyWitness era)
3738
genAnyPlutusScriptWitnessV1 =
38-
AnyPlutusScriptWitness <$> error "TODO" -- genPlutusScriptWitness L.SPlutusV1
39+
AnyPlutusScriptWitness <$> fmap AnyPlutusMintingScriptWitness (genPlutusScriptWitness L.SPlutusV1)
3940

4041
genAnyPlutusScriptWitnessV2 :: Gen (AnyWitness era)
4142
genAnyPlutusScriptWitnessV2 =
42-
AnyPlutusScriptWitness <$> error "TODO" -- genPlutusScriptWitness L.SPlutusV2
43+
AnyPlutusScriptWitness <$> fmap AnyPlutusMintingScriptWitness (genPlutusScriptWitness L.SPlutusV2)
4344

4445
genAnyPlutusScriptWitnessV3 :: Gen (AnyWitness era)
4546
genAnyPlutusScriptWitnessV3 =
46-
AnyPlutusScriptWitness <$> error "TODO" -- genPlutusScriptWitness L.SPlutusV3
47+
AnyPlutusScriptWitness <$> fmap AnyPlutusMintingScriptWitness (genPlutusScriptWitness L.SPlutusV3)
4748

4849
genAnyPlutusScriptWitnessV4 :: Gen (AnyWitness era)
4950
genAnyPlutusScriptWitnessV4 =
50-
AnyPlutusScriptWitness <$> error "TODO" -- genPlutusScriptWitness L.SPlutusV4
51+
AnyPlutusScriptWitness <$> fmap AnyPlutusMintingScriptWitness (genPlutusScriptWitness L.SPlutusV4)
5152

5253
genAnySimpleScriptWitness :: Gen (SimpleScriptOrReferenceInput era)
5354
genAnySimpleScriptWitness = SReferenceScript <$> genTxIn

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -157,6 +157,7 @@ import Cardano.Api hiding (txIns)
157157
import Cardano.Api qualified as Api
158158
import Cardano.Api.Byron qualified as Byron
159159
import Cardano.Api.Experimental qualified as Exp
160+
import Cardano.Api.Experimental.AnyScriptWitness
160161
import Cardano.Api.Ledger qualified as L
161162
import Cardano.Api.Parser.Text qualified as P
162163
import Cardano.Api.Tx qualified as A
@@ -1572,7 +1573,7 @@ genIndexedPlutusScriptWitness = do
15721573
Exp.IndexedPlutusScriptWitness
15731574
<$> genWitnessable
15741575
<*> genPlutusPurpose index witnessable
1575-
<*> error "TODO" -- genPlutusScriptWitness
1576+
<*> fmap (AnyPlutusSpendingScriptWitness . PlutusSpendingScriptWitnessV3) genPlutusScriptWitness
15761577

15771578
genPlutusPurpose
15781579
:: Word32

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

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -194,10 +194,6 @@ fromPlutusRunnable L.SPlutusV3 runnable =
194194
fromPlutusRunnable L.SPlutusV4 runnable =
195195
L.mkPlutusScript $ L.plutusFromRunnable runnable
196196

197-
-- getAnyPlutusScript (AnyPlutusSpendingScriptWitness (PlutusSpendingScriptWitnessV2 s)) = getPlutusScriptRunnable s
198-
-- getAnyPlutusScript (AnyPlutusSpendingScriptWitness (PlutusSpendingScriptWitnessV3 s)) = getPlutusScriptRunnable s
199-
-- getAnyPlutusScript (AnyPlutusSpendingScriptWitness (PlutusSpendingScriptWitnessV4 s)) = getPlutusScriptRunnable s
200-
201197
data AnyScriptWitness era where
202198
AnyScriptWitnessSimple :: SimpleScriptOrReferenceInput era -> AnyScriptWitness era
203199
AnyScriptWitnessPlutus :: AnyPlutusScriptWitness lang purpose era -> AnyScriptWitness era

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

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,6 @@ module Cardano.Api.Experimental.Plutus.Internal.ScriptWitness
2828
)
2929
where
3030

31-
import Cardano.Api.Era.Internal.Eon.AlonzoEraOnwards
32-
import Cardano.Api.Era.Internal.Eon.ShelleyBasedEra
3331
import Cardano.Api.Experimental.Plutus.Internal.Script
3432
import Cardano.Api.Ledger qualified as L
3533
import Cardano.Api.Plutus.Internal.Script (ExecutionUnits)

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

Lines changed: 76 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -44,9 +44,7 @@ import Cardano.Ledger.Alonzo.Scripts qualified as L
4444
import Cardano.Ledger.BaseTypes (Version)
4545
import Cardano.Ledger.Core qualified as L
4646
import Cardano.Ledger.Plutus.Language qualified as L
47-
import PlutusLedgerApi.V1.Data.Tx (ScriptTag (Cert))
4847

49-
import Data.Kind (Type)
5048
import Data.Text qualified as Text
5149
import Data.Typeable
5250

@@ -179,8 +177,8 @@ toNewPlutusScriptWitness eon w l (Old.PScript (Old.PlutusScriptSerialised script
179177
scriptRedeemer
180178
execUnits
181179
toNewPlutusScriptWitness _ w l (Old.PReferenceScript refInput) scriptRedeemer execUnits datum =
182-
return . AnyPlutusScriptWitness $
183-
mkReferencePlutusScriptWitness (toPlutusSLanguage l) refInput datum scriptRedeemer execUnits
180+
return $
181+
mkReferencePlutusScriptWitness w (toPlutusSLanguage l) refInput datum scriptRedeemer execUnits
184182

185183
type family ThingToPurpose thing where
186184
ThingToPurpose TxInItem = SpendingScript
@@ -272,13 +270,83 @@ mkPlutusScriptWitness eon w l plutusScriptRunnable d r e =
272270
)
273271

274272
mkReferencePlutusScriptWitness
275-
:: L.SLanguage plutuslang
273+
:: forall thing era plutuslang
274+
. Typeable plutuslang
275+
=> Witnessable thing (ShelleyLedgerEra era)
276+
-> L.SLanguage plutuslang
276277
-> TxIn
277-
-> PlutusScriptDatum plutuslang purpose
278+
-> PlutusScriptDatum plutuslang (ThingToPurpose thing)
278279
-> ScriptRedeemer
279280
-> ExecutionUnits
280-
-> AnyPlutusScriptWitness plutuslang purpose (ShelleyLedgerEra era)
281-
mkReferencePlutusScriptWitness l txIn d r e = undefined
281+
-> AnyWitness (ShelleyLedgerEra era)
282+
mkReferencePlutusScriptWitness w l txIn d r e =
283+
case w of
284+
WitTxIn{} ->
285+
let s
286+
:: L.SLanguage plutuslang
287+
-> PlutusScriptWitness plutuslang SpendingScript (ShelleyLedgerEra era)
288+
s lang = PlutusScriptWitness lang (PReferenceScript txIn) d r e
289+
in AnyPlutusScriptWitness $
290+
AnyPlutusSpendingScriptWitness $
291+
case l of
292+
L.SPlutusV1 ->
293+
PlutusSpendingScriptWitnessV1 (s l)
294+
L.SPlutusV2 ->
295+
PlutusSpendingScriptWitnessV2 (s l)
296+
L.SPlutusV3 ->
297+
PlutusSpendingScriptWitnessV3 (s l)
298+
L.SPlutusV4 ->
299+
PlutusSpendingScriptWitnessV4 (s l)
300+
WitTxCert{} ->
301+
AnyPlutusScriptWitness $
302+
AnyPlutusCertifyingScriptWitness
303+
( PlutusScriptWitness
304+
l
305+
(PReferenceScript txIn)
306+
d
307+
r
308+
e
309+
)
310+
WitMint{} ->
311+
AnyPlutusScriptWitness $
312+
AnyPlutusMintingScriptWitness
313+
( PlutusScriptWitness
314+
l
315+
(PReferenceScript txIn)
316+
d
317+
r
318+
e
319+
)
320+
WitWithdrawal{} ->
321+
AnyPlutusScriptWitness $
322+
AnyPlutusWithdrawingScriptWitness
323+
( PlutusScriptWitness
324+
l
325+
(PReferenceScript txIn)
326+
d
327+
r
328+
e
329+
)
330+
WitVote{} ->
331+
AnyPlutusScriptWitness $
332+
AnyPlutusVotingScriptWitness
333+
( PlutusScriptWitness
334+
l
335+
(PReferenceScript txIn)
336+
d
337+
r
338+
e
339+
)
340+
WitProposal{} ->
341+
AnyPlutusScriptWitness $
342+
AnyPlutusProposingScriptWitness
343+
( PlutusScriptWitness
344+
l
345+
(PReferenceScript txIn)
346+
d
347+
r
348+
e
349+
)
282350

283351
-- PlutusScriptWitness
284352
-- l

cardano-api/src/Cardano/Api/Experimental/Tx/Internal/AnyWitness.hs

Lines changed: 0 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@ import Cardano.Api.Ledger.Internal.Reexport qualified as L
2626
import Cardano.Api.Plutus.Internal.ScriptData
2727

2828
import Cardano.Ledger.Core qualified as L
29-
import Cardano.Ledger.Plutus.Language qualified as L
3029

3130
import Data.Type.Equality
3231

@@ -111,34 +110,6 @@ getAnyWitnessScript AnyKeyWitnessPlaceholder = Nothing
111110
getAnyWitnessScript ss@(AnySimpleScriptWitness{}) = getAnyWitnessSimpleScript ss
112111
getAnyWitnessScript ps@(AnyPlutusScriptWitness{}) = getAnyWitnessPlutusScript ps
113112

114-
-- It should be noted that 'PlutusRunnable' is constructed via deserialization. The deserialization
115-
-- instance lives in ledger and will fail for an invalid script language/era pairing. Therefore
116-
-- this function should never return 'Nothing'.
117-
fromPlutusRunnable
118-
:: L.AlonzoEraScript era
119-
=> L.SLanguage lang
120-
-> L.PlutusRunnable lang
121-
-> Maybe (L.PlutusScript era)
122-
fromPlutusRunnable L.SPlutusV1 runnable =
123-
L.mkPlutusScript $ L.plutusFromRunnable runnable
124-
fromPlutusRunnable L.SPlutusV2 runnable =
125-
L.mkPlutusScript $ L.plutusFromRunnable runnable
126-
fromPlutusRunnable L.SPlutusV3 runnable =
127-
L.mkPlutusScript $ L.plutusFromRunnable runnable
128-
fromPlutusRunnable L.SPlutusV4 runnable =
129-
L.mkPlutusScript $ L.plutusFromRunnable runnable
130-
131-
toAlonzoDatum
132-
:: L.Era era
133-
=> L.SLanguage lang
134-
-> PlutusScriptDatum lang purpose
135-
-> Maybe (L.Data era)
136-
toAlonzoDatum l d =
137-
let mHashableData = getPlutusDatum l d
138-
in case mHashableData of
139-
Just h -> Just $ toAlonzoData h
140-
Nothing -> Nothing
141-
142113
getPlutusDatum
143114
:: L.SLanguage lang -> PlutusScriptDatum lang purpose -> Maybe HashableScriptData
144115
getPlutusDatum L.SPlutusV1 (SpendingScriptDatum d) = Just d

0 commit comments

Comments
 (0)