attempt to fix ChangeLabel to setaccount behavior.

This commit is contained in:
Christopher Jeffrey 2014-10-31 17:41:15 -07:00
parent 00ee6cc18c
commit a943cb888e
1 changed files with 18 additions and 3 deletions

View File

@ -4565,6 +4565,16 @@ NAN_METHOD(WalletChangeLabel) {
CAccount account;
walletdb.ReadAccount(accountName, account);
// setaccount logic:
// If address is mine - set account label
// If address is not mine - create recipient
// NOTE: This now throws an error if the address is not owned by you.
// if (coin.accountByAddress(address)) {
// coin.accountByAddress(address).label = label;
// } else {
// coin.createRecipient(address, label);
// }
if (accountName.empty()) {
BOOST_FOREACH(const PAIRTYPE(CBitcoinAddress, CAddressBookData)& item, pwalletMain->mapAddressBook) {
const CBitcoinAddress& address = item.first;
@ -4574,6 +4584,11 @@ NAN_METHOD(WalletChangeLabel) {
break;
}
}
// If it isn't our address, create a recipient:
if (!IsMine(*pwalletMain, address.Get())) {
WalletSetRecipient(args);
NanReturnValue(True());
}
}
// Find all addresses that have the given account
@ -4581,9 +4596,9 @@ NAN_METHOD(WalletChangeLabel) {
const CBitcoinAddress& address = item.first;
const string& strName = item.second.name;
if (strName == accountName) {
walletdb.WriteName(address.ToString(), label);
walletdb.WritePurpose(address.ToString(), std::string("receive"));
// pwalletMain->SetAddressBook(address, accountName, std::string("receive"));
// walletdb.WriteName(address.ToString(), label);
// walletdb.WritePurpose(address.ToString(), std::string("receive"));
pwalletMain->SetAddressBook(address, accountName, std::string("receive"));
}
}