Skip to content

Commit 77fc5f5

Browse files
apollo_gateway: add proof manager client
1 parent da168fb commit 77fc5f5

File tree

6 files changed

+24
-0
lines changed

6 files changed

+24
-0
lines changed

Cargo.lock

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

crates/apollo_gateway/Cargo.toml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ testing = [
1313
"apollo_class_manager_types/testing",
1414
"apollo_gateway_config/testing",
1515
"apollo_mempool_types/testing",
16+
"apollo_proof_manager_types/testing",
1617
"blockifier/testing",
1718
"blockifier_test_utils",
1819
]
@@ -27,6 +28,7 @@ apollo_mempool_types.workspace = true
2728
apollo_metrics.workspace = true
2829
apollo_network_types.workspace = true
2930
apollo_proc_macros.workspace = true
31+
apollo_proof_manager_types.workspace = true
3032
apollo_rpc.workspace = true
3133
apollo_state_sync_types.workspace = true
3234
async-trait.workspace = true
@@ -56,6 +58,7 @@ apollo_mempool.workspace = true
5658
apollo_mempool_types = { workspace = true, features = ["testing"] }
5759
apollo_metrics = { workspace = true, features = ["testing"] }
5860
apollo_network_types = { workspace = true, features = ["testing"] }
61+
apollo_proof_manager_types = { workspace = true, features = ["testing"] }
5962
apollo_state_sync_types = { workspace = true, features = ["testing"] }
6063
apollo_test_utils.workspace = true
6164
assert_matches.workspace = true

crates/apollo_gateway/src/gateway.rs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ use apollo_mempool_types::communication::{AddTransactionArgsWrapper, SharedMempo
2323
use apollo_mempool_types::mempool_types::AddTransactionArgs;
2424
use apollo_network_types::network_types::BroadcastedMessageMetadata;
2525
use apollo_proc_macros::sequencer_latency_histogram;
26+
use apollo_proof_manager_types::SharedProofManagerClient;
2627
use apollo_state_sync_types::communication::SharedStateSyncClient;
2728
use axum::async_trait;
2829
use blockifier::state::contract_class_manager::ContractClassManager;
@@ -64,6 +65,7 @@ pub struct Gateway {
6465
pub stateful_tx_validator_factory: Arc<dyn StatefulTransactionValidatorFactoryTrait>,
6566
pub mempool_client: SharedMempoolClient,
6667
pub transaction_converter: Arc<dyn TransactionConverterTrait>,
68+
pub proof_manager_client: SharedProofManagerClient,
6769
}
6870

6971
impl Gateway {
@@ -73,6 +75,7 @@ impl Gateway {
7375
mempool_client: SharedMempoolClient,
7476
transaction_converter: Arc<dyn TransactionConverterTrait>,
7577
stateless_tx_validator: Arc<dyn StatelessTransactionValidatorTrait>,
78+
proof_manager_client: SharedProofManagerClient,
7679
) -> Self {
7780
Self {
7881
config: Arc::new(config.clone()),
@@ -87,6 +90,7 @@ impl Gateway {
8790
}),
8891
mempool_client,
8992
transaction_converter,
93+
proof_manager_client,
9094
}
9195
}
9296

@@ -225,6 +229,7 @@ pub fn create_gateway(
225229
shared_state_sync_client: SharedStateSyncClient,
226230
mempool_client: SharedMempoolClient,
227231
class_manager_client: SharedClassManagerClient,
232+
proof_manager_client: SharedProofManagerClient,
228233
runtime: tokio::runtime::Handle,
229234
) -> Gateway {
230235
let state_reader_factory = Arc::new(SyncStateReaderFactory {
@@ -246,6 +251,7 @@ pub fn create_gateway(
246251
mempool_client,
247252
transaction_converter,
248253
stateless_tx_validator,
254+
proof_manager_client,
249255
)
250256
}
251257

crates/apollo_gateway/src/gateway_test.rs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ use apollo_mempool_types::errors::MempoolError;
3535
use apollo_mempool_types::mempool_types::{AccountState, AddTransactionArgs, ValidationArgs};
3636
use apollo_metrics::metrics::HistogramValue;
3737
use apollo_network_types::network_types::BroadcastedMessageMetadata;
38+
use apollo_proof_manager_types::MockProofManagerClient;
3839
use apollo_test_utils::{get_rng, GetTestInstance};
3940
use blockifier::blockifier::config::ContractClassManagerConfig;
4041
use blockifier::context::ChainInfo;
@@ -132,12 +133,14 @@ fn mock_dependencies() -> MockDependencies {
132133
let mock_mempool_client = MockMempoolClient::new();
133134
let mock_transaction_converter = MockTransactionConverterTrait::new();
134135
let mock_stateless_transaction_validator = mock_stateless_transaction_validator();
136+
let mock_proof_manager_client = MockProofManagerClient::new();
135137
MockDependencies {
136138
config,
137139
state_reader_factory,
138140
mock_mempool_client,
139141
mock_transaction_converter,
140142
mock_stateless_transaction_validator,
143+
mock_proof_manager_client,
141144
}
142145
}
143146

@@ -147,6 +150,7 @@ struct MockDependencies {
147150
mock_mempool_client: MockMempoolClient,
148151
mock_transaction_converter: MockTransactionConverterTrait,
149152
mock_stateless_transaction_validator: MockStatelessTransactionValidatorTrait,
153+
mock_proof_manager_client: MockProofManagerClient,
150154
}
151155

152156
impl MockDependencies {
@@ -158,6 +162,7 @@ impl MockDependencies {
158162
Arc::new(self.mock_mempool_client),
159163
Arc::new(self.mock_transaction_converter),
160164
Arc::new(self.mock_stateless_transaction_validator),
165+
Arc::new(self.mock_proof_manager_client),
161166
)
162167
}
163168

@@ -572,6 +577,7 @@ async fn add_tx_returns_error_when_extract_state_nonce_and_run_validations_fails
572577
stateful_tx_validator_factory: Arc::new(mock_stateful_transaction_validator_factory),
573578
mempool_client: Arc::new(mock_dependencies.mock_mempool_client),
574579
transaction_converter: Arc::new(mock_dependencies.mock_transaction_converter),
580+
proof_manager_client: Arc::new(mock_dependencies.mock_proof_manager_client),
575581
};
576582

577583
let result = gateway.add_tx(tx_args.get_rpc_tx(), None).await;
@@ -624,6 +630,7 @@ async fn add_tx_returns_error_when_instantiating_validator_fails(
624630
stateful_tx_validator_factory: Arc::new(mock_stateful_transaction_validator_factory),
625631
mempool_client: Arc::new(mock_dependencies.mock_mempool_client),
626632
transaction_converter: Arc::new(mock_dependencies.mock_transaction_converter),
633+
proof_manager_client: Arc::new(mock_dependencies.mock_proof_manager_client),
627634
};
628635

629636
let result = gateway.add_tx(tx_args.get_rpc_tx(), None).await;

crates/apollo_gateway/src/test_utils.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ use apollo_class_manager_types::MockClassManagerClient;
55
use apollo_gateway_config::compiler_version::VersionId;
66
use apollo_gateway_config::config::GatewayConfig;
77
use apollo_mempool_types::communication::MockMempoolClient;
8+
use apollo_proof_manager_types::MockProofManagerClient;
89
use blockifier_test_utils::cairo_versions::{CairoVersion, RunnableCairo1};
910
use starknet_api::block::GasPrice;
1011
use starknet_api::core::ContractAddress;
@@ -163,6 +164,7 @@ pub fn gateway_for_benchmark(gateway_config: GatewayConfig) -> Gateway {
163164
let state_reader_factory = local_test_state_reader_factory(cairo_version, false);
164165
let mut mempool_client = MockMempoolClient::new();
165166
let class_manager_client = Arc::new(MockClassManagerClient::new());
167+
let proof_manager_client = Arc::new(MockProofManagerClient::new());
166168
let transaction_converter = TransactionConverter::new(
167169
class_manager_client.clone(),
168170
gateway_config.chain_info.chain_id.clone(),
@@ -179,5 +181,6 @@ pub fn gateway_for_benchmark(gateway_config: GatewayConfig) -> Gateway {
179181
Arc::new(mempool_client),
180182
Arc::new(transaction_converter),
181183
stateless_tx_validator,
184+
proof_manager_client,
182185
)
183186
}

crates/apollo_node/src/components.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -228,11 +228,15 @@ pub async fn create_node_components(
228228
let class_manager_client = clients
229229
.get_class_manager_shared_client()
230230
.expect("Class Manager client should be available");
231+
let proof_manager_client = clients
232+
.get_proof_manager_shared_client()
233+
.expect("Proof Manager client should be available");
231234
Some(create_gateway(
232235
gateway_config.clone(),
233236
state_sync_client,
234237
mempool_client,
235238
class_manager_client,
239+
proof_manager_client,
236240
tokio::runtime::Handle::current(),
237241
))
238242
}

0 commit comments

Comments
 (0)