Skip to content

Commit 773890b

Browse files
refactor: align gateway and mempool tests with InternalRpcTx change
1 parent 916d8c4 commit 773890b

File tree

3 files changed

+38
-19
lines changed

3 files changed

+38
-19
lines changed

crates/starknet_gateway/src/gateway_test.rs

Lines changed: 23 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,13 @@ use papyrus_network_types::network_types::BroadcastedMessageMetadata;
99
use papyrus_test_utils::{get_rng, GetTestInstance};
1010
use rstest::{fixture, rstest};
1111
use starknet_api::core::{ChainId, CompiledClassHash, ContractAddress, Nonce};
12-
use starknet_api::executable_transaction::{AccountTransaction, InvokeTransaction};
13-
use starknet_api::rpc_transaction::{RpcDeclareTransaction, RpcTransaction};
14-
use starknet_api::transaction::TransactionHash;
12+
use starknet_api::rpc_transaction::{
13+
InternalRpcTransaction,
14+
InternalRpcTransactionWithoutTxHash,
15+
RpcDeclareTransaction,
16+
RpcTransaction,
17+
};
18+
use starknet_api::transaction::{InvokeTransaction, TransactionHash, TransactionVersion};
1519
use starknet_class_manager_types::test_utils::MemoryClassManagerClient;
1620
use starknet_class_manager_types::transaction_converter::TransactionConverter;
1721
use starknet_class_manager_types::SharedClassManagerClient;
@@ -61,12 +65,7 @@ fn mock_dependencies(
6165
) -> MockDependencies {
6266
let mock_mempool_client = MockMempoolClient::new();
6367
let class_manager_client = Arc::new(MemoryClassManagerClient::new());
64-
MockDependencies {
65-
config,
66-
state_reader_factory,
67-
mock_mempool_client,
68-
class_manager_client,
69-
}
68+
MockDependencies { config, state_reader_factory, mock_mempool_client, class_manager_client }
7069
}
7170

7271
struct MockDependencies {
@@ -131,18 +130,28 @@ async fn test_add_tx(
131130
#[case] expected_result: Result<(), MempoolClientError>,
132131
#[case] expected_error: Option<GatewaySpecError>,
133132
) {
133+
use starknet_api::transaction::TransactionHasher;
134+
134135
let (rpc_tx, address) = create_tx();
135136
let rpc_invoke_tx =
136137
assert_matches!(rpc_tx.clone(), RpcTransaction::Invoke(rpc_invoke_tx) => rpc_invoke_tx);
137-
let executable_tx = AccountTransaction::Invoke(
138-
InvokeTransaction::from_rpc_tx(rpc_invoke_tx, &ChainId::create_for_testing()).unwrap(),
139-
);
140138

141-
let tx_hash = executable_tx.tx_hash();
139+
let InvokeTransaction::V3(invoke_tx): InvokeTransaction = rpc_invoke_tx.clone().into() else {
140+
panic!("Unexpected transaction version")
141+
};
142+
143+
let tx_hash = invoke_tx
144+
.calculate_transaction_hash(&ChainId::create_for_testing(), &TransactionVersion::THREE)
145+
.unwrap();
146+
147+
let internal_invoke_tx = InternalRpcTransaction {
148+
tx: InternalRpcTransactionWithoutTxHash::Invoke(rpc_invoke_tx.clone()),
149+
tx_hash,
150+
};
142151

143152
let p2p_message_metadata = Some(BroadcastedMessageMetadata::get_test_instance(&mut get_rng()));
144153
let add_tx_args = AddTransactionArgs {
145-
tx: executable_tx,
154+
tx: internal_invoke_tx,
146155
account_state: AccountState { address, nonce: *rpc_tx.nonce() },
147156
};
148157
mock_dependencies.expect_add_tx(

crates/starknet_mempool/src/test_utils.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
use std::collections::{HashMap, HashSet};
22

33
use pretty_assertions::assert_eq;
4-
use starknet_api::executable_transaction::AccountTransaction;
4+
use starknet_api::rpc_transaction::InternalRpcTransaction;
55
use starknet_api::{contract_address, nonce, tx_hash};
66
use starknet_mempool_types::errors::MempoolError;
77
use starknet_mempool_types::mempool_types::{AddTransactionArgs, CommitBlockArgs};
@@ -21,7 +21,7 @@ macro_rules! tx {
2121
) => {{
2222
use starknet_api::block::GasPrice;
2323
use starknet_api::{invoke_tx_args, tx_hash};
24-
use starknet_api::test_utils::invoke::executable_invoke_tx;
24+
use starknet_api::test_utils::invoke::internal_invoke_tx;
2525
use starknet_api::transaction::fields::{
2626
AllResourceBounds,
2727
ResourceBounds,
@@ -37,7 +37,7 @@ macro_rules! tx {
3737
..Default::default()
3838
});
3939

40-
executable_invoke_tx(invoke_tx_args!{
40+
internal_invoke_tx(invoke_tx_args!{
4141
tx_hash: tx_hash!($tx_hash),
4242
sender_address: contract_address!($address),
4343
nonce: nonce!($tx_nonce),
@@ -256,7 +256,7 @@ pub fn commit_block(
256256
pub fn get_txs_and_assert_expected(
257257
mempool: &mut Mempool,
258258
n_txs: usize,
259-
expected_txs: &[AccountTransaction],
259+
expected_txs: &[InternalRpcTransaction],
260260
) {
261261
let txs = mempool.get_txs(n_txs).unwrap();
262262
assert_eq!(txs, expected_txs);

crates/starknet_mempool_p2p/src/propagator/test.rs

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,10 @@ use papyrus_protobuf::mempool::RpcTransactionWrapper;
1212
use papyrus_test_utils::{get_rng, GetTestInstance};
1313
use starknet_api::rpc_transaction::RpcTransaction;
1414
use starknet_class_manager_types::test_utils::MemoryClassManagerClient;
15+
use starknet_class_manager_types::transaction_converter::{
16+
TransactionConverter,
17+
TransactionConverterTrait,
18+
};
1519
use starknet_mempool_p2p_types::communication::MempoolP2pPropagatorRequest;
1620
use starknet_sequencer_infra::component_definitions::ComponentRequestHandler;
1721
use tokio::time::timeout;
@@ -29,10 +33,16 @@ async fn process_handle_add_tx() {
2933
let BroadcastNetworkMock { mut messages_to_broadcast_receiver, .. } = mock_network;
3034
let rpc_transaction = RpcTransaction::get_test_instance(&mut get_rng());
3135
let class_manager_client = Arc::new(MemoryClassManagerClient::new());
36+
let transaction_converter =
37+
TransactionConverter { class_manager_client: class_manager_client.clone() };
38+
let internal_tx = transaction_converter
39+
.convert_rpc_tx_to_internal_rpc_tx(rpc_transaction.clone())
40+
.await
41+
.unwrap();
3242
let mut mempool_p2p_propagator =
3343
MempoolP2pPropagator::new(broadcast_topic_client, class_manager_client);
3444
mempool_p2p_propagator
35-
.handle_request(MempoolP2pPropagatorRequest::AddTransaction(rpc_transaction.clone()))
45+
.handle_request(MempoolP2pPropagatorRequest::AddTransaction(internal_tx))
3646
.await;
3747
let message = timeout(TIMEOUT, messages_to_broadcast_receiver.next()).await.unwrap().unwrap();
3848
assert_eq!(message, RpcTransactionWrapper(rpc_transaction));

0 commit comments

Comments
 (0)