"<amount> is a real and is rounded to the nearest " + FormatMoney(nMinimumInputValue)
+ HelpRequiringPassphrase());
- CBitcoinAddress address(params[0].get_str());
- if (!address.IsValid())
- throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, "Invalid NovaCoin address");
+ // Parse address
+ CScript scriptPubKey;
+ string strAddress = params[0].get_str();
+
+ CBitcoinAddress address(strAddress);
+ if (address.IsValid())
+ scriptPubKey.SetDestination(address.Get());
+ else
+ {
+ CMalleablePubKey mpk(strAddress);
+ if (!mpk.IsValid())
+ throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, "Invalid NovaCoin address");
+
+ CPubKey R, pubKeyVariant;
+ mpk.GetVariant(R, pubKeyVariant);
+ scriptPubKey.SetDestination(R, pubKeyVariant);
+ }
// Amount
int64_t nAmount = AmountFromValue(params[1]);
if (pwalletMain->IsLocked())
throw JSONRPCError(RPC_WALLET_UNLOCK_NEEDED, "Error: Please enter the wallet passphrase with walletpassphrase first.");
- // Parse Bitcoin address
- CScript scriptPubKey;
- scriptPubKey.SetDestination(address.Get());
-
string strError = pwalletMain->SendMoney(scriptPubKey, nAmount, wtx);
if (strError != "")
throw JSONRPCError(RPC_WALLET_ERROR, strError);
+ HelpRequiringPassphrase());
string strAccount = AccountFromValue(params[0]);
- CBitcoinAddress address(params[1].get_str());
- if (!address.IsValid())
- throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, "Invalid NovaCoin address");
+
+ // Parse address
+ CScript scriptPubKey;
+ string strAddress = params[0].get_str();
+
+ CBitcoinAddress address(strAddress);
+ if (address.IsValid())
+ scriptPubKey.SetDestination(address.Get());
+ else
+ {
+ CMalleablePubKey mpk(strAddress);
+ if (!mpk.IsValid())
+ throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, "Invalid NovaCoin address");
+
+ CPubKey R, pubKeyVariant;
+ mpk.GetVariant(R, pubKeyVariant);
+ scriptPubKey.SetDestination(R, pubKeyVariant);
+ }
+
int64_t nAmount = AmountFromValue(params[2]);
if (nAmount < nMinimumInputValue)
if (nAmount > nBalance)
throw JSONRPCError(RPC_WALLET_INSUFFICIENT_FUNDS, "Account has insufficient funds");
- // Parse Bitcoin address
- CScript scriptPubKey;
- scriptPubKey.SetDestination(address.Get());
-
// Send
string strError = pwalletMain->SendMoney(scriptPubKey, nAmount, wtx);
if (strError != "")
nAmount = (nAmount / CENT) * CENT; // round to cent
if (nAmount < 0)
throw runtime_error("amount cannot be negative.\n");
- mapArgs["-reservebalance"] = FormatMoney(nAmount).c_str();
+ mapArgs["-reservebalance"] = FormatMoney(nAmount);
}
else
{
"newmalleablekey\n"
"Make a malleable public/private key pair.\n");
- if (!fTestNet)
+ if (!fTestNet && GetTime() < SMALLDATA_SWITCH_TIME)
throw runtime_error("This feature has been disabled for mainNet clients");
CMalleableKeyView keyView = pwalletMain->GenerateNewMalleableKey();