diff --git a/Cargo.lock b/Cargo.lock index 1c291482..360e9e30 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -30,6 +30,18 @@ dependencies = [ "version_check", ] +[[package]] +name = "ahash" +version = "0.8.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a15f179cd60c4584b8a8c596927aadc462e27f2ca70c04e0071964a73ba7a75" +dependencies = [ + "cfg-if", + "once_cell", + "version_check", + "zerocopy", +] + [[package]] name = "aho-corasick" version = "1.1.3" @@ -858,6 +870,27 @@ version = "1.0.100" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a23eb6b1614318a8071c9b2521f36b424b2c83db5eb3a0fead4a6c0809af6e61" +[[package]] +name = "ark-ec" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43d68f2d516162846c1238e755a7c4d131b892b70cc70c471a8e3ca3ed818fce" +dependencies = [ + "ahash 0.8.12", + "ark-ff 0.5.0", + "ark-poly", + "ark-serialize 0.5.0", + "ark-std 0.5.0", + "educe 0.6.0", + "fnv", + "hashbrown 0.15.5", + "itertools 0.13.0", + "num-bigint", + "num-integer", + "num-traits", + "zeroize", +] + [[package]] name = "ark-ff" version = "0.3.0" @@ -984,6 +1017,43 @@ dependencies = [ "syn 2.0.108", ] +[[package]] +name = "ark-poly" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "579305839da207f02b89cd1679e50e67b4331e2f9294a57693e5051b7703fe27" +dependencies = [ + "ahash 0.8.12", + "ark-ff 0.5.0", + "ark-serialize 0.5.0", + "ark-std 0.5.0", + "educe 0.6.0", + "fnv", + "hashbrown 0.15.5", +] + +[[package]] +name = "ark-secp256k1" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8bd211c48debd3037b48873a7aa22c3aba034e83388aa4124795c9f220b88c7" +dependencies = [ + "ark-ec", + "ark-ff 0.5.0", + "ark-std 0.5.0", +] + +[[package]] +name = "ark-secp256r1" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5cf8be5820de567729bfa73a410ddd07cec8ad102d9a4bf61fd6b2e60db264e8" +dependencies = [ + "ark-ec", + "ark-ff 0.5.0", + "ark-std 0.5.0", +] + [[package]] name = "ark-serialize" version = "0.3.0" @@ -1011,12 +1081,24 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f4d068aaf107ebcd7dfb52bc748f8030e0fc930ac8e360146ca54c1203088f7" dependencies = [ + "ark-serialize-derive", "ark-std 0.5.0", "arrayvec", "digest 0.10.7", "num-bigint", ] +[[package]] +name = "ark-serialize-derive" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "213888f660fddcca0d257e88e54ac05bca01885f258ccdf695bafd77031bb69d" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.108", +] + [[package]] name = "ark-std" version = "0.3.0" @@ -1382,6 +1464,12 @@ dependencies = [ "cfg_aliases", ] +[[package]] +name = "boxcar" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "36f64beae40a84da1b4b26ff2761a5b895c12adc41dc25aaee1c4f2bbfe97a6e" + [[package]] name = "bstr" version = "1.12.0" @@ -1490,13 +1578,26 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ade8366b8bd5ba243f0a58f036cc0ca8a2f069cff1a2351ef1cac6b083e16fc0" +[[package]] +name = "cairo-lang-casm" +version = "2.12.0" +source = "git+https://github.com/starkware-libs/cairo.git?rev=86eb25173f9d8700adbd2770406d715fbf1bb9f8#86eb25173f9d8700adbd2770406d715fbf1bb9f8" +dependencies = [ + "cairo-lang-utils 2.12.0", + "indoc", + "num-bigint", + "num-traits", + "parity-scale-codec", + "serde", +] + [[package]] name = "cairo-lang-casm" version = "2.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7d1d84a85b59c753aa4a7f0c455a5c815e0aebb89faf0c8ab366b0d87c0bb934" dependencies = [ - "cairo-lang-utils", + "cairo-lang-utils 2.12.3", "indoc", "num-bigint", "num-traits", @@ -1504,6 +1605,32 @@ dependencies = [ "serde", ] +[[package]] +name = "cairo-lang-compiler" +version = "2.12.0" +source = "git+https://github.com/starkware-libs/cairo.git?rev=86eb25173f9d8700adbd2770406d715fbf1bb9f8#86eb25173f9d8700adbd2770406d715fbf1bb9f8" +dependencies = [ + "anyhow", + "cairo-lang-defs 2.12.0", + "cairo-lang-diagnostics 2.12.0", + "cairo-lang-filesystem 2.12.0", + "cairo-lang-lowering 2.12.0", + "cairo-lang-parser 2.12.0", + "cairo-lang-project 2.12.0", + "cairo-lang-runnable-utils 2.12.0", + "cairo-lang-semantic 2.12.0", + "cairo-lang-sierra 2.12.0", + "cairo-lang-sierra-generator 2.12.0", + "cairo-lang-syntax 2.12.0", + "cairo-lang-utils 2.12.0", + "indoc", + "rayon", + "salsa", + "semver 1.0.27", + "smol_str", + "thiserror 2.0.17", +] + [[package]] name = "cairo-lang-compiler" version = "2.12.3" @@ -1511,18 +1638,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3a5cbeb4e134cf29c63d18a235beae3f124bef2824ec45d09d6e18a0c334e509" dependencies = [ "anyhow", - "cairo-lang-defs", - "cairo-lang-diagnostics", - "cairo-lang-filesystem", - "cairo-lang-lowering", - "cairo-lang-parser", - "cairo-lang-project", - "cairo-lang-runnable-utils", - "cairo-lang-semantic", - "cairo-lang-sierra", - "cairo-lang-sierra-generator", - "cairo-lang-syntax", - "cairo-lang-utils", + "cairo-lang-defs 2.12.3", + "cairo-lang-diagnostics 2.12.3", + "cairo-lang-filesystem 2.12.3", + "cairo-lang-lowering 2.12.3", + "cairo-lang-parser 2.12.3", + "cairo-lang-project 2.12.3", + "cairo-lang-runnable-utils 2.12.3", + "cairo-lang-semantic 2.12.3", + "cairo-lang-sierra 2.12.3", + "cairo-lang-sierra-generator 2.12.3", + "cairo-lang-syntax 2.12.3", + "cairo-lang-utils 2.12.3", "indoc", "rayon", "rust-analyzer-salsa", @@ -1531,13 +1658,44 @@ dependencies = [ "thiserror 2.0.17", ] +[[package]] +name = "cairo-lang-debug" +version = "2.12.0" +source = "git+https://github.com/starkware-libs/cairo.git?rev=86eb25173f9d8700adbd2770406d715fbf1bb9f8#86eb25173f9d8700adbd2770406d715fbf1bb9f8" +dependencies = [ + "cairo-lang-utils 2.12.0", + "id-arena", + "salsa", +] + [[package]] name = "cairo-lang-debug" version = "2.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fa5311e1c31d413f3fa34e40e48b662c19151f0fb4b10467d627a52c93eae918" dependencies = [ - "cairo-lang-utils", + "cairo-lang-utils 2.12.3", +] + +[[package]] +name = "cairo-lang-defs" +version = "2.12.0" +source = "git+https://github.com/starkware-libs/cairo.git?rev=86eb25173f9d8700adbd2770406d715fbf1bb9f8#86eb25173f9d8700adbd2770406d715fbf1bb9f8" +dependencies = [ + "bincode", + "cairo-lang-debug 2.12.0", + "cairo-lang-diagnostics 2.12.0", + "cairo-lang-filesystem 2.12.0", + "cairo-lang-parser 2.12.0", + "cairo-lang-proc-macros 2.12.0", + "cairo-lang-syntax 2.12.0", + "cairo-lang-utils 2.12.0", + "itertools 0.14.0", + "salsa", + "serde", + "smol_str", + "typetag", + "xxhash-rust", ] [[package]] @@ -1547,12 +1705,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "872feccf7b8f70ed5d74c40548bf974fbcc5069b2ea1ae15a9b8f1ab911c536b" dependencies = [ "bincode", - "cairo-lang-debug", - "cairo-lang-diagnostics", - "cairo-lang-filesystem", - "cairo-lang-parser", - "cairo-lang-syntax", - "cairo-lang-utils", + "cairo-lang-debug 2.12.3", + "cairo-lang-diagnostics 2.12.3", + "cairo-lang-filesystem 2.12.3", + "cairo-lang-parser 2.12.3", + "cairo-lang-syntax 2.12.3", + "cairo-lang-utils 2.12.3", "itertools 0.14.0", "rust-analyzer-salsa", "serde", @@ -1561,42 +1719,122 @@ dependencies = [ "xxhash-rust", ] +[[package]] +name = "cairo-lang-diagnostics" +version = "2.12.0" +source = "git+https://github.com/starkware-libs/cairo.git?rev=86eb25173f9d8700adbd2770406d715fbf1bb9f8#86eb25173f9d8700adbd2770406d715fbf1bb9f8" +dependencies = [ + "cairo-lang-debug 2.12.0", + "cairo-lang-filesystem 2.12.0", + "cairo-lang-utils 2.12.0", + "itertools 0.14.0", + "salsa", +] + [[package]] name = "cairo-lang-diagnostics" version = "2.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5d0e7c551a634708366af3003176f2f9cdea56fd4a91c834ddd802030366f6a5" dependencies = [ - "cairo-lang-debug", - "cairo-lang-filesystem", - "cairo-lang-utils", + "cairo-lang-debug 2.12.3", + "cairo-lang-filesystem 2.12.3", + "cairo-lang-utils 2.12.3", "itertools 0.14.0", ] +[[package]] +name = "cairo-lang-eq-solver" +version = "2.12.0" +source = "git+https://github.com/starkware-libs/cairo.git?rev=86eb25173f9d8700adbd2770406d715fbf1bb9f8#86eb25173f9d8700adbd2770406d715fbf1bb9f8" +dependencies = [ + "cairo-lang-utils 2.12.0", + "good_lp", +] + [[package]] name = "cairo-lang-eq-solver" version = "2.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed04fc3f52d68157f359257c477e30f68dec36bbf568c85d567812583cd5f9c8" dependencies = [ - "cairo-lang-utils", + "cairo-lang-utils 2.12.3", "good_lp", ] +[[package]] +name = "cairo-lang-executable" +version = "2.12.0" +source = "git+https://github.com/starkware-libs/cairo.git?rev=86eb25173f9d8700adbd2770406d715fbf1bb9f8#86eb25173f9d8700adbd2770406d715fbf1bb9f8" +dependencies = [ + "anyhow", + "cairo-lang-casm 2.12.0", + "cairo-lang-compiler 2.12.0", + "cairo-lang-debug 2.12.0", + "cairo-lang-defs 2.12.0", + "cairo-lang-filesystem 2.12.0", + "cairo-lang-lowering 2.12.0", + "cairo-lang-plugins 2.12.0", + "cairo-lang-runnable-utils 2.12.0", + "cairo-lang-semantic 2.12.0", + "cairo-lang-sierra-generator 2.12.0", + "cairo-lang-sierra-to-casm 2.12.0", + "cairo-lang-syntax 2.12.0", + "cairo-lang-utils 2.12.0", + "cairo-vm 2.0.1", + "indoc", + "itertools 0.14.0", + "serde", +] + +[[package]] +name = "cairo-lang-filesystem" +version = "2.12.0" +source = "git+https://github.com/starkware-libs/cairo.git?rev=86eb25173f9d8700adbd2770406d715fbf1bb9f8#86eb25173f9d8700adbd2770406d715fbf1bb9f8" +dependencies = [ + "cairo-lang-debug 2.12.0", + "cairo-lang-proc-macros 2.12.0", + "cairo-lang-utils 2.12.0", + "path-clean", + "salsa", + "semver 1.0.27", + "serde", + "smol_str", + "toml 0.9.8", +] + [[package]] name = "cairo-lang-filesystem" version = "2.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ca1835a43a00a90d5cd4ca3f6bb9178ec450d55458e8b56ac34ca1d6d0ccf58f" dependencies = [ - "cairo-lang-debug", - "cairo-lang-utils", + "cairo-lang-debug 2.12.3", + "cairo-lang-utils 2.12.3", "path-clean", "rust-analyzer-salsa", "semver 1.0.27", "serde", "smol_str", - "toml", + "toml 0.8.23", +] + +[[package]] +name = "cairo-lang-formatter" +version = "2.12.0" +source = "git+https://github.com/starkware-libs/cairo.git?rev=86eb25173f9d8700adbd2770406d715fbf1bb9f8#86eb25173f9d8700adbd2770406d715fbf1bb9f8" +dependencies = [ + "anyhow", + "cairo-lang-diagnostics 2.12.0", + "cairo-lang-filesystem 2.12.0", + "cairo-lang-parser 2.12.0", + "cairo-lang-syntax 2.12.0", + "cairo-lang-utils 2.12.0", + "diffy", + "ignore", + "itertools 0.14.0", + "serde", + "thiserror 2.0.17", ] [[package]] @@ -1606,11 +1844,11 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3bd0736456004f1d334bad5b366c6933c4b856a23a5dfade96cfe0a1c5eb3ddb" dependencies = [ "anyhow", - "cairo-lang-diagnostics", - "cairo-lang-filesystem", - "cairo-lang-parser", - "cairo-lang-syntax", - "cairo-lang-utils", + "cairo-lang-diagnostics 2.12.3", + "cairo-lang-filesystem 2.12.3", + "cairo-lang-parser 2.12.3", + "cairo-lang-syntax 2.12.3", + "cairo-lang-utils 2.12.3", "diffy", "ignore", "itertools 0.14.0", @@ -1618,6 +1856,33 @@ dependencies = [ "thiserror 2.0.17", ] +[[package]] +name = "cairo-lang-lowering" +version = "2.12.0" +source = "git+https://github.com/starkware-libs/cairo.git?rev=86eb25173f9d8700adbd2770406d715fbf1bb9f8#86eb25173f9d8700adbd2770406d715fbf1bb9f8" +dependencies = [ + "assert_matches", + "bincode", + "cairo-lang-debug 2.12.0", + "cairo-lang-defs 2.12.0", + "cairo-lang-diagnostics 2.12.0", + "cairo-lang-filesystem 2.12.0", + "cairo-lang-parser 2.12.0", + "cairo-lang-proc-macros 2.12.0", + "cairo-lang-semantic 2.12.0", + "cairo-lang-syntax 2.12.0", + "cairo-lang-utils 2.12.0", + "id-arena", + "indent", + "itertools 0.14.0", + "log", + "num-bigint", + "num-integer", + "num-traits", + "salsa", + "serde", +] + [[package]] name = "cairo-lang-lowering" version = "2.12.3" @@ -1626,15 +1891,15 @@ checksum = "fd2e1d66c241fba4f3dc43e42956001940298fb4ea5970acfc8b2db8bf4b6629" dependencies = [ "assert_matches", "bincode", - "cairo-lang-debug", - "cairo-lang-defs", - "cairo-lang-diagnostics", - "cairo-lang-filesystem", - "cairo-lang-parser", - "cairo-lang-proc-macros", - "cairo-lang-semantic", - "cairo-lang-syntax", - "cairo-lang-utils", + "cairo-lang-debug 2.12.3", + "cairo-lang-defs 2.12.3", + "cairo-lang-diagnostics 2.12.3", + "cairo-lang-filesystem 2.12.3", + "cairo-lang-parser 2.12.3", + "cairo-lang-proc-macros 2.12.3", + "cairo-lang-semantic 2.12.3", + "cairo-lang-syntax 2.12.3", + "cairo-lang-utils 2.12.3", "id-arena", "itertools 0.14.0", "log", @@ -1645,18 +1910,38 @@ dependencies = [ "serde", ] +[[package]] +name = "cairo-lang-parser" +version = "2.12.0" +source = "git+https://github.com/starkware-libs/cairo.git?rev=86eb25173f9d8700adbd2770406d715fbf1bb9f8#86eb25173f9d8700adbd2770406d715fbf1bb9f8" +dependencies = [ + "cairo-lang-diagnostics 2.12.0", + "cairo-lang-filesystem 2.12.0", + "cairo-lang-primitive-token", + "cairo-lang-proc-macros 2.12.0", + "cairo-lang-syntax 2.12.0", + "cairo-lang-syntax-codegen 2.12.0", + "cairo-lang-utils 2.12.0", + "colored", + "itertools 0.14.0", + "num-bigint", + "num-traits", + "salsa", + "unescaper", +] + [[package]] name = "cairo-lang-parser" version = "2.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "15c3ab263d4afd34a002dc0e37f9bacca734aa133dbbb8540651d28308977a68" dependencies = [ - "cairo-lang-diagnostics", - "cairo-lang-filesystem", + "cairo-lang-diagnostics 2.12.3", + "cairo-lang-filesystem 2.12.3", "cairo-lang-primitive-token", - "cairo-lang-syntax", - "cairo-lang-syntax-codegen", - "cairo-lang-utils", + "cairo-lang-syntax 2.12.3", + "cairo-lang-syntax-codegen 2.12.3", + "cairo-lang-utils 2.12.3", "colored", "itertools 0.14.0", "num-bigint", @@ -1666,18 +1951,35 @@ dependencies = [ "unescaper", ] +[[package]] +name = "cairo-lang-plugins" +version = "2.12.0" +source = "git+https://github.com/starkware-libs/cairo.git?rev=86eb25173f9d8700adbd2770406d715fbf1bb9f8#86eb25173f9d8700adbd2770406d715fbf1bb9f8" +dependencies = [ + "cairo-lang-defs 2.12.0", + "cairo-lang-diagnostics 2.12.0", + "cairo-lang-filesystem 2.12.0", + "cairo-lang-parser 2.12.0", + "cairo-lang-syntax 2.12.0", + "cairo-lang-utils 2.12.0", + "indent", + "indoc", + "itertools 0.14.0", + "salsa", +] + [[package]] name = "cairo-lang-plugins" version = "2.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "566059584384c12fa598ae0e0509fd3d12b3985a25872de22e37245c4bc5762c" dependencies = [ - "cairo-lang-defs", - "cairo-lang-diagnostics", - "cairo-lang-filesystem", - "cairo-lang-parser", - "cairo-lang-syntax", - "cairo-lang-utils", + "cairo-lang-defs 2.12.3", + "cairo-lang-diagnostics 2.12.3", + "cairo-lang-filesystem 2.12.3", + "cairo-lang-parser 2.12.3", + "cairo-lang-syntax 2.12.3", + "cairo-lang-utils 2.12.3", "indent", "indoc", "itertools 0.14.0", @@ -1691,28 +1993,70 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "123ac0ecadf31bacae77436d72b88fa9caef2b8e92c89ce63a125ae911a12fae" +[[package]] +name = "cairo-lang-proc-macros" +version = "2.12.0" +source = "git+https://github.com/starkware-libs/cairo.git?rev=86eb25173f9d8700adbd2770406d715fbf1bb9f8#86eb25173f9d8700adbd2770406d715fbf1bb9f8" +dependencies = [ + "cairo-lang-debug 2.12.0", + "cairo-lang-utils 2.12.0", + "proc-macro2", + "quote", + "salsa", + "syn 2.0.108", +] + [[package]] name = "cairo-lang-proc-macros" version = "2.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "61599d8cac760505d1913fa5d7dddcf019f22d47f0748ff66b1b58afe1858b62" dependencies = [ - "cairo-lang-debug", + "cairo-lang-debug 2.12.3", "quote", "syn 2.0.108", ] +[[package]] +name = "cairo-lang-project" +version = "2.12.0" +source = "git+https://github.com/starkware-libs/cairo.git?rev=86eb25173f9d8700adbd2770406d715fbf1bb9f8#86eb25173f9d8700adbd2770406d715fbf1bb9f8" +dependencies = [ + "cairo-lang-filesystem 2.12.0", + "cairo-lang-utils 2.12.0", + "serde", + "thiserror 2.0.17", + "toml 0.9.8", +] + [[package]] name = "cairo-lang-project" version = "2.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "99635e2569cebc31583110b417e6a410990a494c7d56998f2be0a169a1158456" dependencies = [ - "cairo-lang-filesystem", - "cairo-lang-utils", + "cairo-lang-filesystem 2.12.3", + "cairo-lang-utils 2.12.3", "serde", "thiserror 2.0.17", - "toml", + "toml 0.8.23", +] + +[[package]] +name = "cairo-lang-runnable-utils" +version = "2.12.0" +source = "git+https://github.com/starkware-libs/cairo.git?rev=86eb25173f9d8700adbd2770406d715fbf1bb9f8#86eb25173f9d8700adbd2770406d715fbf1bb9f8" +dependencies = [ + "cairo-lang-casm 2.12.0", + "cairo-lang-sierra 2.12.0", + "cairo-lang-sierra-ap-change 2.12.0", + "cairo-lang-sierra-gas 2.12.0", + "cairo-lang-sierra-to-casm 2.12.0", + "cairo-lang-sierra-type-size 2.12.0", + "cairo-lang-utils 2.12.0", + "cairo-vm 2.0.1", + "itertools 0.14.0", + "thiserror 2.0.17", ] [[package]] @@ -1721,34 +2065,89 @@ version = "2.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f747c3d433ec5e82576e59852fd8c86a802fefe55e7bdbb9c0db61adb1a40e7b" dependencies = [ - "cairo-lang-casm", - "cairo-lang-sierra", - "cairo-lang-sierra-ap-change", - "cairo-lang-sierra-gas", - "cairo-lang-sierra-to-casm", - "cairo-lang-sierra-type-size", - "cairo-lang-utils", + "cairo-lang-casm 2.12.3", + "cairo-lang-sierra 2.12.3", + "cairo-lang-sierra-ap-change 2.12.3", + "cairo-lang-sierra-gas 2.12.3", + "cairo-lang-sierra-to-casm 2.12.3", + "cairo-lang-sierra-type-size 2.12.3", + "cairo-lang-utils 2.12.3", "cairo-vm 2.5.0", "itertools 0.14.0", "thiserror 2.0.17", ] +[[package]] +name = "cairo-lang-runner" +version = "2.12.0" +source = "git+https://github.com/starkware-libs/cairo.git?rev=86eb25173f9d8700adbd2770406d715fbf1bb9f8#86eb25173f9d8700adbd2770406d715fbf1bb9f8" +dependencies = [ + "ark-ff 0.5.0", + "ark-secp256k1", + "ark-secp256r1", + "cairo-lang-casm 2.12.0", + "cairo-lang-lowering 2.12.0", + "cairo-lang-runnable-utils 2.12.0", + "cairo-lang-sierra 2.12.0", + "cairo-lang-sierra-generator 2.12.0", + "cairo-lang-sierra-to-casm 2.12.0", + "cairo-lang-starknet 2.12.0", + "cairo-lang-utils 2.12.0", + "cairo-vm 2.0.1", + "clap", + "itertools 0.14.0", + "keccak", + "num-bigint", + "num-integer", + "num-traits", + "rand 0.9.2", + "serde", + "sha2", + "starknet-types-core 0.1.7", + "thiserror 2.0.17", +] + +[[package]] +name = "cairo-lang-semantic" +version = "2.12.0" +source = "git+https://github.com/starkware-libs/cairo.git?rev=86eb25173f9d8700adbd2770406d715fbf1bb9f8#86eb25173f9d8700adbd2770406d715fbf1bb9f8" +dependencies = [ + "cairo-lang-debug 2.12.0", + "cairo-lang-defs 2.12.0", + "cairo-lang-diagnostics 2.12.0", + "cairo-lang-filesystem 2.12.0", + "cairo-lang-parser 2.12.0", + "cairo-lang-plugins 2.12.0", + "cairo-lang-proc-macros 2.12.0", + "cairo-lang-syntax 2.12.0", + "cairo-lang-test-utils 2.12.0", + "cairo-lang-utils 2.12.0", + "id-arena", + "indoc", + "itertools 0.14.0", + "num-bigint", + "num-traits", + "salsa", + "sha3", + "toml 0.9.8", +] + [[package]] name = "cairo-lang-semantic" version = "2.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bf1e01333b127fa3733f2f93b3febc45219ef55b807d196f298cadea6ad8fe44" dependencies = [ - "cairo-lang-debug", - "cairo-lang-defs", - "cairo-lang-diagnostics", - "cairo-lang-filesystem", - "cairo-lang-parser", - "cairo-lang-plugins", - "cairo-lang-proc-macros", - "cairo-lang-syntax", - "cairo-lang-test-utils", - "cairo-lang-utils", + "cairo-lang-debug 2.12.3", + "cairo-lang-defs 2.12.3", + "cairo-lang-diagnostics 2.12.3", + "cairo-lang-filesystem 2.12.3", + "cairo-lang-parser 2.12.3", + "cairo-lang-plugins 2.12.3", + "cairo-lang-proc-macros 2.12.3", + "cairo-lang-syntax 2.12.3", + "cairo-lang-test-utils 2.12.3", + "cairo-lang-utils 2.12.3", "id-arena", "indoc", "itertools 0.14.0", @@ -1757,7 +2156,33 @@ dependencies = [ "rust-analyzer-salsa", "sha3", "smol_str", - "toml", + "toml 0.8.23", +] + +[[package]] +name = "cairo-lang-sierra" +version = "2.12.0" +source = "git+https://github.com/starkware-libs/cairo.git?rev=86eb25173f9d8700adbd2770406d715fbf1bb9f8#86eb25173f9d8700adbd2770406d715fbf1bb9f8" +dependencies = [ + "anyhow", + "cairo-lang-utils 2.12.0", + "const-fnv1a-hash", + "convert_case", + "derivative", + "itertools 0.14.0", + "lalrpop", + "lalrpop-util", + "num-bigint", + "num-integer", + "num-traits", + "regex", + "serde", + "serde_json", + "sha3", + "smol_str", + "starknet-types-core 0.1.7", + "thiserror 2.0.17", + "vector-map", ] [[package]] @@ -1767,7 +2192,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "300655046f505cf806a918918e5397b20c22b579d78c2ef09bc7d4d59fd733be" dependencies = [ "anyhow", - "cairo-lang-utils", + "cairo-lang-utils 2.12.3", "const-fnv1a-hash", "convert_case", "derivative", @@ -1787,16 +2212,46 @@ dependencies = [ "thiserror 2.0.17", ] +[[package]] +name = "cairo-lang-sierra-ap-change" +version = "2.12.0" +source = "git+https://github.com/starkware-libs/cairo.git?rev=86eb25173f9d8700adbd2770406d715fbf1bb9f8#86eb25173f9d8700adbd2770406d715fbf1bb9f8" +dependencies = [ + "cairo-lang-eq-solver 2.12.0", + "cairo-lang-sierra 2.12.0", + "cairo-lang-sierra-type-size 2.12.0", + "cairo-lang-utils 2.12.0", + "itertools 0.14.0", + "num-bigint", + "num-traits", + "thiserror 2.0.17", +] + [[package]] name = "cairo-lang-sierra-ap-change" version = "2.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0c51190f463ac9f7d4a2ce0e0345cfc92334589811a7114eeeec84029999d7f1" dependencies = [ - "cairo-lang-eq-solver", - "cairo-lang-sierra", - "cairo-lang-sierra-type-size", - "cairo-lang-utils", + "cairo-lang-eq-solver 2.12.3", + "cairo-lang-sierra 2.12.3", + "cairo-lang-sierra-type-size 2.12.3", + "cairo-lang-utils 2.12.3", + "itertools 0.14.0", + "num-bigint", + "num-traits", + "thiserror 2.0.17", +] + +[[package]] +name = "cairo-lang-sierra-gas" +version = "2.12.0" +source = "git+https://github.com/starkware-libs/cairo.git?rev=86eb25173f9d8700adbd2770406d715fbf1bb9f8#86eb25173f9d8700adbd2770406d715fbf1bb9f8" +dependencies = [ + "cairo-lang-eq-solver 2.12.0", + "cairo-lang-sierra 2.12.0", + "cairo-lang-sierra-type-size 2.12.0", + "cairo-lang-utils 2.12.0", "itertools 0.14.0", "num-bigint", "num-traits", @@ -1809,32 +2264,56 @@ version = "2.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bb0d0f038acd79aedcadad4ad2ad928b0881c4e96a2d9ad0e0b3173a6111f313" dependencies = [ - "cairo-lang-eq-solver", - "cairo-lang-sierra", - "cairo-lang-sierra-type-size", - "cairo-lang-utils", + "cairo-lang-eq-solver 2.12.3", + "cairo-lang-sierra 2.12.3", + "cairo-lang-sierra-type-size 2.12.3", + "cairo-lang-utils 2.12.3", "itertools 0.14.0", "num-bigint", "num-traits", "thiserror 2.0.17", ] +[[package]] +name = "cairo-lang-sierra-generator" +version = "2.12.0" +source = "git+https://github.com/starkware-libs/cairo.git?rev=86eb25173f9d8700adbd2770406d715fbf1bb9f8#86eb25173f9d8700adbd2770406d715fbf1bb9f8" +dependencies = [ + "cairo-lang-debug 2.12.0", + "cairo-lang-defs 2.12.0", + "cairo-lang-diagnostics 2.12.0", + "cairo-lang-filesystem 2.12.0", + "cairo-lang-lowering 2.12.0", + "cairo-lang-parser 2.12.0", + "cairo-lang-proc-macros 2.12.0", + "cairo-lang-semantic 2.12.0", + "cairo-lang-sierra 2.12.0", + "cairo-lang-syntax 2.12.0", + "cairo-lang-utils 2.12.0", + "itertools 0.14.0", + "num-traits", + "salsa", + "serde", + "serde_json", + "smol_str", +] + [[package]] name = "cairo-lang-sierra-generator" version = "2.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8bc8d2a89273ba24529319982a4a7833f2a6c4a87752baea2bc70ceb4b3285b7" dependencies = [ - "cairo-lang-debug", - "cairo-lang-defs", - "cairo-lang-diagnostics", - "cairo-lang-filesystem", - "cairo-lang-lowering", - "cairo-lang-parser", - "cairo-lang-semantic", - "cairo-lang-sierra", - "cairo-lang-syntax", - "cairo-lang-utils", + "cairo-lang-debug 2.12.3", + "cairo-lang-defs 2.12.3", + "cairo-lang-diagnostics 2.12.3", + "cairo-lang-filesystem 2.12.3", + "cairo-lang-lowering 2.12.3", + "cairo-lang-parser 2.12.3", + "cairo-lang-semantic 2.12.3", + "cairo-lang-sierra 2.12.3", + "cairo-lang-syntax 2.12.3", + "cairo-lang-utils 2.12.3", "itertools 0.14.0", "num-traits", "rust-analyzer-salsa", @@ -1843,6 +2322,26 @@ dependencies = [ "smol_str", ] +[[package]] +name = "cairo-lang-sierra-to-casm" +version = "2.12.0" +source = "git+https://github.com/starkware-libs/cairo.git?rev=86eb25173f9d8700adbd2770406d715fbf1bb9f8#86eb25173f9d8700adbd2770406d715fbf1bb9f8" +dependencies = [ + "assert_matches", + "cairo-lang-casm 2.12.0", + "cairo-lang-sierra 2.12.0", + "cairo-lang-sierra-ap-change 2.12.0", + "cairo-lang-sierra-gas 2.12.0", + "cairo-lang-sierra-type-size 2.12.0", + "cairo-lang-utils 2.12.0", + "indoc", + "itertools 0.14.0", + "num-bigint", + "num-traits", + "starknet-types-core 0.1.7", + "thiserror 2.0.17", +] + [[package]] name = "cairo-lang-sierra-to-casm" version = "2.12.3" @@ -1850,12 +2349,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7c852277442b2d8ca9741cdc8ccb737c6ad381d300ab4e2d982a98ba40e5f5b6" dependencies = [ "assert_matches", - "cairo-lang-casm", - "cairo-lang-sierra", - "cairo-lang-sierra-ap-change", - "cairo-lang-sierra-gas", - "cairo-lang-sierra-type-size", - "cairo-lang-utils", + "cairo-lang-casm 2.12.3", + "cairo-lang-sierra 2.12.3", + "cairo-lang-sierra-ap-change 2.12.3", + "cairo-lang-sierra-gas 2.12.3", + "cairo-lang-sierra-type-size 2.12.3", + "cairo-lang-utils 2.12.3", "indoc", "itertools 0.14.0", "num-bigint", @@ -1864,14 +2363,53 @@ dependencies = [ "thiserror 2.0.17", ] +[[package]] +name = "cairo-lang-sierra-type-size" +version = "2.12.0" +source = "git+https://github.com/starkware-libs/cairo.git?rev=86eb25173f9d8700adbd2770406d715fbf1bb9f8#86eb25173f9d8700adbd2770406d715fbf1bb9f8" +dependencies = [ + "cairo-lang-sierra 2.12.0", + "cairo-lang-utils 2.12.0", +] + [[package]] name = "cairo-lang-sierra-type-size" version = "2.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "265aa8daaa94cc4d5e135a82c0bbe7d28d2c0fbc612332903dbf1a68ed15978f" dependencies = [ - "cairo-lang-sierra", - "cairo-lang-utils", + "cairo-lang-sierra 2.12.3", + "cairo-lang-utils 2.12.3", +] + +[[package]] +name = "cairo-lang-starknet" +version = "2.12.0" +source = "git+https://github.com/starkware-libs/cairo.git?rev=86eb25173f9d8700adbd2770406d715fbf1bb9f8#86eb25173f9d8700adbd2770406d715fbf1bb9f8" +dependencies = [ + "anyhow", + "cairo-lang-compiler 2.12.0", + "cairo-lang-defs 2.12.0", + "cairo-lang-diagnostics 2.12.0", + "cairo-lang-filesystem 2.12.0", + "cairo-lang-lowering 2.12.0", + "cairo-lang-parser 2.12.0", + "cairo-lang-plugins 2.12.0", + "cairo-lang-semantic 2.12.0", + "cairo-lang-sierra 2.12.0", + "cairo-lang-sierra-generator 2.12.0", + "cairo-lang-starknet-classes 2.12.0", + "cairo-lang-syntax 2.12.0", + "cairo-lang-utils 2.12.0", + "const_format", + "indent", + "indoc", + "itertools 0.14.0", + "serde", + "serde_json", + "starknet-types-core 0.1.7", + "thiserror 2.0.17", + "typetag", ] [[package]] @@ -1881,19 +2419,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "deb8bf3ccf8fe1f910291d388a2351b6f40ad32be07bdbd3a628e103387b1a48" dependencies = [ "anyhow", - "cairo-lang-compiler", - "cairo-lang-defs", - "cairo-lang-diagnostics", - "cairo-lang-filesystem", - "cairo-lang-lowering", - "cairo-lang-parser", - "cairo-lang-plugins", - "cairo-lang-semantic", - "cairo-lang-sierra", - "cairo-lang-sierra-generator", - "cairo-lang-starknet-classes", - "cairo-lang-syntax", - "cairo-lang-utils", + "cairo-lang-compiler 2.12.3", + "cairo-lang-defs 2.12.3", + "cairo-lang-diagnostics 2.12.3", + "cairo-lang-filesystem 2.12.3", + "cairo-lang-lowering 2.12.3", + "cairo-lang-parser 2.12.3", + "cairo-lang-plugins 2.12.3", + "cairo-lang-semantic 2.12.3", + "cairo-lang-sierra 2.12.3", + "cairo-lang-sierra-generator 2.12.3", + "cairo-lang-starknet-classes 2.12.3", + "cairo-lang-syntax 2.12.3", + "cairo-lang-utils 2.12.3", "const_format", "indent", "indoc", @@ -1906,16 +2444,39 @@ dependencies = [ "typetag", ] +[[package]] +name = "cairo-lang-starknet-classes" +version = "2.12.0" +source = "git+https://github.com/starkware-libs/cairo.git?rev=86eb25173f9d8700adbd2770406d715fbf1bb9f8#86eb25173f9d8700adbd2770406d715fbf1bb9f8" +dependencies = [ + "cairo-lang-casm 2.12.0", + "cairo-lang-sierra 2.12.0", + "cairo-lang-sierra-to-casm 2.12.0", + "cairo-lang-sierra-type-size 2.12.0", + "cairo-lang-utils 2.12.0", + "convert_case", + "itertools 0.14.0", + "num-bigint", + "num-integer", + "num-traits", + "serde", + "serde_json", + "sha3", + "smol_str", + "starknet-types-core 0.1.7", + "thiserror 2.0.17", +] + [[package]] name = "cairo-lang-starknet-classes" version = "2.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4839b63927954a7c3d018fd012ce0bea256db205b85ee45df27fb1e90cb10e02" dependencies = [ - "cairo-lang-casm", - "cairo-lang-sierra", - "cairo-lang-sierra-to-casm", - "cairo-lang-utils", + "cairo-lang-casm 2.12.3", + "cairo-lang-sierra 2.12.3", + "cairo-lang-sierra-to-casm 2.12.3", + "cairo-lang-utils 2.12.3", "convert_case", "itertools 0.14.0", "num-bigint", @@ -1929,16 +2490,33 @@ dependencies = [ "thiserror 2.0.17", ] +[[package]] +name = "cairo-lang-syntax" +version = "2.12.0" +source = "git+https://github.com/starkware-libs/cairo.git?rev=86eb25173f9d8700adbd2770406d715fbf1bb9f8#86eb25173f9d8700adbd2770406d715fbf1bb9f8" +dependencies = [ + "cairo-lang-debug 2.12.0", + "cairo-lang-filesystem 2.12.0", + "cairo-lang-primitive-token", + "cairo-lang-proc-macros 2.12.0", + "cairo-lang-utils 2.12.0", + "num-bigint", + "num-traits", + "salsa", + "serde", + "unescaper", +] + [[package]] name = "cairo-lang-syntax" version = "2.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a1f83d5b0213ddab04090f4a10d009ff3428a0d6e289f4fea31798210d60d5cb" dependencies = [ - "cairo-lang-debug", - "cairo-lang-filesystem", + "cairo-lang-debug 2.12.3", + "cairo-lang-filesystem 2.12.3", "cairo-lang-primitive-token", - "cairo-lang-utils", + "cairo-lang-utils 2.12.3", "num-bigint", "num-traits", "rust-analyzer-salsa", @@ -1947,29 +2525,66 @@ dependencies = [ "unescaper", ] +[[package]] +name = "cairo-lang-syntax-codegen" +version = "2.12.0" +source = "git+https://github.com/starkware-libs/cairo.git?rev=86eb25173f9d8700adbd2770406d715fbf1bb9f8#86eb25173f9d8700adbd2770406d715fbf1bb9f8" +dependencies = [ + "genco 0.18.1", + "xshell", +] + [[package]] name = "cairo-lang-syntax-codegen" version = "2.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0d00ae64466774b6e34a91c4a66202778b17ef5a844a6f668436e28d71ccb9b2" dependencies = [ - "genco", + "genco 0.17.10", "xshell", ] +[[package]] +name = "cairo-lang-test-utils" +version = "2.12.0" +source = "git+https://github.com/starkware-libs/cairo.git?rev=86eb25173f9d8700adbd2770406d715fbf1bb9f8#86eb25173f9d8700adbd2770406d715fbf1bb9f8" +dependencies = [ + "cairo-lang-formatter 2.12.0", + "cairo-lang-utils 2.12.0", + "colored", + "log", + "pretty_assertions", +] + [[package]] name = "cairo-lang-test-utils" version = "2.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ebbd4ebcd82ab07fba3d376a6aa992aa552fcb7f051736f6b5a2122381754bdb" dependencies = [ - "cairo-lang-formatter", - "cairo-lang-utils", + "cairo-lang-formatter 2.12.3", + "cairo-lang-utils 2.12.3", "colored", "log", "pretty_assertions", ] +[[package]] +name = "cairo-lang-utils" +version = "2.12.0" +source = "git+https://github.com/starkware-libs/cairo.git?rev=86eb25173f9d8700adbd2770406d715fbf1bb9f8#86eb25173f9d8700adbd2770406d715fbf1bb9f8" +dependencies = [ + "hashbrown 0.15.5", + "indexmap 2.12.0", + "itertools 0.14.0", + "num-bigint", + "num-traits", + "salsa", + "schemars 1.0.4", + "serde", + "smol_str", +] + [[package]] name = "cairo-lang-utils" version = "2.12.3" @@ -1989,16 +2604,16 @@ dependencies = [ [[package]] name = "cairo-vm" version = "2.0.1" -source = "git+https://github.com/lambdaclass/cairo-vm?rev=b1a91f929b5fa29a1a2e9e6990a68a1220c0c673#b1a91f929b5fa29a1a2e9e6990a68a1220c0c673" +source = "git+https://github.com/lambdaclass/cairo-vm?rev=e2c6c91c73cd0bc351721f302390fcc0965c6224#e2c6c91c73cd0bc351721f302390fcc0965c6224" dependencies = [ "anyhow", "ark-ff 0.4.2", "ark-std 0.4.0", "bincode", "bitvec", - "cairo-lang-casm", - "cairo-lang-starknet", - "cairo-lang-starknet-classes", + "cairo-lang-casm 2.12.3", + "cairo-lang-starknet 2.12.3", + "cairo-lang-starknet-classes 2.12.3", "clap", "generic-array", "hashbrown 0.15.5", @@ -2018,7 +2633,7 @@ dependencies = [ "sha2", "sha3", "starknet-crypto 0.7.4", - "starknet-types-core 0.1.9", + "starknet-types-core 0.1.7", "thiserror 2.0.17", "zip", ] @@ -2156,7 +2771,7 @@ checksum = "a1d728cc89cf3aee9ff92b05e62b19ee65a02b5702cff7d5a377e32c6ae29d8d" name = "cli" version = "0.1.0" dependencies = [ - "cairo-lang-starknet-classes", + "cairo-lang-starknet-classes 2.12.3", "cairo-vm 2.0.1", "clap", "dotenvy", @@ -2350,6 +2965,15 @@ dependencies = [ "crossbeam-utils", ] +[[package]] +name = "crossbeam-queue" +version = "0.3.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f58bbc28f91df819d0aa2a2c00cd19754769c2fad90579b3592b1c9ba7a3115" +dependencies = [ + "crossbeam-utils", +] + [[package]] name = "crossbeam-utils" version = "0.8.21" @@ -2640,8 +3264,8 @@ name = "dry_hint_processor" version = "0.1.0" dependencies = [ "alloy", - "cairo-lang-casm", - "cairo-lang-starknet-classes", + "cairo-lang-casm 2.12.3", + "cairo-lang-starknet-classes 2.12.3", "cairo-vm 2.0.1", "hints", "indexer", @@ -2650,7 +3274,7 @@ dependencies = [ "serde", "starknet", "starknet-crypto 0.7.4", - "starknet-types-core 0.1.9", + "starknet-types-core 0.1.7", "state_server", "strum_macros", "syscall_handler", @@ -2887,7 +3511,7 @@ dependencies = [ "rand 0.8.5", "sha3", "starknet-crypto 0.7.4", - "starknet-types-core 0.1.9", + "starknet-types-core 0.1.7", "thiserror 2.0.17", "tiny-keccak", ] @@ -2985,6 +3609,18 @@ dependencies = [ "bytes", ] +[[package]] +name = "faststr" +version = "0.2.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baec6a0289d7f1fe5665586ef7340af82e3037207bef60f5785e57569776f0c8" +dependencies = [ + "bytes", + "rkyv", + "serde", + "simdutf8", +] + [[package]] name = "fetcher" version = "0.1.0" @@ -3001,7 +3637,7 @@ dependencies = [ "indicatif", "reqwest 0.12.24", "serde_json", - "starknet-types-core 0.1.9", + "starknet-types-core 0.1.7", "state_server", "syscall_handler", "thiserror 2.0.17", @@ -3212,16 +3848,38 @@ version = "0.17.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a35958104272e516c2a5f66a9d82fba4784d2b585fc1e2358b8f96e15d342995" dependencies = [ - "genco-macros", - "relative-path", - "smallvec", + "genco-macros 0.17.10", + "relative-path", + "smallvec", +] + +[[package]] +name = "genco" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1926a45e14479803957ec6afd3c908c4c3e5932f47498f9f05b86eb163da5ebf" +dependencies = [ + "genco-macros 0.18.1", + "relative-path", + "smallvec", +] + +[[package]] +name = "genco-macros" +version = "0.17.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43eaff6bbc0b3a878361aced5ec6a2818ee7c541c5b33b5880dfa9a86c23e9e7" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.108", ] [[package]] name = "genco-macros" -version = "0.17.10" +version = "0.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43eaff6bbc0b3a878361aced5ec6a2818ee7c541c5b33b5880dfa9a86c23e9e7" +checksum = "9b10835e55170d94267857173f287655e3dea033e0f6f7622c0482d1d50eb684" dependencies = [ "proc-macro2", "quote", @@ -3380,6 +4038,8 @@ version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5419bdc4f6a9207fbeba6d11b604d481addf78ecd10c11ad51e76c2f6482748d" dependencies = [ + "allocator-api2", + "equivalent", "foldhash 0.2.0", "serde", ] @@ -3436,8 +4096,8 @@ dependencies = [ "alloy", "alloy-rlp", "bincode", - "cairo-lang-casm", - "cairo-lang-starknet-classes", + "cairo-lang-casm 2.12.3", + "cairo-lang-starknet-classes 2.12.3", "cairo-vm 2.0.1", "cairo_type_derive", "eth_essentials_cairo_vm_hints", @@ -3453,7 +4113,7 @@ dependencies = [ "serde_with", "starknet-core", "starknet-crypto 0.7.4", - "starknet-types-core 0.1.9", + "starknet-types-core 0.1.7", "strum_macros", "thiserror 2.0.17", "tokio", @@ -3896,6 +4556,7 @@ checksum = "6717a8d2a5a929a1a2eb43a12812498ed141a0bcfb7e8f7844fbdbe4303bba9f" dependencies = [ "equivalent", "hashbrown 0.16.0", + "rayon", "serde", "serde_core", ] @@ -3955,6 +4616,15 @@ dependencies = [ "windows-sys 0.52.0", ] +[[package]] +name = "intrusive-collections" +version = "0.9.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "189d0897e4cbe8c75efedf3502c18c887b05046e59d28404d4d8e46cbc4d1e86" +dependencies = [ + "memoffset", +] + [[package]] name = "inventory" version = "0.3.21" @@ -4307,13 +4977,22 @@ dependencies = [ "libc", ] +[[package]] +name = "memoffset" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a" +dependencies = [ + "autocfg", +] + [[package]] name = "metrics" version = "0.20.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7b9b8653cec6897f73b519a43fba5ee3d50f62fe9af80b428accdcc093b4a849" dependencies = [ - "ahash", + "ahash 0.7.8", "metrics-macros", "portable-atomic 0.3.20", ] @@ -4372,6 +5051,26 @@ dependencies = [ "windows-sys 0.61.2", ] +[[package]] +name = "munge" +version = "0.4.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e17401f259eba956ca16491461b6e8f72913a0a114e39736ce404410f915a0c" +dependencies = [ + "munge_macro", +] + +[[package]] +name = "munge_macro" +version = "0.4.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4568f25ccbd45ab5d5603dc34318c1ec56b117531781260002151b8530a9f931" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.108", +] + [[package]] name = "nanorand" version = "0.7.0" @@ -4627,6 +5326,16 @@ dependencies = [ "vcpkg", ] +[[package]] +name = "papaya" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f92dd0b07c53a0a0c764db2ace8c541dc47320dad97c2200c2a637ab9dd2328f" +dependencies = [ + "equivalent", + "seize", +] + [[package]] name = "parity-scale-codec" version = "3.7.5" @@ -5108,6 +5817,26 @@ dependencies = [ "unarray", ] +[[package]] +name = "ptr_meta" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b9a0cf95a1196af61d4f1cbdab967179516d9a4a4312af1f31948f8f6224a79" +dependencies = [ + "ptr_meta_derive", +] + +[[package]] +name = "ptr_meta_derive" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7347867d0a7e1208d93b46767be83e2b8f978c3dad35f775ac8d8847551d6fe1" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.108", +] + [[package]] name = "quick-error" version = "1.2.3" @@ -5212,6 +5941,15 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" +[[package]] +name = "rancor" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a063ea72381527c2a0561da9c80000ef822bdd7c3241b1cc1b12100e3df081ee" +dependencies = [ + "ptr_meta", +] + [[package]] name = "rand" version = "0.8.5" @@ -5379,6 +6117,12 @@ version = "1.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ba39f3699c378cd8970968dcbff9c43159ea4cfbd88d43c00b22f2ef10a435d2" +[[package]] +name = "rend" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cadadef317c2f20755a64d7fdc48f9e7178ee6b0e1f7fce33fa60f1d68a276e6" + [[package]] name = "reqwest" version = "0.11.27" @@ -5488,6 +6232,35 @@ dependencies = [ "windows-sys 0.52.0", ] +[[package]] +name = "rkyv" +version = "0.8.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35a640b26f007713818e9a9b65d34da1cf58538207b052916a83d80e43f3ffa4" +dependencies = [ + "bytes", + "hashbrown 0.15.5", + "indexmap 2.12.0", + "munge", + "ptr_meta", + "rancor", + "rend", + "rkyv_derive", + "tinyvec", + "uuid 1.18.1", +] + +[[package]] +name = "rkyv_derive" +version = "0.8.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd83f5f173ff41e00337d97f6572e416d022ef8a19f371817259ae960324c482" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.108", +] + [[package]] name = "rlp" version = "0.5.2" @@ -5714,6 +6487,49 @@ version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" +[[package]] +name = "salsa" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e235afdb8e510f38a07138fbe5a0b64691894358a9c0cbd813b1aade110efc9" +dependencies = [ + "boxcar", + "crossbeam-queue", + "crossbeam-utils", + "hashbrown 0.15.5", + "hashlink", + "indexmap 2.12.0", + "intrusive-collections", + "papaya", + "parking_lot", + "portable-atomic 1.11.1", + "rayon", + "rustc-hash 2.1.1", + "salsa-macro-rules", + "salsa-macros", + "smallvec", + "thin-vec", + "tracing", +] + +[[package]] +name = "salsa-macro-rules" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2edb86a7e9c91f6d30c9ce054312721dbe773a162db27bbfae834d16177b30ce" + +[[package]] +name = "salsa-macros" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0778d6e209051bc4e75acfe83bcd7848601ec3dbe9c3dbb982829020e9128af" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.108", + "synstructure", +] + [[package]] name = "salsa20" version = "0.10.2" @@ -5758,7 +6574,7 @@ checksum = "3fbf2ae1b8bc8e02df939598064d22402220cd5bbcca1c76f7d6a310974d5615" dependencies = [ "dyn-clone", "indexmap 1.9.3", - "schemars_derive", + "schemars_derive 0.8.22", "serde", "serde_json", ] @@ -5783,6 +6599,7 @@ checksum = "82d20c4491bc164fa2f6c5d44565947a52ad80b9505d8e36f8d54c27c739fcd0" dependencies = [ "dyn-clone", "ref-cast", + "schemars_derive 1.0.4", "serde", "serde_json", ] @@ -5799,6 +6616,18 @@ dependencies = [ "syn 2.0.108", ] +[[package]] +name = "schemars_derive" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33d020396d1d138dc19f1165df7545479dcd58d93810dc5d646a16e55abefa80" +dependencies = [ + "proc-macro2", + "quote", + "serde_derive_internals", + "syn 2.0.108", +] + [[package]] name = "scopeguard" version = "1.2.0" @@ -5889,6 +6718,16 @@ dependencies = [ "libc", ] +[[package]] +name = "seize" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b55fb86dfd3a2f5f76ea78310a88f96c4ea21a3031f8d212443d56123fd0521" +dependencies = [ + "libc", + "windows-sys 0.61.2", +] + [[package]] name = "semver" version = "0.11.0" @@ -5979,6 +6818,7 @@ version = "1.0.145" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "402a6f66d8c709116cf22f558eab210f5a50187f702eb4d7e5ef38d9a7f1c79c" dependencies = [ + "indexmap 2.12.0", "itoa", "memchr", "ryu", @@ -6017,6 +6857,15 @@ dependencies = [ "serde", ] +[[package]] +name = "serde_spanned" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e24345aa0fe688594e73770a5f6d1b216508b4f93484c0026d521acd30134392" +dependencies = [ + "serde_core", +] + [[package]] name = "serde_urlencoded" version = "0.7.1" @@ -6153,16 +7002,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe" [[package]] -name = "siphasher" -version = "1.0.1" +name = "simdutf8" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56199f7ddabf13fe5074ce809e7d3f42b42ae711800501b5b16ea82ad029c39d" +checksum = "e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e" [[package]] -name = "size-of" -version = "0.1.5" +name = "siphasher" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4e36eca171fddeda53901b0a436573b3f2391eaa9189d439b2bd8ea8cebd7e3" +checksum = "56199f7ddabf13fe5074ce809e7d3f42b42ae711800501b5b16ea82ad029c39d" [[package]] name = "slab" @@ -6209,18 +7058,56 @@ dependencies = [ "windows-sys 0.60.2", ] +[[package]] +name = "sonic-number" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8a74044c092f4f43ca7a6cfd62854cf9fb5ac8502b131347c990bf22bef1dfe" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "sonic-rs" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0275f9f2f07d47556fe60c2759da8bc4be6083b047b491b2d476aa0bfa558eb1" +dependencies = [ + "bumpalo", + "bytes", + "cfg-if", + "faststr", + "itoa", + "ref-cast", + "ryu", + "serde", + "simdutf8", + "sonic-number", + "sonic-simd", + "thiserror 2.0.17", +] + +[[package]] +name = "sonic-simd" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b421f7b6aa4a5de8f685aaf398dfaa828346ee639d2b1c1061ab43d40baa6223" +dependencies = [ + "cfg-if", +] + [[package]] name = "sound_hint_processor" version = "0.1.0" dependencies = [ "alloy-rlp", - "cairo-lang-casm", - "cairo-lang-starknet-classes", + "cairo-lang-casm 2.12.3", + "cairo-lang-starknet-classes 2.12.3", "cairo-vm 2.0.1", "hints", "serde", "starknet-crypto 0.7.4", - "starknet-types-core 0.1.9", + "starknet-types-core 0.1.7", "strum_macros", "syscall_handler", "tokio", @@ -6231,7 +7118,6 @@ dependencies = [ name = "sound_run" version = "0.1.0" dependencies = [ - "bytemuck", "cairo-vm 2.0.1", "clap", "dotenvy", @@ -6397,7 +7283,7 @@ dependencies = [ "rfc6979", "sha2", "starknet-curve 0.5.1", - "starknet-types-core 0.1.9", + "starknet-types-core 0.1.7", "zeroize", ] @@ -6446,7 +7332,7 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bcde6bd74269b8161948190ace6cf069ef20ac6e79cd2ba09b320efa7500b6de" dependencies = [ - "starknet-types-core 0.1.9", + "starknet-types-core 0.1.7", ] [[package]] @@ -6543,20 +7429,17 @@ dependencies = [ [[package]] name = "starknet-types-core" -version = "0.1.9" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87af771d7f577931913089f9ca9a9f85d8a6238d59b2977f4c383d133c8abd3b" +checksum = "fa1b9e01ccb217ab6d475c5cda05dbb22c30029f7bb52b192a010a00d77a3d74" dependencies = [ - "blake2", - "digest 0.10.7", "lambdaworks-crypto 0.10.0", "lambdaworks-math 0.10.0", + "lazy_static", "num-bigint", "num-integer", "num-traits", "serde", - "size-of", - "zeroize", ] [[package]] @@ -6605,7 +7488,7 @@ dependencies = [ "serde_json", "serde_with", "sha3", - "starknet-types-core 0.1.9", + "starknet-types-core 0.1.7", "thiserror 2.0.17", "tokio", "tower", @@ -6623,6 +7506,11 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" +[[package]] +name = "std-shims" +version = "0.1.0" +source = "git+https://github.com/starkware-libs/stwo?rev=d9176e6e22319370a8501f799829b920c0db2eac#d9176e6e22319370a8501f799829b920c0db2eac" + [[package]] name = "string_cache" version = "0.8.9" @@ -6668,24 +7556,58 @@ dependencies = [ "syn 2.0.108", ] +[[package]] +name = "stwo" +version = "0.1.1" +source = "git+https://github.com/starkware-libs/stwo?rev=d9176e6e22319370a8501f799829b920c0db2eac#d9176e6e22319370a8501f799829b920c0db2eac" +dependencies = [ + "blake2", + "blake3", + "bytemuck", + "cfg-if", + "educe 0.5.11", + "fnv", + "hashbrown 0.16.0", + "hex", + "indexmap 2.12.0", + "itertools 0.12.1", + "num-traits", + "rand 0.8.5", + "rayon", + "serde", + "starknet-crypto 0.6.2", + "starknet-ff", + "std-shims", + "thiserror 2.0.17", + "tracing", + "tracing-subscriber", +] + [[package]] name = "stwo-cairo-adapter" version = "0.1.0" -source = "git+https://github.com/starkware-libs/stwo-cairo?rev=62c3c4a#62c3c4a94546b274d20123cc5f22044bcbe7104e" +source = "git+https://github.com/HerodotusDev/stwo-cairo?rev=df67e40effad69107a431d158af56866a1cbb09b#df67e40effad69107a431d158af56866a1cbb09b" dependencies = [ "bincode", "bytemuck", - "cairo-lang-casm", + "cairo-lang-casm 2.12.3", + "cairo-lang-executable", + "cairo-lang-runner", + "cairo-lang-utils 2.12.0", "cairo-vm 2.0.1", + "clap", + "crypto-bigint", "dashmap", + "indoc", "itertools 0.12.1", "log", "memmap2", "rayon", "serde", "serde_json", + "sonic-rs", + "stwo", "stwo-cairo-common", - "stwo-prover", "thiserror 2.0.17", "tracing", ] @@ -6693,60 +7615,54 @@ dependencies = [ [[package]] name = "stwo-cairo-common" version = "0.1.0" -source = "git+https://github.com/starkware-libs/stwo-cairo?rev=62c3c4a#62c3c4a94546b274d20123cc5f22044bcbe7104e" +source = "git+https://github.com/HerodotusDev/stwo-cairo?rev=df67e40effad69107a431d158af56866a1cbb09b#df67e40effad69107a431d158af56866a1cbb09b" dependencies = [ "bytemuck", "itertools 0.12.1", + "rayon", "ruint", "serde", "serde_arrays", + "starknet-curve 0.5.1", "starknet-ff", - "starknet-types-core 0.1.9", + "starknet-types-core 0.1.7", + "stwo", "stwo-cairo-serialize", - "stwo-prover", + "stwo-constraint-framework", ] [[package]] name = "stwo-cairo-serialize" version = "0.1.0" -source = "git+https://github.com/starkware-libs/stwo-cairo?rev=62c3c4a#62c3c4a94546b274d20123cc5f22044bcbe7104e" +source = "git+https://github.com/HerodotusDev/stwo-cairo?rev=df67e40effad69107a431d158af56866a1cbb09b#df67e40effad69107a431d158af56866a1cbb09b" dependencies = [ "starknet-ff", + "stwo", "stwo-cairo-serialize-derive", - "stwo-prover", ] [[package]] name = "stwo-cairo-serialize-derive" version = "0.1.0" -source = "git+https://github.com/starkware-libs/stwo-cairo?rev=62c3c4a#62c3c4a94546b274d20123cc5f22044bcbe7104e" +source = "git+https://github.com/HerodotusDev/stwo-cairo?rev=df67e40effad69107a431d158af56866a1cbb09b#df67e40effad69107a431d158af56866a1cbb09b" dependencies = [ "quote", "syn 2.0.108", ] [[package]] -name = "stwo-prover" +name = "stwo-constraint-framework" version = "0.1.1" -source = "git+https://github.com/starkware-libs/stwo?rev=dcbaebf#dcbaebfbbf923855eadd8cd3612b37569122d927" +source = "git+https://github.com/starkware-libs/stwo?rev=d9176e6e22319370a8501f799829b920c0db2eac#d9176e6e22319370a8501f799829b920c0db2eac" dependencies = [ - "blake2", - "blake3", - "bytemuck", - "cfg-if", - "educe 0.5.11", - "hex", - "indexmap 2.12.0", + "hashbrown 0.16.0", "itertools 0.12.1", "num-traits", "rand 0.8.5", "rayon", - "serde", - "starknet-crypto 0.6.2", - "starknet-ff", - "thiserror 1.0.69", + "std-shims", + "stwo", "tracing", - "tracing-subscriber", ] [[package]] @@ -6929,7 +7845,7 @@ dependencies = [ "alloy", "anyhow", "axum", - "cairo-lang-starknet-classes", + "cairo-lang-starknet-classes 2.12.3", "cairo-vm 2.0.1", "dotenvy", "dry_hint_processor", @@ -6948,6 +7864,12 @@ dependencies = [ "types", ] +[[package]] +name = "thin-vec" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "144f754d318415ac792f9d69fc87abbbfc043ce2ef041c60f16ad828f638717d" + [[package]] name = "thiserror" version = "1.0.69" @@ -7170,11 +8092,26 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dc1beb996b9d83529a9e75c17a1686767d148d70663143c7854d8b4a09ced362" dependencies = [ "serde", - "serde_spanned", + "serde_spanned 0.6.9", "toml_datetime 0.6.11", "toml_edit 0.22.27", ] +[[package]] +name = "toml" +version = "0.9.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0dc8b1fb61449e27716ec0e1bdf0f6b8f3e8f6b05391e8497b8b6d7804ea6d8" +dependencies = [ + "indexmap 2.12.0", + "serde_core", + "serde_spanned 1.0.3", + "toml_datetime 0.7.3", + "toml_parser", + "toml_writer", + "winnow", +] + [[package]] name = "toml_datetime" version = "0.6.11" @@ -7201,7 +8138,7 @@ checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a" dependencies = [ "indexmap 2.12.0", "serde", - "serde_spanned", + "serde_spanned 0.6.9", "toml_datetime 0.6.11", "toml_write", "winnow", @@ -7234,6 +8171,12 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5d99f8c9a7727884afe522e9bd5edbfc91a3312b36a77b5fb8926e4c31a41801" +[[package]] +name = "toml_writer" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df8b2b54733674ad286d16267dcfc7a71ed5c776e4ac7aa3c3e2561f7c637bf2" + [[package]] name = "tower" version = "0.5.2" @@ -7398,7 +8341,7 @@ dependencies = [ "alloy", "alloy-rlp", "bitvec", - "cairo-lang-starknet-classes", + "cairo-lang-starknet-classes 2.12.3", "cairo-vm 2.0.1", "cairo_type_derive", "clap", @@ -7607,6 +8550,15 @@ version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" +[[package]] +name = "vector-map" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03b34e878e32c750bb4253be124adb9da1dc93ca5d98c210787badf1e1ccdca7" +dependencies = [ + "serde", +] + [[package]] name = "vergen" version = "8.3.2" diff --git a/Cargo.toml b/Cargo.toml index 6745833c..12773b72 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -26,13 +26,12 @@ api = { path = "src/crates/api" } axum = { version = "0.8", features = ["tracing"] } bincode = "2.0.1" bitvec = "1.0.1" -bytemuck = { version = "1.20", features = ["derive"] } cairo_runner = { path = "src/crates/cairo-runner" } cairo_type_derive = { path = "crates/cairo_type_derive" } cairo-lang-casm = "2.12.3" cairo-lang-starknet-classes = "2.12.3" cairo-type-derive = { git = "https://github.com/keep-starknet-strange/snos.git", rev = "2dc07a4298e2954c774f4d419a8f9db007da494c" } -cairo-vm = { git = "https://github.com/lambdaclass/cairo-vm", rev = "b1a91f929b5fa29a1a2e9e6990a68a1220c0c673", features = ["extensive_hints", "clap", "cairo-1-hints", "mod_builtin"] } +cairo-vm = { git = "https://github.com/lambdaclass/cairo-vm", rev = "e2c6c91c73cd0bc351721f302390fcc0965c6224", features = ["extensive_hints", "clap", "cairo-1-hints", "mod_builtin"] } chrono = { version = "0.4", features = ["serde"] } clap = { version = "4.5", features = ["derive"] } dotenvy = "0.15" @@ -74,7 +73,7 @@ starknet-crypto = { version = "0.7.4", default-features = false } starknet-types-core = { version = "0.1.7", default-features = false } state_server = { path = "crates/state_server" } strum_macros = "0.27" -stwo_cairo_adapter = { git = "https://github.com/starkware-libs/stwo-cairo", rev = "62c3c4a", package = "stwo-cairo-adapter" } +stwo_cairo_adapter = { git = "https://github.com/HerodotusDev/stwo-cairo", rev = "df67e40effad69107a431d158af56866a1cbb09b", package = "stwo-cairo-adapter" } syscall_handler = { path = "crates/syscall_handler" } thiserror = "2.0" tiny-keccak = { version = "2.0.2", features = ["keccak"] } diff --git a/crates/cli/src/main.rs b/crates/cli/src/main.rs index 423ed9ff..e86621bb 100644 --- a/crates/cli/src/main.rs +++ b/crates/cli/src/main.rs @@ -19,7 +19,7 @@ use clap::{Parser, Subcommand}; use dry_hint_processor::syscall_handler::{evm, injected_state, starknet}; use dry_run::{LayoutName, Program, DRY_RUN_COMPILED_JSON}; use fetcher::{parse_syscall_handler, Fetcher}; -use sound_run::{prove::prover_input_from_runner, HDP_COMPILED_JSON}; +use sound_run::HDP_COMPILED_JSON; use syscall_handler::SyscallHandler; use types::{ error::Error, param::Param, ChainProofs, HDPDryRunInput, HDPInput, InjectedState, ProofsData, ETHEREUM_MAINNET_CHAIN_ID, @@ -203,12 +203,6 @@ async fn main() -> Result<(), Box> { pie.write_zip_file(file_name, true)?; } - if let Some(ref file_name) = args.stwo_prover_input { - let stwo_prover_input = prover_input_from_runner(&cairo_runner); - std::fs::write(file_name, serde_json::to_string(&stwo_prover_input)?)?; - println!("Prover Input saved to: {:?}", file_name); - } - println!("Sound run completed successfully."); Ok(()) } diff --git a/crates/hints/src/patricia/tree.rs b/crates/hints/src/patricia/tree.rs index 5056cc28..ec025b93 100644 --- a/crates/hints/src/patricia/tree.rs +++ b/crates/hints/src/patricia/tree.rs @@ -79,7 +79,7 @@ where /// # Errors /// Returns `PatriciaHintError::UnexpectedLeaf` if a leaf is passed, or /// `PatriciaHintError::InvalidTupleNode` for an invalid branch with no children. -pub fn decode_node(node: &TreeUpdate) -> Result, PatriciaHintError> +pub fn decode_node(node: &TreeUpdate) -> Result, PatriciaHintError> where LF: Clone, { diff --git a/crates/sound_hint_processor/src/syscall_handler/starknet/header.rs b/crates/sound_hint_processor/src/syscall_handler/starknet/header.rs index 742d5f33..d4d593fd 100644 --- a/crates/sound_hint_processor/src/syscall_handler/starknet/header.rs +++ b/crates/sound_hint_processor/src/syscall_handler/starknet/header.rs @@ -60,7 +60,7 @@ impl CallHandler for HeaderCallHandler { let fields = vm .get_integer_range(ptr, field_len + 1)? .into_iter() - .map(|f| (*f.as_ref())) + .map(|f| *f.as_ref()) .collect::>(); Ok(StarknetBlock::from_memorizer(fields).handle(function_id)) diff --git a/crates/sound_run/Cargo.toml b/crates/sound_run/Cargo.toml index e9e804f2..26c5947d 100644 --- a/crates/sound_run/Cargo.toml +++ b/crates/sound_run/Cargo.toml @@ -7,7 +7,6 @@ edition = "2021" path = "src/lib.rs" [dependencies] -bytemuck.workspace = true cairo-vm.workspace = true clap.workspace = true dotenvy.workspace = true diff --git a/crates/sound_run/src/lib.rs b/crates/sound_run/src/lib.rs index 2943cfde..6da475cc 100644 --- a/crates/sound_run/src/lib.rs +++ b/crates/sound_run/src/lib.rs @@ -14,11 +14,11 @@ use clap::Parser; use dotenvy as _; use serde_json as _; use sound_hint_processor::CustomHintProcessor; +use stwo_cairo_adapter as _; use tokio as _; use tracing::info; use tracing_subscriber as _; use types::{error::Error, HDPInput, HDPOutput}; -pub mod prove; pub const HDP_COMPILED_JSON: &str = env!("HDP_COMPILED_JSON"); diff --git a/crates/sound_run/src/main.rs b/crates/sound_run/src/main.rs index 2897b842..eef61253 100644 --- a/crates/sound_run/src/main.rs +++ b/crates/sound_run/src/main.rs @@ -3,14 +3,13 @@ #![warn(unused_crate_dependencies)] #![forbid(unsafe_code)] -use std::path::PathBuf; +use std::path::{Path, PathBuf}; -use bytemuck as _; use cairo_vm::{self as _, cairo_run::CairoRunConfig, types::layout_name::LayoutName}; use clap::Parser; use sound_hint_processor as _; -use sound_run::{prove::prover_input_from_runner, Args, HDP_COMPILED_JSON}; -use stwo_cairo_adapter as _; +use sound_run::{Args, HDP_COMPILED_JSON}; +use stwo_cairo_adapter::adapter::adapter_shards; use tracing::{self as _, info}; use tracing_subscriber::EnvFilter; use types::{error::Error, param::Param, CasmContractClass, HDPInput, InjectedState, ProofsData}; @@ -66,10 +65,23 @@ async fn main() -> Result<(), Error> { pie.write_zip_file(file_name, true)?; } - if let Some(ref file_name) = args.stwo_prover_input { - let stwo_prover_input = prover_input_from_runner(&cairo_runner); - std::fs::write(file_name, serde_json::to_string(&stwo_prover_input)?)?; - info!("Prover Input saved to: {:?}", file_name); + if let Some(ref file_name_str) = args.stwo_prover_input { + let file_path = Path::new(file_name_str); + + let stem = file_path.file_stem().map(|s| s.to_string_lossy().into_owned()).unwrap_or_default(); + + let extension = file_path + .extension() + .map(|s| format!(".{}", s.to_string_lossy())) + .unwrap_or_default(); + + let stwo_prover_inputs = adapter_shards(&cairo_runner, 4000000); + + for (idx, input) in stwo_prover_inputs.into_iter().enumerate() { + let new_file_name = format!("{}-{}{}", stem, idx, extension); + std::fs::write(&new_file_name, serde_json::to_string(&input)?)?; + info!("Prover Input saved to: {}", new_file_name); + } } Ok(()) diff --git a/crates/sound_run/src/prove.rs b/crates/sound_run/src/prove.rs deleted file mode 100644 index c4edde66..00000000 --- a/crates/sound_run/src/prove.rs +++ /dev/null @@ -1,60 +0,0 @@ -use std::collections::HashMap; - -use cairo_vm::vm::runners::cairo_runner::CairoRunner; -use stwo_cairo_adapter::{ - builtins::MemorySegmentAddresses, - memory::{MemoryBuilder, MemoryConfig, MemoryEntry}, - vm_import::{adapt_to_stwo_input, RelocatedTraceEntry}, - ProverInput, PublicSegmentContext, -}; -use tracing::{debug, info}; - -/// Extracts artifacts from a finished cairo runner, to later be used for proving. -pub fn prover_input_from_runner(runner: &CairoRunner) -> ProverInput { - let public_input = runner.get_air_public_input().unwrap(); - let addresses = public_input - .public_memory - .iter() - .map(|entry| entry.address as u32) - .collect::>(); - let segments = public_input - .memory_segments - .iter() - .map(|(&k, v)| { - ( - k, - MemorySegmentAddresses { - begin_addr: v.begin_addr, - stop_ptr: v.stop_ptr, - }, - ) - }) - .collect::>(); - let trace = runner - .relocated_trace - .as_ref() - .unwrap() - .iter() - .map(|x| RelocatedTraceEntry { - ap: x.ap, - fp: x.fp, - pc: x.pc, - }) - .collect::>(); - let mem = runner.relocated_memory.iter().enumerate().filter_map(|(i, x)| { - x.as_ref().map(|value| MemoryEntry { - address: i as u64, - value: bytemuck::cast(value.to_bytes_le()), - }) - }); - let mem = MemoryBuilder::from_iter(MemoryConfig::default(), mem); - let main_args = runner.get_program().iter_builtins().copied().collect::>(); - let public_segment_context = PublicSegmentContext::new(&main_args); - - info!("Generating input for the prover..."); - let input = adapt_to_stwo_input(&trace, mem, addresses, &segments, public_segment_context).unwrap(); - info!("Input for the prover generated successfully."); - debug!("State transitions: {}", input.state_transitions.casm_states_by_opcode); - debug!("Builtins: {:#?}", input.builtins_segments.get_counts()); - input -} diff --git a/crates/state_server/src/mpt/trie/mod.rs b/crates/state_server/src/mpt/trie/mod.rs index 4ba65b0a..4819f7f7 100644 --- a/crates/state_server/src/mpt/trie/mod.rs +++ b/crates/state_server/src/mpt/trie/mod.rs @@ -34,10 +34,10 @@ impl Trie { /// /// A new Trie instance. #[allow(dead_code)] - pub fn load( + pub fn load<'a>( root_idx: TrieStorageIndex, - conn: &PooledConnection, - ) -> (TrieDB, MerkleTree) { + conn: &'a PooledConnection, + ) -> (TrieDB<'a>, MerkleTree) { let storage = TrieDB::new(conn); let trie = MerkleTree::::new(root_idx); @@ -65,9 +65,9 @@ impl Trie { /// # Returns /// /// A new empty Trie instance with storage, trie, and root index. - pub fn create_empty( - conn: &PooledConnection, - ) -> Result<(TrieDB, MerkleTree, TrieStorageIndex), Error> { + pub fn create_empty<'a>( + conn: &'a PooledConnection, + ) -> Result<(TrieDB<'a>, MerkleTree, TrieStorageIndex), Error> { let storage = TrieDB::new(conn); let trie = MerkleTree::::empty(); let root_idx = TrieStorageIndex::from(0); diff --git a/crates/syscall_handler/src/call_contract/debug.rs b/crates/syscall_handler/src/call_contract/debug.rs index ffa1c8ec..8ea75c08 100644 --- a/crates/syscall_handler/src/call_contract/debug.rs +++ b/crates/syscall_handler/src/call_contract/debug.rs @@ -32,7 +32,7 @@ impl traits::SyscallHandler for DebugCallContractHandler { let fields = vm .get_integer_range(request.calldata_start, field_len)? .into_iter() - .map(|f| (*f.as_ref())) + .map(|f| *f.as_ref()) .collect::>(); let str = decode_byte_array_felts(fields); @@ -47,7 +47,7 @@ impl traits::SyscallHandler for DebugCallContractHandler { let fields = vm .get_integer_range(request.calldata_start, field_len)? .into_iter() - .map(|f| (*f.as_ref())) + .map(|f| *f.as_ref()) .collect::>(); println!("{:?}", fields); diff --git a/rust-toolchain.toml b/rust-toolchain.toml index 326b60be..209c85e4 100644 --- a/rust-toolchain.toml +++ b/rust-toolchain.toml @@ -1,3 +1,3 @@ [toolchain] -channel = "nightly-2025-04-06" +channel = "nightly-2025-07-14" profile = "default" \ No newline at end of file