@@ -38,6 +38,7 @@ use apollo_monitoring_endpoint::config::MonitoringEndpointConfig;
3838use apollo_network:: network_manager:: test_utils:: create_connected_network_configs;
3939use apollo_network:: NetworkConfig ;
4040use apollo_node:: config:: component_config:: ComponentConfig ;
41+ use apollo_node:: config:: component_execution_config:: ExpectedComponentConfig ;
4142use apollo_node:: config:: definitions:: ConfigPointersMap ;
4243use apollo_node:: config:: monitoring:: MonitoringConfig ;
4344use apollo_node:: config:: node_config:: { SequencerNodeConfig , CONFIG_POINTERS } ;
@@ -255,23 +256,43 @@ pub fn create_node_config(
255256 to_value ( starknet_url) . expect ( "Failed to serialize starknet_url" ) ,
256257 ) ;
257258
259+ // A helper macro that wraps the config in `Some(...)` if `components.<field>` expects it;
260+ // otherwise returns `None`. Assumes `components` is in scope.
261+ macro_rules! wrap_if_component_config_expected {
262+ ( $component_field: ident, $config_field: expr) => { {
263+ if components. $component_field. is_component_config_expected( ) {
264+ Some ( $config_field)
265+ } else {
266+ None
267+ }
268+ } } ;
269+ }
270+
271+ // Retain only the required configs.
258272 let base_layer_config = Some ( base_layer_config) ;
259- let batcher_config = Some ( batcher_config) ;
260- let class_manager_config = Some ( class_manager_config) ;
261- let consensus_manager_config = Some ( consensus_manager_config) ;
262- let gateway_config = Some ( gateway_config) ;
263- let http_server_config = Some ( http_server_config) ;
264- let l1_endpoint_monitor_config = Some ( l1_endpoint_monitor_config) ;
265- let l1_gas_price_provider_config = Some ( l1_gas_price_provider_config) ;
266- let l1_gas_price_scraper_config = Some ( l1_gas_price_scraper_config) ;
267- let l1_provider_config = Some ( l1_provider_config) ;
268- let l1_scraper_config = Some ( l1_scraper_config) ;
269- let mempool_config = Some ( mempool_config) ;
270- let mempool_p2p_config = Some ( mempool_p2p_config) ;
271- let monitoring_endpoint_config = Some ( monitoring_endpoint_config) ;
273+ let batcher_config = wrap_if_component_config_expected ! ( batcher, batcher_config) ;
274+ let class_manager_config =
275+ wrap_if_component_config_expected ! ( class_manager, class_manager_config) ;
276+ let consensus_manager_config =
277+ wrap_if_component_config_expected ! ( consensus_manager, consensus_manager_config) ;
278+ let gateway_config = wrap_if_component_config_expected ! ( gateway, gateway_config) ;
279+ let http_server_config = wrap_if_component_config_expected ! ( http_server, http_server_config) ;
280+ let l1_endpoint_monitor_config =
281+ wrap_if_component_config_expected ! ( l1_endpoint_monitor, l1_endpoint_monitor_config) ;
282+ let l1_gas_price_provider_config =
283+ wrap_if_component_config_expected ! ( l1_gas_price_provider, l1_gas_price_provider_config) ;
284+ let l1_gas_price_scraper_config =
285+ wrap_if_component_config_expected ! ( l1_gas_price_scraper, l1_gas_price_scraper_config) ;
286+ let l1_provider_config = wrap_if_component_config_expected ! ( l1_provider, l1_provider_config) ;
287+ let l1_scraper_config = wrap_if_component_config_expected ! ( l1_scraper, l1_scraper_config) ;
288+ let mempool_config = wrap_if_component_config_expected ! ( mempool, mempool_config) ;
289+ let mempool_p2p_config = wrap_if_component_config_expected ! ( mempool_p2p, mempool_p2p_config) ;
290+ let monitoring_endpoint_config =
291+ wrap_if_component_config_expected ! ( monitoring_endpoint, monitoring_endpoint_config) ;
272292 let monitoring_config = MonitoringConfig :: default ( ) ;
273- let sierra_compiler_config = Some ( sierra_compiler_config) ;
274- let state_sync_config = Some ( state_sync_config) ;
293+ let sierra_compiler_config =
294+ wrap_if_component_config_expected ! ( sierra_compiler, sierra_compiler_config) ;
295+ let state_sync_config = wrap_if_component_config_expected ! ( state_sync, state_sync_config) ;
275296
276297 let sequencer_node_config = SequencerNodeConfig {
277298 base_layer_config,
@@ -328,7 +349,7 @@ pub(crate) fn create_consensus_manager_configs_from_network_configs(
328349 builder_address : ContractAddress :: from ( 4_u128 ) ,
329350 ..Default :: default ( )
330351 } ,
331- cende_config : CendeConfig {
352+ cende_config : CendeConfig {
332353 skip_write_height : Some ( BlockNumber ( 1 ) ) ,
333354 ..Default :: default ( )
334355 } ,
0 commit comments