aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Todd <pete@petertodd.org>2013-07-15 02:24:33 -0400
committerPeter Todd <pete@petertodd.org>2013-09-12 22:53:54 -0400
commit463c9710f56aff957624a03ca82a717d78694440 (patch)
tree6628328ef16f56cc52c94f0ac43b43cceebedb39
parent11a79680b174ec39d462925ea565a23aa8c147ad (diff)
downloadbitcoin-463c9710f56aff957624a03ca82a717d78694440.tar.xz
Move Parse{Hash|Hex} to be usable by all RPC code
-rw-r--r--src/bitcoinrpc.cpp28
-rw-r--r--src/bitcoinrpc.h9
-rw-r--r--src/rpcrawtransaction.cpp33
3 files changed, 37 insertions, 33 deletions
diff --git a/src/bitcoinrpc.cpp b/src/bitcoinrpc.cpp
index 47c7383564..4e303526b1 100644
--- a/src/bitcoinrpc.cpp
+++ b/src/bitcoinrpc.cpp
@@ -113,6 +113,34 @@ std::string HexBits(unsigned int nBits)
return HexStr(BEGIN(uBits.cBits), END(uBits.cBits));
}
+uint256 ParseHashV(const Value& v, string strName)
+{
+ string strHex;
+ if (v.type() == str_type)
+ strHex = v.get_str();
+ if (!IsHex(strHex)) // Note: IsHex("") is false
+ throw JSONRPCError(RPC_INVALID_PARAMETER, strName+" must be hexadecimal string (not '"+strHex+"')");
+ uint256 result;
+ result.SetHex(strHex);
+ return result;
+}
+uint256 ParseHashO(const Object& o, string strKey)
+{
+ return ParseHashV(find_value(o, strKey), strKey);
+}
+vector<unsigned char> ParseHexV(const Value& v, string strName)
+{
+ string strHex;
+ if (v.type() == str_type)
+ strHex = v.get_str();
+ if (!IsHex(strHex))
+ throw JSONRPCError(RPC_INVALID_PARAMETER, strName+" must be hexadecimal string (not '"+strHex+"')");
+ return ParseHex(strHex);
+}
+vector<unsigned char> ParseHexO(const Object& o, string strKey)
+{
+ return ParseHexV(find_value(o, strKey), strKey);
+}
///
diff --git a/src/bitcoinrpc.h b/src/bitcoinrpc.h
index 1aa2e70d26..96c9fa1c65 100644
--- a/src/bitcoinrpc.h
+++ b/src/bitcoinrpc.h
@@ -130,6 +130,15 @@ public:
extern const CRPCTable tableRPC;
+//
+// Utilities: convert hex-encoded Values
+// (throws error if not hex).
+//
+extern uint256 ParseHashV(const json_spirit::Value& v, std::string strName);
+extern uint256 ParseHashO(const json_spirit::Object& o, std::string strKey);
+extern std::vector<unsigned char> ParseHexV(const json_spirit::Value& v, std::string strName);
+extern std::vector<unsigned char> ParseHexO(const json_spirit::Object& o, std::string strKey);
+
extern void InitRPCMining();
extern void ShutdownRPCMining();
diff --git a/src/rpcrawtransaction.cpp b/src/rpcrawtransaction.cpp
index 580120f2a2..f08598f10e 100644
--- a/src/rpcrawtransaction.cpp
+++ b/src/rpcrawtransaction.cpp
@@ -17,39 +17,6 @@ using namespace boost;
using namespace boost::assign;
using namespace json_spirit;
-//
-// Utilities: convert hex-encoded Values
-// (throws error if not hex).
-//
-uint256 ParseHashV(const Value& v, string strName)
-{
- string strHex;
- if (v.type() == str_type)
- strHex = v.get_str();
- if (!IsHex(strHex)) // Note: IsHex("") is false
- throw JSONRPCError(RPC_INVALID_PARAMETER, strName+" must be hexadecimal string (not '"+strHex+"')");
- uint256 result;
- result.SetHex(strHex);
- return result;
-}
-uint256 ParseHashO(const Object& o, string strKey)
-{
- return ParseHashV(find_value(o, strKey), strKey);
-}
-vector<unsigned char> ParseHexV(const Value& v, string strName)
-{
- string strHex;
- if (v.type() == str_type)
- strHex = v.get_str();
- if (!IsHex(strHex))
- throw JSONRPCError(RPC_INVALID_PARAMETER, strName+" must be hexadecimal string (not '"+strHex+"')");
- return ParseHex(strHex);
-}
-vector<unsigned char> ParseHexO(const Object& o, string strKey)
-{
- return ParseHexV(find_value(o, strKey), strKey);
-}
-
void ScriptPubKeyToJSON(const CScript& scriptPubKey, Object& out)
{
txnouttype type;