@@ -20,6 +20,7 @@ use apollo_consensus_orchestrator::sequencer_consensus_context::{
2020} ;
2121use apollo_infra:: component_definitions:: ComponentStarter ;
2222use apollo_infra_utils:: type_name:: short_type_name;
23+ use apollo_l1_gas_price:: exchange_rate_oracle:: ExchangeRateOracleClient ;
2324use apollo_l1_gas_price_types:: L1GasPriceProviderClient ;
2425use apollo_network:: gossipsub_impl:: Topic ;
2526use apollo_network:: metrics:: {
@@ -304,7 +305,15 @@ impl ConsensusManager {
304305 outbound_proposal_sender : outbound_internal_sender,
305306 vote_broadcast_client : votes_broadcast_channels. broadcast_topic_client . clone ( ) ,
306307 config_manager_client : Some ( Arc :: clone ( & config_manager_client) ) ,
307- strk_exchange_rate_oracle : None ,
308+ // TODO(SNIP-35): consider threading `ExchangeRateOracleConfig` through
309+ // `ConsensusManagerConfig` so it can be configured per-deployment. For now we
310+ // instantiate the default, whose `url_header_list` points at a placeholder URL;
311+ // **deployments must override `url_header_list` via their config overlay** or the
312+ // oracle will fail every request and `fee_proposal` will freeze at `fee_actual`
313+ // (safe but static).
314+ strk_exchange_rate_oracle : Some ( Arc :: new ( ExchangeRateOracleClient :: new (
315+ apollo_l1_gas_price_config:: config:: ExchangeRateOracleConfig :: default ( ) ,
316+ ) ) ) ,
308317 } ,
309318 )
310319 }
0 commit comments