|
|
@ -89,7 +89,8 @@ void RPCTypeCheck(const UniValue& params, |
|
|
|
|
|
|
|
|
|
|
|
void RPCTypeCheckObj(const UniValue& o, |
|
|
|
void RPCTypeCheckObj(const UniValue& o, |
|
|
|
const map<string, UniValue::VType>& typesExpected, |
|
|
|
const map<string, UniValue::VType>& typesExpected, |
|
|
|
bool fAllowNull) |
|
|
|
bool fAllowNull, |
|
|
|
|
|
|
|
bool fStrict) |
|
|
|
{ |
|
|
|
{ |
|
|
|
BOOST_FOREACH(const PAIRTYPE(string, UniValue::VType)& t, typesExpected) |
|
|
|
BOOST_FOREACH(const PAIRTYPE(string, UniValue::VType)& t, typesExpected) |
|
|
|
{ |
|
|
|
{ |
|
|
@ -104,6 +105,18 @@ void RPCTypeCheckObj(const UniValue& o, |
|
|
|
throw JSONRPCError(RPC_TYPE_ERROR, err); |
|
|
|
throw JSONRPCError(RPC_TYPE_ERROR, err); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (fStrict) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
BOOST_FOREACH(const string& k, o.getKeys()) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
if (typesExpected.count(k) == 0) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
string err = strprintf("Unexpected key %s", k); |
|
|
|
|
|
|
|
throw JSONRPCError(RPC_TYPE_ERROR, err); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
CAmount AmountFromValue(const UniValue& value) |
|
|
|
CAmount AmountFromValue(const UniValue& value) |
|
|
|