@@ -344,6 +344,99 @@ test::foo@F0([0]: GasBuiltin, [1]: System) -> (GasBuiltin, System, core::result:
344344
345345//! > ==========================================================================
346346
347+ //! > get_execution_info_v3_syscall libfunc
348+
349+ //! > test_comments
350+
351+ //! > test_runner_name
352+ SmallE2ETestRunner
353+
354+ //! > cairo_code
355+ fn foo() -> starknet::SyscallResult<Box<starknet::info::v3::ExecutionInfo>> {
356+ starknet::syscalls::get_execution_info_v3_syscall()
357+ }
358+
359+ //! > casm
360+ [ap + 0] = 94901967946959054011942058057773508207, ap++;
361+ [ap + -1] = [[fp + -3] + 0];
362+ [fp + -4] = [[fp + -3] + 1];
363+ %{ syscall_handler.syscall(syscall_ptr=memory[fp + -3]) %}
364+ [ap + 0] = [[fp + -3] + 3], ap++;
365+ jmp rel 12 if [ap + -1] != 0;
366+ [ap + 0] = [[fp + -3] + 2], ap++;
367+ [ap + 0] = [ap + -1], ap++;
368+ [ap + 0] = [fp + -3] + 5, ap++;
369+ [ap + 0] = 0, ap++;
370+ [ap + 0] = 0, ap++;
371+ [ap + 0] = [[fp + -3] + 4], ap++;
372+ ret;
373+ [ap + 0] = [[fp + -3] + 2], ap++;
374+ [ap + 0] = [ap + -1], ap++;
375+ [ap + 0] = [fp + -3] + 6, ap++;
376+ [ap + 0] = 1, ap++;
377+ [ap + 0] = [[fp + -3] + 4], ap++;
378+ [ap + 0] = [[fp + -3] + 5], ap++;
379+ ret;
380+
381+ //! > function_costs
382+ test::foo: SmallOrderedMap({Const: 11100})
383+
384+ //! > sierra_code
385+ type GasBuiltin = GasBuiltin [storable: true, drop: false, dup: false, zero_sized: false];
386+ type Box<core::starknet::info::v3::ExecutionInfo> = Box<core::starknet::info::v3::ExecutionInfo> [storable: true, drop: true, dup: true, zero_sized: false];
387+ type Array<felt252> = Array<felt252> [storable: true, drop: true, dup: false, zero_sized: false];
388+ type core::result::Result::<core::box::Box::<core::starknet::info::v3::ExecutionInfo>, core::array::Array::<core::felt252>> = Enum<ut@core::result::Result::<core::box::Box::<core::starknet::info::v3::ExecutionInfo>, core::array::Array::<core::felt252>>, Box<core::starknet::info::v3::ExecutionInfo>, Array<felt252>> [storable: true, drop: true, dup: false, zero_sized: false];
389+ type felt252 = felt252 [storable: true, drop: true, dup: true, zero_sized: false];
390+ type Box<core::starknet::info::BlockInfo> = Box<core::starknet::info::BlockInfo> [storable: true, drop: true, dup: true, zero_sized: false];
391+ type Box<core::starknet::info::v3::TxInfo> = Box<core::starknet::info::v3::TxInfo> [storable: true, drop: true, dup: true, zero_sized: false];
392+ type ContractAddress = ContractAddress [storable: true, drop: true, dup: true, zero_sized: false];
393+ type core::starknet::info::v3::ExecutionInfo = Struct<ut@core::starknet::info::v3::ExecutionInfo, Box<core::starknet::info::BlockInfo>, Box<core::starknet::info::v3::TxInfo>, ContractAddress, ContractAddress, felt252> [storable: true, drop: true, dup: true, zero_sized: false];
394+ type u128 = u128 [storable: true, drop: true, dup: true, zero_sized: false];
395+ type Snapshot<Array<felt252>> = Snapshot<Array<felt252>> [storable: true, drop: true, dup: true, zero_sized: false];
396+ type core::array::Span::<core::felt252> = Struct<ut@core::array::Span::<core::felt252>, Snapshot<Array<felt252>>> [storable: true, drop: true, dup: true, zero_sized: false];
397+ type Array<core::starknet::info::v2::ResourceBounds> = Array<core::starknet::info::v2::ResourceBounds> [storable: true, drop: true, dup: false, zero_sized: false];
398+ type Snapshot<Array<core::starknet::info::v2::ResourceBounds>> = Snapshot<Array<core::starknet::info::v2::ResourceBounds>> [storable: true, drop: true, dup: true, zero_sized: false];
399+ type core::array::Span::<core::starknet::info::v2::ResourceBounds> = Struct<ut@core::array::Span::<core::starknet::info::v2::ResourceBounds>, Snapshot<Array<core::starknet::info::v2::ResourceBounds>>> [storable: true, drop: true, dup: true, zero_sized: false];
400+ type u32 = u32 [storable: true, drop: true, dup: true, zero_sized: false];
401+ type core::starknet::info::v3::TxInfo = Struct<ut@core::starknet::info::v3::TxInfo, felt252, ContractAddress, u128, core::array::Span::<core::felt252>, felt252, felt252, felt252, core::array::Span::<core::starknet::info::v2::ResourceBounds>, u128, core::array::Span::<core::felt252>, u32, u32, core::array::Span::<core::felt252>, core::array::Span::<core::felt252>> [storable: true, drop: true, dup: true, zero_sized: false];
402+ type u64 = u64 [storable: true, drop: true, dup: true, zero_sized: false];
403+ type core::starknet::info::BlockInfo = Struct<ut@core::starknet::info::BlockInfo, u64, u64, ContractAddress> [storable: true, drop: true, dup: true, zero_sized: false];
404+ type core::starknet::info::v2::ResourceBounds = Struct<ut@core::starknet::info::v2::ResourceBounds, felt252, u64, u128> [storable: true, drop: true, dup: true, zero_sized: false];
405+ type System = System [storable: true, drop: false, dup: false, zero_sized: false];
406+
407+ libfunc get_execution_info_v3_syscall = get_execution_info_v3_syscall;
408+ libfunc branch_align = branch_align;
409+ libfunc store_temp<GasBuiltin> = store_temp<GasBuiltin>;
410+ libfunc redeposit_gas = redeposit_gas;
411+ libfunc enum_init<core::result::Result::<core::box::Box::<core::starknet::info::v3::ExecutionInfo>, core::array::Array::<core::felt252>>, 0> = enum_init<core::result::Result::<core::box::Box::<core::starknet::info::v3::ExecutionInfo>, core::array::Array::<core::felt252>>, 0>;
412+ libfunc store_temp<System> = store_temp<System>;
413+ libfunc store_temp<core::result::Result::<core::box::Box::<core::starknet::info::v3::ExecutionInfo>, core::array::Array::<core::felt252>>> = store_temp<core::result::Result::<core::box::Box::<core::starknet::info::v3::ExecutionInfo>, core::array::Array::<core::felt252>>>;
414+ libfunc enum_init<core::result::Result::<core::box::Box::<core::starknet::info::v3::ExecutionInfo>, core::array::Array::<core::felt252>>, 1> = enum_init<core::result::Result::<core::box::Box::<core::starknet::info::v3::ExecutionInfo>, core::array::Array::<core::felt252>>, 1>;
415+
416+ F0:
417+ get_execution_info_v3_syscall([0], [1]) { fallthrough([2], [3], [4]) F0_B0([5], [6], [7]) };
418+ branch_align() -> ();
419+ store_temp<GasBuiltin>([2]) -> ([2]);
420+ redeposit_gas([2]) -> ([8]);
421+ enum_init<core::result::Result::<core::box::Box::<core::starknet::info::v3::ExecutionInfo>, core::array::Array::<core::felt252>>, 0>([4]) -> ([9]);
422+ store_temp<GasBuiltin>([8]) -> ([8]);
423+ store_temp<System>([3]) -> ([3]);
424+ store_temp<core::result::Result::<core::box::Box::<core::starknet::info::v3::ExecutionInfo>, core::array::Array::<core::felt252>>>([9]) -> ([9]);
425+ return([8], [3], [9]);
426+ F0_B0:
427+ branch_align() -> ();
428+ store_temp<GasBuiltin>([5]) -> ([5]);
429+ redeposit_gas([5]) -> ([10]);
430+ enum_init<core::result::Result::<core::box::Box::<core::starknet::info::v3::ExecutionInfo>, core::array::Array::<core::felt252>>, 1>([7]) -> ([11]);
431+ store_temp<GasBuiltin>([10]) -> ([10]);
432+ store_temp<System>([6]) -> ([6]);
433+ store_temp<core::result::Result::<core::box::Box::<core::starknet::info::v3::ExecutionInfo>, core::array::Array::<core::felt252>>>([11]) -> ([11]);
434+ return([10], [6], [11]);
435+
436+ test::foo@F0([0]: GasBuiltin, [1]: System) -> (GasBuiltin, System, core::result::Result::<core::box::Box::<core::starknet::info::v3::ExecutionInfo>, core::array::Array::<core::felt252>>);
437+
438+ //! > ==========================================================================
439+
347440//! > call_contract_syscall libfunc
348441
349442//! > test_comments
0 commit comments