Skip to content

Commit 1f680d7

Browse files
starknet_os_flow_tests: reduce boilerplate with add_funded_account_invoke
1 parent 3f7b611 commit 1f680d7

File tree

2 files changed

+22
-21
lines changed

2 files changed

+22
-21
lines changed

crates/starknet_os_flow_tests/src/test_manager.rs

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ use crate::initial_state::{
5858
OsExecutionContracts,
5959
};
6060
use crate::state_trait::FlowTestState;
61+
use crate::tests::NON_TRIVIAL_RESOURCE_BOUNDS;
6162
use crate::utils::{
6263
commit_state_diff,
6364
create_cached_state_input_and_commitment_infos,
@@ -314,6 +315,22 @@ impl<S: FlowTestState> TestManager<S> {
314315
self.add_invoke_tx(InvokeTransaction::create(invoke_tx(args), chain_id).unwrap());
315316
}
316317

318+
/// Similar to `add_invoke_tx_from_args`, but with the sender address set to the funded account,
319+
/// nonce set (and incremented) and resource bounds set to the default (non-trivial).
320+
/// Assumes the tx should not be reverted.
321+
pub(crate) fn add_funded_account_invoke(&mut self, additional_args: InvokeTxArgs) {
322+
let nonce = self.next_nonce(*FUNDED_ACCOUNT_ADDRESS);
323+
self.add_invoke_tx_from_args(
324+
InvokeTxArgs {
325+
sender_address: *FUNDED_ACCOUNT_ADDRESS,
326+
nonce,
327+
resource_bounds: *NON_TRIVIAL_RESOURCE_BOUNDS,
328+
..additional_args
329+
},
330+
&CHAIN_ID_FOR_TESTS,
331+
);
332+
}
333+
317334
pub(crate) fn add_cairo0_declare_tx(
318335
&mut self,
319336
tx: DeclareTransaction,

crates/starknet_os_flow_tests/src/tests.rs

Lines changed: 5 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -126,20 +126,14 @@ async fn declare_deploy_scenario(
126126
DEPLOY_CONTRACT_FUNCTION_ENTRY_POINT_NAME,
127127
&calldata,
128128
);
129-
let invoke_tx_args = invoke_tx_args! {
130-
sender_address: *FUNDED_ACCOUNT_ADDRESS,
131-
nonce: test_manager.next_nonce(*FUNDED_ACCOUNT_ADDRESS),
132-
calldata: deploy_contract_calldata,
133-
resource_bounds: *NON_TRIVIAL_RESOURCE_BOUNDS,
134-
};
135129
let expected_contract_address = calculate_contract_address(
136130
contract_address_salt,
137131
class_hash,
138132
&Calldata(constructor_calldata[1..].to_vec().into()),
139133
*FUNDED_ACCOUNT_ADDRESS,
140134
)
141135
.unwrap();
142-
test_manager.add_invoke_tx_from_args(invoke_tx_args, &CHAIN_ID_FOR_TESTS);
136+
test_manager.add_funded_account_invoke(invoke_tx_args! { calldata: deploy_contract_calldata });
143137
test_manager.divide_transactions_into_n_blocks(n_blocks);
144138
let test_output = test_manager
145139
.execute_test_with_default_block_contexts(&TestParameters {
@@ -198,23 +192,13 @@ async fn trivial_diff_scenario(
198192
let value = Felt::from(11u8);
199193
let function_name = "test_storage_read_write";
200194
// Invoke a function on the test contract that changes the key to the new value.
201-
let invoke_tx_args = invoke_tx_args! {
202-
sender_address: *FUNDED_ACCOUNT_ADDRESS,
203-
nonce: test_manager.next_nonce(*FUNDED_ACCOUNT_ADDRESS),
204-
calldata: create_calldata(test_contract_address, function_name, &[key, value]),
205-
resource_bounds: *NON_TRIVIAL_RESOURCE_BOUNDS,
206-
};
207-
test_manager.add_invoke_tx_from_args(invoke_tx_args, &CHAIN_ID_FOR_TESTS);
195+
let calldata = create_calldata(test_contract_address, function_name, &[key, value]);
196+
test_manager.add_funded_account_invoke(invoke_tx_args! { calldata });
208197

209198
// Move to next block, and add an invoke that reverts the previous change.
210199
test_manager.move_to_next_block();
211-
let invoke_tx_args = invoke_tx_args! {
212-
sender_address: *FUNDED_ACCOUNT_ADDRESS,
213-
nonce: test_manager.next_nonce(*FUNDED_ACCOUNT_ADDRESS),
214-
calldata: create_calldata(test_contract_address, function_name, &[key, Felt::ZERO]),
215-
resource_bounds: *NON_TRIVIAL_RESOURCE_BOUNDS,
216-
};
217-
test_manager.add_invoke_tx_from_args(invoke_tx_args, &CHAIN_ID_FOR_TESTS);
200+
let calldata = create_calldata(test_contract_address, function_name, &[key, Felt::ZERO]);
201+
test_manager.add_funded_account_invoke(invoke_tx_args! { calldata });
218202

219203
// Execute the test.
220204
let test_output = test_manager

0 commit comments

Comments
 (0)