RPC: add getrawchangeaddress, for raw transaction change destinations

This commit is contained in:
Jeff Garzik
2013-08-28 16:29:52 -04:00
parent bb7d0fc12f
commit e5e9904c1c
3 changed files with 25 additions and 0 deletions

View File

@@ -176,6 +176,29 @@ Value getaccountaddress(const Array& params, bool fHelp)
}
Value getrawchangeaddress(const Array& params, bool fHelp)
{
if (fHelp || params.size() > 1)
throw runtime_error(
"getrawchangeaddress\n"
"Returns a new Bitcoin address, for receiving change. "
"This is for use with raw transactions, NOT normal use.");
if (!pwalletMain->IsLocked())
pwalletMain->TopUpKeyPool();
CReserveKey reservekey(pwalletMain);
CPubKey vchPubKey;
if (!reservekey.GetReservedKey(vchPubKey))
throw JSONRPCError(RPC_WALLET_ERROR, "Error: Unable to obtain key for change");
reservekey.KeepKey();
CKeyID keyID = vchPubKey.GetID();
return CBitcoinAddress(keyID).ToString();
}
Value setaccount(const Array& params, bool fHelp)
{