@@ -34,6 +34,7 @@ import Cardano.CLI.Type.Governance
3434import Cardano.CLI.Type.Key
3535import Cardano.CLI.Type.Key.VerificationKey
3636import Cardano.Ledger.BaseTypes (NonZero , nonZero )
37+ import Cardano.Ledger.Plutus.Language qualified as L
3738
3839import Control.Monad (void , when )
3940import Data.Aeson qualified as Aeson
@@ -1125,7 +1126,7 @@ pVoteReferencePlutusScriptWitness prefix autoBalanceExecUnits =
11251126 let appendedPrefix = prefix ++ " -"
11261127 in Voting. createPlutusReferenceScriptFromCliArgs
11271128 <$> pReferenceTxIn appendedPrefix " plutus"
1128- <*> plutusP appendedPrefix PlutusScriptV3 " v3"
1129+ <*> plutusSLanguageP appendedPrefix L. SPlutusV3 " v3"
11291130 <*> pScriptRedeemerOrFile (appendedPrefix ++ " reference-tx-in" )
11301131 <*> ( case autoBalanceExecUnits of
11311132 AutoBalance -> pure (ExecutionUnits 0 0 )
@@ -1183,7 +1184,7 @@ pProposalReferencePlutusScriptWitness prefix autoBalanceExecUnits =
11831184 let appendedPrefix = prefix ++ " -"
11841185 in Proposing. createPlutusReferenceScriptFromCliArgs
11851186 <$> pReferenceTxIn appendedPrefix " plutus"
1186- <*> plutusP appendedPrefix PlutusScriptV3 " v3"
1187+ <*> plutusSLanguageP appendedPrefix L. SPlutusV3 " v3"
11871188 <*> pScriptRedeemerOrFile (appendedPrefix ++ " reference-tx-in" )
11881189 <*> ( case autoBalanceExecUnits of
11891190 AutoBalance -> pure (ExecutionUnits 0 0 )
@@ -1383,7 +1384,7 @@ pCertificateReferencePlutusScriptWitness prefix autoBalanceExecUnits =
13831384 let appendedPrefix = prefix ++ " -"
13841385 in Certifying. createPlutusReferenceScriptFromCliArgs
13851386 <$> pReferenceTxIn appendedPrefix " plutus"
1386- <*> pPlutusScriptLanguage appendedPrefix
1387+ <*> pAnyPlutusSLanguage appendedPrefix
13871388 <*> pScriptRedeemerOrFile (appendedPrefix ++ " reference-tx-in" )
13881389 <*> ( case autoBalanceExecUnits of
13891390 AutoBalance -> pure (ExecutionUnits 0 0 )
@@ -1498,7 +1499,7 @@ pWithdrawalReferencePlutusScriptWitness prefix autoBalanceExecUnits =
14981499 let appendedPrefix = prefix ++ " -"
14991500 in Withdrawal. createPlutusReferenceScriptFromCliArgs
15001501 <$> pReferenceTxIn appendedPrefix " plutus"
1501- <*> pPlutusScriptLanguage appendedPrefix
1502+ <*> pAnyPlutusSLanguage appendedPrefix
15021503 <*> pScriptRedeemerOrFile (appendedPrefix ++ " reference-tx-in" )
15031504 <*> ( case autoBalanceExecUnits of
15041505 AutoBalance -> pure (ExecutionUnits 0 0 )
@@ -1508,6 +1509,20 @@ pWithdrawalReferencePlutusScriptWitness prefix autoBalanceExecUnits =
15081509pPlutusScriptLanguage :: String -> Parser AnyPlutusScriptVersion
15091510pPlutusScriptLanguage prefix = plutusP prefix PlutusScriptV2 " v2" <|> plutusP prefix PlutusScriptV3 " v3"
15101511
1512+ pAnyPlutusSLanguage :: String -> Parser AnySLanguage
1513+ pAnyPlutusSLanguage prefix =
1514+ plutusSLanguageP prefix L. SPlutusV2 " v2" <|> plutusSLanguageP prefix L. SPlutusV3 " v3"
1515+
1516+ plutusSLanguageP
1517+ :: L. PlutusLanguage lang
1518+ => String -> L. SLanguage lang -> String -> Parser AnySLanguage
1519+ plutusSLanguageP prefix plutusVersion versionString =
1520+ Opt. flag'
1521+ (AnySLanguage plutusVersion)
1522+ ( Opt. long (prefix <> " plutus-script-" <> versionString)
1523+ <> Opt. help (" Specify a plutus script " <> versionString <> " reference script." )
1524+ )
1525+
15111526plutusP
15121527 :: IsPlutusScriptLanguage lang
15131528 => String -> PlutusScriptVersion lang -> String -> Parser AnyPlutusScriptVersion
@@ -1955,7 +1970,7 @@ pTxIn balance =
19551970 pPlutusReferenceSpendScriptWitness autoBalanceExecUnits =
19561971 PlutusSpend. createPlutusReferenceScriptFromCliArgs
19571972 <$> pReferenceTxIn " spending-" " plutus"
1958- <*> pPlutusScriptLanguage " spending-"
1973+ <*> pAnyPlutusSLanguage " spending-"
19591974 <*> pScriptDatumOrFileSpendingCip69 " spending-reference-tx-in"
19601975 <*> pScriptRedeemerOrFile " spending-reference-tx-in"
19611976 <*> ( case autoBalanceExecUnits of
@@ -2167,7 +2182,7 @@ pMintMultiAsset balanceExecUnits =
21672182 pPlutusMintReferenceScriptWitnessFiles autoBalanceExecUnits =
21682183 createPlutusReferenceScriptFromCliArgs
21692184 <$> pReferenceTxIn " mint-" " plutus"
2170- <*> pPlutusScriptLanguage " mint-"
2185+ <*> pAnyPlutusSLanguage " mint-"
21712186 <*> pScriptRedeemerOrFile " mint-reference-tx-in"
21722187 <*> ( case autoBalanceExecUnits of
21732188 AutoBalance -> pure (ExecutionUnits 0 0 )
0 commit comments