@@ -2,17 +2,27 @@ use apollo_committer_types::communication::{CommitterRequest, CommitterResponse}
22use apollo_infra:: component_definitions:: ComponentRequestHandler ;
33use apollo_infra:: component_server:: { LocalComponentServer , RemoteComponentServer } ;
44use async_trait:: async_trait;
5+ #[ cfg( feature = "os_input" ) ]
6+ use starknet_committer:: db:: forest_trait:: forest_trait_witnesses:: ForestStorageWithWitnesses ;
7+ #[ cfg( not( feature = "os_input" ) ) ]
8+ use starknet_committer:: db:: forest_trait:: forest_trait_witnesses:: ForestWriterWithMetadataAndWitnesses ;
9+ #[ cfg( not( feature = "os_input" ) ) ]
510use starknet_committer:: db:: forest_trait:: ForestStorageWithEmptyReadContext ;
11+ #[ cfg( feature = "os_input" ) ]
12+ use starknet_patricia_storage:: storage_trait:: ImmutableReadOnlyStorage ;
613
714use crate :: committer:: { ApolloCommitter , Committer , StorageConstructor } ;
815
916pub type LocalCommitterServer =
1017 LocalComponentServer < ApolloCommitter , CommitterRequest , CommitterResponse > ;
1118pub type RemoteCommitterServer = RemoteComponentServer < CommitterRequest , CommitterResponse > ;
1219
20+ #[ cfg( not( feature = "os_input" ) ) ]
1321#[ async_trait]
14- impl < S : StorageConstructor , ForestDB : ForestStorageWithEmptyReadContext < Storage = S > >
15- ComponentRequestHandler < CommitterRequest , CommitterResponse > for Committer < S , ForestDB >
22+ impl < S : StorageConstructor , ForestDB > ComponentRequestHandler < CommitterRequest , CommitterResponse >
23+ for Committer < S , ForestDB >
24+ where
25+ ForestDB : ForestStorageWithEmptyReadContext < Storage = S > + ForestWriterWithMetadataAndWitnesses ,
1626{
1727 async fn handle_request ( & mut self , request : CommitterRequest ) -> CommitterResponse {
1828 match request {
@@ -25,3 +35,28 @@ impl<S: StorageConstructor, ForestDB: ForestStorageWithEmptyReadContext<Storage
2535 }
2636 }
2737}
38+
39+ #[ cfg( feature = "os_input" ) ]
40+ #[ async_trait]
41+ impl < S , ForestDB > ComponentRequestHandler < CommitterRequest , CommitterResponse >
42+ for Committer < S , ForestDB >
43+ where
44+ S : StorageConstructor + ImmutableReadOnlyStorage + ' static ,
45+ ForestDB : ForestStorageWithWitnesses < Storage = S > ,
46+ {
47+ async fn handle_request ( & mut self , request : CommitterRequest ) -> CommitterResponse {
48+ match request {
49+ CommitterRequest :: CommitBlock ( commit_block_request) => {
50+ CommitterResponse :: CommitBlock ( self . commit_block ( commit_block_request) . await )
51+ }
52+ CommitterRequest :: RevertBlock ( revert_block_request) => {
53+ CommitterResponse :: RevertBlock ( self . revert_block ( revert_block_request) . await )
54+ }
55+ CommitterRequest :: ReadPathsAndCommitBlock ( req) => {
56+ CommitterResponse :: ReadPathsAndCommitBlock (
57+ self . read_paths_and_commit_block ( req) . await ,
58+ )
59+ }
60+ }
61+ }
62+ }
0 commit comments