@Singleton
  @Provides
  public ProtocolScheduleBuilder provideProtocolScheduleBuilder(
      final GenesisConfigOptions config,
      final ProtocolSpecAdapters protocolSpecAdapters,
      final boolean isRevertReasonEnabled,
      final EvmConfiguration evmConfiguration,
      final BadBlockManager badBlockManager,
      final boolean isParallelTxProcessingEnabled,
      final MetricsSystem metricsSystem,
      final MiningConfiguration miningConfiguration) {

    ProtocolScheduleBuilder builder =
        new ProtocolScheduleBuilder(
            config,
            config.getChainId(),
            protocolSpecAdapters,
            isRevertReasonEnabled,
            evmConfiguration,
            miningConfiguration,
            badBlockManager,
            isParallelTxProcessingEnabled,
            metricsSystem);

    return builder;
  }
Provides the protocol schedule builder.

@param config the genesis config options
@param protocolSpecAdapters the protocol spec adapters
@param isRevertReasonEnabled whether revert reason is enabled
@param evmConfiguration the EVM configuration
@param badBlockManager the bad block manager
@param isParallelTxProcessingEnabled whether parallel tx processing is enabled
@param metricsSystem the metrics system
@param miningConfiguration the mining parameters
@return the protocol schedule builder
ethereum/core/src/main/java/org/hyperledger/besu/ethereum/components/ProtocolScheduleModule.java