diff options
author | Ben Woosley <ben.woosley@gmail.com> | 2018-09-24 10:59:17 -0400 |
---|---|---|
committer | Ben Woosley <ben.woosley@gmail.com> | 2018-09-25 09:14:52 -0700 |
commit | 9c5af58d51cea7d0cf2a598a9979eeba103b23ff (patch) | |
tree | 8b75bcda130319567c94b2e37535f81d911b4d2d /src/core_read.cpp | |
parent | 990fc0de1afdfac8b711f39d9dbbab0c5f88a4c5 (diff) |
Consolidate redundant implementations of ParseHashStr
This change:
* adds a length check to ParseHashStr, appropriate given its use to populate
a 256-bit number from a hex str.
* allows the caller to handle the failure, which allows for the more
appropriate JSONRPCError on failure in prioritisetransaction rpc
Diffstat (limited to 'src/core_read.cpp')
-rw-r--r-- | src/core_read.cpp | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/src/core_read.cpp b/src/core_read.cpp index b02016c014..301f99bc1c 100644 --- a/src/core_read.cpp +++ b/src/core_read.cpp @@ -193,14 +193,13 @@ bool DecodePSBT(PartiallySignedTransaction& psbt, const std::string& base64_tx, return true; } -uint256 ParseHashStr(const std::string& strHex, const std::string& strName) +bool ParseHashStr(const std::string& strHex, uint256& result) { - if (!IsHex(strHex)) // Note: IsHex("") is false - throw std::runtime_error(strName + " must be hexadecimal string (not '" + strHex + "')"); + if ((strHex.size() != 64) || !IsHex(strHex)) + return false; - uint256 result; result.SetHex(strHex); - return result; + return true; } std::vector<unsigned char> ParseHexUV(const UniValue& v, const std::string& strName) |