From f8a906ce9ab484927ed64e1ee2ab1a8a46442ca9 Mon Sep 17 00:00:00 2001 From: Arthur Britto Date: Mon, 3 Dec 2012 16:12:32 -0800 Subject: [PATCH] Refactor RPC wallet_accounts. --- src/cpp/ripple/CallRPC.cpp | 13 ++++++++++++- src/cpp/ripple/CallRPC.h | 1 + src/cpp/ripple/RPCHandler.cpp | 10 ++++++---- src/js/remote.js | 9 +++------ 4 files changed, 22 insertions(+), 11 deletions(-) diff --git a/src/cpp/ripple/CallRPC.cpp b/src/cpp/ripple/CallRPC.cpp index b0cbf5ffe..1b10a077c 100644 --- a/src/cpp/ripple/CallRPC.cpp +++ b/src/cpp/ripple/CallRPC.cpp @@ -228,6 +228,17 @@ Json::Value RPCParser::parseUnlDelete(const Json::Value& jvParams) return jvRequest; } + +// wallet_accounts +Json::Value RPCParser::parseWalletAccounts(const Json::Value& jvParams) +{ + Json::Value jvRequest; + + jvRequest["seed"] = jvParams[0u].asString(); + + return jvRequest; +} + // // parseCommand // @@ -288,7 +299,7 @@ Json::Value RPCParser::parseCommand(std::string strMethod, Json::Value jvParams) // { "validation_create", &RPCParser::doValidationCreate, 0, 1, false, false, optNone }, // { "validation_seed", &RPCParser::doValidationSeed, 0, 1, false, false, optNone }, -// { "wallet_accounts", &RPCParser::doWalletAccounts, 1, 1, false, false, optCurrent }, + { "wallet_accounts", &RPCParser::parseWalletAccounts, 1, 1 }, // { "wallet_propose", &RPCParser::doWalletPropose, 0, 1, false, false, optNone }, // { "wallet_seed", &RPCParser::doWalletSeed, 0, 1, false, false, optNone }, // diff --git a/src/cpp/ripple/CallRPC.h b/src/cpp/ripple/CallRPC.h index 0c8d12a77..99d5caabd 100644 --- a/src/cpp/ripple/CallRPC.h +++ b/src/cpp/ripple/CallRPC.h @@ -17,6 +17,7 @@ protected: 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); diff --git a/src/cpp/ripple/RPCHandler.cpp b/src/cpp/ripple/RPCHandler.cpp index 2ee5c92b4..12f972857 100644 --- a/src/cpp/ripple/RPCHandler.cpp +++ b/src/cpp/ripple/RPCHandler.cpp @@ -1325,12 +1325,14 @@ Json::Value RPCHandler::accounts(const uint256& uLedger, const RippleAddress& na return jsonAccounts; } -// wallet_accounts -Json::Value RPCHandler::doWalletAccounts(Json::Value params) +// { +// seed: +// } +Json::Value RPCHandler::doWalletAccounts(Json::Value jvParams) { RippleAddress naSeed; - if (!naSeed.setSeedGeneric(params[0u].asString())) + if (!jvParams.isMember("seed") || !naSeed.setSeedGeneric(jvParams["seed"].asString())) { return rpcError(rpcBAD_SEED); } @@ -2214,7 +2216,7 @@ Json::Value RPCHandler::doCommand(Json::Value& jvParams, int iRole) { "validation_create", &RPCHandler::doValidationCreate, 0, 1, false, false, optNone }, { "validation_seed", &RPCHandler::doValidationSeed, 0, 1, false, false, optNone }, - { "wallet_accounts", &RPCHandler::doWalletAccounts, 1, 1, false, false, optCurrent }, + { "wallet_accounts", &RPCHandler::doWalletAccounts, -1, -1, false, false, optCurrent }, { "wallet_propose", &RPCHandler::doWalletPropose, 0, 1, false, false, optNone }, { "wallet_seed", &RPCHandler::doWalletSeed, 0, 1, false, false, optNone }, diff --git a/src/js/remote.js b/src/js/remote.js index 0d5a80b4b..a65aee2fe 100644 --- a/src/js/remote.js +++ b/src/js/remote.js @@ -712,14 +712,12 @@ Remote.prototype.request_ripple_lines_get = function (accountID, index) { return request; }; -Remote.prototype.request_wallet_accounts = function (key) { - // XXX Does this require the server to be trusted? - //assert(this.trusted); +Remote.prototype.request_wallet_accounts = function (seed) { + assert(this.trusted); // Don't send secrets. var request = new Request(this, 'wallet_accounts'); - // XXX Convert API call to JSON - request.message.params = [key]; + request.message.seed = seed; return request; }; @@ -730,7 +728,6 @@ Remote.prototype.request_account_tx = function (accountID, ledger_min, ledger_ma var request = new Request(this, 'account_tx'); - // XXX Convert API call to JSON request.message.account = accountID; if (ledger_min === ledger_max) {