Skip to content

Commit c0faf4f

Browse files
apollo_gateway: add large storage writer
1 parent 43b3f88 commit c0faf4f

File tree

3 files changed

+17
-1
lines changed

3 files changed

+17
-1
lines changed

crates/apollo_gateway/src/gateway.rs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ use crate::errors::{
4343
GatewayResult,
4444
};
4545
use crate::metrics::{register_metrics, GatewayMetricHandle, GATEWAY_ADD_TX_LATENCY};
46+
use crate::proof_archive_writer::{GcsProofArchiveWriter, ProofArchiveWriterTrait};
4647
use crate::state_reader::StateReaderFactory;
4748
use crate::stateful_transaction_validator::{
4849
StatefulTransactionValidatorFactory,
@@ -65,6 +66,7 @@ pub struct Gateway {
6566
pub stateful_tx_validator_factory: Arc<dyn StatefulTransactionValidatorFactoryTrait>,
6667
pub mempool_client: SharedMempoolClient,
6768
pub transaction_converter: Arc<dyn TransactionConverterTrait>,
69+
pub proof_archive_writer: Arc<dyn ProofArchiveWriterTrait>,
6870
}
6971

7072
impl Gateway {
@@ -74,6 +76,7 @@ impl Gateway {
7476
mempool_client: SharedMempoolClient,
7577
transaction_converter: Arc<dyn TransactionConverterTrait>,
7678
stateless_tx_validator: Arc<dyn StatelessTransactionValidatorTrait>,
79+
proof_archive_writer: Arc<dyn ProofArchiveWriterTrait>,
7780
) -> Self {
7881
Self {
7982
config: Arc::new(config.clone()),
@@ -88,6 +91,7 @@ impl Gateway {
8891
}),
8992
mempool_client,
9093
transaction_converter,
94+
proof_archive_writer,
9195
}
9296
}
9397

@@ -242,13 +246,15 @@ pub fn create_gateway(
242246
let stateless_tx_validator = Arc::new(StatelessTransactionValidator {
243247
config: config.stateless_tx_validator_config.clone(),
244248
});
245-
249+
let proof_archive_writer =
250+
Arc::new(GcsProofArchiveWriter::new(config.proof_archive_writer_config.clone()));
246251
Gateway::new(
247252
config,
248253
state_reader_factory,
249254
mempool_client,
250255
transaction_converter,
251256
stateless_tx_validator,
257+
proof_archive_writer,
252258
)
253259
}
254260

crates/apollo_gateway/src/gateway_test.rs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,7 @@ use crate::metrics::{
9494
LABEL_NAME_SOURCE,
9595
LABEL_NAME_TX_TYPE,
9696
};
97+
use crate::proof_archive_writer::MockProofArchiveWriterTrait;
9798
use crate::state_reader_test_utils::{local_test_state_reader_factory, TestStateReaderFactory};
9899
use crate::stateful_transaction_validator::{
99100
MockStatefulTransactionValidatorFactoryTrait,
@@ -134,12 +135,14 @@ fn mock_dependencies() -> MockDependencies {
134135
let mock_mempool_client = MockMempoolClient::new();
135136
let mock_transaction_converter = MockTransactionConverterTrait::new();
136137
let mock_stateless_transaction_validator = mock_stateless_transaction_validator();
138+
let mock_proof_archive_writer = MockProofArchiveWriterTrait::new();
137139
MockDependencies {
138140
config,
139141
state_reader_factory,
140142
mock_mempool_client,
141143
mock_transaction_converter,
142144
mock_stateless_transaction_validator,
145+
mock_proof_archive_writer,
143146
}
144147
}
145148

@@ -149,6 +152,7 @@ struct MockDependencies {
149152
mock_mempool_client: MockMempoolClient,
150153
mock_transaction_converter: MockTransactionConverterTrait,
151154
mock_stateless_transaction_validator: MockStatelessTransactionValidatorTrait,
155+
mock_proof_archive_writer: MockProofArchiveWriterTrait,
152156
}
153157

154158
impl MockDependencies {
@@ -160,6 +164,7 @@ impl MockDependencies {
160164
Arc::new(self.mock_mempool_client),
161165
Arc::new(self.mock_transaction_converter),
162166
Arc::new(self.mock_stateless_transaction_validator),
167+
Arc::new(self.mock_proof_archive_writer),
163168
)
164169
}
165170

@@ -574,6 +579,7 @@ async fn add_tx_returns_error_when_extract_state_nonce_and_run_validations_fails
574579
stateful_tx_validator_factory: Arc::new(mock_stateful_transaction_validator_factory),
575580
mempool_client: Arc::new(mock_dependencies.mock_mempool_client),
576581
transaction_converter: Arc::new(mock_dependencies.mock_transaction_converter),
582+
proof_archive_writer: Arc::new(mock_dependencies.mock_proof_archive_writer),
577583
};
578584

579585
let result = gateway.add_tx(tx_args.get_rpc_tx(), None).await;
@@ -626,6 +632,7 @@ async fn add_tx_returns_error_when_instantiating_validator_fails(
626632
stateful_tx_validator_factory: Arc::new(mock_stateful_transaction_validator_factory),
627633
mempool_client: Arc::new(mock_dependencies.mock_mempool_client),
628634
transaction_converter: Arc::new(mock_dependencies.mock_transaction_converter),
635+
proof_archive_writer: Arc::new(mock_dependencies.mock_proof_archive_writer),
629636
};
630637

631638
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
@@ -31,6 +31,7 @@ use starknet_api::{declare_tx_args, deploy_account_tx_args, felt, invoke_tx_args
3131
use starknet_types_core::felt::Felt;
3232

3333
use crate::gateway::Gateway;
34+
use crate::proof_archive_writer::MockProofArchiveWriterTrait;
3435
use crate::state_reader_test_utils::local_test_state_reader_factory;
3536
use crate::stateless_transaction_validator::StatelessTransactionValidator;
3637

@@ -165,6 +166,7 @@ pub fn gateway_for_benchmark(gateway_config: GatewayConfig) -> Gateway {
165166
let mut mempool_client = MockMempoolClient::new();
166167
let class_manager_client = Arc::new(MockClassManagerClient::new());
167168
let proof_manager_client = Arc::new(MockProofManagerClient::new());
169+
let proof_archive_writer = Arc::new(MockProofArchiveWriterTrait::new());
168170
let transaction_converter = TransactionConverter::new(
169171
class_manager_client.clone(),
170172
proof_manager_client.clone(),
@@ -182,5 +184,6 @@ pub fn gateway_for_benchmark(gateway_config: GatewayConfig) -> Gateway {
182184
Arc::new(mempool_client),
183185
Arc::new(transaction_converter),
184186
stateless_tx_validator,
187+
proof_archive_writer,
185188
)
186189
}

0 commit comments

Comments
 (0)