From a12a56613979fff9fdff69615655585e16987445 Mon Sep 17 00:00:00 2001 From: Arthur Britto Date: Sun, 13 Jan 2013 21:11:37 -0800 Subject: [PATCH] Make ripple_path_find work for command line. --- src/cpp/ripple/CallRPC.cpp | 16 +++++++++++++++- src/cpp/ripple/CallRPC.h | 1 + src/cpp/ripple/RPCHandler.cpp | 28 ++++++++++++++-------------- 3 files changed, 30 insertions(+), 15 deletions(-) diff --git a/src/cpp/ripple/CallRPC.cpp b/src/cpp/ripple/CallRPC.cpp index 2affdb290..1f498a047 100644 --- a/src/cpp/ripple/CallRPC.cpp +++ b/src/cpp/ripple/CallRPC.cpp @@ -270,6 +270,20 @@ Json::Value RPCParser::parseAccountItems(const Json::Value& jvParams) return jvRequest; } +// ripple_path_find json +Json::Value RPCParser::parseRipplePathFind(const Json::Value& jvParams) +{ + Json::Value txJSON; + Json::Reader reader; + + cLog(lsTRACE) << "RPC json:" << jvParams[0u]; + if (reader.parse(jvParams[0u].asString(), txJSON)) + { + return txJSON; + } + + return rpcError(rpcINVALID_PARAMS); +} // submit any transaction to the network // submit private_key json @@ -444,7 +458,7 @@ Json::Value RPCParser::parseCommand(std::string strMethod, Json::Value jvParams) { "peers", &RPCParser::parseAsIs, 0, 0 }, // { "profile", &RPCParser::parseProfile, 1, 9 }, { "random", &RPCParser::parseAsIs, 0, 0 }, -// { "ripple_path_find", &RPCParser::parseRipplePathFind, -1, -1 }, + { "ripple_path_find", &RPCParser::parseRipplePathFind, 1, 1 }, { "submit", &RPCParser::parseSubmit, 2, 2 }, { "server_info", &RPCParser::parseAsIs, 0, 0 }, { "stop", &RPCParser::parseAsIs, 0, 0 }, diff --git a/src/cpp/ripple/CallRPC.h b/src/cpp/ripple/CallRPC.h index 99c34ddf7..4c893256c 100644 --- a/src/cpp/ripple/CallRPC.h +++ b/src/cpp/ripple/CallRPC.h @@ -29,6 +29,7 @@ protected: Json::Value parseLogLevel(const Json::Value& jvParams); Json::Value parseOwnerInfo(const Json::Value& jvParams); Json::Value parseRandom(const Json::Value& jvParams); + Json::Value parseRipplePathFind(const Json::Value& jvParams); Json::Value parseSubmit(const Json::Value& jvParams); Json::Value parseTx(const Json::Value& jvParams); Json::Value parseTxHistory(const Json::Value& jvParams); diff --git a/src/cpp/ripple/RPCHandler.cpp b/src/cpp/ripple/RPCHandler.cpp index e1b5df434..3791bf946 100644 --- a/src/cpp/ripple/RPCHandler.cpp +++ b/src/cpp/ripple/RPCHandler.cpp @@ -725,23 +725,23 @@ Json::Value RPCHandler::doRipplePathFind(Json::Value jvRequest) RippleAddress raDst; STAmount saDstAmount; - if ( - // Parse raSrc. - !jvRequest.isMember("source_account") - || !jvRequest["source_account"].isString() - || !raSrc.setAccountID(jvRequest["source_account"].asString())) + if (!jvRequest.isMember("source_account")) { - cLog(lsINFO) << "Bad source_account."; - jvResult = rpcError(rpcINVALID_PARAMS); + jvResult = rpcError(rpcSRC_ACT_MISSING); } - else if ( - // Parse raDst. - !jvRequest.isMember("destination_account") - || !jvRequest["destination_account"].isString() - || !raDst.setAccountID(jvRequest["destination_account"].asString())) + else if (!jvRequest["source_account"].isString() + || !raSrc.setAccountID(jvRequest["source_account"].asString())) { - cLog(lsINFO) << "Bad destination_account."; - jvResult = rpcError(rpcINVALID_PARAMS); + jvResult = rpcError(rpcSRC_ACT_MALFORMED); + } + else if (!jvRequest.isMember("destination_account")) + { + jvResult = rpcError(rpcDST_ACT_MISSING); + } + else if (!jvRequest["destination_account"].isString() + || !raDst.setAccountID(jvRequest["destination_account"].asString())) + { + jvResult = rpcError(rpcDST_ACT_MALFORMED); } else if ( // Parse saDstAmount.