diff --git a/cardano-cli/src/Cardano/CLI/EraBased/Common/Option.hs b/cardano-cli/src/Cardano/CLI/EraBased/Common/Option.hs index 30585f6a4c..fd333fe8b5 100644 --- a/cardano-cli/src/Cardano/CLI/EraBased/Common/Option.hs +++ b/cardano-cli/src/Cardano/CLI/EraBased/Common/Option.hs @@ -24,6 +24,7 @@ import Cardano.CLI.EraBased.Script.Type import Cardano.CLI.EraBased.Script.Type qualified as PlutusSpend import Cardano.CLI.EraBased.Script.Vote.Type qualified as Voting import Cardano.CLI.EraBased.Script.Withdrawal.Type qualified as Withdrawal +import Cardano.CLI.EraBased.Transaction.Command (IncludeCurrentTreasuryValue (..)) import Cardano.CLI.Option.Flag import Cardano.CLI.Option.Flag.Type qualified as Z import Cardano.CLI.Orphan () @@ -1190,21 +1191,28 @@ pProposalReferencePlutusScriptWitness prefix autoBalanceExecUnits = ManualBalance -> pExecutionUnits $ appendedPrefix ++ "reference-tx-in" ) -pCurrentTreasuryValueAndDonation - :: Parser (Maybe (TxCurrentTreasuryValue, TxTreasuryDonation)) -pCurrentTreasuryValueAndDonation = - optional ((,) <$> pCurrentTreasuryValue' <*> pTreasuryDonation') +pCurrentTreasuryValue :: Parser (Maybe TxCurrentTreasuryValue) +pCurrentTreasuryValue = + optional $ + TxCurrentTreasuryValue + <$> ( Opt.option (readerFromParsecParser parseLovelace) $ + mconcat + [ Opt.long "current-treasury-value" + , Opt.metavar "LOVELACE" + , Opt.help "The current treasury value." + ] + ) -pCurrentTreasuryValue' :: Parser TxCurrentTreasuryValue -pCurrentTreasuryValue' = - TxCurrentTreasuryValue - <$> ( Opt.option (readerFromParsecParser parseLovelace) $ - mconcat - [ Opt.long "current-treasury-value" - , Opt.metavar "LOVELACE" - , Opt.help "The current treasury value." - ] - ) +pIncludeCurrentTreasuryValue :: Parser IncludeCurrentTreasuryValue +pIncludeCurrentTreasuryValue = + asum + [ Opt.flag' IncludeCurrentTreasuryValue $ + mconcat + [ Opt.long "include-current-treasury-value" + , Opt.help "Include the current treasury value in the transaction." + ] + , pure ExcludeCurrentTreasuryValue + ] pTreasuryDonation :: Parser (Maybe TxTreasuryDonation) pTreasuryDonation = diff --git a/cardano-cli/src/Cardano/CLI/EraBased/Transaction/Command.hs b/cardano-cli/src/Cardano/CLI/EraBased/Transaction/Command.hs index 21550f0057..c0d24f113e 100644 --- a/cardano-cli/src/Cardano/CLI/EraBased/Transaction/Command.hs +++ b/cardano-cli/src/Cardano/CLI/EraBased/Transaction/Command.hs @@ -24,6 +24,7 @@ module Cardano.CLI.EraBased.Transaction.Command , TransactionViewCmdArgs (..) , TransactionWitnessCmdArgs (..) , TxCborFormat (..) + , IncludeCurrentTreasuryValue (..) , renderTransactionCmds ) where @@ -92,7 +93,8 @@ data TransactionBuildRawCmdArgs era = TransactionBuildRawCmdArgs , mUpdateProprosalFile :: !(Maybe (Featured ShelleyToBabbageEra era (Maybe UpdateProposalFile))) , voteFiles :: ![(VoteFile In, Maybe (ScriptRequirements Exp.VoterItem))] , proposalFiles :: ![(ProposalFile In, Maybe (ScriptRequirements Exp.ProposalItem))] - , currentTreasuryValueAndDonation :: !(Maybe (TxCurrentTreasuryValue, TxTreasuryDonation)) + , mCurrentTreasuryValue :: !(Maybe TxCurrentTreasuryValue) + , mTreasuryDonation :: !(Maybe TxTreasuryDonation) , isCborOutCanonical :: !TxCborFormat , txBodyOutFile :: !(TxBodyFile Out) } @@ -107,6 +109,22 @@ data TxCborFormat | TxCborNotCanonical deriving (Eq, Show) +-- | Whether to include the current treasury value in the transaction body. +-- +-- If included, the current treasury value will be obtained from the node. +-- +-- The current treasury value serves as a precondition to executing Plutus +-- scripts that access the value of the treasury. +-- +-- See: https://intersectmbo.github.io/formal-ledger-specifications/site/Ledger.Conway.Specification.Transaction.html#sec:transactions +-- +-- If a transaction contains any votes, proposals, a treasury donation or +-- asserts the treasury amount, it is only allowed to contain Plutus V3 scripts. +-- +-- See: https://intersectmbo.github.io/formal-ledger-specifications/site/Ledger.Conway.Specification.Utxow.html#sec:witnessing-functions +data IncludeCurrentTreasuryValue = IncludeCurrentTreasuryValue | ExcludeCurrentTreasuryValue + deriving (Eq, Show) + -- | Like 'TransactionBuildRaw' but without the fee, and with a change output. data TransactionBuildCmdArgs era = TransactionBuildCmdArgs { currentEra :: !(Exp.Era era) @@ -148,7 +166,8 @@ data TransactionBuildCmdArgs era = TransactionBuildCmdArgs , mUpdateProposalFile :: !(Maybe (Featured ShelleyToBabbageEra era (Maybe UpdateProposalFile))) , voteFiles :: ![(VoteFile In, Maybe (ScriptRequirements Exp.VoterItem))] , proposalFiles :: ![(ProposalFile In, Maybe (ScriptRequirements Exp.ProposalItem))] - , treasuryDonation :: !(Maybe TxTreasuryDonation) + , includeCurrentTreasuryValue :: !IncludeCurrentTreasuryValue + , mTreasuryDonation :: !(Maybe TxTreasuryDonation) , isCborOutCanonical :: !TxCborFormat , buildOutputOptions :: !TxBuildOutputOptions } @@ -198,7 +217,8 @@ data TransactionBuildEstimateCmdArgs era = TransactionBuildEstimateCmdArgs , metadataFiles :: ![MetadataFile] , voteFiles :: ![(VoteFile In, Maybe (ScriptRequirements Exp.VoterItem))] , proposalFiles :: ![(ProposalFile In, Maybe (ScriptRequirements Exp.ProposalItem))] - , currentTreasuryValueAndDonation :: !(Maybe (TxCurrentTreasuryValue, TxTreasuryDonation)) + , currentTreasuryValue :: !(Maybe TxCurrentTreasuryValue) + , treasuryDonation :: !(Maybe TxTreasuryDonation) , isCborOutCanonical :: !TxCborFormat , txBodyOutFile :: !(TxBodyFile Out) } diff --git a/cardano-cli/src/Cardano/CLI/EraBased/Transaction/Option.hs b/cardano-cli/src/Cardano/CLI/EraBased/Transaction/Option.hs index 365971af7e..b3e327ad61 100644 --- a/cardano-cli/src/Cardano/CLI/EraBased/Transaction/Option.hs +++ b/cardano-cli/src/Cardano/CLI/EraBased/Transaction/Option.hs @@ -222,6 +222,7 @@ pTransactionBuildCmd envCli = do <*> pFeatured era' (optional pUpdateProposalFile) <*> pVoteFiles AutoBalance <*> pProposalFiles AutoBalance + <*> pIncludeCurrentTreasuryValue <*> pTreasuryDonation <*> pIsCborOutCanonical <*> pTxBuildOutputOptions @@ -285,7 +286,8 @@ pTransactionBuildEstimateCmd _envCli = do <*> many pMetadataFile <*> pVoteFiles ManualBalance <*> pProposalFiles ManualBalance - <*> pCurrentTreasuryValueAndDonation + <*> pCurrentTreasuryValue + <*> pTreasuryDonation <*> pIsCborOutCanonical <*> pTxBodyFileOut @@ -324,7 +326,8 @@ pTransactionBuildRaw = <*> pFeatured Exp.useEra (optional pUpdateProposalFile) <*> pVoteFiles ManualBalance <*> pProposalFiles ManualBalance - <*> pCurrentTreasuryValueAndDonation + <*> pCurrentTreasuryValue + <*> pTreasuryDonation <*> pIsCborOutCanonical <*> pTxBodyFileOut diff --git a/cardano-cli/src/Cardano/CLI/EraBased/Transaction/Run.hs b/cardano-cli/src/Cardano/CLI/EraBased/Transaction/Run.hs index 57f4fd9b5a..e6ec8993db 100644 --- a/cardano-cli/src/Cardano/CLI/EraBased/Transaction/Run.hs +++ b/cardano-cli/src/Cardano/CLI/EraBased/Transaction/Run.hs @@ -157,7 +157,8 @@ runTransactionBuildCmd , mUpdateProposalFile , voteFiles , proposalFiles - , treasuryDonation -- Maybe TxTreasuryDonation + , includeCurrentTreasuryValue + , mTreasuryDonation , isCborOutCanonical , buildOutputOptions } = do @@ -288,11 +289,9 @@ runTransactionBuildCmd ) & fromEitherCIOCli - let currentTreasuryValueAndDonation = - case (treasuryDonation, unFeatured <$> featuredCurrentTreasuryValueM) of - (Nothing, _) -> Nothing -- We shouldn't specify the treasury value when no donation is being done - (Just _td, Nothing) -> Nothing -- TODO: Current treasury value couldn't be obtained but is required: we should fail suggesting that the node's version is too old - (Just td, Just ctv) -> Just (ctv, td) + let mCurrenTreasuryValue = case includeCurrentTreasuryValue of + IncludeCurrentTreasuryValue -> unFeatured <$> featuredCurrentTreasuryValueM + ExcludeCurrentTreasuryValue -> Nothing -- We need to construct the txBodycontent outside of runTxBuild BalancedTxBody txBodyContent balancedTxBody _ _ <- @@ -320,7 +319,8 @@ runTransactionBuildCmd mOverrideWitnesses votingProceduresAndMaybeScriptWits proposals - currentTreasuryValueAndDonation + mCurrenTreasuryValue + mTreasuryDonation -- TODO: Calculating the script cost should live as a different command. -- Why? Because then we can simply read a txbody and figure out @@ -407,7 +407,8 @@ runTransactionBuildEstimateCmd -- TODO change type , proposalFiles , plutusCollateral , totalReferenceScriptSize - , currentTreasuryValueAndDonation + , currentTreasuryValue + , treasuryDonation , isCborOutCanonical , txBodyOutFile } = do @@ -494,7 +495,8 @@ runTransactionBuildEstimateCmd -- TODO change type TxUpdateProposalNone votingProceduresAndMaybeScriptWits proposals - currentTreasuryValueAndDonation + currentTreasuryValue + treasuryDonation let stakeCredentialsToDeregisterMap = fromList $ catMaybes [getStakeDeregistrationInfo cert | (cert, _) <- certsAndMaybeScriptWits] drepsToDeregisterMap = fromList $ @@ -612,7 +614,8 @@ runTransactionBuildRawCmd , mUpdateProprosalFile , voteFiles , proposalFiles - , currentTreasuryValueAndDonation + , mCurrentTreasuryValue + , mTreasuryDonation , isCborOutCanonical , txBodyOutFile } = Exp.obtainCommonConstraints eon $ do @@ -698,7 +701,8 @@ runTransactionBuildRawCmd txUpdateProposal votingProceduresAndMaybeScriptWits proposals - currentTreasuryValueAndDonation + mCurrentTreasuryValue + mTreasuryDonation let Exp.SignedTx tx = Exp.signTx eon [] [] txBody -- TODO: Create equivalent write text envelope functions for @@ -743,7 +747,8 @@ runTxBuildRaw -> TxUpdateProposal era -> [(VotingProcedures era, Maybe (VoteScriptWitness era))] -> [(Proposal era, Maybe (ProposalScriptWitness era))] - -> Maybe (TxCurrentTreasuryValue, TxTreasuryDonation) + -> Maybe TxCurrentTreasuryValue + -> Maybe TxTreasuryDonation -> Either TxCmdError (Exp.UnsignedTx era) runTxBuildRaw mScriptValidity @@ -766,7 +771,8 @@ runTxBuildRaw txUpdateProposal votingProcedures proposals - mCurrentTreasuryValueAndDonation = do + mCurrentTreasuryValue + mTreasuryDonation = do txBodyContent <- constructTxBodyContent mScriptValidity @@ -789,7 +795,8 @@ runTxBuildRaw txUpdateProposal votingProcedures proposals - mCurrentTreasuryValueAndDonation + mCurrentTreasuryValue + mTreasuryDonation first TxCmdTxBodyError $ Exp.makeUnsignedTx Exp.useEra txBodyContent @@ -829,7 +836,8 @@ constructTxBodyContent -> TxUpdateProposal era -> [(VotingProcedures era, Maybe (VoteScriptWitness era))] -> [(Proposal era, Maybe (ProposalScriptWitness era))] - -> Maybe (TxCurrentTreasuryValue, TxTreasuryDonation) + -> Maybe TxCurrentTreasuryValue + -> Maybe TxTreasuryDonation -- ^ The current treasury value and the donation. This is a stop gap as the -- semantics of the donation and treasury value depend on the script languages -- being used. @@ -855,7 +863,8 @@ constructTxBodyContent txUpdateProposal votingProcedures proposals - mCurrentTreasuryValueAndDonation = + mCurrentTreasuryValue + mTreasuryDonation = do let sbe = convert $ Exp.useEra @era let allReferenceInputs = @@ -891,8 +900,8 @@ constructTxBodyContent [(prop, pswScriptWitness <$> mSwit) | (Proposal prop, mSwit) <- proposals] Featured w txp - let validatedCurrentTreasuryValue = validateTxCurrentTreasuryValue @era (fst <$> mCurrentTreasuryValueAndDonation) - validatedTreasuryDonation = validateTxTreasuryDonation @era (snd <$> mCurrentTreasuryValueAndDonation) + let validatedCurrentTreasuryValue = validateTxCurrentTreasuryValue @era mCurrentTreasuryValue + validatedTreasuryDonation = validateTxTreasuryDonation @era mTreasuryDonation return $ shelleyBasedEraConstraints sbe @@ -969,7 +978,8 @@ runTxBuild -> Maybe Word -> [(VotingProcedures era, Maybe (VoteScriptWitness era))] -> [(Proposal era, Maybe (ProposalScriptWitness era))] - -> Maybe (TxCurrentTreasuryValue, TxTreasuryDonation) + -> Maybe TxCurrentTreasuryValue + -> Maybe TxTreasuryDonation -- ^ The current treasury value and the donation. -> ExceptT TxCmdError IO (BalancedTxBody era) runTxBuild @@ -995,7 +1005,8 @@ runTxBuild mOverrideWits votingProcedures proposals - mCurrentTreasuryValueAndDonation = do + mCurrentTreasuryValue + mTreasuryDonation = do let sbe = convert (Exp.useEra @era) shelleyBasedEraConstraints sbe $ do -- TODO: All functions should be parameterized by ShelleyBasedEra @@ -1062,7 +1073,8 @@ runTxBuild txUpdateProposal votingProcedures proposals - mCurrentTreasuryValueAndDonation + mCurrentTreasuryValue + mTreasuryDonation firstExceptT TxCmdTxInsDoNotExist . hoistEither diff --git a/cardano-cli/test/cardano-cli-golden/Test/Golden/Conway/Transaction/BuildRaw.hs b/cardano-cli/test/cardano-cli-golden/Test/Golden/Conway/Transaction/BuildRaw.hs index 9d3af01b02..462b3b1d84 100644 --- a/cardano-cli/test/cardano-cli-golden/Test/Golden/Conway/Transaction/BuildRaw.hs +++ b/cardano-cli/test/cardano-cli-golden/Test/Golden/Conway/Transaction/BuildRaw.hs @@ -3,13 +3,10 @@ module Test.Golden.Conway.Transaction.BuildRaw where import Control.Monad (void) -import Data.List (isInfixOf) -import System.Exit (ExitCode (..)) import Test.Cardano.CLI.Util import Hedgehog -import Hedgehog qualified as H import Hedgehog.Extras.Test qualified as H -- | Execute me with: @@ -45,68 +42,75 @@ hprop_golden_conway_build_raw_treasury_donation = H.diffFileVsGoldenFile outFile goldenFile --- Negative test: Missing --current-treasury-value +-- Current treasury value is not mandatory for donations, see formal spec: +-- +-- * https://intersectmbo.github.io/formal-ledger-specifications/site/Ledger.Conway.Specification.Utxo.html#sec:the-utxo-transition-system +-- * https://intersectmbo.github.io/formal-ledger-specifications/site/Notation.html#the-maybe-type +-- And discussion: +-- +-- * https://discord.com/channels/1136727663583698984/1239888777015590913/1364244737602879498 -- | Execute me with: -- @cabal test cardano-cli-golden --test-options '-p "/golden conway build raw donation no current treasury value/"'@ hprop_golden_conway_build_raw_donation_no_current_treasury_value :: Property hprop_golden_conway_build_raw_donation_no_current_treasury_value = watchdogProp . propertyOnce . H.moduleWorkspace "tmp" $ \tempDir -> do + let goldenFile = "test/cardano-cli-golden/files/golden/conway/donation-no-current-val.tx" -- Key filepaths outFile <- noteTempFile tempDir "out.json" - (exitCode, _stdout, stderr) <- - H.noteShowM $ - execDetailCardanoCLI - [ "conway" - , "transaction" - , "build-raw" - , "--tx-in" - , "f62cd7bc15d8c6d2c8519fb8d13c57c0157ab6bab50af62bc63706feb966393d#0" - , "--tx-out" - , "addr_test1qpmxr8d8jcl25kyz2tz9a9sxv7jxglhddyf475045y8j3zxjcg9vquzkljyfn3rasfwwlkwu7hhm59gzxmsyxf3w9dps8832xh+1199989833223" - , "--tx-out" - , "addr_test1vpqgspvmh6m2m5pwangvdg499srfzre2dd96qq57nlnw6yctpasy4+10000000" - , "--treasury-donation" - , "1000343" - , "--fee" - , "166777" - , "--out-file" - , outFile - ] - - exitCode H.=== ExitFailure 1 - H.assertWith stderr ("Missing: --current-treasury-value LOVELACE" `isInfixOf`) - --- Negative test: Missing --treasury-donation + void $ + execCardanoCLI + [ "conway" + , "transaction" + , "build-raw" + , "--tx-in" + , "f62cd7bc15d8c6d2c8519fb8d13c57c0157ab6bab50af62bc63706feb966393d#0" + , "--tx-out" + , "addr_test1qpmxr8d8jcl25kyz2tz9a9sxv7jxglhddyf475045y8j3zxjcg9vquzkljyfn3rasfwwlkwu7hhm59gzxmsyxf3w9dps8832xh+1199989833223" + , "--tx-out" + , "addr_test1vpqgspvmh6m2m5pwangvdg499srfzre2dd96qq57nlnw6yctpasy4+10000000" + , "--treasury-donation" + , "1000343" + , "--fee" + , "166777" + , "--out-file" + , outFile + ] + + H.diffFileVsGoldenFile outFile goldenFile + +-- Donation is not mandatory for current treasury value, see formal spec: +-- +-- * https://intersectmbo.github.io/formal-ledger-specifications/site/Ledger.Conway.Specification.Utxo.html#sec:the-utxos-transition-rule +-- * https://intersectmbo.github.io/formal-ledger-specifications/site/Notation.html#the-maybe-type -- | Execute me with: -- @cabal test cardano-cli-golden --test-options '-p "/golden conway build raw donation no treasury donation/"'@ hprop_golden_conway_build_raw_donation_no_treasury_donation :: Property hprop_golden_conway_build_raw_donation_no_treasury_donation = watchdogProp . propertyOnce . H.moduleWorkspace "tmp" $ \tempDir -> do + let goldenFile = "test/cardano-cli-golden/files/golden/conway/current-val-no-donation.tx" -- Key filepaths outFile <- noteTempFile tempDir "out.json" - (exitCode, _stdout, stderr) <- - H.noteShowM $ - execDetailCardanoCLI - [ "conway" - , "transaction" - , "build-raw" - , "--tx-in" - , "f62cd7bc15d8c6d2c8519fb8d13c57c0157ab6bab50af62bc63706feb966393d#0" - , "--tx-out" - , "addr_test1qpmxr8d8jcl25kyz2tz9a9sxv7jxglhddyf475045y8j3zxjcg9vquzkljyfn3rasfwwlkwu7hhm59gzxmsyxf3w9dps8832xh+1199989833223" - , "--tx-out" - , "addr_test1vpqgspvmh6m2m5pwangvdg499srfzre2dd96qq57nlnw6yctpasy4+10000000" - , "--current-treasury-value" - , "1000343" - , "--fee" - , "166777" - , "--out-file" - , outFile - ] - - exitCode H.=== ExitFailure 1 - H.assertWith stderr ("Missing: --treasury-donation LOVELACE" `isInfixOf`) + void $ + execCardanoCLI + [ "conway" + , "transaction" + , "build-raw" + , "--tx-in" + , "f62cd7bc15d8c6d2c8519fb8d13c57c0157ab6bab50af62bc63706feb966393d#0" + , "--tx-out" + , "addr_test1qpmxr8d8jcl25kyz2tz9a9sxv7jxglhddyf475045y8j3zxjcg9vquzkljyfn3rasfwwlkwu7hhm59gzxmsyxf3w9dps8832xh+1199989833223" + , "--tx-out" + , "addr_test1vpqgspvmh6m2m5pwangvdg499srfzre2dd96qq57nlnw6yctpasy4+10000000" + , "--current-treasury-value" + , "1000343" + , "--fee" + , "166777" + , "--out-file" + , outFile + ] + + H.diffFileVsGoldenFile outFile goldenFile diff --git a/cardano-cli/test/cardano-cli-golden/files/golden/conway/current-val-no-donation.tx b/cardano-cli/test/cardano-cli-golden/files/golden/conway/current-val-no-donation.tx new file mode 100644 index 0000000000..e2122beaf8 --- /dev/null +++ b/cardano-cli/test/cardano-cli-golden/files/golden/conway/current-val-no-donation.tx @@ -0,0 +1,5 @@ +{ + "type": "Tx ConwayEra", + "description": "Ledger Cddl Format", + "cborHex": "84a400d9010281825820f62cd7bc15d8c6d2c8519fb8d13c57c0157ab6bab50af62bc63706feb966393d0001828258390076619da7963eaa588252c45e960667a4647eed69135f51f5a10f2888d2c20ac07056fc8899c47d825cefd9dcf5efba150236e043262e2b431b0000011764f7be0782581d604088059bbeb6add02eecd0c6a2a52c06910f2a6b4ba0029e9fe6ed131a00989680021a00028b79151a000f4397a0f5f6" +} diff --git a/cardano-cli/test/cardano-cli-golden/files/golden/conway/donation-no-current-val.tx b/cardano-cli/test/cardano-cli-golden/files/golden/conway/donation-no-current-val.tx new file mode 100644 index 0000000000..7c701d2baf --- /dev/null +++ b/cardano-cli/test/cardano-cli-golden/files/golden/conway/donation-no-current-val.tx @@ -0,0 +1,5 @@ +{ + "type": "Tx ConwayEra", + "description": "Ledger Cddl Format", + "cborHex": "84a400d9010281825820f62cd7bc15d8c6d2c8519fb8d13c57c0157ab6bab50af62bc63706feb966393d0001828258390076619da7963eaa588252c45e960667a4647eed69135f51f5a10f2888d2c20ac07056fc8899c47d825cefd9dcf5efba150236e043262e2b431b0000011764f7be0782581d604088059bbeb6add02eecd0c6a2a52c06910f2a6b4ba0029e9fe6ed131a00989680021a00028b79161a000f4397a0f5f6" +} diff --git a/cardano-cli/test/cardano-cli-golden/files/golden/help.cli b/cardano-cli/test/cardano-cli-golden/files/golden/help.cli index ea0032ddc7..5600f99ae2 100644 --- a/cardano-cli/test/cardano-cli-golden/files/golden/help.cli +++ b/cardano-cli/test/cardano-cli-golden/files/golden/help.cli @@ -2750,8 +2750,8 @@ Usage: cardano-cli conway transaction build-raw ) --proposal-reference-tx-in-execution-units (INT, INT) ]] - [--current-treasury-value LOVELACE - --treasury-donation LOVELACE] + [--current-treasury-value LOVELACE] + [--treasury-donation LOVELACE] [--out-canonical-cbor] --out-file FILEPATH @@ -2901,6 +2901,7 @@ Usage: cardano-cli conway transaction build | --proposal-reference-tx-in-redeemer-value JSON_VALUE ) ]] + [--include-current-treasury-value] [--treasury-donation LOVELACE] [--out-canonical-cbor] ( --out-file FILEPATH @@ -3069,8 +3070,8 @@ Usage: cardano-cli conway transaction build-estimate ) --proposal-reference-tx-in-execution-units (INT, INT) ]] - [--current-treasury-value LOVELACE - --treasury-donation LOVELACE] + [--current-treasury-value LOVELACE] + [--treasury-donation LOVELACE] [--out-canonical-cbor] --out-file FILEPATH @@ -5047,8 +5048,8 @@ Usage: cardano-cli latest transaction build-raw ) --proposal-reference-tx-in-execution-units (INT, INT) ]] - [--current-treasury-value LOVELACE - --treasury-donation LOVELACE] + [--current-treasury-value LOVELACE] + [--treasury-donation LOVELACE] [--out-canonical-cbor] --out-file FILEPATH @@ -5198,6 +5199,7 @@ Usage: cardano-cli latest transaction build | --proposal-reference-tx-in-redeemer-value JSON_VALUE ) ]] + [--include-current-treasury-value] [--treasury-donation LOVELACE] [--out-canonical-cbor] ( --out-file FILEPATH @@ -5366,8 +5368,8 @@ Usage: cardano-cli latest transaction build-estimate ) --proposal-reference-tx-in-execution-units (INT, INT) ]] - [--current-treasury-value LOVELACE - --treasury-donation LOVELACE] + [--current-treasury-value LOVELACE] + [--treasury-donation LOVELACE] [--out-canonical-cbor] --out-file FILEPATH diff --git a/cardano-cli/test/cardano-cli-golden/files/golden/help/conway_transaction_build-estimate.cli b/cardano-cli/test/cardano-cli-golden/files/golden/help/conway_transaction_build-estimate.cli index c63b0b8d49..e513a9badb 100644 --- a/cardano-cli/test/cardano-cli-golden/files/golden/help/conway_transaction_build-estimate.cli +++ b/cardano-cli/test/cardano-cli-golden/files/golden/help/conway_transaction_build-estimate.cli @@ -156,8 +156,8 @@ Usage: cardano-cli conway transaction build-estimate ) --proposal-reference-tx-in-execution-units (INT, INT) ]] - [--current-treasury-value LOVELACE - --treasury-donation LOVELACE] + [--current-treasury-value LOVELACE] + [--treasury-donation LOVELACE] [--out-canonical-cbor] --out-file FILEPATH diff --git a/cardano-cli/test/cardano-cli-golden/files/golden/help/conway_transaction_build-raw.cli b/cardano-cli/test/cardano-cli-golden/files/golden/help/conway_transaction_build-raw.cli index 436efc78e7..29ead275e0 100644 --- a/cardano-cli/test/cardano-cli-golden/files/golden/help/conway_transaction_build-raw.cli +++ b/cardano-cli/test/cardano-cli-golden/files/golden/help/conway_transaction_build-raw.cli @@ -151,8 +151,8 @@ Usage: cardano-cli conway transaction build-raw ) --proposal-reference-tx-in-execution-units (INT, INT) ]] - [--current-treasury-value LOVELACE - --treasury-donation LOVELACE] + [--current-treasury-value LOVELACE] + [--treasury-donation LOVELACE] [--out-canonical-cbor] --out-file FILEPATH diff --git a/cardano-cli/test/cardano-cli-golden/files/golden/help/conway_transaction_build.cli b/cardano-cli/test/cardano-cli-golden/files/golden/help/conway_transaction_build.cli index 7adb86f961..0af54f947f 100644 --- a/cardano-cli/test/cardano-cli-golden/files/golden/help/conway_transaction_build.cli +++ b/cardano-cli/test/cardano-cli-golden/files/golden/help/conway_transaction_build.cli @@ -140,6 +140,7 @@ Usage: cardano-cli conway transaction build | --proposal-reference-tx-in-redeemer-value JSON_VALUE ) ]] + [--include-current-treasury-value] [--treasury-donation LOVELACE] [--out-canonical-cbor] ( --out-file FILEPATH @@ -471,6 +472,9 @@ Available options: The script redeemer value. There is no schema: (almost) any JSON value is supported, including top-level strings and numbers. + --include-current-treasury-value + Include the current treasury value in the + transaction. --treasury-donation LOVELACE The donation to the treasury to perform. --out-canonical-cbor Produce transaction in canonical CBOR according to diff --git a/cardano-cli/test/cardano-cli-golden/files/golden/help/latest_transaction_build-estimate.cli b/cardano-cli/test/cardano-cli-golden/files/golden/help/latest_transaction_build-estimate.cli index bdc4b88f0d..90d1a1d98e 100644 --- a/cardano-cli/test/cardano-cli-golden/files/golden/help/latest_transaction_build-estimate.cli +++ b/cardano-cli/test/cardano-cli-golden/files/golden/help/latest_transaction_build-estimate.cli @@ -156,8 +156,8 @@ Usage: cardano-cli latest transaction build-estimate ) --proposal-reference-tx-in-execution-units (INT, INT) ]] - [--current-treasury-value LOVELACE - --treasury-donation LOVELACE] + [--current-treasury-value LOVELACE] + [--treasury-donation LOVELACE] [--out-canonical-cbor] --out-file FILEPATH diff --git a/cardano-cli/test/cardano-cli-golden/files/golden/help/latest_transaction_build-raw.cli b/cardano-cli/test/cardano-cli-golden/files/golden/help/latest_transaction_build-raw.cli index 5e3aab5297..fc867c47f4 100644 --- a/cardano-cli/test/cardano-cli-golden/files/golden/help/latest_transaction_build-raw.cli +++ b/cardano-cli/test/cardano-cli-golden/files/golden/help/latest_transaction_build-raw.cli @@ -151,8 +151,8 @@ Usage: cardano-cli latest transaction build-raw ) --proposal-reference-tx-in-execution-units (INT, INT) ]] - [--current-treasury-value LOVELACE - --treasury-donation LOVELACE] + [--current-treasury-value LOVELACE] + [--treasury-donation LOVELACE] [--out-canonical-cbor] --out-file FILEPATH diff --git a/cardano-cli/test/cardano-cli-golden/files/golden/help/latest_transaction_build.cli b/cardano-cli/test/cardano-cli-golden/files/golden/help/latest_transaction_build.cli index 9ab3e19050..5fa2c059d2 100644 --- a/cardano-cli/test/cardano-cli-golden/files/golden/help/latest_transaction_build.cli +++ b/cardano-cli/test/cardano-cli-golden/files/golden/help/latest_transaction_build.cli @@ -140,6 +140,7 @@ Usage: cardano-cli latest transaction build | --proposal-reference-tx-in-redeemer-value JSON_VALUE ) ]] + [--include-current-treasury-value] [--treasury-donation LOVELACE] [--out-canonical-cbor] ( --out-file FILEPATH @@ -471,6 +472,9 @@ Available options: The script redeemer value. There is no schema: (almost) any JSON value is supported, including top-level strings and numbers. + --include-current-treasury-value + Include the current treasury value in the + transaction. --treasury-donation LOVELACE The donation to the treasury to perform. --out-canonical-cbor Produce transaction in canonical CBOR according to