diff --git a/Cargo.lock b/Cargo.lock index 569967a7d15..828d2b22338 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -150,7 +150,7 @@ dependencies = [ "itoa", "serde", "serde_json", - "winnow 0.7.11", + "winnow 0.7.12", ] [[package]] @@ -265,7 +265,7 @@ dependencies = [ "derive_more 2.0.1", "foldhash", "hashbrown 0.15.4", - "indexmap 2.9.0", + "indexmap 2.10.0", "itoa", "k256", "keccak-asm", @@ -304,7 +304,7 @@ dependencies = [ "futures-utils-wasm", "lru", "pin-project", - "reqwest 0.12.20", + "reqwest 0.12.22", "serde", "serde_json", "thiserror 1.0.69", @@ -332,7 +332,7 @@ checksum = "64b728d511962dda67c1bc7ea7c03736ec275ed2cf4c35d9585298ac9ccf3b73" dependencies = [ "proc-macro2", "quote", - "syn 2.0.102", + "syn 2.0.104", ] [[package]] @@ -346,7 +346,7 @@ dependencies = [ "alloy-transport-http", "futures", "pin-project", - "reqwest 0.12.20", + "reqwest 0.12.22", "serde", "serde_json", "tokio", @@ -413,7 +413,7 @@ dependencies = [ "proc-macro-error2", "proc-macro2", "quote", - "syn 2.0.102", + "syn 2.0.104", ] [[package]] @@ -426,11 +426,11 @@ dependencies = [ "alloy-sol-macro-input", "const-hex", "heck 0.5.0", - "indexmap 2.9.0", + "indexmap 2.10.0", "proc-macro-error2", "proc-macro2", "quote", - "syn 2.0.102", + "syn 2.0.104", "syn-solidity", "tiny-keccak", ] @@ -449,7 +449,7 @@ dependencies = [ "proc-macro2", "quote", "serde_json", - "syn 2.0.102", + "syn 2.0.104", "syn-solidity", ] @@ -460,7 +460,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6d162f8524adfdfb0e4bd0505c734c985f3e2474eb022af32eef0d52a4f3935c" dependencies = [ "serde", - "winnow 0.7.11", + "winnow 0.7.12", ] [[package]] @@ -503,7 +503,7 @@ checksum = "a944f5310c690b62bbb3e7e5ce34527cbd36b2d18532a797af123271ce595a49" dependencies = [ "alloy-json-rpc", "alloy-transport", - "reqwest 0.12.20", + "reqwest 0.12.22", "serde_json", "tower 0.5.2", "tracing", @@ -598,7 +598,7 @@ dependencies = [ "proc-macro-error2", "proc-macro2", "quote", - "syn 2.0.102", + "syn 2.0.104", ] [[package]] @@ -730,7 +730,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "62945a2f7e6de02a31fe400aa489f0e0f5b2502e69f95f853adb82a96c7a6b60" dependencies = [ "quote", - "syn 2.0.102", + "syn 2.0.104", ] [[package]] @@ -768,7 +768,7 @@ dependencies = [ "num-traits", "proc-macro2", "quote", - "syn 2.0.102", + "syn 2.0.104", ] [[package]] @@ -897,7 +897,7 @@ checksum = "213888f660fddcca0d257e88e54ac05bca01885f258ccdf695bafd77031bb69d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.102", + "syn 2.0.104", ] [[package]] @@ -957,7 +957,7 @@ version = "4.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ef1e3e699d84ab1b0911a1010c5c106aa34ae89aeac103be5ce0c3859db1e891" dependencies = [ - "term 1.0.2", + "term 1.1.0", ] [[package]] @@ -984,7 +984,7 @@ checksum = "965c2d33e53cb6b267e148a4cb0760bc01f4904c1cd4bb4002a085bb016d1490" dependencies = [ "proc-macro2", "quote", - "syn 2.0.102", + "syn 2.0.104", "synstructure", ] @@ -996,7 +996,7 @@ checksum = "7b18050c2cd6fe86c3a76584ef5e0baf286d038cda203eb6223df2cc413565f7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.102", + "syn 2.0.104", ] [[package]] @@ -1028,9 +1028,9 @@ dependencies = [ [[package]] name = "async-channel" -version = "2.3.1" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89b47800b0be77592da0afd425cc03468052844aff33b84e33cc696f64e77b6a" +checksum = "924ed96dd52d1b75e9c1a3e6275715fd320f5f9439fb5a4a11fa51f4221158d2" dependencies = [ "concurrent-queue", "event-listener-strategy", @@ -1040,9 +1040,9 @@ dependencies = [ [[package]] name = "async-compression" -version = "0.4.24" +version = "0.4.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d615619615a650c571269c00dca41db04b9210037fa76ed8239f70404ab56985" +checksum = "ddb939d66e4ae03cee6091612804ba446b12878410cfa17f785f4dd67d4014e8" dependencies = [ "flate2", "futures-core", @@ -1082,7 +1082,7 @@ version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "05b1b633a2115cd122d73b955eadd9916c18c8f510ec9cd1686404c60ad1c29c" dependencies = [ - "async-channel 2.3.1", + "async-channel 2.5.0", "async-executor", "async-io 2.4.1", "async-lock 3.4.0", @@ -1098,7 +1098,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0fc5b45d93ef0529756f812ca52e44c221b35341892d3dcc34132ac02f3dd2af" dependencies = [ "async-lock 2.8.0", - "autocfg 1.4.0", + "autocfg 1.5.0", "cfg-if", "concurrent-queue", "futures-lite 1.13.0", @@ -1167,7 +1167,7 @@ version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cde3f4e40e6021d7acffc90095cbd6dc54cb593903d1de5832f435eb274b85dc" dependencies = [ - "async-channel 2.3.1", + "async-channel 2.5.0", "async-io 2.4.1", "async-lock 3.4.0", "async-signal", @@ -1188,7 +1188,7 @@ checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11" dependencies = [ "proc-macro2", "quote", - "syn 2.0.102", + "syn 2.0.104", ] [[package]] @@ -1254,7 +1254,7 @@ checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.102", + "syn 2.0.104", ] [[package]] @@ -1271,7 +1271,7 @@ checksum = "e539d3fca749fcee5236ab05e93a52867dd549cc157c8cb7f99595f3cedffdb5" dependencies = [ "proc-macro2", "quote", - "syn 2.0.102", + "syn 2.0.104", ] [[package]] @@ -1336,7 +1336,7 @@ checksum = "ffdcb70bdbc4d478427380519163274ac86e52916e10f0a8889adf0f96d3fee7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.102", + "syn 2.0.104", ] [[package]] @@ -1345,14 +1345,14 @@ version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0dde43e75fd43e8a1bf86103336bc699aa8d17ad1be60c76c0bdfd4828e19b78" dependencies = [ - "autocfg 1.4.0", + "autocfg 1.5.0", ] [[package]] name = "autocfg" -version = "1.4.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" +checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" [[package]] name = "axum" @@ -1517,7 +1517,7 @@ dependencies = [ "regex", "rustc-hash 1.1.0", "shlex", - "syn 2.0.102", + "syn 2.0.104", ] [[package]] @@ -1535,7 +1535,7 @@ dependencies = [ "regex", "rustc-hash 1.1.0", "shlex", - "syn 2.0.102", + "syn 2.0.104", ] [[package]] @@ -1555,7 +1555,7 @@ dependencies = [ "regex", "rustc-hash 2.1.1", "shlex", - "syn 2.0.102", + "syn 2.0.104", ] [[package]] @@ -1659,7 +1659,7 @@ dependencies = [ "criterion", "derive_more 0.99.20", "glob", - "indexmap 2.9.0", + "indexmap 2.10.0", "itertools 0.12.1", "keccak", "log", @@ -1679,7 +1679,7 @@ dependencies = [ "serde", "serde_json", "sha2", - "sierra-emu", + "sierra-emu 0.5.0-rc.6 (git+https://github.com/lambdaclass/cairo_native?rev=06aef997d8b606cb18108405642013cc2988034e)", "starknet-types-core", "starknet_api", "starknet_infra_utils", @@ -1704,7 +1704,7 @@ dependencies = [ "clap", "flate2", "google-cloud-storage", - "indexmap 2.9.0", + "indexmap 2.10.0", "papyrus_execution", "pretty_assertions", "retry", @@ -1721,11 +1721,11 @@ dependencies = [ [[package]] name = "blocking" -version = "1.6.1" +version = "1.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "703f41c54fc768e63e091340b424302bb1c29ef4aa0c7f10fe849dfb114d29ea" +checksum = "e83f8d02be6967315521be875afa792a316e28d57b5a2d401897e2a7921b7f21" dependencies = [ - "async-channel 2.3.1", + "async-channel 2.5.0", "async-task", "futures-io", "futures-lite 2.6.0", @@ -1775,9 +1775,9 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.18.1" +version = "3.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "793db76d6187cd04dff33004d8e6c9cc4e05cd330500379d2394209271b4aeee" +checksum = "46c5e41b57b8bba42a04676d81cb89e9ee8e859a1a66f80a5a72e1cb76b34d43" [[package]] name = "byte-slice-cast" @@ -2086,7 +2086,7 @@ checksum = "b1e4872352761cf6d7f47eeb1626e3b1d84a514017fb4251173148d8c04f36d5" dependencies = [ "cairo-lang-debug", "quote", - "syn 2.0.102", + "syn 2.0.104", ] [[package]] @@ -2365,9 +2365,9 @@ dependencies = [ [[package]] name = "cairo-lang-syntax-codegen" -version = "2.12.0-rc.0" +version = "2.12.0-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a7825ed2fc0acd62db7cac52e0870634e1c5ce26e7021f81cb9fce02e406669" +checksum = "a36fad6859a594f62c1dcdb7a65cd1360461a79162f07a1f74beeee3617a42c6" dependencies = [ "genco", "xshell", @@ -2420,7 +2420,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5f043065d60a8a2510bfacb6c91767298fed50ed9abbd69ff7698322b7cb1e65" dependencies = [ "hashbrown 0.15.4", - "indexmap 2.9.0", + "indexmap 2.10.0", "itertools 0.14.0", "num-bigint 0.4.6", "num-traits", @@ -2433,7 +2433,6 @@ dependencies = [ [[package]] name = "cairo-native" version = "0.5.0-rc.6" -source = "git+https://github.com/lambdaclass/cairo_native?rev=26f1f915d6be979898ed08544c0f1b127c4501bc#26f1f915d6be979898ed08544c0f1b127c4501bc" dependencies = [ "anyhow", "aquamarine", @@ -2475,7 +2474,7 @@ dependencies = [ "serde", "serde_json", "sha2", - "sierra-emu", + "sierra-emu 0.5.0-rc.6", "starknet-curve 0.5.1", "starknet-types-core", "stats_alloc", @@ -2573,9 +2572,9 @@ checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5" [[package]] name = "cc" -version = "1.2.26" +version = "1.2.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "956a5e21988b87f372569b66183b78babf23ebc2e744b733e4350a752c4dafac" +checksum = "5c1599538de2394445747c8cf7935946e3cc27e9625f889d979bfb2aaf569362" dependencies = [ "jobserver", "libc", @@ -2693,9 +2692,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.40" +version = "4.5.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40b6887a1d8685cebccf115538db5c0efe625ccac9696ad45c409d96566e910f" +checksum = "be92d32e80243a54711e5d7ce823c35c41c9d929dc4ab58e1276f625841aadf9" dependencies = [ "clap_builder", "clap_derive", @@ -2703,9 +2702,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.40" +version = "4.5.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0c66c08ce9f0c698cbce5c0279d0bb6ac936d8674174fe48f736533b964f59e" +checksum = "707eab41e9622f9139419d573eca0900137718000c517d47da73045f54331c3d" dependencies = [ "anstream", "anstyle", @@ -2715,14 +2714,14 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.5.40" +version = "4.5.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2c7947ae4cc3d851207c1adb5b5e260ff0cca11446b1d6d1423788e442257ce" +checksum = "ef4f52386a59ca4c860f7393bcf8abd8dfd91ecccc0f774635ff68e92eeef491" dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.102", + "syn 2.0.104", ] [[package]] @@ -2826,7 +2825,7 @@ dependencies = [ "derive_more 0.99.20", "ethnum", "futures", - "indexmap 2.9.0", + "indexmap 2.10.0", "pretty_assertions", "rand 0.8.5", "rand_distr", @@ -3020,9 +3019,9 @@ dependencies = [ [[package]] name = "crc32fast" -version = "1.4.2" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3" +checksum = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511" dependencies = [ "cfg-if", ] @@ -3099,9 +3098,9 @@ checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" [[package]] name = "crunchy" -version = "0.2.3" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43da5946c66ffcc7745f48db692ffbb10a83bfe0afd96235c5c2a4fb23994929" +checksum = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5" [[package]] name = "crypto-bigint" @@ -3147,9 +3146,9 @@ dependencies = [ [[package]] name = "curve25519-dalek" -version = "4.1.3" +version = "4.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97fb8b7c4503de7d6ae7b42ab72a5a59857b4c937ec27a3d4539dba95b5ab2be" +checksum = "373b7c5dbd637569a2cca66e8d66b8c446a1e7bf064ea321d265d7b3dfe7c97e" dependencies = [ "cfg-if", "cpufeatures", @@ -3169,7 +3168,7 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.102", + "syn 2.0.104", ] [[package]] @@ -3217,7 +3216,7 @@ dependencies = [ "proc-macro2", "quote", "strsim 0.11.1", - "syn 2.0.102", + "syn 2.0.104", ] [[package]] @@ -3239,7 +3238,7 @@ checksum = "fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead" dependencies = [ "darling_core 0.20.11", "quote", - "syn 2.0.102", + "syn 2.0.104", ] [[package]] @@ -3279,7 +3278,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8d162beedaa69905488a8da94f5ac3edb4dd4788b732fadb7bd120b2625c1976" dependencies = [ "data-encoding", - "syn 2.0.102", + "syn 2.0.104", ] [[package]] @@ -3354,7 +3353,7 @@ dependencies = [ "proc-macro2", "quote", "rustc_version 0.4.1", - "syn 2.0.102", + "syn 2.0.104", ] [[package]] @@ -3383,7 +3382,7 @@ checksum = "cb7330aeadfbe296029522e6c40f315320aba36fc43a5b3632f3795348f3bd22" dependencies = [ "proc-macro2", "quote", - "syn 2.0.102", + "syn 2.0.104", "unicode-xid", ] @@ -3395,7 +3394,7 @@ checksum = "bda628edc44c4bb645fbe0f758797143e4e07926f7ebf4e9bdfbd3d2ce621df3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.102", + "syn 2.0.104", "unicode-xid", ] @@ -3491,7 +3490,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.102", + "syn 2.0.104", ] [[package]] @@ -3550,13 +3549,12 @@ dependencies = [ [[package]] name = "ed25519-dalek" -version = "2.1.1" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a3daa8e81a3963a60642bcc1f90a670680bd4a77535faa384e9d1c79d620871" +checksum = "70e796c081cee67dc755e1a36a0a172b897fab85fc3f6bc48307991f64e4eca9" dependencies = [ "curve25519-dalek", "ed25519", - "rand_core 0.6.4", "serde", "sha2", "subtle", @@ -3572,7 +3570,7 @@ dependencies = [ "enum-ordinalize", "proc-macro2", "quote", - "syn 2.0.102", + "syn 2.0.104", ] [[package]] @@ -3584,7 +3582,7 @@ dependencies = [ "enum-ordinalize", "proc-macro2", "quote", - "syn 2.0.102", + "syn 2.0.104", ] [[package]] @@ -3670,7 +3668,7 @@ dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.102", + "syn 2.0.104", ] [[package]] @@ -3681,7 +3679,7 @@ checksum = "4f4b100e337b021ae69f3e7dd82e230452c54ff833958446c4a3854c66dc9326" dependencies = [ "proc-macro2", "quote", - "syn 2.0.102", + "syn 2.0.104", ] [[package]] @@ -3701,7 +3699,7 @@ checksum = "a1ab991c1362ac86c61ab6f556cff143daa22e5a15e4e189df818b2fd19fe65b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.102", + "syn 2.0.104", ] [[package]] @@ -3721,7 +3719,7 @@ checksum = "0d28318a75d4aead5c4db25382e8ef717932d0346600cacae6357eb5941bc5ff" dependencies = [ "proc-macro2", "quote", - "syn 2.0.102", + "syn 2.0.104", ] [[package]] @@ -3763,12 +3761,12 @@ dependencies = [ [[package]] name = "errno" -version = "0.3.12" +version = "0.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cea14ef9355e3beab063703aa9dab15afd25f0667c341310c1e5274bb1d0da18" +checksum = "778e2ac28f6c47af28e4907f13ffd1e1ddbd400980a9abd7c8df189bf578a5ad" dependencies = [ "libc", - "windows-sys 0.59.0", + "windows-sys 0.60.2", ] [[package]] @@ -3907,7 +3905,7 @@ dependencies = [ "reqwest 0.11.27", "serde", "serde_json", - "syn 2.0.102", + "syn 2.0.104", "toml", "walkdir", ] @@ -3925,7 +3923,7 @@ dependencies = [ "proc-macro2", "quote", "serde_json", - "syn 2.0.102", + "syn 2.0.104", ] [[package]] @@ -3951,7 +3949,7 @@ dependencies = [ "serde", "serde_json", "strum 0.26.3", - "syn 2.0.102", + "syn 2.0.104", "tempfile", "thiserror 1.0.69", "tiny-keccak", @@ -4191,9 +4189,9 @@ dependencies = [ [[package]] name = "fiat-crypto" -version = "0.2.9" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d" +checksum = "64cd1e32ddd350061ae6edb1b082d7c54915b5c672c389143b9a63403a109f24" [[package]] name = "filetime" @@ -4432,7 +4430,7 @@ checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.102", + "syn 2.0.104", ] [[package]] @@ -4442,7 +4440,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a8f2f12607f92c69b12ed746fabf9ca4f5c482cba46679c1a75b874ed7c26adb" dependencies = [ "futures-io", - "rustls 0.23.27", + "rustls 0.23.29", "rustls-pki-types", ] @@ -4531,7 +4529,7 @@ checksum = "43eaff6bbc0b3a878361aced5ec6a2818ee7c541c5b33b5880dfa9a86c23e9e7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.102", + "syn 2.0.104", ] [[package]] @@ -4687,7 +4685,7 @@ dependencies = [ "google-cloud-token", "home", "jsonwebtoken 9.3.1", - "reqwest 0.12.20", + "reqwest 0.12.22", "serde", "serde_json", "thiserror 1.0.69", @@ -4703,7 +4701,7 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d901aeb453fd80e51d64df4ee005014f6cf39f2d736dd64f7239c132d9d39a6a" dependencies = [ - "reqwest 0.12.20", + "reqwest 0.12.22", "thiserror 1.0.69", "tokio", ] @@ -4728,7 +4726,7 @@ dependencies = [ "percent-encoding", "pkcs8", "regex", - "reqwest 0.12.20", + "reqwest 0.12.22", "reqwest-middleware", "ring 0.17.14", "serde", @@ -4815,9 +4813,9 @@ dependencies = [ [[package]] name = "h2" -version = "0.3.26" +version = "0.3.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" +checksum = "0beca50380b1fc32983fc1cb4587bfa4bb9e78fc259aad4a0032d2080309222d" dependencies = [ "bytes", "fnv", @@ -4825,7 +4823,7 @@ dependencies = [ "futures-sink", "futures-util", "http 0.2.12", - "indexmap 2.9.0", + "indexmap 2.10.0", "slab", "tokio", "tokio-util", @@ -4834,9 +4832,9 @@ dependencies = [ [[package]] name = "h2" -version = "0.4.10" +version = "0.4.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9421a676d1b147b16b82c9225157dc629087ef8ec4d5e2960f9437a90dac0a5" +checksum = "17da50a276f1e01e0ba6c029e47b7100754904ee8a278f886546e98575380785" dependencies = [ "atomic-waker", "bytes", @@ -4844,7 +4842,7 @@ dependencies = [ "futures-core", "futures-sink", "http 1.3.1", - "indexmap 2.9.0", + "indexmap 2.10.0", "slab", "tokio", "tokio-util", @@ -4938,9 +4936,9 @@ checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" [[package]] name = "hermit-abi" -version = "0.5.1" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f154ce46856750ed433c8649605bf7ed2de3bc35fd9d2a9f30cddd873c80cb08" +checksum = "fc0fef456e4baa96da950455cd02c081ca953b141298e41db3fc7e36b1da849c" [[package]] name = "hex" @@ -5114,7 +5112,7 @@ dependencies = [ "futures-channel", "futures-core", "futures-util", - "h2 0.3.26", + "h2 0.3.27", "http 0.2.12", "http-body 0.4.6", "httparse", @@ -5137,7 +5135,7 @@ dependencies = [ "bytes", "futures-channel", "futures-util", - "h2 0.4.10", + "h2 0.4.11", "http 1.3.1", "http-body 1.0.1", "httparse", @@ -5196,9 +5194,9 @@ dependencies = [ [[package]] name = "hyper-util" -version = "0.1.14" +version = "0.1.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc2fdfdbff08affe55bb779f33b053aa1fe5dd5b54c257343c17edfa55711bdb" +checksum = "7f66d5bd4c6f02bf0542fad85d626775bab9258cf795a4256dcaf3161114d1df" dependencies = [ "base64 0.22.1", "bytes", @@ -5492,7 +5490,7 @@ checksum = "a0eb5a3343abf848c0984fe4604b2b105da9539376e24fc0a3b0007411ae4fd9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.102", + "syn 2.0.104", ] [[package]] @@ -5532,16 +5530,16 @@ version = "1.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" dependencies = [ - "autocfg 1.4.0", + "autocfg 1.5.0", "hashbrown 0.12.3", "serde", ] [[package]] name = "indexmap" -version = "2.9.0" +version = "2.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cea70ddb795996207ad57735b50c5982d8844f38ba9ee5f1aedcfb708a2aa11e" +checksum = "fe4cd85333e22411419a0bcae1297d25e58c9443848b11dc6a86fefe8c78a661" dependencies = [ "equivalent", "hashbrown 0.15.4", @@ -5616,6 +5614,17 @@ dependencies = [ "windows-sys 0.48.0", ] +[[package]] +name = "io-uring" +version = "0.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b86e202f00093dcba4275d4636b93ef9dd75d025ae560d2521b45ea28ab49013" +dependencies = [ + "bitflags 2.9.1", + "cfg-if", + "libc", +] + [[package]] name = "ipconfig" version = "0.3.2" @@ -5650,7 +5659,7 @@ version = "0.4.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e04d7f318608d35d4b61ddd75cbdaee86b023ebe2bd5a66ee0915f0bf93095a9" dependencies = [ - "hermit-abi 0.5.1", + "hermit-abi 0.5.2", "libc", "windows-sys 0.59.0", ] @@ -6041,7 +6050,7 @@ dependencies = [ "regex-syntax 0.8.5", "sha3", "string_cache", - "term 1.0.2", + "term 1.1.0", "unicode-xid", "walkdir", ] @@ -6104,9 +6113,9 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" [[package]] name = "libc" -version = "0.2.172" +version = "0.2.174" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d750af042f7ef4f724306de029d18836c26c1765a54a6a3f094cbd23a7267ffa" +checksum = "1171693293099992e19cddea4e8b849964e9846f4acee11b3948bcc337be8776" [[package]] name = "libloading" @@ -6115,7 +6124,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "07033963ba89ebaf1584d767badaa2e8fcec21aedea6b8c0346d487d49c28667" dependencies = [ "cfg-if", - "windows-targets 0.53.0", + "windows-targets 0.53.2", ] [[package]] @@ -6301,9 +6310,9 @@ dependencies = [ [[package]] name = "libp2p-identity" -version = "0.2.11" +version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbb68ea10844211a59ce46230909fd0ea040e8a192454d4cc2ee0d53e12280eb" +checksum = "3104e13b51e4711ff5738caa1fb54467c8604c2e94d607e27745bcf709068774" dependencies = [ "bs58", "ed25519-dalek", @@ -6446,7 +6455,7 @@ dependencies = [ "quinn", "rand 0.8.5", "ring 0.17.14", - "rustls 0.23.27", + "rustls 0.23.29", "socket2 0.5.10", "thiserror 1.0.69", "tokio", @@ -6487,7 +6496,7 @@ dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.102", + "syn 2.0.104", ] [[package]] @@ -6539,7 +6548,7 @@ dependencies = [ "libp2p-identity", "rcgen", "ring 0.17.14", - "rustls 0.23.27", + "rustls 0.23.29", "rustls-webpki 0.101.7", "thiserror 1.0.69", "x509-parser", @@ -6590,9 +6599,9 @@ dependencies = [ [[package]] name = "libredox" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" +checksum = "1580801010e535496706ba011c15f8532df6b42297d2e471fec38ceadd8c0638" dependencies = [ "bitflags 2.9.1", "libc", @@ -6658,7 +6667,7 @@ version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "96936507f153605bddfcda068dd804796c84324ed2510809e5b2a624c81da765" dependencies = [ - "autocfg 1.4.0", + "autocfg 1.5.0", "scopeguard", ] @@ -6697,9 +6706,9 @@ checksum = "112b39cec0b298b6c1999fee3e31427f74f676e4cb9879ed1a121b43661a4154" [[package]] name = "mach2" -version = "0.4.2" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19b955cdeb2a02b9117f121ce63aa52d08ade45de53e48fe6a38b39c10f6f709" +checksum = "d640282b302c0bb0a2a8e0233ead9035e3bed871f0b7e81fe4a1ec829765db44" dependencies = [ "libc", ] @@ -6712,7 +6721,7 @@ checksum = "1b27834086c65ec3f9387b096d66e99f221cf081c2b738042aa252bcd41204e3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.102", + "syn 2.0.104", ] [[package]] @@ -6742,7 +6751,7 @@ version = "0.3.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a06de3016e9fae57a36fd14dba131fccf49f74b40b7fbdb472f96e361ec71a08" dependencies = [ - "autocfg 1.4.0", + "autocfg 1.5.0", "rawpointer", ] @@ -6788,7 +6797,7 @@ dependencies = [ "proc-macro2", "quote", "regex", - "syn 2.0.102", + "syn 2.0.104", "tblgen", "unindent 0.2.4", ] @@ -6814,7 +6823,7 @@ version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce" dependencies = [ - "autocfg 1.4.0", + "autocfg 1.5.0", ] [[package]] @@ -6823,7 +6832,7 @@ version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a" dependencies = [ - "autocfg 1.4.0", + "autocfg 1.5.0", ] [[package]] @@ -6886,7 +6895,7 @@ checksum = "38b4faf00617defe497754acde3024865bc143d44a86799b24e191ecff91354f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.102", + "syn 2.0.104", ] [[package]] @@ -7004,7 +7013,7 @@ dependencies = [ "cfg-if", "proc-macro2", "quote", - "syn 2.0.102", + "syn 2.0.104", ] [[package]] @@ -7144,7 +7153,7 @@ dependencies = [ "cached", "cairo-lang-starknet-classes", "cairo-vm", - "indexmap 2.9.0", + "indexmap 2.10.0", "log", "num-bigint 0.4.6", "papyrus_state_reader", @@ -7361,7 +7370,7 @@ version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "090c7f9998ee0ff65aa5b723e4009f7b217707f1fb5ea551329cc4d6231fb304" dependencies = [ - "autocfg 1.4.0", + "autocfg 1.5.0", "num-integer", "num-traits", ] @@ -7390,7 +7399,7 @@ version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b6b19411a9719e753aff12e5187b74d60d3dc449ec3f4dc21e3989c3f554bc95" dependencies = [ - "autocfg 1.4.0", + "autocfg 1.5.0", "num-traits", ] @@ -7434,7 +7443,7 @@ version = "0.1.45" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1429034a0490724d0075ebb2bc9e875d6503c3cf69e235a8941aa757d83ef5bf" dependencies = [ - "autocfg 1.4.0", + "autocfg 1.5.0", "num-integer", "num-traits", ] @@ -7472,7 +7481,7 @@ version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5c000134b5dbf44adc5cb772486d335293351644b801551abe8f75c84cfa4aef" dependencies = [ - "autocfg 1.4.0", + "autocfg 1.5.0", "num-bigint 0.2.6", "num-integer", "num-traits", @@ -7496,7 +7505,7 @@ version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ - "autocfg 1.4.0", + "autocfg 1.5.0", "libm", ] @@ -7506,29 +7515,30 @@ version = "1.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "91df4bbde75afed763b708b7eee1e8e7651e02d97f6d5dd763e89367e957b23b" dependencies = [ - "hermit-abi 0.5.1", + "hermit-abi 0.5.2", "libc", ] [[package]] name = "num_enum" -version = "0.7.3" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e613fc340b2220f734a8595782c551f1250e969d87d3be1ae0579e8d4065179" +checksum = "a973b4e44ce6cad84ce69d797acf9a044532e4184c4f267913d1b546a0727b7a" dependencies = [ "num_enum_derive", + "rustversion", ] [[package]] name = "num_enum_derive" -version = "0.7.3" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af1844ef2428cc3e1cb900be36181049ef3d3193c63e43026cfe202983b27a56" +checksum = "77e878c846a8abae00dd069496dbe8751b16ac1c3d6bd2a7283a938e8228f90d" dependencies = [ "proc-macro-crate 3.3.0", "proc-macro2", "quote", - "syn 2.0.102", + "syn 2.0.104", ] [[package]] @@ -7630,7 +7640,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.102", + "syn 2.0.104", ] [[package]] @@ -7734,7 +7744,7 @@ dependencies = [ "base64 0.13.1", "cairo-lang-starknet-classes", "flate2", - "indexmap 2.9.0", + "indexmap 2.10.0", "lazy_static", "papyrus_test_utils", "pretty_assertions", @@ -7806,7 +7816,7 @@ dependencies = [ "blockifier", "chrono", "futures", - "indexmap 2.9.0", + "indexmap 2.10.0", "lazy_static", "mockall", "papyrus_consensus", @@ -7837,7 +7847,7 @@ dependencies = [ "cairo-lang-starknet-classes", "cairo-lang-utils", "cairo-vm", - "indexmap 2.9.0", + "indexmap 2.10.0", "itertools 0.12.1", "lazy_static", "papyrus_common", @@ -7995,7 +8005,7 @@ dependencies = [ "chrono", "enum-iterator", "futures", - "indexmap 2.9.0", + "indexmap 2.10.0", "lazy_static", "metrics 0.21.1", "papyrus_common", @@ -8028,7 +8038,7 @@ dependencies = [ "papyrus_test_utils", "prometheus-parse", "quote", - "syn 2.0.102", + "syn 2.0.104", "tracing", ] @@ -8036,7 +8046,7 @@ dependencies = [ name = "papyrus_protobuf" version = "0.14.0-rc.3" dependencies = [ - "indexmap 2.9.0", + "indexmap 2.10.0", "lazy_static", "papyrus_common", "papyrus_test_utils", @@ -8071,7 +8081,7 @@ dependencies = [ "futures-util", "hex", "hyper 0.14.32", - "indexmap 2.9.0", + "indexmap 2.10.0", "insta", "itertools 0.12.1", "jsonrpsee", @@ -8112,7 +8122,7 @@ version = "0.14.0-rc.3" dependencies = [ "assert_matches", "blockifier", - "indexmap 2.9.0", + "indexmap 2.10.0", "log", "papyrus_storage", "rstest", @@ -8132,7 +8142,7 @@ dependencies = [ "camelpaste", "clap", "human_bytes", - "indexmap 2.9.0", + "indexmap 2.10.0", "insta", "integer-encoding", "lazy_static", @@ -8183,7 +8193,7 @@ dependencies = [ "chrono", "futures", "futures-util", - "indexmap 2.9.0", + "indexmap 2.10.0", "itertools 0.12.1", "lru", "metrics 0.21.1", @@ -8214,7 +8224,7 @@ dependencies = [ "cairo-lang-casm", "cairo-lang-starknet-classes", "cairo-lang-utils", - "indexmap 2.9.0", + "indexmap 2.10.0", "num-bigint 0.4.6", "pretty_assertions", "primitive-types", @@ -8253,7 +8263,7 @@ dependencies = [ "proc-macro-crate 3.3.0", "proc-macro2", "quote", - "syn 2.0.102", + "syn 2.0.104", ] [[package]] @@ -8378,9 +8388,9 @@ checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" [[package]] name = "pest" -version = "2.8.0" +version = "2.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "198db74531d58c70a361c42201efde7e2591e976d518caf7662a47dc5720e7b6" +checksum = "1db05f56d34358a8b1066f67cbb203ee3e7ed2ba674a6263a1d5ec6db2204323" dependencies = [ "memchr", "thiserror 2.0.12", @@ -8394,7 +8404,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db" dependencies = [ "fixedbitset 0.4.2", - "indexmap 2.9.0", + "indexmap 2.10.0", ] [[package]] @@ -8404,7 +8414,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3672b37090dbd86368a4145bc067582552b29c27377cad4e0a306c97f9bd7772" dependencies = [ "fixedbitset 0.5.7", - "indexmap 2.9.0", + "indexmap 2.10.0", ] [[package]] @@ -8447,7 +8457,7 @@ dependencies = [ "phf_shared", "proc-macro2", "quote", - "syn 2.0.102", + "syn 2.0.104", ] [[package]] @@ -8482,7 +8492,7 @@ checksum = "6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861" dependencies = [ "proc-macro2", "quote", - "syn 2.0.102", + "syn 2.0.104", ] [[package]] @@ -8526,12 +8536,12 @@ checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" [[package]] name = "plist" -version = "1.7.1" +version = "1.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eac26e981c03a6e53e0aee43c113e3202f5581d5360dae7bd2c70e800dd0451d" +checksum = "3af6b589e163c5a788fab00ce0c0366f6efbb9959c2f9874b224936af7fce7e1" dependencies = [ "base64 0.22.1", - "indexmap 2.9.0", + "indexmap 2.10.0", "quick-xml", "serde", "time", @@ -8571,7 +8581,7 @@ version = "2.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "22122d5ec4f9fe1b3916419b76be1e80bcb93f618d071d2edf841b137b2a2bd6" dependencies = [ - "autocfg 1.4.0", + "autocfg 1.5.0", "cfg-if", "libc", "log", @@ -8587,7 +8597,7 @@ checksum = "b53a684391ad002dd6a596ceb6c74fd004fdce75f4be2e3f615068abbea5fd50" dependencies = [ "cfg-if", "concurrent-queue", - "hermit-abi 0.5.1", + "hermit-abi 0.5.2", "pin-project-lite", "rustix 1.0.7", "tracing", @@ -8700,12 +8710,12 @@ dependencies = [ [[package]] name = "prettyplease" -version = "0.2.33" +version = "0.2.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9dee91521343f4c5c6a63edd65e54f31f5c92fe8978c40a4282f8372194c6a7d" +checksum = "061c1221631e079b26479d25bbf2275bfe5917ae8419cd7e34f13bfc2aa7539a" dependencies = [ "proc-macro2", - "syn 2.0.102", + "syn 2.0.104", ] [[package]] @@ -8793,7 +8803,7 @@ dependencies = [ "proc-macro-error-attr2", "proc-macro2", "quote", - "syn 2.0.102", + "syn 2.0.104", ] [[package]] @@ -8848,7 +8858,7 @@ checksum = "440f724eba9f6996b75d63681b0a92b06947f1457076d503a4d2e2c8f56442b8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.102", + "syn 2.0.104", ] [[package]] @@ -8910,7 +8920,7 @@ dependencies = [ "prost", "prost-types", "regex", - "syn 2.0.102", + "syn 2.0.104", "tempfile", ] @@ -8924,7 +8934,7 @@ dependencies = [ "itertools 0.12.1", "proc-macro2", "quote", - "syn 2.0.102", + "syn 2.0.104", ] [[package]] @@ -9094,9 +9104,9 @@ dependencies = [ [[package]] name = "quick-xml" -version = "0.32.0" +version = "0.38.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d3a6e5838b60e0e8fa7a43f22ade549a37d61f8bdbe636d0d7816191de969c2" +checksum = "8927b0664f5c5a98265138b7e3f90aa19a6b21353182469ace36d4ac527b7b1b" dependencies = [ "memchr", ] @@ -9114,7 +9124,7 @@ dependencies = [ "quinn-proto", "quinn-udp", "rustc-hash 2.1.1", - "rustls 0.23.27", + "rustls 0.23.29", "socket2 0.5.10", "thiserror 2.0.12", "tokio", @@ -9134,7 +9144,7 @@ dependencies = [ "rand 0.9.1", "ring 0.17.14", "rustc-hash 2.1.1", - "rustls 0.23.27", + "rustls 0.23.29", "rustls-pki-types", "slab", "thiserror 2.0.12", @@ -9145,9 +9155,9 @@ dependencies = [ [[package]] name = "quinn-udp" -version = "0.5.12" +version = "0.5.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee4e529991f949c5e25755532370b8af5d114acae52326361d68d47af64aa842" +checksum = "fcebb1209ee276352ef14ff8732e24cc2b02bbac986cd74a4c81bcb2f9881970" dependencies = [ "cfg_aliases", "libc", @@ -9168,9 +9178,9 @@ dependencies = [ [[package]] name = "r-efi" -version = "5.2.0" +version = "5.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74765f6d916ee2faa39bc8e68e4f3ed8949b48cccdac59983d287a7cb71ce9c5" +checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" [[package]] name = "radium" @@ -9421,9 +9431,9 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.5.12" +version = "0.5.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "928fca9cf2aa042393a8325b9ead81d2f0df4cb12e1e24cef072922ccd99c5af" +checksum = "0d04b7d0ee6b4a0207a0a7adb104d23ecb0b47d6beae7152d0fa34b692b29fd6" dependencies = [ "bitflags 2.9.1", ] @@ -9515,7 +9525,7 @@ dependencies = [ "encoding_rs", "futures-core", "futures-util", - "h2 0.3.26", + "h2 0.3.27", "http 0.2.12", "http-body 0.4.6", "hyper 0.14.32", @@ -9551,9 +9561,9 @@ dependencies = [ [[package]] name = "reqwest" -version = "0.12.20" +version = "0.12.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eabf4c97d9130e2bf606614eb937e86edac8292eaa6f422f995d7e8de1eb1813" +checksum = "cbc931937e6ca3a06e3b6c0aa7841849b160a90351d6ab467a8b9b9959767531" dependencies = [ "base64 0.22.1", "bytes", @@ -9600,7 +9610,7 @@ dependencies = [ "anyhow", "async-trait", "http 1.3.1", - "reqwest 0.12.20", + "reqwest 0.12.22", "serde", "thiserror 1.0.69", "tower-service", @@ -9740,7 +9750,7 @@ checksum = "b3a8fb4672e840a587a66fc577a5491375df51ddb88f2a2c2a792598c326fe14" dependencies = [ "quote", "rand 0.8.5", - "syn 2.0.102", + "syn 2.0.104", ] [[package]] @@ -9801,7 +9811,7 @@ version = "0.17.0-pre.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "719825638c59fd26a55412a24561c7c5bcf54364c88b9a7a04ba08a6eafaba8d" dependencies = [ - "indexmap 2.9.0", + "indexmap 2.10.0", "lock_api", "oorandom", "parking_lot", @@ -9821,14 +9831,14 @@ dependencies = [ "heck 0.4.1", "proc-macro2", "quote", - "syn 2.0.102", + "syn 2.0.104", ] [[package]] name = "rust_decimal" -version = "1.37.1" +version = "1.37.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "faa7de2ba56ac291bd90c6b9bece784a52ae1411f9506544b3eae36dd2356d50" +checksum = "b203a6425500a03e0919c42d3c47caca51e79f1132046626d2c8871c5092035d" dependencies = [ "arrayvec", "num-traits", @@ -9939,15 +9949,15 @@ dependencies = [ [[package]] name = "rustls" -version = "0.23.27" +version = "0.23.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "730944ca083c1c233a75c09f199e973ca499344a2b7ba9e755c457e86fb4a321" +checksum = "2491382039b29b9b11ff08b76ff6c97cf287671dbb74f0be44bda389fffe9bd1" dependencies = [ "log", "once_cell", "ring 0.17.14", "rustls-pki-types", - "rustls-webpki 0.103.3", + "rustls-webpki 0.103.4", "subtle", "zeroize", ] @@ -9995,9 +10005,9 @@ dependencies = [ [[package]] name = "rustls-webpki" -version = "0.103.3" +version = "0.103.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4a72fe2bcf7a6ac6fd7d0b9e5cb68aeb7d4c0a0271730218b3e92d43b4eb435" +checksum = "0a17884ae0c1b773f1ccd2bd4a8c72f16da897310a98b0e84bf349ad5ead92fc" dependencies = [ "ring 0.17.14", "rustls-pki-types", @@ -10078,7 +10088,7 @@ dependencies = [ "proc-macro-crate 3.3.0", "proc-macro2", "quote", - "syn 2.0.102", + "syn 2.0.104", ] [[package]] @@ -10112,7 +10122,7 @@ dependencies = [ "proc-macro2", "quote", "serde_derive_internals", - "syn 2.0.102", + "syn 2.0.104", ] [[package]] @@ -10236,7 +10246,7 @@ checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" dependencies = [ "proc-macro2", "quote", - "syn 2.0.102", + "syn 2.0.104", ] [[package]] @@ -10247,7 +10257,7 @@ checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711" dependencies = [ "proc-macro2", "quote", - "syn 2.0.102", + "syn 2.0.104", ] [[package]] @@ -10291,7 +10301,7 @@ checksum = "175ee3e80ae9982737ca543e96133087cbd9a485eecc3bc4de9c1a37b47ea59c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.102", + "syn 2.0.104", ] [[package]] @@ -10339,7 +10349,7 @@ dependencies = [ "darling 0.20.11", "proc-macro2", "quote", - "syn 2.0.102", + "syn 2.0.104", ] [[package]] @@ -10415,7 +10425,45 @@ checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" [[package]] name = "sierra-emu" version = "0.5.0-rc.6" -source = "git+https://github.com/lambdaclass/cairo_native?rev=26f1f915d6be979898ed08544c0f1b127c4501bc#26f1f915d6be979898ed08544c0f1b127c4501bc" +dependencies = [ + "cairo-lang-compiler", + "cairo-lang-filesystem", + "cairo-lang-runner", + "cairo-lang-sierra", + "cairo-lang-sierra-ap-change", + "cairo-lang-sierra-gas", + "cairo-lang-sierra-generator", + "cairo-lang-sierra-to-casm", + "cairo-lang-starknet-classes", + "cairo-lang-test-plugin", + "cairo-lang-utils", + "clap", + "k256", + "keccak", + "num-bigint 0.4.6", + "num-integer", + "num-traits", + "p256", + "rand 0.8.5", + "rayon", + "sec1", + "serde", + "serde_json", + "sha2", + "smallvec", + "starknet-crypto 0.7.4", + "starknet-curve 0.5.1", + "starknet-types-core", + "tempfile", + "thiserror 2.0.12", + "tracing", + "tracing-subscriber", +] + +[[package]] +name = "sierra-emu" +version = "0.5.0-rc.6" +source = "git+https://github.com/lambdaclass/cairo_native?rev=06aef997d8b606cb18108405642013cc2988034e#06aef997d8b606cb18108405642013cc2988034e" dependencies = [ "cairo-lang-compiler", "cairo-lang-filesystem", @@ -10531,12 +10579,9 @@ checksum = "85636c14b73d81f541e525f585c0a2109e6744e1565b5c1668e31c70c10ed65c" [[package]] name = "slab" -version = "0.4.9" +version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" -dependencies = [ - "autocfg 1.4.0", -] +checksum = "04dc19736151f35336d325007ac991178d504a119863a2fcb3758cdb5e52c50d" [[package]] name = "slug" @@ -10560,7 +10605,7 @@ version = "2.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a33bd3e260892199c3ccfc487c88b2da2265080acb316cd920da72fdfd7c599f" dependencies = [ - "async-channel 2.3.1", + "async-channel 2.5.0", "async-executor", "async-fs", "async-io 2.4.1", @@ -10756,7 +10801,7 @@ checksum = "bbc159a1934c7be9761c237333a57febe060ace2bc9e3b337a59a37af206d19f" dependencies = [ "starknet-curve 0.4.2", "starknet-ff", - "syn 2.0.102", + "syn 2.0.104", ] [[package]] @@ -10793,10 +10838,12 @@ dependencies = [ [[package]] name = "starknet-types-core" -version = "0.1.8" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4037bcb26ce7c508448d221e570d075196fd4f6912ae6380981098937af9522a" +checksum = "87af771d7f577931913089f9ca9a9f85d8a6238d59b2977f4c383d133c8abd3b" dependencies = [ + "blake2", + "digest 0.10.7", "lambdaworks-crypto", "lambdaworks-math", "lazy_static", @@ -10818,7 +10865,7 @@ dependencies = [ "cairo-lang-starknet-classes", "derive_more 0.99.20", "hex", - "indexmap 2.9.0", + "indexmap 2.10.0", "itertools 0.12.1", "num-bigint 0.4.6", "num-traits", @@ -10847,7 +10894,7 @@ dependencies = [ "blockifier", "chrono", "futures", - "indexmap 2.9.0", + "indexmap 2.10.0", "mempool_test_utils", "mockall", "papyrus_config", @@ -10907,7 +10954,7 @@ dependencies = [ "cairo-lang-starknet-classes", "enum-iterator", "http 0.2.12", - "indexmap 2.9.0", + "indexmap 2.10.0", "mockall", "mockito 0.31.1", "os_info", @@ -11068,7 +11115,7 @@ dependencies = [ "blockifier", "cairo-lang-starknet-classes", "futures", - "indexmap 2.9.0", + "indexmap 2.10.0", "itertools 0.12.1", "mempool_test_utils", "papyrus_common", @@ -11108,7 +11155,7 @@ version = "0.14.0-rc.3" dependencies = [ "assert_matches", "async-trait", - "indexmap 2.9.0", + "indexmap 2.10.0", "papyrus_base_layer", "papyrus_config", "pretty_assertions", @@ -11465,7 +11512,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.102", + "syn 2.0.104", ] [[package]] @@ -11478,7 +11525,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.102", + "syn 2.0.104", ] [[package]] @@ -11491,7 +11538,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.102", + "syn 2.0.104", ] [[package]] @@ -11533,9 +11580,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.102" +version = "2.0.104" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6397daf94fa90f058bd0fd88429dd9e5738999cca8d701813c80723add80462" +checksum = "17b6f705963418cdb9927482fa304bc562ece2fdd4f616084c50b7023b435a40" dependencies = [ "proc-macro2", "quote", @@ -11551,7 +11598,7 @@ dependencies = [ "paste", "proc-macro2", "quote", - "syn 2.0.102", + "syn 2.0.104", ] [[package]] @@ -11577,7 +11624,7 @@ checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" dependencies = [ "proc-macro2", "quote", - "syn 2.0.102", + "syn 2.0.104", ] [[package]] @@ -11683,12 +11730,11 @@ dependencies = [ [[package]] name = "term" -version = "1.0.2" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a984c8d058c627faaf5e8e2ed493fa3c51771889196de1016cf9c1c6e90d750" +checksum = "a43bddab41f8626c7bdaab872bbba75f8df5847b516d77c569c746e2ae5eb746" dependencies = [ - "home", - "windows-sys 0.59.0", + "windows-sys 0.60.2", ] [[package]] @@ -11724,7 +11770,7 @@ dependencies = [ "cfg-if", "proc-macro2", "quote", - "syn 2.0.102", + "syn 2.0.104", ] [[package]] @@ -11735,15 +11781,15 @@ checksum = "5c89e72a01ed4c579669add59014b9a524d609c0c88c6a585ce37485879f6ffb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.102", + "syn 2.0.104", "test-case-core", ] [[package]] name = "test-log" -version = "0.2.17" +version = "0.2.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7f46083d221181166e5b6f6b1e5f1d499f3a76888826e6cb1d057554157cd0f" +checksum = "1e33b98a582ea0be1168eba097538ee8dd4bbe0f2b01b22ac92ea30054e5be7b" dependencies = [ "env_logger", "test-log-macros", @@ -11752,13 +11798,13 @@ dependencies = [ [[package]] name = "test-log-macros" -version = "0.2.17" +version = "0.2.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "888d0c3c6db53c0fdab160d2ed5e12ba745383d3e85813f2ea0f2b1475ab553f" +checksum = "451b374529930d7601b1eef8d32bc79ae870b6079b069401709c2a8bf9e75f36" dependencies = [ "proc-macro2", "quote", - "syn 2.0.102", + "syn 2.0.104", ] [[package]] @@ -11787,7 +11833,7 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.102", + "syn 2.0.104", ] [[package]] @@ -11798,17 +11844,16 @@ checksum = "7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.102", + "syn 2.0.104", ] [[package]] name = "thread_local" -version = "1.1.8" +version = "1.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" +checksum = "f60246a4944f24f6e018aa17cdeffb7818b76356965d03b07d6a9886e8962185" dependencies = [ "cfg-if", - "once_cell", ] [[package]] @@ -11919,17 +11964,19 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.45.1" +version = "1.46.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75ef51a33ef1da925cea3e4eb122833cb377c61439ca401b770f54902b806779" +checksum = "0cc3a2344dafbe23a245241fe8b09735b521110d30fcefbbd5feb1797ca35d17" dependencies = [ "backtrace", "bytes", + "io-uring", "libc", "mio", "parking_lot", "pin-project-lite", "signal-hook-registry", + "slab", "socket2 0.5.10", "tokio-macros", "windows-sys 0.52.0", @@ -11943,7 +11990,7 @@ checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.102", + "syn 2.0.104", ] [[package]] @@ -12058,7 +12105,7 @@ version = "0.19.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" dependencies = [ - "indexmap 2.9.0", + "indexmap 2.10.0", "toml_datetime", "winnow 0.5.40", ] @@ -12069,12 +12116,12 @@ version = "0.22.27" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a" dependencies = [ - "indexmap 2.9.0", + "indexmap 2.10.0", "serde", "serde_spanned", "toml_datetime", "toml_write", - "winnow 0.7.11", + "winnow 0.7.12", ] [[package]] @@ -12163,13 +12210,13 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.29" +version = "0.1.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b1ffbcf9c6f6b99d386e7444eb608ba646ae452a36b39737deb9663b610f662" +checksum = "81383ab64e72a7a8b8e13130c49e3dab29def6d0c7d76a03087b3cf71c5c6903" dependencies = [ "proc-macro2", "quote", - "syn 2.0.102", + "syn 2.0.104", ] [[package]] @@ -12252,7 +12299,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "04659ddb06c87d233c566112c1c9c5b9e98256d9af50ec3bc9c8327f873a7568" dependencies = [ "quote", - "syn 2.0.102", + "syn 2.0.104", ] [[package]] @@ -12330,7 +12377,7 @@ checksum = "35f5380909ffc31b4de4f4bdf96b877175a016aa2ca98cee39fcfd8c4d53d952" dependencies = [ "proc-macro2", "quote", - "syn 2.0.102", + "syn 2.0.104", ] [[package]] @@ -12476,7 +12523,7 @@ dependencies = [ "base64 0.22.1", "log", "once_cell", - "rustls 0.23.27", + "rustls 0.23.29", "rustls-pki-types", "url", "webpki-roots 0.26.11", @@ -12678,7 +12725,7 @@ dependencies = [ "log", "proc-macro2", "quote", - "syn 2.0.102", + "syn 2.0.104", "wasm-bindgen-shared", ] @@ -12713,7 +12760,7 @@ checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" dependencies = [ "proc-macro2", "quote", - "syn 2.0.102", + "syn 2.0.104", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -12772,14 +12819,14 @@ version = "0.26.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "521bc38abb08001b01866da9f51eb7c5d647a19260e00054a8c7fd5f9e57f7a9" dependencies = [ - "webpki-roots 1.0.0", + "webpki-roots 1.0.1", ] [[package]] name = "webpki-roots" -version = "1.0.0" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2853738d1cc4f2da3a225c18ec6c3721abb31961096e9dbf5ab35fa88b19cfdb" +checksum = "8782dd5a41a24eed3a4f40b606249b3e236ca61adf1f25ea4d45c73de122b502" dependencies = [ "rustls-pki-types", ] @@ -12891,7 +12938,7 @@ checksum = "a47fddd13af08290e67f4acabf4b459f647552718f683a7b415d290ac744a836" dependencies = [ "proc-macro2", "quote", - "syn 2.0.102", + "syn 2.0.104", ] [[package]] @@ -12902,14 +12949,14 @@ checksum = "bd9211b69f8dcdfa817bfd14bf1c97c9188afa36f4750130fcdf3f400eca9fa8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.102", + "syn 2.0.104", ] [[package]] name = "windows-link" -version = "0.1.1" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76840935b766e1b0a05c0066835fb9ec80071d4c09a16f6bd5f7e655e3c14c38" +checksum = "5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a" [[package]] name = "windows-result" @@ -12980,6 +13027,15 @@ dependencies = [ "windows-targets 0.52.6", ] +[[package]] +name = "windows-sys" +version = "0.60.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" +dependencies = [ + "windows-targets 0.53.2", +] + [[package]] name = "windows-targets" version = "0.48.5" @@ -13013,9 +13069,9 @@ dependencies = [ [[package]] name = "windows-targets" -version = "0.53.0" +version = "0.53.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1e4c7e8ceaaf9cb7d7507c974735728ab453b67ef8f18febdd7c11fe59dca8b" +checksum = "c66f69fcc9ce11da9966ddb31a40968cad001c5bedeb5c2b82ede4253ab48aef" dependencies = [ "windows_aarch64_gnullvm 0.53.0", "windows_aarch64_msvc 0.53.0", @@ -13218,9 +13274,9 @@ dependencies = [ [[package]] name = "winnow" -version = "0.7.11" +version = "0.7.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74c7b26e3480b707944fc872477815d29a8e429d2f93a1ce000f5fa84a15cbcd" +checksum = "f3edebf492c8125044983378ecb5766203ad3b4c2f7a922bd7dd207f6d443e95" dependencies = [ "memchr", ] @@ -13317,9 +13373,9 @@ dependencies = [ [[package]] name = "xattr" -version = "1.5.0" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d65cbf2f12c15564212d48f4e3dfb87923d25d611f2aed18f4cb23f0413d89e" +checksum = "af3a19837351dc82ba89f8a125e22a3c475f05aba604acc023d62b2739ae2909" dependencies = [ "libc", "rustix 1.0.7", @@ -13327,9 +13383,9 @@ dependencies = [ [[package]] name = "xml-rs" -version = "0.8.26" +version = "0.8.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a62ce76d9b56901b19a74f19431b0d8b3bc7ca4ad685a746dfd78ca8f4fc6bda" +checksum = "6fd8403733700263c6eb89f192880191f1b83e332f7a20371ddcf421c4a337c7" [[package]] name = "xmltree" @@ -13427,28 +13483,28 @@ checksum = "38da3c9736e16c5d3c8c597a9aaa5d1fa565d0532ae05e27c24aa62fb32c0ab6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.102", + "syn 2.0.104", "synstructure", ] [[package]] name = "zerocopy" -version = "0.8.25" +version = "0.8.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1702d9583232ddb9174e01bb7c15a2ab8fb1bc6f227aa1233858c351a3ba0cb" +checksum = "1039dd0d3c310cf05de012d8a39ff557cb0d23087fd44cad61df08fc31907a2f" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.8.25" +version = "0.8.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28a6e20d751156648aa063f3800b706ee209a32c0b4d9f24be3d980b01be55ef" +checksum = "9ecf5b4cc5364572d7f4c329661bcc82724222973f2cab6f050a4e5c22f75181" dependencies = [ "proc-macro2", "quote", - "syn 2.0.102", + "syn 2.0.104", ] [[package]] @@ -13468,7 +13524,7 @@ checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" dependencies = [ "proc-macro2", "quote", - "syn 2.0.102", + "syn 2.0.104", "synstructure", ] @@ -13489,7 +13545,7 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.102", + "syn 2.0.104", ] [[package]] @@ -13522,7 +13578,7 @@ checksum = "5b96237efa0c878c64bd89c436f661be4e46b2f3eff1ebb976f7ef2321d2f58f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.102", + "syn 2.0.104", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index 7d0e215002b..96c770a73ee 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -100,8 +100,8 @@ cairo-lang-sierra = "2.12.0-dev.1" cairo-lang-sierra-to-casm = "2.12.0-dev.1" cairo-lang-starknet-classes = "2.12.0-dev.1" cairo-lang-utils = "2.12.0-dev.1" -cairo-native = { git = "https://github.com/lambdaclass/cairo_native", rev = "26f1f915d6be979898ed08544c0f1b127c4501bc" } -sierra-emu = { git = "https://github.com/lambdaclass/cairo_native", rev = "26f1f915d6be979898ed08544c0f1b127c4501bc" } +cairo-native = { path = "../cairo_native" } +sierra-emu = { git = "https://github.com/lambdaclass/cairo_native", rev = "06aef997d8b606cb18108405642013cc2988034e" } cairo-vm = "2.0.1" camelpaste = "0.1.0" chrono = "0.4.26" diff --git a/crates/blockifier/Cargo.toml b/crates/blockifier/Cargo.toml index 1d608ccf760..c80a8d8b702 100644 --- a/crates/blockifier/Cargo.toml +++ b/crates/blockifier/Cargo.toml @@ -13,6 +13,7 @@ workspace = true cairo_native = ["dep:cairo-native", "starknet_sierra_multicompile/cairo_native", "dep:sierra-emu"] with-trace-dump = ["cairo_native", "cairo-native/with-trace-dump"] with-libfunc-profiling = ["cairo_native", "cairo-native/with-libfunc-profiling"] +with-libfunc-counter = ["cairo_native", "cairo-native/with-libfunc-counter"] jemalloc = ["dep:tikv-jemallocator"] native_blockifier = [] node_api = [] diff --git a/crates/blockifier/src/execution/native/executor.rs b/crates/blockifier/src/execution/native/executor.rs index 1a41624ece1..dccc4c79a4c 100644 --- a/crates/blockifier/src/execution/native/executor.rs +++ b/crates/blockifier/src/execution/native/executor.rs @@ -3,8 +3,12 @@ use std::io::Write; use std::path::PathBuf; use std::sync::atomic::AtomicU64; use std::sync::Arc; +#[cfg(any(feature = "with-libfunc-profiling", feature = "with-libfunc-counter"))] +use std::{ + collections::HashMap, + sync::{LazyLock, Mutex}, +}; -use cairo_lang_sierra::ids::ConcreteLibfuncId; use cairo_lang_sierra::program::Program; use cairo_lang_starknet_classes::compiler_version::VersionId; use cairo_lang_starknet_classes::contract_class::ContractEntryPoints; @@ -17,9 +21,8 @@ use sierra_emu::VirtualMachine; use starknet_types_core::felt::Felt; #[cfg(feature = "with-libfunc-profiling")] use { + cairo_lang_sierra::ids::ConcreteLibfuncId, cairo_native::metadata::profiler::LibfuncProfileData, - std::collections::HashMap, - std::sync::{LazyLock, Mutex}, }; use super::syscall_handler::NativeSyscallHandler; @@ -47,6 +50,28 @@ type ProfilesByBlockTx = HashMap; pub static LIBFUNC_PROFILES_MAP: LazyLock> = LazyLock::new(|| Mutex::new(HashMap::new())); +#[cfg(feature = "with-libfunc-counter")] +pub struct EntrypointCounters { + pub class_hash: Felt, + pub selector: Felt, + pub counters: Vec, + pub program: Program, +} +#[cfg(feature = "with-libfunc-counter")] +pub struct TransactionCounters { + pub block_number: u64, + pub tx_hash: String, + pub entrypoint_counters: Vec, +} + +#[cfg(feature = "with-libfunc-counter")] +// Map a transaction hash to its profile +type CountersByBlockTx = HashMap; + +#[cfg(feature = "with-libfunc-counter")] +pub static LIBFUNC_COUNTERS_MAP: LazyLock> = + LazyLock::new(|| Mutex::new(HashMap::new())); + #[derive(Debug)] pub enum ContractExecutor { Aot(AotContractExecutor), @@ -54,6 +79,8 @@ pub enum ContractExecutor { // must use a different variant as we need `Program` for trace feature #[cfg(any(feature = "with-trace-dump", feature = "with-libfunc-profiling"))] AotWithProgram((AotContractExecutor, Program)), + #[cfg(feature = "with-libfunc-counter")] + AotWithLibfuncCounter((AotContractExecutor, Program)), } impl From for ContractExecutor { @@ -250,6 +277,86 @@ impl ContractExecutor { *libfunc_profiling_trace_id = libfunc_profiling_old_trace_id; } + result + } + #[cfg(feature = "with-libfunc-counter")] + ContractExecutor::AotWithLibfuncCounter((executor, program)) => { + use cairo_native::metadata::libfunc_counter::libfunc_counter_runtime::{ + CountersArrayGuard, + LIBFUNC_COUNTER, + }; + use cairo_native::metadata::libfunc_counter::{ + libfunc_counter_runtime, + LibfuncCounterBinding, + }; + + static COUNTER: AtomicU64 = AtomicU64::new(0); + + let libfuncs_amount = program.libfunc_declarations.len(); + let class_hash = *syscall_handler.base.call.class_hash; + let tx_hash = syscall_handler + .base + .context + .tx_context + .tx_info + .transaction_hash() + .to_hex_string(); + let block_number = + syscall_handler.base.context.tx_context.block_context.block_info.block_number.0; + let counter = COUNTER.fetch_add(1, std::sync::atomic::Ordering::Relaxed); + + let counter_id = unsafe { + let counter_id_ptr = executor + .find_symbol_ptr(LibfuncCounterBinding::CounterId.symbol()) + .unwrap(); + counter_id_ptr.cast::().as_mut().unwrap() + }; + + // Save the current then array of counters to restore it after the + // execution. + let array_counter_guard = CountersArrayGuard::init(libfuncs_amount); + let counter_id_old = *counter_id; + + *counter_id = counter; + + let result = executor.run(selector, args, gas, builtin_costs, syscall_handler); + + let counter_id_ptr = + executor.find_symbol_ptr(LibfuncCounterBinding::CounterId.symbol()).unwrap(); + + unsafe { + libfunc_counter_runtime::store_and_free_counters_array( + counter_id_ptr as *mut u64, + libfuncs_amount, + ); + } + + drop(array_counter_guard); + + // Retreive the libfunc counter for current execution + let counters = LIBFUNC_COUNTER.lock().unwrap().remove(&counter).unwrap(); + + let entrypoint_counter = + EntrypointCounters { class_hash, selector, counters, program: program.clone() }; + + let mut libfunc_counters_map = LIBFUNC_COUNTERS_MAP.lock().unwrap(); + + match libfunc_counters_map.get_mut(&tx_hash) { + Some(tx_counters) => { + tx_counters.entrypoint_counters.push(entrypoint_counter); + } + None => { + let tx_counter = TransactionCounters { + block_number, + tx_hash: tx_hash.clone(), + entrypoint_counters: vec![entrypoint_counter], + }; + libfunc_counters_map.insert(tx_hash, tx_counter); + } + }; + + *counter_id = counter_id_old; + result } }