Skip to content

Commit

Permalink
Add support for supplementary datums
Browse files Browse the repository at this point in the history
  • Loading branch information
Jimbo4350 committed Oct 21, 2024
1 parent 235cb3e commit 67a9191
Show file tree
Hide file tree
Showing 4 changed files with 38 additions and 0 deletions.
3 changes: 3 additions & 0 deletions cardano-cli/src/Cardano/CLI/EraBased/Commands/Transaction.hs
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,7 @@ data TransactionBuildRawCmdArgs era = TransactionBuildRawCmdArgs
, metadataSchema :: !TxMetadataJsonSchema
, scriptFiles :: ![ScriptFile]
-- ^ Auxiliary scripts
, supplementaryDatums :: ![ScriptDataOrFile]
, metadataFiles :: ![MetadataFile]
, mProtocolParamsFile :: !(Maybe ProtocolParamsFile)
, mUpdateProprosalFile :: !(Maybe (Featured ShelleyToBabbageEra era (Maybe UpdateProposalFile)))
Expand Down Expand Up @@ -124,6 +125,7 @@ data TransactionBuildCmdArgs era = TransactionBuildCmdArgs
, metadataSchema :: !TxMetadataJsonSchema
, scriptFiles :: ![ScriptFile]
-- ^ Auxiliary scripts
, supplementaryDatums :: ![ScriptDataOrFile]
, metadataFiles :: ![MetadataFile]
, mUpdateProposalFile :: !(Maybe (Featured ShelleyToBabbageEra era (Maybe UpdateProposalFile)))
, voteFiles :: ![(VoteFile In, Maybe (ScriptWitnessFiles WitCtxStake))]
Expand Down Expand Up @@ -174,6 +176,7 @@ data TransactionBuildEstimateCmdArgs era = TransactionBuildEstimateCmdArgs
, metadataSchema :: !TxMetadataJsonSchema
, scriptFiles :: ![ScriptFile]
-- ^ Auxiliary scripts
, supplementaryDatums :: ![ScriptDataOrFile]
, metadataFiles :: ![MetadataFile]
, mUpdateProposalFile :: !(Maybe (Featured ShelleyToBabbageEra era (Maybe UpdateProposalFile)))
, voteFiles :: ![(VoteFile In, Maybe (ScriptWitnessFiles WitCtxStake))]
Expand Down
3 changes: 3 additions & 0 deletions cardano-cli/src/Cardano/CLI/EraBased/Options/Transaction.hs
Original file line number Diff line number Diff line change
Expand Up @@ -193,6 +193,7 @@ pTransactionBuildCmd sbe envCli = do
Nothing
"Filepath of auxiliary script(s)"
)
<*> many (pScriptDataOrFile "supplementary-datum" "The supplementary datum." "The supplementary datum file.")
<*> many pMetadataFile
<*> pFeatured (toCardanoEra sbe) (optional pUpdateProposalFile)
<*> pVoteFiles sbe AutoBalance
Expand Down Expand Up @@ -255,6 +256,7 @@ pTransactionBuildEstimateCmd eon' _envCli = do
Nothing
"Filepath of auxiliary script(s)"
)
<*> many (pScriptDataOrFile "supplementary-datum" "The supplementary datum." "The supplementary datum file.")
<*> many pMetadataFile
<*> pFeatured (toCardanoEra sbe) (optional pUpdateProposalFile)
<*> pVoteFiles sbe ManualBalance
Expand Down Expand Up @@ -292,6 +294,7 @@ pTransactionBuildRaw era' =
<*> many (pWithdrawal era' ManualBalance)
<*> pTxMetadataJsonSchema
<*> many (pScriptFor "auxiliary-script-file" Nothing "Filepath of auxiliary script(s)")
<*> many (pScriptDataOrFile "supplementary-datum" "The supplementary datum." "The supplementary datum file.")
<*> many pMetadataFile
<*> optional pProtocolParamsFile
<*> pFeatured era' (optional pUpdateProposalFile)
Expand Down
26 changes: 26 additions & 0 deletions cardano-cli/src/Cardano/CLI/EraBased/Run/Transaction.hs
Original file line number Diff line number Diff line change
Expand Up @@ -124,6 +124,7 @@ runTransactionBuildCmd
, certificates
, withdrawals
, metadataSchema
, supplementaryDatums
, scriptFiles
, metadataFiles
, mUpdateProposalFile
Expand Down Expand Up @@ -168,6 +169,10 @@ runTransactionBuildCmd
firstExceptT TxCmdMetadataError . newExceptT $
readTxMetadata eon metadataSchema metadataFiles
valuesWithScriptWits <- readValueScriptWitnesses eon $ fromMaybe mempty mValue

txSupplementaryDatums <-
firstExceptT TxCmdScriptDataError $ readTxSupplementaryDatums supplementaryDatums

scripts <-
firstExceptT TxCmdScriptFileError $
mapM (readFileScriptInAnyLang . unFile) scriptFiles
Expand Down Expand Up @@ -255,6 +260,7 @@ runTransactionBuildCmd
withdrawalsAndMaybeScriptWits
requiredSigners
txAuxScripts
txSupplementaryDatums
txMetadata
mProp
mOverrideWitnesses
Expand Down Expand Up @@ -330,6 +336,7 @@ runTransactionBuildEstimateCmd -- TODO change type
, withdrawals
, metadataSchema
, scriptFiles
, supplementaryDatums
, metadataFiles
, mUpdateProposalFile
, voteFiles
Expand Down Expand Up @@ -365,6 +372,9 @@ runTransactionBuildEstimateCmd -- TODO change type
txAuxScripts <-
hoistEither $ first TxCmdAuxScriptsValidationError $ validateTxAuxScripts sbe scripts

txSupplementalDatums <-
firstExceptT TxCmdScriptDataError $ readTxSupplementaryDatums supplementaryDatums

txUpdateProposal <- case mUpdateProposalFile of
Just (Featured w (Just updateProposalFile)) ->
readTxUpdateProposal w updateProposalFile & firstExceptT TxCmdReadTextViewFileError
Expand Down Expand Up @@ -426,6 +436,7 @@ runTransactionBuildEstimateCmd -- TODO change type
requiredSigners
0
txAuxScripts
txSupplementalDatums
txMetadata
txUpdateProposal
votingProceduresAndMaybeScriptWits
Expand Down Expand Up @@ -570,6 +581,7 @@ runTransactionBuildRawCmd
, withdrawals
, metadataSchema
, scriptFiles
, supplementaryDatums
, metadataFiles
, mProtocolParamsFile
, mUpdateProprosalFile
Expand All @@ -596,6 +608,10 @@ runTransactionBuildRawCmd
scripts <-
firstExceptT TxCmdScriptFileError $
mapM (readFileScriptInAnyLang . unFile) scriptFiles

txSupplementaryDatums <-
firstExceptT TxCmdScriptDataError $ readTxSupplementaryDatums supplementaryDatums

txAuxScripts <-
hoistEither $ first TxCmdAuxScriptsValidationError $ validateTxAuxScripts eon scripts

Expand Down Expand Up @@ -663,6 +679,7 @@ runTransactionBuildRawCmd
withdrawalsAndMaybeScriptWits
requiredSigners
txAuxScripts
txSupplementaryDatums
txMetadata
mLedgerPParams
txUpdateProposal
Expand Down Expand Up @@ -704,6 +721,7 @@ runTxBuildRaw
-> [Hash PaymentKey]
-- ^ Required signers
-> TxAuxScripts era
-> TxSupplementalDatums era
-> TxMetadataInEra era
-> Maybe (LedgerProtocolParameters era)
-> TxUpdateProposal era
Expand All @@ -728,6 +746,7 @@ runTxBuildRaw
withdrawals
reqSigners
txAuxScripts
txSupplementalDatums
txMetadata
mpparams
txUpdateProposal
Expand All @@ -753,6 +772,7 @@ runTxBuildRaw
reqSigners
fee
txAuxScripts
txSupplementalDatums
txMetadata
txUpdateProposal
votingProcedures
Expand Down Expand Up @@ -793,6 +813,7 @@ constructTxBodyContent
-> Lovelace
-- ^ Tx fee
-> TxAuxScripts era
-> TxSupplementalDatums era
-> TxMetadataInEra era
-> TxUpdateProposal era
-> [(VotingProcedures era, Maybe (ScriptWitness WitCtxStake era))]
Expand Down Expand Up @@ -820,6 +841,7 @@ constructTxBodyContent
reqSigners
fee
txAuxScripts
txSupplementalDatums
txMetadata
txUpdateProposal
votingProcedures
Expand Down Expand Up @@ -879,6 +901,7 @@ constructTxBodyContent
& setTxValidityLowerBound validatedLowerBound
& setTxValidityUpperBound mUpperBound
& setTxMetadata txMetadata
& setTxSupplementalDatums txSupplementalDatums
& setTxAuxScripts txAuxScripts
& setTxExtraKeyWits validatedReqSigners
& setTxProtocolParams (BuildTxWith $ LedgerProtocolParameters <$> mPparams)
Expand Down Expand Up @@ -934,6 +957,7 @@ runTxBuild
-> [Hash PaymentKey]
-- ^ Required signers
-> TxAuxScripts era
-> TxSupplementalDatums era
-> TxMetadataInEra era
-> TxUpdateProposal era
-> Maybe Word
Expand Down Expand Up @@ -961,6 +985,7 @@ runTxBuild
withdrawals
reqSigners
txAuxScripts
txSupplementaryData
txMetadata
txUpdateProposal
mOverrideWits
Expand Down Expand Up @@ -1033,6 +1058,7 @@ runTxBuild
reqSigners
0
txAuxScripts
txSupplementaryData
txMetadata
txUpdateProposal
votingProcedures
Expand Down
6 changes: 6 additions & 0 deletions cardano-cli/src/Cardano/CLI/Read.hs
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ module Cardano.CLI.Read
, ScriptDataError (..)
, readScriptDatumOrFile
, readScriptRedeemerOrFile
, readTxSupplementaryDatums
, renderScriptDataError

-- * Tx
Expand Down Expand Up @@ -490,6 +491,11 @@ readScriptDataOrFile (ScriptDataCborFile fp) = do
getScriptData hSd
return hSd

readTxSupplementaryDatums :: [ScriptDataOrFile] -> ExceptT ScriptDataError IO (TxSupplementalDatums era)
readTxSupplementaryDatums supplementaryDatums =
TxSupplementalDatums <$> mapM readScriptDataOrFile supplementaryDatums


readVerificationKeyOrHashOrFileOrScript
:: MonadIOTransError (Either (FileError ScriptDecodeError) (FileError InputDecodeError)) t m
=> Key keyrole
Expand Down

0 comments on commit 67a9191

Please sign in to comment.