Skip to content

Commit 47097e7

Browse files
starknet_os_flow_tests: refactor serialize_call to mutate multi_call_args
`serialize_call` now appends each `Call` directly to `multi_call_args` and bumps the leading `num_calls` counter, so adding an inner call is a single line at the call site. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
1 parent c843e03 commit 47097e7

1 file changed

Lines changed: 12 additions & 14 deletions

File tree

crates/starknet_os_flow_tests/src/virtual_os_test.rs

Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -338,23 +338,21 @@ async fn prove_and_verify_multicall_tx() {
338338
TestBuilder::create_standard_virtual([(test_contract, calldata![Felt::ONE, Felt::TWO])])
339339
.await;
340340

341-
// Serializes a single `Call` entry as `[to, selector, calldata_len, *calldata]`
342-
// for the dummy account's `multi_call(Array<Call>)` entry point. All inner calls
343-
// in this test target the same test contract.
344-
let serialize_call = |func_name: &str, args: &[Felt]| -> Vec<Felt> {
345-
let mut serialized = vec![
346-
*contract_address.0.key(),
347-
selector_from_name(func_name).0,
348-
Felt::from(args.len()),
349-
];
350-
serialized.extend_from_slice(args);
351-
serialized
341+
// Appends a single `Call` entry to `multi_call_args` as
342+
// `[to, selector, calldata_len, *calldata]` and bumps the leading `num_calls`
343+
// counter. All inner calls in this test target the same test contract.
344+
let mut multi_call_args: Vec<Felt> = vec![Felt::ZERO];
345+
let mut serialize_call = |func_name: &str, args: &[Felt]| {
346+
multi_call_args[0] = multi_call_args[0] + Felt::ONE;
347+
multi_call_args.push(*contract_address.0.key());
348+
multi_call_args.push(selector_from_name(func_name).0);
349+
multi_call_args.push(Felt::from(args.len()));
350+
multi_call_args.extend_from_slice(args);
352351
};
353352

354353
// TODO(Yoni): add more inner calls (e.g. sha256, secp256k1, send_message_to_l1).
355-
let mut multi_call_args = vec![Felt::TWO];
356-
multi_call_args.extend(serialize_call("test_keccak", &[]));
357-
multi_call_args.extend(serialize_call("test_ec_op", &[]));
354+
serialize_call("test_keccak", &[]);
355+
serialize_call("test_ec_op", &[]);
358356

359357
// The dummy account's `__execute__(contract_address, selector, calldata)` forwards
360358
// to its own `multi_call` entry point.

0 commit comments

Comments
 (0)