From af7e9e1361d872e68b7a71863dc7f083184fa8a4 Mon Sep 17 00:00:00 2001 From: Federica Date: Thu, 8 Jun 2023 18:07:18 -0300 Subject: [PATCH 01/23] Fix how resources are handled --- src/business_logic/execution/execution_entry_point.rs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/business_logic/execution/execution_entry_point.rs b/src/business_logic/execution/execution_entry_point.rs index 5f5cadb3a..a72b05685 100644 --- a/src/business_logic/execution/execution_entry_point.rs +++ b/src/business_logic/execution/execution_entry_point.rs @@ -355,11 +355,12 @@ impl ExecutionEntryPoint { T: State + StateReader, { let previous_cairo_usage = resources_manager.cairo_usage.clone(); + // fetch selected entry point let entry_point = self.get_selected_entry_point(&contract_class, class_hash)?; // create starknet runner - let mut vm = VirtualMachine::new(false); + let mut vm = VirtualMachine::new(true); // get a program from the casm contract class let program: Program = contract_class.as_ref().clone().try_into()?; // create and initialize a cairo runner for running cairo 1 programs. @@ -459,7 +460,7 @@ impl ExecutionEntryPoint { .mark_address_range_as_accessed(args_ptr.unwrap(), entrypoint_args.len())?; // Update resources usage (for bouncer). - resources_manager.cairo_usage = + runner.hint_processor.syscall_handler.resources_manager.cairo_usage = &resources_manager.cairo_usage + &runner.get_execution_resources()?; let retdata = runner.get_return_values_cairo_1()?; From f5d561acf5c83870124d9715b9d4243da02ffebb Mon Sep 17 00:00:00 2001 From: Federica Date: Thu, 8 Jun 2023 18:26:21 -0300 Subject: [PATCH 02/23] Fix test values library_call test --- .../execution/execution_entry_point.rs | 7 +++++-- tests/cairo_1_syscalls.rs | 17 +++++++++++------ 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/src/business_logic/execution/execution_entry_point.rs b/src/business_logic/execution/execution_entry_point.rs index a72b05685..16521707c 100644 --- a/src/business_logic/execution/execution_entry_point.rs +++ b/src/business_logic/execution/execution_entry_point.rs @@ -460,8 +460,11 @@ impl ExecutionEntryPoint { .mark_address_range_as_accessed(args_ptr.unwrap(), entrypoint_args.len())?; // Update resources usage (for bouncer). - runner.hint_processor.syscall_handler.resources_manager.cairo_usage = - &resources_manager.cairo_usage + &runner.get_execution_resources()?; + runner + .hint_processor + .syscall_handler + .resources_manager + .cairo_usage = &resources_manager.cairo_usage + &runner.get_execution_resources()?; let retdata = runner.get_return_values_cairo_1()?; diff --git a/tests/cairo_1_syscalls.rs b/tests/cairo_1_syscalls.rs index e2039c355..c493cdd3c 100644 --- a/tests/cairo_1_syscalls.rs +++ b/tests/cairo_1_syscalls.rs @@ -244,11 +244,16 @@ fn library_call() { TRANSACTION_VERSION, ); let mut resources_manager = ExecutionResourcesManager::default(); - let mut expected_execution_resources = ExecutionResources::default(); - expected_execution_resources - .builtin_instance_counter - .insert(RANGE_CHECK_BUILTIN_NAME.to_string(), 7); - expected_execution_resources.n_memory_holes = 6; + let expected_execution_resources = ExecutionResources { + n_steps: 174, + n_memory_holes: 4, + builtin_instance_counter: HashMap::from([(RANGE_CHECK_BUILTIN_NAME.to_string(), 5)]), + }; + let expected_execution_resources_internal_call = ExecutionResources { + n_steps: 85, + n_memory_holes: 6, + builtin_instance_counter: HashMap::from([(RANGE_CHECK_BUILTIN_NAME.to_string(), 7)]), + }; // expected results let expected_call_info = CallInfo { @@ -275,7 +280,7 @@ fn library_call() { entry_point_type: Some(EntryPointType::External), calldata: vec![25.into()], retdata: [5.into()].to_vec(), - execution_resources: ExecutionResources::default(), + execution_resources: expected_execution_resources_internal_call, class_hash: Some(lib_class_hash), ..Default::default() }], From 2866066a5cd0e726626cdf270888c7fbc5d6eaa4 Mon Sep 17 00:00:00 2001 From: Federica Date: Thu, 8 Jun 2023 18:39:37 -0300 Subject: [PATCH 03/23] Fix test values --- tests/cairo_1_syscalls.rs | 14 +++++++ tests/syscalls.rs | 87 ++++++++++++++++++++++++++++++++++++++- 2 files changed, 99 insertions(+), 2 deletions(-) diff --git a/tests/cairo_1_syscalls.rs b/tests/cairo_1_syscalls.rs index c493cdd3c..5481e2378 100644 --- a/tests/cairo_1_syscalls.rs +++ b/tests/cairo_1_syscalls.rs @@ -753,6 +753,12 @@ fn test_send_message_to_l1_syscall() { payload: vec![555.into(), 666.into()], }]; + let expected_execution_resources = ExecutionResources { + n_steps: 50, + n_memory_holes: 1, + builtin_instance_counter: HashMap::from([(RANGE_CHECK_BUILTIN_NAME.to_string(), 2)]), + }; + let expected_call_info = CallInfo { caller_address: Address(0.into()), call_type: Some(CallType::Delegate), @@ -761,6 +767,7 @@ fn test_send_message_to_l1_syscall() { entry_point_selector: Some(external_entrypoint_selector.into()), entry_point_type: Some(EntryPointType::External), l2_to_l1_messages, + execution_resources: expected_execution_resources, ..Default::default() }; @@ -849,6 +856,12 @@ fn test_get_execution_info() { address.0.clone(), ]; + let expected_execution_resources = ExecutionResources { + n_steps: 335, + n_memory_holes: 14, + builtin_instance_counter: HashMap::from([(RANGE_CHECK_BUILTIN_NAME.to_string(), 4)]), + }; + let expected_call_info = CallInfo { caller_address: Address(0.into()), call_type: Some(CallType::Delegate), @@ -857,6 +870,7 @@ fn test_get_execution_info() { entry_point_selector: Some(external_entrypoint_selector.into()), entry_point_type: Some(EntryPointType::External), retdata: expected_ret_data, + execution_resources: expected_execution_resources, ..Default::default() }; diff --git a/tests/syscalls.rs b/tests/syscalls.rs index 974591641..e5706730c 100644 --- a/tests/syscalls.rs +++ b/tests/syscalls.rs @@ -1,6 +1,9 @@ #![deny(warnings)] -use cairo_vm::felt::{felt_str, Felt252}; +use cairo_vm::{ + felt::{felt_str, Felt252}, + vm::runners::cairo_runner::ExecutionResources, +}; use num_traits::Num; use starknet_contract_class::EntryPointType; use starknet_rs::{ @@ -24,7 +27,11 @@ use starknet_rs::{ services::api::contract_classes::deprecated_contract_class::ContractClass, utils::{calculate_sn_keccak, Address, ClassHash}, }; -use std::{collections::HashSet, iter::empty, path::Path}; +use std::{ + collections::{HashMap, HashSet}, + iter::empty, + path::Path, +}; #[allow(clippy::too_many_arguments)] fn test_contract<'a>( @@ -49,6 +56,7 @@ fn test_contract<'a>( arguments: impl Into>, internal_calls: impl Into>, return_data: impl Into>, + execution_resources: ExecutionResources, ) { let contract_class = ContractClass::try_from(contract_path.as_ref().to_path_buf()) .expect("Could not load contract from JSON"); @@ -151,6 +159,7 @@ fn test_contract<'a>( calldata, retdata: return_data.into(), internal_calls: internal_calls.into(), + execution_resources, ..Default::default() }, ); @@ -224,6 +233,11 @@ fn call_contract_syscall() { }, ], [], + ExecutionResources { + n_steps: 0, + n_memory_holes: 0, + builtin_instance_counter: HashMap::default(), + }, ); } @@ -274,6 +288,11 @@ fn emit_event_syscall() { [], [], [], + ExecutionResources { + n_steps: 0, + n_memory_holes: 0, + builtin_instance_counter: HashMap::default(), + }, ); } @@ -299,6 +318,11 @@ fn get_block_number_syscall() { [], [], [block_number.into()], + ExecutionResources { + n_steps: 0, + n_memory_holes: 0, + builtin_instance_counter: HashMap::default(), + }, ); }; @@ -329,6 +353,11 @@ fn get_block_timestamp_syscall() { [], [], [block_timestamp.into()], + ExecutionResources { + n_steps: 0, + n_memory_holes: 0, + builtin_instance_counter: HashMap::default(), + }, ); }; @@ -356,6 +385,11 @@ fn get_caller_address_syscall() { [], [], [caller_address], + ExecutionResources { + n_steps: 0, + n_memory_holes: 0, + builtin_instance_counter: HashMap::default(), + }, ); }; @@ -383,6 +417,11 @@ fn get_contract_address_syscall() { [], [], [contract_address], + ExecutionResources { + n_steps: 0, + n_memory_holes: 0, + builtin_instance_counter: HashMap::default(), + }, ); }; @@ -413,6 +452,11 @@ fn get_sequencer_address_syscall() { [], [], [sequencer_address], + ExecutionResources { + n_steps: 0, + n_memory_holes: 0, + builtin_instance_counter: HashMap::default(), + }, ); }; @@ -468,6 +512,11 @@ fn get_tx_info_syscall() { transaction_hash, chain_id.to_felt(), ], + ExecutionResources { + n_steps: 0, + n_memory_holes: 0, + builtin_instance_counter: HashMap::default(), + }, ); }; @@ -565,6 +614,11 @@ fn get_tx_signature_syscall() { .reduce(|a, b| a + b) .unwrap_or_default(), ], + ExecutionResources { + n_steps: 0, + n_memory_holes: 0, + builtin_instance_counter: HashMap::default(), + }, ); }; @@ -641,6 +695,11 @@ fn library_call_syscall() { }, ], [], + ExecutionResources { + n_steps: 113, + n_memory_holes: 0, + builtin_instance_counter: HashMap::default(), + }, ); } @@ -684,6 +743,11 @@ fn library_call_l1_handler_syscall() { ..Default::default() }], [], + ExecutionResources { + n_steps: 0, + n_memory_holes: 0, + builtin_instance_counter: HashMap::default(), + }, ); } @@ -721,6 +785,11 @@ fn send_message_to_l1_syscall() { [], [], [], + ExecutionResources { + n_steps: 0, + n_memory_holes: 0, + builtin_instance_counter: HashMap::default(), + }, ); } @@ -759,6 +828,11 @@ fn deploy_syscall() { ..Default::default() }], [deploy_address], + ExecutionResources { + n_steps: 0, + n_memory_holes: 0, + builtin_instance_counter: HashMap::default(), + }, ); } @@ -796,6 +870,11 @@ fn deploy_with_constructor_syscall() { ], [], [deploy_address], + ExecutionResources { + n_steps: 0, + n_memory_holes: 0, + builtin_instance_counter: HashMap::default(), + }, ); } @@ -904,5 +983,9 @@ fn test_deploy_and_call_contract_syscall() { ..Default::default() } ], [new_constant], + ExecutionResources { + n_steps: 0, + n_memory_holes: 0, + builtin_instance_counter: HashMap::default()}, ); } From 498ab2a1278d1b455cbc1ad1ec8b7b54985cfbf9 Mon Sep 17 00:00:00 2001 From: Federica Date: Thu, 8 Jun 2023 18:41:51 -0300 Subject: [PATCH 04/23] Apply same fix for cairo 0 --- src/business_logic/execution/execution_entry_point.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/business_logic/execution/execution_entry_point.rs b/src/business_logic/execution/execution_entry_point.rs index 16521707c..75ec515b5 100644 --- a/src/business_logic/execution/execution_entry_point.rs +++ b/src/business_logic/execution/execution_entry_point.rs @@ -263,7 +263,7 @@ impl ExecutionEntryPoint { let entry_point = self.get_selected_entry_point_v0(&contract_class, class_hash)?; // create starknet runner - let mut vm = VirtualMachine::new(false); + let mut vm = VirtualMachine::new(true); let mut cairo_runner = CairoRunner::new(&contract_class.program, "all_cairo", false)?; cairo_runner.initialize_function_runner(&mut vm)?; @@ -326,7 +326,7 @@ impl ExecutionEntryPoint { .mark_address_range_as_accessed(args_ptr, entry_point_args.len())?; // Update resources usage (for bouncer). - resources_manager.cairo_usage = + runner.hint_processor.syscall_handler.resources_manager.cairo_usage = &resources_manager.cairo_usage + &runner.get_execution_resources()?; let retdata = runner.get_return_values()?; From cf2dbd8fefdbd29c9912f65a1aae7ea14181fd67 Mon Sep 17 00:00:00 2001 From: Federica Date: Fri, 9 Jun 2023 12:57:09 -0300 Subject: [PATCH 05/23] Fix execution resources from inner calls not appearing in finall resources --- .../execution/execution_entry_point.rs | 17 ++++++++--------- tests/cairo_1_syscalls.rs | 6 +++--- 2 files changed, 11 insertions(+), 12 deletions(-) diff --git a/src/business_logic/execution/execution_entry_point.rs b/src/business_logic/execution/execution_entry_point.rs index 75ec515b5..2feb568c8 100644 --- a/src/business_logic/execution/execution_entry_point.rs +++ b/src/business_logic/execution/execution_entry_point.rs @@ -187,7 +187,7 @@ impl ExecutionEntryPoint { fn build_call_info( &self, previous_cairo_usage: ExecutionResources, - resources_manager: ExecutionResourcesManager, + resources_manager: &ExecutionResourcesManager, starknet_storage_state: ContractStorageState, events: Vec, l2_to_l1_messages: Vec, @@ -326,13 +326,13 @@ impl ExecutionEntryPoint { .mark_address_range_as_accessed(args_ptr, entry_point_args.len())?; // Update resources usage (for bouncer). - runner.hint_processor.syscall_handler.resources_manager.cairo_usage = + resources_manager.cairo_usage = &resources_manager.cairo_usage + &runner.get_execution_resources()?; let retdata = runner.get_return_values()?; self.build_call_info::( previous_cairo_usage, - runner.hint_processor.syscall_handler.resources_manager, + resources_manager, runner.hint_processor.syscall_handler.starknet_storage_state, runner.hint_processor.syscall_handler.events, runner.hint_processor.syscall_handler.l2_to_l1_messages, @@ -459,18 +459,17 @@ impl ExecutionEntryPoint { .vm .mark_address_range_as_accessed(args_ptr.unwrap(), entrypoint_args.len())?; + *resources_manager = runner.hint_processor.syscall_handler.resources_manager.clone(); + // Update resources usage (for bouncer). - runner - .hint_processor - .syscall_handler - .resources_manager - .cairo_usage = &resources_manager.cairo_usage + &runner.get_execution_resources()?; + resources_manager + .cairo_usage += &runner.get_execution_resources()?; let retdata = runner.get_return_values_cairo_1()?; self.build_call_info::( previous_cairo_usage, - runner.hint_processor.syscall_handler.resources_manager, + &resources_manager, runner.hint_processor.syscall_handler.starknet_storage_state, runner.hint_processor.syscall_handler.events, runner.hint_processor.syscall_handler.l2_to_l1_messages, diff --git a/tests/cairo_1_syscalls.rs b/tests/cairo_1_syscalls.rs index 5481e2378..cf990e3c0 100644 --- a/tests/cairo_1_syscalls.rs +++ b/tests/cairo_1_syscalls.rs @@ -245,9 +245,9 @@ fn library_call() { ); let mut resources_manager = ExecutionResourcesManager::default(); let expected_execution_resources = ExecutionResources { - n_steps: 174, - n_memory_holes: 4, - builtin_instance_counter: HashMap::from([(RANGE_CHECK_BUILTIN_NAME.to_string(), 5)]), + n_steps: 259, + n_memory_holes: 10, + builtin_instance_counter: HashMap::from([(RANGE_CHECK_BUILTIN_NAME.to_string(), 12)]), }; let expected_execution_resources_internal_call = ExecutionResources { n_steps: 85, From aa26f9631360c02eec31a3ac2c69bf7943452db8 Mon Sep 17 00:00:00 2001 From: Federica Date: Fri, 9 Jun 2023 15:55:26 -0300 Subject: [PATCH 06/23] Some fixes --- .../execution/execution_entry_point.rs | 9 ++++++--- src/business_logic/transaction/declare.rs | 9 ++++++++- src/testing/state.rs | 7 ++++++- tests/cairo_1_syscalls.rs | 2 +- tests/fibonacci.rs | 13 ++++++++++--- tests/increase_balance.rs | 5 ++++- tests/internals.rs | 14 +++++++++++++- 7 files changed, 48 insertions(+), 11 deletions(-) diff --git a/src/business_logic/execution/execution_entry_point.rs b/src/business_logic/execution/execution_entry_point.rs index 2feb568c8..663e44c52 100644 --- a/src/business_logic/execution/execution_entry_point.rs +++ b/src/business_logic/execution/execution_entry_point.rs @@ -459,11 +459,14 @@ impl ExecutionEntryPoint { .vm .mark_address_range_as_accessed(args_ptr.unwrap(), entrypoint_args.len())?; - *resources_manager = runner.hint_processor.syscall_handler.resources_manager.clone(); + *resources_manager = runner + .hint_processor + .syscall_handler + .resources_manager + .clone(); // Update resources usage (for bouncer). - resources_manager - .cairo_usage += &runner.get_execution_resources()?; + resources_manager.cairo_usage += &runner.get_execution_resources()?; let retdata = runner.get_return_values_cairo_1()?; diff --git a/src/business_logic/transaction/declare.rs b/src/business_logic/transaction/declare.rs index 9549c1b7b..ba93f77b5 100644 --- a/src/business_logic/transaction/declare.rs +++ b/src/business_logic/transaction/declare.rs @@ -295,7 +295,10 @@ impl Declare { #[cfg(test)] mod tests { use super::*; - use cairo_vm::felt::{felt_str, Felt252}; + use cairo_vm::{ + felt::{felt_str, Felt252}, + vm::runners::cairo_runner::ExecutionResources, + }; use num_traits::{One, Zero}; use std::{collections::HashMap, path::PathBuf}; @@ -392,6 +395,10 @@ mod tests { entry_point_type: Some(EntryPointType::External), calldata, class_hash: Some(expected_class_hash), + execution_resources: ExecutionResources { + n_steps: 12, + ..Default::default() + }, ..Default::default() }); diff --git a/src/testing/state.rs b/src/testing/state.rs index 951a15f2e..62ae371b5 100644 --- a/src/testing/state.rs +++ b/src/testing/state.rs @@ -294,7 +294,7 @@ impl StarknetState { mod tests { use std::path::PathBuf; - use cairo_vm::felt::felt_str; + use cairo_vm::{felt::felt_str, vm::runners::cairo_runner::ExecutionResources}; use num_traits::Num; use super::*; @@ -548,6 +548,11 @@ mod tests { entry_point_type: Some(EntryPointType::External), calldata: vec![1.into(), 1.into(), 10.into()], retdata: vec![144.into()], + execution_resources: ExecutionResources { + n_steps: 94, + n_memory_holes: 0, + builtin_instance_counter: HashMap::default(), + }, ..Default::default() }), actual_resources, diff --git a/tests/cairo_1_syscalls.rs b/tests/cairo_1_syscalls.rs index cf990e3c0..5e810933e 100644 --- a/tests/cairo_1_syscalls.rs +++ b/tests/cairo_1_syscalls.rs @@ -857,7 +857,7 @@ fn test_get_execution_info() { ]; let expected_execution_resources = ExecutionResources { - n_steps: 335, + n_steps: 355, n_memory_holes: 14, builtin_instance_counter: HashMap::from([(RANGE_CHECK_BUILTIN_NAME.to_string(), 4)]), }; diff --git a/tests/fibonacci.rs b/tests/fibonacci.rs index 8db64f52a..5d7c71e17 100644 --- a/tests/fibonacci.rs +++ b/tests/fibonacci.rs @@ -1,8 +1,8 @@ #![deny(warnings)] use cairo_lang_starknet::casm_contract_class::CasmContractClass; -use cairo_vm::felt::Felt252; use cairo_vm::vm::runners::cairo_runner::ExecutionResources; +use cairo_vm::{felt::Felt252, vm::runners::builtin_runner::RANGE_CHECK_BUILTIN_NAME}; use num_traits::Zero; use starknet_contract_class::EntryPointType; use starknet_rs::{ @@ -109,8 +109,11 @@ fn integration_test() { entry_point_type: Some(EntryPointType::External), calldata, retdata: [144.into()].to_vec(), - execution_resources: ExecutionResources::default(), class_hash: Some(class_hash), + execution_resources: ExecutionResources { + n_steps: 94, + ..Default::default() + }, ..Default::default() }; @@ -193,7 +196,11 @@ fn integration_test_cairo1() { entry_point_type: Some(EntryPointType::External), calldata, retdata: [144.into()].to_vec(), - execution_resources: ExecutionResources::default(), + execution_resources: ExecutionResources { + n_steps: 421, + n_memory_holes: 1, + builtin_instance_counter: HashMap::from([(RANGE_CHECK_BUILTIN_NAME.to_string(), 15)]), + }, class_hash: Some(class_hash), ..Default::default() }; diff --git a/tests/increase_balance.rs b/tests/increase_balance.rs index 33a8d6185..5d305dc15 100644 --- a/tests/increase_balance.rs +++ b/tests/increase_balance.rs @@ -124,7 +124,10 @@ fn hello_starknet_increase_balance() { entry_point_type: Some(EntryPointType::External), calldata, retdata: [].to_vec(), - execution_resources: ExecutionResources::default(), + execution_resources: ExecutionResources { + n_steps: 65, + ..Default::default() + }, class_hash: Some(class_hash), accessed_storage_keys: expected_accessed_storage_keys, storage_read_values: expected_storage_read_values, diff --git a/tests/internals.rs b/tests/internals.rs index cd702d752..6f8229c47 100644 --- a/tests/internals.rs +++ b/tests/internals.rs @@ -2,6 +2,7 @@ use assert_matches::assert_matches; use cairo_lang_starknet::contract_class::ContractClass as SierraContractClass; use cairo_vm::felt::{felt_str, Felt252}; +use cairo_vm::vm::runners::builtin_runner::{HASH_BUILTIN_NAME, RANGE_CHECK_BUILTIN_NAME}; use cairo_vm::vm::{ errors::{ cairo_run_errors::CairoRunError, vm_errors::VirtualMachineError, vm_exception::VmException, @@ -398,6 +399,10 @@ fn expected_validate_call_info( // Entries **not** in blockifier. class_hash: Some(felt_to_hash(&TEST_ACCOUNT_CONTRACT_CLASS_HASH)), call_type: Some(CallType::Call), + execution_resources: ExecutionResources { + n_steps: 13, + ..Default::default() + }, ..Default::default() } @@ -460,7 +465,14 @@ fn expected_fee_transfer_call_info( Felt252::zero(), Felt252::zero(), ], - + execution_resources: ExecutionResources { + n_steps: 57, + n_memory_holes: 57, + builtin_instance_counter: HashMap::from([ + (RANGE_CHECK_BUILTIN_NAME.to_string(), 21), + (HASH_BUILTIN_NAME.to_string(), 4), + ]), + }, ..Default::default() } } From 185ce49284ed8f31e9a294afdcdd4bb163b17e9c Mon Sep 17 00:00:00 2001 From: Federica Date: Fri, 9 Jun 2023 16:25:53 -0300 Subject: [PATCH 07/23] Fix some tests --- tests/internals.rs | 43 +++++++++++++++++++++++++++++++++++++++---- 1 file changed, 39 insertions(+), 4 deletions(-) diff --git a/tests/internals.rs b/tests/internals.rs index 6f8229c47..7d3dfe800 100644 --- a/tests/internals.rs +++ b/tests/internals.rs @@ -466,7 +466,7 @@ fn expected_fee_transfer_call_info( Felt252::zero(), ], execution_resources: ExecutionResources { - n_steps: 57, + n_steps: 529, n_memory_holes: 57, builtin_instance_counter: HashMap::from([ (RANGE_CHECK_BUILTIN_NAME.to_string(), 21), @@ -567,7 +567,14 @@ fn expected_fee_transfer_info() -> CallInfo { entry_point_type: Some(EntryPointType::External), calldata: vec![Felt252::from(4096), Felt252::zero(), Felt252::zero()], retdata: vec![Felt252::from(1)], - execution_resources: ExecutionResources::default(), + execution_resources: ExecutionResources { + n_steps: 525, + n_memory_holes: 59, + builtin_instance_counter: HashMap::from([ + (RANGE_CHECK_BUILTIN_NAME.to_string(), 21), + (HASH_BUILTIN_NAME.to_string(), 4), + ]), + }, l2_to_l1_messages: vec![], internal_calls: vec![], events: vec![OrderedEvent { @@ -691,6 +698,14 @@ fn expected_declare_fee_transfer_info() -> CallInfo { 119, 136, 76, 21, 186, 42, 176, 242, 36, 27, 8, 13, 235, ], ]), + execution_resources: ExecutionResources { + n_steps: 525, + n_memory_holes: 59, + builtin_instance_counter: HashMap::from([ + (RANGE_CHECK_BUILTIN_NAME.to_string(), 21), + (HASH_BUILTIN_NAME.to_string(), 4), + ]), + }, ..Default::default() } } @@ -715,6 +730,10 @@ fn test_declare_tx() { entry_point_selector: Some(VALIDATE_DECLARE_ENTRY_POINT_SELECTOR.clone()), entry_point_type: Some(EntryPointType::External), calldata: vec![TEST_EMPTY_CONTRACT_CLASS_HASH.clone()], + execution_resources: ExecutionResources { + n_steps: 12, + ..Default::default() + }, ..Default::default() }), None, @@ -755,6 +774,10 @@ fn test_declarev2_tx() { entry_point_selector: Some(VALIDATE_DECLARE_ENTRY_POINT_SELECTOR.clone()), entry_point_type: Some(EntryPointType::External), calldata: vec![TEST_FIB_COMPILED_CONTRACT_CLASS_HASH.clone()], + execution_resources: ExecutionResources { + n_steps: 12, + ..Default::default() + }, ..Default::default() }), None, @@ -791,7 +814,6 @@ fn expected_execute_call_info() -> CallInfo { Felt252::from(2), ], retdata: vec![Felt252::from(2)], - execution_resources: ExecutionResources::default(), l2_to_l1_messages: vec![], internal_calls: vec![CallInfo { caller_address: TEST_ACCOUNT_CONTRACT_ADDRESS.clone(), @@ -810,12 +832,20 @@ fn expected_execute_call_info() -> CallInfo { events: vec![], l2_to_l1_messages: vec![], internal_calls: vec![], - execution_resources: ExecutionResources::default(), contract_address: TEST_CONTRACT_ADDRESS.clone(), code_address: None, + execution_resources: ExecutionResources { + n_steps: 22, + ..Default::default() + }, ..Default::default() }], events: vec![], + execution_resources: ExecutionResources { + n_steps: 39, + n_memory_holes: 0, + builtin_instance_counter: HashMap::from([(RANGE_CHECK_BUILTIN_NAME.to_string(), 1)]), + }, ..Default::default() } } @@ -838,6 +868,11 @@ fn expected_validate_call_info_2() -> CallInfo { Felt252::from(1), Felt252::from(2), ], + execution_resources: ExecutionResources { + n_steps: 21, + n_memory_holes: 0, + builtin_instance_counter: HashMap::from([(RANGE_CHECK_BUILTIN_NAME.to_string(), 1)]), + }, ..Default::default() } } From 115f31ebcbaafddc2e81001d037c91f5f9ef07ea Mon Sep 17 00:00:00 2001 From: Federica Date: Fri, 9 Jun 2023 16:45:51 -0300 Subject: [PATCH 08/23] Fix some tests --- tests/complex_contracts/amm_contracts/amm.rs | 50 +++++++++++-- tests/complex_contracts/nft/erc721.rs | 74 +++++++++++++++++--- 2 files changed, 109 insertions(+), 15 deletions(-) diff --git a/tests/complex_contracts/amm_contracts/amm.rs b/tests/complex_contracts/amm_contracts/amm.rs index da113ac30..8c6a6325a 100644 --- a/tests/complex_contracts/amm_contracts/amm.rs +++ b/tests/complex_contracts/amm_contracts/amm.rs @@ -1,7 +1,8 @@ -use std::collections::HashSet; +use std::collections::{HashMap, HashSet}; -use cairo_vm::felt::Felt252; +use cairo_vm::vm::runners::builtin_runner::HASH_BUILTIN_NAME; use cairo_vm::vm::runners::cairo_runner::ExecutionResources; +use cairo_vm::{felt::Felt252, vm::runners::builtin_runner::RANGE_CHECK_BUILTIN_NAME}; use num_traits::Zero; use starknet_contract_class::EntryPointType; use starknet_rs::{ @@ -93,7 +94,14 @@ fn amm_init_pool_test() { entry_point_type: Some(EntryPointType::External), calldata: calldata.clone(), retdata: [].to_vec(), - execution_resources: ExecutionResources::default(), + execution_resources: ExecutionResources { + n_steps: 232, + n_memory_holes: 20, + builtin_instance_counter: HashMap::from([ + (RANGE_CHECK_BUILTIN_NAME.to_string(), 14), + (HASH_BUILTIN_NAME.to_string(), 2), + ]), + }, class_hash: Some(class_hash), accessed_storage_keys, ..Default::default() @@ -175,7 +183,14 @@ fn amm_add_demo_tokens_test() { entry_point_selector: Some(add_demo_token_selector), entry_point_type: Some(EntryPointType::External), calldata: calldata_add_demo_token.clone(), - execution_resources: ExecutionResources::default(), + execution_resources: ExecutionResources { + n_steps: 939, + n_memory_holes: 44, + builtin_instance_counter: HashMap::from([ + (RANGE_CHECK_BUILTIN_NAME.to_string(), 20), + (HASH_BUILTIN_NAME.to_string(), 8), + ]), + }, class_hash: Some(class_hash), accessed_storage_keys: accessed_storage_keys_add_demo_token, storage_read_values: vec![Felt252::zero(), Felt252::zero()], @@ -243,7 +258,14 @@ fn amm_get_pool_token_balance() { entry_point_selector: Some(get_pool_balance_selector), entry_point_type: Some(EntryPointType::External), calldata: calldata_get_pool_token_balance.clone(), - execution_resources: ExecutionResources::default(), + execution_resources: ExecutionResources { + n_steps: 84, + n_memory_holes: 10, + builtin_instance_counter: HashMap::from([ + (RANGE_CHECK_BUILTIN_NAME.to_string(), 1), + (HASH_BUILTIN_NAME.to_string(), 3), + ]), + }, class_hash: Some(class_hash), accessed_storage_keys: accessed_storage_keys_get_pool_token_balance, storage_read_values: vec![10000.into()], @@ -332,7 +354,14 @@ fn amm_swap_test() { entry_point_type: Some(EntryPointType::External), calldata: calldata_swap.clone(), retdata: expected_return, - execution_resources: ExecutionResources::default(), + execution_resources: ExecutionResources { + n_steps: 820, + n_memory_holes: 95, + builtin_instance_counter: HashMap::from([ + (RANGE_CHECK_BUILTIN_NAME.to_string(), 41), + (HASH_BUILTIN_NAME.to_string(), 14), + ]), + }, class_hash: Some(class_hash), accessed_storage_keys, storage_read_values: [ @@ -576,7 +605,14 @@ fn amm_get_account_token_balance_test() { entry_point_type: Some(EntryPointType::External), calldata: calldata_get_balance, retdata: expected_return, - execution_resources: ExecutionResources::default(), + execution_resources: ExecutionResources { + n_steps: 92, + n_memory_holes: 11, + builtin_instance_counter: HashMap::from([ + (RANGE_CHECK_BUILTIN_NAME.to_string(), 3), + (HASH_BUILTIN_NAME.to_string(), 2), + ]), + }, class_hash: Some(class_hash), accessed_storage_keys, storage_read_values: [10.into()].to_vec(), diff --git a/tests/complex_contracts/nft/erc721.rs b/tests/complex_contracts/nft/erc721.rs index 81e16971e..6715eb0e1 100644 --- a/tests/complex_contracts/nft/erc721.rs +++ b/tests/complex_contracts/nft/erc721.rs @@ -1,7 +1,8 @@ -use std::collections::HashSet; +use std::collections::{HashMap, HashSet}; use assert_matches::assert_matches; use cairo_vm::felt::Felt252; +use cairo_vm::vm::runners::builtin_runner::{HASH_BUILTIN_NAME, RANGE_CHECK_BUILTIN_NAME}; use cairo_vm::vm::runners::cairo_runner::ExecutionResources; use num_traits::Zero; use starknet_contract_class::EntryPointType; @@ -141,7 +142,14 @@ fn erc721_balance_of_test() { entry_point_type: Some(EntryPointType::External), calldata: calldata.clone(), retdata: expected_read_result.clone(), - execution_resources: ExecutionResources::default(), + execution_resources: ExecutionResources { + n_steps: 105, + n_memory_holes: 10, + builtin_instance_counter: HashMap::from([ + (RANGE_CHECK_BUILTIN_NAME.to_string(), 3), + (HASH_BUILTIN_NAME.to_string(), 1), + ]), + }, class_hash: Some(class_hash), accessed_storage_keys, storage_read_values: expected_read_result, @@ -217,7 +225,14 @@ fn erc721_test_owner_of() { entry_point_type: Some(EntryPointType::External), calldata: calldata.clone(), retdata: expected_read_result.clone(), - execution_resources: ExecutionResources::default(), + execution_resources: ExecutionResources { + n_steps: 117, + n_memory_holes: 10, + builtin_instance_counter: HashMap::from([ + (RANGE_CHECK_BUILTIN_NAME.to_string(), 5), + (HASH_BUILTIN_NAME.to_string(), 2), + ]), + }, class_hash: Some(class_hash), accessed_storage_keys, storage_read_values: expected_read_result, @@ -310,7 +325,14 @@ fn erc721_test_get_approved() { entry_point_type: Some(EntryPointType::External), calldata: calldata.clone(), retdata: expected_read_result, - execution_resources: ExecutionResources::default(), + execution_resources: ExecutionResources { + n_steps: 192, + n_memory_holes: 20, + builtin_instance_counter: HashMap::from([ + (RANGE_CHECK_BUILTIN_NAME.to_string(), 8), + (HASH_BUILTIN_NAME.to_string(), 4), + ]), + }, class_hash: Some(class_hash), accessed_storage_keys, storage_read_values, @@ -406,7 +428,14 @@ fn erc721_test_is_approved_for_all() { entry_point_type: Some(EntryPointType::External), calldata: calldata.clone(), retdata: expected_read_result, - execution_resources: ExecutionResources::default(), + execution_resources: ExecutionResources { + n_steps: 101, + n_memory_holes: 10, + builtin_instance_counter: HashMap::from([ + (RANGE_CHECK_BUILTIN_NAME.to_string(), 3), + (HASH_BUILTIN_NAME.to_string(), 2), + ]), + }, class_hash: Some(class_hash), accessed_storage_keys, storage_read_values, @@ -503,7 +532,14 @@ fn erc721_test_approve() { entry_point_type: Some(EntryPointType::External), calldata: calldata.clone(), retdata: expected_read_result, - execution_resources: ExecutionResources::default(), + execution_resources: ExecutionResources { + n_steps: 332, + n_memory_holes: 30, + builtin_instance_counter: HashMap::from([ + (RANGE_CHECK_BUILTIN_NAME.to_string(), 13), + (HASH_BUILTIN_NAME.to_string(), 6), + ]), + }, class_hash: Some(class_hash), accessed_storage_keys, storage_read_values, @@ -595,7 +631,14 @@ fn erc721_set_approval_for_all() { entry_point_type: Some(EntryPointType::External), calldata: calldata.clone(), retdata: expected_read_result, - execution_resources: ExecutionResources::default(), + execution_resources: ExecutionResources { + n_steps: 154, + n_memory_holes: 10, + builtin_instance_counter: HashMap::from([ + (RANGE_CHECK_BUILTIN_NAME.to_string(), 3), + (HASH_BUILTIN_NAME.to_string(), 2), + ]), + }, class_hash: Some(class_hash), accessed_storage_keys, storage_read_values, @@ -733,6 +776,14 @@ fn erc721_transfer_from_test() { accessed_storage_keys, storage_read_values: expected_read_values, events: expected_events, + execution_resources: ExecutionResources { + n_steps: 1131, + n_memory_holes: 117, + builtin_instance_counter: HashMap::from([ + (RANGE_CHECK_BUILTIN_NAME.to_string(), 53), + (HASH_BUILTIN_NAME.to_string(), 16), + ]), + }, ..Default::default() }; @@ -814,10 +865,17 @@ fn erc721_transfer_from_and_get_owner_test() { entry_point_type: Some(EntryPointType::External), calldata: calldata.clone(), retdata: expected_read_result.clone(), - execution_resources: ExecutionResources::default(), class_hash: Some(class_hash), accessed_storage_keys, storage_read_values: expected_read_result, + execution_resources: ExecutionResources { + n_steps: 116, + n_memory_holes: 10, + builtin_instance_counter: HashMap::from([ + (RANGE_CHECK_BUILTIN_NAME.to_string(), 5), + (HASH_BUILTIN_NAME.to_string(), 2), + ]), + }, ..Default::default() }; From 92701e2f6a1bd828596d2cdaeb5534f5859ada49 Mon Sep 17 00:00:00 2001 From: Federica Date: Fri, 9 Jun 2023 16:50:31 -0300 Subject: [PATCH 09/23] Apply fix to cairo 0 execution --- src/business_logic/execution/execution_entry_point.rs | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/business_logic/execution/execution_entry_point.rs b/src/business_logic/execution/execution_entry_point.rs index 663e44c52..d4c47467f 100644 --- a/src/business_logic/execution/execution_entry_point.rs +++ b/src/business_logic/execution/execution_entry_point.rs @@ -325,9 +325,14 @@ impl ExecutionEntryPoint { .vm .mark_address_range_as_accessed(args_ptr, entry_point_args.len())?; + *resources_manager = runner + .hint_processor + .syscall_handler + .resources_manager + .clone(); + // Update resources usage (for bouncer). - resources_manager.cairo_usage = - &resources_manager.cairo_usage + &runner.get_execution_resources()?; + resources_manager.cairo_usage += &runner.get_execution_resources()?; let retdata = runner.get_return_values()?; self.build_call_info::( From 1ee2962bcb70bc68a0b5a84c371e9cf9ddb85ddb Mon Sep 17 00:00:00 2001 From: Federica Date: Fri, 9 Jun 2023 17:03:07 -0300 Subject: [PATCH 10/23] Fix some tests --- .../amm_contracts/amm_proxy.rs | 42 +++++++++++++++---- tests/complex_contracts/nft/erc721.rs | 2 +- tests/internals.rs | 2 +- 3 files changed, 37 insertions(+), 9 deletions(-) diff --git a/tests/complex_contracts/amm_contracts/amm_proxy.rs b/tests/complex_contracts/amm_contracts/amm_proxy.rs index cf49dc13f..dd19cbede 100644 --- a/tests/complex_contracts/amm_contracts/amm_proxy.rs +++ b/tests/complex_contracts/amm_contracts/amm_proxy.rs @@ -81,7 +81,14 @@ fn amm_proxy_init_pool_test() { entry_point_type: Some(EntryPointType::External), calldata: calldata.clone()[1..].to_vec(), retdata: [].to_vec(), - execution_resources: ExecutionResources::default(), + execution_resources: ExecutionResources { + n_steps: 232, + n_memory_holes: 20, + builtin_instance_counter: HashMap::from([ + ("pedersen_builtin".to_string(), 2), + ("range_check_builtin".to_string(), 14), + ]), + }, class_hash: Some(contract_class_hash), accessed_storage_keys, ..Default::default() @@ -96,12 +103,12 @@ fn amm_proxy_init_pool_test() { calldata: calldata.clone(), retdata: [].to_vec(), execution_resources: ExecutionResources { + n_steps: 280, n_memory_holes: 20, builtin_instance_counter: HashMap::from([ ("pedersen_builtin".to_string(), 2), ("range_check_builtin".to_string(), 14), ]), - ..Default::default() }, class_hash: Some(proxy_class_hash), internal_calls, @@ -182,7 +189,14 @@ fn amm_proxy_get_pool_token_balance_test() { calldata: calldata.clone()[1..].to_vec(), retdata: [555.into()].to_vec(), storage_read_values: [555.into()].to_vec(), - execution_resources: ExecutionResources::default(), + execution_resources: ExecutionResources { + n_steps: 84, + n_memory_holes: 10, + builtin_instance_counter: HashMap::from([ + ("pedersen_builtin".to_string(), 1), + ("range_check_builtin".to_string(), 3), + ]), + }, class_hash: Some(contract_class_hash), accessed_storage_keys, ..Default::default() @@ -409,7 +423,14 @@ fn amm_proxy_get_account_token_balance() { calldata: calldata.clone()[1..].to_vec(), retdata: [200.into()].to_vec(), storage_read_values: [200.into()].to_vec(), - execution_resources: ExecutionResources::default(), + execution_resources: ExecutionResources { + n_steps: 94, + n_memory_holes: 10, + builtin_instance_counter: HashMap::from([ + ("pedersen_builtin".to_string(), 2), + ("range_check_builtin".to_string(), 3), + ]), + }, class_hash: Some(contract_class_hash), accessed_storage_keys, ..Default::default() @@ -424,12 +445,12 @@ fn amm_proxy_get_account_token_balance() { calldata: calldata.clone(), retdata: [200.into()].to_vec(), execution_resources: ExecutionResources { + n_steps: 153, n_memory_holes: 10, builtin_instance_counter: HashMap::from([ ("pedersen_builtin".to_string(), 2), ("range_check_builtin".to_string(), 3), ]), - ..Default::default() }, class_hash: Some(proxy_class_hash), internal_calls, @@ -536,7 +557,14 @@ fn amm_proxy_swap() { retdata: [90.into()].to_vec(), storage_read_values: [100.into(), 1000.into(), 1000.into(), 100.into(), 200.into()] .to_vec(), - execution_resources: ExecutionResources::default(), + execution_resources: ExecutionResources { + n_steps: 824, + n_memory_holes: 93, + builtin_instance_counter: HashMap::from([ + ("pedersen_builtin".to_string(), 14), + ("range_check_builtin".to_string(), 41), + ]), + }, class_hash: Some(contract_class_hash), accessed_storage_keys, ..Default::default() @@ -551,12 +579,12 @@ fn amm_proxy_swap() { calldata: calldata.clone(), retdata: expected_result, execution_resources: ExecutionResources { + n_steps: 883, n_memory_holes: 93, builtin_instance_counter: HashMap::from([ ("pedersen_builtin".to_string(), 14), ("range_check_builtin".to_string(), 41), ]), - ..Default::default() }, class_hash: Some(proxy_class_hash), internal_calls, diff --git a/tests/complex_contracts/nft/erc721.rs b/tests/complex_contracts/nft/erc721.rs index 6715eb0e1..6abde8f81 100644 --- a/tests/complex_contracts/nft/erc721.rs +++ b/tests/complex_contracts/nft/erc721.rs @@ -226,7 +226,7 @@ fn erc721_test_owner_of() { calldata: calldata.clone(), retdata: expected_read_result.clone(), execution_resources: ExecutionResources { - n_steps: 117, + n_steps: 116, n_memory_holes: 10, builtin_instance_counter: HashMap::from([ (RANGE_CHECK_BUILTIN_NAME.to_string(), 5), diff --git a/tests/internals.rs b/tests/internals.rs index 7d3dfe800..524c87806 100644 --- a/tests/internals.rs +++ b/tests/internals.rs @@ -842,7 +842,7 @@ fn expected_execute_call_info() -> CallInfo { }], events: vec![], execution_resources: ExecutionResources { - n_steps: 39, + n_steps: 61, n_memory_holes: 0, builtin_instance_counter: HashMap::from([(RANGE_CHECK_BUILTIN_NAME.to_string(), 1)]), }, From 1b33313a621c108525f1ea3b9cb5f895455145cb Mon Sep 17 00:00:00 2001 From: Federica Date: Fri, 9 Jun 2023 17:19:07 -0300 Subject: [PATCH 11/23] Fix some tests --- tests/complex_contracts/amm_contracts/amm.rs | 6 +++--- tests/complex_contracts/amm_contracts/amm_proxy.rs | 13 ++++++++++--- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/tests/complex_contracts/amm_contracts/amm.rs b/tests/complex_contracts/amm_contracts/amm.rs index 8c6a6325a..a72fefd0c 100644 --- a/tests/complex_contracts/amm_contracts/amm.rs +++ b/tests/complex_contracts/amm_contracts/amm.rs @@ -184,7 +184,7 @@ fn amm_add_demo_tokens_test() { entry_point_type: Some(EntryPointType::External), calldata: calldata_add_demo_token.clone(), execution_resources: ExecutionResources { - n_steps: 939, + n_steps: 393, n_memory_holes: 44, builtin_instance_counter: HashMap::from([ (RANGE_CHECK_BUILTIN_NAME.to_string(), 20), @@ -262,8 +262,8 @@ fn amm_get_pool_token_balance() { n_steps: 84, n_memory_holes: 10, builtin_instance_counter: HashMap::from([ - (RANGE_CHECK_BUILTIN_NAME.to_string(), 1), - (HASH_BUILTIN_NAME.to_string(), 3), + (RANGE_CHECK_BUILTIN_NAME.to_string(), 3), + (HASH_BUILTIN_NAME.to_string(), 1), ]), }, class_hash: Some(class_hash), diff --git a/tests/complex_contracts/amm_contracts/amm_proxy.rs b/tests/complex_contracts/amm_contracts/amm_proxy.rs index dd19cbede..0ab6bf153 100644 --- a/tests/complex_contracts/amm_contracts/amm_proxy.rs +++ b/tests/complex_contracts/amm_contracts/amm_proxy.rs @@ -211,12 +211,12 @@ fn amm_proxy_get_pool_token_balance_test() { calldata: calldata.clone(), retdata: [555.into()].to_vec(), execution_resources: ExecutionResources { + n_steps: 140, n_memory_holes: 10, builtin_instance_counter: HashMap::from([ ("pedersen_builtin".to_string(), 1), ("range_check_builtin".to_string(), 3), ]), - ..Default::default() }, class_hash: Some(proxy_class_hash), internal_calls, @@ -304,7 +304,14 @@ fn amm_proxy_add_demo_token_test() { entry_point_type: Some(EntryPointType::External), calldata: calldata.clone()[1..].to_vec(), storage_read_values: vec![0.into(), 0.into()], - execution_resources: ExecutionResources::default(), + execution_resources: ExecutionResources { + n_steps: 397, + n_memory_holes: 42, + builtin_instance_counter: HashMap::from([ + ("pedersen_builtin".to_string(), 8), + ("range_check_builtin".to_string(), 20), + ]), + }, class_hash: Some(contract_class_hash), accessed_storage_keys, ..Default::default() @@ -318,12 +325,12 @@ fn amm_proxy_add_demo_token_test() { entry_point_type: Some(EntryPointType::External), calldata: calldata.clone(), execution_resources: ExecutionResources { + n_steps: 445, n_memory_holes: 42, builtin_instance_counter: HashMap::from([ ("pedersen_builtin".to_string(), 8), ("range_check_builtin".to_string(), 20), ]), - ..Default::default() }, class_hash: Some(proxy_class_hash), internal_calls, From 2721469119616fd3a1635909573a4f52634e7f11 Mon Sep 17 00:00:00 2001 From: Federica Date: Fri, 9 Jun 2023 18:13:46 -0300 Subject: [PATCH 12/23] Fix some tests --- tests/storage.rs | 5 ++- tests/syscalls.rs | 96 ++++++++++++++++++++++++++++------------------- 2 files changed, 62 insertions(+), 39 deletions(-) diff --git a/tests/storage.rs b/tests/storage.rs index 3cf8dd0d2..6ffacbd78 100644 --- a/tests/storage.rs +++ b/tests/storage.rs @@ -119,7 +119,10 @@ fn integration_storage_test() { entry_point_type: Some(EntryPointType::External), calldata, retdata: [42.into()].to_vec(), - execution_resources: ExecutionResources::default(), + execution_resources: ExecutionResources { + n_steps: 68, + ..Default::default() + }, class_hash: Some(class_hash), storage_read_values: vec![42.into()], accessed_storage_keys: expected_accessed_storage_keys, diff --git a/tests/syscalls.rs b/tests/syscalls.rs index e5706730c..85d7a4de1 100644 --- a/tests/syscalls.rs +++ b/tests/syscalls.rs @@ -319,9 +319,8 @@ fn get_block_number_syscall() { [], [block_number.into()], ExecutionResources { - n_steps: 0, - n_memory_holes: 0, - builtin_instance_counter: HashMap::default(), + n_steps: 26, + ..Default::default() }, ); }; @@ -354,9 +353,8 @@ fn get_block_timestamp_syscall() { [], [block_timestamp.into()], ExecutionResources { - n_steps: 0, - n_memory_holes: 0, - builtin_instance_counter: HashMap::default(), + n_steps: 26, + ..Default::default() }, ); }; @@ -386,9 +384,8 @@ fn get_caller_address_syscall() { [], [caller_address], ExecutionResources { - n_steps: 0, - n_memory_holes: 0, - builtin_instance_counter: HashMap::default(), + n_steps: 26, + ..Default::default() }, ); }; @@ -418,9 +415,8 @@ fn get_contract_address_syscall() { [], [contract_address], ExecutionResources { - n_steps: 0, - n_memory_holes: 0, - builtin_instance_counter: HashMap::default(), + n_steps: 26, + ..Default::default() }, ); }; @@ -453,9 +449,8 @@ fn get_sequencer_address_syscall() { [], [sequencer_address], ExecutionResources { - n_steps: 0, - n_memory_holes: 0, - builtin_instance_counter: HashMap::default(), + n_steps: 26, + ..Default::default() }, ); }; @@ -513,9 +508,8 @@ fn get_tx_info_syscall() { chain_id.to_felt(), ], ExecutionResources { - n_steps: 0, - n_memory_holes: 0, - builtin_instance_counter: HashMap::default(), + n_steps: 49, + ..Default::default() }, ); }; @@ -615,9 +609,8 @@ fn get_tx_signature_syscall() { .unwrap_or_default(), ], ExecutionResources { - n_steps: 0, - n_memory_holes: 0, - builtin_instance_counter: HashMap::default(), + n_steps: 41, + ..Default::default() }, ); }; @@ -660,6 +653,11 @@ fn library_call_syscall() { entry_point_type: Some(EntryPointType::External), calldata: vec![21.into(), 2.into()], retdata: vec![42.into()], + execution_resources: ExecutionResources { + n_steps: 24, + n_memory_holes: 0, + builtin_instance_counter: HashMap::default(), + }, ..Default::default() }, CallInfo { @@ -678,6 +676,11 @@ fn library_call_syscall() { ]] .into_iter() .collect(), + execution_resources: ExecutionResources { + n_steps: 63, + n_memory_holes: 0, + builtin_instance_counter: HashMap::default(), + }, ..Default::default() }, CallInfo { @@ -691,14 +694,18 @@ fn library_call_syscall() { entry_point_type: Some(EntryPointType::External), calldata: vec![], retdata: vec![1111.into()], + execution_resources: ExecutionResources { + n_steps: 26, + n_memory_holes: 0, + builtin_instance_counter: HashMap::default(), + }, ..Default::default() }, ], [], ExecutionResources { - n_steps: 113, - n_memory_holes: 0, - builtin_instance_counter: HashMap::default(), + n_steps: 284, + ..Default::default() }, ); } @@ -740,13 +747,16 @@ fn library_call_l1_handler_syscall() { ]] .into_iter() .collect(), + execution_resources: ExecutionResources { + n_steps: 40, + ..Default::default() + }, ..Default::default() }], [], ExecutionResources { - n_steps: 0, - n_memory_holes: 0, - builtin_instance_counter: HashMap::default(), + n_steps: 103, + ..Default::default() }, ); } @@ -786,9 +796,8 @@ fn send_message_to_l1_syscall() { [], [], ExecutionResources { - n_steps: 0, - n_memory_holes: 0, - builtin_instance_counter: HashMap::default(), + n_steps: 68, + ..Default::default() }, ); } @@ -829,9 +838,9 @@ fn deploy_syscall() { }], [deploy_address], ExecutionResources { - n_steps: 0, - n_memory_holes: 0, - builtin_instance_counter: HashMap::default(), + n_steps: 39, + n_memory_holes: 2, + ..Default::default() }, ); } @@ -871,9 +880,8 @@ fn deploy_with_constructor_syscall() { [], [deploy_address], ExecutionResources { - n_steps: 0, - n_memory_holes: 0, - builtin_instance_counter: HashMap::default(), + n_steps: 84, + ..Default::default() }, ); } @@ -938,6 +946,10 @@ fn test_deploy_and_call_contract_syscall() { retdata: vec![(constructor_constant.clone() * Felt252::new(4))], storage_read_values: vec![constructor_constant], accessed_storage_keys: HashSet::from([constant_storage_key]), + execution_resources: ExecutionResources { + n_steps: 52, + ..Default::default() + }, ..Default::default() }, // Invoke storage_var_and_constructor.cairo set_constant function @@ -959,6 +971,10 @@ fn test_deploy_and_call_contract_syscall() { retdata: vec![], storage_read_values: vec![], accessed_storage_keys: HashSet::from([constant_storage_key]), + execution_resources: ExecutionResources { + n_steps: 40, + ..Default::default() + }, ..Default::default() }, // Invoke storage_var_and_constructor.cairo get_constant function @@ -980,12 +996,16 @@ fn test_deploy_and_call_contract_syscall() { retdata: vec![new_constant.clone()], storage_read_values: vec![new_constant.clone()], accessed_storage_keys: HashSet::from([constant_storage_key]), + execution_resources: ExecutionResources { + n_steps: 46, + ..Default::default() + }, ..Default::default() } ], [new_constant], ExecutionResources { - n_steps: 0, - n_memory_holes: 0, + n_steps: 325, + n_memory_holes: 2, builtin_instance_counter: HashMap::default()}, ); } From e688d03e4434761a8d0c490455d5ece4ccdc948d Mon Sep 17 00:00:00 2001 From: Federica Date: Fri, 9 Jun 2023 18:39:50 -0300 Subject: [PATCH 13/23] Fix some tests --- tests/syscalls.rs | 36 +++++++++++++++++++++++++++++++----- 1 file changed, 31 insertions(+), 5 deletions(-) diff --git a/tests/syscalls.rs b/tests/syscalls.rs index 85d7a4de1..320505033 100644 --- a/tests/syscalls.rs +++ b/tests/syscalls.rs @@ -467,7 +467,8 @@ fn get_tx_info_syscall() { max_fee, signature: Vec, transaction_hash: Felt252, - chain_id| { + chain_id, + execution_resources: ExecutionResources| { let mut general_config = StarknetGeneralConfig::default(); *general_config.starknet_os_config_mut().chain_id_mut() = chain_id; @@ -507,10 +508,7 @@ fn get_tx_info_syscall() { transaction_hash, chain_id.to_felt(), ], - ExecutionResources { - n_steps: 49, - ..Default::default() - }, + execution_resources ); }; @@ -521,6 +519,10 @@ fn get_tx_info_syscall() { vec![], 0.into(), StarknetChainId::TestNet, + ExecutionResources { + n_steps: 49, + ..Default::default() + }, ); run( 10, @@ -529,6 +531,10 @@ fn get_tx_info_syscall() { vec![], 0.into(), StarknetChainId::TestNet, + ExecutionResources { + n_steps: 49, + ..Default::default() + }, ); run( 10, @@ -537,6 +543,10 @@ fn get_tx_info_syscall() { vec![], 0.into(), StarknetChainId::TestNet, + ExecutionResources { + n_steps: 49, + ..Default::default() + }, ); run( 10, @@ -545,6 +555,10 @@ fn get_tx_info_syscall() { vec![], 0.into(), StarknetChainId::TestNet, + ExecutionResources { + n_steps: 49, + ..Default::default() + }, ); run( 10, @@ -553,6 +567,10 @@ fn get_tx_info_syscall() { [0x12, 0x34, 0x56, 0x78].map(Felt252::from).to_vec(), 0.into(), StarknetChainId::TestNet, + ExecutionResources { + n_steps: 77, + ..Default::default() + }, ); run( 10, @@ -561,6 +579,10 @@ fn get_tx_info_syscall() { [0x12, 0x34, 0x56, 0x78].map(Felt252::from).to_vec(), 12345678.into(), StarknetChainId::TestNet, + ExecutionResources { + n_steps: 77, + ..Default::default() + }, ); run( 10, @@ -569,6 +591,10 @@ fn get_tx_info_syscall() { [0x12, 0x34, 0x56, 0x78].map(Felt252::from).to_vec(), 12345678.into(), StarknetChainId::TestNet2, + ExecutionResources { + n_steps: 77, + ..Default::default() + }, ); } From 96d9fea67b8570fed9558dac8b4c6b54c91ef2e9 Mon Sep 17 00:00:00 2001 From: Federica Date: Fri, 9 Jun 2023 18:44:28 -0300 Subject: [PATCH 14/23] Fix some tests --- tests/syscalls.rs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/tests/syscalls.rs b/tests/syscalls.rs index 320505033..e666bc118 100644 --- a/tests/syscalls.rs +++ b/tests/syscalls.rs @@ -508,7 +508,7 @@ fn get_tx_info_syscall() { transaction_hash, chain_id.to_felt(), ], - execution_resources + execution_resources, ); }; @@ -603,6 +603,7 @@ fn get_tx_signature_syscall() { let run = |signature: Vec| { let general_config = StarknetGeneralConfig::default(); let n_steps = general_config.invoke_tx_max_n_steps(); + let resources_n_steps = if signature.is_empty() { 41 } else { 69 }; test_contract( "starknet_programs/syscalls.json", @@ -635,7 +636,7 @@ fn get_tx_signature_syscall() { .unwrap_or_default(), ], ExecutionResources { - n_steps: 41, + n_steps: resources_n_steps, ..Default::default() }, ); From db0b316df1e3593dfbc7fe874eaf29e25a6ad969 Mon Sep 17 00:00:00 2001 From: Federica Date: Mon, 12 Jun 2023 10:34:02 -0300 Subject: [PATCH 15/23] Fix some tests --- tests/syscalls.rs | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/tests/syscalls.rs b/tests/syscalls.rs index e666bc118..6a610f457 100644 --- a/tests/syscalls.rs +++ b/tests/syscalls.rs @@ -198,6 +198,10 @@ fn call_contract_syscall() { entry_point_type: Some(EntryPointType::External), calldata: vec![21.into(), 2.into()], retdata: vec![42.into()], + execution_resources: ExecutionResources { + n_steps: 24, + ..Default::default() + }, ..Default::default() }, CallInfo { @@ -216,6 +220,10 @@ fn call_contract_syscall() { ]] .into_iter() .collect(), + execution_resources: ExecutionResources { + n_steps: 63, + ..Default::default() + }, ..Default::default() }, CallInfo { @@ -229,14 +237,17 @@ fn call_contract_syscall() { entry_point_type: Some(EntryPointType::External), calldata: vec![], retdata: vec![2222.into()], + execution_resources: ExecutionResources { + n_steps: 26, + ..Default::default() + }, ..Default::default() }, ], [], ExecutionResources { - n_steps: 0, - n_memory_holes: 0, - builtin_instance_counter: HashMap::default(), + n_steps: 279, + ..Default::default() }, ); } @@ -908,6 +919,7 @@ fn deploy_with_constructor_syscall() { [deploy_address], ExecutionResources { n_steps: 84, + n_memory_holes: 2, ..Default::default() }, ); From 00889704b3c0904b09c5da99ff82aad2d6299726 Mon Sep 17 00:00:00 2001 From: Federica Date: Mon, 12 Jun 2023 10:37:21 -0300 Subject: [PATCH 16/23] Fix some tests --- tests/syscalls.rs | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/tests/syscalls.rs b/tests/syscalls.rs index 6a610f457..d7f9b667d 100644 --- a/tests/syscalls.rs +++ b/tests/syscalls.rs @@ -300,9 +300,8 @@ fn emit_event_syscall() { [], [], ExecutionResources { - n_steps: 0, - n_memory_holes: 0, - builtin_instance_counter: HashMap::default(), + n_steps: 144, + ..Default::default() }, ); } From e88db0536de8589986545ff05bd366d807bddb39 Mon Sep 17 00:00:00 2001 From: Federica Date: Mon, 12 Jun 2023 10:40:26 -0300 Subject: [PATCH 17/23] clippy --- src/business_logic/execution/execution_entry_point.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/business_logic/execution/execution_entry_point.rs b/src/business_logic/execution/execution_entry_point.rs index d4c47467f..1f290129e 100644 --- a/src/business_logic/execution/execution_entry_point.rs +++ b/src/business_logic/execution/execution_entry_point.rs @@ -477,7 +477,7 @@ impl ExecutionEntryPoint { self.build_call_info::( previous_cairo_usage, - &resources_manager, + resources_manager, runner.hint_processor.syscall_handler.starknet_storage_state, runner.hint_processor.syscall_handler.events, runner.hint_processor.syscall_handler.l2_to_l1_messages, From 7ff0b00e40aeaaa5eca38a3548a1bab31d6c9277 Mon Sep 17 00:00:00 2001 From: Federica Date: Mon, 12 Jun 2023 10:49:10 -0300 Subject: [PATCH 18/23] fix --- src/business_logic/execution/execution_entry_point.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/business_logic/execution/execution_entry_point.rs b/src/business_logic/execution/execution_entry_point.rs index f684b4da8..86f16869f 100644 --- a/src/business_logic/execution/execution_entry_point.rs +++ b/src/business_logic/execution/execution_entry_point.rs @@ -225,7 +225,7 @@ impl ExecutionEntryPoint { fn build_call_info( &self, previous_cairo_usage: ExecutionResources, - resources_manager: ExecutionResourcesManager, + resources_manager: &ExecutionResourcesManager, starknet_storage_state: ContractStorageState, events: Vec, l2_to_l1_messages: Vec, From eba19d158ec93a9357f133741beeceeeb725d18c Mon Sep 17 00:00:00 2001 From: Federica Date: Mon, 12 Jun 2023 18:46:12 -0300 Subject: [PATCH 19/23] Use workspace version for cairo-vm --- Cargo.toml | 2 +- cli/Cargo.toml | 2 +- crates/starknet-contract-class/Cargo.toml | 2 +- fuzzer/Cargo.toml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 10ee8cff2..bf63b3b0f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -16,7 +16,7 @@ cairo-vm = { version = "0.5.1", features = ["cairo-1-hints"]} [dependencies] cairo-lang-starknet = "1.1.0" cairo-lang-casm = "1.1.0" -cairo-vm = { version = "0.5.1", features = ["cairo-1-hints"]} +cairo-vm = { workspace=true, features = ["cairo-1-hints"]} getset = "0.1.2" lazy_static = "1.4.0" num-bigint = { version = "0.4", features = ["serde"] } diff --git a/cli/Cargo.toml b/cli/Cargo.toml index b588b916f..d4c23940d 100644 --- a/cli/Cargo.toml +++ b/cli/Cargo.toml @@ -10,7 +10,7 @@ with_mimalloc = ["mimalloc"] [dependencies] cairo-lang-starknet = { git = "https://github.com/starkware-libs/cairo", tag = "v1.1.0"} cairo-lang-casm = { git = "https://github.com/starkware-libs/cairo", tag = "v1.1.0"} -cairo-vm = { version = "0.5.1", features = ["cairo-1-hints"]} +cairo-vm = { workspace=true, features = ["cairo-1-hints"]} getset = "0.1.2" lazy_static = "1.4.0" num-bigint = { version = "0.4", features = ["serde"] } diff --git a/crates/starknet-contract-class/Cargo.toml b/crates/starknet-contract-class/Cargo.toml index dfacec8de..4ec8568b4 100644 --- a/crates/starknet-contract-class/Cargo.toml +++ b/crates/starknet-contract-class/Cargo.toml @@ -7,7 +7,7 @@ edition = "2021" serde = "1.0.156" serde_json = "1.0.94" getset = "0.1.2" -cairo-vm = { version = "0.5.1", features = ["cairo-1-hints"]} +cairo-vm = { workspace=true, features = ["cairo-1-hints"]} [dependencies.starknet_api] git = "https://github.com/starkware-libs/starknet-api" diff --git a/fuzzer/Cargo.toml b/fuzzer/Cargo.toml index f8796a3a8..50cf9c8dd 100644 --- a/fuzzer/Cargo.toml +++ b/fuzzer/Cargo.toml @@ -14,5 +14,5 @@ starknet_api = { git = "https://github.com/starkware-libs/starknet-api", rev="a8 ] } serde_json = { version = "1.0", features = ["arbitrary_precision"] } tempfile = "3.2.0" -cairo-vm = { version = "0.5.1", features = ["cairo-1-hints"]} +cairo-vm = { workspace=true, features = ["cairo-1-hints"]} starknet-contract-class = { path = "../crates/starknet-contract-class/" } From b8a655619d36b8fe97836545fa2c538033b07518 Mon Sep 17 00:00:00 2001 From: Federica Date: Mon, 12 Jun 2023 18:48:07 -0300 Subject: [PATCH 20/23] Temporarily use github dependency for cairo vm --- Cargo.lock | 22 +++++++++------------- Cargo.toml | 3 ++- 2 files changed, 11 insertions(+), 14 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 0b14e558d..2ead764c7 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -529,9 +529,8 @@ dependencies = [ [[package]] name = "bincode" -version = "2.0.0-rc.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f11ea1a0346b94ef188834a65c068a03aec181c94896d481d7a0a40d85b0ce95" +version = "2.0.0-rc.2" +source = "git+https://github.com/bincode-org/bincode.git?tag=v2.0.0-rc.2#6c219e9214bda2bdce1327db6ed7f66d2fa4bf02" dependencies = [ "serde", ] @@ -668,9 +667,8 @@ dependencies = [ [[package]] name = "cairo-felt" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c689785216b614922341f1f7c1503a3d8468a35377c70f0a230882b7e736df0d" +version = "0.5.2" +source = "git+https://github.com/lambdaclass/cairo-rs.git?rev=91a83714db457519c9c5610a18d874617479dede#91a83714db457519c9c5610a18d874617479dede" dependencies = [ "lazy_static", "num-bigint", @@ -1457,25 +1455,23 @@ dependencies = [ [[package]] name = "cairo-take_until_unbalanced" -version = "0.27.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a925c2b9b377f3ed4b0455a25f60520c77cee49398a0696d9577ab123a64109" +version = "0.28.0" +source = "git+https://github.com/lambdaclass/cairo-rs.git?rev=91a83714db457519c9c5610a18d874617479dede#91a83714db457519c9c5610a18d874617479dede" dependencies = [ "nom", ] [[package]] name = "cairo-vm" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8357c35e32298071a0505469dce45db8f3cee4152195e293cb01cd9068db20b2" +version = "0.5.2" +source = "git+https://github.com/lambdaclass/cairo-rs.git?rev=91a83714db457519c9c5610a18d874617479dede#91a83714db457519c9c5610a18d874617479dede" dependencies = [ "anyhow", "ark-ff 0.4.2", "ark-std 0.3.0", "bincode", "bitvec", - "cairo-felt 0.5.1", + "cairo-felt 0.5.2", "cairo-lang-casm 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "cairo-lang-starknet 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", "cairo-take_until_unbalanced", diff --git a/Cargo.toml b/Cargo.toml index bf63b3b0f..c40bd62a3 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -11,7 +11,8 @@ with_mimalloc = ["mimalloc"] members = ["crates/starknet-contract-class", "fuzzer", "cli"] [workspace.dependencies] -cairo-vm = { version = "0.5.1", features = ["cairo-1-hints"]} +# cairo-vm = { version = "0.5.2", features = ["cairo-1-hints"]} +cairo-vm = { git = "https://github.com/lambdaclass/cairo-rs.git", rev = "91a83714db457519c9c5610a18d874617479dede", features = ["cairo-1-hints"]} [dependencies] cairo-lang-starknet = "1.1.0" From 1d2d5afd0d554dd5c3e21350ea21348e1264948d Mon Sep 17 00:00:00 2001 From: Federica Date: Mon, 12 Jun 2023 18:51:15 -0300 Subject: [PATCH 21/23] Disable trace --- src/business_logic/execution/execution_entry_point.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/business_logic/execution/execution_entry_point.rs b/src/business_logic/execution/execution_entry_point.rs index 8fc1ce23d..9086b94f2 100644 --- a/src/business_logic/execution/execution_entry_point.rs +++ b/src/business_logic/execution/execution_entry_point.rs @@ -305,7 +305,7 @@ impl ExecutionEntryPoint { let entry_point = self.get_selected_entry_point_v0(&contract_class, class_hash)?; // create starknet runner - let mut vm = VirtualMachine::new(true); + let mut vm = VirtualMachine::new(false); let mut cairo_runner = CairoRunner::new(&contract_class.program, "all_cairo", false)?; cairo_runner.initialize_function_runner(&mut vm)?; @@ -408,7 +408,7 @@ impl ExecutionEntryPoint { let entry_point = self.get_selected_entry_point(&contract_class, class_hash)?; // create starknet runner - let mut vm = VirtualMachine::new(true); + let mut vm = VirtualMachine::new(false); // get a program from the casm contract class let program: Program = contract_class.as_ref().clone().try_into()?; // create and initialize a cairo runner for running cairo 1 programs. From a4cafecbbd0e6e20e4e7a2a54c966d09252ca370 Mon Sep 17 00:00:00 2001 From: Federica Date: Tue, 13 Jun 2023 10:21:39 -0300 Subject: [PATCH 22/23] Update cairo-vm version --- Cargo.lock | 14 +++++++++----- Cargo.toml | 3 +-- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 2ead764c7..522dcf329 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -529,8 +529,9 @@ dependencies = [ [[package]] name = "bincode" -version = "2.0.0-rc.2" -source = "git+https://github.com/bincode-org/bincode.git?tag=v2.0.0-rc.2#6c219e9214bda2bdce1327db6ed7f66d2fa4bf02" +version = "2.0.0-rc.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f11ea1a0346b94ef188834a65c068a03aec181c94896d481d7a0a40d85b0ce95" dependencies = [ "serde", ] @@ -668,7 +669,8 @@ dependencies = [ [[package]] name = "cairo-felt" version = "0.5.2" -source = "git+https://github.com/lambdaclass/cairo-rs.git?rev=91a83714db457519c9c5610a18d874617479dede#91a83714db457519c9c5610a18d874617479dede" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "451a9144bbe8bf0b351672fa0bf34e6dcc8733e2ff3a3201c8f7480fe7eb68a6" dependencies = [ "lazy_static", "num-bigint", @@ -1456,7 +1458,8 @@ dependencies = [ [[package]] name = "cairo-take_until_unbalanced" version = "0.28.0" -source = "git+https://github.com/lambdaclass/cairo-rs.git?rev=91a83714db457519c9c5610a18d874617479dede#91a83714db457519c9c5610a18d874617479dede" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ec66f846411e5fdecd2527d429135fd39ca98ef46b0df3f1558cc272b596a30" dependencies = [ "nom", ] @@ -1464,7 +1467,8 @@ dependencies = [ [[package]] name = "cairo-vm" version = "0.5.2" -source = "git+https://github.com/lambdaclass/cairo-rs.git?rev=91a83714db457519c9c5610a18d874617479dede#91a83714db457519c9c5610a18d874617479dede" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0c73ed69023e595a18799552803550fe0a3af83713f1fc97f9edaaa677f59a8" dependencies = [ "anyhow", "ark-ff 0.4.2", diff --git a/Cargo.toml b/Cargo.toml index c40bd62a3..bdb04986f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -11,8 +11,7 @@ with_mimalloc = ["mimalloc"] members = ["crates/starknet-contract-class", "fuzzer", "cli"] [workspace.dependencies] -# cairo-vm = { version = "0.5.2", features = ["cairo-1-hints"]} -cairo-vm = { git = "https://github.com/lambdaclass/cairo-rs.git", rev = "91a83714db457519c9c5610a18d874617479dede", features = ["cairo-1-hints"]} +cairo-vm = { version = "0.5.2", features = ["cairo-1-hints"]} [dependencies] cairo-lang-starknet = "1.1.0" From 26ee6569e17e920d2585f0d2d04d7ef868e53c9d Mon Sep 17 00:00:00 2001 From: Federica Date: Tue, 13 Jun 2023 16:00:06 -0300 Subject: [PATCH 23/23] fmt --- tests/syscalls.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/syscalls.rs b/tests/syscalls.rs index 014304533..fad5e9bfe 100644 --- a/tests/syscalls.rs +++ b/tests/syscalls.rs @@ -1,10 +1,10 @@ #![deny(warnings)] +use cairo_lang_starknet::casm_contract_class::CasmContractClass; use cairo_vm::{ felt::{felt_str, Felt252}, vm::runners::cairo_runner::ExecutionResources, }; -use cairo_lang_starknet::casm_contract_class::CasmContractClass; use num_traits::{Num, One, Zero}; use starknet_contract_class::EntryPointType; use starknet_rs::{