Skip to content

Commit

Permalink
Merge #1839
Browse files Browse the repository at this point in the history
1839: Better error message for --tx-in argument parsing r=dcoutts a=newhoggy

Before:

```
option --tx-in: Failed reading: takeWhile1
```

After:

```
option --tx-in: Tansaction ID (hexadecimal): Failed reading: takeWhile1
```

Co-authored-by: John Ky <john.ky@iohk.io>
Co-authored-by: Duncan Coutts <duncan@well-typed.com>
  • Loading branch information
3 people committed Sep 15, 2020
2 parents c05609d + 047454d commit 912e7a3
Showing 1 changed file with 16 additions and 22 deletions.
38 changes: 16 additions & 22 deletions cardano-cli/src/Cardano/CLI/Shelley/Parsers.hs
Expand Up @@ -14,7 +14,22 @@ module Cardano.CLI.Shelley.Parsers
import Cardano.Prelude hiding (option)
import Prelude (String)

import Cardano.Api.Protocol (Protocol (..))
import Cardano.Api.Typed hiding (PoolId)
import Cardano.Chain.Slotting (EpochSlots (..))
import Cardano.CLI.Shelley.Commands
import Cardano.CLI.Types
import Cardano.Slotting.Slot (EpochNo (..), SlotNo (..))
import Control.Monad.Fail (fail)
import Data.Attoparsec.Combinator ((<?>))
import Data.Time.Clock (UTCTime)
import Data.Time.Format (defaultTimeLocale, iso8601DateFormat, parseTimeOrError)
import Network.Socket (PortNumber)
import Network.URI (URI, parseURI)
import Options.Applicative hiding (str)
import Ouroboros.Consensus.BlockchainTime (SystemStart (..))

import qualified Cardano.Crypto.Hash as Crypto (Blake2b_256, Hash (..), hashFromBytesAsHex)
import qualified Data.Attoparsec.ByteString.Char8 as Atto
import qualified Data.ByteString.Base16 as Base16
import qualified Data.ByteString.Char8 as BSC
Expand All @@ -23,31 +38,10 @@ import qualified Data.IP as IP
import qualified Data.Set as Set
import qualified Data.Text as Text
import qualified Data.Text.Encoding as Text
import Data.Time.Clock (UTCTime)
import Data.Time.Format (defaultTimeLocale, iso8601DateFormat, parseTimeOrError)
import Options.Applicative hiding (str)
import qualified Options.Applicative as Opt

import Network.Socket (PortNumber)
import Network.URI (URI, parseURI)

import Cardano.Chain.Slotting (EpochSlots (..))
import Cardano.Slotting.Slot (EpochNo (..), SlotNo (..))

import Ouroboros.Consensus.BlockchainTime (SystemStart (..))

import qualified Shelley.Spec.Ledger.BaseTypes as Shelley
import qualified Shelley.Spec.Ledger.TxBody as Shelley

import Cardano.Api.Protocol (Protocol (..))
import Cardano.Api.Typed hiding (PoolId)


import Cardano.CLI.Shelley.Commands
import Cardano.CLI.Types

import qualified Cardano.Crypto.Hash as Crypto (Blake2b_256, Hash (..), hashFromBytesAsHex)

--
-- Shelley CLI command parsers
--
Expand Down Expand Up @@ -1297,7 +1291,7 @@ renderTxIn (TxIn txid (TxIx txix)) =
]

parseTxId :: Atto.Parser TxId
parseTxId = do
parseTxId = (<?> "Transaction ID (hexadecimal)") $ do
bstr <- Atto.takeWhile1 Char.isHexDigit
case deserialiseFromRawBytesHex AsTxId bstr of
Just addr -> return addr
Expand Down

0 comments on commit 912e7a3

Please sign in to comment.