Merge pull request #67 from UdjinM6/110x_fix_walletpassphrase

fix walletpassphrase logic/params/description
This commit is contained in:
Darkcoin 2014-12-11 12:02:02 -07:00
commit 6277435350
2 changed files with 14 additions and 20 deletions

View File

@ -150,6 +150,7 @@ Array RPCConvertValues(const std::string &strMethod, const std::vector<std::stri
if (strMethod == "listtransactions" && n > 2) ConvertTo<int64_t>(params[2]); if (strMethod == "listtransactions" && n > 2) ConvertTo<int64_t>(params[2]);
if (strMethod == "listaccounts" && n > 0) ConvertTo<int64_t>(params[0]); if (strMethod == "listaccounts" && n > 0) ConvertTo<int64_t>(params[0]);
if (strMethod == "walletpassphrase" && n > 1) ConvertTo<int64_t>(params[1]); if (strMethod == "walletpassphrase" && n > 1) ConvertTo<int64_t>(params[1]);
if (strMethod == "walletpassphrase" && n > 2) ConvertTo<bool>(params[2]);
if (strMethod == "getblocktemplate" && n > 0) ConvertTo<Object>(params[0]); if (strMethod == "getblocktemplate" && n > 0) ConvertTo<Object>(params[0]);
if (strMethod == "listsinceblock" && n > 1) ConvertTo<int64_t>(params[1]); if (strMethod == "listsinceblock" && n > 1) ConvertTo<int64_t>(params[1]);
if (strMethod == "sendmany" && n > 1) ConvertTo<Object>(params[1]); if (strMethod == "sendmany" && n > 1) ConvertTo<Object>(params[1]);

View File

@ -1563,23 +1563,25 @@ Value walletpassphrase(const Array& params, bool fHelp)
{ {
if (pwalletMain->IsCrypted() && (fHelp || params.size() < 2 || params.size() > 3)) if (pwalletMain->IsCrypted() && (fHelp || params.size() < 2 || params.size() > 3))
throw runtime_error( throw runtime_error(
"walletpassphrase \"passphrase\" <timeout> <anonymizeOnly>\n" "walletpassphrase \"passphrase\" timeout ( anonymizeonly )>\n"
"\nStores the wallet decryption key in memory for 'timeout' seconds.\n" "\nStores the wallet decryption key in memory for 'timeout' seconds.\n"
"This is needed prior to performing transactions related to private keys such as sending darkcoins\n" "This is needed prior to performing transactions related to private keys such as sending darkcoins\n"
"\nArguments:\n" "\nArguments:\n"
"1. \"passphrase\" (string, required) The wallet passphrase\n" "1. \"passphrase\" (string, required) The wallet passphrase\n"
"2. timeout (numeric, required) The time to keep the decryption key in seconds.\n" "2. timeout (numeric, required) The time to keep the decryption key in seconds.\n"
"3. anonymizeonly (boolean, optional, default=flase) If is true sending functions are disabled."
"\nNote:\n" "\nNote:\n"
"Issuing the walletpassphrase command while the wallet is already unlocked will set a new unlock\n" "Issuing the walletpassphrase command while the wallet is already unlocked will set a new unlock\n"
"time that overrides the old one.\n" "time that overrides the old one.\n"
"\nExamples:\n" "\nExamples:\n"
"\nunlock the wallet for 60 seconds\n" "\nUlock the wallet for 60 seconds\n"
+ HelpExampleCli("walletpassphrase", "\"my pass phrase\" 60") + + HelpExampleCli("walletpassphrase", "\"my pass phrase\" 60") +
"\nUlock the wallet for 60 seconds but allow Darksend mixing only\n"
+ HelpExampleCli("walletpassphrase", "\"my pass phrase\" 60 true") +
"\nLock the wallet again (before 60 seconds)\n" "\nLock the wallet again (before 60 seconds)\n"
+ HelpExampleCli("walletlock", "") + + HelpExampleCli("walletlock", "") +
"\nAs json rpc call\n" "\nAs json rpc call\n"
+ HelpExampleRpc("walletpassphrase", "\"my pass phrase\", 60") + + HelpExampleRpc("walletpassphrase", "\"my pass phrase\", 60")
"if [anonymizeonly] is true sending functions are disabled."
); );
if (fHelp) if (fHelp)
@ -1594,24 +1596,15 @@ Value walletpassphrase(const Array& params, bool fHelp)
// Alternately, find a way to make params[0] mlock()'d to begin with. // Alternately, find a way to make params[0] mlock()'d to begin with.
strWalletPass = params[0].get_str().c_str(); strWalletPass = params[0].get_str().c_str();
if (strWalletPass.length() > 0) bool anonymizeOnly = false;
{
bool anonymizeOnly;
if (params.size() == 3) if (params.size() == 3)
anonymizeOnly = params[2].get_bool(); anonymizeOnly = params[2].get_bool();
else
anonymizeOnly = false;
if (!pwalletMain->IsLocked() && pwalletMain->fWalletUnlockAnonymizeOnly && anonymizeOnly) if (!pwalletMain->IsLocked() && pwalletMain->fWalletUnlockAnonymizeOnly && anonymizeOnly)
throw JSONRPCError(RPC_WALLET_ALREADY_UNLOCKED, "Error: Wallet is already unlocked."); throw JSONRPCError(RPC_WALLET_ALREADY_UNLOCKED, "Error: Wallet is already unlocked.");
if (!pwalletMain->Unlock(strWalletPass, anonymizeOnly)) if (!pwalletMain->Unlock(strWalletPass, anonymizeOnly))
throw JSONRPCError(RPC_WALLET_PASSPHRASE_INCORRECT, "Error: The wallet passphrase entered was incorrect."); throw JSONRPCError(RPC_WALLET_PASSPHRASE_INCORRECT, "Error: The wallet passphrase entered was incorrect.");
}
else
throw runtime_error(
"walletpassphrase <passphrase> <timeout> <anonymizeOnly>\n"
"Stores the wallet decryption key in memory for <timeout> seconds.");
pwalletMain->TopUpKeyPool(); pwalletMain->TopUpKeyPool();