@@ -20,6 +20,8 @@ use katana_node::config::execution::ExecutionConfig;
2020use katana_node:: config:: fork:: ForkingConfig ;
2121#[ cfg( feature = "server" ) ]
2222use katana_node:: config:: gateway:: GatewayConfig ;
23+ #[ cfg( all( feature = "server" , feature = "grpc" ) ) ]
24+ use katana_node:: config:: grpc:: GrpcConfig ;
2325use katana_node:: config:: metrics:: MetricsConfig ;
2426#[ cfg( feature = "cartridge" ) ]
2527use katana_node:: config:: paymaster:: PaymasterConfig ;
@@ -135,6 +137,10 @@ pub struct SequencerNodeArgs {
135137 #[ cfg( feature = "tee" ) ]
136138 #[ command( flatten) ]
137139 pub tee : TeeOptions ,
140+
141+ #[ cfg( all( feature = "server" , feature = "grpc" ) ) ]
142+ #[ command( flatten) ]
143+ pub grpc : GrpcOptions ,
138144}
139145
140146impl SequencerNodeArgs {
@@ -209,6 +215,8 @@ impl SequencerNodeArgs {
209215 let ( chain, cs_messaging) = self . chain_spec ( ) ?;
210216 let metrics = self . metrics_config ( ) ;
211217 let gateway = self . gateway_config ( ) ;
218+ #[ cfg( all( feature = "server" , feature = "grpc" ) ) ]
219+ let grpc = self . grpc_config ( ) ;
212220 let forking = self . forking_config ( ) ?;
213221 let execution = self . execution_config ( ) ;
214222 let sequencing = self . sequencer_config ( ) ;
@@ -222,6 +230,8 @@ impl SequencerNodeArgs {
222230 db,
223231 dev,
224232 rpc,
233+ #[ cfg( feature = "grpc" ) ]
234+ grpc,
225235 chain,
226236 metrics,
227237 gateway,
@@ -448,6 +458,21 @@ impl SequencerNodeArgs {
448458 None
449459 }
450460
461+ #[ cfg( all( feature = "server" , feature = "grpc" ) ) ]
462+ fn grpc_config ( & self ) -> Option < GrpcConfig > {
463+ if self . grpc . grpc_enable {
464+ use std:: time:: Duration ;
465+
466+ Some ( GrpcConfig {
467+ addr : self . grpc . grpc_addr ,
468+ port : self . grpc . grpc_port ,
469+ timeout : self . grpc . grpc_timeout . map ( Duration :: from_secs) ,
470+ } )
471+ } else {
472+ None
473+ }
474+ }
475+
451476 #[ cfg( feature = "cartridge" ) ]
452477 fn cartridge_config ( & self ) -> Option < PaymasterConfig > {
453478 if self . cartridge . paymaster {
@@ -508,6 +533,11 @@ impl SequencerNodeArgs {
508533 }
509534 }
510535
536+ #[ cfg( all( feature = "server" , feature = "grpc" ) ) ]
537+ {
538+ self . grpc . merge ( config. grpc . as_ref ( ) ) ;
539+ }
540+
511541 self . starknet . merge ( config. starknet . as_ref ( ) ) ;
512542 self . development . merge ( config. development . as_ref ( ) ) ;
513543
@@ -881,13 +911,13 @@ explorer = true
881911 ControllerV108 , ControllerV109 ,
882912 } ;
883913
884- assert ! ( config. chain. genesis( ) . classes. get ( & ControllerV104 :: HASH ) . is_some ( ) ) ;
885- assert ! ( config. chain. genesis( ) . classes. get ( & ControllerV105 :: HASH ) . is_some ( ) ) ;
886- assert ! ( config. chain. genesis( ) . classes. get ( & ControllerV106 :: HASH ) . is_some ( ) ) ;
887- assert ! ( config. chain. genesis( ) . classes. get ( & ControllerV107 :: HASH ) . is_some ( ) ) ;
888- assert ! ( config. chain. genesis( ) . classes. get ( & ControllerV108 :: HASH ) . is_some ( ) ) ;
889- assert ! ( config. chain. genesis( ) . classes. get ( & ControllerV109 :: HASH ) . is_some ( ) ) ;
890- assert ! ( config. chain. genesis( ) . classes. get ( & ControllerLatest :: HASH ) . is_some ( ) ) ;
914+ assert ! ( config. chain. genesis( ) . classes. contains_key ( & ControllerV104 :: HASH ) ) ;
915+ assert ! ( config. chain. genesis( ) . classes. contains_key ( & ControllerV105 :: HASH ) ) ;
916+ assert ! ( config. chain. genesis( ) . classes. contains_key ( & ControllerV106 :: HASH ) ) ;
917+ assert ! ( config. chain. genesis( ) . classes. contains_key ( & ControllerV107 :: HASH ) ) ;
918+ assert ! ( config. chain. genesis( ) . classes. contains_key ( & ControllerV108 :: HASH ) ) ;
919+ assert ! ( config. chain. genesis( ) . classes. contains_key ( & ControllerV109 :: HASH ) ) ;
920+ assert ! ( config. chain. genesis( ) . classes. contains_key ( & ControllerLatest :: HASH ) ) ;
891921
892922 // Test without paymaster enabled
893923 let args = SequencerNodeArgs :: parse_from ( [ "katana" ] ) ;
@@ -896,12 +926,12 @@ explorer = true
896926 // Verify cartridge module is not enabled by default
897927 assert ! ( !config. rpc. apis. contains( & RpcModuleKind :: Cartridge ) ) ;
898928
899- assert ! ( config. chain. genesis( ) . classes. get ( & ControllerV104 :: HASH ) . is_none ( ) ) ;
900- assert ! ( config. chain. genesis( ) . classes. get ( & ControllerV105 :: HASH ) . is_none ( ) ) ;
901- assert ! ( config. chain. genesis( ) . classes. get ( & ControllerV106 :: HASH ) . is_none ( ) ) ;
902- assert ! ( config. chain. genesis( ) . classes. get ( & ControllerV107 :: HASH ) . is_none ( ) ) ;
903- assert ! ( config. chain. genesis( ) . classes. get ( & ControllerV108 :: HASH ) . is_none ( ) ) ;
904- assert ! ( config. chain. genesis( ) . classes. get ( & ControllerV109 :: HASH ) . is_none ( ) ) ;
905- assert ! ( config. chain. genesis( ) . classes. get ( & ControllerLatest :: HASH ) . is_none ( ) ) ;
929+ assert ! ( ! config. chain. genesis( ) . classes. contains_key ( & ControllerV104 :: HASH ) ) ;
930+ assert ! ( ! config. chain. genesis( ) . classes. contains_key ( & ControllerV105 :: HASH ) ) ;
931+ assert ! ( ! config. chain. genesis( ) . classes. contains_key ( & ControllerV106 :: HASH ) ) ;
932+ assert ! ( ! config. chain. genesis( ) . classes. contains_key ( & ControllerV107 :: HASH ) ) ;
933+ assert ! ( ! config. chain. genesis( ) . classes. contains_key ( & ControllerV108 :: HASH ) ) ;
934+ assert ! ( ! config. chain. genesis( ) . classes. contains_key ( & ControllerV109 :: HASH ) ) ;
935+ assert ! ( ! config. chain. genesis( ) . classes. contains_key ( & ControllerLatest :: HASH ) ) ;
906936 }
907937}
0 commit comments