mirror of
https://github.com/XRPLF/rippled.git
synced 2025-11-24 21:15:58 +00:00
Refactor RPC wallet_seed.
This commit is contained in:
@@ -245,7 +245,19 @@ Json::Value RPCParser::parseWalletPropose(const Json::Value& jvParams)
|
||||
{
|
||||
Json::Value jvRequest;
|
||||
|
||||
jvRequest["passphrase"] = jvParams[0u].asString();
|
||||
if (jvParams.size())
|
||||
jvRequest["passphrase"] = jvParams[0u].asString();
|
||||
|
||||
return jvRequest;
|
||||
}
|
||||
|
||||
// wallet_seed [<seed>|<passphrase>|<passkey>]
|
||||
Json::Value RPCParser::parseWalletSeed(const Json::Value& jvParams)
|
||||
{
|
||||
Json::Value jvRequest;
|
||||
|
||||
if (jvParams.size())
|
||||
jvRequest["secret"] = jvParams[0u].asString();
|
||||
|
||||
return jvRequest;
|
||||
}
|
||||
@@ -312,7 +324,7 @@ Json::Value RPCParser::parseCommand(std::string strMethod, Json::Value jvParams)
|
||||
|
||||
{ "wallet_accounts", &RPCParser::parseWalletAccounts, 1, 1 },
|
||||
{ "wallet_propose", &RPCParser::parseWalletPropose, 0, 1 },
|
||||
// { "wallet_seed", &RPCParser::doWalletSeed, 0, 1, false, false, optNone },
|
||||
{ "wallet_seed", &RPCParser::parseWalletSeed, 0, 1 },
|
||||
//
|
||||
// { "login", &RPCParser::doLogin, 2, 2, true, false, optNone },
|
||||
|
||||
|
||||
@@ -23,6 +23,7 @@ protected:
|
||||
Json::Value parseUnlDelete(const Json::Value& jvParams);
|
||||
Json::Value parseWalletAccounts(const Json::Value& jvParams);
|
||||
Json::Value parseWalletPropose(const Json::Value& jvParams);
|
||||
Json::Value parseWalletSeed(const Json::Value& jvParams);
|
||||
|
||||
public:
|
||||
Json::Value parseCommand(std::string strMethod, Json::Value jvParams);
|
||||
|
||||
@@ -1401,39 +1401,40 @@ Json::Value RPCHandler::doWalletPropose(Json::Value jvRequest)
|
||||
return obj;
|
||||
}
|
||||
|
||||
// wallet_seed [<seed>|<passphrase>|<passkey>]
|
||||
Json::Value RPCHandler::doWalletSeed(Json::Value params)
|
||||
// {
|
||||
// secret: <string>
|
||||
// }
|
||||
Json::Value RPCHandler::doWalletSeed(Json::Value jvRequest)
|
||||
{
|
||||
RippleAddress naSeed;
|
||||
RippleAddress raSeed;
|
||||
bool bSecret = jvRequest.isMember("secret");
|
||||
|
||||
if (params.size()
|
||||
&& !naSeed.setSeedGeneric(params[0u].asString()))
|
||||
if (bSecret && !raSeed.setSeedGeneric(jvRequest["secret"].asString()))
|
||||
{
|
||||
return rpcError(rpcBAD_SEED);
|
||||
}
|
||||
else
|
||||
{
|
||||
RippleAddress naAccount;
|
||||
RippleAddress raAccount;
|
||||
|
||||
if (!params.size())
|
||||
if (!bSecret)
|
||||
{
|
||||
naSeed.setSeedRandom();
|
||||
raSeed.setSeedRandom();
|
||||
}
|
||||
|
||||
RippleAddress naGenerator = RippleAddress::createGeneratorPublic(naSeed);
|
||||
RippleAddress raGenerator = RippleAddress::createGeneratorPublic(raSeed);
|
||||
|
||||
naAccount.setAccountPublic(naGenerator, 0);
|
||||
raAccount.setAccountPublic(raGenerator, 0);
|
||||
|
||||
Json::Value obj(Json::objectValue);
|
||||
|
||||
obj["seed"] = naSeed.humanSeed();
|
||||
obj["key"] = naSeed.humanSeed1751();
|
||||
obj["seed"] = raSeed.humanSeed();
|
||||
obj["key"] = raSeed.humanSeed1751();
|
||||
|
||||
return obj;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// TODO: for now this simply checks if this is the admin account
|
||||
// TODO: need to prevent them hammering this over and over
|
||||
// TODO: maybe a better way is only allow admin from local host
|
||||
@@ -2221,7 +2222,7 @@ Json::Value RPCHandler::doCommand(Json::Value& jvParams, int iRole)
|
||||
|
||||
{ "wallet_accounts", &RPCHandler::doWalletAccounts, -1, -1, false, false, optCurrent },
|
||||
{ "wallet_propose", &RPCHandler::doWalletPropose, -1, -1, false, false, optNone },
|
||||
{ "wallet_seed", &RPCHandler::doWalletSeed, 0, 1, false, false, optNone },
|
||||
{ "wallet_seed", &RPCHandler::doWalletSeed, -1, -1, false, false, optNone },
|
||||
|
||||
{ "login", &RPCHandler::doLogin, 2, 2, true, false, optNone },
|
||||
|
||||
|
||||
Reference in New Issue
Block a user