Move Parse{Hash|Hex} to be usable by all RPC code
This commit is contained in:
parent
11a79680b1
commit
463c9710f5
3 changed files with 37 additions and 33 deletions
|
@ -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);
|
||||
}
|
||||
|
||||
|
||||
///
|
||||
|
|
|
@ -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();
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Reference in a new issue