Skip to content
This repository was archived by the owner on Jul 22, 2024. It is now read-only.

Commit 94d328b

Browse files
committed
test actually passes
1 parent 3b911d4 commit 94d328b

File tree

2 files changed

+40
-25
lines changed

2 files changed

+40
-25
lines changed

src/execution/execution_entry_point.rs

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -430,7 +430,6 @@ impl ExecutionEntryPoint {
430430
class_hash: [u8; 32],
431431
support_reverted: bool,
432432
) -> Result<CallInfo, TransactionError> {
433-
dbg!("called");
434433
let previous_cairo_usage = resources_manager.cairo_usage.clone();
435434

436435
// fetch selected entry point
@@ -560,8 +559,6 @@ impl ExecutionEntryPoint {
560559
resources_manager.cairo_usage += &runner.get_execution_resources()?;
561560

562561
let call_result = runner.get_call_result(self.initial_gas)?;
563-
dbg!(&call_result.is_success);
564-
dbg!(&call_result.retdata);
565562
self.build_call_info::<S>(
566563
previous_cairo_usage,
567564
resources_manager,

tests/account_panic.rs

Lines changed: 40 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -5,17 +5,11 @@ use num_traits::Zero;
55
use starknet_in_rust::{
66
core::contract_address::compute_casm_class_hash,
77
definitions::{block_context::BlockContext, constants::TRANSACTION_VERSION},
8-
execution::{
9-
execution_entry_point::ExecutionEntryPoint, CallType, TransactionExecutionContext,
10-
},
118
services::api::contract_classes::compiled_class::CompiledClass,
12-
state::{
13-
cached_state::CachedState, in_memory_state_reader::InMemoryStateReader, state_api::State,
14-
ExecutionResourcesManager,
15-
},
16-
transaction::{DeclareV2, Deploy, DeployAccount, InvokeFunction, Transaction},
17-
utils::{Address, ClassHash},
18-
CasmContractClass, EntryPointType,
9+
state::{cached_state::CachedState, in_memory_state_reader::InMemoryStateReader},
10+
transaction::{InvokeFunction, Transaction},
11+
utils::{calculate_sn_keccak, Address},
12+
CasmContractClass,
1913
};
2014

2115
#[test]
@@ -61,36 +55,60 @@ fn account_panic() {
6155
.insert(contract_address.clone(), contract_class_hash);
6256
state_reader
6357
.address_to_nonce_mut()
64-
.insert(contract_address.clone(), 1.into());
58+
.insert(contract_address, 1.into());
6559
let mut state = CachedState::new(Arc::new(state_reader), contract_class_cache);
6660

67-
let entrypoints = contract_class.entry_points_by_type;
68-
69-
let entrypoint_selector = &entrypoints.external.get(0).unwrap().selector;
61+
let selector = Felt252::from_bytes_be(&calculate_sn_keccak(b"__execute__"));
7062

7163
// arguments of contract_a contract
72-
let calldata: Vec<_> = [2.into()].to_vec();
64+
// calldata is a Vec of Call, which is
65+
/*
66+
#[derive(Drop, Serde)]
67+
struct Call {
68+
to: ContractAddress,
69+
selector: felt252,
70+
calldata: Array<felt252>
71+
}
72+
*/
73+
let selector_contract = &contract_class
74+
.entry_points_by_type
75+
.external
76+
.get(0)
77+
.unwrap()
78+
.selector;
79+
// calldata of contract_a is 1 value.
80+
let calldata: Vec<_> = [
81+
1.into(),
82+
contract_class_hash_felt,
83+
selector_contract.into(),
84+
1.into(),
85+
2.into(),
86+
]
87+
.to_vec();
7388

7489
// set up remaining structures
7590

7691
let invoke = InvokeFunction::new(
77-
contract_address,
78-
Felt252::new(entrypoint_selector.clone()),
92+
account_address,
93+
Felt252::new(selector),
7994
0,
8095
TRANSACTION_VERSION.clone(),
8196
calldata,
8297
vec![],
8398
block_context.starknet_os_config().chain_id().clone(),
84-
Some(1.into()),
99+
Some(0.into()),
85100
)
86101
.unwrap();
87102

88103
let tx = Transaction::InvokeFunction(invoke);
89-
let call_info = tx
104+
let exec_info = tx
90105
.execute(&mut state, &block_context, u128::MAX)
91106
.expect("failed to invoke");
107+
let call_info = exec_info.call_info.as_ref().unwrap();
108+
109+
assert_eq!(exec_info.revert_error, None);
92110

93-
dbg!(call_info.revert_error);
94-
//dbg!(call_info);
95-
panic!()
111+
// 482670963043u128 == 'panic'
112+
assert_eq!(call_info.retdata[0], 482670963043u128.into());
113+
assert!(call_info.failure_flag);
96114
}

0 commit comments

Comments
 (0)