diff --git a/Cargo.lock b/Cargo.lock index 40ce7e4a099..9ddaaea8d1b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1180,9 +1180,9 @@ checksum = "ade8366b8bd5ba243f0a58f036cc0ca8a2f069cff1a2351ef1cac6b083e16fc0" [[package]] name = "cairo-lang-casm" -version = "2.8.4" +version = "2.9.0-dev.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd4d6659539ace9649c8e8a7434e51b0c50a7a700111d0a2b967dde220ddff49" +checksum = "e1e0dcdb6358bb639dd729546611bd99bada94c86e3f262c3637855abea9a972" dependencies = [ "cairo-lang-utils", "indoc 2.0.5", @@ -1195,9 +1195,9 @@ dependencies = [ [[package]] name = "cairo-lang-compiler" -version = "2.8.4" +version = "2.9.0-dev.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2016966ed29f3a44487fd1bbdb05320fb6ea8ec46201c04c6b222ccb5264e0a" +checksum = "b8657f5a5611f341a85e80ba0b21848fc34bfdf391bfd93df0baf4516c3e4159" dependencies = [ "anyhow", "cairo-lang-defs", @@ -1221,18 +1221,18 @@ dependencies = [ [[package]] name = "cairo-lang-debug" -version = "2.8.4" +version = "2.9.0-dev.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50c804649297ca417206435ee3e8041d2100cc31ebf4a95bc4b92ed02dc63469" +checksum = "0635aa554d297acefe6a35b495aba2795d0af5b7f97c4ab63829c7d62291ef41" dependencies = [ "cairo-lang-utils", ] [[package]] name = "cairo-lang-defs" -version = "2.8.4" +version = "2.9.0-dev.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8fbda467ac36f73bb1879e1f741898fc719d6f9239a01cc422e6a023281319b" +checksum = "86b356e1c09898e8b8cfdd9731579d89365a13d8b4f7e717962e0cc7d125b83c" dependencies = [ "cairo-lang-debug", "cairo-lang-diagnostics", @@ -1247,9 +1247,9 @@ dependencies = [ [[package]] name = "cairo-lang-diagnostics" -version = "2.8.4" +version = "2.9.0-dev.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c843ef4715e3d21de5388d02206db2506e2d2ec0e80e2629e0ae9900a08b8674" +checksum = "2dfe7c6ff96182da29012b707a3554e34a50f19cc96013ee45b0eb36dd396ec8" dependencies = [ "cairo-lang-debug", "cairo-lang-filesystem", @@ -1259,9 +1259,9 @@ dependencies = [ [[package]] name = "cairo-lang-eq-solver" -version = "2.8.4" +version = "2.9.0-dev.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33a416c5871960fb4823160ebef2abc51e0c1b86fef1e97a1ebb2e5f3c3795d3" +checksum = "723d244465309d5409e297b5486d62cbec06f2c47b05044414bb640e3f14caab" dependencies = [ "cairo-lang-utils", "good_lp", @@ -1269,9 +1269,9 @@ dependencies = [ [[package]] name = "cairo-lang-filesystem" -version = "2.8.4" +version = "2.9.0-dev.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47189e0cb84b21defd201af4cf24a94c6b0d09f48706cf659c9ffa0def8a7a43" +checksum = "237030772ae5368f19a9247e1f63f753f8ad8de963477166e402f4825c0a141d" dependencies = [ "cairo-lang-debug", "cairo-lang-utils", @@ -1280,13 +1280,14 @@ dependencies = [ "semver", "serde", "smol_str", + "toml", ] [[package]] name = "cairo-lang-formatter" -version = "2.8.4" +version = "2.9.0-dev.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6409ff1f4a93ce7c0968d9d857d2a8c03657617a827159d33f978110b718b31d" +checksum = "5b71f0eb3a36a6cb5f7f07843926783c4c17e44c9516b53171727a108782f3eb" dependencies = [ "anyhow", "cairo-lang-diagnostics", @@ -1299,15 +1300,14 @@ dependencies = [ "itertools 0.12.1", "rust-analyzer-salsa", "serde", - "smol_str", "thiserror", ] [[package]] name = "cairo-lang-lowering" -version = "2.8.4" +version = "2.9.0-dev.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e224e006c82ef21bd9e243390992de2be25ae6fbbdaa8544067b3f0c31977f1" +checksum = "7d095d78e2f1de499429c95655d6135a3d24c384b36d8de9f84e0aa4e07ee152" dependencies = [ "cairo-lang-debug", "cairo-lang-defs", @@ -1322,6 +1322,7 @@ dependencies = [ "itertools 0.12.1", "log", "num-bigint 0.4.6", + "num-integer", "num-traits 0.2.19", "rust-analyzer-salsa", "smol_str", @@ -1329,9 +1330,9 @@ dependencies = [ [[package]] name = "cairo-lang-parser" -version = "2.8.4" +version = "2.9.0-dev.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "afb260ba349c2b699639e56f9b64deb969ff01179a0253087e2c8ceec7e32157" +checksum = "bb828af7f948a3ef7fa65de14e3f639daedefb046dfefcad6e3116d2cb0f89a0" dependencies = [ "cairo-lang-diagnostics", "cairo-lang-filesystem", @@ -1349,9 +1350,9 @@ dependencies = [ [[package]] name = "cairo-lang-plugins" -version = "2.8.4" +version = "2.9.0-dev.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05a2e500dc8ddea4d25a866d8a839158b0e4c41a6c023f21911e2da252bd91b3" +checksum = "135a600043bf7030eacc6ebf2a609c2364d6ffeb04e1f3c809a2738f6b02c829" dependencies = [ "cairo-lang-defs", "cairo-lang-diagnostics", @@ -1368,9 +1369,9 @@ dependencies = [ [[package]] name = "cairo-lang-proc-macros" -version = "2.8.4" +version = "2.9.0-dev.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d72f17373740f242d6995e896b9195c2cedff7e8b14e496afdd16b405039d1fb" +checksum = "ac857ec4b564712f3e16e3314e23cc0787ab1c05cdfee83f1c8f9989a6eee40f" dependencies = [ "cairo-lang-debug", "quote", @@ -1379,9 +1380,9 @@ dependencies = [ [[package]] name = "cairo-lang-project" -version = "2.8.4" +version = "2.9.0-dev.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13294f08d2013fcd6e815e7235935680963dec3390e5baf454f33da866fc44b6" +checksum = "23cc37b7f8889cdea631aeea3bcc70d5c86ac8fb1d98aabc83f16283d60f1643" dependencies = [ "cairo-lang-filesystem", "cairo-lang-utils", @@ -1393,9 +1394,9 @@ dependencies = [ [[package]] name = "cairo-lang-runner" -version = "2.8.4" +version = "2.9.0-dev.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c5b9e6a21d92255b92f64c60658b4224dd7d290cde8beea783fadc10fbfcd8c" +checksum = "7474375528ffa7f47e343983d32051898e4e7b05ac0bdc48ee84b1325d8b562a" dependencies = [ "ark-ff", "ark-secp256k1", @@ -1424,9 +1425,9 @@ dependencies = [ [[package]] name = "cairo-lang-semantic" -version = "2.8.4" +version = "2.9.0-dev.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6936215bca75c23e71873998420a3d46c322507a09917ce676c8d39f8c1bd6fe" +checksum = "c560cf4b4a89325d3a9594f490fffee38cf30e0990e808bb927619de9d0c973a" dependencies = [ "cairo-lang-debug", "cairo-lang-defs", @@ -1450,9 +1451,9 @@ dependencies = [ [[package]] name = "cairo-lang-sierra" -version = "2.8.4" +version = "2.9.0-dev.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "424f55450494e959c1ae26c52a71075767a90f76e3ecca6e81056dd7517e8ba0" +checksum = "8118f55ca7d567bfc60960b445d388564d04bf48335c983b1595cb35f67a01c5" dependencies = [ "anyhow", "cairo-lang-utils", @@ -1477,9 +1478,9 @@ dependencies = [ [[package]] name = "cairo-lang-sierra-ap-change" -version = "2.8.4" +version = "2.9.0-dev.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "053dd520e0b9d1c1078d93ea69045f6f334c3d41b4b75db183ab33e32cfd8570" +checksum = "2716ef8d4ce0fb700f83ed3281f3656436570e60249d41c65c79dc1ca27be002" dependencies = [ "cairo-lang-eq-solver", "cairo-lang-sierra", @@ -1493,9 +1494,9 @@ dependencies = [ [[package]] name = "cairo-lang-sierra-gas" -version = "2.8.4" +version = "2.9.0-dev.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a73227867377efc62ebb893cddaa88df3940bf2be5dbdc2f0b00f9edf69288e" +checksum = "24a44da87a35845470c4f4c648225232a15e0875fe809045b6088464491f838b" dependencies = [ "cairo-lang-eq-solver", "cairo-lang-sierra", @@ -1509,9 +1510,9 @@ dependencies = [ [[package]] name = "cairo-lang-sierra-generator" -version = "2.8.4" +version = "2.9.0-dev.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3752cacd475ea089d9a536357804150e693a124e703fcc33a55566d568094b3" +checksum = "15bc5cf9f3965a7030a114dfe3d31d183287fbfbfbf904deaaa2468cadb936aa" dependencies = [ "cairo-lang-debug", "cairo-lang-defs", @@ -1533,9 +1534,9 @@ dependencies = [ [[package]] name = "cairo-lang-sierra-to-casm" -version = "2.8.4" +version = "2.9.0-dev.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7162fb3c93960dfc6d8005b65064e518e3f1ed6102e8981b42ea41879c331184" +checksum = "18b7616f1a3c41c4646094b5abf774e558428e9c1eda5d78d7b0638ec5c264e5" dependencies = [ "assert_matches", "cairo-lang-casm", @@ -1554,9 +1555,9 @@ dependencies = [ [[package]] name = "cairo-lang-sierra-type-size" -version = "2.8.4" +version = "2.9.0-dev.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a51b80c117e2b05a6d300f2e2247892cc99e42e950e79f6085e6ed6cbcb44d12" +checksum = "871077dbc08df5d134dc3975538171c14b266ba405d1298085afdb227216f0a3" dependencies = [ "cairo-lang-sierra", "cairo-lang-utils", @@ -1564,9 +1565,9 @@ dependencies = [ [[package]] name = "cairo-lang-starknet" -version = "2.8.4" +version = "2.9.0-dev.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aafaabc43f78dfa2f45d935993ba21c05c164bbb3bf277d348847a51e5939a9f" +checksum = "9f21804eb8931d41e258e7a393afc8ee8858308e95b3ed2e9b6b469ef68a6a50" dependencies = [ "anyhow", "cairo-lang-compiler", @@ -1594,9 +1595,9 @@ dependencies = [ [[package]] name = "cairo-lang-starknet-classes" -version = "2.8.4" +version = "2.9.0-dev.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "832fd9072ddf4204ca6d227c0238929349f10146bd066a98025d51ac15d27fad" +checksum = "b2496bccd68fa0286b35b72c98439316a3a872ef7ec6d881f0dac90b17997490" dependencies = [ "cairo-lang-casm", "cairo-lang-sierra", @@ -1617,9 +1618,9 @@ dependencies = [ [[package]] name = "cairo-lang-syntax" -version = "2.8.4" +version = "2.9.0-dev.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cebe67c0d68f9acf8709d170c1308ca57a778d22f70da38a57f74ae250eee28a" +checksum = "8d77ea2e35d3610098ff13e373fc519aedc6a5096ed8547081aacfc104ef4422" dependencies = [ "cairo-lang-debug", "cairo-lang-filesystem", @@ -1633,9 +1634,9 @@ dependencies = [ [[package]] name = "cairo-lang-syntax-codegen" -version = "2.8.4" +version = "2.9.0-dev.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31cef5b4347626e61bad8f070495cd35d637a5cb6744c34d20dd382c7431aff8" +checksum = "6b01d505ab26ca9ce829faf3a8dd097f5d7962d2eb8f136017a260694a6a72e8" dependencies = [ "genco", "xshell", @@ -1643,9 +1644,9 @@ dependencies = [ [[package]] name = "cairo-lang-test-plugin" -version = "2.8.4" +version = "2.9.0-dev.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d5f036132e07b7829cb1d61b1ecc02789a70c7d16b2733722a2aca992492bc3" +checksum = "05f83e082c8ebf81295156f13399f880037c749a9f1fc3f55b1be7e49fe124c6" dependencies = [ "anyhow", "cairo-lang-compiler", @@ -1670,9 +1671,9 @@ dependencies = [ [[package]] name = "cairo-lang-test-utils" -version = "2.8.4" +version = "2.9.0-dev.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "060c61ac4a3ae0428771244ff8db903105f127392b7d725d919fe3fb1ec4132f" +checksum = "eb143a22f5a3510df8c4dec76e17c1e36bbcbddcd7915601f6a51a72418c454f" dependencies = [ "cairo-lang-formatter", "cairo-lang-utils", @@ -1683,9 +1684,9 @@ dependencies = [ [[package]] name = "cairo-lang-utils" -version = "2.8.4" +version = "2.9.0-dev.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8bfc6372538143afad658c853a35bdc9f5210c5cb54e0c8f04ab78e268139466" +checksum = "35df943ebcf8e1db11ee9f4f46f843dde5b71639ca79ea0d8caa7973f91d8b12" dependencies = [ "hashbrown 0.14.5", "indexmap 2.6.0", @@ -1699,8 +1700,8 @@ dependencies = [ [[package]] name = "cairo-native" -version = "0.2.0-alpha.4" -source = "git+https://github.com/lambdaclass/cairo_native?rev=9791075918f17b1787084d85063180f6aa67a6ec#9791075918f17b1787084d85063180f6aa67a6ec" +version = "0.2.3" +source = "git+https://github.com/lambdaclass/cairo_native?rev=5e60089288c461eca98bf3dbe03cc882778ff677#5e60089288c461eca98bf3dbe03cc882778ff677" dependencies = [ "anyhow", "aquamarine", @@ -1752,8 +1753,8 @@ dependencies = [ [[package]] name = "cairo-native-runtime" -version = "0.2.0-alpha.4" -source = "git+https://github.com/lambdaclass/cairo_native?rev=9791075918f17b1787084d85063180f6aa67a6ec#9791075918f17b1787084d85063180f6aa67a6ec" +version = "0.2.3" +source = "git+https://github.com/lambdaclass/cairo_native?rev=5e60089288c461eca98bf3dbe03cc882778ff677#5e60089288c461eca98bf3dbe03cc882778ff677" dependencies = [ "cairo-lang-sierra-gas", "itertools 0.13.0", diff --git a/Cargo.toml b/Cargo.toml index 0a85209061c..722c0475e46 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -74,13 +74,13 @@ byteorder = "1.4.3" bytes = "1" cached = "0.44.0" cairo-felt = "0.9.1" -cairo-lang-casm = "2.8.4" -cairo-lang-runner = "2.8.4" -cairo-lang-sierra = "2.8.4" -cairo-lang-sierra-to-casm = "2.8.4" -cairo-lang-starknet-classes = "2.8.4" -cairo-lang-utils = "2.8.4" -cairo-native = { git = "https://github.com/lambdaclass/cairo_native", rev="9791075918f17b1787084d85063180f6aa67a6ec"} +cairo-lang-casm = "2.9.0-dev.0" +cairo-lang-runner = "2.9.0-dev.0" +cairo-lang-sierra = "2.9.0-dev.0" +cairo-lang-sierra-to-casm = "2.9.0-dev.0" +cairo-lang-starknet-classes = "2.9.0-dev.0" +cairo-lang-utils = "2.9.0-dev.0" +cairo-native = { git = "https://github.com/lambdaclass/cairo_native", rev="5e60089288c461eca98bf3dbe03cc882778ff677"} cairo-vm = "1.0.1" camelpaste = "0.1.0" chrono = "0.4.26" diff --git a/crates/blockifier/src/execution/native/syscall_handler.rs b/crates/blockifier/src/execution/native/syscall_handler.rs index 79be9fbf1d1..a96a18b6805 100644 --- a/crates/blockifier/src/execution/native/syscall_handler.rs +++ b/crates/blockifier/src/execution/native/syscall_handler.rs @@ -125,7 +125,7 @@ impl<'state> NativeSyscallHandler<'state> { pub fn execute_inner_call( &mut self, entry_point: CallEntryPoint, - remaining_gas: &mut u128, + remaining_gas: &mut u64, ) -> SyscallResult { let call_info = entry_point .execute(self.state, self.execution_resources, self.execution_context) @@ -146,7 +146,7 @@ impl<'state> NativeSyscallHandler<'state> { Ok(retdata) } - pub fn update_remaining_gas(&mut self, remaining_gas: &mut u128, call_info: &CallInfo) { + pub fn update_remaining_gas(&mut self, remaining_gas: &mut u64, call_info: &CallInfo) { // create a new variable with converted type let mut remaining_gas_u64 = u64::try_from(*remaining_gas).unwrap(); @@ -154,7 +154,7 @@ impl<'state> NativeSyscallHandler<'state> { update_remaining_gas(&mut remaining_gas_u64, call_info); // change the remaining gas value - *remaining_gas = u128::from(remaining_gas_u64); + *remaining_gas = remaining_gas_u64; } pub fn increment_syscall_count_by(&mut self, selector: &SyscallSelector, n: usize) { @@ -171,7 +171,7 @@ impl<'state> NativeSyscallHandler<'state> { // syscalls are called directly, so we need to implement this logic here pub fn pre_execute_syscall( &mut self, - remaining_gas: &mut u128, + remaining_gas: &mut u64, syscall_selector: SyscallSelector, syscall_gas_cost: u64, ) -> SyscallResult<()> { @@ -183,7 +183,7 @@ impl<'state> NativeSyscallHandler<'state> { // Refund `SYSCALL_BASE_GAS_COST` as it was pre-charged. let required_gas = - u128::from(syscall_gas_cost - self.execution_context.gas_costs().syscall_base_gas_cost); + u64::from(syscall_gas_cost - self.execution_context.gas_costs().syscall_base_gas_cost); if *remaining_gas < required_gas { // Out of gas failure. @@ -197,10 +197,20 @@ impl<'state> NativeSyscallHandler<'state> { } impl<'state> StarknetSyscallHandler for &mut NativeSyscallHandler<'state> { + + fn get_class_hash_at( + &mut self, + _contract_address: Felt, + _remaining_gas: &mut u64, + ) -> SyscallResult { + panic!("get_class_hash_at is not implemented"); + } + + fn get_block_hash( &mut self, block_number: u64, - remaining_gas: &mut u128, + remaining_gas: &mut u64, ) -> SyscallResult { self.pre_execute_syscall( remaining_gas, @@ -246,7 +256,7 @@ impl<'state> StarknetSyscallHandler for &mut NativeSyscallHandler<'state> { } } - fn get_execution_info(&mut self, remaining_gas: &mut u128) -> SyscallResult { + fn get_execution_info(&mut self, remaining_gas: &mut u64) -> SyscallResult { self.pre_execute_syscall( remaining_gas, SyscallSelector::GetExecutionInfo, @@ -312,7 +322,7 @@ impl<'state> StarknetSyscallHandler for &mut NativeSyscallHandler<'state> { fn get_execution_info_v2( &mut self, - remaining_gas: &mut u128, + remaining_gas: &mut u64, ) -> SyscallResult { self.pre_execute_syscall( remaining_gas, @@ -401,7 +411,7 @@ impl<'state> StarknetSyscallHandler for &mut NativeSyscallHandler<'state> { contract_address_salt: Felt, calldata: &[Felt], deploy_from_zero: bool, - remaining_gas: &mut u128, + remaining_gas: &mut u64, ) -> SyscallResult<(Felt, Vec)> { self.pre_execute_syscall( remaining_gas, @@ -464,7 +474,7 @@ impl<'state> StarknetSyscallHandler for &mut NativeSyscallHandler<'state> { Ok((contract_address_felt, return_data)) } - fn replace_class(&mut self, class_hash: Felt, remaining_gas: &mut u128) -> SyscallResult<()> { + fn replace_class(&mut self, class_hash: Felt, remaining_gas: &mut u64) -> SyscallResult<()> { self.pre_execute_syscall( remaining_gas, SyscallSelector::ReplaceClass, @@ -496,7 +506,7 @@ impl<'state> StarknetSyscallHandler for &mut NativeSyscallHandler<'state> { class_hash: Felt, function_selector: Felt, calldata: &[Felt], - remaining_gas: &mut u128, + remaining_gas: &mut u64, ) -> SyscallResult> { self.pre_execute_syscall( remaining_gas, @@ -529,7 +539,7 @@ impl<'state> StarknetSyscallHandler for &mut NativeSyscallHandler<'state> { address: Felt, entry_point_selector: Felt, calldata: &[Felt], - remaining_gas: &mut u128, + remaining_gas: &mut u64, ) -> SyscallResult> { self.pre_execute_syscall( remaining_gas, @@ -572,7 +582,7 @@ impl<'state> StarknetSyscallHandler for &mut NativeSyscallHandler<'state> { &mut self, _address_domain: u32, address: Felt, - remaining_gas: &mut u128, + remaining_gas: &mut u64, ) -> SyscallResult { self.pre_execute_syscall( remaining_gas, @@ -598,7 +608,7 @@ impl<'state> StarknetSyscallHandler for &mut NativeSyscallHandler<'state> { _address_domain: u32, address: Felt, value: Felt, - remaining_gas: &mut u128, + remaining_gas: &mut u64, ) -> SyscallResult<()> { self.pre_execute_syscall( remaining_gas, @@ -621,7 +631,7 @@ impl<'state> StarknetSyscallHandler for &mut NativeSyscallHandler<'state> { &mut self, keys: &[Felt], data: &[Felt], - remaining_gas: &mut u128, + remaining_gas: &mut u64, ) -> SyscallResult<()> { self.pre_execute_syscall( remaining_gas, @@ -652,7 +662,7 @@ impl<'state> StarknetSyscallHandler for &mut NativeSyscallHandler<'state> { &mut self, to_address: Felt, payload: &[Felt], - remaining_gas: &mut u128, + remaining_gas: &mut u64, ) -> SyscallResult<()> { self.pre_execute_syscall( remaining_gas, @@ -676,7 +686,7 @@ impl<'state> StarknetSyscallHandler for &mut NativeSyscallHandler<'state> { Ok(()) } - fn keccak(&mut self, input: &[u64], remaining_gas: &mut u128) -> SyscallResult { + fn keccak(&mut self, input: &[u64], remaining_gas: &mut u64) -> SyscallResult { self.pre_execute_syscall( remaining_gas, SyscallSelector::Keccak, @@ -696,7 +706,7 @@ impl<'state> StarknetSyscallHandler for &mut NativeSyscallHandler<'state> { // TODO(Ori, 1/2/2024): Write an indicative expect message explaining why the conversion // works. let n_rounds_as_u64 = u64::try_from(n_rounds).expect("Failed to convert usize to u64."); - let gas_cost = u128::from( + let gas_cost = u64::from( n_rounds_as_u64 * self.execution_context.gas_costs().keccak_round_cost_gas_cost, ); @@ -729,7 +739,7 @@ impl<'state> StarknetSyscallHandler for &mut NativeSyscallHandler<'state> { &mut self, x: U256, y: U256, - remaining_gas: &mut u128, + remaining_gas: &mut u64, ) -> SyscallResult> { self.pre_execute_syscall( remaining_gas, @@ -744,7 +754,7 @@ impl<'state> StarknetSyscallHandler for &mut NativeSyscallHandler<'state> { &mut self, p0: Secp256k1Point, p1: Secp256k1Point, - remaining_gas: &mut u128, + remaining_gas: &mut u64, ) -> SyscallResult { self.pre_execute_syscall( remaining_gas, @@ -759,7 +769,7 @@ impl<'state> StarknetSyscallHandler for &mut NativeSyscallHandler<'state> { &mut self, p: Secp256k1Point, m: U256, - remaining_gas: &mut u128, + remaining_gas: &mut u64, ) -> SyscallResult { self.pre_execute_syscall( remaining_gas, @@ -774,7 +784,7 @@ impl<'state> StarknetSyscallHandler for &mut NativeSyscallHandler<'state> { &mut self, x: U256, y_parity: bool, - remaining_gas: &mut u128, + remaining_gas: &mut u64, ) -> SyscallResult> { self.pre_execute_syscall( remaining_gas, @@ -788,7 +798,7 @@ impl<'state> StarknetSyscallHandler for &mut NativeSyscallHandler<'state> { fn secp256k1_get_xy( &mut self, p: Secp256k1Point, - remaining_gas: &mut u128, + remaining_gas: &mut u64, ) -> SyscallResult<(U256, U256)> { self.pre_execute_syscall( remaining_gas, @@ -803,7 +813,7 @@ impl<'state> StarknetSyscallHandler for &mut NativeSyscallHandler<'state> { &mut self, x: U256, y: U256, - remaining_gas: &mut u128, + remaining_gas: &mut u64, ) -> SyscallResult> { self.pre_execute_syscall( remaining_gas, @@ -818,7 +828,7 @@ impl<'state> StarknetSyscallHandler for &mut NativeSyscallHandler<'state> { &mut self, p0: Secp256r1Point, p1: Secp256r1Point, - remaining_gas: &mut u128, + remaining_gas: &mut u64, ) -> SyscallResult { self.pre_execute_syscall( remaining_gas, @@ -833,7 +843,7 @@ impl<'state> StarknetSyscallHandler for &mut NativeSyscallHandler<'state> { &mut self, p: Secp256r1Point, m: U256, - remaining_gas: &mut u128, + remaining_gas: &mut u64, ) -> SyscallResult { self.pre_execute_syscall( remaining_gas, @@ -848,7 +858,7 @@ impl<'state> StarknetSyscallHandler for &mut NativeSyscallHandler<'state> { &mut self, x: U256, y_parity: bool, - remaining_gas: &mut u128, + remaining_gas: &mut u64, ) -> SyscallResult> { self.pre_execute_syscall( remaining_gas, @@ -862,7 +872,7 @@ impl<'state> StarknetSyscallHandler for &mut NativeSyscallHandler<'state> { fn secp256r1_get_xy( &mut self, p: Secp256r1Point, - remaining_gas: &mut u128, + remaining_gas: &mut u64, ) -> SyscallResult<(U256, U256)> { self.pre_execute_syscall( remaining_gas, @@ -877,7 +887,7 @@ impl<'state> StarknetSyscallHandler for &mut NativeSyscallHandler<'state> { &mut self, prev_state: &mut [u32; 8], current_block: &[u32; 16], - remaining_gas: &mut u128, + remaining_gas: &mut u64, ) -> Result<(), Vec> { const SHA256_STATE_SIZE: usize = 8; diff --git a/crates/blockifier/src/execution/native/utils.rs b/crates/blockifier/src/execution/native/utils.rs index a262731cb77..3d207e19882 100644 --- a/crates/blockifier/src/execution/native/utils.rs +++ b/crates/blockifier/src/execution/native/utils.rs @@ -38,14 +38,15 @@ pub fn contract_entrypoint_to_entrypoint_selector( pub fn run_native_executor( native_executor: &AotContractExecutor, - function_id: &FunctionId, + _function_id: &FunctionId, call: CallEntryPoint, mut syscall_handler: NativeSyscallHandler<'_>, ) -> EntryPointExecutionResult { let execution_result = native_executor.run( - function_id, + call.entry_point_selector.0, &call.calldata.0, Some(call.initial_gas.into()), + Some(Default::default()), &mut syscall_handler, );