@Override
  public Optional<ValidatorVote> extractVoteFromHeader(final BlockHeader header) {
    final BftExtraData bftExtraData = bftExtraDataCodec.decode(header);

    if (bftExtraData.getVote().isPresent()) {
      final Vote headerVote = bftExtraData.getVote().get();
      final ValidatorVote vote =
          new ValidatorVote(
              headerVote.isAuth() ? VoteType.ADD : VoteType.DROP,
              getProposerOfBlock(header),
              headerVote.getRecipient());
      return Optional.of(vote);
    }
    return Optional.empty();
  }
Instantiates a new Bft block interface.

@param bftExtraDataCodec the bft extra data codec
consensus/common/src/main/java/org/hyperledger/besu/consensus/common/bft/BftBlockInterface.java