diff --git a/src/cpp/ripple/CallRPC.cpp b/src/cpp/ripple/CallRPC.cpp index 1b10a077c0..ba98a48d78 100644 --- a/src/cpp/ripple/CallRPC.cpp +++ b/src/cpp/ripple/CallRPC.cpp @@ -239,6 +239,17 @@ Json::Value RPCParser::parseWalletAccounts(const Json::Value& jvParams) return jvRequest; } +// wallet_propose [] +// is only for testing. Master seeds should only be generated randomly. +Json::Value RPCParser::parseWalletPropose(const Json::Value& jvParams) +{ + Json::Value jvRequest; + + jvRequest["passphrase"] = jvParams[0u].asString(); + + return jvRequest; +} + // // parseCommand // @@ -300,7 +311,7 @@ Json::Value RPCParser::parseCommand(std::string strMethod, Json::Value jvParams) // { "validation_seed", &RPCParser::doValidationSeed, 0, 1, false, false, optNone }, { "wallet_accounts", &RPCParser::parseWalletAccounts, 1, 1 }, -// { "wallet_propose", &RPCParser::doWalletPropose, 0, 1, false, false, optNone }, + { "wallet_propose", &RPCParser::parseWalletPropose, 0, 1 }, // { "wallet_seed", &RPCParser::doWalletSeed, 0, 1, false, false, optNone }, // // { "login", &RPCParser::doLogin, 2, 2, true, false, optNone }, diff --git a/src/cpp/ripple/CallRPC.h b/src/cpp/ripple/CallRPC.h index 99d5caabdb..db3677ec50 100644 --- a/src/cpp/ripple/CallRPC.h +++ b/src/cpp/ripple/CallRPC.h @@ -11,17 +11,18 @@ class RPCParser protected: typedef Json::Value (RPCParser::*parseFuncPtr)(const Json::Value &jvParams); - Json::Value parseAsIs(const Json::Value& jvParams); Json::Value parseAccountInfo(const Json::Value& jvParams); Json::Value parseAccountTransactions(const Json::Value& jvParams); + Json::Value parseAsIs(const Json::Value& jvParams); Json::Value parseConnect(const Json::Value& jvParams); Json::Value parseEvented(const Json::Value& jvParams); Json::Value parseLedger(const Json::Value& jvParams); - Json::Value parseWalletAccounts(const Json::Value& jvParams); Json::Value parseRippleLinesGet(const Json::Value& jvParams); Json::Value parseSubmit(const Json::Value& jvParams); Json::Value parseUnlAdd(const Json::Value& jvParams); Json::Value parseUnlDelete(const Json::Value& jvParams); + Json::Value parseWalletAccounts(const Json::Value& jvParams); + Json::Value parseWalletPropose(const Json::Value& jvParams); public: Json::Value parseCommand(std::string strMethod, Json::Value jvParams); diff --git a/src/cpp/ripple/RPCHandler.cpp b/src/cpp/ripple/RPCHandler.cpp index b2d6028242..ce1395b81b 100644 --- a/src/cpp/ripple/RPCHandler.cpp +++ b/src/cpp/ripple/RPCHandler.cpp @@ -1372,20 +1372,21 @@ Json::Value RPCHandler::doLogRotate(Json::Value) return Log::rotateLog(); } -// wallet_propose [] -// is only for testing. Master seeds should only be generated randomly. -Json::Value RPCHandler::doWalletPropose(Json::Value params) +// { +// passphrase: +// } +Json::Value RPCHandler::doWalletPropose(Json::Value jvRequest) { RippleAddress naSeed; RippleAddress naAccount; - if (params.empty()) + if (jvRequest.isMember("passphrase")) { - naSeed.setSeedRandom(); + naSeed = RippleAddress::createSeedGeneric(jvRequest["passphrase"].asString()); } else { - naSeed = RippleAddress::createSeedGeneric(params[0u].asString()); + naSeed.setSeedRandom(); } RippleAddress naGenerator = RippleAddress::createGeneratorPublic(naSeed); @@ -2219,7 +2220,7 @@ Json::Value RPCHandler::doCommand(Json::Value& jvParams, int iRole) { "validation_seed", &RPCHandler::doValidationSeed, 0, 1, false, false, optNone }, { "wallet_accounts", &RPCHandler::doWalletAccounts, -1, -1, false, false, optCurrent }, - { "wallet_propose", &RPCHandler::doWalletPropose, 0, 1, false, false, optNone }, + { "wallet_propose", &RPCHandler::doWalletPropose, -1, -1, false, false, optNone }, { "wallet_seed", &RPCHandler::doWalletSeed, 0, 1, false, false, optNone }, { "login", &RPCHandler::doLogin, 2, 2, true, false, optNone },