From f3a3979734156a3479a591a29c13d04f700aef4a Mon Sep 17 00:00:00 2001 From: Esteve Soler Arderiu Date: Tue, 19 Mar 2024 09:36:56 +0000 Subject: [PATCH 1/2] Update cairo native code. --- Cargo.lock | 556 ++++++++++++------------- Cargo.toml | 2 +- src/execution/execution_entry_point.rs | 11 +- src/syscalls/native_syscall_handler.rs | 26 +- 4 files changed, 277 insertions(+), 318 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index b0211fd6e..06b3f5b86 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -19,9 +19,9 @@ checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" [[package]] name = "aes" -version = "0.8.4" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" +checksum = "ac1f845298e95f983ff1944b728ae08b8cebab80d684f0a832ed0fc74dfa27e2" dependencies = [ "cfg-if", "cipher", @@ -30,9 +30,9 @@ dependencies = [ [[package]] name = "ahash" -version = "0.7.8" +version = "0.7.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "891477e0c6a8957309ee5c45a6368af3ae14bb510732d2684ffa19af310920f9" +checksum = "5a824f2aa7e75a0c98c5a504fceb80649e9c35265d44525b5f94de4771a395cd" dependencies = [ "getrandom", "once_cell", @@ -41,9 +41,9 @@ dependencies = [ [[package]] name = "ahash" -version = "0.8.9" +version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d713b3834d76b85304d4d525563c1276e2e30dc97cc67bfb4585a4a29fc2c89f" +checksum = "77c3a9648d43b9cd48db467b3f87fdd6e146bcc88ab0180006cef2179fe11d01" dependencies = [ "cfg-if", "once_cell", @@ -83,9 +83,9 @@ dependencies = [ [[package]] name = "anstream" -version = "0.6.12" +version = "0.6.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96b09b5178381e0874812a9b157f7fe84982617e48f71f4e3235482775e5b540" +checksum = "6e2e1ebcb11de5c03c67de28a7df593d32191b44939c482e97702baaaa6ab6a5" dependencies = [ "anstyle", "anstyle-parse", @@ -131,9 +131,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.80" +version = "1.0.79" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ad32ce52e4161730f7098c077cd2ed6229b5804ccf99e5366be1ab72a98b4e1" +checksum = "080e9890a082662b09c1ad45f567faeeb47f22b5fb23895fbe1e651e718e25ca" [[package]] name = "arbitrary" @@ -154,7 +154,7 @@ dependencies = [ "derivative", "hashbrown 0.13.2", "itertools 0.10.5", - "num-traits 0.2.18", + "num-traits 0.2.17", "zeroize", ] @@ -172,7 +172,7 @@ dependencies = [ "digest", "itertools 0.10.5", "num-bigint", - "num-traits 0.2.18", + "num-traits 0.2.17", "paste", "rustc_version", "zeroize", @@ -195,7 +195,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7abe79b0e4288889c4574159ab790824d0033b9fdcb2a112a3182fac2e514565" dependencies = [ "num-bigint", - "num-traits 0.2.18", + "num-traits 0.2.17", "proc-macro2", "quote", "syn 1.0.109", @@ -265,7 +265,7 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94893f1e0c6eeab764ade8dc4c0db24caf4fe7cbbaafc0eba0a9030f447b5185" dependencies = [ - "num-traits 0.2.18", + "num-traits 0.2.17", "rand", ] @@ -298,7 +298,7 @@ checksum = "c980ee35e870bd1a4d2c8294d4c04d0499e67bca1e4b5cefcc693c2fa00caea9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.51", + "syn 2.0.48", ] [[package]] @@ -309,7 +309,7 @@ checksum = "823b8bb275161044e2ac7a25879cb3e2480cb403e3943022c7c769c599b756aa" dependencies = [ "proc-macro2", "quote", - "syn 2.0.51", + "syn 2.0.48", ] [[package]] @@ -365,7 +365,7 @@ checksum = "a6773ddc0eafc0e509fb60e48dff7f450f8e674a0686ae8605e8d9901bd5eefa" dependencies = [ "num-bigint", "num-integer", - "num-traits 0.2.18", + "num-traits 0.2.17", "serde", ] @@ -406,7 +406,7 @@ dependencies = [ "regex", "rustc-hash", "shlex", - "syn 2.0.51", + "syn 2.0.48", "which", ] @@ -429,7 +429,7 @@ dependencies = [ "regex", "rustc-hash", "shlex", - "syn 2.0.51", + "syn 2.0.48", "which", ] @@ -500,14 +500,14 @@ dependencies = [ "cairo-vm 0.9.2", "ctor", "derive_more", - "indexmap 2.2.3", + "indexmap 2.2.2", "itertools 0.10.5", "keccak", "log", "memoize", "num-bigint", "num-integer", - "num-traits 0.2.18", + "num-traits 0.2.17", "phf", "serde", "serde_json", @@ -521,9 +521,9 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.15.3" +version = "3.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ea184aa71bb362a1157c896979544cc23974e08fd265f29ea96b59f0b4a555b" +checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec" [[package]] name = "byte-slice-cast" @@ -609,7 +609,7 @@ dependencies = [ "lazy_static", "num-bigint", "num-integer", - "num-traits 0.2.18", + "num-traits 0.2.17", "serde", ] @@ -622,7 +622,7 @@ dependencies = [ "cairo-lang-utils", "indoc", "num-bigint", - "num-traits 0.2.18", + "num-traits 0.2.17", "parity-scale-codec", "serde", ] @@ -730,7 +730,7 @@ dependencies = [ "itertools 0.11.0", "log", "num-bigint", - "num-traits 0.2.18", + "num-traits 0.2.17", "once_cell", "salsa", "smol_str", @@ -750,7 +750,7 @@ dependencies = [ "colored", "itertools 0.11.0", "num-bigint", - "num-traits 0.2.18", + "num-traits 0.2.17", "salsa", "smol_str", "unescaper", @@ -783,7 +783,7 @@ checksum = "fef002aac874d76492eb9577dab663f9a84fe4584b4215c7ebfda7d025fcadae" dependencies = [ "cairo-lang-debug", "quote", - "syn 2.0.51", + "syn 2.0.48", ] [[package]] @@ -824,7 +824,7 @@ dependencies = [ "keccak", "num-bigint", "num-integer", - "num-traits 0.2.18", + "num-traits 0.2.17", "smol_str", "starknet-crypto 0.6.1", "thiserror", @@ -849,7 +849,7 @@ dependencies = [ "indoc", "itertools 0.11.0", "num-bigint", - "num-traits 0.2.18", + "num-traits 0.2.17", "once_cell", "salsa", "smol_str", @@ -871,7 +871,7 @@ dependencies = [ "lalrpop", "lalrpop-util", "num-bigint", - "num-traits 0.2.18", + "num-traits 0.2.17", "regex", "salsa", "serde", @@ -892,7 +892,7 @@ dependencies = [ "cairo-lang-sierra-type-size", "cairo-lang-utils", "itertools 0.11.0", - "num-traits 0.2.18", + "num-traits 0.2.17", "thiserror", ] @@ -907,7 +907,7 @@ dependencies = [ "cairo-lang-sierra-type-size", "cairo-lang-utils", "itertools 0.11.0", - "num-traits 0.2.18", + "num-traits 0.2.17", "thiserror", ] @@ -951,7 +951,7 @@ dependencies = [ "indoc", "itertools 0.11.0", "num-bigint", - "num-traits 0.2.18", + "num-traits 0.2.17", "thiserror", ] @@ -993,7 +993,7 @@ dependencies = [ "itertools 0.11.0", "num-bigint", "num-integer", - "num-traits 0.2.18", + "num-traits 0.2.17", "once_cell", "serde", "serde_json", @@ -1013,7 +1013,7 @@ dependencies = [ "cairo-lang-filesystem", "cairo-lang-utils", "num-bigint", - "num-traits 0.2.18", + "num-traits 0.2.17", "salsa", "smol_str", "unescaper", @@ -1021,9 +1021,9 @@ dependencies = [ [[package]] name = "cairo-lang-syntax-codegen" -version = "2.5.4" +version = "2.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9dab4d07bd78658f0fdc3fd20f1236bc3e6ebdd8a8fc72ece95a5dd03b7a09da" +checksum = "70e2d692eae4bb4179a4a1148fd5eb738a91653d86750c813658ffad4a99fa97" dependencies = [ "genco", "xshell", @@ -1052,7 +1052,7 @@ dependencies = [ "indoc", "itertools 0.11.0", "num-bigint", - "num-traits 0.2.18", + "num-traits 0.2.17", "serde", ] @@ -1063,10 +1063,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "12d0939f42d40fb1d975cae073d7d4f82d83de4ba2149293115525245425f909" dependencies = [ "hashbrown 0.14.3", - "indexmap 2.2.3", + "indexmap 2.2.2", "itertools 0.11.0", "num-bigint", - "num-traits 0.2.18", + "num-traits 0.2.17", "schemars", "serde", ] @@ -1074,7 +1074,7 @@ dependencies = [ [[package]] name = "cairo-native" version = "0.1.0" -source = "git+https://github.com/lambdaclass/cairo_native?rev=baf57d2dde0036ac4848fc40c672826fb7ffcde4#baf57d2dde0036ac4848fc40c672826fb7ffcde4" +source = "git+https://github.com/lambdaclass/cairo_native?rev=0f104b644f38b4cafa2a598055efc48b5b53bd62#0f104b644f38b4cafa2a598055efc48b5b53bd62" dependencies = [ "anyhow", "bumpalo", @@ -1107,7 +1107,7 @@ dependencies = [ "melior", "mlir-sys", "num-bigint", - "num-traits 0.2.18", + "num-traits 0.2.17", "starknet-types-core", "tempfile", "thiserror", @@ -1118,13 +1118,13 @@ dependencies = [ [[package]] name = "cairo-native-runtime" version = "0.1.0" -source = "git+https://github.com/lambdaclass/cairo_native?rev=baf57d2dde0036ac4848fc40c672826fb7ffcde4#baf57d2dde0036ac4848fc40c672826fb7ffcde4" +source = "git+https://github.com/lambdaclass/cairo_native?rev=0f104b644f38b4cafa2a598055efc48b5b53bd62#0f104b644f38b4cafa2a598055efc48b5b53bd62" dependencies = [ "cairo-lang-runner", "lazy_static", "libc", "starknet-crypto 0.6.1", - "starknet-curve 0.4.1", + "starknet-curve 0.4.0", "starknet-types-core", ] @@ -1148,14 +1148,14 @@ dependencies = [ "num-bigint", "num-integer", "num-prime", - "num-traits 0.2.18", + "num-traits 0.2.17", "rand", "serde", "serde_json", "sha2", "sha3", "starknet-crypto 0.6.1", - "starknet-curve 0.4.1", + "starknet-curve 0.4.0", "thiserror-no-std", ] @@ -1181,7 +1181,7 @@ dependencies = [ "num-bigint", "num-integer", "num-prime", - "num-traits 0.2.18", + "num-traits 0.2.17", "rand", "serde", "serde_json", @@ -1195,10 +1195,11 @@ dependencies = [ [[package]] name = "cc" -version = "1.0.88" +version = "1.0.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02f341c093d19155a6e41631ce5971aac4e9a868262212153124c15fa22d1cdc" +checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" dependencies = [ + "jobserver", "libc", ] @@ -1219,15 +1220,15 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "chrono" -version = "0.4.34" +version = "0.4.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5bc015644b92d5890fab7489e49d21f879d5c990186827d42ec511919404f38b" +checksum = "9f13690e35a5e4ace198e7beea2895d29f3a9cc55015fcebe6336bd2010af9eb" dependencies = [ "android-tzdata", "iana-time-zone", - "num-traits 0.2.18", + "num-traits 0.2.17", "serde", - "windows-targets 0.52.3", + "windows-targets 0.52.0", ] [[package]] @@ -1253,9 +1254,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.1" +version = "4.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c918d541ef2913577a0f9566e9ce27cb35b6df072075769e0b26cb5a554520da" +checksum = "949626d00e063efc93b6dca932419ceb5432f99769911c0b995f7e884c778813" dependencies = [ "clap_builder", "clap_derive", @@ -1263,9 +1264,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.1" +version = "4.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f3e7391dad68afb0c2ede1bf619f579a3dc9c2ec67f089baa397123a2f3d1eb" +checksum = "ae129e2e766ae0ec03484e609954119f123cc1fe650337e155d03b022f24f7b4" dependencies = [ "anstream", "anstyle", @@ -1276,14 +1277,14 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.5.0" +version = "4.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "307bc0538d5f0f83b8248db3087aa92fe504e4691294d0c96c0eabc33f47ba47" +checksum = "90239a040c80f5e14809ca132ddc4176ab33d5e17e49691793296e3fcb34d72f" dependencies = [ - "heck 0.4.1", + "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.51", + "syn 2.0.48", ] [[package]] @@ -1436,9 +1437,9 @@ dependencies = [ [[package]] name = "crc32fast" -version = "1.4.0" +version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3855a8a784b474f333699ef2bbca9db2c4a1f6d9088a90a2d25b1eb53111eaa" +checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" dependencies = [ "cfg-if", ] @@ -1484,7 +1485,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "30d2b3721e861707777e3195b0158f950ae6dc4a27e4d02ff9f67e3eb3de199e" dependencies = [ "quote", - "syn 2.0.51", + "syn 2.0.48", ] [[package]] @@ -1508,12 +1509,12 @@ dependencies = [ [[package]] name = "darling" -version = "0.20.8" +version = "0.20.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54e36fcd13ed84ffdfda6f5be89b31287cbb80c439841fe69e04841435464391" +checksum = "fc5d6b04b3fd0ba9926f945895de7d806260a2d7431ba82e7edaecb043c4c6b8" dependencies = [ - "darling_core 0.20.8", - "darling_macro 0.20.8", + "darling_core 0.20.5", + "darling_macro 0.20.5", ] [[package]] @@ -1532,16 +1533,16 @@ dependencies = [ [[package]] name = "darling_core" -version = "0.20.8" +version = "0.20.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c2cf1c23a687a1feeb728783b993c4e1ad83d99f351801977dd809b48d0a70f" +checksum = "04e48a959bcd5c761246f5d090ebc2fbf7b9cd527a492b07a67510c108f1e7e3" dependencies = [ "fnv", "ident_case", "proc-macro2", "quote", "strsim 0.10.0", - "syn 2.0.51", + "syn 2.0.48", ] [[package]] @@ -1557,13 +1558,13 @@ dependencies = [ [[package]] name = "darling_macro" -version = "0.20.8" +version = "0.20.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a668eda54683121533a393014d8692171709ff57a7d61f187b6e782719f8933f" +checksum = "1d1545d67a2149e1d93b7e5c7752dce5a7426eb5d1357ddcfd89336b94444f77" dependencies = [ - "darling_core 0.20.8", + "darling_core 0.20.5", "quote", - "syn 2.0.51", + "syn 2.0.48", ] [[package]] @@ -1669,9 +1670,9 @@ dependencies = [ [[package]] name = "deunicode" -version = "1.4.3" +version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6e854126756c496b8c81dec88f9a706b15b875c5849d4097a3854476b9fdf94" +checksum = "3ae2a35373c5c74340b79ae6780b498b2b183915ec5dacf263aac5a099bf485a" [[package]] name = "diff" @@ -1720,9 +1721,9 @@ checksum = "77c90badedccf4105eca100756a0b1289e191f6fcbdadd3cee1d2f614f97da8f" [[package]] name = "dyn-clone" -version = "1.0.17" +version = "1.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d6ef0072f8a535281e4876be788938b528e9a1d43900b82c2569af7da799125" +checksum = "545b22097d44f8a9581187cdf93de7a71e4722bf51200cfaba810865b49a495d" [[package]] name = "ecdsa" @@ -1747,14 +1748,14 @@ dependencies = [ "enum-ordinalize", "proc-macro2", "quote", - "syn 2.0.51", + "syn 2.0.48", ] [[package]] name = "either" -version = "1.10.0" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11157ac094ffbdde99aa67b23417ebdd801842852b500e395a45a9c0aac03e4a" +checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" [[package]] name = "elliptic-curve" @@ -1823,7 +1824,7 @@ checksum = "0d28318a75d4aead5c4db25382e8ef717932d0346600cacae6357eb5941bc5ff" dependencies = [ "proc-macro2", "quote", - "syn 2.0.51", + "syn 2.0.48", ] [[package]] @@ -2033,7 +2034,7 @@ version = "0.4.0" dependencies = [ "cairo-vm 1.0.0-rc1", "honggfuzz", - "num-traits 0.2.18", + "num-traits 0.2.17", "serde_json", "starknet_api", "starknet_in_rust", @@ -2059,7 +2060,7 @@ checksum = "d4cf186fea4af17825116f72932fe52cce9a13bae39ff63b4dc0cfdb3fb4bde1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.51", + "syn 2.0.48", ] [[package]] @@ -2143,7 +2144,7 @@ dependencies = [ "futures-sink", "futures-util", "http", - "indexmap 2.2.3", + "indexmap 2.2.2", "slab", "tokio", "tokio-util", @@ -2156,7 +2157,7 @@ version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" dependencies = [ - "ahash 0.7.8", + "ahash 0.7.7", ] [[package]] @@ -2165,7 +2166,7 @@ version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e" dependencies = [ - "ahash 0.8.9", + "ahash 0.8.7", ] [[package]] @@ -2174,7 +2175,7 @@ version = "0.14.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" dependencies = [ - "ahash 0.8.9", + "ahash 0.8.7", "allocator-api2", "serde", ] @@ -2194,11 +2195,17 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" +[[package]] +name = "heck" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" + [[package]] name = "hermit-abi" -version = "0.3.8" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "379dada1584ad501b383485dd706b8afb7a70fcbc7f4da7d780638a5a6124a60" +checksum = "5d3d0e0f38255e7fa3cf31335b3a56f05febd18025f4db5ef7a0cfb4f8da651f" [[package]] name = "hex" @@ -2312,7 +2319,7 @@ dependencies = [ "futures-util", "http", "hyper", - "rustls 0.21.10", + "rustls", "tokio", "tokio-rustls", ] @@ -2419,9 +2426,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.2.3" +version = "2.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "233cf39063f058ea2caae4091bf4a3ef70a653afbc026f5c4a4135d114e3c177" +checksum = "824b2ae422412366ba479e8111fd301f7b5faece8149317bb81925979a53f520" dependencies = [ "equivalent", "hashbrown 0.14.3", @@ -2430,9 +2437,9 @@ dependencies = [ [[package]] name = "indicatif" -version = "0.17.8" +version = "0.17.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "763a5a8f45087d6bcea4222e7b72c291a054edf80e4ef6efd2a4979878c7bea3" +checksum = "fb28741c9db9a713d93deb3bb9515c20788cef5815265bee4980e87bde7e0f25" dependencies = [ "console", "instant", @@ -2473,12 +2480,12 @@ checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3" [[package]] name = "is-terminal" -version = "0.4.12" +version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f23ff5ef2b80d608d61efee834934d862cd92461afc0560dedf493e4c033738b" +checksum = "0bad00257d07be169d870ab665980b06cdb366d792ad690bf2e76876dc503455" dependencies = [ "hermit-abi", - "libc", + "rustix", "windows-sys 0.52.0", ] @@ -2515,11 +2522,20 @@ version = "1.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c" +[[package]] +name = "jobserver" +version = "0.1.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c37f63953c4c63420ed5fd3d6d398c719489b9f872b9fa683262f8edd363c7d" +dependencies = [ + "libc", +] + [[package]] name = "js-sys" -version = "0.3.68" +version = "0.3.67" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "406cda4b368d531c842222cf9d2600a9a4acce8d29423695379c6868a143a9ee" +checksum = "9a1d36f1235bc969acba30b7f5990b864423a6068a10f7c90ae8f0112e3a59d1" dependencies = [ "wasm-bindgen", ] @@ -2764,7 +2780,7 @@ dependencies = [ "proc-macro2", "quote", "regex", - "syn 2.0.51", + "syn 2.0.48", "tblgen", "unindent", ] @@ -2876,7 +2892,7 @@ dependencies = [ "matrixmultiply", "num-complex", "num-integer", - "num-traits 0.2.18", + "num-traits 0.2.17", "rawpointer", ] @@ -2914,7 +2930,7 @@ checksum = "608e7659b5c3d7cba262d894801b9ec9d00de989e8a82bd4bef91d08da45cdc0" dependencies = [ "autocfg", "num-integer", - "num-traits 0.2.18", + "num-traits 0.2.17", "rand", "serde", ] @@ -2926,7 +2942,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b6b19411a9719e753aff12e5187b74d60d3dc449ec3f4dc21e3989c3f554bc95" dependencies = [ "autocfg", - "num-traits 0.2.18", + "num-traits 0.2.17", ] [[package]] @@ -2937,11 +2953,12 @@ checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" [[package]] name = "num-integer" -version = "0.1.46" +version = "0.1.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" +checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" dependencies = [ - "num-traits 0.2.18", + "autocfg", + "num-traits 0.2.17", ] [[package]] @@ -2952,7 +2969,7 @@ checksum = "64a5fe11d4135c3bcdf3a95b18b194afa9608a5f6ff034f5d857bc9a27fb0119" dependencies = [ "num-bigint", "num-integer", - "num-traits 0.2.18", + "num-traits 0.2.17", ] [[package]] @@ -2967,7 +2984,7 @@ dependencies = [ "num-bigint", "num-integer", "num-modular", - "num-traits 0.2.18", + "num-traits 0.2.17", "rand", ] @@ -2977,14 +2994,14 @@ version = "0.1.43" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "92e5113e9fd4cc14ded8e499429f396a20f98c772a47cc8622a736e1ec843c31" dependencies = [ - "num-traits 0.2.18", + "num-traits 0.2.17", ] [[package]] name = "num-traits" -version = "0.2.18" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a" +checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" dependencies = [ "autocfg", ] @@ -3044,7 +3061,7 @@ version = "2.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "68f19d67e5a2795c94e73e0bb1cc1a7edeb2e28efd39e2e1c9b7a40c1108b11c" dependencies = [ - "num-traits 0.2.18", + "num-traits 0.2.17", ] [[package]] @@ -3202,7 +3219,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e1d3afd2628e69da2be385eb6f2fd57c8ac7977ceeff6dc166ff1657b0e386a9" dependencies = [ "fixedbitset", - "indexmap 2.2.3", + "indexmap 2.2.2", ] [[package]] @@ -3235,7 +3252,7 @@ dependencies = [ "phf_shared 0.11.2", "proc-macro2", "quote", - "syn 2.0.51", + "syn 2.0.48", ] [[package]] @@ -3286,9 +3303,9 @@ dependencies = [ [[package]] name = "pkg-config" -version = "0.3.30" +version = "0.3.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" +checksum = "2900ede94e305130c13ddd391e0ab7cbaeb783945ae07a279c268cb05109c6cb" [[package]] name = "plist" @@ -3297,7 +3314,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e5699cc8a63d1aa2b1ee8e12b9ad70ac790d65788cd36101fa37f87ea46c4cef" dependencies = [ "base64 0.21.7", - "indexmap 2.2.3", + "indexmap 2.2.2", "line-wrap", "quick-xml", "serde", @@ -3355,7 +3372,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a41cf62165e97c7f814d2221421dbb9afcbcdb0a88068e5ea206e19951c2cbb5" dependencies = [ "proc-macro2", - "syn 2.0.51", + "syn 2.0.48", ] [[package]] @@ -3611,7 +3628,7 @@ dependencies = [ "once_cell", "percent-encoding", "pin-project-lite", - "rustls 0.21.10", + "rustls", "rustls-pemfile", "serde", "serde_json", @@ -3625,7 +3642,7 @@ dependencies = [ "wasm-bindgen", "wasm-bindgen-futures", "web-sys", - "webpki-roots 0.25.4", + "webpki-roots", "winreg", ] @@ -3641,17 +3658,16 @@ dependencies = [ [[package]] name = "ring" -version = "0.17.8" +version = "0.17.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d" +checksum = "688c63d65483050968b2a8937f7995f443e27041a0f7700aa59b0822aedebb74" dependencies = [ "cc", - "cfg-if", "getrandom", "libc", "spin 0.9.8", "untrusted", - "windows-sys 0.52.0", + "windows-sys 0.48.0", ] [[package]] @@ -3678,7 +3694,7 @@ dependencies = [ "pretty_assertions_sorted", "serde", "serde_json", - "serde_with 3.6.1", + "serde_with 3.6.0", "starknet", "starknet_api", "starknet_in_rust", @@ -3735,24 +3751,10 @@ checksum = "f9d5a6813c0759e4609cd494e8e725babae6a2ca7b62a5536a13daaec6fcb7ba" dependencies = [ "log", "ring", - "rustls-webpki 0.101.7", + "rustls-webpki", "sct", ] -[[package]] -name = "rustls" -version = "0.22.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e87c9956bd9807afa1f77e0f7594af32566e830e088a5576d27c5b6f30f49d41" -dependencies = [ - "log", - "ring", - "rustls-pki-types", - "rustls-webpki 0.102.2", - "subtle", - "zeroize", -] - [[package]] name = "rustls-pemfile" version = "1.0.4" @@ -3762,12 +3764,6 @@ dependencies = [ "base64 0.21.7", ] -[[package]] -name = "rustls-pki-types" -version = "1.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ede67b28608b4c60685c7d54122d4400d90f62b40caee7700e700380a390fa8" - [[package]] name = "rustls-webpki" version = "0.101.7" @@ -3778,17 +3774,6 @@ dependencies = [ "untrusted", ] -[[package]] -name = "rustls-webpki" -version = "0.102.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "faaa0a62740bedb9b2ef5afa303da42764c012f743917351dc9a237ea1663610" -dependencies = [ - "ring", - "rustls-pki-types", - "untrusted", -] - [[package]] name = "rustversion" version = "1.0.14" @@ -3797,9 +3782,9 @@ checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4" [[package]] name = "ryu" -version = "1.0.17" +version = "1.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1" +checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c" [[package]] name = "safemem" @@ -3923,28 +3908,28 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.22" +version = "1.0.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92d43fe69e652f3df9bdc2b85b2854a0825b86e4fb76bc44d945137d053639ca" +checksum = "b97ed7a9823b74f99c7742f5336af7be5ecd3eeafcb1507d1fa93347b1d589b0" [[package]] name = "serde" -version = "1.0.197" +version = "1.0.196" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2" +checksum = "870026e60fa08c69f064aa766c10f10b1d62db9ccd4d0abb206472bee0ce3b32" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.197" +version = "1.0.196" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b" +checksum = "33c85360c95e7d137454dc81d9a4ed2b8efd8fbe19cee57357b32b9771fccb67" dependencies = [ "proc-macro2", "quote", - "syn 2.0.51", + "syn 2.0.48", ] [[package]] @@ -3960,9 +3945,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.114" +version = "1.0.113" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5f09b1bd632ef549eaa9f60a1f8de742bdbc698e6cee2095fc84dde5f549ae0" +checksum = "69801b70b1c3dac963ecb03a364ba0ceda9cf60c71cfe475e99864759c8b8a79" dependencies = [ "itoa", "ryu", @@ -4019,19 +4004,18 @@ dependencies = [ [[package]] name = "serde_with" -version = "3.6.1" +version = "3.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15d167997bd841ec232f5b2b8e0e26606df2e7caa4c31b95ea9ca52b200bd270" +checksum = "1b0ed1662c5a68664f45b76d18deb0e234aff37207086803165c961eb695e981" dependencies = [ "base64 0.21.7", "chrono", "hex", "indexmap 1.9.3", - "indexmap 2.2.3", + "indexmap 2.2.2", "serde", - "serde_derive", "serde_json", - "serde_with_macros 3.6.1", + "serde_with_macros 3.6.0", "time", ] @@ -4041,22 +4025,22 @@ version = "2.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "881b6f881b17d13214e5d494c939ebab463d01264ce1811e9d4ac3a882e7695f" dependencies = [ - "darling 0.20.8", + "darling 0.20.5", "proc-macro2", "quote", - "syn 2.0.51", + "syn 2.0.48", ] [[package]] name = "serde_with_macros" -version = "3.6.1" +version = "3.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "865f9743393e638991566a8b7a479043c2c8da94a33e0a31f18214c9cae0a64d" +checksum = "568577ff0ef47b879f736cd66740e022f3672788cdf002a05a4e609ea5a6fb15" dependencies = [ - "darling 0.20.8", + "darling 0.20.5", "proc-macro2", "quote", - "syn 2.0.51", + "syn 2.0.48", ] [[package]] @@ -4164,12 +4148,12 @@ dependencies = [ [[package]] name = "socket2" -version = "0.5.6" +version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05ffd9c0a93b7543e062e759284fcf5f5e3b098501104bfbdde4d404db792871" +checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9" dependencies = [ "libc", - "windows-sys 0.52.0", + "windows-sys 0.48.0", ] [[package]] @@ -4297,7 +4281,7 @@ dependencies = [ "hmac", "num-bigint", "num-integer", - "num-traits 0.2.18", + "num-traits 0.2.17", "rfc6979", "sha2", "starknet-crypto-codegen", @@ -4317,11 +4301,11 @@ dependencies = [ "hmac", "num-bigint", "num-integer", - "num-traits 0.2.18", + "num-traits 0.2.17", "rfc6979", "sha2", "starknet-crypto-codegen", - "starknet-curve 0.4.1", + "starknet-curve 0.4.0", "starknet-ff", "zeroize", ] @@ -4332,9 +4316,9 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "af6527b845423542c8a16e060ea1bc43f67229848e7cd4c4d80be994a84220ce" dependencies = [ - "starknet-curve 0.4.1", + "starknet-curve 0.4.0", "starknet-ff", - "syn 2.0.51", + "syn 2.0.48", ] [[package]] @@ -4348,9 +4332,9 @@ dependencies = [ [[package]] name = "starknet-curve" -version = "0.4.1" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63c454fecadfb3fe56ee82c405439d663c8a037667cc9d8e4acb1fb17e15b1af" +checksum = "a68a0d87ae56572abf83ddbfd44259a7c90dbeeee1629a1ffe223e7f9a8f3052" dependencies = [ "starknet-ff", ] @@ -4377,7 +4361,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7c5d2964612f0ccd0a700279e33cfc98d6db04f64645ff834f3b7ec422142d7a" dependencies = [ "starknet-core 0.9.0", - "syn 2.0.51", + "syn 2.0.48", ] [[package]] @@ -4428,7 +4412,7 @@ dependencies = [ "lazy_static", "num-bigint", "num-integer", - "num-traits 0.2.18", + "num-traits 0.2.17", "serde", ] @@ -4441,7 +4425,7 @@ dependencies = [ "cairo-lang-starknet", "derive_more", "hex", - "indexmap 2.2.3", + "indexmap 2.2.2", "once_cell", "parity-scale-codec", "parity-scale-codec-derive", @@ -4478,7 +4462,7 @@ dependencies = [ "mimalloc", "num-bigint", "num-integer", - "num-traits 0.2.18", + "num-traits 0.2.17", "once_cell", "p256", "pretty_assertions_sorted", @@ -4564,9 +4548,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.51" +version = "2.0.48" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ab617d94515e94ae53b8406c628598680aa0c9587474ecbe58188f7b345d66c" +checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" dependencies = [ "proc-macro2", "quote", @@ -4581,9 +4565,9 @@ checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" [[package]] name = "syntect" -version = "5.2.0" +version = "5.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "874dcfa363995604333cf947ae9f751ca3af4522c60886774c4963943b4746b1" +checksum = "e02b4b303bf8d08bfeb0445cba5068a3d306b6baece1d5582171a9bf49188f91" dependencies = [ "bincode 1.3.3", "bitflags 1.3.2", @@ -4593,9 +4577,8 @@ dependencies = [ "once_cell", "onig", "plist", - "regex-syntax 0.8.2", + "regex-syntax 0.7.5", "serde", - "serde_derive", "serde_json", "thiserror", "walkdir", @@ -4692,7 +4675,7 @@ dependencies = [ "cfg-if", "proc-macro2", "quote", - "syn 2.0.51", + "syn 2.0.48", ] [[package]] @@ -4703,28 +4686,28 @@ checksum = "5c89e72a01ed4c579669add59014b9a524d609c0c88c6a585ce37485879f6ffb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.51", + "syn 2.0.48", "test-case-core", ] [[package]] name = "thiserror" -version = "1.0.57" +version = "1.0.56" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e45bcbe8ed29775f228095caf2cd67af7a4ccf756ebff23a306bf3e8b47b24b" +checksum = "d54378c645627613241d077a3a79db965db602882668f9136ac42af9ecb730ad" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.57" +version = "1.0.56" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a953cb265bef375dae3de6663da4d3804eee9682ea80d8e2542529b73c531c81" +checksum = "fa0faa943b50f3db30a20aa7e265dbc66076993efed8463e8de414e5d06d3471" dependencies = [ "proc-macro2", "quote", - "syn 2.0.51", + "syn 2.0.48", ] [[package]] @@ -4749,9 +4732,9 @@ dependencies = [ [[package]] name = "thread_local" -version = "1.1.8" +version = "1.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" +checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152" dependencies = [ "cfg-if", "once_cell", @@ -4837,7 +4820,7 @@ checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.51", + "syn 2.0.48", ] [[package]] @@ -4846,7 +4829,7 @@ version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" dependencies = [ - "rustls 0.21.10", + "rustls", "tokio", ] @@ -4866,14 +4849,14 @@ dependencies = [ [[package]] name = "toml" -version = "0.8.10" +version = "0.8.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a9aad4a3066010876e8dcf5a8a06e70a558751117a145c6ce2b82c2e2054290" +checksum = "c6a4b9e8023eb94392d3dca65d717c53abc5dad49c07cb65bb8fcd87115fa325" dependencies = [ "serde", "serde_spanned", "toml_datetime", - "toml_edit 0.22.6", + "toml_edit 0.21.1", ] [[package]] @@ -4891,22 +4874,22 @@ version = "0.19.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" dependencies = [ - "indexmap 2.2.3", + "indexmap 2.2.2", "toml_datetime", - "winnow 0.5.40", + "winnow", ] [[package]] name = "toml_edit" -version = "0.22.6" +version = "0.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c1b5fd4128cc8d3e0cb74d4ed9a9cc7c7284becd4df68f5f940e1ad123606f6" +checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1" dependencies = [ - "indexmap 2.2.3", + "indexmap 2.2.2", "serde", "serde_spanned", "toml_datetime", - "winnow 0.6.2", + "winnow", ] [[package]] @@ -4934,7 +4917,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.51", + "syn 2.0.48", ] [[package]] @@ -5029,18 +5012,18 @@ checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" [[package]] name = "unicode-normalization" -version = "0.1.23" +version = "0.1.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5" +checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" dependencies = [ "tinyvec", ] [[package]] name = "unicode-segmentation" -version = "1.11.0" +version = "1.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202" +checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36" [[package]] name = "unicode-width" @@ -5074,21 +5057,20 @@ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" [[package]] name = "ureq" -version = "2.9.6" +version = "2.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11f214ce18d8b2cbe84ed3aa6486ed3f5b285cf8d8fbdbce9f3f767a724adc35" +checksum = "f8cdd25c339e200129fe4de81451814e5228c9b771d57378817d6117cc2b3f97" dependencies = [ "base64 0.21.7", "flate2", "log", "once_cell", - "rustls 0.22.2", - "rustls-pki-types", - "rustls-webpki 0.102.2", + "rustls", + "rustls-webpki", "serde", "serde_json", "url", - "webpki-roots 0.26.1", + "webpki-roots", ] [[package]] @@ -5163,9 +5145,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.91" +version = "0.2.90" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1e124130aee3fb58c5bdd6b639a0509486b0338acaaae0c84a5124b0f588b7f" +checksum = "b1223296a201415c7fad14792dbefaace9bd52b62d33453ade1c5b5f07555406" dependencies = [ "cfg-if", "wasm-bindgen-macro", @@ -5173,24 +5155,24 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.91" +version = "0.2.90" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9e7e1900c352b609c8488ad12639a311045f40a35491fb69ba8c12f758af70b" +checksum = "fcdc935b63408d58a32f8cc9738a0bffd8f05cc7c002086c6ef20b7312ad9dcd" dependencies = [ "bumpalo", "log", "once_cell", "proc-macro2", "quote", - "syn 2.0.51", + "syn 2.0.48", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.41" +version = "0.4.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "877b9c3f61ceea0e56331985743b13f3d25c406a7098d45180fb5f09bc19ed97" +checksum = "bde2032aeb86bdfaecc8b261eef3cba735cc426c1f3a3416d1e0791be95fc461" dependencies = [ "cfg-if", "js-sys", @@ -5200,9 +5182,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.91" +version = "0.2.90" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b30af9e2d358182b5c7449424f017eba305ed32a7010509ede96cdc4696c46ed" +checksum = "3e4c238561b2d428924c49815533a8b9121c664599558a5d9ec51f8a1740a999" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -5210,28 +5192,28 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.91" +version = "0.2.90" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "642f325be6301eb8107a83d12a8ac6c1e1c54345a7ef1a9261962dfefda09e66" +checksum = "bae1abb6806dc1ad9e560ed242107c0f6c84335f1749dd4e8ddb012ebd5e25a7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.51", + "syn 2.0.48", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.91" +version = "0.2.90" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f186bd2dcf04330886ce82d6f33dd75a7bfcf69ecf5763b89fcde53b6ac9838" +checksum = "4d91413b1c31d7539ba5ef2451af3f0b833a005eb27a631cec32bc0635a8602b" [[package]] name = "web-sys" -version = "0.3.68" +version = "0.3.67" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96565907687f7aceb35bc5fc03770a8a0471d82e479f25832f54a0e3f4b28446" +checksum = "58cd2333b6e0be7a39605f0e255892fd7418a682d8da8fe042fe25128794d2ed" dependencies = [ "js-sys", "wasm-bindgen", @@ -5243,15 +5225,6 @@ version = "0.25.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1" -[[package]] -name = "webpki-roots" -version = "0.26.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3de34ae270483955a94f4b21bdaaeb83d508bb84a01435f393818edb0012009" -dependencies = [ - "rustls-pki-types", -] - [[package]] name = "which" version = "4.4.2" @@ -5301,7 +5274,7 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" dependencies = [ - "windows-targets 0.52.3", + "windows-targets 0.52.0", ] [[package]] @@ -5319,7 +5292,7 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" dependencies = [ - "windows-targets 0.52.3", + "windows-targets 0.52.0", ] [[package]] @@ -5339,17 +5312,17 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.52.3" +version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d380ba1dc7187569a8a9e91ed34b8ccfc33123bbacb8c0aed2d1ad7f3ef2dc5f" +checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd" dependencies = [ - "windows_aarch64_gnullvm 0.52.3", - "windows_aarch64_msvc 0.52.3", - "windows_i686_gnu 0.52.3", - "windows_i686_msvc 0.52.3", - "windows_x86_64_gnu 0.52.3", - "windows_x86_64_gnullvm 0.52.3", - "windows_x86_64_msvc 0.52.3", + "windows_aarch64_gnullvm 0.52.0", + "windows_aarch64_msvc 0.52.0", + "windows_i686_gnu 0.52.0", + "windows_i686_msvc 0.52.0", + "windows_x86_64_gnu 0.52.0", + "windows_x86_64_gnullvm 0.52.0", + "windows_x86_64_msvc 0.52.0", ] [[package]] @@ -5360,9 +5333,9 @@ checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" [[package]] name = "windows_aarch64_gnullvm" -version = "0.52.3" +version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68e5dcfb9413f53afd9c8f86e56a7b4d86d9a2fa26090ea2dc9e40fba56c6ec6" +checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea" [[package]] name = "windows_aarch64_msvc" @@ -5372,9 +5345,9 @@ checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" [[package]] name = "windows_aarch64_msvc" -version = "0.52.3" +version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8dab469ebbc45798319e69eebf92308e541ce46760b49b18c6b3fe5e8965b30f" +checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef" [[package]] name = "windows_i686_gnu" @@ -5384,9 +5357,9 @@ checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" [[package]] name = "windows_i686_gnu" -version = "0.52.3" +version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a4e9b6a7cac734a8b4138a4e1044eac3404d8326b6c0f939276560687a033fb" +checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313" [[package]] name = "windows_i686_msvc" @@ -5396,9 +5369,9 @@ checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" [[package]] name = "windows_i686_msvc" -version = "0.52.3" +version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28b0ec9c422ca95ff34a78755cfa6ad4a51371da2a5ace67500cf7ca5f232c58" +checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a" [[package]] name = "windows_x86_64_gnu" @@ -5408,9 +5381,9 @@ checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" [[package]] name = "windows_x86_64_gnu" -version = "0.52.3" +version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "704131571ba93e89d7cd43482277d6632589b18ecf4468f591fbae0a8b101614" +checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd" [[package]] name = "windows_x86_64_gnullvm" @@ -5420,9 +5393,9 @@ checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" [[package]] name = "windows_x86_64_gnullvm" -version = "0.52.3" +version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42079295511643151e98d61c38c0acc444e52dd42ab456f7ccfd5152e8ecf21c" +checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e" [[package]] name = "windows_x86_64_msvc" @@ -5432,24 +5405,15 @@ checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" [[package]] name = "windows_x86_64_msvc" -version = "0.52.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0770833d60a970638e989b3fa9fd2bb1aaadcf88963d1659fd7d9990196ed2d6" - -[[package]] -name = "winnow" -version = "0.5.40" +version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" -dependencies = [ - "memchr", -] +checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" [[package]] name = "winnow" -version = "0.6.2" +version = "0.5.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a4191c47f15cc3ec71fcb4913cb83d58def65dd3787610213c649283b5ce178" +checksum = "a7cad8365489051ae9f054164e459304af2e7e9bb407c958076c8bf4aef52da5" dependencies = [ "memchr", ] @@ -5526,7 +5490,7 @@ checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.51", + "syn 2.0.48", ] [[package]] @@ -5546,7 +5510,7 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.51", + "syn 2.0.48", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index 7b58a9e18..7c70fbb84 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -40,7 +40,7 @@ cairo-lang-casm = { workspace = true } cairo-lang-sierra = { workspace = true } cairo-lang-starknet = { workspace = true } cairo-lang-utils = { workspace = true } -cairo-native = { git = "https://github.com/lambdaclass/cairo_native", rev = "baf57d2dde0036ac4848fc40c672826fb7ffcde4", optional = true } +cairo-native = { git = "https://github.com/lambdaclass/cairo_native", rev = "0f104b644f38b4cafa2a598055efc48b5b53bd62", optional = true } k256 = "0.13.3" p256 = "0.13.2" sec1 = "0.7.3" diff --git a/src/execution/execution_entry_point.rs b/src/execution/execution_entry_point.rs index f6a651081..113aa6fd8 100644 --- a/src/execution/execution_entry_point.rs +++ b/src/execution/execution_entry_point.rs @@ -687,10 +687,6 @@ impl ExecutionEntryPoint { class_hash: &ClassHash, program_cache: Rc>>, ) -> Result { - use cairo_native::{ - executor::NativeExecutor, metadata::syscall_handler::SyscallHandlerMeta, - }; - use crate::{ syscalls::{ business_logic_syscall_handler::SYSCALL_BASE, @@ -698,6 +694,7 @@ impl ExecutionEntryPoint { }, utils::NATIVE_CONTEXT, }; + use cairo_native::executor::NativeExecutor; // Ensure we're using the global context, if initialized. if let Some(native_context) = NATIVE_CONTEXT.get() { @@ -757,8 +754,6 @@ impl ExecutionEntryPoint { resources_manager: Default::default(), }; - let syscall_meta = SyscallHandlerMeta::new(&mut syscall_handler); - let entry_point_fn = &sierra_program .funcs .iter() @@ -772,13 +767,13 @@ impl ExecutionEntryPoint { entry_point_id, &self.calldata, Some(self.initial_gas), - Some(&syscall_meta), + &mut syscall_handler, ), NativeExecutor::Jit(executor) => executor.invoke_contract_dynamic( entry_point_id, &self.calldata, Some(self.initial_gas), - Some(&syscall_meta), + &mut syscall_handler, ), } .map_err(|e| TransactionError::CustomError(format!("cairo-native error: {:?}", e)))?; diff --git a/src/syscalls/native_syscall_handler.rs b/src/syscalls/native_syscall_handler.rs index badeea73a..76bffb755 100644 --- a/src/syscalls/native_syscall_handler.rs +++ b/src/syscalls/native_syscall_handler.rs @@ -33,7 +33,7 @@ use cairo_native::{ cache::ProgramCache, starknet::{ BlockInfo, ExecutionInfo, ExecutionInfoV2, ResourceBounds, Secp256k1Point, Secp256r1Point, - StarkNetSyscallHandler, SyscallResult, TxInfo, TxV2Info, U256, + StarknetSyscallHandler, SyscallResult, TxInfo, TxV2Info, U256, }, }; use cairo_vm::Felt252; @@ -85,8 +85,8 @@ impl<'a, 'cache, S: StateReader, C: ContractClassCache> NativeSyscallHandler<'a, } } -impl<'a, 'cache, S: StateReader, C: ContractClassCache> StarkNetSyscallHandler - for NativeSyscallHandler<'a, 'cache, S, C> +impl<'a, 'cache, S: StateReader, C: ContractClassCache> StarknetSyscallHandler + for &mut NativeSyscallHandler<'a, 'cache, S, C> { fn get_block_hash( &mut self, @@ -1278,7 +1278,7 @@ mod test { let mut syscall_handler = test_ctx.new_syscall_handler(); let mut gas = 0; - let p = syscall_handler + let p = (&mut syscall_handler) .secp256k1_new( U256 { hi: 0, @@ -1304,7 +1304,7 @@ mod test { let mut syscall_handler = test_ctx.new_syscall_handler(); let mut gas = 0; - let p = syscall_handler + let p = (&mut syscall_handler) .secp256k1_add( Secp256k1Point { x: U256 { @@ -1342,7 +1342,7 @@ mod test { let mut syscall_handler = test_ctx.new_syscall_handler(); let mut gas = 0; - let p = syscall_handler + let p = (&mut syscall_handler) .secp256k1_mul( Secp256k1Point { x: U256 { @@ -1374,7 +1374,7 @@ mod test { let mut syscall_handler = test_ctx.new_syscall_handler(); let mut gas = 0; - let p = syscall_handler + let p = (&mut syscall_handler) .secp256k1_get_point_from_x( U256 { hi: 0, @@ -1397,7 +1397,7 @@ mod test { let mut syscall_handler = test_ctx.new_syscall_handler(); let mut gas = 0; - let (x, y) = syscall_handler + let (x, y) = (&mut syscall_handler) .secp256k1_get_xy( Secp256k1Point { x: U256 { @@ -1424,7 +1424,7 @@ mod test { let mut syscall_handler = test_ctx.new_syscall_handler(); let mut gas = 0; - let p = syscall_handler + let p = (&mut syscall_handler) .secp256r1_new( U256 { hi: 0, @@ -1450,7 +1450,7 @@ mod test { let mut syscall_handler = test_ctx.new_syscall_handler(); let mut gas = 0; - let p = syscall_handler + let p = (&mut syscall_handler) .secp256r1_add( Secp256r1Point { x: U256 { @@ -1488,7 +1488,7 @@ mod test { let mut syscall_handler = test_ctx.new_syscall_handler(); let mut gas = 0; - let p = syscall_handler + let p = (&mut syscall_handler) .secp256r1_mul( Secp256r1Point { x: U256 { @@ -1520,7 +1520,7 @@ mod test { let mut syscall_handler = test_ctx.new_syscall_handler(); let mut gas = 0; - let p = syscall_handler + let p = (&mut syscall_handler) .secp256r1_get_point_from_x( U256 { hi: 0, @@ -1543,7 +1543,7 @@ mod test { let mut syscall_handler = test_ctx.new_syscall_handler(); let mut gas = 0; - let (x, y) = syscall_handler + let (x, y) = (&mut syscall_handler) .secp256r1_get_xy( Secp256r1Point { x: U256 { From 61875f075ebeae695d6fc1956cbda8ce771c72f2 Mon Sep 17 00:00:00 2001 From: Esteve Soler Arderiu Date: Fri, 22 Mar 2024 16:00:20 +0000 Subject: [PATCH 2/2] Update `cairo-native` dependency and fix clippy warnings. --- Cargo.lock | 4 +- Cargo.toml | 2 +- fuzzer/src/main.rs | 2 +- rust-toolchain.toml | 2 +- src/bin/fibonacci.rs | 2 +- src/bin/native_bench.rs | 16 ++--- .../sierra_contract_address.rs | 58 +++++++++---------- src/execution/execution_entry_point.rs | 2 +- src/lib.rs | 4 +- tests/integration_tests/account_panic.rs | 2 +- tests/integration_tests/cairo_1_syscalls.rs | 48 +++++++-------- .../complex_contracts/erc20.rs | 4 +- tests/integration_tests/delegate_call.rs | 2 +- tests/integration_tests/increase_balance.rs | 2 +- tests/integration_tests/internals.rs | 2 +- tests/integration_tests/storage.rs | 2 +- 16 files changed, 77 insertions(+), 77 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 06b3f5b86..55a3ea9f8 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1074,7 +1074,7 @@ dependencies = [ [[package]] name = "cairo-native" version = "0.1.0" -source = "git+https://github.com/lambdaclass/cairo_native?rev=0f104b644f38b4cafa2a598055efc48b5b53bd62#0f104b644f38b4cafa2a598055efc48b5b53bd62" +source = "git+https://github.com/lambdaclass/cairo_native?rev=8f7602cb2a13682345547867a6c91b085a344da6#8f7602cb2a13682345547867a6c91b085a344da6" dependencies = [ "anyhow", "bumpalo", @@ -1118,7 +1118,7 @@ dependencies = [ [[package]] name = "cairo-native-runtime" version = "0.1.0" -source = "git+https://github.com/lambdaclass/cairo_native?rev=0f104b644f38b4cafa2a598055efc48b5b53bd62#0f104b644f38b4cafa2a598055efc48b5b53bd62" +source = "git+https://github.com/lambdaclass/cairo_native?rev=8f7602cb2a13682345547867a6c91b085a344da6#8f7602cb2a13682345547867a6c91b085a344da6" dependencies = [ "cairo-lang-runner", "lazy_static", diff --git a/Cargo.toml b/Cargo.toml index 7c70fbb84..b516f6822 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -40,7 +40,7 @@ cairo-lang-casm = { workspace = true } cairo-lang-sierra = { workspace = true } cairo-lang-starknet = { workspace = true } cairo-lang-utils = { workspace = true } -cairo-native = { git = "https://github.com/lambdaclass/cairo_native", rev = "0f104b644f38b4cafa2a598055efc48b5b53bd62", optional = true } +cairo-native = { git = "https://github.com/lambdaclass/cairo_native", rev = "8f7602cb2a13682345547867a6c91b085a344da6", optional = true } k256 = "0.13.3" p256 = "0.13.2" sec1 = "0.7.3" diff --git a/fuzzer/src/main.rs b/fuzzer/src/main.rs index 61b8daf38..7e2f72b53 100644 --- a/fuzzer/src/main.rs +++ b/fuzzer/src/main.rs @@ -94,7 +94,7 @@ fn main() { .entry_points_by_type() .get(&EntryPointType::External) .unwrap() - .get(0) + .first() .unwrap() .selector(); diff --git a/rust-toolchain.toml b/rust-toolchain.toml index 4da0ec7b8..3ae87dd64 100644 --- a/rust-toolchain.toml +++ b/rust-toolchain.toml @@ -1,4 +1,4 @@ [toolchain] -channel = "1.74.1" +channel = "1.75.0" components = ["rustfmt", "clippy"] profile = "minimal" diff --git a/src/bin/fibonacci.rs b/src/bin/fibonacci.rs index 8003d65a4..67f371223 100644 --- a/src/bin/fibonacci.rs +++ b/src/bin/fibonacci.rs @@ -53,7 +53,7 @@ fn main() { let fib_entrypoint_selector = *entry_points_by_type .get(&EntryPointType::External) .unwrap() - .get(0) + .first() .unwrap() .selector(); diff --git a/src/bin/native_bench.rs b/src/bin/native_bench.rs index 41ecb30a8..f18bf1e4a 100644 --- a/src/bin/native_bench.rs +++ b/src/bin/native_bench.rs @@ -97,7 +97,7 @@ fn bench_fibo(executions: usize, bench_type: BenchType) { let (contract_class, constructor_selector) = match bench_type { BenchType::VM => { let entrypoints = casm_contract_class.clone().entry_points_by_type; - let constructor_selector = entrypoints.external.get(0).unwrap().selector.clone(); + let constructor_selector = entrypoints.external.first().unwrap().selector.clone(); ( CompiledClass::Casm { @@ -113,7 +113,7 @@ fn bench_fibo(executions: usize, bench_type: BenchType) { serde_json::from_slice(sierra_data).unwrap(); let entrypoints = sierra_contract_class.clone().entry_points_by_type; - let constructor_selector = entrypoints.external.get(0).unwrap().selector.clone(); + let constructor_selector = entrypoints.external.first().unwrap().selector.clone(); let sierra_program = sierra_contract_class.extract_sierra_program().unwrap(); let entrypoints = sierra_contract_class.entry_points_by_type; ( @@ -183,7 +183,7 @@ fn bench_fact(executions: usize, bench_type: BenchType) { let (contract_class, constructor_selector) = match bench_type { BenchType::VM => { let entrypoints = casm_contract_class.clone().entry_points_by_type; - let constructor_selector = entrypoints.external.get(0).unwrap().selector.clone(); + let constructor_selector = entrypoints.external.first().unwrap().selector.clone(); ( CompiledClass::Casm { @@ -199,7 +199,7 @@ fn bench_fact(executions: usize, bench_type: BenchType) { serde_json::from_slice(sierra_data).unwrap(); let entrypoints = sierra_contract_class.clone().entry_points_by_type; - let constructor_selector = entrypoints.external.get(0).unwrap().selector.clone(); + let constructor_selector = entrypoints.external.first().unwrap().selector.clone(); let sierra_program = sierra_contract_class.extract_sierra_program().unwrap(); let entrypoints = sierra_contract_class.entry_points_by_type; ( @@ -318,7 +318,7 @@ fn bench_erc20(executions: usize, bench_type: BenchType) { }; let entrypoints = erc20_deployer_class.clone().entry_points_by_type; - let deploy_entrypoint_selector = &entrypoints.external.get(0).unwrap().selector; + let deploy_entrypoint_selector = &entrypoints.external.first().unwrap().selector; // insert deployer and erc20 classes into the cache. contract_class_cache.set_contract_class( @@ -383,7 +383,7 @@ fn bench_erc20(executions: usize, bench_type: BenchType) { .unwrap(); // obtain the address of the deployed erc20 contract - let erc20_address = *call_info.call_info.unwrap().retdata.get(0).unwrap(); + let erc20_address = *call_info.call_info.unwrap().retdata.first().unwrap(); (Address(erc20_address), state) } @@ -399,7 +399,7 @@ fn bench_erc20(executions: usize, bench_type: BenchType) { }; let entrypoints = erc20_deployer_class.clone().entry_points_by_type; - let deploy_entrypoint_selector = &entrypoints.external.get(0).unwrap().selector; + let deploy_entrypoint_selector = &entrypoints.external.first().unwrap().selector; // insert deployer and erc20 classes into the cache. contract_class_cache.set_contract_class( @@ -464,7 +464,7 @@ fn bench_erc20(executions: usize, bench_type: BenchType) { .unwrap(); // obtain the address of the deployed erc20 contract - let erc20_address = *call_info.call_info.unwrap().retdata.get(0).unwrap(); + let erc20_address = *call_info.call_info.unwrap().retdata.first().unwrap(); (Address(erc20_address), state) } diff --git a/src/core/contract_address/sierra_contract_address.rs b/src/core/contract_address/sierra_contract_address.rs index 0a6b5f2a7..e6e7f9b66 100644 --- a/src/core/contract_address/sierra_contract_address.rs +++ b/src/core/contract_address/sierra_contract_address.rs @@ -139,35 +139,6 @@ fn get_contract_entry_points( Ok(entry_points) } -#[cfg(test)] -mod tests { - use crate::core::contract_address::compute_sierra_class_hash; - use cairo_lang_starknet::contract_class::ContractClass as SierraContractClass; - use cairo_vm::Felt252; - use std::{fs::File, io::BufReader}; - - /// Test the correctness of the compute_sierra_class_hash function for a specific testnet contract. - #[test] - fn test_declare_tx_from_testnet() { - let file = File::open("starknet_programs/raw_contract_classes/0x113bf26d112a164297e04381212c9bd7409f07591f0a04f539bdf56693eaaf3.sierra").unwrap(); - // 0x113bf26d112a164297e04381212c9bd7409f07591f0a04f539bdf56693eaaf3 - let reader = BufReader::new(file); - - let sierra_contract_class: SierraContractClass = serde_json::from_reader(reader).unwrap(); - - // this is the class_hash from: https://alpha4.starknet.io/feeder_gateway/get_transaction?transactionHash=0x01b852f1fe2b13db21a44f8884bc4b7760dc277bb3820b970dba929860275617 - let expected_result = Felt252::from_dec_str( - "487202222862199115032202787294865701687663153957776561394399544814644144883", - ) - .unwrap(); - - assert_eq!( - compute_sierra_class_hash(&sierra_contract_class).unwrap(), - expected_result - ) - } -} - struct PythonJsonFormatter; impl Formatter for PythonJsonFormatter { @@ -220,3 +191,32 @@ impl Formatter for PythonJsonFormatter { Ok(()) } } + +#[cfg(test)] +mod tests { + use crate::core::contract_address::compute_sierra_class_hash; + use cairo_lang_starknet::contract_class::ContractClass as SierraContractClass; + use cairo_vm::Felt252; + use std::{fs::File, io::BufReader}; + + /// Test the correctness of the compute_sierra_class_hash function for a specific testnet contract. + #[test] + fn test_declare_tx_from_testnet() { + let file = File::open("starknet_programs/raw_contract_classes/0x113bf26d112a164297e04381212c9bd7409f07591f0a04f539bdf56693eaaf3.sierra").unwrap(); + // 0x113bf26d112a164297e04381212c9bd7409f07591f0a04f539bdf56693eaaf3 + let reader = BufReader::new(file); + + let sierra_contract_class: SierraContractClass = serde_json::from_reader(reader).unwrap(); + + // this is the class_hash from: https://alpha4.starknet.io/feeder_gateway/get_transaction?transactionHash=0x01b852f1fe2b13db21a44f8884bc4b7760dc277bb3820b970dba929860275617 + let expected_result = Felt252::from_dec_str( + "487202222862199115032202787294865701687663153957776561394399544814644144883", + ) + .unwrap(); + + assert_eq!( + compute_sierra_class_hash(&sierra_contract_class).unwrap(), + expected_result + ) + } +} diff --git a/src/execution/execution_entry_point.rs b/src/execution/execution_entry_point.rs index 113aa6fd8..fb50bcb0b 100644 --- a/src/execution/execution_entry_point.rs +++ b/src/execution/execution_entry_point.rs @@ -433,7 +433,7 @@ impl ExecutionEntryPoint { ); // fetch syscall_ptr - let initial_syscall_ptr: Relocatable = match os_context.get(0) { + let initial_syscall_ptr: Relocatable = match os_context.first() { Some(MaybeRelocatable::RelocatableValue(ptr)) => ptr.to_owned(), _ => return Err(TransactionError::NotARelocatableValue), }; diff --git a/src/lib.rs b/src/lib.rs index 2697bb1b1..de7f4a911 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -353,7 +353,7 @@ mod test { let contract_class: CasmContractClass = serde_json::from_slice(program_data).unwrap(); let entrypoints = contract_class.clone().entry_points_by_type; - let entrypoint_selector = Felt252::from(&entrypoints.external.get(0).unwrap().selector); + let entrypoint_selector = Felt252::from(&entrypoints.external.first().unwrap().selector); let contract_class_cache = PermanentContractClassCache::default(); @@ -460,7 +460,7 @@ mod test { let program_data = include_bytes!("../starknet_programs/cairo1/fibonacci.casm"); let contract_class: CasmContractClass = serde_json::from_slice(program_data).unwrap(); let entrypoints = contract_class.clone().entry_points_by_type; - let entrypoint_selector = Felt252::from(&entrypoints.external.get(0).unwrap().selector); + let entrypoint_selector = Felt252::from(&entrypoints.external.first().unwrap().selector); let contract_class_cache = PermanentContractClassCache::default(); diff --git a/tests/integration_tests/account_panic.rs b/tests/integration_tests/account_panic.rs index 51e62359b..e498d1437 100644 --- a/tests/integration_tests/account_panic.rs +++ b/tests/integration_tests/account_panic.rs @@ -84,7 +84,7 @@ fn account_panic() { let selector_contract = &contract_class .entry_points_by_type .external - .get(0) + .first() .unwrap() .selector; // calldata of contract_a is 1 value. diff --git a/tests/integration_tests/cairo_1_syscalls.rs b/tests/integration_tests/cairo_1_syscalls.rs index 8899d695e..0199f54b3 100644 --- a/tests/integration_tests/cairo_1_syscalls.rs +++ b/tests/integration_tests/cairo_1_syscalls.rs @@ -60,9 +60,9 @@ fn storage_write_read() { let contract_class: CasmContractClass = serde_json::from_slice(program_data).unwrap(); let entrypoints = contract_class.clone().entry_points_by_type; - let constructor_entrypoint_selector = &entrypoints.constructor.get(0).unwrap().selector; + let constructor_entrypoint_selector = &entrypoints.constructor.first().unwrap().selector; let get_balance_entrypoint_selector = &entrypoints.external.get(1).unwrap().selector; - let increase_balance_entrypoint_selector = &entrypoints.external.get(0).unwrap().selector; + let increase_balance_entrypoint_selector = &entrypoints.external.first().unwrap().selector; // Create state reader with class hash data let contract_class_cache = PermanentContractClassCache::default(); @@ -215,7 +215,7 @@ fn library_call() { let contract_class: CasmContractClass = serde_json::from_slice(program_data).unwrap(); let entrypoints = contract_class.clone().entry_points_by_type; - let entrypoint_selector = &entrypoints.external.get(0).unwrap().selector; + let entrypoint_selector = &entrypoints.external.first().unwrap().selector; // Create state reader with class hash data let contract_class_cache = PermanentContractClassCache::default(); @@ -423,7 +423,7 @@ fn call_contract_storage_write_read() { let simple_wallet_constructor_entrypoint_selector = simple_wallet_contract_class .entry_points_by_type .constructor - .get(0) + .first() .unwrap() .selector .clone(); @@ -592,7 +592,7 @@ fn emit_event() { let program_data = include_bytes!("../../starknet_programs/cairo1/emit_event.casm"); let contract_class: CasmContractClass = serde_json::from_slice(program_data).unwrap(); let entrypoints = contract_class.clone().entry_points_by_type; - let entrypoint_selector = &entrypoints.external.get(0).unwrap().selector; + let entrypoint_selector = &entrypoints.external.first().unwrap().selector; // Create state reader with class hash data let contract_class_cache = PermanentContractClassCache::default(); @@ -710,7 +710,7 @@ fn deploy_cairo1_from_cairo1() { let program_data = include_bytes!("../../starknet_programs/cairo1/deploy.casm"); let contract_class: CasmContractClass = serde_json::from_slice(program_data).unwrap(); let entrypoints = contract_class.clone().entry_points_by_type; - let entrypoint_selector = &entrypoints.external.get(0).unwrap().selector; + let entrypoint_selector = &entrypoints.external.first().unwrap().selector; // Create state reader with class hash data let contract_class_cache = PermanentContractClassCache::default(); @@ -824,7 +824,7 @@ fn deploy_cairo0_from_cairo1_without_constructor() { include_bytes!("../../starknet_programs/cairo1/deploy_without_constructor.casm"); let contract_class: CasmContractClass = serde_json::from_slice(program_data).unwrap(); let entrypoints = contract_class.clone().entry_points_by_type; - let entrypoint_selector = &entrypoints.external.get(0).unwrap().selector; + let entrypoint_selector = &entrypoints.external.first().unwrap().selector; // Create state reader with class hash data let contract_class_cache = PermanentContractClassCache::default(); @@ -935,7 +935,7 @@ fn deploy_cairo0_from_cairo1_with_constructor() { include_bytes!("../../starknet_programs/cairo1/deploy_with_constructor.casm"); let contract_class: CasmContractClass = serde_json::from_slice(program_data).unwrap(); let entrypoints = contract_class.clone().entry_points_by_type; - let entrypoint_selector = &entrypoints.external.get(0).unwrap().selector; + let entrypoint_selector = &entrypoints.external.first().unwrap().selector; // Create state reader with class hash data let contract_class_cache = PermanentContractClassCache::default(); @@ -1047,7 +1047,7 @@ fn deploy_cairo0_and_invoke() { include_bytes!("../../starknet_programs/cairo1/deploy_without_constructor.casm"); let contract_class: CasmContractClass = serde_json::from_slice(program_data).unwrap(); let entrypoints = contract_class.clone().entry_points_by_type; - let entrypoint_selector = &entrypoints.external.get(0).unwrap().selector; + let entrypoint_selector = &entrypoints.external.first().unwrap().selector; // Create state reader with class hash data let contract_class_cache = PermanentContractClassCache::default(); @@ -1187,7 +1187,7 @@ fn test_send_message_to_l1_syscall() { let program_data = include_bytes!("../../starknet_programs/cairo1/send_message_to_l1.casm"); let contract_class: CasmContractClass = serde_json::from_slice(program_data).unwrap(); let entrypoints = contract_class.clone().entry_points_by_type; - let external_entrypoint_selector = &entrypoints.external.get(0).unwrap().selector; + let external_entrypoint_selector = &entrypoints.external.first().unwrap().selector; // Create state reader with class hash data let contract_class_cache = PermanentContractClassCache::default(); @@ -1304,7 +1304,7 @@ fn test_get_execution_info() { let program_data = include_bytes!("../../starknet_programs/cairo1/get_execution_info.casm"); let contract_class: CasmContractClass = serde_json::from_slice(program_data).unwrap(); let entrypoints = contract_class.clone().entry_points_by_type; - let external_entrypoint_selector = &entrypoints.external.get(0).unwrap().selector; + let external_entrypoint_selector = &entrypoints.external.first().unwrap().selector; // Create state reader with class hash data let contract_class_cache = PermanentContractClassCache::default(); @@ -1417,7 +1417,7 @@ fn replace_class_internal() { let program_data_a = include_bytes!("../../starknet_programs/cairo1/get_number_a.casm"); let contract_class_a: CasmContractClass = serde_json::from_slice(program_data_a).unwrap(); let entrypoints_a = contract_class_a.clone().entry_points_by_type; - let upgrade_selector = &entrypoints_a.external.get(0).unwrap().selector; + let upgrade_selector = &entrypoints_a.external.first().unwrap().selector; // Create state reader with class hash data let contract_class_cache = PermanentContractClassCache::default(); @@ -1584,7 +1584,7 @@ fn replace_class_contract_call() { let wrapper_contract_class: CasmContractClass = serde_json::from_slice(program_data).unwrap(); let entrypoints = wrapper_contract_class.clone().entry_points_by_type; let get_number_entrypoint_selector = &entrypoints.external.get(1).unwrap().selector; - let upgrade_entrypoint_selector = &entrypoints.external.get(0).unwrap().selector; + let upgrade_entrypoint_selector = &entrypoints.external.first().unwrap().selector; let wrapper_address = Address(Felt252::from(2)); let wrapper_class_hash: ClassHash = ClassHash([3; 32]); @@ -2236,7 +2236,7 @@ fn test_out_of_gas_failure() { let program_data = include_bytes!("../../starknet_programs/cairo1/emit_event.casm"); let contract_class: CasmContractClass = serde_json::from_slice(program_data).unwrap(); let entrypoints = contract_class.clone().entry_points_by_type; - let entrypoint_selector = &entrypoints.external.get(0).unwrap().selector; + let entrypoint_selector = &entrypoints.external.first().unwrap().selector; // Create state reader with class hash data let contract_class_cache = PermanentContractClassCache::default(); @@ -2323,7 +2323,7 @@ fn deploy_syscall_failure_uninitialized_class_hash() { include_bytes!("../../starknet_programs/cairo1/deploy_contract_no_args.casm"); let contract_class: CasmContractClass = serde_json::from_slice(program_data).unwrap(); let entrypoints = contract_class.clone().entry_points_by_type; - let entrypoint_selector = &entrypoints.external.get(0).unwrap().selector; + let entrypoint_selector = &entrypoints.external.first().unwrap().selector; // Create state reader with class hash data let contract_class_cache = PermanentContractClassCache::default(); @@ -2409,7 +2409,7 @@ fn deploy_syscall_failure_in_constructor() { include_bytes!("../../starknet_programs/cairo1/deploy_contract_no_args.casm"); let contract_class: CasmContractClass = serde_json::from_slice(program_data).unwrap(); let entrypoints = contract_class.clone().entry_points_by_type; - let entrypoint_selector = &entrypoints.external.get(0).unwrap().selector; + let entrypoint_selector = &entrypoints.external.first().unwrap().selector; // Create state reader with class hash data let contract_class_cache = PermanentContractClassCache::default(); @@ -2591,7 +2591,7 @@ fn storage_read_unavailable_address_domain() { include_bytes!("../../starknet_programs/cairo1/faulty_low_level_storage_read.casm"); let contract_class: CasmContractClass = serde_json::from_slice(program_data).unwrap(); let entrypoints = contract_class.clone().entry_points_by_type; - let read_storage_entrypoint_selector = &entrypoints.external.get(0).unwrap().selector; + let read_storage_entrypoint_selector = &entrypoints.external.first().unwrap().selector; // Create state reader with class hash data let contract_class_cache = PermanentContractClassCache::default(); @@ -2673,7 +2673,7 @@ fn storage_write_unavailable_address_domain() { include_bytes!("../../starknet_programs/cairo1/faulty_low_level_storage_write.casm"); let contract_class: CasmContractClass = serde_json::from_slice(program_data).unwrap(); let entrypoints = contract_class.clone().entry_points_by_type; - let read_storage_entrypoint_selector = &entrypoints.external.get(0).unwrap().selector; + let read_storage_entrypoint_selector = &entrypoints.external.first().unwrap().selector; // Create state reader with class hash data let contract_class_cache = PermanentContractClassCache::default(); @@ -2753,7 +2753,7 @@ fn library_call_failure() { let program_data = include_bytes!("../../starknet_programs/cairo1/square_root.casm"); let contract_class: CasmContractClass = serde_json::from_slice(program_data).unwrap(); let entrypoints = contract_class.clone().entry_points_by_type; - let entrypoint_selector = &entrypoints.external.get(0).unwrap().selector; + let entrypoint_selector = &entrypoints.external.first().unwrap().selector; // Create state reader with class hash data let contract_class_cache = PermanentContractClassCache::default(); @@ -3263,7 +3263,7 @@ fn keccak_syscall() { let program_data = include_bytes!("../../starknet_programs/cairo2/test_cairo_keccak.casm"); let contract_class: CasmContractClass = serde_json::from_slice(program_data).unwrap(); let entrypoints = contract_class.clone().entry_points_by_type; - let read_storage_entrypoint_selector = &entrypoints.external.get(0).unwrap().selector; + let read_storage_entrypoint_selector = &entrypoints.external.first().unwrap().selector; // Create state reader with class hash data let contract_class_cache = PermanentContractClassCache::default(); @@ -3344,7 +3344,7 @@ fn library_call_recursive_50_calls() { let contract_class: CasmContractClass = serde_json::from_slice(program_data).unwrap(); let entrypoints = contract_class.clone().entry_points_by_type; - let entrypoint_selector = &entrypoints.external.get(0).unwrap().selector; + let entrypoint_selector = &entrypoints.external.first().unwrap().selector; // Create state reader with class hash data let contract_class_cache = PermanentContractClassCache::default(); @@ -3531,7 +3531,7 @@ fn call_contract_storage_write_read_recursive_50_calls() { let simple_wallet_constructor_entrypoint_selector = simple_wallet_contract_class .entry_points_by_type .constructor - .get(0) + .first() .unwrap() .selector .clone(); @@ -3746,7 +3746,7 @@ fn call_contract_storage_write_read_recursive_100_calls() { let simple_wallet_constructor_entrypoint_selector = simple_wallet_contract_class .entry_points_by_type .constructor - .get(0) + .first() .unwrap() .selector .clone(); @@ -3923,7 +3923,7 @@ fn test_get_execution_info_v2() { let program_data = include_bytes!("../../starknet_programs/cairo2/get_execution_info_v2.casm"); let contract_class: CasmContractClass = serde_json::from_slice(program_data).unwrap(); let entrypoints = contract_class.clone().entry_points_by_type; - let external_entrypoint_selector = &entrypoints.external.get(0).unwrap().selector; + let external_entrypoint_selector = &entrypoints.external.first().unwrap().selector; // Create state reader with class hash data let contract_class_cache = PermanentContractClassCache::default(); diff --git a/tests/integration_tests/complex_contracts/erc20.rs b/tests/integration_tests/complex_contracts/erc20.rs index 50627e015..4d0467072 100644 --- a/tests/integration_tests/complex_contracts/erc20.rs +++ b/tests/integration_tests/complex_contracts/erc20.rs @@ -27,7 +27,7 @@ fn test_erc20_cairo2() { let program_data = include_bytes!("../../../starknet_programs/cairo2/deploy_erc20.casm"); let contract_class: CasmContractClass = serde_json::from_slice(program_data).unwrap(); let entrypoints = contract_class.clone().entry_points_by_type; - let entrypoint_selector = &entrypoints.external.get(0).unwrap().selector; + let entrypoint_selector = &entrypoints.external.first().unwrap().selector; // Create state reader with class hash data let contract_class_cache = Arc::new(PermanentContractClassCache::default()); @@ -124,7 +124,7 @@ fn test_erc20_cairo2() { None, ) .unwrap(); - let erc20_address = *call_info.call_info.unwrap().retdata.get(0).unwrap(); + let erc20_address = *call_info.call_info.unwrap().retdata.first().unwrap(); // ACCOUNT 1 let program_data_account = diff --git a/tests/integration_tests/delegate_call.rs b/tests/integration_tests/delegate_call.rs index ee044f0df..fc0befc41 100644 --- a/tests/integration_tests/delegate_call.rs +++ b/tests/integration_tests/delegate_call.rs @@ -59,7 +59,7 @@ fn delegate_call() { let test_delegate_call_selector = *entry_points_by_type .get(&EntryPointType::External) .unwrap() - .get(0) + .first() .unwrap() .selector(); diff --git a/tests/integration_tests/increase_balance.rs b/tests/integration_tests/increase_balance.rs index 4a87ef619..0256e57fc 100644 --- a/tests/integration_tests/increase_balance.rs +++ b/tests/integration_tests/increase_balance.rs @@ -36,7 +36,7 @@ fn hello_starknet_increase_balance() { let increase_balance_selector = *entry_points_by_type .get(&EntryPointType::External) .unwrap() - .get(0) + .first() .unwrap() .selector(); diff --git a/tests/integration_tests/internals.rs b/tests/integration_tests/internals.rs index 1cae85adf..2adc7c2b3 100644 --- a/tests/integration_tests/internals.rs +++ b/tests/integration_tests/internals.rs @@ -2280,7 +2280,7 @@ fn test_library_call_with_declare_v2() { let program_data = include_bytes!("../../starknet_programs/cairo1/fibonacci_dispatcher.casm"); let contract_class: CasmContractClass = serde_json::from_slice(program_data).unwrap(); let entrypoints = contract_class.clone().entry_points_by_type; - let external_entrypoint_selector = &entrypoints.external.get(0).unwrap().selector; + let external_entrypoint_selector = &entrypoints.external.first().unwrap().selector; let address = Address(6666.into()); let mut class_hash: ClassHash = ClassHash([0; 32]); diff --git a/tests/integration_tests/storage.rs b/tests/integration_tests/storage.rs index 805cea6be..32de39a95 100644 --- a/tests/integration_tests/storage.rs +++ b/tests/integration_tests/storage.rs @@ -33,7 +33,7 @@ fn integration_storage_test() { let storage_entrypoint_selector = *entry_points_by_type .get(&EntryPointType::External) .unwrap() - .get(0) + .first() .unwrap() .selector();