|
|
@ -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; |
|
|
|