|
|
|
@ -230,15 +230,20 @@ Value setaccount(const Array& params, bool fHelp)
@@ -230,15 +230,20 @@ Value setaccount(const Array& params, bool fHelp)
|
|
|
|
|
if (params.size() > 1) |
|
|
|
|
strAccount = AccountFromValue(params[1]); |
|
|
|
|
|
|
|
|
|
// Detect when changing the account of an address that is the 'unused current key' of another account:
|
|
|
|
|
if (pwalletMain->mapAddressBook.count(address.Get())) |
|
|
|
|
// Only add the account if the address is yours.
|
|
|
|
|
if (IsMine(*pwalletMain, address.Get())) |
|
|
|
|
{ |
|
|
|
|
string strOldAccount = pwalletMain->mapAddressBook[address.Get()].name; |
|
|
|
|
if (address == GetAccountAddress(strOldAccount)) |
|
|
|
|
GetAccountAddress(strOldAccount, true); |
|
|
|
|
// Detect when changing the account of an address that is the 'unused current key' of another account:
|
|
|
|
|
if (pwalletMain->mapAddressBook.count(address.Get())) |
|
|
|
|
{ |
|
|
|
|
string strOldAccount = pwalletMain->mapAddressBook[address.Get()].name; |
|
|
|
|
if (address == GetAccountAddress(strOldAccount)) |
|
|
|
|
GetAccountAddress(strOldAccount, true); |
|
|
|
|
} |
|
|
|
|
pwalletMain->SetAddressBook(address.Get(), strAccount, "receive"); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
pwalletMain->SetAddressBook(address.Get(), strAccount, "receive"); |
|
|
|
|
else |
|
|
|
|
throw JSONRPCError(RPC_MISC_ERROR, "setaccount can only be used with own address"); |
|
|
|
|
|
|
|
|
|
return Value::null; |
|
|
|
|
} |
|
|
|
|