From 2e301c26ef6b01e483d07a9c685f704e404fda53 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Hurlin?= Date: Fri, 4 Oct 2024 16:27:11 +0200 Subject: [PATCH] transaction submit: print transaction hash as JSON --- .../src/Cardano/CLI/EraBased/Run/Transaction.hs | 4 +++- cardano-cli/src/Cardano/CLI/Types/Common.hs | 12 ++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/cardano-cli/src/Cardano/CLI/EraBased/Run/Transaction.hs b/cardano-cli/src/Cardano/CLI/EraBased/Run/Transaction.hs index c59ace374..c5bdd3581 100644 --- a/cardano-cli/src/Cardano/CLI/EraBased/Run/Transaction.hs +++ b/cardano-cli/src/Cardano/CLI/EraBased/Run/Transaction.hs @@ -1483,7 +1483,9 @@ runTransactionSubmitCmd res <- liftIO $ submitTxToNodeLocal localNodeConnInfo txInMode case res of - Net.Tx.SubmitSuccess -> liftIO $ Text.putStrLn "Transaction successfully submitted." + Net.Tx.SubmitSuccess -> do + liftIO $ Text.hPutStrLn IO.stderr "Transaction successfully submitted. Transaction hash is:" + liftIO $ LBS.putStrLn $ Aeson.encode $ TxSubmissionResult $ getTxId $ getTxBody tx Net.Tx.SubmitFail reason -> case reason of TxValidationErrorInCardanoMode err -> left . TxCmdTxSubmitError . Text.pack $ show err diff --git a/cardano-cli/src/Cardano/CLI/Types/Common.hs b/cardano-cli/src/Cardano/CLI/Types/Common.hs index c765ac64a..c4d65f249 100644 --- a/cardano-cli/src/Cardano/CLI/Types/Common.hs +++ b/cardano-cli/src/Cardano/CLI/Types/Common.hs @@ -1,4 +1,5 @@ {-# LANGUAGE DataKinds #-} +{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE DerivingStrategies #-} {-# LANGUAGE GADTs #-} {-# LANGUAGE GeneralisedNewtypeDeriving #-} @@ -68,6 +69,7 @@ module Cardano.CLI.Types.Common , TxBuildOutputOptions (..) , TxByronWitnessCount (..) , TxFile + , TxSubmissionResult (..) , TxTreasuryDonation (..) , TxInCount (..) , TxMempoolQuery (..) @@ -102,6 +104,7 @@ import Data.String (IsString) import Data.Text (Text) import qualified Data.Text as Text import Data.Word (Word64) +import GHC.Generics (Generic) -- | Determines the direction in which the MIR certificate will transfer ADA. data TransferDirection @@ -663,3 +666,12 @@ data PotentiallyCheckedAnchor anchorType anchor -- ^ Whether to check the hash or not (CheckHash for checking or TrustHash for not checking) } deriving (Eq, Show) + +-- | Type used for serialization when printing the hash of a transaction +-- after having submitted it. +newtype TxSubmissionResult = TxSubmissionResult {txhash :: TxId} + deriving (Show, Generic) + +instance FromJSON TxSubmissionResult + +instance ToJSON TxSubmissionResult