private boolean voteNotYetCast(
      final Address localAddress,
      final Address voteAddress,
      final VoteType vote,
      final Collection<Address> validators,
      final VoteTally tally) {

    // Pre evaluate if we have a vote outstanding to auth or drop the target address
    final boolean votedAuth = tally.getOutstandingAddVotesFor(voteAddress).contains(localAddress);
    final boolean votedDrop =
        tally.getOutstandingRemoveVotesFor(voteAddress).contains(localAddress);

    // if they're a validator, we want to see them dropped, and we haven't voted to drop them yet
    if (validators.contains(voteAddress) && !votedDrop && vote == VoteType.DROP) {
      return true;
      // or if we've previously voted to auth them and we want to drop them
    } else if (votedAuth && vote == VoteType.DROP) {
      return true;
      // if they're not currently a validator and we want to see them authed and we haven't voted to
      // auth them yet
    } else if (!validators.contains(voteAddress) && !votedAuth && vote == VoteType.ADD) {
      return true;
      // or if we've previously voted to drop them and we want to see them authed
    } else if (votedDrop && vote == VoteType.ADD) {
      return true;
    }

    return false;
  }
Discards a pending vote for an address if one exists

@param address The address that should no longer be voted for
consensus/common/src/main/java/org/hyperledger/besu/consensus/common/validator/blockbased/VoteProposer.java