@@ -2,7 +2,12 @@ use std::collections::BTreeMap;
2
2
use std:: time:: Duration ;
3
3
4
4
use apollo_config:: converters:: deserialize_float_seconds_to_duration;
5
- use apollo_config:: dumping:: { ser_optional_param, ser_param, SerializeConfig } ;
5
+ use apollo_config:: dumping:: {
6
+ prepend_sub_config_name,
7
+ ser_optional_param,
8
+ ser_param,
9
+ SerializeConfig ,
10
+ } ;
6
11
use apollo_config:: validators:: validate_ascii;
7
12
use apollo_config:: { ParamPath , ParamPrivacyInput , SerializedParam } ;
8
13
use serde:: { Deserialize , Serialize } ;
@@ -12,6 +17,25 @@ use validator::Validate;
12
17
13
18
use crate :: transaction_manager:: TransactionManagerConfig ;
14
19
20
+ #[ derive( Clone , Debug , Default , Serialize , Deserialize , Validate , PartialEq ) ]
21
+ pub struct L1MessageProviderConfig {
22
+ pub l1_provider_config : L1ProviderConfig ,
23
+ pub l1_scraper_config : L1ScraperConfig ,
24
+ }
25
+
26
+ impl SerializeConfig for L1MessageProviderConfig {
27
+ fn dump ( & self ) -> BTreeMap < ParamPath , SerializedParam > {
28
+ let mut dump =
29
+ prepend_sub_config_name ( self . l1_provider_config . dump ( ) , "l1_provider_config" ) ;
30
+ dump. append ( & mut prepend_sub_config_name (
31
+ self . l1_scraper_config . dump ( ) ,
32
+ "l1_scraper_config" ,
33
+ ) ) ;
34
+
35
+ dump
36
+ }
37
+ }
38
+
15
39
#[ derive( Clone , Copy , Debug , Serialize , Deserialize , Validate , PartialEq , Eq ) ]
16
40
pub struct L1ProviderConfig {
17
41
/// In most cases this can remain None: the provider defaults to using the
0 commit comments