### Question:
IbftBlockHashing { public static List<Address> recoverCommitterAddresses( final BlockHeader header, final IbftExtraData ibftExtraData) { final Hash committerHash = IbftBlockHashing.calculateDataHashForCommittedSeal(header, ibftExtraData); return ibftExtraData.getSeals().stream() .map(p -> Util.signatureToAddress(p, committerHash)) .collect(Collectors.toList()); }  static Hash calculateDataHashForProposerSeal(
      final BlockHeader header, final IbftExtraData ibftExtraData); static Hash calculateDataHashForCommittedSeal(
      final BlockHeader header, final IbftExtraData ibftExtraData); static Hash calculateHashOfIbftBlockOnChain(final BlockHeader header); static Address recoverProposerAddress(
      final BlockHeader header, final IbftExtraData ibftExtraData); static List<Address> recoverCommitterAddresses(
      final BlockHeader header, final IbftExtraData ibftExtraData);  }### Answer:
@Test public void recoverCommitterAddresses() { final IbftExtraData ibftExtraData = IbftExtraData.decode(header); final List<Address> committers = IbftBlockHashing.recoverCommitterAddresses(header, ibftExtraData); assertThat(committers).isEqualTo(COMMITTERS_IN_HEADER); }