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));
|
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;
|
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 InitRPCMining();
|
||||||
extern void ShutdownRPCMining();
|
extern void ShutdownRPCMining();
|
||||||
|
|
||||||
|
|
|
@ -17,39 +17,6 @@ using namespace boost;
|
||||||
using namespace boost::assign;
|
using namespace boost::assign;
|
||||||
using namespace json_spirit;
|
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)
|
void ScriptPubKeyToJSON(const CScript& scriptPubKey, Object& out)
|
||||||
{
|
{
|
||||||
txnouttype type;
|
txnouttype type;
|
||||||
|
|
Loading…
Reference in a new issue