Skip to content

Commit 1992c85

Browse files
committed
Fix PlutusV4 script handling and scrambled ToPlutusScriptPurpose type family
1 parent 3423816 commit 1992c85

3 files changed

Lines changed: 15 additions & 19 deletions

File tree

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

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -75,11 +75,11 @@ toAnyWitness eon (witnessable, BuildTxWith (Old.ScriptWitness _ oldApiPlutusScri
7575

7676
type family ToPlutusScriptPurpose witnessable = (purpose :: PlutusScriptPurpose) | purpose -> witnessable where
7777
ToPlutusScriptPurpose TxInItem = SpendingScript
78-
ToPlutusScriptPurpose CertItem = MintingScript
79-
ToPlutusScriptPurpose MintItem = CertifyingScript
78+
ToPlutusScriptPurpose CertItem = CertifyingScript
79+
ToPlutusScriptPurpose MintItem = MintingScript
8080
ToPlutusScriptPurpose WithdrawalItem = WithdrawingScript
81-
ToPlutusScriptPurpose VoterItem = ProposingScript
82-
ToPlutusScriptPurpose ProposalItem = VotingScript
81+
ToPlutusScriptPurpose VoterItem = VotingScript
82+
ToPlutusScriptPurpose ProposalItem = ProposingScript
8383

8484
convertToNewScriptWitness
8585
:: AlonzoEraOnwards era

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ getPlutusDatum
125125
getPlutusDatum L.SPlutusV1 (SpendingScriptDatum d) = Just d
126126
getPlutusDatum L.SPlutusV2 (SpendingScriptDatum d) = Just d
127127
getPlutusDatum L.SPlutusV3 (SpendingScriptDatum d) = d
128-
getPlutusDatum L.SPlutusV4 (SpendingScriptDatum _d) = error "TODO Dijkstra: getPlutusDatum: era not supported"
128+
getPlutusDatum L.SPlutusV4 (SpendingScriptDatum d) = d
129129
getPlutusDatum _ InlineDatum = Nothing
130130
getPlutusDatum _ NoScriptDatum = Nothing
131131

cardano-api/src/Cardano/Api/Plutus/Internal/Script.hs

Lines changed: 10 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -385,7 +385,7 @@ fromAlonzoLanguage :: Plutus.Language -> AnyPlutusScriptVersion
385385
fromAlonzoLanguage Plutus.PlutusV1 = AnyPlutusScriptVersion PlutusScriptV1
386386
fromAlonzoLanguage Plutus.PlutusV2 = AnyPlutusScriptVersion PlutusScriptV2
387387
fromAlonzoLanguage Plutus.PlutusV3 = AnyPlutusScriptVersion PlutusScriptV3
388-
fromAlonzoLanguage Plutus.PlutusV4 = AnyPlutusScriptVersion PlutusScriptV3
388+
fromAlonzoLanguage Plutus.PlutusV4 = AnyPlutusScriptVersion PlutusScriptV4
389389

390390
class HasTypeProxy lang => IsScriptLanguage lang where
391391
scriptLanguage :: ScriptLanguage lang
@@ -1294,20 +1294,16 @@ toShelleyScript
12941294
Plutus.PlutusBinary script
12951295
toShelleyScript
12961296
( ScriptInEra
1297-
_langInEra
1297+
langInEra
12981298
( PlutusScript
12991299
PlutusScriptV4
1300-
(PlutusScriptSerialised _script)
1300+
(PlutusScriptSerialised script)
13011301
)
1302-
) = error "toShelleyScript: PlutusV4 not implemented yet."
1303-
1304-
-- TODO: Ledger needs to introduce a plutusV4 constructor
1305-
-- case langInEra of
1306-
-- PlutusScriptV4InConway ->
1307-
-- Alonzo.PlutusScript . Conway.ConwayPlutusV3 . Plutus.Plutus $ Plutus.PlutusBinary script
1308-
-- PlutusScriptV4InDijkstra ->
1309-
-- Alonzo.PlutusScript . Dijkstra.MkDijkstraPlutusScript . Conway.ConwayPlutusV3 . Plutus.Plutus $
1310-
-- Plutus.PlutusBinary script
1302+
) =
1303+
case langInEra of
1304+
PlutusScriptV4InDijkstra ->
1305+
Alonzo.PlutusScript . Dijkstra.DijkstraPlutusV4 . Plutus.Plutus $
1306+
Plutus.PlutusBinary script
13111307

13121308
fromShelleyBasedScript
13131309
:: ShelleyBasedEra era
@@ -1391,8 +1387,8 @@ fromShelleyBasedScript sbe script =
13911387
$ PlutusScriptSerialised s
13921388
Dijkstra.DijkstraPlutusV4 (PlutusScriptBinary s) ->
13931389
ScriptInEra
1394-
PlutusScriptV3InDijkstra
1395-
. PlutusScript PlutusScriptV3
1390+
PlutusScriptV4InDijkstra
1391+
. PlutusScript PlutusScriptV4
13961392
$ PlutusScriptSerialised s
13971393
Alonzo.NativeScript s ->
13981394
ScriptInEra SimpleScriptInDijkstra

0 commit comments

Comments
 (0)