Skip to content

Commit

Permalink
Propagate ScriptDatumOrFile change
Browse files Browse the repository at this point in the history
  • Loading branch information
Jimbo4350 authored and palas committed Jul 15, 2024
1 parent b52ee7c commit 722bd33
Show file tree
Hide file tree
Showing 4 changed files with 66 additions and 23 deletions.
74 changes: 58 additions & 16 deletions cardano-cli/src/Cardano/CLI/EraBased/Options/Common.hs
Original file line number Diff line number Diff line change
Expand Up @@ -1243,12 +1243,37 @@ pScriptRedeemerOrFile scriptFlagPrefix =
"The script redeemer value."
"The script redeemer file."

pScriptDatumOrFileCip69 :: String -> WitCtx witctx -> Parser (ScriptDatumOrFile witctx)
pScriptDatumOrFileCip69 scriptFlagPrefix witctx =
case witctx of
WitCtxTxIn ->
asum
[ ScriptDatumOrFileForTxIn
<$> optional
( pScriptDataOrFile
(scriptFlagPrefix ++ "-datum")
"The script datum."
"The script datum file."
)
, pInlineDatumPresent
]
WitCtxMint -> pure NoScriptDatumOrFileForMint
WitCtxStake -> pure NoScriptDatumOrFileForStake
where
pInlineDatumPresent :: Parser (ScriptDatumOrFile WitCtxTxIn)
pInlineDatumPresent =
flag' InlineDatumPresentAtTxIn $
mconcat
[ long (scriptFlagPrefix ++ "-inline-datum-present")
, Opt.help "Inline datum present at transaction input."
]

pScriptDatumOrFile :: String -> WitCtx witctx -> Parser (ScriptDatumOrFile witctx)
pScriptDatumOrFile scriptFlagPrefix witctx =
case witctx of
WitCtxTxIn ->
asum
[ ScriptDatumOrFileForTxIn
[ ScriptDatumOrFileForTxIn . Just
<$> pScriptDataOrFile
(scriptFlagPrefix ++ "-datum")
"The script datum."
Expand Down Expand Up @@ -2141,9 +2166,10 @@ pTxSubmitFile =
]

pTxIn
:: BalanceTxExecUnits
:: ShelleyBasedEra era
-> BalanceTxExecUnits
-> Parser (TxIn, Maybe (ScriptWitnessFiles WitCtxTxIn))
pTxIn balance =
pTxIn sbe balance =
(,)
<$> Opt.option
(readerFromParsecParser parseTxIn)
Expand All @@ -2152,9 +2178,9 @@ pTxIn balance =
<> Opt.help "TxId#TxIx"
)
<*> optional
( pPlutusReferenceScriptWitness balance
( pPlutusReferenceScriptWitness sbe balance
<|> pSimpleReferenceSpendingScriptWitess
<|> pEmbeddedPlutusScriptWitness
<|> pEmbeddedPlutusScriptWitness -- sbe
)
where
pSimpleReferenceSpendingScriptWitess :: Parser (ScriptWitnessFiles WitCtxTxIn)
Expand All @@ -2169,17 +2195,33 @@ pTxIn balance =
let simpleLang = AnyScriptLanguage SimpleScriptLanguage
in SimpleReferenceScriptWitnessFiles refTxIn simpleLang Nothing

pPlutusReferenceScriptWitness :: BalanceTxExecUnits -> Parser (ScriptWitnessFiles WitCtxTxIn)
pPlutusReferenceScriptWitness autoBalanceExecUnits =
createPlutusReferenceScriptWitnessFiles
<$> pReferenceTxIn "spending-" "plutus"
<*> pPlutusScriptLanguage "spending-"
<*> pScriptDatumOrFile "spending-reference-tx-in" WitCtxTxIn
<*> pScriptRedeemerOrFile "spending-reference-tx-in"
<*> ( case autoBalanceExecUnits of
AutoBalance -> pure (ExecutionUnits 0 0)
ManualBalance -> pExecutionUnits "spending-reference-tx-in"
)
pPlutusReferenceScriptWitness
:: ShelleyBasedEra era -> BalanceTxExecUnits -> Parser (ScriptWitnessFiles WitCtxTxIn)
pPlutusReferenceScriptWitness sbe' autoBalanceExecUnits =
caseShelleyToBabbageOrConwayEraOnwards
( const $
createPlutusReferenceScriptWitnessFiles
<$> pReferenceTxIn "spending-" "plutus"
<*> pPlutusScriptLanguage "spending-"
<*> pScriptDatumOrFile "spending-reference-tx-in" WitCtxTxIn
<*> pScriptRedeemerOrFile "spending-reference-tx-in"
<*> ( case autoBalanceExecUnits of
AutoBalance -> pure (ExecutionUnits 0 0)
ManualBalance -> pExecutionUnits "spending-reference-tx-in"
)
)
( const $
createPlutusReferenceScriptWitnessFiles
<$> pReferenceTxIn "spending-" "plutus"
<*> pPlutusScriptLanguage "spending-"
<*> pScriptDatumOrFileCip69 "spending-reference-tx-in" WitCtxTxIn
<*> pScriptRedeemerOrFile "spending-reference-tx-in"
<*> ( case autoBalanceExecUnits of
AutoBalance -> pure (ExecutionUnits 0 0)
ManualBalance -> pExecutionUnits "spending-reference-tx-in"
)
)
sbe'
where
createPlutusReferenceScriptWitnessFiles
:: TxIn
Expand Down
6 changes: 3 additions & 3 deletions cardano-cli/src/Cardano/CLI/EraBased/Options/Transaction.hs
Original file line number Diff line number Diff line change
Expand Up @@ -173,7 +173,7 @@ pTransactionBuildCmd era envCli = do
<*> pNetworkId envCli
<*> optional pScriptValidity
<*> optional pWitnessOverride
<*> some (pTxIn AutoBalance)
<*> some (pTxIn sbe AutoBalance)
<*> many pReadOnlyReferenceTxIn
<*> many pRequiredSigner
<*> many pTxInCollateral
Expand Down Expand Up @@ -232,7 +232,7 @@ pTransactionBuildEstimateCmd era _envCli = do
<*> optional pNumberOfByronKeyWitnesses
<*> pProtocolParamsFile
<*> pTotalUTxOValue
<*> some (pTxIn ManualBalance)
<*> some (pTxIn sbe ManualBalance)
<*> many pReadOnlyReferenceTxIn
<*> many pRequiredSigner
<*> many pTxInCollateral
Expand Down Expand Up @@ -275,7 +275,7 @@ pTransactionBuildRaw era =
fmap TransactionBuildRawCmd $
TransactionBuildRawCmdArgs era
<$> optional pScriptValidity
<*> some (pTxIn ManualBalance)
<*> some (pTxIn era ManualBalance)
<*> many pReadOnlyReferenceTxIn
<*> many pTxInCollateral
<*> optional pReturnCollateral
Expand Down
4 changes: 2 additions & 2 deletions cardano-cli/src/Cardano/CLI/Legacy/Options.hs
Original file line number Diff line number Diff line change
Expand Up @@ -353,7 +353,7 @@ pTransaction envCli =
<*> pNetworkId envCli
<*> optional pScriptValidity
<*> optional pWitnessOverride
<*> some (pTxIn AutoBalance)
<*> some (pTxIn ShelleyBasedEraConway AutoBalance)
<*> many pReadOnlyReferenceTxIn
<*> many pRequiredSigner
<*> many pTxInCollateral
Expand Down Expand Up @@ -395,7 +395,7 @@ pTransaction envCli =
TransactionBuildRawCmd
<$> pLegacyCardanoEra envCli
<*> optional pScriptValidity
<*> some (pTxIn ManualBalance)
<*> some (pTxIn ShelleyBasedEraConway ManualBalance)
<*> many pReadOnlyReferenceTxIn
<*> many pTxInCollateral
<*> optional pReturnCollateral
Expand Down
5 changes: 3 additions & 2 deletions cardano-cli/src/Cardano/CLI/Read.hs
Original file line number Diff line number Diff line change
Expand Up @@ -450,8 +450,9 @@ renderScriptDataError = \case
readScriptDatumOrFile
:: ScriptDatumOrFile witctx
-> ExceptT ScriptDataError IO (ScriptDatum witctx)
readScriptDatumOrFile (ScriptDatumOrFileForTxIn df) =
ScriptDatumForTxIn
readScriptDatumOrFile (ScriptDatumOrFileForTxIn Nothing) = pure $ ScriptDatumForTxIn Nothing
readScriptDatumOrFile (ScriptDatumOrFileForTxIn (Just df)) =
ScriptDatumForTxIn . Just
<$> readScriptDataOrFile df
readScriptDatumOrFile InlineDatumPresentAtTxIn = pure InlineScriptDatum
readScriptDatumOrFile NoScriptDatumOrFileForMint = pure NoScriptDatumForMint
Expand Down

0 comments on commit 722bd33

Please sign in to comment.