@Override
  public long addBlockPropagatedListener(final BlockPropagatedListener listener) {
    return blockBroadcaster.subscribePropagateNewBlocks(
        (block, totalDifficulty) ->
            listener.onBlockPropagated(
                blockPropagatedContext(block::getHeader, block::getBody, () -> totalDifficulty)));
  }
Constructor for BesuEventsImpl

@param blockchain An instance of Blockchain
@param blockBroadcaster An instance of BlockBroadcaster
@param transactionPool An instance of TransactionPool
@param syncState An instance of SyncState
@param badBlockManager A cache of bad blocks encountered on the network
app/src/main/java/org/hyperledger/besu/services/BesuEventsImpl.java