From 573760f1251509879e4f9bb426d62752e38690b4 Mon Sep 17 00:00:00 2001 From: Diego Civini Date: Wed, 17 Dec 2025 17:12:20 -0300 Subject: [PATCH 1/5] Bump to cairo 2.14.1-dev.1 --- Cargo.lock | 143 +++++++++--------- Cargo.toml | 18 +-- .../src/cairo_compiler_version.rs | 2 +- crates/blockifier/src/bouncer.rs | 4 +- .../src/execution/casm_hash_estimation.rs | 6 +- .../src/execution/contract_class.rs | 6 +- .../src/execution/execution_utils.rs | 10 +- .../src/execution/syscalls/hint_processor.rs | 15 +- crates/blockifier/src/transaction/objects.rs | 4 +- 9 files changed, 107 insertions(+), 101 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 155efd472f0..f9f7402ae74 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3819,9 +3819,9 @@ checksum = "ade8366b8bd5ba243f0a58f036cc0ca8a2f069cff1a2351ef1cac6b083e16fc0" [[package]] name = "cairo-lang-casm" -version = "2.14.0" +version = "2.14.1-dev.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee2dcadc8a25455272821626d5a4704f5ff78e6338e2f2a51ac4424cd4c007da" +checksum = "3fa2497d98718d215c1f0eb831adf6992598e5185d6c405eeeaa261869161349" dependencies = [ "cairo-lang-utils", "indoc 2.0.7", @@ -3834,9 +3834,9 @@ dependencies = [ [[package]] name = "cairo-lang-compiler" -version = "2.14.0" +version = "2.14.1-dev.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ad960dcff2153e42f1bf51c4ffb5900b73a42e3eeab5ad8c4ab589560aa819a" +checksum = "4b84080fc90966f78fd5128391d2480a824806f3657d6ccc9512be63ea08edb1" dependencies = [ "anyhow", "cairo-lang-defs", @@ -3861,9 +3861,9 @@ dependencies = [ [[package]] name = "cairo-lang-debug" -version = "2.14.0" +version = "2.14.1-dev.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe4e21147bb85923a0e32ea3365aedfd7270ba5546f109af3e47d30adda00de8" +checksum = "66d2a69364ddd52b8e5fde8a4f26132e72c3bf94b353f85a2caffa905a4531ed" dependencies = [ "cairo-lang-utils", "id-arena", @@ -3872,15 +3872,16 @@ dependencies = [ [[package]] name = "cairo-lang-defs" -version = "2.14.0" +version = "2.14.1-dev.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad1ef62d7d2e73c4f397f5799ddb0e504eeabab92e8b78f762df8928c5af987a" +checksum = "ba8905b58f36cfa3a457ad156151df4526f8e763b5c9957489ac3a078b9c27ad" dependencies = [ "bincode", "cairo-lang-debug", "cairo-lang-diagnostics", "cairo-lang-filesystem", "cairo-lang-parser", + "cairo-lang-proc-macros", "cairo-lang-syntax", "cairo-lang-utils", "itertools 0.14.0", @@ -3892,12 +3893,13 @@ dependencies = [ [[package]] name = "cairo-lang-diagnostics" -version = "2.14.0" +version = "2.14.1-dev.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1591412d6f437719f45d31c3d015ced1532872a437126dc2c3fbcf0697c1ff85" +checksum = "832f3a798d671dd950ff2c2ccb917465e220f8b06e1be90c16c2942855763fa6" dependencies = [ "cairo-lang-debug", "cairo-lang-filesystem", + "cairo-lang-proc-macros", "cairo-lang-utils", "itertools 0.14.0", "salsa", @@ -3905,9 +3907,9 @@ dependencies = [ [[package]] name = "cairo-lang-eq-solver" -version = "2.14.0" +version = "2.14.1-dev.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ea391a08d10de26ddb3796d07c34f6685873534df7f0d55a3674500fecc9e53" +checksum = "609eb26d8fe8dff752314cc6f3223d58e5ca10ff6a6f716215255b85b1350d32" dependencies = [ "cairo-lang-utils", "good_lp", @@ -3915,11 +3917,12 @@ dependencies = [ [[package]] name = "cairo-lang-filesystem" -version = "2.14.0" +version = "2.14.1-dev.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8baf770719b534cbead72e4a5cf25bf39c4363f887cb960d0368e4a6081a9083" +checksum = "bd999f5eb2861db1974c552663988e6e97f82fc685f4107ddafc6bc9bdc2a01b" dependencies = [ "cairo-lang-debug", + "cairo-lang-proc-macros", "cairo-lang-utils", "itertools 0.14.0", "path-clean", @@ -3932,9 +3935,9 @@ dependencies = [ [[package]] name = "cairo-lang-formatter" -version = "2.14.0" +version = "2.14.1-dev.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2628a472dbfe797c1eaaa565f23b2d856f0786cace42afa333b12d3be802dbf" +checksum = "4fa4e996ec24d6e744182b122276065bf1fb542004b4eeeced0134b483d70dae" dependencies = [ "anyhow", "cairo-lang-diagnostics", @@ -3952,9 +3955,9 @@ dependencies = [ [[package]] name = "cairo-lang-lowering" -version = "2.14.0" +version = "2.14.1-dev.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17076bee213e2d10db6132972f19c0842530d3c14fe5376d0b10f9cc7b692a0c" +checksum = "7882fb54a13db4fe12e022befb5aba4d686d7d76ff4ed5693505256533f7ed81" dependencies = [ "assert_matches", "bincode", @@ -3977,13 +3980,14 @@ dependencies = [ "serde", "starknet-types-core", "thiserror 2.0.17", + "tracing", ] [[package]] name = "cairo-lang-parser" -version = "2.14.0" +version = "2.14.1-dev.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31d3e38a2a928d51ad10d6b8e0315d0000997ec5c935f94f675a6c49d7a2c329" +checksum = "6b755b363b25a8e62c480133f804e0acd94d8d87810537182a7568c0b397176b" dependencies = [ "cairo-lang-diagnostics", "cairo-lang-filesystem", @@ -4001,9 +4005,9 @@ dependencies = [ [[package]] name = "cairo-lang-plugins" -version = "2.14.0" +version = "2.14.1-dev.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34207037fc174e8374261957f7aa320289addccd15eb933c7f4231765e3c3863" +checksum = "b931a564bcffa6b10ae432cd02f73240ee519e780be6f9ffba811d0bf6e177b1" dependencies = [ "cairo-lang-defs", "cairo-lang-diagnostics", @@ -4025,11 +4029,12 @@ checksum = "123ac0ecadf31bacae77436d72b88fa9caef2b8e92c89ce63a125ae911a12fae" [[package]] name = "cairo-lang-proc-macros" -version = "2.14.0" +version = "2.14.1-dev.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5239f9c57aeccca184f2743d8861c8cf68d3a5e99b10967cb6ace6c9652fb578" +checksum = "b18332ff899c282cf5a50f1d052371c2c86ebecfcfde878db5e15139aabba08d" dependencies = [ "cairo-lang-debug", + "proc-macro2", "quote", "salsa", "syn 2.0.110", @@ -4037,9 +4042,9 @@ dependencies = [ [[package]] name = "cairo-lang-project" -version = "2.14.0" +version = "2.14.1-dev.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd5794bc799aa27565112ab2fb3f935921acb21cc1736f44e06404ce4d2c70df" +checksum = "062b2894a4ddbb2ecc02ed7cc8a57d9aee54db5bdd3c920c72a918b3fcf4eba6" dependencies = [ "cairo-lang-filesystem", "cairo-lang-utils", @@ -4050,9 +4055,9 @@ dependencies = [ [[package]] name = "cairo-lang-runnable-utils" -version = "2.14.0" +version = "2.14.1-dev.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf287b4385ec16ba16e659d073aa78bb34ed4453e1fe4ac5302339217d741904" +checksum = "a37885e1b1abdd3a3df2a27898e3e98bd53b2051c31d23213d657cb4a3d5c1e5" dependencies = [ "cairo-lang-casm", "cairo-lang-sierra", @@ -4068,9 +4073,9 @@ dependencies = [ [[package]] name = "cairo-lang-runner" -version = "2.14.0" +version = "2.14.1-dev.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "093a2f39137bf3921d0521297b5adb1ef3c409cd458d3aaec1e68b6e66322ce3" +checksum = "c982688f8059f449eb1acde3301e4d6d19288267613410c1af2188a6dcaa2b86" dependencies = [ "ark-ff 0.5.0", "ark-secp256k1 0.5.0", @@ -4100,9 +4105,9 @@ dependencies = [ [[package]] name = "cairo-lang-semantic" -version = "2.14.0" +version = "2.14.1-dev.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7cbd123cc8d900642f4345df4a95c5380447e66fa538c3be9d544deea5a480b" +checksum = "05530c864d05490d38d7b8da9524116183ca6964d4d17a0a0f3f22b79078d8b4" dependencies = [ "bincode", "cairo-lang-debug", @@ -4129,14 +4134,14 @@ dependencies = [ [[package]] name = "cairo-lang-sierra" -version = "2.14.0" +version = "2.14.1-dev.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92c76c30c4a8fbe235bc44c11a458fc6ad9a756245e11dbb6480b92db4b2987a" +checksum = "bbccce862f0474ff7ad52f8465c5f50bea221e9b93ca549b4e0b7c8e87d27759" dependencies = [ "anyhow", "cairo-lang-utils", "const-fnv1a-hash", - "convert_case 0.9.0", + "convert_case 0.10.0", "derivative", "itertools 0.14.0", "lalrpop 0.22.2", @@ -4155,9 +4160,9 @@ dependencies = [ [[package]] name = "cairo-lang-sierra-ap-change" -version = "2.14.0" +version = "2.14.1-dev.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0e834cfadeda301c005acbcfd17e43b6515a85c7963d6e08e37668d6f6e5a1f" +checksum = "87352ddc46cad69ddf1fc554176ba2d05c6c99e12ccfa6dc8ffd09170037fa31" dependencies = [ "cairo-lang-eq-solver", "cairo-lang-sierra", @@ -4171,9 +4176,9 @@ dependencies = [ [[package]] name = "cairo-lang-sierra-gas" -version = "2.14.0" +version = "2.14.1-dev.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69137101e55f87b5eb799a1ea6005577e952323564cb978baa80ed3e6a922b7f" +checksum = "04f15d0151156b80d6ec2c4ca7660676006607dbe105facb0b963a710254e607" dependencies = [ "cairo-lang-eq-solver", "cairo-lang-sierra", @@ -4187,15 +4192,16 @@ dependencies = [ [[package]] name = "cairo-lang-sierra-generator" -version = "2.14.0" +version = "2.14.1-dev.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93fc200e4664cee28df3c0a6379b999214dd82a0f8d161aafe77a2b4ffc06f3d" +checksum = "4fdb526f4654116792d266cab9264c5630768a59e2bfb8e6fb14f774560ace51" dependencies = [ "cairo-lang-debug", "cairo-lang-defs", "cairo-lang-diagnostics", "cairo-lang-filesystem", "cairo-lang-lowering", + "cairo-lang-proc-macros", "cairo-lang-semantic", "cairo-lang-sierra", "cairo-lang-syntax", @@ -4210,9 +4216,9 @@ dependencies = [ [[package]] name = "cairo-lang-sierra-to-casm" -version = "2.14.0" +version = "2.14.1-dev.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c4563e2dbb25d2edeeb1cd12749fb22d3284c18cbbdb23f45032d984e805594" +checksum = "e2f9cafc22699945d14b794e90ad8235b15cb723c5cf13d368c7d0b312329ef0" dependencies = [ "assert_matches", "cairo-lang-casm", @@ -4231,9 +4237,9 @@ dependencies = [ [[package]] name = "cairo-lang-sierra-type-size" -version = "2.14.0" +version = "2.14.1-dev.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d029f4226d5d5746c38194bd30928387c8d8ccd52099325233998e91f7254c4a" +checksum = "01d48f98d904c9f24dc1a1f423fe10433c41c8748c984b958d95930ae75c6c3f" dependencies = [ "cairo-lang-sierra", "cairo-lang-utils", @@ -4241,9 +4247,9 @@ dependencies = [ [[package]] name = "cairo-lang-starknet" -version = "2.14.0" +version = "2.14.1-dev.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3930ec68111280fd82023d186ebe505570f76606b9758cf227d998ebf0bc93ec" +checksum = "53866bee2f89f04ad8a04cd8caed7ccb0afa7e8fc7882e12dac020743388c617" dependencies = [ "anyhow", "cairo-lang-compiler", @@ -4273,16 +4279,16 @@ dependencies = [ [[package]] name = "cairo-lang-starknet-classes" -version = "2.14.0" +version = "2.14.1-dev.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65be3e911c6e2ee521b6ae5d9ed1624462ae91aeb8a3ddce2f196ab465db8e7a" +checksum = "5acb66763ac277cc99c021c105a508c1c577719bb98d9450bee0ac8561f06849" dependencies = [ "cairo-lang-casm", "cairo-lang-sierra", "cairo-lang-sierra-to-casm", "cairo-lang-sierra-type-size", "cairo-lang-utils", - "convert_case 0.9.0", + "convert_case 0.10.0", "itertools 0.14.0", "num-bigint", "num-integer", @@ -4297,9 +4303,9 @@ dependencies = [ [[package]] name = "cairo-lang-syntax" -version = "2.14.0" +version = "2.14.1-dev.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8044a1723f281c7f491466aedee7c5c8ae3a43e90f43e9a33ba44cd229af945c" +checksum = "5ab664666042b2161e61a5a04959eaac04b2295e5bd55c70bd92596df2eb79c6" dependencies = [ "cairo-lang-debug", "cairo-lang-filesystem", @@ -4316,9 +4322,9 @@ dependencies = [ [[package]] name = "cairo-lang-syntax-codegen" -version = "2.14.0" +version = "2.14.1-dev.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c0cd642c4b3d2412c253c440a27958a89ca62ff630f492f354bf43d7548de94" +checksum = "5e5d8965e10a8308905f066fac143a325c082aec73042427aee4ea08c2db55dd" dependencies = [ "genco", "xshell", @@ -4326,9 +4332,9 @@ dependencies = [ [[package]] name = "cairo-lang-test-plugin" -version = "2.14.0" +version = "2.14.1-dev.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b7640a460ebdf175a93cd0cbdf91c99ef2b4142c460ff829c1dc52d8642ff6b" +checksum = "5575edf0aad3b16f9e6165af32de29523c6cf5d72debcf6ca4f1e91e4495bc27" dependencies = [ "anyhow", "cairo-lang-compiler", @@ -4355,9 +4361,9 @@ dependencies = [ [[package]] name = "cairo-lang-test-utils" -version = "2.14.0" +version = "2.14.1-dev.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f8d92174190e8654f4354c4869d47a21547e2192421b5a1111a6afcdb061e67" +checksum = "c529a7f0dea57594a434ef5ab9cf9bad239449359a2b080ebdd842b75b4ca104" dependencies = [ "cairo-lang-formatter", "cairo-lang-proc-macros", @@ -4369,9 +4375,9 @@ dependencies = [ [[package]] name = "cairo-lang-utils" -version = "2.14.0" +version = "2.14.1-dev.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41e7dab0d9fb41e05d0dc3fdef607dfae2fe0e820d086f1d40303260cfdb86ec" +checksum = "6ff3991615d77a4b282c34feed1c10e3452bcbb4877fbdfa56899eb2ff7ac257" dependencies = [ "hashbrown 0.16.0", "indexmap 2.12.0", @@ -4391,8 +4397,8 @@ dependencies = [ [[package]] name = "cairo-native" -version = "0.7.2" -source = "git+https://github.com/lambdaclass/cairo_native.git?rev=53371a953b8db9c8bc020e141591853a666cdcf3#53371a953b8db9c8bc020e141591853a666cdcf3" +version = "0.8.0" +source = "git+https://github.com/lambdaclass/cairo_native.git?rev=a03eb9042c41de23ad44abad232474b477469192#a03eb9042c41de23ad44abad232474b477469192" dependencies = [ "aquamarine", "ark-ec 0.5.0", @@ -4436,16 +4442,15 @@ dependencies = [ [[package]] name = "cairo-vm" -version = "2.5.0" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c21cacdf4e290ab5f0018f24d6bf97f8d3a8809bd09568550669270e7f9ed534" +checksum = "e5c515ffc04405f009bc7a9110122f08046d5d1ceab20d2b4bf424ab85841169" dependencies = [ "anyhow", "bincode", "bitvec", "generic-array", "hashbrown 0.15.5", - "hex", "indoc 2.0.7", "keccak", "lazy_static", @@ -4873,9 +4878,9 @@ dependencies = [ [[package]] name = "convert_case" -version = "0.9.0" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db05ffb6856bf0ecdf6367558a76a0e8a77b1713044eb92845c692100ed50190" +checksum = "633458d4ef8c78b72454de2d54fd6ab2e60f9e02be22f3c6104cdc8a4e0fceb9" dependencies = [ "unicode-segmentation", ] @@ -11823,8 +11828,8 @@ checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" [[package]] name = "sierra-emu" -version = "0.7.2" -source = "git+https://github.com/lambdaclass/cairo_native.git?rev=53371a953b8db9c8bc020e141591853a666cdcf3#53371a953b8db9c8bc020e141591853a666cdcf3" +version = "0.8.0" +source = "git+https://github.com/lambdaclass/cairo_native.git?rev=a03eb9042c41de23ad44abad232474b477469192#a03eb9042c41de23ad44abad232474b477469192" dependencies = [ "cairo-lang-compiler", "cairo-lang-filesystem", diff --git a/Cargo.toml b/Cargo.toml index 2feaf4d5245..8d81324aeae 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -225,15 +225,15 @@ bytes = "1" c-kzg = "2.1.5" cached = "0.44.0" cairo-felt = "0.9.1" -cairo-lang-casm = "2.12.3" -cairo-lang-runner = "2.12.3" -cairo-lang-sierra = "2.12.3" -cairo-lang-sierra-to-casm = "2.12.3" -cairo-lang-starknet-classes = "2.12.3" -cairo-lang-utils = "2.12.3" -cairo-native = { git = "https://github.com/lambdaclass/cairo_native.git", rev = "53371a953b8db9c8bc020e141591853a666cdcf3" } -sierra-emu = { git = "https://github.com/lambdaclass/cairo_native.git", rev = "53371a953b8db9c8bc020e141591853a666cdcf3" } -cairo-vm = "2.5.0" +cairo-lang-casm = "2.14.1-dev.1" +cairo-lang-runner = "2.14.1-dev.1" +cairo-lang-sierra = "2.14.1-dev.1" +cairo-lang-sierra-to-casm = "2.14.1-dev.1" +cairo-lang-starknet-classes = "2.14.1-dev.1" +cairo-lang-utils = "2.14.1-dev.1" +cairo-native = { git = "https://github.com/lambdaclass/cairo_native.git", rev = "a03eb9042c41de23ad44abad232474b477469192" } +sierra-emu = { git = "https://github.com/lambdaclass/cairo_native.git", rev = "a03eb9042c41de23ad44abad232474b477469192" } +cairo-vm = "3.0.0" camelpaste = "0.1.0" chrono = "0.4.26" clap = "4.5.4" diff --git a/crates/apollo_infra_utils/src/cairo_compiler_version.rs b/crates/apollo_infra_utils/src/cairo_compiler_version.rs index f7044a71130..c11edd48262 100644 --- a/crates/apollo_infra_utils/src/cairo_compiler_version.rs +++ b/crates/apollo_infra_utils/src/cairo_compiler_version.rs @@ -2,4 +2,4 @@ #[path = "cairo_compiler_version_test.rs"] mod cairo_compiler_version_test; -pub const CAIRO1_COMPILER_VERSION: &str = "2.12.3"; +pub const CAIRO1_COMPILER_VERSION: &str = "2.14.1-dev.1"; diff --git a/crates/blockifier/src/bouncer.rs b/crates/blockifier/src/bouncer.rs index d1f54948052..f02125dd44d 100644 --- a/crates/blockifier/src/bouncer.rs +++ b/crates/blockifier/src/bouncer.rs @@ -1,6 +1,6 @@ use std::collections::{BTreeMap, HashMap, HashSet}; -use apollo_config::dumping::{prepend_sub_config_name, ser_param, SerializeConfig}; +use apollo_config::dumping::{SerializeConfig, prepend_sub_config_name, ser_param}; use apollo_config::{ParamPath, ParamPrivacyInput, SerializedParam}; use cairo_vm::types::builtin_name::BuiltinName; use cairo_vm::vm::runners::cairo_runner::ExecutionResources; @@ -969,7 +969,7 @@ pub fn get_patricia_update_resources( let resources_per_tree_access = ExecutionResources { n_steps: TREE_HEIGHT_UPPER_BOUND * STEPS_IN_TREE_PER_HEIGHT, - builtin_instance_counter: HashMap::from([( + builtin_instance_counter: BTreeMap::from([( BuiltinName::pedersen, TREE_HEIGHT_UPPER_BOUND * PEDERSENS_PER_HEIGHT, )]), diff --git a/crates/blockifier/src/execution/casm_hash_estimation.rs b/crates/blockifier/src/execution/casm_hash_estimation.rs index a46f12e92cd..d3fff76ca96 100644 --- a/crates/blockifier/src/execution/casm_hash_estimation.rs +++ b/crates/blockifier/src/execution/casm_hash_estimation.rs @@ -1,4 +1,4 @@ -use std::collections::HashMap; +use std::collections::BTreeMap; use std::ops::AddAssign; use cairo_vm::types::builtin_name::BuiltinName; @@ -448,10 +448,10 @@ impl EstimateCasmHashResources for CasmV2HashResourceEstimate { Self::estimate_steps_of_encode_felt252_data_and_calc_blake_hash(felt_size_groups); let builtin_instance_counter = match felt_size_groups.n_felts() { // The empty case does not use builtins at all. - 0 => HashMap::new(), + 0 => BTreeMap::new(), // One `range_check` per input felt to validate its size + Overhead for the non empty // case. - _ => HashMap::from([( + _ => BTreeMap::from([( BuiltinName::range_check, felt_size_groups.n_felts() + BASE_RANGE_CHECK_NON_EMPTY, )]), diff --git a/crates/blockifier/src/execution/contract_class.rs b/crates/blockifier/src/execution/contract_class.rs index acb2a789a08..8949aae9cac 100644 --- a/crates/blockifier/src/execution/contract_class.rs +++ b/crates/blockifier/src/execution/contract_class.rs @@ -1,16 +1,16 @@ use std::borrow::Cow; -use std::collections::{HashMap, HashSet}; +use std::collections::{BTreeMap, HashMap, HashSet}; use std::ops::{Deref, Index}; use std::sync::{Arc, LazyLock}; use cairo_lang_casm; use cairo_lang_casm::hints::Hint; +use cairo_lang_starknet_classes::NestedIntList; use cairo_lang_starknet_classes::casm_contract_class::{ CasmContractClass, CasmContractEntryPoint, CasmContractEntryPoints, }; -use cairo_lang_starknet_classes::NestedIntList; use cairo_lang_utils::bigint::BigUintAsHex; use cairo_vm::serde::deserialize_program::{ ApTracking, @@ -356,7 +356,7 @@ impl CompiledClassV0 { ExecutionResources { n_steps, n_memory_holes: 0, - builtin_instance_counter: HashMap::from([(BuiltinName::pedersen, hashed_data_size)]), + builtin_instance_counter: BTreeMap::from([(BuiltinName::pedersen, hashed_data_size)]), } } diff --git a/crates/blockifier/src/execution/execution_utils.rs b/crates/blockifier/src/execution/execution_utils.rs index 64546a6679a..1c2d0a3feb3 100644 --- a/crates/blockifier/src/execution/execution_utils.rs +++ b/crates/blockifier/src/execution/execution_utils.rs @@ -1,11 +1,11 @@ -use std::collections::HashMap; +use std::collections::{BTreeMap, HashMap}; use cairo_vm::serde::deserialize_program::{ - deserialize_array_of_bigint_hex, Attribute, HintParams, Identifier, ReferenceManager, + deserialize_array_of_bigint_hex, }; use cairo_vm::types::builtin_name::BuiltinName; use cairo_vm::types::errors::program_errors::ProgramError; @@ -24,13 +24,13 @@ use starknet_types_core::felt::Felt; use crate::execution::call_info::{CallExecution, CallInfo, Retdata}; use crate::execution::contract_class::{RunnableCompiledClass, TrackedResource}; use crate::execution::entry_point::{ - execute_constructor_entry_point, ConstructorContext, ConstructorEntryPointExecutionResult, EntryPointExecutionContext, EntryPointExecutionResult, EntryPointRevertInfo, ExecutableCallEntryPoint, + execute_constructor_entry_point, }; use crate::execution::errors::{ ConstructorEntryPointExecutionError, @@ -40,7 +40,7 @@ use crate::execution::errors::{ }; #[cfg(feature = "cairo_native")] use crate::execution::native::entry_point_execution as native_entry_point_execution; -use crate::execution::stack_trace::{extract_trailing_cairo1_revert_trace, Cairo1RevertHeader}; +use crate::execution::stack_trace::{Cairo1RevertHeader, extract_trailing_cairo1_revert_trace}; use crate::execution::syscalls::hint_processor::{ ENTRYPOINT_NOT_FOUND_ERROR_FELT, OUT_OF_GAS_ERROR_FELT, @@ -378,6 +378,6 @@ pub fn poseidon_hash_many_cost(data_length: usize) -> ExecutionResources { + (data_length % 2) * 3 + 21, n_memory_holes: 0, - builtin_instance_counter: HashMap::from([(BuiltinName::poseidon, data_length / 2 + 1)]), + builtin_instance_counter: BTreeMap::from([(BuiltinName::poseidon, data_length / 2 + 1)]), } } diff --git a/crates/blockifier/src/execution/syscalls/hint_processor.rs b/crates/blockifier/src/execution/syscalls/hint_processor.rs index dffeaff162d..7450b77ec22 100644 --- a/crates/blockifier/src/execution/syscalls/hint_processor.rs +++ b/crates/blockifier/src/execution/syscalls/hint_processor.rs @@ -1,6 +1,6 @@ use std::any::Any; use std::collections::HashMap; -use std::rc::Rc; +use std::sync::Arc; use cairo_lang_casm::hints::Hint; use cairo_lang_runner::casm_run::execute_core_hint_base; @@ -14,16 +14,16 @@ use cairo_vm::vm::errors::memory_errors::MemoryError; use cairo_vm::vm::errors::vm_errors::VirtualMachineError; use cairo_vm::vm::runners::cairo_runner::{ResourceTracker, RunResources}; use cairo_vm::vm::vm_core::VirtualMachine; +use starknet_api::StarknetApiError; use starknet_api::block::BlockHash; use starknet_api::contract_class::EntryPointType; use starknet_api::core::{ClassHash, ContractAddress, EntryPointSelector}; use starknet_api::execution_resources::GasAmount; use starknet_api::transaction::fields::{ - valid_resource_bounds_as_felts, Calldata, ResourceAsFelts, + valid_resource_bounds_as_felts, }; -use starknet_api::StarknetApiError; use starknet_types_core::felt::{Felt, FromStrError}; use thiserror::Error; @@ -38,17 +38,16 @@ use crate::execution::entry_point::{ }; use crate::execution::errors::{ConstructorEntryPointExecutionError, EntryPointExecutionError}; use crate::execution::execution_utils::{ + ReadOnlySegment, + ReadOnlySegments, felt_from_ptr, felt_range_from_ptr, write_maybe_relocatable, - ReadOnlySegment, - ReadOnlySegments, }; use crate::execution::syscalls::secp::SecpHintProcessor; use crate::execution::syscalls::syscall_base::{SyscallHandlerBase, SyscallResult}; use crate::execution::syscalls::syscall_executor::SyscallExecutor; use crate::execution::syscalls::vm_syscall_utils::{ - execute_next_syscall, CallContractRequest, CallContractResponse, DeployRequest, @@ -79,6 +78,7 @@ use crate::execution::syscalls::vm_syscall_utils::{ SyscallExecutorBaseError, SyscallSelector, TryExtractRevert, + execute_next_syscall, }; use crate::state::errors::StateError; use crate::state::state_api::State; @@ -783,7 +783,8 @@ impl HintProcessorLogic for SyscallHintProcessor<'_> { _ap_tracking_data: &ApTracking, _reference_ids: &HashMap, _references: &[HintReference], - _constants: Rc>, + _accessible_scopes: &[String], + _constants: Arc>, ) -> Result, VirtualMachineError> { Ok(Box::new(self.hints[hint_code].clone())) } diff --git a/crates/blockifier/src/transaction/objects.rs b/crates/blockifier/src/transaction/objects.rs index 385498b23ee..7a20602003e 100644 --- a/crates/blockifier/src/transaction/objects.rs +++ b/crates/blockifier/src/transaction/objects.rs @@ -15,10 +15,10 @@ use starknet_api::transaction::fields::{ ValidResourceBounds, }; use starknet_api::transaction::{ - signed_tx_version, TransactionHash, TransactionOptions, TransactionVersion, + signed_tx_version, }; use crate::abi::constants as abi_constants; @@ -288,7 +288,7 @@ impl ExecutionResourcesTraits for ExecutionResources { // See "total_n_steps" documentation. builtins.remove(&BuiltinName::segment_arena); - builtins + builtins.into_iter().collect() } fn div_ceil(&self, rhs: usize) -> ExecutionResources { From 3a2b1a8952a70143b34a3e9fab13c3b1c0eb05f4 Mon Sep 17 00:00:00 2001 From: Diego Civini Date: Wed, 17 Dec 2025 17:20:59 -0300 Subject: [PATCH 2/5] Fix fmt --- crates/blockifier/src/bouncer.rs | 2 +- crates/blockifier/src/execution/contract_class.rs | 2 +- crates/blockifier/src/execution/execution_utils.rs | 6 +++--- .../src/execution/syscalls/hint_processor.rs | 10 +++++----- crates/blockifier/src/transaction/objects.rs | 2 +- 5 files changed, 11 insertions(+), 11 deletions(-) diff --git a/crates/blockifier/src/bouncer.rs b/crates/blockifier/src/bouncer.rs index f02125dd44d..873e907a457 100644 --- a/crates/blockifier/src/bouncer.rs +++ b/crates/blockifier/src/bouncer.rs @@ -1,6 +1,6 @@ use std::collections::{BTreeMap, HashMap, HashSet}; -use apollo_config::dumping::{SerializeConfig, prepend_sub_config_name, ser_param}; +use apollo_config::dumping::{prepend_sub_config_name, ser_param, SerializeConfig}; use apollo_config::{ParamPath, ParamPrivacyInput, SerializedParam}; use cairo_vm::types::builtin_name::BuiltinName; use cairo_vm::vm::runners::cairo_runner::ExecutionResources; diff --git a/crates/blockifier/src/execution/contract_class.rs b/crates/blockifier/src/execution/contract_class.rs index 8949aae9cac..378e882a053 100644 --- a/crates/blockifier/src/execution/contract_class.rs +++ b/crates/blockifier/src/execution/contract_class.rs @@ -5,12 +5,12 @@ use std::sync::{Arc, LazyLock}; use cairo_lang_casm; use cairo_lang_casm::hints::Hint; -use cairo_lang_starknet_classes::NestedIntList; use cairo_lang_starknet_classes::casm_contract_class::{ CasmContractClass, CasmContractEntryPoint, CasmContractEntryPoints, }; +use cairo_lang_starknet_classes::NestedIntList; use cairo_lang_utils::bigint::BigUintAsHex; use cairo_vm::serde::deserialize_program::{ ApTracking, diff --git a/crates/blockifier/src/execution/execution_utils.rs b/crates/blockifier/src/execution/execution_utils.rs index 1c2d0a3feb3..437f737c839 100644 --- a/crates/blockifier/src/execution/execution_utils.rs +++ b/crates/blockifier/src/execution/execution_utils.rs @@ -1,11 +1,11 @@ use std::collections::{BTreeMap, HashMap}; use cairo_vm::serde::deserialize_program::{ + deserialize_array_of_bigint_hex, Attribute, HintParams, Identifier, ReferenceManager, - deserialize_array_of_bigint_hex, }; use cairo_vm::types::builtin_name::BuiltinName; use cairo_vm::types::errors::program_errors::ProgramError; @@ -24,13 +24,13 @@ use starknet_types_core::felt::Felt; use crate::execution::call_info::{CallExecution, CallInfo, Retdata}; use crate::execution::contract_class::{RunnableCompiledClass, TrackedResource}; use crate::execution::entry_point::{ + execute_constructor_entry_point, ConstructorContext, ConstructorEntryPointExecutionResult, EntryPointExecutionContext, EntryPointExecutionResult, EntryPointRevertInfo, ExecutableCallEntryPoint, - execute_constructor_entry_point, }; use crate::execution::errors::{ ConstructorEntryPointExecutionError, @@ -40,7 +40,7 @@ use crate::execution::errors::{ }; #[cfg(feature = "cairo_native")] use crate::execution::native::entry_point_execution as native_entry_point_execution; -use crate::execution::stack_trace::{Cairo1RevertHeader, extract_trailing_cairo1_revert_trace}; +use crate::execution::stack_trace::{extract_trailing_cairo1_revert_trace, Cairo1RevertHeader}; use crate::execution::syscalls::hint_processor::{ ENTRYPOINT_NOT_FOUND_ERROR_FELT, OUT_OF_GAS_ERROR_FELT, diff --git a/crates/blockifier/src/execution/syscalls/hint_processor.rs b/crates/blockifier/src/execution/syscalls/hint_processor.rs index 7450b77ec22..7f1ff9e1650 100644 --- a/crates/blockifier/src/execution/syscalls/hint_processor.rs +++ b/crates/blockifier/src/execution/syscalls/hint_processor.rs @@ -14,16 +14,16 @@ use cairo_vm::vm::errors::memory_errors::MemoryError; use cairo_vm::vm::errors::vm_errors::VirtualMachineError; use cairo_vm::vm::runners::cairo_runner::{ResourceTracker, RunResources}; use cairo_vm::vm::vm_core::VirtualMachine; -use starknet_api::StarknetApiError; use starknet_api::block::BlockHash; use starknet_api::contract_class::EntryPointType; use starknet_api::core::{ClassHash, ContractAddress, EntryPointSelector}; use starknet_api::execution_resources::GasAmount; use starknet_api::transaction::fields::{ + valid_resource_bounds_as_felts, Calldata, ResourceAsFelts, - valid_resource_bounds_as_felts, }; +use starknet_api::StarknetApiError; use starknet_types_core::felt::{Felt, FromStrError}; use thiserror::Error; @@ -38,16 +38,17 @@ use crate::execution::entry_point::{ }; use crate::execution::errors::{ConstructorEntryPointExecutionError, EntryPointExecutionError}; use crate::execution::execution_utils::{ - ReadOnlySegment, - ReadOnlySegments, felt_from_ptr, felt_range_from_ptr, write_maybe_relocatable, + ReadOnlySegment, + ReadOnlySegments, }; use crate::execution::syscalls::secp::SecpHintProcessor; use crate::execution::syscalls::syscall_base::{SyscallHandlerBase, SyscallResult}; use crate::execution::syscalls::syscall_executor::SyscallExecutor; use crate::execution::syscalls::vm_syscall_utils::{ + execute_next_syscall, CallContractRequest, CallContractResponse, DeployRequest, @@ -78,7 +79,6 @@ use crate::execution::syscalls::vm_syscall_utils::{ SyscallExecutorBaseError, SyscallSelector, TryExtractRevert, - execute_next_syscall, }; use crate::state::errors::StateError; use crate::state::state_api::State; diff --git a/crates/blockifier/src/transaction/objects.rs b/crates/blockifier/src/transaction/objects.rs index 7a20602003e..dbab4594433 100644 --- a/crates/blockifier/src/transaction/objects.rs +++ b/crates/blockifier/src/transaction/objects.rs @@ -15,10 +15,10 @@ use starknet_api::transaction::fields::{ ValidResourceBounds, }; use starknet_api::transaction::{ + signed_tx_version, TransactionHash, TransactionOptions, TransactionVersion, - signed_tx_version, }; use crate::abi::constants as abi_constants; From 11b7f2d14e4c5dd1379692cc0dc0df765c363e7d Mon Sep 17 00:00:00 2001 From: Diego Civini Date: Thu, 18 Dec 2025 13:21:51 -0300 Subject: [PATCH 3/5] Update native ref --- Cargo.lock | 4 ++-- Cargo.toml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index f9f7402ae74..bd5676cc7e2 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4398,7 +4398,7 @@ dependencies = [ [[package]] name = "cairo-native" version = "0.8.0" -source = "git+https://github.com/lambdaclass/cairo_native.git?rev=a03eb9042c41de23ad44abad232474b477469192#a03eb9042c41de23ad44abad232474b477469192" +source = "git+https://github.com/lambdaclass/cairo_native.git?rev=0a7b6ae51823f541bc140808dd1a3453e91ac727#0a7b6ae51823f541bc140808dd1a3453e91ac727" dependencies = [ "aquamarine", "ark-ec 0.5.0", @@ -11829,7 +11829,7 @@ checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" [[package]] name = "sierra-emu" version = "0.8.0" -source = "git+https://github.com/lambdaclass/cairo_native.git?rev=a03eb9042c41de23ad44abad232474b477469192#a03eb9042c41de23ad44abad232474b477469192" +source = "git+https://github.com/lambdaclass/cairo_native.git?rev=0a7b6ae51823f541bc140808dd1a3453e91ac727#0a7b6ae51823f541bc140808dd1a3453e91ac727" dependencies = [ "cairo-lang-compiler", "cairo-lang-filesystem", diff --git a/Cargo.toml b/Cargo.toml index 8d81324aeae..b691e5f6c23 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -231,8 +231,8 @@ cairo-lang-sierra = "2.14.1-dev.1" cairo-lang-sierra-to-casm = "2.14.1-dev.1" cairo-lang-starknet-classes = "2.14.1-dev.1" cairo-lang-utils = "2.14.1-dev.1" -cairo-native = { git = "https://github.com/lambdaclass/cairo_native.git", rev = "a03eb9042c41de23ad44abad232474b477469192" } -sierra-emu = { git = "https://github.com/lambdaclass/cairo_native.git", rev = "a03eb9042c41de23ad44abad232474b477469192" } +cairo-native = { git = "https://github.com/lambdaclass/cairo_native.git", rev = "0a7b6ae51823f541bc140808dd1a3453e91ac727" } +sierra-emu = { git = "https://github.com/lambdaclass/cairo_native.git", rev = "0a7b6ae51823f541bc140808dd1a3453e91ac727" } cairo-vm = "3.0.0" camelpaste = "0.1.0" chrono = "0.4.26" From 29b213259a5cf4910ea11a05f549dfd5531fc128 Mon Sep 17 00:00:00 2001 From: Diego Civini Date: Thu, 18 Dec 2025 13:46:08 -0300 Subject: [PATCH 4/5] Fix clippy --- .../src/cende/central_objects_test.rs | 6 ++++-- crates/blockifier/src/bouncer_test.rs | 19 ++++++++++++------- .../execution/casm_hash_estimation_test.rs | 18 +++++++++++++----- .../deprecated_syscalls_test.rs | 12 ++++++------ crates/blockifier/src/test_utils.rs | 4 ++-- .../src/transaction/transactions_test.rs | 8 ++++---- .../src/versioned_constants_test.rs | 10 +++++----- 7 files changed, 46 insertions(+), 31 deletions(-) diff --git a/crates/apollo_consensus_orchestrator/src/cende/central_objects_test.rs b/crates/apollo_consensus_orchestrator/src/cende/central_objects_test.rs index 605fe8bccd9..71f717d77c5 100644 --- a/crates/apollo_consensus_orchestrator/src/cende/central_objects_test.rs +++ b/crates/apollo_consensus_orchestrator/src/cende/central_objects_test.rs @@ -1,4 +1,4 @@ -use std::collections::{HashMap, HashSet}; +use std::collections::{BTreeMap, HashMap, HashSet}; use std::sync::Arc; use std::vec; @@ -473,7 +473,7 @@ fn execution_resources() -> ExecutionResources { ExecutionResources { n_steps: 2, n_memory_holes: 3, - builtin_instance_counter: HashMap::from([ + builtin_instance_counter: BTreeMap::from([ (BuiltinName::range_check, 31), (BuiltinName::pedersen, 4), ]), @@ -538,6 +538,8 @@ fn call_info() -> CallInfo { (SyscallSelector::StorageWrite, SyscallUsage { call_count: 4, linear_factor: 0 }), (SyscallSelector::EmitEvent, SyscallUsage { call_count: 2, linear_factor: 0 }), ]), + time: Default::default(), + call_counter: Default::default(), } } diff --git a/crates/blockifier/src/bouncer_test.rs b/crates/blockifier/src/bouncer_test.rs index f3d1f6dd7b3..cc26040b002 100644 --- a/crates/blockifier/src/bouncer_test.rs +++ b/crates/blockifier/src/bouncer_test.rs @@ -577,7 +577,7 @@ fn test_get_tx_weights_with_casm_hash_computation(block_context: BlockContext) { #[case::tx_builtins_plus_os_tx_builtins( &[], ExecutionResources { - builtin_instance_counter: HashMap::from([ + builtin_instance_counter: std::collections::BTreeMap::from([ (BuiltinName::bitwise, 1), ]), ..Default::default() @@ -596,7 +596,7 @@ fn test_get_tx_weights_with_casm_hash_computation(block_context: BlockContext) { (FeatureContract::TestContract(CairoVersion::Cairo1(RunnableCairo1::Casm)), 1), ], ExecutionResources { - builtin_instance_counter: HashMap::from([ + builtin_instance_counter: std::collections::BTreeMap::from([ (BuiltinName::range_check, 1), (BuiltinName::bitwise, 2), ]), @@ -607,6 +607,8 @@ fn test_proving_gas_minus_sierra_gas_equals_builtin_gas( #[case] contract_instances: &[(FeatureContract, u16)], #[case] os_vm_resources: ExecutionResources, ) { + use std::collections::BTreeMap; + let block_context = BlockContext::create_for_account_testing(); let state = test_state(&block_context.chain_info, Fee(0), contract_instances); @@ -615,8 +617,8 @@ fn test_proving_gas_minus_sierra_gas_equals_builtin_gas( contract_instances.iter().map(|(contract, _)| contract.get_class_hash()).collect(); // Transaction builtin counters. - let mut tx_builtin_counters = - HashMap::from([(BuiltinName::range_check, 2), (BuiltinName::pedersen, 1)]); + let tx_builtin_counters = + BTreeMap::from([(BuiltinName::range_check, 2), (BuiltinName::pedersen, 1)]); let tx_resources = TransactionResources { computation: ComputationResources { @@ -661,14 +663,17 @@ fn test_proving_gas_minus_sierra_gas_equals_builtin_gas( &tx_resources, &StateMaps::default().keys(), // state changes keys &block_context.versioned_constants, - &tx_builtin_counters, + &tx_builtin_counters.clone().into_iter().collect(), &block_context.bouncer_config, ) .unwrap(); // Combine TX + TX overhead (OS) + CASM and patricia builtin usage. - add_maps(&mut tx_builtin_counters, &os_vm_resources.builtin_instance_counter); - add_maps(&mut tx_builtin_counters, &additional_os_resources); + add_maps( + &mut tx_builtin_counters.clone().into_iter().collect(), + &os_vm_resources.builtin_instance_counter.into_iter().collect(), + ); + add_maps(&mut tx_builtin_counters.clone().into_iter().collect(), &additional_os_resources); // Compute expected gas delta from builtin delta (absolute difference between Stwo and Stone). let (total_stwo_gas, total_stone_gas) = tx_builtin_counters diff --git a/crates/blockifier/src/execution/casm_hash_estimation_test.rs b/crates/blockifier/src/execution/casm_hash_estimation_test.rs index 9b3af4fc3dd..db99ad91d82 100644 --- a/crates/blockifier/src/execution/casm_hash_estimation_test.rs +++ b/crates/blockifier/src/execution/casm_hash_estimation_test.rs @@ -1,4 +1,4 @@ -use std::collections::HashMap; +use std::collections::{BTreeMap, HashMap}; use cairo_vm::types::builtin_name::BuiltinName; use cairo_vm::vm::runners::cairo_runner::ExecutionResources; @@ -21,7 +21,11 @@ impl EstimatedExecutionResources { builtin_instance_counter: HashMap, ) -> Self { Self::V1Hash { - resources: ExecutionResources { n_steps, n_memory_holes, builtin_instance_counter }, + resources: ExecutionResources { + n_steps, + n_memory_holes, + builtin_instance_counter: builtin_instance_counter.into_iter().collect(), + }, } } @@ -33,7 +37,11 @@ impl EstimatedExecutionResources { blake_count: usize, ) -> Self { Self::V2Hash { - resources: ExecutionResources { n_steps, n_memory_holes, builtin_instance_counter }, + resources: ExecutionResources { + n_steps, + n_memory_holes, + builtin_instance_counter: builtin_instance_counter.into_iter().collect(), + }, blake_count, } } @@ -64,7 +72,7 @@ fn add_assign_estimated_resources_panics_on_variant_mismatch( ExecutionResources { n_steps: 2, n_memory_holes: 2, - builtin_instance_counter: HashMap::from([(BuiltinName::poseidon, 3)]), + builtin_instance_counter: BTreeMap::from([(BuiltinName::poseidon, 3)]), }, // Expected blake count. None, @@ -76,7 +84,7 @@ fn add_assign_estimated_resources_panics_on_variant_mismatch( ExecutionResources { n_steps: 2, n_memory_holes: 2, - builtin_instance_counter: HashMap::from([(BuiltinName::range_check, 3)]), + builtin_instance_counter: BTreeMap::from([(BuiltinName::range_check, 3)]), }, // Expected blake count. Some(3), diff --git a/crates/blockifier/src/execution/deprecated_syscalls/deprecated_syscalls_test.rs b/crates/blockifier/src/execution/deprecated_syscalls/deprecated_syscalls_test.rs index d6e330af919..965809a4d76 100644 --- a/crates/blockifier/src/execution/deprecated_syscalls/deprecated_syscalls_test.rs +++ b/crates/blockifier/src/execution/deprecated_syscalls/deprecated_syscalls_test.rs @@ -1,4 +1,4 @@ -use std::collections::{HashMap, HashSet}; +use std::collections::{BTreeMap, HashMap, HashSet}; use blockifier_test_utils::cairo_versions::CairoVersion; use blockifier_test_utils::contracts::FeatureContract; @@ -152,7 +152,7 @@ fn test_nested_library_call() { let storage_entry_point_resources = ExecutionResources { n_steps: 228, n_memory_holes: 0, - builtin_instance_counter: HashMap::from([(BuiltinName::range_check, 2)]), + builtin_instance_counter: BTreeMap::from([(BuiltinName::range_check, 2)]), }; let storage_entry_point_syscalls_usage = HashMap::from([ (SyscallSelector::StorageRead, SyscallUsage::with_call_count(1)), @@ -176,7 +176,7 @@ fn test_nested_library_call() { + &ExecutionResources { n_steps: 39, n_memory_holes: 0, - builtin_instance_counter: HashMap::from([(BuiltinName::range_check, 1)]), + builtin_instance_counter: BTreeMap::from([(BuiltinName::range_check, 1)]), }; library_call_resources += &storage_entry_point_resources; let library_call_info = CallInfo { @@ -211,7 +211,7 @@ fn test_nested_library_call() { + &ExecutionResources { n_steps: 45, n_memory_holes: 0, - builtin_instance_counter: HashMap::new(), + builtin_instance_counter: BTreeMap::new(), }; main_call_resources += &(&library_call_resources * 2); let expected_call_info = CallInfo { @@ -317,7 +317,7 @@ fn test_call_contract() { resources: ExecutionResources { n_steps: 228, n_memory_holes: 0, - builtin_instance_counter: HashMap::from([(BuiltinName::range_check, 2)]), + builtin_instance_counter: BTreeMap::from([(BuiltinName::range_check, 2)]), }, storage_access_tracker: StorageAccessTracker { storage_read_values: vec![value], @@ -344,7 +344,7 @@ fn test_call_contract() { + &ExecutionResources { n_steps: 267, n_memory_holes: 0, - builtin_instance_counter: HashMap::from([(BuiltinName::range_check, 3)]), + builtin_instance_counter: BTreeMap::from([(BuiltinName::range_check, 3)]), }, builtin_counters: HashMap::from([(BuiltinName::range_check, 19)]), syscalls_usage: HashMap::from([( diff --git a/crates/blockifier/src/test_utils.rs b/crates/blockifier/src/test_utils.rs index 24710b1689c..0bcd5470c94 100644 --- a/crates/blockifier/src/test_utils.rs +++ b/crates/blockifier/src/test_utils.rs @@ -10,7 +10,7 @@ pub mod syscall; pub mod test_templates; pub mod transfers_generator; -use std::collections::HashMap; +use std::collections::{BTreeMap, HashMap}; use std::slice::Iter; use std::sync::LazyLock; @@ -397,7 +397,7 @@ pub fn get_vm_resource_usage() -> ExecutionResources { ExecutionResources { n_steps: 10000, n_memory_holes: 0, - builtin_instance_counter: HashMap::from([ + builtin_instance_counter: BTreeMap::from([ (BuiltinName::pedersen, 10), (BuiltinName::range_check, 24), (BuiltinName::ecdsa, 1), diff --git a/crates/blockifier/src/transaction/transactions_test.rs b/crates/blockifier/src/transaction/transactions_test.rs index 65ed2d38b1d..b5078d7cb38 100644 --- a/crates/blockifier/src/transaction/transactions_test.rs +++ b/crates/blockifier/src/transaction/transactions_test.rs @@ -1,4 +1,4 @@ -use std::collections::{HashMap, HashSet}; +use std::collections::{BTreeMap, HashMap, HashSet}; use std::sync::{Arc, LazyLock}; use assert_matches::assert_matches; @@ -316,7 +316,7 @@ fn expected_validate_call_info( ExecutionResources { n_steps, n_memory_holes: 0, - builtin_instance_counter: HashMap::from([( + builtin_instance_counter: BTreeMap::from([( BuiltinName::range_check, n_range_checks, )]), @@ -570,7 +570,7 @@ fn add_kzg_da_resources_to_resources_mapping( resources: &get_const_syscall_resources(SyscallSelector::CallContract) + &ExecutionResources { n_steps: 62, n_memory_holes: 0, - builtin_instance_counter: HashMap::from([(BuiltinName::range_check, 1)]), + builtin_instance_counter: BTreeMap::from([(BuiltinName::range_check, 1)]), }, validate_gas_consumed: 0, execute_gas_consumed: 0, @@ -2784,7 +2784,7 @@ fn test_l1_handler(#[values(false, true)] use_kzg_da: bool) { }; let mut expected_os_execution_resources = ExecutionResources { - builtin_instance_counter: HashMap::from([ + builtin_instance_counter: BTreeMap::from([ (BuiltinName::pedersen, 11 + payload_size), ( BuiltinName::range_check, diff --git a/crates/blockifier/src/versioned_constants_test.rs b/crates/blockifier/src/versioned_constants_test.rs index 1567ef46107..bb93482d26a 100644 --- a/crates/blockifier/src/versioned_constants_test.rs +++ b/crates/blockifier/src/versioned_constants_test.rs @@ -278,7 +278,7 @@ fn verify_v1_bound_and_data_gas_accounts_disjoint() { "#, VariableResourceParams::Constant(ExecutionResources { n_steps: 1, - builtin_instance_counter: HashMap::from([(BuiltinName::pedersen, 2)]), + builtin_instance_counter: BTreeMap::from([(BuiltinName::pedersen, 2)]), n_memory_holes: 3, }) )] @@ -304,12 +304,12 @@ fn verify_v1_bound_and_data_gas_accounts_disjoint() { VariableResourceParams::WithFactor(ResourcesParams { constant: ExecutionResources { n_steps: 4, - builtin_instance_counter: HashMap::from([(BuiltinName::pedersen, 5)]), + builtin_instance_counter: BTreeMap::from([(BuiltinName::pedersen, 5)]), n_memory_holes: 6, }, calldata_factor: VariableCallDataFactor::Unscaled(ExecutionResources { n_steps: 7, - builtin_instance_counter: HashMap::from([(BuiltinName::pedersen, 8)]), + builtin_instance_counter: BTreeMap::from([(BuiltinName::pedersen, 8)]), n_memory_holes: 9, }), }) @@ -339,13 +339,13 @@ fn verify_v1_bound_and_data_gas_accounts_disjoint() { VariableResourceParams::WithFactor(ResourcesParams { constant: ExecutionResources { n_steps: 10, - builtin_instance_counter: HashMap::from([(BuiltinName::pedersen, 11)]), + builtin_instance_counter: BTreeMap::from([(BuiltinName::pedersen, 11)]), n_memory_holes: 12, }, calldata_factor: VariableCallDataFactor::Scaled(CallDataFactor { resources: ExecutionResources { n_steps: 13, - builtin_instance_counter: HashMap::from([(BuiltinName::pedersen, 14)]), + builtin_instance_counter: BTreeMap::from([(BuiltinName::pedersen, 14)]), n_memory_holes: 15, }, scaling_factor: 16, From 6deed4ae852da5b19875c983864e19ebb4b91926 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juli=C3=A1n=20Gonz=C3=A1lez=20Calder=C3=B3n?= Date: Thu, 18 Dec 2025 16:41:18 -0300 Subject: [PATCH 5/5] Implement get_execution_info_v3 --- Cargo.lock | 4 ++-- Cargo.toml | 4 ++-- .../blockifier/src/execution/native/syscall_handler.rs | 10 ++++++++++ 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index bd5676cc7e2..9ee1bc40533 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4398,7 +4398,7 @@ dependencies = [ [[package]] name = "cairo-native" version = "0.8.0" -source = "git+https://github.com/lambdaclass/cairo_native.git?rev=0a7b6ae51823f541bc140808dd1a3453e91ac727#0a7b6ae51823f541bc140808dd1a3453e91ac727" +source = "git+https://github.com/lambdaclass/cairo_native.git?rev=c2644a9f32169c6364e7dfb29fc3f5f1c4620e89#c2644a9f32169c6364e7dfb29fc3f5f1c4620e89" dependencies = [ "aquamarine", "ark-ec 0.5.0", @@ -11829,7 +11829,7 @@ checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" [[package]] name = "sierra-emu" version = "0.8.0" -source = "git+https://github.com/lambdaclass/cairo_native.git?rev=0a7b6ae51823f541bc140808dd1a3453e91ac727#0a7b6ae51823f541bc140808dd1a3453e91ac727" +source = "git+https://github.com/lambdaclass/cairo_native.git?rev=c2644a9f32169c6364e7dfb29fc3f5f1c4620e89#c2644a9f32169c6364e7dfb29fc3f5f1c4620e89" dependencies = [ "cairo-lang-compiler", "cairo-lang-filesystem", diff --git a/Cargo.toml b/Cargo.toml index b691e5f6c23..d5310a49128 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -231,8 +231,8 @@ cairo-lang-sierra = "2.14.1-dev.1" cairo-lang-sierra-to-casm = "2.14.1-dev.1" cairo-lang-starknet-classes = "2.14.1-dev.1" cairo-lang-utils = "2.14.1-dev.1" -cairo-native = { git = "https://github.com/lambdaclass/cairo_native.git", rev = "0a7b6ae51823f541bc140808dd1a3453e91ac727" } -sierra-emu = { git = "https://github.com/lambdaclass/cairo_native.git", rev = "0a7b6ae51823f541bc140808dd1a3453e91ac727" } +cairo-native = { git = "https://github.com/lambdaclass/cairo_native.git", rev = "c2644a9f32169c6364e7dfb29fc3f5f1c4620e89" } +sierra-emu = { git = "https://github.com/lambdaclass/cairo_native.git", rev = "c2644a9f32169c6364e7dfb29fc3f5f1c4620e89" } cairo-vm = "3.0.0" 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 fa6997c456c..5bb8b04b8e4 100644 --- a/crates/blockifier/src/execution/native/syscall_handler.rs +++ b/crates/blockifier/src/execution/native/syscall_handler.rs @@ -8,6 +8,7 @@ use cairo_native::starknet::{ BlockInfo, ExecutionInfo, ExecutionInfoV2, + ExecutionInfoV3, Secp256k1Point, Secp256r1Point, StarknetSyscallHandler, @@ -319,6 +320,15 @@ impl StarknetSyscallHandler for &mut NativeSyscallHandler<'_> { }) } + fn get_execution_info_v3( + &mut self, + _remaining_gas: &mut u64, + ) -> SyscallResult { + // There is no need to implement it now. Once we + // actually need it we can take it from upstream. + todo!() + } + fn deploy( &mut self, class_hash: Felt,