1- use std:: sync:: Arc ;
1+ use std:: sync:: { Arc , LazyLock } ;
22
33use apollo_class_manager_types:: transaction_converter:: TransactionConverter ;
44use apollo_class_manager_types:: { ClassHashes , EmptyClassManagerClient , MockClassManagerClient } ;
@@ -241,11 +241,17 @@ fn check_positive_add_tx_result(tx_args: impl TestingTxArgs, result: GatewayOutp
241241 ) ;
242242}
243243
244+ static P2P_MESSAGE_METADATA : LazyLock < Option < BroadcastedMessageMetadata > > =
245+ LazyLock :: new ( || Some ( BroadcastedMessageMetadata :: get_test_instance ( & mut get_rng ( ) ) ) ) ;
246+ fn p2p_message_metadata ( ) -> Option < BroadcastedMessageMetadata > {
247+ P2P_MESSAGE_METADATA . clone ( )
248+ }
249+
244250async fn setup_mock_state (
245251 mock_dependencies : & mut MockDependencies ,
246252 tx_args : & impl TestingTxArgs ,
247253 expected_mempool_result : Result < ( ) , MempoolClientError > ,
248- ) -> Option < BroadcastedMessageMetadata > {
254+ ) {
249255 let input_tx = tx_args. get_rpc_tx ( ) ;
250256 let expected_internal_tx = tx_args. get_internal_tx ( ) ;
251257
@@ -262,20 +268,17 @@ async fn setup_mock_state(
262268 & mut mock_dependencies. state_reader_factory . state_reader . blockifier_state_reader ,
263269 ) ;
264270
265- let p2p_message_metadata = Some ( BroadcastedMessageMetadata :: get_test_instance ( & mut get_rng ( ) ) ) ;
266271 let mempool_add_tx_args = AddTransactionArgs {
267272 tx : expected_internal_tx. clone ( ) ,
268273 account_state : AccountState { address, nonce : * input_tx. nonce ( ) } ,
269274 } ;
270275 mock_dependencies. expect_add_tx (
271276 AddTransactionArgsWrapper {
272277 args : mempool_add_tx_args,
273- p2p_message_metadata : p2p_message_metadata. clone ( ) ,
278+ p2p_message_metadata : p2p_message_metadata ( ) ,
274279 } ,
275280 expected_mempool_result,
276281 ) ;
277-
278- p2p_message_metadata
279282}
280283
281284struct AddTxResults {
@@ -287,16 +290,15 @@ struct AddTxResults {
287290async fn run_add_tx_and_extract_metrics (
288291 mock_dependencies : MockDependencies ,
289292 tx_args : & impl TestingTxArgs ,
290- p2p_message_metadata : Option < BroadcastedMessageMetadata > ,
291293) -> AddTxResults {
292294 let recorder = PrometheusBuilder :: new ( ) . build_recorder ( ) ;
293295 let _recorder_guard = metrics:: set_default_local_recorder ( & recorder) ;
294296
295297 let input_tx = tx_args. get_rpc_tx ( ) ;
296298 let gateway = mock_dependencies. gateway ( ) ;
297- let result = gateway. add_tx ( input_tx. clone ( ) , p2p_message_metadata. clone ( ) ) . await ;
299+ let result = gateway. add_tx ( input_tx. clone ( ) , p2p_message_metadata ( ) ) . await ;
298300
299- let metric_handle_for_queries = GatewayMetricHandle :: new ( & input_tx, & p2p_message_metadata) ;
301+ let metric_handle_for_queries = GatewayMetricHandle :: new ( & input_tx, & p2p_message_metadata ( ) ) ;
300302 let metrics = recorder. handle ( ) . render ( ) ;
301303
302304 AddTxResults { result, metric_handle_for_queries, metrics }
@@ -327,11 +329,10 @@ async fn test_add_tx_negative(
327329 #[ case] expected_mempool_result : Result < ( ) , MempoolClientError > ,
328330 #[ case] expected_error_code : StarknetErrorCode ,
329331) {
330- let p2p_message_metadata =
331- setup_mock_state ( & mut mock_dependencies, & tx_args, expected_mempool_result) . await ;
332+ setup_mock_state ( & mut mock_dependencies, & tx_args, expected_mempool_result) . await ;
332333
333334 let AddTxResults { result, metric_handle_for_queries, metrics } =
334- run_add_tx_and_extract_metrics ( mock_dependencies, & tx_args, p2p_message_metadata ) . await ;
335+ run_add_tx_and_extract_metrics ( mock_dependencies, & tx_args) . await ;
335336
336337 assert_eq ! (
337338 metric_handle_for_queries. get_metric_value( GATEWAY_TRANSACTIONS_RECEIVED , & metrics) ,
@@ -350,10 +351,10 @@ async fn test_add_tx_positive(
350351 mut mock_dependencies : MockDependencies ,
351352 #[ values( invoke_args( ) , deploy_account_args( ) , declare_args( ) ) ] tx_args : impl TestingTxArgs ,
352353) {
353- let p2p_message_metadata = setup_mock_state ( & mut mock_dependencies, & tx_args, Ok ( ( ) ) ) . await ;
354+ setup_mock_state ( & mut mock_dependencies, & tx_args, Ok ( ( ) ) ) . await ;
354355
355356 let AddTxResults { result, metric_handle_for_queries, metrics } =
356- run_add_tx_and_extract_metrics ( mock_dependencies, & tx_args, p2p_message_metadata ) . await ;
357+ run_add_tx_and_extract_metrics ( mock_dependencies, & tx_args) . await ;
357358
358359 assert_eq ! (
359360 metric_handle_for_queries. get_metric_value( GATEWAY_TRANSACTIONS_RECEIVED , & metrics) ,
0 commit comments