diff --git a/cardano-cli/src/Cardano/CLI/EraBased/Common/Option.hs b/cardano-cli/src/Cardano/CLI/EraBased/Common/Option.hs index ef7baaeaec..e0f625403e 100644 --- a/cardano-cli/src/Cardano/CLI/EraBased/Common/Option.hs +++ b/cardano-cli/src/Cardano/CLI/EraBased/Common/Option.hs @@ -3443,6 +3443,7 @@ parseTxOutShelleyBasedEra = do val <- parseTxOutMultiAssetValue -- UTxO role works for transaction output return (TxOutShelleyBasedEra addr val) +-- TODO: replace with parseAddressAny from cardano-api parseShelleyAddress :: Parsec.Parser (Address ShelleyAddr) parseShelleyAddress = do str <- lexPlausibleAddressString diff --git a/cardano-cli/src/Cardano/CLI/EraBased/Transaction/Command.hs b/cardano-cli/src/Cardano/CLI/EraBased/Transaction/Command.hs index 836b9f8458..0661f7e9ce 100644 --- a/cardano-cli/src/Cardano/CLI/EraBased/Transaction/Command.hs +++ b/cardano-cli/src/Cardano/CLI/EraBased/Transaction/Command.hs @@ -5,6 +5,7 @@ module Cardano.CLI.EraBased.Transaction.Command ( TransactionCmds (..) , TransactionBuildRawCmdArgs (..) + , TxCborFormat (..) , TransactionBuildCmdArgs (..) , TransactionBuildEstimateCmdArgs (..) , TransactionSignCmdArgs (..) @@ -92,10 +93,20 @@ data TransactionBuildRawCmdArgs era = TransactionBuildRawCmdArgs , voteFiles :: ![(VoteFile In, Maybe CliVoteScriptRequirements)] , proposalFiles :: ![(ProposalFile In, Maybe CliProposalScriptRequirements)] , currentTreasuryValueAndDonation :: !(Maybe (TxCurrentTreasuryValue, TxTreasuryDonation)) + , isCborOutCanonical :: !TxCborFormat , txBodyOutFile :: !(TxBodyFile Out) } deriving Show +-- | Whether output transaction is in CBOR canonical format according to RFC7049 section 3.9. +-- +-- 1. https://datatracker.ietf.org/doc/html/rfc7049#section-3.9 +-- 2. https://github.com/cardano-foundation/CIPs/blob/master/CIP-0021/README.md#canonical-cbor-serialization-format +data TxCborFormat + = TxCborCanonical + | TxCborNotCanonical + deriving (Eq, Show) + -- | Like 'TransactionBuildRaw' but without the fee, and with a change output. data TransactionBuildCmdArgs era = TransactionBuildCmdArgs { currentEra :: !(Exp.Era era) @@ -138,6 +149,7 @@ data TransactionBuildCmdArgs era = TransactionBuildCmdArgs , voteFiles :: ![(VoteFile In, Maybe CliVoteScriptRequirements)] , proposalFiles :: ![(ProposalFile In, Maybe CliProposalScriptRequirements)] , treasuryDonation :: !(Maybe TxTreasuryDonation) + , isCborOutCanonical :: !TxCborFormat , buildOutputOptions :: !TxBuildOutputOptions } deriving Show @@ -188,6 +200,7 @@ data TransactionBuildEstimateCmdArgs era = TransactionBuildEstimateCmdArgs , voteFiles :: ![(VoteFile In, Maybe CliVoteScriptRequirements)] , proposalFiles :: ![(ProposalFile In, Maybe CliProposalScriptRequirements)] , currentTreasuryValueAndDonation :: !(Maybe (TxCurrentTreasuryValue, TxTreasuryDonation)) + , isCborOutCanonical :: !TxCborFormat , txBodyOutFile :: !(TxBodyFile Out) } @@ -195,6 +208,7 @@ data TransactionSignCmdArgs = TransactionSignCmdArgs { txOrTxBodyFile :: !InputTxBodyOrTxFile , witnessSigningData :: ![WitnessSigningData] , mNetworkId :: !(Maybe NetworkId) + , isCborOutCanonical :: !TxCborFormat , outTxFile :: !(TxFile Out) } deriving Show @@ -210,6 +224,7 @@ data TransactionWitnessCmdArgs = TransactionWitnessCmdArgs data TransactionSignWitnessCmdArgs = TransactionSignWitnessCmdArgs { txBodyFile :: !(TxBodyFile In) , witnessFiles :: ![WitnessFile] + , isCborOutCanonical :: !TxCborFormat , outFile :: !(File () Out) } deriving Show diff --git a/cardano-cli/src/Cardano/CLI/EraBased/Transaction/Option.hs b/cardano-cli/src/Cardano/CLI/EraBased/Transaction/Option.hs index cfbc107da6..0b86aceda3 100644 --- a/cardano-cli/src/Cardano/CLI/EraBased/Transaction/Option.hs +++ b/cardano-cli/src/Cardano/CLI/EraBased/Transaction/Option.hs @@ -1,6 +1,7 @@ {-# LANGUAGE DataKinds #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE GADTs #-} +{-# LANGUAGE LambdaCase #-} {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE TypeApplications #-} @@ -20,6 +21,7 @@ import Cardano.CLI.Type.Common import Control.Monad import Data.Foldable +import Data.Functor import Options.Applicative hiding (help, str) import Options.Applicative qualified as Opt import Options.Applicative.Help qualified as H @@ -218,6 +220,7 @@ pTransactionBuildCmd sbe envCli = do <*> pVoteFiles sbe AutoBalance <*> pProposalFiles sbe AutoBalance <*> pTreasuryDonation sbe + <*> pIsCborOutCanonical <*> pTxBuildOutputOptions -- | Estimate the transaction fees without access to a live node. @@ -281,6 +284,7 @@ pTransactionBuildEstimateCmd eon' _envCli = do <*> pVoteFiles sbe ManualBalance <*> pProposalFiles sbe ManualBalance <*> pCurrentTreasuryValueAndDonation sbe + <*> pIsCborOutCanonical <*> pTxBodyFileOut pChangeAddress :: Parser TxOutChangeAddress @@ -319,6 +323,7 @@ pTransactionBuildRaw era' = <*> pVoteFiles era' ManualBalance <*> pProposalFiles era' ManualBalance <*> pCurrentTreasuryValueAndDonation era' + <*> pIsCborOutCanonical <*> pTxBodyFileOut pTransactionSign :: EnvCli -> Parser (TransactionCmds era) @@ -328,6 +333,7 @@ pTransactionSign envCli = <$> pInputTxOrTxBodyFile <*> many pWitnessSigningData <*> optional (pNetworkId envCli) + <*> pIsCborOutCanonical <*> pTxFileOut pTransactionCreateWitness :: EnvCli -> Parser (TransactionCmds era) @@ -345,6 +351,7 @@ pTransactionAssembleTxBodyWit = TransactionSignWitnessCmdArgs <$> pTxBodyFileIn <*> many pWitnessFile + <*> pIsCborOutCanonical <*> pOutputFile pTransactionSubmit :: EnvCli -> Parser (TransactionCmds era) @@ -417,3 +424,16 @@ pTransactionId = TransactionTxIdCmdArgs <$> pInputTxOrTxBodyFile <*> pTxIdOutputFormatJsonOrText + +pIsCborOutCanonical :: Parser TxCborFormat +pIsCborOutCanonical = + ( Opt.switch $ + mconcat + [ Opt.long "out-canonical-cbor" + , Opt.help + "Produce transaction in canonical CBOR according to RFC7049. Only this part of CIP-21 is implemented." + ] + ) + <&> \case + True -> TxCborCanonical + False -> TxCborNotCanonical diff --git a/cardano-cli/src/Cardano/CLI/EraBased/Transaction/Run.hs b/cardano-cli/src/Cardano/CLI/EraBased/Transaction/Run.hs index 1f6ec5ca29..08f0e08bf8 100644 --- a/cardano-cli/src/Cardano/CLI/EraBased/Transaction/Run.hs +++ b/cardano-cli/src/Cardano/CLI/EraBased/Transaction/Run.hs @@ -158,6 +158,7 @@ runTransactionBuildCmd , voteFiles , proposalFiles , treasuryDonation -- Maybe TxTreasuryDonation + , isCborOutCanonical , buildOutputOptions } = do let eon = convert currentEra @@ -379,10 +380,12 @@ runTransactionBuildCmd scriptHashes scriptExecUnitsMap liftIO $ LBS.writeFile (unFile fp) $ encodePretty scriptCostOutput - OutputTxBodyOnly fpath -> do + OutputTxBodyOnly fpath -> cardanoEraConstraints era' . modifyError TxCmdWriteFileError $ do let noWitTx = makeSignedTransaction [] balancedTxBody - lift (cardanoEraConstraints era' $ writeTxFileTextEnvelopeCddl eon fpath noWitTx) - & onLeft (left . TxCmdWriteFileError) + hoistIOEither $ + if isCborOutCanonical == TxCborCanonical + then writeTxFileTextEnvelopeCanonicalCddl eon fpath noWitTx + else writeTxFileTextEnvelopeCddl eon fpath noWitTx runTransactionBuildEstimateCmd :: forall era @@ -417,6 +420,7 @@ runTransactionBuildEstimateCmd -- TODO change type , plutusCollateral , totalReferenceScriptSize , currentTreasuryValueAndDonation + , isCborOutCanonical , txBodyOutFile } = do let sbe = convert currentEra @@ -547,11 +551,12 @@ runTransactionBuildEstimateCmd -- TODO change type totalUTxOValue let noWitTx = makeSignedTransaction [] balancedTxBody - lift - ( cardanoEraConstraints (toCardanoEra sbe) $ - writeTxFileTextEnvelopeCddl sbe txBodyOutFile noWitTx - ) - & onLeft (left . TxCmdWriteFileError) + modifyError TxCmdWriteFileError $ + hoistIOEither $ + cardanoEraConstraints (toCardanoEra sbe) $ + if isCborOutCanonical == TxCborCanonical + then writeTxFileTextEnvelopeCanonicalCddl sbe txBodyOutFile noWitTx + else writeTxFileTextEnvelopeCddl sbe txBodyOutFile noWitTx getPoolDeregistrationInfo :: Certificate era @@ -660,6 +665,7 @@ runTransactionBuildRawCmd , voteFiles , proposalFiles , currentTreasuryValueAndDonation + , isCborOutCanonical , txBodyOutFile } = do txInsAndMaybeScriptWits <- @@ -760,8 +766,11 @@ runTransactionBuildRawCmd currentTreasuryValueAndDonation let noWitTx = makeSignedTransaction [] txBody - lift (writeTxFileTextEnvelopeCddl eon txBodyOutFile noWitTx) - & onLeft (left . TxCmdWriteFileError) + modifyError TxCmdWriteFileError $ + hoistIOEither $ + if isCborOutCanonical == TxCborCanonical + then writeTxFileTextEnvelopeCanonicalCddl eon txBodyOutFile noWitTx + else writeTxFileTextEnvelopeCddl eon txBodyOutFile noWitTx runTxBuildRaw :: () @@ -1444,6 +1453,7 @@ runTransactionSignCmd { txOrTxBodyFile = txOrTxBody , witnessSigningData , mNetworkId + , isCborOutCanonical , outTxFile } = do sks <- forM witnessSigningData $ \d -> @@ -1471,8 +1481,11 @@ runTransactionSignCmd allKeyWits = existingTxKeyWits ++ newShelleyKeyWits ++ byronWitnesses signedTx = makeSignedTransaction allKeyWits apiTxBody - lift (writeTxFileTextEnvelopeCddl sbe outTxFile signedTx) - & onLeft (left . TxCmdWriteFileError) + modifyError TxCmdWriteFileError $ + hoistIOEither $ + if isCborOutCanonical == TxCborCanonical + then writeTxFileTextEnvelopeCanonicalCddl sbe outTxFile signedTx + else writeTxFileTextEnvelopeCddl sbe outTxFile signedTx InputTxBodyFile (File txbodyFilePath) -> do txbodyFile <- liftIO $ fileOrPipe txbodyFilePath unwitnessed <- @@ -1493,8 +1506,11 @@ runTransactionSignCmd let shelleyKeyWitnesses = map (makeShelleyKeyWitness sbe txbody) sksShelley tx = makeSignedTransaction (byronWitnesses ++ shelleyKeyWitnesses) txbody - lift (writeTxFileTextEnvelopeCddl sbe outTxFile tx) - & onLeft (left . TxCmdWriteFileError) + modifyError TxCmdWriteFileError $ + hoistIOEither $ + if isCborOutCanonical == TxCborCanonical + then writeTxFileTextEnvelopeCanonicalCddl sbe outTxFile tx + else writeTxFileTextEnvelopeCddl sbe outTxFile tx -- ---------------------------------------------------------------------------- -- Transaction submission @@ -1861,31 +1877,34 @@ runTransactionSignWitnessCmd runTransactionSignWitnessCmd Cmd.TransactionSignWitnessCmdArgs { txBodyFile = File txbodyFilePath - , witnessFiles = witnessFiles - , outFile = outFile + , witnessFiles + , outFile + , isCborOutCanonical } = do txbodyFile <- liftIO $ fileOrPipe txbodyFilePath - unwitnessed <- lift (readFileTxBody txbodyFile) & onLeft (left . TxCmdTextEnvCddlError) - case unwitnessed of - IncompleteCddlTxBody (InAnyShelleyBasedEra era txbody) -> do - -- TODO: Left off here. Remember we were never reading byron key witnesses anyways! - witnesses <- - sequence - [ do - InAnyShelleyBasedEra era' witness <- - lift (readFileTxKeyWitness file) & onLeft (left . TxCmdCddlWitnessError) - - case testEquality era era' of - Nothing -> - left $ - TxCmdWitnessEraMismatch - (AnyCardanoEra $ toCardanoEra era) - (AnyCardanoEra $ toCardanoEra era') - witnessFile - Just Refl -> return witness - | witnessFile@(WitnessFile file) <- witnessFiles - ] - - let tx = makeSignedTransaction witnesses txbody + -- unwitnessed body + IncompleteCddlTxBody (InAnyShelleyBasedEra era txbody) <- + lift (readFileTxBody txbodyFile) & onLeft (left . TxCmdTextEnvCddlError) + witnesses <- + sequence + [ do + InAnyShelleyBasedEra era' witness <- + lift (readFileTxKeyWitness file) & onLeft (left . TxCmdCddlWitnessError) + + case testEquality era era' of + Nothing -> + left $ + TxCmdWitnessEraMismatch + (AnyCardanoEra $ toCardanoEra era) + (AnyCardanoEra $ toCardanoEra era') + witnessFile + Just Refl -> return witness + | witnessFile@(WitnessFile file) <- witnessFiles + ] - lift (writeTxFileTextEnvelopeCddl era outFile tx) & onLeft (left . TxCmdWriteFileError) + let tx = makeSignedTransaction witnesses txbody + modifyError TxCmdWriteFileError $ + hoistIOEither $ + if isCborOutCanonical == TxCborCanonical + then writeTxFileTextEnvelopeCanonicalCddl era outFile tx + else writeTxFileTextEnvelopeCddl era outFile tx 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 38f0a4fade..36a0b7477f 100644 --- a/cardano-cli/test/cardano-cli-golden/files/golden/help.cli +++ b/cardano-cli/test/cardano-cli-golden/files/golden/help.cli @@ -2697,6 +2697,7 @@ Usage: cardano-cli conway transaction build-raw ]] [--current-treasury-value LOVELACE --treasury-donation LOVELACE] + [--out-canonical-cbor] --out-file FILEPATH Build a transaction (low-level, inconvenient) @@ -2846,6 +2847,7 @@ Usage: cardano-cli conway transaction build ) ]] [--treasury-donation LOVELACE] + [--out-canonical-cbor] ( --out-file FILEPATH | --calculate-plutus-script-cost FILEPATH ) @@ -3014,6 +3016,7 @@ Usage: cardano-cli conway transaction build-estimate ]] [--current-treasury-value LOVELACE --treasury-donation LOVELACE] + [--out-canonical-cbor] --out-file FILEPATH Build a balanced transaction without access to a live node (automatically estimates fees) @@ -3029,6 +3032,7 @@ Usage: cardano-cli conway transaction sign [ --mainnet | --testnet-magic NATURAL ] + [--out-canonical-cbor] --out-file FILEPATH Sign a transaction @@ -3045,12 +3049,14 @@ Usage: cardano-cli conway transaction witness --tx-body-file FILEPATH Usage: cardano-cli conway transaction assemble --tx-body-file FILEPATH [--witness-file FILEPATH] + [--out-canonical-cbor] --out-file FILEPATH Assemble a tx body and witness(es) to form a transaction Usage: cardano-cli conway transaction sign-witness --tx-body-file FILEPATH [--witness-file FILEPATH] + [--out-canonical-cbor] --out-file FILEPATH Assemble a tx body and witness(es) to form a transaction @@ -4841,6 +4847,7 @@ Usage: cardano-cli latest transaction build-raw ]] [--current-treasury-value LOVELACE --treasury-donation LOVELACE] + [--out-canonical-cbor] --out-file FILEPATH Build a transaction (low-level, inconvenient) @@ -4990,6 +4997,7 @@ Usage: cardano-cli latest transaction build ) ]] [--treasury-donation LOVELACE] + [--out-canonical-cbor] ( --out-file FILEPATH | --calculate-plutus-script-cost FILEPATH ) @@ -5158,6 +5166,7 @@ Usage: cardano-cli latest transaction build-estimate ]] [--current-treasury-value LOVELACE --treasury-donation LOVELACE] + [--out-canonical-cbor] --out-file FILEPATH Build a balanced transaction without access to a live node (automatically estimates fees) @@ -5173,6 +5182,7 @@ Usage: cardano-cli latest transaction sign [ --mainnet | --testnet-magic NATURAL ] + [--out-canonical-cbor] --out-file FILEPATH Sign a transaction @@ -5189,12 +5199,14 @@ Usage: cardano-cli latest transaction witness --tx-body-file FILEPATH Usage: cardano-cli latest transaction assemble --tx-body-file FILEPATH [--witness-file FILEPATH] + [--out-canonical-cbor] --out-file FILEPATH Assemble a tx body and witness(es) to form a transaction Usage: cardano-cli latest transaction sign-witness --tx-body-file FILEPATH [--witness-file FILEPATH] + [--out-canonical-cbor] --out-file FILEPATH Assemble a tx body and witness(es) to form a transaction diff --git a/cardano-cli/test/cardano-cli-golden/files/golden/help/conway_transaction_assemble.cli b/cardano-cli/test/cardano-cli-golden/files/golden/help/conway_transaction_assemble.cli index 58ed96db37..9c58d42294 100644 --- a/cardano-cli/test/cardano-cli-golden/files/golden/help/conway_transaction_assemble.cli +++ b/cardano-cli/test/cardano-cli-golden/files/golden/help/conway_transaction_assemble.cli @@ -1,5 +1,6 @@ Usage: cardano-cli conway transaction assemble --tx-body-file FILEPATH [--witness-file FILEPATH] + [--out-canonical-cbor] --out-file FILEPATH Assemble a tx body and witness(es) to form a transaction @@ -7,5 +8,7 @@ Usage: cardano-cli conway transaction assemble --tx-body-file FILEPATH Available options: --tx-body-file FILEPATH Input filepath of the JSON TxBody. --witness-file FILEPATH Filepath of the witness + --out-canonical-cbor Produce transaction in canonical CBOR according to + RFC7049. Only this part of CIP-21 is implemented. --out-file FILEPATH The output file. -h,--help Show this help text 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 8e5179529d..cb38b7b6b8 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 @@ -158,6 +158,7 @@ Usage: cardano-cli conway transaction build-estimate ]] [--current-treasury-value LOVELACE --treasury-donation LOVELACE] + [--out-canonical-cbor] --out-file FILEPATH Build a balanced transaction without access to a live node (automatically estimates fees) @@ -511,5 +512,7 @@ Available options: The current treasury value. --treasury-donation LOVELACE The donation to the treasury to perform. + --out-canonical-cbor Produce transaction in canonical CBOR according to + RFC7049. Only this part of CIP-21 is implemented. --out-file FILEPATH Output filepath of the JSON TxBody. -h,--help Show this help text 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 85eb8d4d2b..0314fbd953 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 @@ -153,6 +153,7 @@ Usage: cardano-cli conway transaction build-raw ]] [--current-treasury-value LOVELACE --treasury-donation LOVELACE] + [--out-canonical-cbor] --out-file FILEPATH Build a transaction (low-level, inconvenient) @@ -495,5 +496,7 @@ Available options: The current treasury value. --treasury-donation LOVELACE The donation to the treasury to perform. + --out-canonical-cbor Produce transaction in canonical CBOR according to + RFC7049. Only this part of CIP-21 is implemented. --out-file FILEPATH Output filepath of the JSON TxBody. -h,--help Show this help text 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 2bde164e04..b1ed99e275 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 @@ -141,6 +141,7 @@ Usage: cardano-cli conway transaction build ) ]] [--treasury-donation LOVELACE] + [--out-canonical-cbor] ( --out-file FILEPATH | --calculate-plutus-script-cost FILEPATH ) @@ -472,6 +473,8 @@ Available options: top-level strings and numbers. --treasury-donation LOVELACE The donation to the treasury to perform. + --out-canonical-cbor Produce transaction in canonical CBOR according to + RFC7049. Only this part of CIP-21 is implemented. --out-file FILEPATH Output filepath of the JSON TxBody. --calculate-plutus-script-cost FILEPATH Where to write the script cost information. diff --git a/cardano-cli/test/cardano-cli-golden/files/golden/help/conway_transaction_sign-witness.cli b/cardano-cli/test/cardano-cli-golden/files/golden/help/conway_transaction_sign-witness.cli index 5ed8aac0fc..a633b9ceaf 100644 --- a/cardano-cli/test/cardano-cli-golden/files/golden/help/conway_transaction_sign-witness.cli +++ b/cardano-cli/test/cardano-cli-golden/files/golden/help/conway_transaction_sign-witness.cli @@ -1,5 +1,6 @@ Usage: cardano-cli conway transaction sign-witness --tx-body-file FILEPATH [--witness-file FILEPATH] + [--out-canonical-cbor] --out-file FILEPATH Assemble a tx body and witness(es) to form a transaction @@ -7,4 +8,6 @@ Usage: cardano-cli conway transaction sign-witness --tx-body-file FILEPATH Available options: --tx-body-file FILEPATH Input filepath of the JSON TxBody. --witness-file FILEPATH Filepath of the witness + --out-canonical-cbor Produce transaction in canonical CBOR according to + RFC7049. Only this part of CIP-21 is implemented. --out-file FILEPATH The output file. diff --git a/cardano-cli/test/cardano-cli-golden/files/golden/help/conway_transaction_sign.cli b/cardano-cli/test/cardano-cli-golden/files/golden/help/conway_transaction_sign.cli index 85f8799623..b64b577f51 100644 --- a/cardano-cli/test/cardano-cli-golden/files/golden/help/conway_transaction_sign.cli +++ b/cardano-cli/test/cardano-cli-golden/files/golden/help/conway_transaction_sign.cli @@ -7,6 +7,7 @@ Usage: cardano-cli conway transaction sign [ --mainnet | --testnet-magic NATURAL ] + [--out-canonical-cbor] --out-file FILEPATH Sign a transaction @@ -21,5 +22,7 @@ Available options: CARDANO_NODE_NETWORK_ID environment variable --testnet-magic NATURAL Specify a testnet magic id. This overrides the CARDANO_NODE_NETWORK_ID environment variable + --out-canonical-cbor Produce transaction in canonical CBOR according to + RFC7049. Only this part of CIP-21 is implemented. --out-file FILEPATH Output filepath of the JSON Tx. -h,--help Show this help text diff --git a/cardano-cli/test/cardano-cli-golden/files/golden/help/latest_transaction_assemble.cli b/cardano-cli/test/cardano-cli-golden/files/golden/help/latest_transaction_assemble.cli index 2c136ee253..30b8d5a91d 100644 --- a/cardano-cli/test/cardano-cli-golden/files/golden/help/latest_transaction_assemble.cli +++ b/cardano-cli/test/cardano-cli-golden/files/golden/help/latest_transaction_assemble.cli @@ -1,5 +1,6 @@ Usage: cardano-cli latest transaction assemble --tx-body-file FILEPATH [--witness-file FILEPATH] + [--out-canonical-cbor] --out-file FILEPATH Assemble a tx body and witness(es) to form a transaction @@ -7,5 +8,7 @@ Usage: cardano-cli latest transaction assemble --tx-body-file FILEPATH Available options: --tx-body-file FILEPATH Input filepath of the JSON TxBody. --witness-file FILEPATH Filepath of the witness + --out-canonical-cbor Produce transaction in canonical CBOR according to + RFC7049. Only this part of CIP-21 is implemented. --out-file FILEPATH The output file. -h,--help Show this help text 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 a944d0774c..b68904cf72 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 @@ -158,6 +158,7 @@ Usage: cardano-cli latest transaction build-estimate ]] [--current-treasury-value LOVELACE --treasury-donation LOVELACE] + [--out-canonical-cbor] --out-file FILEPATH Build a balanced transaction without access to a live node (automatically estimates fees) @@ -511,5 +512,7 @@ Available options: The current treasury value. --treasury-donation LOVELACE The donation to the treasury to perform. + --out-canonical-cbor Produce transaction in canonical CBOR according to + RFC7049. Only this part of CIP-21 is implemented. --out-file FILEPATH Output filepath of the JSON TxBody. -h,--help Show this help text 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 7142dfae27..0c072030fd 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 @@ -153,6 +153,7 @@ Usage: cardano-cli latest transaction build-raw ]] [--current-treasury-value LOVELACE --treasury-donation LOVELACE] + [--out-canonical-cbor] --out-file FILEPATH Build a transaction (low-level, inconvenient) @@ -495,5 +496,7 @@ Available options: The current treasury value. --treasury-donation LOVELACE The donation to the treasury to perform. + --out-canonical-cbor Produce transaction in canonical CBOR according to + RFC7049. Only this part of CIP-21 is implemented. --out-file FILEPATH Output filepath of the JSON TxBody. -h,--help Show this help text 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 d2994b3dcc..b0bfc88976 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 @@ -141,6 +141,7 @@ Usage: cardano-cli latest transaction build ) ]] [--treasury-donation LOVELACE] + [--out-canonical-cbor] ( --out-file FILEPATH | --calculate-plutus-script-cost FILEPATH ) @@ -472,6 +473,8 @@ Available options: top-level strings and numbers. --treasury-donation LOVELACE The donation to the treasury to perform. + --out-canonical-cbor Produce transaction in canonical CBOR according to + RFC7049. Only this part of CIP-21 is implemented. --out-file FILEPATH Output filepath of the JSON TxBody. --calculate-plutus-script-cost FILEPATH Where to write the script cost information. diff --git a/cardano-cli/test/cardano-cli-golden/files/golden/help/latest_transaction_sign-witness.cli b/cardano-cli/test/cardano-cli-golden/files/golden/help/latest_transaction_sign-witness.cli index 3d412a19b2..d654d18491 100644 --- a/cardano-cli/test/cardano-cli-golden/files/golden/help/latest_transaction_sign-witness.cli +++ b/cardano-cli/test/cardano-cli-golden/files/golden/help/latest_transaction_sign-witness.cli @@ -1,5 +1,6 @@ Usage: cardano-cli latest transaction sign-witness --tx-body-file FILEPATH [--witness-file FILEPATH] + [--out-canonical-cbor] --out-file FILEPATH Assemble a tx body and witness(es) to form a transaction @@ -7,4 +8,6 @@ Usage: cardano-cli latest transaction sign-witness --tx-body-file FILEPATH Available options: --tx-body-file FILEPATH Input filepath of the JSON TxBody. --witness-file FILEPATH Filepath of the witness + --out-canonical-cbor Produce transaction in canonical CBOR according to + RFC7049. Only this part of CIP-21 is implemented. --out-file FILEPATH The output file. diff --git a/cardano-cli/test/cardano-cli-golden/files/golden/help/latest_transaction_sign.cli b/cardano-cli/test/cardano-cli-golden/files/golden/help/latest_transaction_sign.cli index e35411421a..80d0ca521c 100644 --- a/cardano-cli/test/cardano-cli-golden/files/golden/help/latest_transaction_sign.cli +++ b/cardano-cli/test/cardano-cli-golden/files/golden/help/latest_transaction_sign.cli @@ -7,6 +7,7 @@ Usage: cardano-cli latest transaction sign [ --mainnet | --testnet-magic NATURAL ] + [--out-canonical-cbor] --out-file FILEPATH Sign a transaction @@ -21,5 +22,7 @@ Available options: CARDANO_NODE_NETWORK_ID environment variable --testnet-magic NATURAL Specify a testnet magic id. This overrides the CARDANO_NODE_NETWORK_ID environment variable + --out-canonical-cbor Produce transaction in canonical CBOR according to + RFC7049. Only this part of CIP-21 is implemented. --out-file FILEPATH Output filepath of the JSON Tx. -h,--help Show this help text