message: [Wallet][RPC][Cold Staking] `delegatorremove`, Instead of remove the address from the address book, update the purpose to "delegable" to be whitelisted again, in the future, if the user wants it.
diff: // Distributed under the MIT software license, see the accompanying
  // file COPYING or http://www.opensource.org/licenses/mit-license.php.
  +#include "addressbook.h"
  #include "amount.h"
  #include "base58.h"
  #include "core_io.h"
  @@ -166,7 +167,7 @@ UniValue delegatoradd(const UniValue& params, bool fHelp)
  if (!address.GetKeyID(keyID))
  throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, "Unable to get KeyID from PIVX address");
  - return pwalletMain->SetAddressBook(keyID, "", "delegator");
  + return pwalletMain->SetAddressBook(keyID, "", CAddressBookData::AddressBookPurpose::DELEGATOR);
  }
  UniValue delegatorremove(const UniValue& params, bool fHelp)
  @@ -174,7 +175,7 @@ UniValue delegatorremove(const UniValue& params, bool fHelp)
  if (fHelp || params.size() != 1)
  throw std::runtime_error(
  "delegatorremove \"addr\"\n"
  - "\nRemoves the provided address <addr> from the allowed delegators keystore.\n"
  + "\nUpdates the provided address <addr> from the allowed delegators keystore to a \"delegable\" status.\n"
  "This disables the staking of coins delegated to this wallet, owned by <addr>\n"
  "\nArguments:\n"
  @@ -195,7 +196,19 @@ UniValue delegatorremove(const UniValue& params, bool fHelp)
  if (!address.GetKeyID(keyID))
  throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, "Unable to get KeyID from PIVX address");
  - return pwalletMain->DelAddressBook(keyID);
  + if (!pwalletMain->HasAddressBook(keyID))
  + throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, "Unable to get PIVX address from addressBook");
  +
  + std::string label = "";
  + {
  + LOCK(pwalletMain->cs_wallet);
  + std::map<CTxDestination, CAddressBookData>::iterator mi = pwalletMain->mapAddressBook.find(address.Get());
  + if (mi != pwalletMain->mapAddressBook.end()) {
  + label = mi->second.name;
  + }
  + }
  +
  + return pwalletMain->SetAddressBook(keyID, label, CAddressBookData::AddressBookPurpose::DELEGABLE);
  }
  UniValue ListaddressesForPurpose(const std::string strPurpose)
  