X-Git-Url: https://git.novaco.in/?p=novacoin.git;a=blobdiff_plain;f=src%2Frpcwallet.cpp;h=3edfb17d9f9d82286a5ca611f1b2a6f0506171bc;hp=d1e368c3f1a61f70bc23614aa595b15d11db6cdc;hb=9417ff30cae6ffffd1c4fc4f4b1a81551f04dbc5;hpb=712ad72f8e002f95b49597824ec913eb95a0113f diff --git a/src/rpcwallet.cpp b/src/rpcwallet.cpp index d1e368c..3edfb17 100644 --- a/src/rpcwallet.cpp +++ b/src/rpcwallet.cpp @@ -15,12 +15,13 @@ using namespace std; int64_t nWalletUnlockTime; static CCriticalSection cs_nWalletUnlockTime; +extern int64_t nReserveBalance; extern void TxToJSON(const CTransaction& tx, const uint256 hashBlock, json_spirit::Object& entry); std::string HelpRequiringPassphrase() { return pwalletMain->IsCrypted() - ? "\nrequires wallet passphrase to be set with walletpassphrase first" + ? "\n\nRequires wallet passphrase to be set with walletpassphrase first" : ""; } @@ -263,7 +264,7 @@ Value mergecoins(const Array& params, bool fHelp) " is resulting inputs sum\n" " is minimum value of inputs which are used in join process\n" " is resulting value of inputs which will be created\n" - "All values are real and and rounded to the nearest " + FormatMoney(MIN_TXOUT_AMOUNT) + "All values are real and and rounded to the nearest " + FormatMoney(nMinimumInputValue) + HelpRequiringPassphrase()); if (pwalletMain->IsLocked()) @@ -278,13 +279,13 @@ Value mergecoins(const Array& params, bool fHelp) // Output amount int64_t nOutputValue = AmountFromValue(params[2]); - if (nAmount < MIN_TXOUT_AMOUNT) + if (nAmount < nMinimumInputValue) throw JSONRPCError(-101, "Send amount too small"); - if (nMinValue < MIN_TXOUT_AMOUNT) + if (nMinValue < nMinimumInputValue) throw JSONRPCError(-101, "Max value too small"); - if (nOutputValue < MIN_TXOUT_AMOUNT) + if (nOutputValue < nMinimumInputValue) throw JSONRPCError(-101, "Output value too small"); if (nOutputValue < nMinValue) @@ -306,7 +307,7 @@ Value sendtoaddress(const Array& params, bool fHelp) if (fHelp || params.size() < 2 || params.size() > 4) throw runtime_error( "sendtoaddress [comment] [comment-to]\n" - " is a real and is rounded to the nearest " + FormatMoney(MIN_TXOUT_AMOUNT) + " is a real and is rounded to the nearest " + FormatMoney(nMinimumInputValue) + HelpRequiringPassphrase()); CBitcoinAddress address(params[0].get_str()); @@ -316,7 +317,7 @@ Value sendtoaddress(const Array& params, bool fHelp) // Amount int64_t nAmount = AmountFromValue(params[1]); - if (nAmount < MIN_TXOUT_AMOUNT) + if (nAmount < nMinimumInputValue) throw JSONRPCError(-101, "Send amount too small"); // Wallet comments @@ -629,7 +630,7 @@ Value movecmd(const Array& params, bool fHelp) string strTo = AccountFromValue(params[1]); int64_t nAmount = AmountFromValue(params[2]); - if (nAmount < MIN_TXOUT_AMOUNT) + if (nAmount < nMinimumInputValue) throw JSONRPCError(-101, "Send amount too small"); if (params.size() > 3) @@ -677,7 +678,7 @@ Value sendfrom(const Array& params, bool fHelp) if (fHelp || params.size() < 3 || params.size() > 6) throw runtime_error( "sendfrom [minconf=1] [comment] [comment-to]\n" - " is a real and is rounded to the nearest " + FormatMoney(MIN_TXOUT_AMOUNT) + " is a real and is rounded to the nearest " + FormatMoney(nMinimumInputValue) + HelpRequiringPassphrase()); string strAccount = AccountFromValue(params[0]); @@ -686,7 +687,7 @@ Value sendfrom(const Array& params, bool fHelp) throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, "Invalid NovaCoin address"); int64_t nAmount = AmountFromValue(params[2]); - if (nAmount < MIN_TXOUT_AMOUNT) + if (nAmount < nMinimumInputValue) throw JSONRPCError(-101, "Send amount too small"); int nMinDepth = 1; @@ -753,7 +754,7 @@ Value sendmany(const Array& params, bool fHelp) scriptPubKey.SetDestination(address.Get()); int64_t nAmount = AmountFromValue(s.value_); - if (nAmount < MIN_TXOUT_AMOUNT) + if (nAmount < nMinimumInputValue) throw JSONRPCError(-101, "Send amount too small"); totalAmount += nAmount; @@ -1410,7 +1411,9 @@ Value keypoolrefill(const Array& params, bool fHelp) if (fHelp || params.size() > 1) throw runtime_error( "keypoolrefill [new-size]\n" - "Fills the keypool." + "Fills the keypool.\n" + "IMPORTANT: Any previous backups you have made of your wallet file " + "should be replaced with the newly generated one." + HelpRequiringPassphrase()); unsigned int nSize = max(GetArg("-keypool", 100), 0); @@ -1430,6 +1433,33 @@ Value keypoolrefill(const Array& params, bool fHelp) return Value::null; } +Value keypoolreset(const Array& params, bool fHelp) +{ + if (fHelp || params.size() > 1) + throw runtime_error( + "keypoolreset [new-size]\n" + "Resets the keypool.\n" + "IMPORTANT: Any previous backups you have made of your wallet file " + "should be replaced with the newly generated one." + + HelpRequiringPassphrase()); + + unsigned int nSize = max(GetArg("-keypool", 100), 0); + if (params.size() > 0) { + if (params[0].get_int() < 0) + throw JSONRPCError(RPC_INVALID_PARAMETER, "Invalid parameter, expected valid size"); + nSize = (unsigned int) params[0].get_int(); + } + + EnsureWalletIsUnlocked(); + + pwalletMain->NewKeyPool(nSize); + + if (pwalletMain->GetKeyPoolSize() < nSize) + throw JSONRPCError(RPC_WALLET_ERROR, "Error refreshing keypool."); + + return Value::null; +} + void ThreadTopUpKeyPool(void* parg) { @@ -1723,7 +1753,6 @@ Value reservebalance(const Array& params, bool fHelp) } Object result; - int64_t nReserveBalance = 0; if (mapArgs.count("-reservebalance") && !ParseMoney(mapArgs["-reservebalance"], nReserveBalance)) throw runtime_error("invalid reserve balance amount\n"); result.push_back(Pair("reserve", (nReserveBalance > 0)));