diff --git a/Cargo.lock b/Cargo.lock index 334280fb33..ff7567d27c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -133,7 +133,7 @@ version = "0.1.0" source = "git+https://github.com/yetanotherco/aligned_layer?rev=54ca2471624700536561b6bd369ed9f4d327991e#54ca2471624700536561b6bd369ed9f4d327991e" dependencies = [ "alloy", - "bincode 1.3.3", + "bincode", "lambdaworks-crypto 0.12.0", "reqwest 0.12.28", "serde", @@ -879,7 +879,7 @@ version = "1.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "40c48f72fd53cd289104fc64099abca73db4166ad86ea0b4341abe65af83dadc" dependencies = [ - "windows-sys 0.61.2", + "windows-sys 0.60.2", ] [[package]] @@ -890,7 +890,7 @@ checksum = "291e6a250ff86cd4a820112fb8898808a366d8f9f58ce16d1f538353ad55747d" dependencies = [ "anstyle", "once_cell_polyfill", - "windows-sys 0.61.2", + "windows-sys 0.60.2", ] [[package]] @@ -1647,26 +1647,6 @@ dependencies = [ "serde", ] -[[package]] -name = "bincode" -version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36eaf5d7b090263e8150820482d5d93cd964a81e4019913c972f4edcc6edb740" -dependencies = [ - "bincode_derive", - "serde", - "unty", -] - -[[package]] -name = "bincode_derive" -version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf95709a440f45e986983918d0e8a1f30a9b1df04918fc828670606804ac3c09" -dependencies = [ - "virtue", -] - [[package]] name = "bindgen" version = "0.66.1" @@ -1699,7 +1679,7 @@ dependencies = [ "bitflags 2.11.1", "cexpr", "clang-sys", - "itertools 0.13.0", + "itertools 0.12.1", "log", "prettyplease", "proc-macro2", @@ -1719,7 +1699,7 @@ dependencies = [ "bitflags 2.11.1", "cexpr", "clang-sys", - "itertools 0.13.0", + "itertools 0.12.1", "log", "prettyplease", "proc-macro2", @@ -1751,24 +1731,10 @@ version = "0.6.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0a6ed1b54d8dc333e7be604d00fa9262f4635485ffea923647b6521a5fff045d" dependencies = [ - "arrayvec", - "bitcode_derive", "bytemuck", - "glam 0.32.1", "serde", ] -[[package]] -name = "bitcode_derive" -version = "0.6.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "238b90427dfad9da4a9abd60f3ec1cdee6b80454bde49ed37f1781dd8e9dc7f9" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.117", -] - [[package]] name = "bitcoin-io" version = "0.1.4" @@ -1959,7 +1925,7 @@ version = "3.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "519bd3116aeeb42d5372c29d982d16d0170d3d4a5ed85fc7dd91642ffff3c67c" dependencies = [ - "darling 0.23.0", + "darling 0.20.11", "ident_case", "prettyplease", "proc-macro2", @@ -2436,7 +2402,7 @@ version = "3.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "faf9468729b8cbcea668e36183cb69d317348c2e08e994829fb56ebfdfbaac34" dependencies = [ - "windows-sys 0.61.2", + "windows-sys 0.48.0", ] [[package]] @@ -2910,24 +2876,6 @@ dependencies = [ "windows-sys 0.61.2", ] -[[package]] -name = "cuda-config" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ee74643f7430213a1a78320f88649de309b20b80818325575e393f848f79f5d" -dependencies = [ - "glob", -] - -[[package]] -name = "cuda-runtime-sys" -version = "0.3.0-alpha.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d070b301187fee3c611e75a425cf12247b7c75c09729dbdef95cb9cb64e8c39" -dependencies = [ - "cuda-config", -] - [[package]] name = "cust" version = "0.3.2" @@ -2949,7 +2897,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "039f79662cb8f890cbf335e818cd522d6e3a53fe63f61d1aaaf859cd3d975f06" dependencies = [ "cust_derive", - "glam 0.20.5", + "glam", "mint", "vek", ] @@ -3371,7 +3319,7 @@ dependencies = [ "libc", "option-ext", "redox_users 0.5.2", - "windows-sys 0.61.2", + "windows-sys 0.59.0", ] [[package]] @@ -3705,7 +3653,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" dependencies = [ "libc", - "windows-sys 0.61.2", + "windows-sys 0.52.0", ] [[package]] @@ -3946,7 +3894,7 @@ dependencies = [ "malachite 0.6.1", "num-bigint 0.4.6", "openvm-kzg", - "p256", + "p256 0.13.2 (registry+https://github.com/rust-lang/crates.io-index)", "ripemd", "secp256k1", "sha2", @@ -3985,9 +3933,18 @@ dependencies = [ "ethrex-rlp", "ethrex-vm", "hex", + "hex-literal 0.4.1", "k256", "libssz", "libssz-merkle", + "num-bigint 0.4.6", + "openvm-algebra-guest 2.0.0-beta.1", + "openvm-ecc-guest 2.0.0-beta.1", + "openvm-keccak256", + "openvm-pairing 2.0.0-beta.1", + "openvm-pairing-guest 2.0.0-beta.1", + "openvm-sha2", + "p256 0.13.2 (git+https://github.com/openvm-org/openvm.git?tag=v2.0.0-beta.1)", "risc0-build", "rkyv", "serde", @@ -4007,7 +3964,7 @@ dependencies = [ "alloy", "anyhow", "axum 0.8.9", - "bincode 1.3.3", + "bincode", "bytes", "chrono", "clap", @@ -4076,7 +4033,7 @@ name = "ethrex-l2-prover" version = "9.0.0" dependencies = [ "anyhow", - "bincode 1.3.3", + "bincode", "bytes", "clap", "ethereum-types 0.15.1", @@ -4091,9 +4048,8 @@ dependencies = [ "ethrex-storage", "ethrex-vm", "hex", - "openvm-continuations", "openvm-sdk", - "openvm-stark-sdk 1.2.1", + "openvm-stark-sdk", "risc0-zkp", "risc0-zkvm", "rkyv", @@ -4252,16 +4208,16 @@ dependencies = [ name = "ethrex-prover" version = "9.0.0" dependencies = [ - "bincode 1.3.3", + "bincode", "bytes", "clap", "ethrex-common", "ethrex-guest-program", "ethrex-rlp", "ethrex-vm", - "openvm-continuations", "openvm-sdk", - "openvm-stark-sdk 1.2.1", + "openvm-stark-sdk", + "openvm-verify-stark-host", "risc0-zkp", "risc0-zkvm", "rkyv", @@ -4413,7 +4369,7 @@ name = "ethrex-storage-rollup" version = "9.0.0" dependencies = [ "async-trait", - "bincode 1.3.3", + "bincode", "ethereum-types 0.15.1", "ethrex-common", "ethrex-l2-common", @@ -5056,12 +5012,6 @@ dependencies = [ "num-traits", ] -[[package]] -name = "glam" -version = "0.32.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f70749695b063ecbf6b62949ccccde2e733ec3ecbbd71d467dca4e5c6c97cca0" - [[package]] name = "glob" version = "0.3.3" @@ -5239,35 +5189,6 @@ dependencies = [ "rayon", ] -[[package]] -name = "halo2curves" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b756596082144af6e57105a20403b7b80fe9dccd085700b74fae3af523b74dba" -dependencies = [ - "blake2", - "digest 0.10.7", - "ff 0.13.1", - "group 0.13.0", - "halo2derive", - "hex", - "lazy_static", - "num-bigint 0.4.6", - "num-integer", - "num-traits", - "pairing 0.23.0", - "paste", - "rand 0.8.5", - "rand_core 0.6.4", - "rayon", - "serde", - "serde_arrays 0.1.0", - "sha2", - "static_assertions", - "subtle", - "unroll", -] - [[package]] name = "halo2curves-axiom" version = "0.7.2" @@ -5323,20 +5244,6 @@ dependencies = [ "unroll", ] -[[package]] -name = "halo2derive" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bdb99e7492b4f5ff469d238db464131b86c2eaac814a78715acba369f64d2c76" -dependencies = [ - "num-bigint 0.4.6", - "num-integer", - "num-traits", - "proc-macro2", - "quote", - "syn 1.0.109", -] - [[package]] name = "hash32" version = "0.2.1" @@ -5774,7 +5681,7 @@ dependencies = [ "js-sys", "log", "wasm-bindgen", - "windows-core 0.62.2", + "windows-core 0.61.2", ] [[package]] @@ -6092,7 +5999,7 @@ checksum = "3640c1c38b8e4e43584d8df18be5fc6b0aa314ce6ebf51b53313d4306cca8e46" dependencies = [ "hermit-abi", "libc", - "windows-sys 0.61.2", + "windows-sys 0.52.0", ] [[package]] @@ -6534,7 +6441,7 @@ dependencies = [ "async-stream", "async-trait", "base64 0.21.7", - "bincode 1.3.3", + "bincode", "bitflags 2.11.1", "bytes", "chrono", @@ -7307,7 +7214,7 @@ version = "0.50.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5" dependencies = [ - "windows-sys 0.61.2", + "windows-sys 0.59.0", ] [[package]] @@ -7736,21 +7643,21 @@ dependencies = [ [[package]] name = "openvm" -version = "1.5.0" -source = "git+https://github.com/openvm-org/openvm.git#69373ff1d06b613025fe4e7a02d735a1609412c4" +version = "2.0.0-beta.1" +source = "git+https://github.com/openvm-org/openvm.git?tag=v2.0.0-beta.1#90648c5fd67fb59fe442e16424ab120fa2633f8b" dependencies = [ "bytemuck", "num-bigint 0.4.6", - "openvm-custom-insn 0.1.0 (git+https://github.com/openvm-org/openvm.git)", - "openvm-platform 1.5.0", - "openvm-rv32im-guest 1.5.0", + "openvm-custom-insn 0.1.0 (git+https://github.com/openvm-org/openvm.git?tag=v2.0.0-beta.1)", + "openvm-platform 2.0.0-beta.1", + "openvm-rv32im-guest 2.0.0-beta.1", "serde", ] [[package]] name = "openvm-algebra-circuit" -version = "1.5.0" -source = "git+https://github.com/openvm-org/openvm.git#69373ff1d06b613025fe4e7a02d735a1609412c4" +version = "2.0.0-beta.1" +source = "git+https://github.com/openvm-org/openvm.git?tag=v2.0.0-beta.1#90648c5fd67fb59fe442e16424ab120fa2633f8b" dependencies = [ "blstrs", "cfg-if", @@ -7760,20 +7667,21 @@ dependencies = [ "halo2curves-axiom 0.7.2 (git+https://github.com/axiom-crypto/halo2curves.git?tag=v0.7.2)", "num-bigint 0.4.6", "num-traits", + "once_cell", "openvm-algebra-transpiler", "openvm-circuit", "openvm-circuit-derive", "openvm-circuit-primitives", "openvm-circuit-primitives-derive", + "openvm-cpu-backend", "openvm-cuda-backend", - "openvm-cuda-builder", "openvm-cuda-common", "openvm-instructions", "openvm-mod-circuit-builder", "openvm-rv32-adapters", "openvm-rv32im-circuit", - "openvm-stark-backend 1.3.0", - "openvm-stark-sdk 1.3.0", + "openvm-stark-backend", + "openvm-stark-sdk", "rand 0.9.4", "serde", "serde_with", @@ -7792,10 +7700,10 @@ dependencies = [ [[package]] name = "openvm-algebra-complex-macros" -version = "1.5.0" -source = "git+https://github.com/openvm-org/openvm.git#69373ff1d06b613025fe4e7a02d735a1609412c4" +version = "2.0.0-beta.1" +source = "git+https://github.com/openvm-org/openvm.git?tag=v2.0.0-beta.1#90648c5fd67fb59fe442e16424ab120fa2633f8b" dependencies = [ - "openvm-macros-common 1.5.0", + "openvm-macros-common 2.0.0-beta.1", "quote", "syn 2.0.117", ] @@ -7818,16 +7726,16 @@ dependencies = [ [[package]] name = "openvm-algebra-guest" -version = "1.5.0" -source = "git+https://github.com/openvm-org/openvm.git#69373ff1d06b613025fe4e7a02d735a1609412c4" +version = "2.0.0-beta.1" +source = "git+https://github.com/openvm-org/openvm.git?tag=v2.0.0-beta.1#90648c5fd67fb59fe442e16424ab120fa2633f8b" dependencies = [ "halo2curves-axiom 0.7.2 (git+https://github.com/axiom-crypto/halo2curves.git?tag=v0.7.2)", "num-bigint 0.4.6", "once_cell", - "openvm-algebra-complex-macros 1.5.0", - "openvm-algebra-moduli-macros 1.5.0", - "openvm-custom-insn 0.1.0 (git+https://github.com/openvm-org/openvm.git)", - "openvm-rv32im-guest 1.5.0", + "openvm-algebra-complex-macros 2.0.0-beta.1", + "openvm-algebra-moduli-macros 2.0.0-beta.1", + "openvm-custom-insn 0.1.0 (git+https://github.com/openvm-org/openvm.git?tag=v2.0.0-beta.1)", + "openvm-rv32im-guest 2.0.0-beta.1", "serde-big-array", "strum_macros 0.26.4", ] @@ -7846,25 +7754,25 @@ dependencies = [ [[package]] name = "openvm-algebra-moduli-macros" -version = "1.5.0" -source = "git+https://github.com/openvm-org/openvm.git#69373ff1d06b613025fe4e7a02d735a1609412c4" +version = "2.0.0-beta.1" +source = "git+https://github.com/openvm-org/openvm.git?tag=v2.0.0-beta.1#90648c5fd67fb59fe442e16424ab120fa2633f8b" dependencies = [ "num-bigint 0.4.6", "num-prime", - "openvm-macros-common 1.5.0", + "openvm-macros-common 2.0.0-beta.1", "quote", "syn 2.0.117", ] [[package]] name = "openvm-algebra-transpiler" -version = "1.5.0" -source = "git+https://github.com/openvm-org/openvm.git#69373ff1d06b613025fe4e7a02d735a1609412c4" +version = "2.0.0-beta.1" +source = "git+https://github.com/openvm-org/openvm.git?tag=v2.0.0-beta.1#90648c5fd67fb59fe442e16424ab120fa2633f8b" dependencies = [ - "openvm-algebra-guest 1.5.0", + "openvm-algebra-guest 2.0.0-beta.1", "openvm-instructions", "openvm-instructions-derive", - "openvm-stark-backend 1.3.0", + "openvm-stark-backend", "openvm-transpiler", "rrs-lib", "strum 0.26.3", @@ -7872,8 +7780,8 @@ dependencies = [ [[package]] name = "openvm-bigint-circuit" -version = "1.5.0" -source = "git+https://github.com/openvm-org/openvm.git#69373ff1d06b613025fe4e7a02d735a1609412c4" +version = "2.0.0-beta.1" +source = "git+https://github.com/openvm-org/openvm.git?tag=v2.0.0-beta.1#90648c5fd67fb59fe442e16424ab120fa2633f8b" dependencies = [ "cfg-if", "derive-new 0.6.0", @@ -7883,6 +7791,7 @@ dependencies = [ "openvm-circuit-derive", "openvm-circuit-primitives", "openvm-circuit-primitives-derive", + "openvm-cpu-backend", "openvm-cuda-backend", "openvm-cuda-builder", "openvm-cuda-common", @@ -7890,31 +7799,31 @@ dependencies = [ "openvm-rv32-adapters", "openvm-rv32im-circuit", "openvm-rv32im-transpiler", - "openvm-stark-backend 1.3.0", - "openvm-stark-sdk 1.3.0", + "openvm-stark-backend", + "openvm-stark-sdk", "rand 0.9.4", "serde", ] [[package]] name = "openvm-bigint-guest" -version = "1.5.0" -source = "git+https://github.com/openvm-org/openvm.git#69373ff1d06b613025fe4e7a02d735a1609412c4" +version = "2.0.0-beta.1" +source = "git+https://github.com/openvm-org/openvm.git?tag=v2.0.0-beta.1#90648c5fd67fb59fe442e16424ab120fa2633f8b" dependencies = [ - "openvm-platform 1.5.0", + "openvm-platform 2.0.0-beta.1", "strum_macros 0.26.4", ] [[package]] name = "openvm-bigint-transpiler" -version = "1.5.0" -source = "git+https://github.com/openvm-org/openvm.git#69373ff1d06b613025fe4e7a02d735a1609412c4" +version = "2.0.0-beta.1" +source = "git+https://github.com/openvm-org/openvm.git?tag=v2.0.0-beta.1#90648c5fd67fb59fe442e16424ab120fa2633f8b" dependencies = [ "openvm-bigint-guest", "openvm-instructions", "openvm-instructions-derive", "openvm-rv32im-transpiler", - "openvm-stark-backend 1.3.0", + "openvm-stark-backend", "openvm-transpiler", "rrs-lib", "strum 0.26.3", @@ -7922,23 +7831,24 @@ dependencies = [ [[package]] name = "openvm-build" -version = "1.5.0" -source = "git+https://github.com/openvm-org/openvm.git#69373ff1d06b613025fe4e7a02d735a1609412c4" +version = "2.0.0-beta.1" +source = "git+https://github.com/openvm-org/openvm.git?tag=v2.0.0-beta.1#90648c5fd67fb59fe442e16424ab120fa2633f8b" dependencies = [ "cargo_metadata 0.18.1", "eyre", - "openvm-platform 1.5.0", + "openvm-platform 2.0.0-beta.1", "serde", "serde_json", ] [[package]] name = "openvm-circuit" -version = "1.5.0" -source = "git+https://github.com/openvm-org/openvm.git#69373ff1d06b613025fe4e7a02d735a1609412c4" +version = "2.0.0-beta.1" +source = "git+https://github.com/openvm-org/openvm.git?tag=v2.0.0-beta.1#90648c5fd67fb59fe442e16424ab120fa2633f8b" dependencies = [ "abi_stable", "backtrace", + "bytesize", "cfg-if", "dashmap", "derivative", @@ -7953,13 +7863,14 @@ dependencies = [ "openvm-circuit-derive", "openvm-circuit-primitives", "openvm-circuit-primitives-derive", + "openvm-cpu-backend", "openvm-cuda-backend", "openvm-cuda-builder", "openvm-cuda-common", "openvm-instructions", "openvm-poseidon2-air", - "openvm-stark-backend 1.3.0", - "openvm-stark-sdk 1.3.0", + "openvm-stark-backend", + "openvm-stark-sdk", "p3-baby-bear 0.4.1", "p3-field 0.4.1", "rand 0.9.4", @@ -7973,8 +7884,8 @@ dependencies = [ [[package]] name = "openvm-circuit-derive" -version = "1.5.0" -source = "git+https://github.com/openvm-org/openvm.git#69373ff1d06b613025fe4e7a02d735a1609412c4" +version = "2.0.0-beta.1" +source = "git+https://github.com/openvm-org/openvm.git?tag=v2.0.0-beta.1#90648c5fd67fb59fe442e16424ab120fa2633f8b" dependencies = [ "itertools 0.14.0", "proc-macro2", @@ -7984,84 +7895,130 @@ dependencies = [ [[package]] name = "openvm-circuit-primitives" -version = "1.5.0" -source = "git+https://github.com/openvm-org/openvm.git#69373ff1d06b613025fe4e7a02d735a1609412c4" +version = "2.0.0-beta.1" +source = "git+https://github.com/openvm-org/openvm.git?tag=v2.0.0-beta.1#90648c5fd67fb59fe442e16424ab120fa2633f8b" dependencies = [ "derive-new 0.6.0", "itertools 0.14.0", "num-bigint 0.4.6", "num-traits", "openvm-circuit-primitives-derive", + "openvm-cpu-backend", "openvm-cuda-backend", "openvm-cuda-builder", "openvm-cuda-common", - "openvm-stark-backend 1.3.0", + "openvm-stark-backend", "rand 0.9.4", "tracing", ] [[package]] name = "openvm-circuit-primitives-derive" -version = "1.5.0" -source = "git+https://github.com/openvm-org/openvm.git#69373ff1d06b613025fe4e7a02d735a1609412c4" +version = "2.0.0-beta.1" +source = "git+https://github.com/openvm-org/openvm.git?tag=v2.0.0-beta.1#90648c5fd67fb59fe442e16424ab120fa2633f8b" dependencies = [ "itertools 0.14.0", + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "openvm-codec-derive" +version = "2.0.0-alpha" +source = "git+https://github.com/openvm-org/stark-backend.git?tag=v2.0.0-beta.1#92940d8f4273a48a416719ba1a1431abd72f7842" +dependencies = [ + "proc-macro-crate 1.3.1", + "proc-macro2", "quote", "syn 2.0.117", ] [[package]] name = "openvm-continuations" -version = "1.5.0" -source = "git+https://github.com/openvm-org/openvm.git#69373ff1d06b613025fe4e7a02d735a1609412c4" +version = "2.0.0-beta.1" +source = "git+https://github.com/openvm-org/openvm.git?tag=v2.0.0-beta.1#90648c5fd67fb59fe442e16424ab120fa2633f8b" dependencies = [ - "derivative", + "cfg-if", + "derive-new 0.6.0", + "eyre", + "itertools 0.14.0", + "num-bigint 0.4.6", "openvm-circuit", - "openvm-native-compiler", - "openvm-native-recursion", - "openvm-stark-backend 1.3.0", - "openvm-stark-sdk 1.3.0", + "openvm-circuit-primitives", + "openvm-cpu-backend", + "openvm-cuda-backend", + "openvm-cuda-builder", + "openvm-cuda-common", + "openvm-poseidon2-air", + "openvm-recursion-circuit", + "openvm-recursion-circuit-derive", + "openvm-stark-backend", + "openvm-stark-sdk", + "openvm-verify-stark-host", + "p3-air 0.4.1", "p3-bn254", + "p3-field 0.4.1", + "p3-matrix 0.4.1", + "tracing", +] + +[[package]] +name = "openvm-cpu-backend" +version = "2.0.0-alpha" +source = "git+https://github.com/openvm-org/stark-backend.git?tag=v2.0.0-beta.1#92940d8f4273a48a416719ba1a1431abd72f7842" +dependencies = [ + "cfg-if", + "derive-new 0.7.0", + "getset", + "itertools 0.14.0", + "openvm-stark-backend", + "p3-air 0.4.1", + "p3-baby-bear 0.4.1", + "p3-dft 0.4.1", + "p3-field 0.4.1", + "p3-interpolation 0.4.1", + "p3-matrix 0.4.1", + "p3-maybe-rayon 0.4.1", + "p3-util 0.4.1", + "rayon", + "rustc-hash 2.1.2", "serde", - "static_assertions", + "thiserror 1.0.69", + "tracing", ] [[package]] name = "openvm-cuda-backend" -version = "1.3.0" -source = "git+https://github.com/openvm-org/stark-backend.git?tag=v1.3.0#a3ef723240b92b3b56a8f24ab23434004c148514" +version = "2.0.0-alpha" +source = "git+https://github.com/openvm-org/stark-backend.git?tag=v2.0.0-beta.1#92940d8f4273a48a416719ba1a1431abd72f7842" dependencies = [ - "bincode 2.0.1", - "bincode_derive", - "derivative", "derive-new 0.7.0", + "getset", + "glob", "itertools 0.14.0", - "lazy_static", - "metrics", "openvm-cuda-builder", "openvm-cuda-common", - "openvm-stark-backend 1.3.0", - "openvm-stark-sdk 1.3.0", + "openvm-stark-backend", + "openvm-stark-sdk", "p3-baby-bear 0.4.1", - "p3-commit 0.4.1", + "p3-bn254", "p3-dft 0.4.1", "p3-field 0.4.1", - "p3-fri 0.4.1", - "p3-matrix 0.4.1", - "p3-merkle-tree 0.4.1", "p3-symmetric 0.4.1", "p3-util 0.4.1", + "rand 0.9.4", "rustc-hash 2.1.2", "serde", - "serde_json", "thiserror 1.0.69", "tracing", + "zkhash 0.2.0 (git+https://github.com/HorizenLabs/poseidon2.git?rev=bb476b9)", ] [[package]] name = "openvm-cuda-builder" -version = "1.3.0" -source = "git+https://github.com/openvm-org/stark-backend.git?tag=v1.3.0#a3ef723240b92b3b56a8f24ab23434004c148514" +version = "2.0.0-alpha" +source = "git+https://github.com/openvm-org/stark-backend.git?tag=v2.0.0-beta.1#92940d8f4273a48a416719ba1a1431abd72f7842" dependencies = [ "cc", "glob", @@ -8069,8 +8026,8 @@ dependencies = [ [[package]] name = "openvm-cuda-common" -version = "1.3.0" -source = "git+https://github.com/openvm-org/stark-backend.git?tag=v1.3.0#a3ef723240b92b3b56a8f24ab23434004c148514" +version = "2.0.0-alpha" +source = "git+https://github.com/openvm-org/stark-backend.git?tag=v2.0.0-beta.1#92940d8f4273a48a416719ba1a1431abd72f7842" dependencies = [ "bytesize", "ctor", @@ -8094,24 +8051,83 @@ dependencies = [ [[package]] name = "openvm-custom-insn" version = "0.1.0" -source = "git+https://github.com/openvm-org/openvm.git#69373ff1d06b613025fe4e7a02d735a1609412c4" +source = "git+https://github.com/openvm-org/openvm.git?tag=v2.0.0-beta.1#90648c5fd67fb59fe442e16424ab120fa2633f8b" dependencies = [ "proc-macro2", "quote", "syn 2.0.117", ] +[[package]] +name = "openvm-deferral-circuit" +version = "2.0.0-beta.1" +source = "git+https://github.com/openvm-org/openvm.git?tag=v2.0.0-beta.1#90648c5fd67fb59fe442e16424ab120fa2633f8b" +dependencies = [ + "cfg-if", + "dashmap", + "derive-new 0.6.0", + "derive_more 1.0.0", + "eyre", + "itertools 0.14.0", + "openvm-circuit", + "openvm-circuit-derive", + "openvm-circuit-primitives", + "openvm-circuit-primitives-derive", + "openvm-cpu-backend", + "openvm-cuda-backend", + "openvm-cuda-builder", + "openvm-cuda-common", + "openvm-deferral-transpiler", + "openvm-instructions", + "openvm-poseidon2-air", + "openvm-rv32im-circuit", + "openvm-rv32im-transpiler", + "openvm-stark-backend", + "openvm-stark-sdk", + "p3-field 0.4.1", + "rand 0.9.4", + "rustc-hash 2.1.2", + "serde", + "static_assertions", + "strum 0.26.3", +] + +[[package]] +name = "openvm-deferral-guest" +version = "2.0.0-beta.1" +source = "git+https://github.com/openvm-org/openvm.git?tag=v2.0.0-beta.1#90648c5fd67fb59fe442e16424ab120fa2633f8b" +dependencies = [ + "openvm-custom-insn 0.1.0 (git+https://github.com/openvm-org/openvm.git?tag=v2.0.0-beta.1)", + "strum_macros 0.26.4", +] + +[[package]] +name = "openvm-deferral-transpiler" +version = "2.0.0-beta.1" +source = "git+https://github.com/openvm-org/openvm.git?tag=v2.0.0-beta.1#90648c5fd67fb59fe442e16424ab120fa2633f8b" +dependencies = [ + "eyre", + "openvm-deferral-guest", + "openvm-instructions", + "openvm-instructions-derive", + "openvm-transpiler", + "p3-field 0.4.1", + "rrs-lib", + "serde", + "strum 0.26.3", +] + [[package]] name = "openvm-ecc-circuit" -version = "1.5.0" -source = "git+https://github.com/openvm-org/openvm.git#69373ff1d06b613025fe4e7a02d735a1609412c4" +version = "2.0.0-beta.1" +source = "git+https://github.com/openvm-org/openvm.git?tag=v2.0.0-beta.1#90648c5fd67fb59fe442e16424ab120fa2633f8b" dependencies = [ "blstrs", "cfg-if", "derive-new 0.6.0", "derive_more 1.0.0", "halo2curves-axiom 0.7.2 (git+https://github.com/axiom-crypto/halo2curves.git?tag=v0.7.2)", - "hex-literal 0.4.1", + "hex-literal 1.1.0", "lazy_static", "num-bigint 0.4.6", "num-traits", @@ -8120,14 +8136,15 @@ dependencies = [ "openvm-circuit", "openvm-circuit-derive", "openvm-circuit-primitives", + "openvm-cpu-backend", "openvm-cuda-backend", "openvm-cuda-common", "openvm-ecc-transpiler", "openvm-instructions", "openvm-mod-circuit-builder", "openvm-rv32-adapters", - "openvm-stark-backend 1.3.0", - "openvm-stark-sdk 1.3.0", + "openvm-stark-backend", + "openvm-stark-sdk", "rand 0.9.4", "serde", "serde_with", @@ -8155,19 +8172,19 @@ dependencies = [ [[package]] name = "openvm-ecc-guest" -version = "1.5.0" -source = "git+https://github.com/openvm-org/openvm.git#69373ff1d06b613025fe4e7a02d735a1609412c4" +version = "2.0.0-beta.1" +source = "git+https://github.com/openvm-org/openvm.git?tag=v2.0.0-beta.1#90648c5fd67fb59fe442e16424ab120fa2633f8b" dependencies = [ "ecdsa", "elliptic-curve", "group 0.13.0", "halo2curves-axiom 0.7.2 (git+https://github.com/axiom-crypto/halo2curves.git?tag=v0.7.2)", "once_cell", - "openvm 1.5.0", - "openvm-algebra-guest 1.5.0", - "openvm-custom-insn 0.1.0 (git+https://github.com/openvm-org/openvm.git)", - "openvm-ecc-sw-macros 1.5.0", - "openvm-rv32im-guest 1.5.0", + "openvm 2.0.0-beta.1", + "openvm-algebra-guest 2.0.0-beta.1", + "openvm-custom-insn 0.1.0 (git+https://github.com/openvm-org/openvm.git?tag=v2.0.0-beta.1)", + "openvm-ecc-sw-macros 2.0.0-beta.1", + "openvm-rv32im-guest 2.0.0-beta.1", "serde", "strum_macros 0.26.4", ] @@ -8184,23 +8201,23 @@ dependencies = [ [[package]] name = "openvm-ecc-sw-macros" -version = "1.5.0" -source = "git+https://github.com/openvm-org/openvm.git#69373ff1d06b613025fe4e7a02d735a1609412c4" +version = "2.0.0-beta.1" +source = "git+https://github.com/openvm-org/openvm.git?tag=v2.0.0-beta.1#90648c5fd67fb59fe442e16424ab120fa2633f8b" dependencies = [ - "openvm-macros-common 1.5.0", + "openvm-macros-common 2.0.0-beta.1", "quote", "syn 2.0.117", ] [[package]] name = "openvm-ecc-transpiler" -version = "1.5.0" -source = "git+https://github.com/openvm-org/openvm.git#69373ff1d06b613025fe4e7a02d735a1609412c4" +version = "2.0.0-beta.1" +source = "git+https://github.com/openvm-org/openvm.git?tag=v2.0.0-beta.1#90648c5fd67fb59fe442e16424ab120fa2633f8b" dependencies = [ - "openvm-ecc-guest 1.5.0", + "openvm-ecc-guest 2.0.0-beta.1", "openvm-instructions", "openvm-instructions-derive", - "openvm-stark-backend 1.3.0", + "openvm-stark-backend", "openvm-transpiler", "rrs-lib", "strum 0.26.3", @@ -8208,8 +8225,8 @@ dependencies = [ [[package]] name = "openvm-instructions" -version = "1.5.0" -source = "git+https://github.com/openvm-org/openvm.git#69373ff1d06b613025fe4e7a02d735a1609412c4" +version = "2.0.0-beta.1" +source = "git+https://github.com/openvm-org/openvm.git?tag=v2.0.0-beta.1#90648c5fd67fb59fe442e16424ab120fa2633f8b" dependencies = [ "backtrace", "derive-new 0.6.0", @@ -8217,7 +8234,7 @@ dependencies = [ "num-bigint 0.4.6", "num-traits", "openvm-instructions-derive", - "openvm-stark-backend 1.3.0", + "openvm-stark-backend", "serde", "strum 0.26.3", "strum_macros 0.26.4", @@ -8225,19 +8242,28 @@ dependencies = [ [[package]] name = "openvm-instructions-derive" -version = "1.5.0" -source = "git+https://github.com/openvm-org/openvm.git#69373ff1d06b613025fe4e7a02d735a1609412c4" +version = "2.0.0-beta.1" +source = "git+https://github.com/openvm-org/openvm.git?tag=v2.0.0-beta.1#90648c5fd67fb59fe442e16424ab120fa2633f8b" dependencies = [ "quote", "syn 2.0.117", ] +[[package]] +name = "openvm-keccak256" +version = "2.0.0-beta.1" +source = "git+https://github.com/openvm-org/openvm.git?tag=v2.0.0-beta.1#90648c5fd67fb59fe442e16424ab120fa2633f8b" +dependencies = [ + "openvm-keccak256-guest", + "spin 0.10.0", + "tiny-keccak", +] + [[package]] name = "openvm-keccak256-circuit" -version = "1.5.0" -source = "git+https://github.com/openvm-org/openvm.git#69373ff1d06b613025fe4e7a02d735a1609412c4" +version = "2.0.0-beta.1" +source = "git+https://github.com/openvm-org/openvm.git?tag=v2.0.0-beta.1#90648c5fd67fb59fe442e16424ab120fa2633f8b" dependencies = [ - "cfg-if", "derive-new 0.6.0", "derive_more 1.0.0", "itertools 0.14.0", @@ -8245,14 +8271,15 @@ dependencies = [ "openvm-circuit-derive", "openvm-circuit-primitives", "openvm-circuit-primitives-derive", + "openvm-cpu-backend", "openvm-cuda-backend", "openvm-cuda-builder", "openvm-cuda-common", "openvm-instructions", "openvm-keccak256-transpiler", "openvm-rv32im-circuit", - "openvm-stark-backend 1.3.0", - "openvm-stark-sdk 1.3.0", + "openvm-stark-backend", + "openvm-stark-sdk", "p3-keccak-air 0.4.1", "rand 0.9.4", "serde", @@ -8262,21 +8289,21 @@ dependencies = [ [[package]] name = "openvm-keccak256-guest" -version = "1.5.0" -source = "git+https://github.com/openvm-org/openvm.git#69373ff1d06b613025fe4e7a02d735a1609412c4" +version = "2.0.0-beta.1" +source = "git+https://github.com/openvm-org/openvm.git?tag=v2.0.0-beta.1#90648c5fd67fb59fe442e16424ab120fa2633f8b" dependencies = [ - "openvm-platform 1.5.0", + "openvm-platform 2.0.0-beta.1", ] [[package]] name = "openvm-keccak256-transpiler" -version = "1.5.0" -source = "git+https://github.com/openvm-org/openvm.git#69373ff1d06b613025fe4e7a02d735a1609412c4" +version = "2.0.0-beta.1" +source = "git+https://github.com/openvm-org/openvm.git?tag=v2.0.0-beta.1#90648c5fd67fb59fe442e16424ab120fa2633f8b" dependencies = [ "openvm-instructions", "openvm-instructions-derive", "openvm-keccak256-guest", - "openvm-stark-backend 1.3.0", + "openvm-stark-backend", "openvm-transpiler", "rrs-lib", "strum 0.26.3", @@ -8292,7 +8319,7 @@ dependencies = [ "hex-literal 1.1.0", "openvm-algebra-guest 1.4.1", "openvm-ecc-guest 1.4.1", - "openvm-pairing", + "openvm-pairing 1.4.1", "serde", "serde-big-array", "spin 0.10.0", @@ -8308,139 +8335,34 @@ dependencies = [ [[package]] name = "openvm-macros-common" -version = "1.5.0" -source = "git+https://github.com/openvm-org/openvm.git#69373ff1d06b613025fe4e7a02d735a1609412c4" +version = "2.0.0-beta.1" +source = "git+https://github.com/openvm-org/openvm.git?tag=v2.0.0-beta.1#90648c5fd67fb59fe442e16424ab120fa2633f8b" dependencies = [ "syn 2.0.117", ] [[package]] name = "openvm-mod-circuit-builder" -version = "1.5.0" -source = "git+https://github.com/openvm-org/openvm.git#69373ff1d06b613025fe4e7a02d735a1609412c4" +version = "2.0.0-beta.1" +source = "git+https://github.com/openvm-org/openvm.git?tag=v2.0.0-beta.1#90648c5fd67fb59fe442e16424ab120fa2633f8b" dependencies = [ - "cuda-runtime-sys", "itertools 0.14.0", "num-bigint 0.4.6", "num-traits", "openvm-circuit", "openvm-circuit-primitives", - "openvm-cuda-backend", - "openvm-cuda-builder", - "openvm-cuda-common", "openvm-instructions", - "openvm-stark-backend 1.3.0", - "openvm-stark-sdk 1.3.0", + "openvm-stark-backend", + "openvm-stark-sdk", "rand 0.8.5", "rand 0.9.4", "tracing", ] [[package]] -name = "openvm-native-circuit" -version = "1.5.0" -source = "git+https://github.com/openvm-org/openvm.git#69373ff1d06b613025fe4e7a02d735a1609412c4" -dependencies = [ - "cfg-if", - "derive-new 0.6.0", - "derive_more 1.0.0", - "eyre", - "itertools 0.14.0", - "openvm-circuit", - "openvm-circuit-derive", - "openvm-circuit-primitives", - "openvm-circuit-primitives-derive", - "openvm-cuda-backend", - "openvm-cuda-builder", - "openvm-cuda-common", - "openvm-instructions", - "openvm-native-compiler", - "openvm-poseidon2-air", - "openvm-rv32im-circuit", - "openvm-rv32im-transpiler", - "openvm-stark-backend 1.3.0", - "openvm-stark-sdk 1.3.0", - "p3-field 0.4.1", - "rand 0.9.4", - "serde", - "static_assertions", - "strum 0.26.3", -] - -[[package]] -name = "openvm-native-compiler" -version = "1.5.0" -source = "git+https://github.com/openvm-org/openvm.git#69373ff1d06b613025fe4e7a02d735a1609412c4" -dependencies = [ - "backtrace", - "itertools 0.14.0", - "num-bigint 0.4.6", - "num-integer", - "openvm-circuit", - "openvm-instructions", - "openvm-instructions-derive", - "openvm-native-compiler-derive", - "openvm-rv32im-transpiler", - "openvm-stark-backend 1.3.0", - "openvm-stark-sdk 1.3.0", - "serde", - "snark-verifier-sdk", - "strum 0.26.3", - "strum_macros 0.26.4", - "zkhash 0.2.0 (git+https://github.com/HorizenLabs/poseidon2.git?rev=bb476b9)", -] - -[[package]] -name = "openvm-native-compiler-derive" -version = "1.5.0" -source = "git+https://github.com/openvm-org/openvm.git#69373ff1d06b613025fe4e7a02d735a1609412c4" -dependencies = [ - "quote", - "syn 2.0.117", -] - -[[package]] -name = "openvm-native-recursion" -version = "1.5.0" -source = "git+https://github.com/openvm-org/openvm.git#69373ff1d06b613025fe4e7a02d735a1609412c4" -dependencies = [ - "cfg-if", - "itertools 0.14.0", - "lazy_static", - "once_cell", - "openvm-circuit", - "openvm-native-circuit", - "openvm-native-compiler", - "openvm-native-compiler-derive", - "openvm-stark-backend 1.3.0", - "openvm-stark-sdk 1.3.0", - "p3-dft 0.4.1", - "p3-fri 0.4.1", - "p3-merkle-tree 0.4.1", - "p3-symmetric 0.4.1", - "rand 0.8.5", - "rand 0.9.4", - "serde", - "serde_json", - "serde_with", - "snark-verifier-sdk", - "tracing", -] - -[[package]] -name = "openvm-native-transpiler" -version = "1.5.0" -source = "git+https://github.com/openvm-org/openvm.git#69373ff1d06b613025fe4e7a02d735a1609412c4" -dependencies = [ - "openvm-instructions", - "openvm-transpiler", - "p3-field 0.4.1", -] - -[[package]] -name = "openvm-pairing" -version = "1.4.1" -source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.1#05cb6a11bbd7ac3ac8a00c3fc56391b06f54baa2" +name = "openvm-pairing" +version = "1.4.1" +source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.1#05cb6a11bbd7ac3ac8a00c3fc56391b06f54baa2" dependencies = [ "group 0.13.0", "hex-literal 0.4.1", @@ -8461,10 +8383,33 @@ dependencies = [ "serde", ] +[[package]] +name = "openvm-pairing" +version = "2.0.0-beta.1" +source = "git+https://github.com/openvm-org/openvm.git?tag=v2.0.0-beta.1#90648c5fd67fb59fe442e16424ab120fa2633f8b" +dependencies = [ + "group 0.13.0", + "hex-literal 1.1.0", + "itertools 0.14.0", + "num-bigint 0.4.6", + "num-traits", + "openvm 2.0.0-beta.1", + "openvm-algebra-complex-macros 2.0.0-beta.1", + "openvm-algebra-guest 2.0.0-beta.1", + "openvm-algebra-moduli-macros 2.0.0-beta.1", + "openvm-custom-insn 0.1.0 (git+https://github.com/openvm-org/openvm.git?tag=v2.0.0-beta.1)", + "openvm-ecc-guest 2.0.0-beta.1", + "openvm-ecc-sw-macros 2.0.0-beta.1", + "openvm-pairing-guest 2.0.0-beta.1", + "openvm-platform 2.0.0-beta.1", + "openvm-rv32im-guest 2.0.0-beta.1", + "serde", +] + [[package]] name = "openvm-pairing-circuit" -version = "1.5.0" -source = "git+https://github.com/openvm-org/openvm.git#69373ff1d06b613025fe4e7a02d735a1609412c4" +version = "2.0.0-beta.1" +source = "git+https://github.com/openvm-org/openvm.git?tag=v2.0.0-beta.1#90648c5fd67fb59fe442e16424ab120fa2633f8b" dependencies = [ "cfg-if", "derive-new 0.6.0", @@ -8477,16 +8422,17 @@ dependencies = [ "openvm-circuit", "openvm-circuit-derive", "openvm-circuit-primitives", + "openvm-cpu-backend", "openvm-cuda-backend", "openvm-ecc-circuit", - "openvm-ecc-guest 1.5.0", + "openvm-ecc-guest 2.0.0-beta.1", "openvm-instructions", "openvm-mod-circuit-builder", - "openvm-pairing-guest 1.5.0", + "openvm-pairing-guest 2.0.0-beta.1", "openvm-pairing-transpiler", "openvm-rv32im-circuit", - "openvm-stark-backend 1.3.0", - "openvm-stark-sdk 1.3.0", + "openvm-stark-backend", + "openvm-stark-sdk", "rand 0.9.4", "serde", "strum 0.26.3", @@ -8514,33 +8460,33 @@ dependencies = [ [[package]] name = "openvm-pairing-guest" -version = "1.5.0" -source = "git+https://github.com/openvm-org/openvm.git#69373ff1d06b613025fe4e7a02d735a1609412c4" +version = "2.0.0-beta.1" +source = "git+https://github.com/openvm-org/openvm.git?tag=v2.0.0-beta.1#90648c5fd67fb59fe442e16424ab120fa2633f8b" dependencies = [ "blstrs", "halo2curves-axiom 0.7.2 (git+https://github.com/axiom-crypto/halo2curves.git?tag=v0.7.2)", - "hex-literal 0.4.1", + "hex-literal 1.1.0", "itertools 0.14.0", "lazy_static", "num-bigint 0.4.6", "num-traits", - "openvm 1.5.0", - "openvm-algebra-guest 1.5.0", - "openvm-algebra-moduli-macros 1.5.0", - "openvm-custom-insn 0.1.0 (git+https://github.com/openvm-org/openvm.git)", - "openvm-ecc-guest 1.5.0", + "openvm 2.0.0-beta.1", + "openvm-algebra-guest 2.0.0-beta.1", + "openvm-algebra-moduli-macros 2.0.0-beta.1", + "openvm-custom-insn 0.1.0 (git+https://github.com/openvm-org/openvm.git?tag=v2.0.0-beta.1)", + "openvm-ecc-guest 2.0.0-beta.1", "serde", "strum_macros 0.26.4", ] [[package]] name = "openvm-pairing-transpiler" -version = "1.5.0" -source = "git+https://github.com/openvm-org/openvm.git#69373ff1d06b613025fe4e7a02d735a1609412c4" +version = "2.0.0-beta.1" +source = "git+https://github.com/openvm-org/openvm.git?tag=v2.0.0-beta.1#90648c5fd67fb59fe442e16424ab120fa2633f8b" dependencies = [ "openvm-instructions", - "openvm-pairing-guest 1.5.0", - "openvm-stark-backend 1.3.0", + "openvm-pairing-guest 2.0.0-beta.1", + "openvm-stark-backend", "openvm-transpiler", "rrs-lib", "strum 0.26.3", @@ -8558,24 +8504,24 @@ dependencies = [ [[package]] name = "openvm-platform" -version = "1.5.0" -source = "git+https://github.com/openvm-org/openvm.git#69373ff1d06b613025fe4e7a02d735a1609412c4" +version = "2.0.0-beta.1" +source = "git+https://github.com/openvm-org/openvm.git?tag=v2.0.0-beta.1#90648c5fd67fb59fe442e16424ab120fa2633f8b" dependencies = [ "libm", - "openvm-custom-insn 0.1.0 (git+https://github.com/openvm-org/openvm.git)", - "openvm-rv32im-guest 1.5.0", + "openvm-custom-insn 0.1.0 (git+https://github.com/openvm-org/openvm.git?tag=v2.0.0-beta.1)", + "openvm-rv32im-guest 2.0.0-beta.1", ] [[package]] name = "openvm-poseidon2-air" -version = "1.5.0" -source = "git+https://github.com/openvm-org/openvm.git#69373ff1d06b613025fe4e7a02d735a1609412c4" +version = "2.0.0-beta.1" +source = "git+https://github.com/openvm-org/openvm.git?tag=v2.0.0-beta.1#90648c5fd67fb59fe442e16424ab120fa2633f8b" dependencies = [ "derivative", "lazy_static", "openvm-cuda-builder", - "openvm-stark-backend 1.3.0", - "openvm-stark-sdk 1.3.0", + "openvm-stark-backend", + "openvm-stark-sdk", "p3-poseidon2 0.4.1", "p3-poseidon2-air", "p3-symmetric 0.4.1", @@ -8583,10 +8529,48 @@ dependencies = [ "zkhash 0.2.0 (git+https://github.com/HorizenLabs/poseidon2.git?rev=bb476b9)", ] +[[package]] +name = "openvm-recursion-circuit" +version = "2.0.0-beta.1" +source = "git+https://github.com/openvm-org/openvm.git?tag=v2.0.0-beta.1#90648c5fd67fb59fe442e16424ab120fa2633f8b" +dependencies = [ + "derive-new 0.6.0", + "eyre", + "itertools 0.14.0", + "openvm-circuit", + "openvm-circuit-primitives", + "openvm-cpu-backend", + "openvm-cuda-backend", + "openvm-cuda-builder", + "openvm-cuda-common", + "openvm-poseidon2-air", + "openvm-recursion-circuit-derive", + "openvm-stark-backend", + "openvm-stark-sdk", + "p3-air 0.4.1", + "p3-baby-bear 0.4.1", + "p3-field 0.4.1", + "p3-matrix 0.4.1", + "p3-maybe-rayon 0.4.1", + "p3-symmetric 0.4.1", + "strum 0.26.3", + "strum_macros 0.26.4", + "tracing", +] + +[[package]] +name = "openvm-recursion-circuit-derive" +version = "2.0.0-beta.1" +source = "git+https://github.com/openvm-org/openvm.git?tag=v2.0.0-beta.1#90648c5fd67fb59fe442e16424ab120fa2633f8b" +dependencies = [ + "quote", + "syn 2.0.117", +] + [[package]] name = "openvm-rv32-adapters" -version = "1.5.0" -source = "git+https://github.com/openvm-org/openvm.git#69373ff1d06b613025fe4e7a02d735a1609412c4" +version = "2.0.0-beta.1" +source = "git+https://github.com/openvm-org/openvm.git?tag=v2.0.0-beta.1#90648c5fd67fb59fe442e16424ab120fa2633f8b" dependencies = [ "derive-new 0.6.0", "itertools 0.14.0", @@ -8595,15 +8579,15 @@ dependencies = [ "openvm-circuit-primitives-derive", "openvm-instructions", "openvm-rv32im-circuit", - "openvm-stark-backend 1.3.0", - "openvm-stark-sdk 1.3.0", + "openvm-stark-backend", + "openvm-stark-sdk", "rand 0.9.4", ] [[package]] name = "openvm-rv32im-circuit" -version = "1.5.0" -source = "git+https://github.com/openvm-org/openvm.git#69373ff1d06b613025fe4e7a02d735a1609412c4" +version = "2.0.0-beta.1" +source = "git+https://github.com/openvm-org/openvm.git?tag=v2.0.0-beta.1#90648c5fd67fb59fe442e16424ab120fa2633f8b" dependencies = [ "cfg-if", "derive-new 0.6.0", @@ -8615,13 +8599,14 @@ dependencies = [ "openvm-circuit-derive", "openvm-circuit-primitives", "openvm-circuit-primitives-derive", + "openvm-cpu-backend", "openvm-cuda-backend", "openvm-cuda-builder", "openvm-cuda-common", "openvm-instructions", "openvm-rv32im-transpiler", - "openvm-stark-backend 1.3.0", - "openvm-stark-sdk 1.3.0", + "openvm-stark-backend", + "openvm-stark-sdk", "rand 0.9.4", "serde", "strum 0.26.3", @@ -8639,23 +8624,23 @@ dependencies = [ [[package]] name = "openvm-rv32im-guest" -version = "1.5.0" -source = "git+https://github.com/openvm-org/openvm.git#69373ff1d06b613025fe4e7a02d735a1609412c4" +version = "2.0.0-beta.1" +source = "git+https://github.com/openvm-org/openvm.git?tag=v2.0.0-beta.1#90648c5fd67fb59fe442e16424ab120fa2633f8b" dependencies = [ - "openvm-custom-insn 0.1.0 (git+https://github.com/openvm-org/openvm.git)", + "openvm-custom-insn 0.1.0 (git+https://github.com/openvm-org/openvm.git?tag=v2.0.0-beta.1)", "p3-field 0.4.1", "strum_macros 0.26.4", ] [[package]] name = "openvm-rv32im-transpiler" -version = "1.5.0" -source = "git+https://github.com/openvm-org/openvm.git#69373ff1d06b613025fe4e7a02d735a1609412c4" +version = "2.0.0-beta.1" +source = "git+https://github.com/openvm-org/openvm.git?tag=v2.0.0-beta.1#90648c5fd67fb59fe442e16424ab120fa2633f8b" dependencies = [ "openvm-instructions", "openvm-instructions-derive", - "openvm-rv32im-guest 1.5.0", - "openvm-stark-backend 1.3.0", + "openvm-rv32im-guest 2.0.0-beta.1", + "openvm-stark-backend", "openvm-transpiler", "rrs-lib", "serde", @@ -8665,116 +8650,149 @@ dependencies = [ [[package]] name = "openvm-sdk" -version = "1.5.0" -source = "git+https://github.com/openvm-org/openvm.git#69373ff1d06b613025fe4e7a02d735a1609412c4" +version = "2.0.0-beta.1" +source = "git+https://github.com/openvm-org/openvm.git?tag=v2.0.0-beta.1#90648c5fd67fb59fe442e16424ab120fa2633f8b" dependencies = [ "bitcode", "bon", "cfg-if", "clap", "derivative", + "derive-new 0.6.0", "derive_more 1.0.0", "eyre", "getset", + "halo2-base", "hex", "itertools 0.14.0", - "metrics", "num-bigint 0.4.6", - "openvm 1.5.0", + "openvm 2.0.0-beta.1", + "openvm-build", + "openvm-circuit", + "openvm-continuations", + "openvm-cuda-backend", + "openvm-deferral-circuit", + "openvm-recursion-circuit", + "openvm-sdk-config", + "openvm-stark-backend", + "openvm-stark-sdk", + "openvm-static-verifier", + "openvm-transpiler", + "openvm-verify-stark-host", + "p3-bn254", + "serde", + "serde_json", + "serde_with", + "thiserror 1.0.69", + "toml", + "tracing", +] + +[[package]] +name = "openvm-sdk-config" +version = "2.0.0-beta.1" +source = "git+https://github.com/openvm-org/openvm.git?tag=v2.0.0-beta.1#90648c5fd67fb59fe442e16424ab120fa2633f8b" +dependencies = [ + "bon", + "cfg-if", + "derive_more 1.0.0", + "openvm 2.0.0-beta.1", "openvm-algebra-circuit", "openvm-algebra-transpiler", "openvm-bigint-circuit", "openvm-bigint-transpiler", - "openvm-build", "openvm-circuit", - "openvm-continuations", + "openvm-cpu-backend", "openvm-cuda-backend", + "openvm-deferral-circuit", + "openvm-deferral-transpiler", "openvm-ecc-circuit", "openvm-ecc-transpiler", "openvm-keccak256-circuit", "openvm-keccak256-transpiler", - "openvm-native-circuit", - "openvm-native-compiler", - "openvm-native-recursion", - "openvm-native-transpiler", "openvm-pairing-circuit", "openvm-pairing-transpiler", "openvm-rv32im-circuit", "openvm-rv32im-transpiler", - "openvm-sha256-circuit", - "openvm-sha256-transpiler", - "openvm-stark-backend 1.3.0", - "openvm-stark-sdk 1.3.0", + "openvm-sha2-circuit", + "openvm-sha2-transpiler", + "openvm-stark-backend", + "openvm-stark-sdk", "openvm-transpiler", - "p3-bn254", - "p3-fri 0.4.1", - "rand 0.9.4", - "rrs-lib", "serde", - "serde_json", - "serde_with", - "snark-verifier", - "snark-verifier-sdk", - "tempfile", - "thiserror 1.0.69", "toml", - "tracing", ] [[package]] -name = "openvm-sha256-air" -version = "1.5.0" -source = "git+https://github.com/openvm-org/openvm.git#69373ff1d06b613025fe4e7a02d735a1609412c4" +name = "openvm-sha2" +version = "2.0.0-beta.1" +source = "git+https://github.com/openvm-org/openvm.git?tag=v2.0.0-beta.1#90648c5fd67fb59fe442e16424ab120fa2633f8b" +dependencies = [ + "openvm 2.0.0-beta.1", + "openvm-sha2-guest", + "sha2", +] + +[[package]] +name = "openvm-sha2-air" +version = "2.0.0-beta.1" +source = "git+https://github.com/openvm-org/openvm.git?tag=v2.0.0-beta.1#90648c5fd67fb59fe442e16424ab120fa2633f8b" dependencies = [ + "ndarray", + "num_enum 0.7.6", "openvm-circuit-primitives", - "openvm-stark-backend 1.3.0", + "openvm-circuit-primitives-derive", + "openvm-stark-backend", "rand 0.9.4", "sha2", ] [[package]] -name = "openvm-sha256-circuit" -version = "1.5.0" -source = "git+https://github.com/openvm-org/openvm.git#69373ff1d06b613025fe4e7a02d735a1609412c4" +name = "openvm-sha2-circuit" +version = "2.0.0-beta.1" +source = "git+https://github.com/openvm-org/openvm.git?tag=v2.0.0-beta.1#90648c5fd67fb59fe442e16424ab120fa2633f8b" dependencies = [ "cfg-if", "derive-new 0.6.0", "derive_more 1.0.0", + "itertools 0.14.0", + "ndarray", "openvm-circuit", "openvm-circuit-derive", "openvm-circuit-primitives", + "openvm-circuit-primitives-derive", + "openvm-cpu-backend", "openvm-cuda-backend", "openvm-cuda-builder", "openvm-cuda-common", "openvm-instructions", "openvm-rv32im-circuit", - "openvm-sha256-air", - "openvm-sha256-transpiler", - "openvm-stark-backend 1.3.0", - "openvm-stark-sdk 1.3.0", + "openvm-sha2-air", + "openvm-sha2-transpiler", + "openvm-stark-backend", + "openvm-stark-sdk", "rand 0.9.4", "serde", "sha2", - "strum 0.26.3", ] [[package]] -name = "openvm-sha256-guest" -version = "1.5.0" -source = "git+https://github.com/openvm-org/openvm.git#69373ff1d06b613025fe4e7a02d735a1609412c4" +name = "openvm-sha2-guest" +version = "2.0.0-beta.1" +source = "git+https://github.com/openvm-org/openvm.git?tag=v2.0.0-beta.1#90648c5fd67fb59fe442e16424ab120fa2633f8b" dependencies = [ - "openvm-platform 1.5.0", + "openvm-platform 2.0.0-beta.1", ] [[package]] -name = "openvm-sha256-transpiler" -version = "1.5.0" -source = "git+https://github.com/openvm-org/openvm.git#69373ff1d06b613025fe4e7a02d735a1609412c4" +name = "openvm-sha2-transpiler" +version = "2.0.0-beta.1" +source = "git+https://github.com/openvm-org/openvm.git?tag=v2.0.0-beta.1#90648c5fd67fb59fe442e16424ab120fa2633f8b" dependencies = [ "openvm-instructions", "openvm-instructions-derive", - "openvm-sha256-guest", - "openvm-stark-backend 1.3.0", + "openvm-sha2-guest", + "openvm-stark-backend", "openvm-transpiler", "rrs-lib", "strum 0.26.3", @@ -8782,49 +8800,29 @@ dependencies = [ [[package]] name = "openvm-stark-backend" -version = "1.2.1" -source = "git+https://github.com/openvm-org/stark-backend.git?tag=v1.2.1#dde6cdaf105cc57d1609fd49568c7bce0a066cc2" +version = "2.0.0-alpha" +source = "git+https://github.com/openvm-org/stark-backend.git?tag=v2.0.0-beta.1#92940d8f4273a48a416719ba1a1431abd72f7842" dependencies = [ - "bitcode", - "cfg-if", - "derivative", - "derive-new 0.7.0", - "eyre", - "itertools 0.14.0", - "p3-air 0.1.0", - "p3-challenger 0.1.0", - "p3-commit 0.1.0", - "p3-field 0.1.0", - "p3-matrix 0.1.0", - "p3-maybe-rayon 0.1.0", - "p3-uni-stark 0.1.0", - "p3-util 0.1.0", - "rayon", - "rustc-hash 2.1.2", - "serde", - "serde_json", - "thiserror 1.0.69", - "tracing", -] - -[[package]] -name = "openvm-stark-backend" -version = "1.3.0" -source = "git+https://github.com/openvm-org/stark-backend.git?tag=v1.3.0#a3ef723240b92b3b56a8f24ab23434004c148514" -dependencies = [ - "bitcode", "cfg-if", "derivative", "derive-new 0.7.0", "eyre", + "getset", + "hex-literal 1.1.0", "itertools 0.14.0", + "metrics", + "num-bigint 0.4.6", + "openvm-codec-derive", "p3-air 0.4.1", "p3-challenger 0.4.1", - "p3-commit 0.4.1", + "p3-dft 0.4.1", "p3-field 0.4.1", + "p3-interpolation 0.4.1", "p3-matrix 0.4.1", "p3-maybe-rayon 0.4.1", + "p3-symmetric 0.4.1", "p3-util 0.4.1", + "postcard", "rayon", "rustc-hash 2.1.2", "serde", @@ -8836,35 +8834,29 @@ dependencies = [ [[package]] name = "openvm-stark-sdk" -version = "1.2.1" -source = "git+https://github.com/openvm-org/stark-backend.git?tag=v1.2.1#dde6cdaf105cc57d1609fd49568c7bce0a066cc2" +version = "2.0.0-alpha" +source = "git+https://github.com/openvm-org/stark-backend.git?tag=v2.0.0-beta.1#92940d8f4273a48a416719ba1a1431abd72f7842" dependencies = [ "dashmap", - "derivative", - "derive_more 1.0.0", - "ff 0.13.1", + "derive-new 0.7.0", + "eyre", + "hex-literal 1.1.0", "itertools 0.14.0", "metrics", "metrics-tracing-context", "metrics-util", - "openvm-stark-backend 1.2.1", - "p3-baby-bear 0.1.0", - "p3-blake3 0.1.0", - "p3-bn254-fr 0.1.0", - "p3-dft 0.1.0", - "p3-fri 0.1.0", - "p3-goldilocks 0.1.0", - "p3-keccak 0.1.0", - "p3-koala-bear 0.1.0", - "p3-merkle-tree 0.1.0", - "p3-poseidon 0.1.0", - "p3-poseidon2 0.1.0", - "p3-symmetric 0.1.0", - "rand 0.8.5", + "num-bigint 0.4.6", + "nvtx", + "openvm-cpu-backend", + "openvm-stark-backend", + "p3-baby-bear 0.4.1", + "p3-bn254", + "p3-field 0.4.1", + "p3-poseidon2 0.4.1", + "rand 0.9.4", "serde", "serde_json", "static_assertions", - "toml", "tracing", "tracing-forest", "tracing-subscriber 0.3.23", @@ -8872,57 +8864,61 @@ dependencies = [ ] [[package]] -name = "openvm-stark-sdk" -version = "1.3.0" -source = "git+https://github.com/openvm-org/stark-backend.git?tag=v1.3.0#a3ef723240b92b3b56a8f24ab23434004c148514" +name = "openvm-static-verifier" +version = "2.0.0-beta.1" +source = "git+https://github.com/openvm-org/openvm.git?tag=v2.0.0-beta.1#90648c5fd67fb59fe442e16424ab120fa2633f8b" dependencies = [ - "dashmap", - "derivative", - "derive_more 1.0.0", - "ff 0.13.1", + "halo2-base", "itertools 0.14.0", - "metrics", - "metrics-tracing-context", - "metrics-util", "num-bigint 0.4.6", - "openvm-stark-backend 1.3.0", - "p3-baby-bear 0.4.1", - "p3-blake3 0.4.1", - "p3-bn254", - "p3-dft 0.4.1", - "p3-fri 0.4.1", - "p3-goldilocks 0.4.1", - "p3-keccak 0.4.1", - "p3-koala-bear 0.4.1", - "p3-merkle-tree 0.4.1", - "p3-poseidon 0.4.1", - "p3-poseidon2 0.4.1", - "p3-symmetric 0.4.1", - "rand 0.9.4", + "num-integer", + "once_cell", + "openvm-circuit-primitives-derive", + "openvm-continuations", + "openvm-cpu-backend", + "openvm-recursion-circuit", + "openvm-stark-sdk", + "openvm-verify-stark-host", + "rand_chacha 0.3.1", "serde", "serde_json", - "static_assertions", - "toml", + "serde_with", + "snark-verifier-sdk", "tracing", - "tracing-forest", - "tracing-subscriber 0.3.23", "zkhash 0.2.0 (git+https://github.com/HorizenLabs/poseidon2.git?rev=bb476b9)", ] [[package]] name = "openvm-transpiler" -version = "1.5.0" -source = "git+https://github.com/openvm-org/openvm.git#69373ff1d06b613025fe4e7a02d735a1609412c4" +version = "2.0.0-beta.1" +source = "git+https://github.com/openvm-org/openvm.git?tag=v2.0.0-beta.1#90648c5fd67fb59fe442e16424ab120fa2633f8b" dependencies = [ "elf", "eyre", "openvm-instructions", - "openvm-platform 1.5.0", - "openvm-stark-backend 1.3.0", + "openvm-platform 2.0.0-beta.1", + "openvm-stark-backend", "rrs-lib", "thiserror 1.0.69", ] +[[package]] +name = "openvm-verify-stark-host" +version = "2.0.0-beta.1" +source = "git+https://github.com/openvm-org/openvm.git?tag=v2.0.0-beta.1#90648c5fd67fb59fe442e16424ab120fa2633f8b" +dependencies = [ + "bitcode", + "eyre", + "openvm-circuit", + "openvm-recursion-circuit-derive", + "openvm-stark-backend", + "openvm-stark-sdk", + "p3-field 0.4.1", + "serde", + "thiserror 1.0.69", + "zstd", +] + [[package]] name = "option-ext" version = "0.2.0" @@ -8957,12 +8953,21 @@ dependencies = [ ] [[package]] -name = "p3-air" -version = "0.1.0" -source = "git+https://github.com/Plonky3/Plonky3.git?rev=539bbc84085efb609f4f62cb03cf49588388abdb#539bbc84085efb609f4f62cb03cf49588388abdb" +name = "p256" +version = "0.13.2" +source = "git+https://github.com/openvm-org/openvm.git?tag=v2.0.0-beta.1#90648c5fd67fb59fe442e16424ab120fa2633f8b" dependencies = [ - "p3-field 0.1.0", - "p3-matrix 0.1.0", + "ecdsa", + "elliptic-curve", + "ff 0.13.1", + "hex-literal 1.1.0", + "num-bigint 0.4.6", + "openvm 2.0.0-beta.1", + "openvm-algebra-guest 2.0.0-beta.1", + "openvm-algebra-moduli-macros 2.0.0-beta.1", + "openvm-ecc-guest 2.0.0-beta.1", + "openvm-ecc-sw-macros 2.0.0-beta.1", + "serde", ] [[package]] @@ -8985,20 +8990,6 @@ dependencies = [ "p3-matrix 0.4.1", ] -[[package]] -name = "p3-baby-bear" -version = "0.1.0" -source = "git+https://github.com/Plonky3/Plonky3.git?rev=539bbc84085efb609f4f62cb03cf49588388abdb#539bbc84085efb609f4f62cb03cf49588388abdb" -dependencies = [ - "p3-field 0.1.0", - "p3-mds 0.1.0", - "p3-monty-31 0.1.0", - "p3-poseidon2 0.1.0", - "p3-symmetric 0.1.0", - "rand 0.8.5", - "serde", -] - [[package]] name = "p3-baby-bear" version = "0.2.3-succinct" @@ -9023,33 +9014,12 @@ dependencies = [ "p3-challenger 0.4.1", "p3-field 0.4.1", "p3-mds 0.4.1", - "p3-monty-31 0.4.1", + "p3-monty-31", "p3-poseidon2 0.4.1", "p3-symmetric 0.4.1", "rand 0.9.4", ] -[[package]] -name = "p3-blake3" -version = "0.1.0" -source = "git+https://github.com/Plonky3/Plonky3.git?rev=539bbc84085efb609f4f62cb03cf49588388abdb#539bbc84085efb609f4f62cb03cf49588388abdb" -dependencies = [ - "blake3", - "p3-symmetric 0.1.0", - "p3-util 0.1.0", -] - -[[package]] -name = "p3-blake3" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3db49d8917c4d4d4dfeaf8b8a392921800cc05d877e5021509d4cc87c45f59dd" -dependencies = [ - "blake3", - "p3-symmetric 0.4.1", - "p3-util 0.4.1", -] - [[package]] name = "p3-bn254" version = "0.4.1" @@ -9066,21 +9036,6 @@ dependencies = [ "serde", ] -[[package]] -name = "p3-bn254-fr" -version = "0.1.0" -source = "git+https://github.com/Plonky3/Plonky3.git?rev=539bbc84085efb609f4f62cb03cf49588388abdb#539bbc84085efb609f4f62cb03cf49588388abdb" -dependencies = [ - "ff 0.13.1", - "halo2curves", - "num-bigint 0.4.6", - "p3-field 0.1.0", - "p3-poseidon2 0.1.0", - "p3-symmetric 0.1.0", - "rand 0.8.5", - "serde", -] - [[package]] name = "p3-bn254-fr" version = "0.2.3-succinct" @@ -9111,18 +9066,6 @@ dependencies = [ "serde", ] -[[package]] -name = "p3-challenger" -version = "0.1.0" -source = "git+https://github.com/Plonky3/Plonky3.git?rev=539bbc84085efb609f4f62cb03cf49588388abdb#539bbc84085efb609f4f62cb03cf49588388abdb" -dependencies = [ - "p3-field 0.1.0", - "p3-maybe-rayon 0.1.0", - "p3-symmetric 0.1.0", - "p3-util 0.1.0", - "tracing", -] - [[package]] name = "p3-challenger" version = "0.2.3-succinct" @@ -9159,26 +9102,12 @@ checksum = "b8a66da8af6115b9e2df4363cd55efebf2c6d30de0af3e99dac56dd7b77aff24" dependencies = [ "p3-field 0.4.1", "p3-maybe-rayon 0.4.1", - "p3-monty-31 0.4.1", + "p3-monty-31", "p3-symmetric 0.4.1", "p3-util 0.4.1", "tracing", ] -[[package]] -name = "p3-commit" -version = "0.1.0" -source = "git+https://github.com/Plonky3/Plonky3.git?rev=539bbc84085efb609f4f62cb03cf49588388abdb#539bbc84085efb609f4f62cb03cf49588388abdb" -dependencies = [ - "itertools 0.14.0", - "p3-challenger 0.1.0", - "p3-dft 0.1.0", - "p3-field 0.1.0", - "p3-matrix 0.1.0", - "p3-util 0.1.0", - "serde", -] - [[package]] name = "p3-commit" version = "0.2.3-succinct" @@ -9193,34 +9122,6 @@ dependencies = [ "serde", ] -[[package]] -name = "p3-commit" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95104feb4b9895733f92204ec70ba8944dbab39c39b235c0a00adf1456149619" -dependencies = [ - "itertools 0.14.0", - "p3-challenger 0.4.1", - "p3-dft 0.4.1", - "p3-field 0.4.1", - "p3-matrix 0.4.1", - "p3-util 0.4.1", - "serde", -] - -[[package]] -name = "p3-dft" -version = "0.1.0" -source = "git+https://github.com/Plonky3/Plonky3.git?rev=539bbc84085efb609f4f62cb03cf49588388abdb#539bbc84085efb609f4f62cb03cf49588388abdb" -dependencies = [ - "itertools 0.14.0", - "p3-field 0.1.0", - "p3-matrix 0.1.0", - "p3-maybe-rayon 0.1.0", - "p3-util 0.1.0", - "tracing", -] - [[package]] name = "p3-dft" version = "0.2.3-succinct" @@ -9301,132 +9202,45 @@ checksum = "36459d4acb03d08097d713f336c7393990bb489ab19920d4f68658c7a5c10968" dependencies = [ "itertools 0.12.1", "num-bigint 0.4.6", - "num-traits", - "p3-util 0.3.2-succinct", - "rand 0.8.5", - "serde", -] - -[[package]] -name = "p3-field" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56aae7630ff6df83fb7421d5bd97df27620e5f0e29422b7e8f6a294d44cce297" -dependencies = [ - "itertools 0.14.0", - "num-bigint 0.4.6", - "p3-maybe-rayon 0.4.1", - "p3-util 0.4.1", - "paste", - "rand 0.9.4", - "serde", - "tracing", -] - -[[package]] -name = "p3-fri" -version = "0.1.0" -source = "git+https://github.com/Plonky3/Plonky3.git?rev=539bbc84085efb609f4f62cb03cf49588388abdb#539bbc84085efb609f4f62cb03cf49588388abdb" -dependencies = [ - "itertools 0.14.0", - "p3-challenger 0.1.0", - "p3-commit 0.1.0", - "p3-dft 0.1.0", - "p3-field 0.1.0", - "p3-interpolation 0.1.0", - "p3-matrix 0.1.0", - "p3-maybe-rayon 0.1.0", - "p3-util 0.1.0", - "rand 0.8.5", - "serde", - "tracing", -] - -[[package]] -name = "p3-fri" -version = "0.2.3-succinct" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0c274dab2dcd060cdea9ab3f8f7129f5fa5f08917d6092dc2b297a31d883aa0" -dependencies = [ - "itertools 0.12.1", - "p3-challenger 0.2.3-succinct", - "p3-commit 0.2.3-succinct", - "p3-dft 0.2.3-succinct", - "p3-field 0.2.3-succinct", - "p3-interpolation 0.2.3-succinct", - "p3-matrix 0.2.3-succinct", - "p3-maybe-rayon 0.2.3-succinct", - "p3-util 0.2.3-succinct", - "serde", - "tracing", -] - -[[package]] -name = "p3-fri" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0e9a7053c439444f5c4be80ecc08b255a046bc5d23762abe8a4460ae0fca583" -dependencies = [ - "itertools 0.14.0", - "p3-challenger 0.4.1", - "p3-commit 0.4.1", - "p3-dft 0.4.1", - "p3-field 0.4.1", - "p3-interpolation 0.4.1", - "p3-matrix 0.4.1", - "p3-maybe-rayon 0.4.1", - "p3-util 0.4.1", - "rand 0.9.4", - "serde", - "thiserror 2.0.18", - "tracing", -] - -[[package]] -name = "p3-goldilocks" -version = "0.1.0" -source = "git+https://github.com/Plonky3/Plonky3.git?rev=539bbc84085efb609f4f62cb03cf49588388abdb#539bbc84085efb609f4f62cb03cf49588388abdb" -dependencies = [ - "num-bigint 0.4.6", - "p3-dft 0.1.0", - "p3-field 0.1.0", - "p3-mds 0.1.0", - "p3-poseidon 0.1.0", - "p3-poseidon2 0.1.0", - "p3-symmetric 0.1.0", - "p3-util 0.1.0", + "num-traits", + "p3-util 0.3.2-succinct", "rand 0.8.5", "serde", ] [[package]] -name = "p3-goldilocks" +name = "p3-field" version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85324dc45db4196ce0083971393124f5ed03741507f9165d5c923c97890b4838" +checksum = "56aae7630ff6df83fb7421d5bd97df27620e5f0e29422b7e8f6a294d44cce297" dependencies = [ + "itertools 0.14.0", "num-bigint 0.4.6", - "p3-challenger 0.4.1", - "p3-dft 0.4.1", - "p3-field 0.4.1", - "p3-mds 0.4.1", - "p3-poseidon2 0.4.1", - "p3-symmetric 0.4.1", + "p3-maybe-rayon 0.4.1", "p3-util 0.4.1", "paste", "rand 0.9.4", "serde", + "tracing", ] [[package]] -name = "p3-interpolation" -version = "0.1.0" -source = "git+https://github.com/Plonky3/Plonky3.git?rev=539bbc84085efb609f4f62cb03cf49588388abdb#539bbc84085efb609f4f62cb03cf49588388abdb" +name = "p3-fri" +version = "0.2.3-succinct" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0c274dab2dcd060cdea9ab3f8f7129f5fa5f08917d6092dc2b297a31d883aa0" dependencies = [ - "p3-field 0.1.0", - "p3-matrix 0.1.0", - "p3-maybe-rayon 0.1.0", - "p3-util 0.1.0", + "itertools 0.12.1", + "p3-challenger 0.2.3-succinct", + "p3-commit", + "p3-dft 0.2.3-succinct", + "p3-field 0.2.3-succinct", + "p3-interpolation 0.2.3-succinct", + "p3-matrix 0.2.3-succinct", + "p3-maybe-rayon 0.2.3-succinct", + "p3-util 0.2.3-succinct", + "serde", + "tracing", ] [[package]] @@ -9452,30 +9266,6 @@ dependencies = [ "p3-util 0.4.1", ] -[[package]] -name = "p3-keccak" -version = "0.1.0" -source = "git+https://github.com/Plonky3/Plonky3.git?rev=539bbc84085efb609f4f62cb03cf49588388abdb#539bbc84085efb609f4f62cb03cf49588388abdb" -dependencies = [ - "itertools 0.14.0", - "p3-field 0.1.0", - "p3-symmetric 0.1.0", - "p3-util 0.1.0", - "tiny-keccak", -] - -[[package]] -name = "p3-keccak" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac5bb06ef1f2794dbd303b5d6a46a4b0ef34a6f7fb787b7202177438abf5bb66" -dependencies = [ - "p3-field 0.4.1", - "p3-symmetric 0.4.1", - "p3-util 0.4.1", - "tiny-keccak", -] - [[package]] name = "p3-keccak-air" version = "0.2.3-succinct" @@ -9505,20 +9295,6 @@ dependencies = [ "tracing", ] -[[package]] -name = "p3-koala-bear" -version = "0.1.0" -source = "git+https://github.com/Plonky3/Plonky3.git?rev=539bbc84085efb609f4f62cb03cf49588388abdb#539bbc84085efb609f4f62cb03cf49588388abdb" -dependencies = [ - "p3-field 0.1.0", - "p3-mds 0.1.0", - "p3-monty-31 0.1.0", - "p3-poseidon2 0.1.0", - "p3-symmetric 0.1.0", - "rand 0.8.5", - "serde", -] - [[package]] name = "p3-koala-bear" version = "0.3.2-succinct" @@ -9534,35 +9310,6 @@ dependencies = [ "serde", ] -[[package]] -name = "p3-koala-bear" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8afd15711536b88cfbc30497b34b0182a82f2482bcd73b9211f9bacedcc4ccda" -dependencies = [ - "p3-challenger 0.4.1", - "p3-field 0.4.1", - "p3-monty-31 0.4.1", - "p3-poseidon2 0.4.1", - "p3-symmetric 0.4.1", - "rand 0.9.4", -] - -[[package]] -name = "p3-matrix" -version = "0.1.0" -source = "git+https://github.com/Plonky3/Plonky3.git?rev=539bbc84085efb609f4f62cb03cf49588388abdb#539bbc84085efb609f4f62cb03cf49588388abdb" -dependencies = [ - "itertools 0.14.0", - "p3-field 0.1.0", - "p3-maybe-rayon 0.1.0", - "p3-util 0.1.0", - "rand 0.8.5", - "serde", - "tracing", - "transpose", -] - [[package]] name = "p3-matrix" version = "0.2.3-succinct" @@ -9613,9 +9360,6 @@ dependencies = [ name = "p3-maybe-rayon" version = "0.1.0" source = "git+https://github.com/Plonky3/Plonky3.git?rev=539bbc84085efb609f4f62cb03cf49588388abdb#539bbc84085efb609f4f62cb03cf49588388abdb" -dependencies = [ - "rayon", -] [[package]] name = "p3-maybe-rayon" @@ -9641,20 +9385,6 @@ dependencies = [ "rayon", ] -[[package]] -name = "p3-mds" -version = "0.1.0" -source = "git+https://github.com/Plonky3/Plonky3.git?rev=539bbc84085efb609f4f62cb03cf49588388abdb#539bbc84085efb609f4f62cb03cf49588388abdb" -dependencies = [ - "itertools 0.14.0", - "p3-dft 0.1.0", - "p3-field 0.1.0", - "p3-matrix 0.1.0", - "p3-symmetric 0.1.0", - "p3-util 0.1.0", - "rand 0.8.5", -] - [[package]] name = "p3-mds" version = "0.2.3-succinct" @@ -9698,23 +9428,6 @@ dependencies = [ "rand 0.9.4", ] -[[package]] -name = "p3-merkle-tree" -version = "0.1.0" -source = "git+https://github.com/Plonky3/Plonky3.git?rev=539bbc84085efb609f4f62cb03cf49588388abdb#539bbc84085efb609f4f62cb03cf49588388abdb" -dependencies = [ - "itertools 0.14.0", - "p3-commit 0.1.0", - "p3-field 0.1.0", - "p3-matrix 0.1.0", - "p3-maybe-rayon 0.1.0", - "p3-symmetric 0.1.0", - "p3-util 0.1.0", - "rand 0.8.5", - "serde", - "tracing", -] - [[package]] name = "p3-merkle-tree" version = "0.2.3-succinct" @@ -9722,7 +9435,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f159e073afbee02c00d22390bf26ebb9ce03bbcd3e6dcd13c6a7a3811ab39608" dependencies = [ "itertools 0.12.1", - "p3-commit 0.2.3-succinct", + "p3-commit", "p3-field 0.2.3-succinct", "p3-matrix 0.2.3-succinct", "p3-maybe-rayon 0.2.3-succinct", @@ -9732,46 +9445,6 @@ dependencies = [ "tracing", ] -[[package]] -name = "p3-merkle-tree" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "615f09d1c83ca2ad0dd1f8fb4e496445f9c24a224bac81b98849973f444ee86c" -dependencies = [ - "itertools 0.14.0", - "p3-commit 0.4.1", - "p3-field 0.4.1", - "p3-matrix 0.4.1", - "p3-maybe-rayon 0.4.1", - "p3-symmetric 0.4.1", - "p3-util 0.4.1", - "rand 0.9.4", - "serde", - "thiserror 2.0.18", - "tracing", -] - -[[package]] -name = "p3-monty-31" -version = "0.1.0" -source = "git+https://github.com/Plonky3/Plonky3.git?rev=539bbc84085efb609f4f62cb03cf49588388abdb#539bbc84085efb609f4f62cb03cf49588388abdb" -dependencies = [ - "itertools 0.14.0", - "num-bigint 0.4.6", - "p3-dft 0.1.0", - "p3-field 0.1.0", - "p3-matrix 0.1.0", - "p3-maybe-rayon 0.1.0", - "p3-mds 0.1.0", - "p3-poseidon2 0.1.0", - "p3-symmetric 0.1.0", - "p3-util 0.1.0", - "rand 0.8.5", - "serde", - "tracing", - "transpose", -] - [[package]] name = "p3-monty-31" version = "0.4.1" @@ -9796,41 +9469,6 @@ dependencies = [ "transpose", ] -[[package]] -name = "p3-poseidon" -version = "0.1.0" -source = "git+https://github.com/Plonky3/Plonky3.git?rev=539bbc84085efb609f4f62cb03cf49588388abdb#539bbc84085efb609f4f62cb03cf49588388abdb" -dependencies = [ - "p3-field 0.1.0", - "p3-mds 0.1.0", - "p3-symmetric 0.1.0", - "rand 0.8.5", -] - -[[package]] -name = "p3-poseidon" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0dc0930e45272609b239052346e2abe8965adaf22b8237eddb679d659af53f28" -dependencies = [ - "p3-field 0.4.1", - "p3-mds 0.4.1", - "p3-symmetric 0.4.1", - "rand 0.9.4", -] - -[[package]] -name = "p3-poseidon2" -version = "0.1.0" -source = "git+https://github.com/Plonky3/Plonky3.git?rev=539bbc84085efb609f4f62cb03cf49588388abdb#539bbc84085efb609f4f62cb03cf49588388abdb" -dependencies = [ - "gcd", - "p3-field 0.1.0", - "p3-mds 0.1.0", - "p3-symmetric 0.1.0", - "rand 0.8.5", -] - [[package]] name = "p3-poseidon2" version = "0.2.3-succinct" @@ -9887,16 +9525,6 @@ dependencies = [ "tracing", ] -[[package]] -name = "p3-symmetric" -version = "0.1.0" -source = "git+https://github.com/Plonky3/Plonky3.git?rev=539bbc84085efb609f4f62cb03cf49588388abdb#539bbc84085efb609f4f62cb03cf49588388abdb" -dependencies = [ - "itertools 0.14.0", - "p3-field 0.1.0", - "serde", -] - [[package]] name = "p3-symmetric" version = "0.2.3-succinct" @@ -9930,24 +9558,6 @@ dependencies = [ "serde", ] -[[package]] -name = "p3-uni-stark" -version = "0.1.0" -source = "git+https://github.com/Plonky3/Plonky3.git?rev=539bbc84085efb609f4f62cb03cf49588388abdb#539bbc84085efb609f4f62cb03cf49588388abdb" -dependencies = [ - "itertools 0.14.0", - "p3-air 0.1.0", - "p3-challenger 0.1.0", - "p3-commit 0.1.0", - "p3-dft 0.1.0", - "p3-field 0.1.0", - "p3-matrix 0.1.0", - "p3-maybe-rayon 0.1.0", - "p3-util 0.1.0", - "serde", - "tracing", -] - [[package]] name = "p3-uni-stark" version = "0.2.3-succinct" @@ -9957,7 +9567,7 @@ dependencies = [ "itertools 0.12.1", "p3-air 0.2.3-succinct", "p3-challenger 0.2.3-succinct", - "p3-commit 0.2.3-succinct", + "p3-commit", "p3-dft 0.2.3-succinct", "p3-field 0.2.3-succinct", "p3-matrix 0.2.3-succinct", @@ -10607,7 +10217,7 @@ name = "proofman-util" version = "0.16.1" source = "git+https://github.com/0xPolygonHermez/pil2-proofman.git?tag=v0.16.1#971209423e8fa53fa32dc747744d68c65aafa6c7" dependencies = [ - "bincode 1.3.3", + "bincode", "bytemuck", "colored 3.1.1", "serde", @@ -10682,7 +10292,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "22505a5c94da8e3b7c2996394d1c933236c4d743e81a410bcca4e6989fc066a4" dependencies = [ "bytes", - "heck 0.5.0", + "heck 0.4.1", "itertools 0.12.1", "log", "multimap", @@ -10702,8 +10312,8 @@ version = "0.13.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "be769465445e8c1474e9c5dac2018218498557af32d9ed057325ec9a41ae81bf" dependencies = [ - "heck 0.5.0", - "itertools 0.14.0", + "heck 0.4.1", + "itertools 0.12.1", "log", "multimap", "once_cell", @@ -10736,7 +10346,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a56d757972c98b346a9b766e3f02746cde6dd1cd1d1d563472929fdd74bec4d" dependencies = [ "anyhow", - "itertools 0.14.0", + "itertools 0.12.1", "proc-macro2", "quote", "syn 2.0.117", @@ -10749,7 +10359,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "27c6023962132f4b30eb4c172c91ce92d933da334c59c23cddee82358ddafb0b" dependencies = [ "anyhow", - "itertools 0.14.0", + "itertools 0.12.1", "proc-macro2", "quote", "syn 2.0.117", @@ -11677,7 +11287,7 @@ checksum = "3fcce11648a9ff60b8e7af2f0ce7fbf8d25275ab6d414cc91b9da69ee75bc978" dependencies = [ "addr2line 0.24.2", "anyhow", - "bincode 1.3.3", + "bincode", "bonsai-sdk", "borsh", "bytemuck", @@ -11958,7 +11568,7 @@ dependencies = [ "errno", "libc", "linux-raw-sys 0.12.1", - "windows-sys 0.61.2", + "windows-sys 0.52.0", ] [[package]] @@ -12053,7 +11663,7 @@ dependencies = [ "security-framework 3.7.0", "security-framework-sys", "webpki-root-certs", - "windows-sys 0.61.2", + "windows-sys 0.52.0", ] [[package]] @@ -12770,7 +12380,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8986e94b9a43d58fc8ce5bf111b0985479ab888ced923e3052fb19943f7859b4" dependencies = [ "lazy_static", - "p3-koala-bear 0.3.2-succinct", + "p3-koala-bear", "serde", "slop-algebra", "slop-challenger", @@ -12847,7 +12457,7 @@ version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "89cc442a507abb490f3c2f5e2a0be2626b1d9d9ea2137fb240c6ddf5a8377e24" dependencies = [ - "bincode 1.3.3", + "bincode", "ethereum-types 0.14.1", "getset", "halo2-base", @@ -12891,7 +12501,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3a766e1110788c36f4fa1c2b71b387a7815aa65f88ce0229841826633d93723e" dependencies = [ "libc", - "windows-sys 0.61.2", + "windows-sys 0.60.2", ] [[package]] @@ -12914,7 +12524,7 @@ version = "5.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ca2363566d0d4213d0ffd93cfcc1a5e413e2af8682213d3e65b90ac0af5623e3" dependencies = [ - "bincode 1.3.3", + "bincode", "bytemuck", "clap", "elf", @@ -12957,7 +12567,7 @@ version = "5.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1bd3ff75c100e24b89a7b513e082ec3e040c4c9f1cd779b6ba475c5bdc1aa7ad" dependencies = [ - "bincode 1.3.3", + "bincode", "cbindgen", "cc", "cfg-if", @@ -12970,7 +12580,7 @@ dependencies = [ "k256", "num", "num_cpus", - "p256", + "p256 0.13.2 (registry+https://github.com/rust-lang/crates.io-index)", "p3-air 0.2.3-succinct", "p3-baby-bear 0.2.3-succinct", "p3-challenger 0.2.3-succinct", @@ -12980,7 +12590,7 @@ dependencies = [ "p3-maybe-rayon 0.2.3-succinct", "p3-poseidon2 0.2.3-succinct", "p3-symmetric 0.2.3-succinct", - "p3-uni-stark 0.2.3-succinct", + "p3-uni-stark", "p3-util 0.2.3-succinct", "pathdiff", "rand 0.8.5", @@ -13013,7 +12623,7 @@ version = "5.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3d56209b50707201184746b749d3e791f3d33411539f508a563405de1fb8694" dependencies = [ - "bincode 1.3.3", + "bincode", "ctrlc", "prost 0.13.5", "serde", @@ -13037,7 +12647,7 @@ dependencies = [ "itertools 0.13.0", "k256", "num", - "p256", + "p256 0.13.2 (registry+https://github.com/rust-lang/crates.io-index)", "p3-field 0.2.3-succinct", "serde", "snowbridge-amcl", @@ -13062,7 +12672,7 @@ version = "6.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b96392c1b1c197beaa6b0806099a8d73643a09d5ac0874e26c9c5153a7fcb4c" dependencies = [ - "bincode 1.3.3", + "bincode", "serde", "sp1-primitives 6.1.0", ] @@ -13073,7 +12683,7 @@ version = "5.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7e69a03098f827102c54c31a5e57280eb45b2c085de433b3f702e4f9e3ec1641" dependencies = [ - "bincode 1.3.3", + "bincode", "blake3", "cfg-if", "hex", @@ -13093,7 +12703,7 @@ version = "6.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b6b77098dae9d62e080be3af253188c08e7e96e666423306654eede0110bf363" dependencies = [ - "bincode 1.3.3", + "bincode", "blake3", "elf", "hex", @@ -13118,7 +12728,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d5fa3bb2b42cd36c1045472900dcc348a61475774734a5d8cdd4acaf929396ff" dependencies = [ "anyhow", - "bincode 1.3.3", + "bincode", "clap", "dirs 5.0.1", "downloader", @@ -13132,7 +12742,7 @@ dependencies = [ "p3-baby-bear 0.2.3-succinct", "p3-bn254-fr 0.2.3-succinct", "p3-challenger 0.2.3-succinct", - "p3-commit 0.2.3-succinct", + "p3-commit", "p3-field 0.2.3-succinct", "p3-matrix 0.2.3-succinct", "p3-symmetric 0.2.3-succinct", @@ -13169,13 +12779,13 @@ dependencies = [ "p3-baby-bear 0.2.3-succinct", "p3-bn254-fr 0.2.3-succinct", "p3-challenger 0.2.3-succinct", - "p3-commit 0.2.3-succinct", + "p3-commit", "p3-dft 0.2.3-succinct", "p3-field 0.2.3-succinct", - "p3-fri 0.2.3-succinct", + "p3-fri", "p3-matrix 0.2.3-succinct", "p3-symmetric 0.2.3-succinct", - "p3-uni-stark 0.2.3-succinct", + "p3-uni-stark", "p3-util 0.2.3-succinct", "rand 0.8.5", "rayon", @@ -13232,13 +12842,13 @@ dependencies = [ "p3-baby-bear 0.2.3-succinct", "p3-bn254-fr 0.2.3-succinct", "p3-challenger 0.2.3-succinct", - "p3-commit 0.2.3-succinct", + "p3-commit", "p3-dft 0.2.3-succinct", "p3-field 0.2.3-succinct", - "p3-fri 0.2.3-succinct", + "p3-fri", "p3-matrix 0.2.3-succinct", "p3-maybe-rayon 0.2.3-succinct", - "p3-merkle-tree 0.2.3-succinct", + "p3-merkle-tree", "p3-poseidon2 0.2.3-succinct", "p3-symmetric 0.2.3-succinct", "p3-util 0.2.3-succinct", @@ -13273,7 +12883,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cb0f48c722ad9319b3bc02ac2e61f5a82f8b8584fcdab5fe60db0b2292972857" dependencies = [ "anyhow", - "bincode 1.3.3", + "bincode", "bindgen 0.70.1", "cc", "cfg-if", @@ -13302,7 +12912,7 @@ dependencies = [ "anyhow", "async-trait", "backoff", - "bincode 1.3.3", + "bincode", "cfg-if", "dirs 5.0.1", "eventsource-stream", @@ -13314,7 +12924,7 @@ dependencies = [ "k256", "p3-baby-bear 0.2.3-succinct", "p3-field 0.2.3-succinct", - "p3-fri 0.2.3-succinct", + "p3-fri", "prost 0.13.5", "reqwest 0.12.28", "reqwest-middleware", @@ -13351,16 +12961,16 @@ dependencies = [ "p3-air 0.2.3-succinct", "p3-baby-bear 0.2.3-succinct", "p3-challenger 0.2.3-succinct", - "p3-commit 0.2.3-succinct", + "p3-commit", "p3-dft 0.2.3-succinct", "p3-field 0.2.3-succinct", - "p3-fri 0.2.3-succinct", + "p3-fri", "p3-matrix 0.2.3-succinct", "p3-maybe-rayon 0.2.3-succinct", - "p3-merkle-tree 0.2.3-succinct", + "p3-merkle-tree", "p3-poseidon2 0.2.3-succinct", "p3-symmetric 0.2.3-succinct", - "p3-uni-stark 0.2.3-succinct", + "p3-uni-stark", "p3-util 0.2.3-succinct", "rayon-scan", "serde", @@ -13726,7 +13336,7 @@ dependencies = [ "getrandom 0.4.2", "once_cell", "rustix 1.1.4", - "windows-sys 0.61.2", + "windows-sys 0.52.0", ] [[package]] @@ -14641,12 +14251,6 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" -[[package]] -name = "unty" -version = "0.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d49784317cd0d1ee7ec5c716dd598ec5b4483ea832a2dced265471cc0f690ae" - [[package]] name = "url" version = "2.5.8" @@ -14798,12 +14402,6 @@ version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" -[[package]] -name = "virtue" -version = "0.0.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "051eb1abcf10076295e815102942cc58f9d5e3b4560e46e53c21e8ff6f3af7b1" - [[package]] name = "vsimd" version = "0.8.0" @@ -15069,7 +14667,7 @@ version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" dependencies = [ - "windows-sys 0.61.2", + "windows-sys 0.48.0", ] [[package]] @@ -15132,19 +14730,6 @@ dependencies = [ "windows-strings 0.4.2", ] -[[package]] -name = "windows-core" -version = "0.62.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8e83a14d34d0623b51dce9581199302a221863196a1dde71a7663a4c2be9deb" -dependencies = [ - "windows-implement", - "windows-interface", - "windows-link 0.2.1", - "windows-result 0.4.1", - "windows-strings 0.5.1", -] - [[package]] name = "windows-future" version = "0.2.1" @@ -15876,7 +15461,7 @@ name = "ziskos" version = "0.16.1" source = "git+https://github.com/0xPolygonHermez/zisk.git?tag=v0.16.1#48cf7ccefb5ed62261abf6bfb007b5be8a23c547" dependencies = [ - "bincode 1.3.3", + "bincode", "cfg-if", "fields", "getrandom 0.2.17", @@ -15964,3 +15549,31 @@ dependencies = [ "log", "simd-adler32", ] + +[[package]] +name = "zstd" +version = "0.13.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e91ee311a569c327171651566e07972200e76fcfe2242a4fa446149a3881c08a" +dependencies = [ + "zstd-safe", +] + +[[package]] +name = "zstd-safe" +version = "7.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f49c4d5f0abb602a93fb8736af2a4f4dd9512e36f7f570d66e65ff867ed3b9d" +dependencies = [ + "zstd-sys", +] + +[[package]] +name = "zstd-sys" +version = "2.0.16+zstd.1.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91e19ebc2adc8f83e43039e79776e3fda8ca919132d68a1fed6a5faca2683748" +dependencies = [ + "cc", + "pkg-config", +] diff --git a/crates/common/crypto/Cargo.toml b/crates/common/crypto/Cargo.toml index 1233529f1f..a50728bac6 100644 --- a/crates/common/crypto/Cargo.toml +++ b/crates/common/crypto/Cargo.toml @@ -50,7 +50,7 @@ openvm-kzg = ["dep:openvm-kzg"] kzg-rs = ["dep:kzg-rs"] risc0 = ["c-kzg/std", "c-kzg/ethereum_kzg_settings", "c-kzg/portable", "std"] -openvm = ["openvm-kzg"] +openvm = [] [lints] workspace = true diff --git a/crates/guest-program/Cargo.toml b/crates/guest-program/Cargo.toml index 730c67e2ff..0a9f9d4983 100644 --- a/crates/guest-program/Cargo.toml +++ b/crates/guest-program/Cargo.toml @@ -27,8 +27,19 @@ libssz-merkle = { workspace = true, optional = true } # zkVM crypto dependencies (pure Rust, compile for RISC-V targets) k256 = { workspace = true, optional = true } substrate-bn = { version = "0.6.0", optional = true } +num-bigint = { version = "0.4.6", default-features = false, optional = true } +hex-literal = { version = "0.4.1", optional = true } ziskos = { git = "https://github.com/0xPolygonHermez/zisk.git", tag = "v0.16.1", optional = true, default-features = false, features = ["inputcpy"] } +# OpenVM guest-lib accelerators (optional, behind "openvm" feature) +openvm-keccak256 = { git = "https://github.com/openvm-org/openvm.git", tag = "v2.0.0-beta.1", optional = true } +openvm-sha2 = { git = "https://github.com/openvm-org/openvm.git", tag = "v2.0.0-beta.1", optional = true } +openvm-algebra-guest = { git = "https://github.com/openvm-org/openvm.git", tag = "v2.0.0-beta.1", optional = true } +openvm-ecc-guest = { git = "https://github.com/openvm-org/openvm.git", tag = "v2.0.0-beta.1", optional = true } +openvm-pairing-guest = { git = "https://github.com/openvm-org/openvm.git", tag = "v2.0.0-beta.1", optional = true, features = ["bn254", "bls12_381"] } +openvm-pairing = { git = "https://github.com/openvm-org/openvm.git", tag = "v2.0.0-beta.1", optional = true, features = ["bn254", "bls12_381"] } +openvm-p256 = { git = "https://github.com/openvm-org/openvm.git", tag = "v2.0.0-beta.1", optional = true, package = "p256", features = ["ecdsa"] } + [build-dependencies] hex.workspace = true risc0-build = { version = "=3.0.3", optional = true } @@ -49,7 +60,18 @@ zisk = [ "dep:k256", "dep:substrate-bn", "dep:ziskos", "ethrex-common/zisk", "ethrex-vm/zisk", "ethrex-l2-common/zisk", ] -openvm = ["dep:k256", "ethrex-l2-common/secp256k1"] +openvm = [ + "dep:k256", + "dep:num-bigint", + "dep:hex-literal", + "dep:openvm-keccak256", + "dep:openvm-sha2", + "dep:openvm-algebra-guest", + "dep:openvm-ecc-guest", + "dep:openvm-pairing-guest", + "dep:openvm-pairing", + "dep:openvm-p256", +] # Build-ELF features: base + build tooling for compiling guest ELFs. # Used by the prover host. Enabling these triggers the build script which diff --git a/crates/guest-program/bin/openvm/Cargo.lock b/crates/guest-program/bin/openvm/Cargo.lock index 2550acb10f..dc305898fb 100644 --- a/crates/guest-program/bin/openvm/Cargo.lock +++ b/crates/guest-program/bin/openvm/Cargo.lock @@ -31,9 +31,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.100" +version = "1.0.102" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a23eb6b1614318a8071c9b2521f36b424b2c83db5eb3a0fead4a6c0809af6e61" +checksum = "7f202df86484c868dbad7eaa557ef785d5c66295e41b460ef922eca0723b842c" [[package]] name = "ark-bn254" @@ -94,7 +94,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "62945a2f7e6de02a31fe400aa489f0e0f5b2502e69f95f853adb82a96c7a6b60" dependencies = [ "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -107,7 +107,7 @@ dependencies = [ "num-traits", "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -146,7 +146,7 @@ checksum = "213888f660fddcca0d257e88e54ac05bca01885f258ccdf695bafd77031bb69d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -156,7 +156,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "246a225cc6131e9ee4f24619af0f19d67761fff15d7ccc22e42b80846e69449a" dependencies = [ "num-traits", - "rand", + "rand 0.8.5", ] [[package]] @@ -195,22 +195,6 @@ version = "1.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2af50177e190e07a26ab74f8b1efbfe2ef87da2116221318cb1c2e82baf7de06" -[[package]] -name = "bitcoin-io" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dee39a0ee5b4095224a0cfc6bf4cc1baf0f9624b96b367e53b66d974e51d953" - -[[package]] -name = "bitcoin_hashes" -version = "0.14.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26ec84b80c482df901772e931a9a681e26a1b9ee2302edeff23cb30328745c8b" -dependencies = [ - "bitcoin-io", - "hex-conservative", -] - [[package]] name = "bitvec" version = "1.0.1" @@ -243,19 +227,6 @@ dependencies = [ "generic-array", ] -[[package]] -name = "bls12_381" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7bc6d6292be3a19e6379786dac800f551e5865a5bb51ebbe3064ab80433f403" -dependencies = [ - "ff", - "group", - "pairing", - "rand_core", - "subtle", -] - [[package]] name = "bls12_381" version = "0.8.0" @@ -265,15 +236,15 @@ dependencies = [ "ff", "group", "pairing", - "rand_core", + "rand_core 0.6.4", "subtle", ] [[package]] name = "bumpalo" -version = "3.19.1" +version = "3.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5dd9dc738b7a8311c7ade152424974d8115f2cdad61e8dab8dac9f2362298510" +checksum = "5d20789868f4b01b2f2caec9f5c4e0213b41e3e5702a50157d699ae31ced2fcb" [[package]] name = "byte-slice-cast" @@ -301,14 +272,14 @@ checksum = "89385e82b5d1821d2219e0b095efa2cc1f246cbf99080f3be46a1a85c0d392d9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] name = "bytemuck" -version = "1.24.0" +version = "1.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fbdf580320f38b612e485521afda1ee26d10cc9884efaaa750d383e13e3c5f4" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" [[package]] name = "byteorder" @@ -318,18 +289,18 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" -version = "1.11.0" +version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b35204fbdc0b3f4446b89fc1ac2cf84a8a68971995d0bf2e925ec7cd960f9cb3" +checksum = "1e748733b7cbc798e1434b6ac524f0c1ff2ab456fe201501e6497c8417a4fc33" dependencies = [ "serde", ] [[package]] name = "cc" -version = "1.2.54" +version = "1.2.60" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6354c81bbfd62d9cfa9cb3c773c2b7b2a3a482d569de977fd0e961f6e7c00583" +checksum = "43c5703da9466b66a946814e1adf53ea2c90f10063b86290cc9eb67ce3478a20" dependencies = [ "find-msvc-tools", "shlex", @@ -343,9 +314,9 @@ checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" [[package]] name = "chrono" -version = "0.4.43" +version = "0.4.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fac4744fb15ae8337dc853fee7fb3f4e48c0fbaa23d0afe49c447b4fab126118" +checksum = "c673075a2e0e5f4a1dde27ce9dee1ea4558c7ffe648f576438a20ca1d2acc4b0" dependencies = [ "iana-time-zone", "num-traits", @@ -487,7 +458,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76" dependencies = [ "generic-array", - "rand_core", + "rand_core 0.6.4", "subtle", "zeroize", ] @@ -504,9 +475,9 @@ dependencies = [ [[package]] name = "darling" -version = "0.21.3" +version = "0.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cdf337090841a411e2a7f3deb9187445851f91b309c0c0a29e05f74a00a48c0" +checksum = "25ae13da2f202d56bd7f91c25fba009e7717a1e4a1cc98a76d844b65ae912e9d" dependencies = [ "darling_core", "darling_macro", @@ -514,27 +485,26 @@ dependencies = [ [[package]] name = "darling_core" -version = "0.21.3" +version = "0.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1247195ecd7e3c85f83c8d2a366e4210d588e802133e1e355180a9870b517ea4" +checksum = "9865a50f7c335f53564bb694ef660825eb8610e0a53d3e11bf1b0d3df31e03b0" dependencies = [ - "fnv", "ident_case", "proc-macro2", "quote", "strsim", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] name = "darling_macro" -version = "0.21.3" +version = "0.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d38308df82d1080de0afee5d069fa14b0326a88c14f15c5ccda35b4a6c414c81" +checksum = "ac3984ec7bd6cfa798e62b4a642426a5be0e68f9401cfc2a01e3fa9ea2fcdb8d" dependencies = [ "darling_core", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -549,9 +519,9 @@ dependencies = [ [[package]] name = "deranged" -version = "0.5.5" +version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ececcb659e7ba858fb4f10388c250a7252eb0a27373f1a72b8748afdd248e587" +checksum = "7cd812cc2bc1d69d4764bd80df88b4317eaef9e773c75226407d9bc0876b211c" dependencies = [ "powerfmt", "serde_core", @@ -575,7 +545,7 @@ dependencies = [ "convert_case", "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", "unicode-xid", ] @@ -620,7 +590,7 @@ dependencies = [ "enum-ordinalize", "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -642,7 +612,7 @@ dependencies = [ "generic-array", "group", "pkcs8", - "rand_core", + "rand_core 0.6.4", "sec1", "subtle", "zeroize", @@ -665,7 +635,7 @@ checksum = "8ca9601fb2d62598ee17836250842873a413586e5d7ed88b356e38ddbb0ec631" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -714,14 +684,14 @@ dependencies = [ "hex", "hex-literal 0.4.1", "hex-simd", - "indexmap 2.13.0", + "indexmap 2.14.0", "lazy_static", "libc", "libssz", "libssz-derive", "libssz-merkle", "libssz-types", - "lru 0.16.3", + "lru 0.16.4", "once_cell", "rayon", "rkyv", @@ -740,14 +710,13 @@ dependencies = [ "ark-bn254", "ark-ec", "ark-ff", - "bls12_381 0.8.0 (git+https://github.com/lambdaclass/bls12_381?branch=expose-affine-constructors)", + "bls12_381", "ethereum-types", "ff", "hex-literal 0.4.1", "k256 0.13.4 (registry+https://github.com/rust-lang/crates.io-index)", "num-bigint", - "openvm-kzg", - "p256", + "p256 0.13.2 (registry+https://github.com/rust-lang/crates.io-index)", "ripemd", "sha2", "thiserror", @@ -761,11 +730,14 @@ dependencies = [ "ethrex-common", "ethrex-guest-program", "ethrex-vm", - "k256 0.13.4 (git+https://github.com/openvm-org/openvm.git?tag=v1.4.1)", + "k256 0.13.4 (git+https://github.com/openvm-org/openvm.git?tag=v2.0.0-beta.1)", "openvm", "openvm-algebra-guest", "openvm-ecc-guest", "openvm-keccak256", + "openvm-pairing", + "openvm-pairing-guest", + "openvm-sha2", "rkyv", ] @@ -781,9 +753,18 @@ dependencies = [ "ethrex-rlp", "ethrex-vm", "hex", + "hex-literal 0.4.1", "k256 0.13.4 (registry+https://github.com/rust-lang/crates.io-index)", "libssz", "libssz-merkle", + "num-bigint", + "openvm-algebra-guest", + "openvm-ecc-guest", + "openvm-keccak256", + "openvm-pairing", + "openvm-pairing-guest", + "openvm-sha2", + "p256 0.13.2 (git+https://github.com/openvm-org/openvm.git?tag=v2.0.0-beta.1)", "rkyv", "serde", "serde_with", @@ -801,7 +782,6 @@ dependencies = [ "k256 0.13.4 (registry+https://github.com/rust-lang/crates.io-index)", "lambdaworks-crypto", "rkyv", - "secp256k1", "serde", "serde_with", "thiserror", @@ -877,15 +857,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c0b50bfb653653f9ca9095b427bed08ab8d75a137839d9ad64eb11810d5b6393" dependencies = [ "bitvec", - "rand_core", + "rand_core 0.6.4", "subtle", ] [[package]] name = "find-msvc-tools" -version = "0.1.8" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8591b0bcc8a98a64310a2fae1bb3e9b8564dd10e381e6e28010fde8e8e8568db" +checksum = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582" [[package]] name = "fixed-hash" @@ -894,7 +874,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "835c052cb0c08c1acf6ffd71c022172e18723949c8282f2b9f27efbc51e64534" dependencies = [ "byteorder", - "rand", + "rand 0.8.5", "rustc-hex", "static_assertions", ] @@ -966,15 +946,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" dependencies = [ "ff", - "rand_core", + "rand_core 0.6.4", "subtle", ] [[package]] name = "halo2curves-axiom" version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0cd39c0df23c8b72cb7158ccb106341b078d5019b5478b3bfdaf14e898177d3" +source = "git+https://github.com/axiom-crypto/halo2curves.git?tag=v0.7.2#3a65a710e27fe03711f6fb4fc0c4469ae351974a" dependencies = [ "blake2b_simd", "digest", @@ -987,8 +966,8 @@ dependencies = [ "pairing", "pasta_curves", "paste", - "rand", - "rand_core", + "rand 0.8.5", + "rand_core 0.6.4", "rayon", "serde", "serde_arrays", @@ -1026,6 +1005,12 @@ dependencies = [ "foldhash 0.2.0", ] +[[package]] +name = "hashbrown" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4f467dd6dccf739c208452f8014c75c18bb8301b050ad1cfb27153803edb0f51" + [[package]] name = "heck" version = "0.5.0" @@ -1041,15 +1026,6 @@ dependencies = [ "serde", ] -[[package]] -name = "hex-conservative" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fda06d18ac606267c40c04e41b9947729bf8b9efe74bd4e82b61a5f26a510b9f" -dependencies = [ - "arrayvec", -] - [[package]] name = "hex-literal" version = "0.4.1" @@ -1083,9 +1059,9 @@ dependencies = [ [[package]] name = "iana-time-zone" -version = "0.1.64" +version = "0.1.65" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33e57f83510bb73707521ebaffa789ec8caf86f9657cad665b092b581d40e9fb" +checksum = "e31bc9ad994ba00e440a8aa5c9ef0ec67d5cb5e5cb0cc7f8b744a35b389cc470" dependencies = [ "android_system_properties", "core-foundation-sys", @@ -1146,7 +1122,7 @@ checksum = "a0eb5a3343abf848c0984fe4604b2b105da9539376e24fc0a3b0007411ae4fd9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -1162,12 +1138,12 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.13.0" +version = "2.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7714e70437a7dc3ac8eb7e6f8df75fd8eb422675fc7678aff7364301092b1017" +checksum = "d466e9454f08e4a911e14806c24e16fba1b4c121d1ea474396f396069cf949d9" dependencies = [ "equivalent", - "hashbrown 0.16.1", + "hashbrown 0.17.0", "serde", "serde_core", ] @@ -1192,15 +1168,15 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.17" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92ecc6618181def0457392ccd0ee51198e065e016d1d527a7ac1b6dc7c1f09d2" +checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682" [[package]] name = "js-sys" -version = "0.3.85" +version = "0.3.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c942ebf8e95485ca0d52d97da7c5a2c387d0e7f0ba4c35e93bfcaee045955b3" +checksum = "2964e92d1d9dc3364cae4d718d93f227e3abb088e747d92e0395bfdedf1c12ca" dependencies = [ "once_cell", "wasm-bindgen", @@ -1223,12 +1199,12 @@ dependencies = [ [[package]] name = "k256" version = "0.13.4" -source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.1#05cb6a11bbd7ac3ac8a00c3fc56391b06f54baa2" +source = "git+https://github.com/openvm-org/openvm.git?tag=v2.0.0-beta.1#90648c5fd67fb59fe442e16424ab120fa2633f8b" dependencies = [ "ecdsa", "elliptic-curve", "ff", - "hex-literal 0.4.1", + "hex-literal 1.1.0", "num-bigint", "openvm", "openvm-algebra-guest", @@ -1240,9 +1216,9 @@ dependencies = [ [[package]] name = "keccak" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ecc2af9a1119c51f12a14607e783cb977bde58bc069ff0c3da1095e635d70654" +checksum = "cb26cec98cce3a3d96cbb7bced3c4b16e3d13f27ec56dbd62cbc8f39cfb9d653" dependencies = [ "cpufeatures", ] @@ -1254,7 +1230,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "58b1a1c1102a5a7fbbda117b79fb3a01e033459c738a3c1642269603484fd1c1" dependencies = [ "lambdaworks-math", - "rand", + "rand 0.8.5", "rand_chacha", "serde", "sha2", @@ -1270,7 +1246,7 @@ dependencies = [ "getrandom 0.2.17", "num-bigint", "num-traits", - "rand", + "rand 0.8.5", "serde", "serde_json", ] @@ -1286,9 +1262,9 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.180" +version = "0.2.185" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bcc35a38544a891a5f7c865aca548a982ccb3b8650a5b06d0fd33a10283c56fc" +checksum = "52ff2c0fe9bc6cb6b14a0592c2ff4fa9ceb83eea9db979b0487cd054946a2b8f" [[package]] name = "libm" @@ -1311,7 +1287,7 @@ source = "git+https://github.com/lambdaclass/libssz?rev=7262a4f#7262a4f17f71fb91 dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -1350,9 +1326,9 @@ dependencies = [ [[package]] name = "lru" -version = "0.16.3" +version = "0.16.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1dc47f592c06f33f8e3aea9591776ec7c9f9e4124778ff8a3c3b87159f7e593" +checksum = "7f66e8d5d03f609abc3a39e6f08e4164ebf1447a732906d39eb9b99b7919ef39" dependencies = [ "hashbrown 0.16.1", ] @@ -1405,9 +1381,9 @@ dependencies = [ [[package]] name = "memchr" -version = "2.7.6" +version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f52b00d39961fc5b2736ea853c9cc86238e165017a493d1d5c8eac6bdc4cc273" +checksum = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79" [[package]] name = "munge" @@ -1426,7 +1402,7 @@ checksum = "4568f25ccbd45ab5d5603dc34318c1ec56b117531781260002151b8530a9f931" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -1437,14 +1413,14 @@ checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" dependencies = [ "num-integer", "num-traits", - "rand", + "rand 0.8.5", ] [[package]] name = "num-conv" -version = "0.2.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf97ec579c3c42f953ef76dbf8d55ac91fb219dde70e49aa4a6b7d74e9919050" +checksum = "c6673768db2d862beb9b39a78fdcb1a69439615d5794a1be50caa9bc92c81967" [[package]] name = "num-integer" @@ -1479,7 +1455,7 @@ dependencies = [ "num-integer", "num-modular", "num-traits", - "rand", + "rand 0.8.5", ] [[package]] @@ -1491,28 +1467,16 @@ dependencies = [ "autocfg", ] -[[package]] -name = "nums" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf3c74f925fb8cfc49a8022f2afce48a0683b70f9e439885594e84c5edbf5b01" -dependencies = [ - "num-bigint", - "num-integer", - "num-traits", - "rand", -] - [[package]] name = "once_cell" -version = "1.21.3" +version = "1.21.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" +checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50" [[package]] name = "openvm" -version = "1.4.1" -source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.1#05cb6a11bbd7ac3ac8a00c3fc56391b06f54baa2" +version = "2.0.0-beta.1" +source = "git+https://github.com/openvm-org/openvm.git?tag=v2.0.0-beta.1#90648c5fd67fb59fe442e16424ab120fa2633f8b" dependencies = [ "bytemuck", "getrandom 0.2.17", @@ -1526,18 +1490,18 @@ dependencies = [ [[package]] name = "openvm-algebra-complex-macros" -version = "1.4.1" -source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.1#05cb6a11bbd7ac3ac8a00c3fc56391b06f54baa2" +version = "2.0.0-beta.1" +source = "git+https://github.com/openvm-org/openvm.git?tag=v2.0.0-beta.1#90648c5fd67fb59fe442e16424ab120fa2633f8b" dependencies = [ "openvm-macros-common", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] name = "openvm-algebra-guest" -version = "1.4.1" -source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.1#05cb6a11bbd7ac3ac8a00c3fc56391b06f54baa2" +version = "2.0.0-beta.1" +source = "git+https://github.com/openvm-org/openvm.git?tag=v2.0.0-beta.1#90648c5fd67fb59fe442e16424ab120fa2633f8b" dependencies = [ "halo2curves-axiom", "num-bigint", @@ -1552,30 +1516,30 @@ dependencies = [ [[package]] name = "openvm-algebra-moduli-macros" -version = "1.4.1" -source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.1#05cb6a11bbd7ac3ac8a00c3fc56391b06f54baa2" +version = "2.0.0-beta.1" +source = "git+https://github.com/openvm-org/openvm.git?tag=v2.0.0-beta.1#90648c5fd67fb59fe442e16424ab120fa2633f8b" dependencies = [ "num-bigint", "num-prime", "openvm-macros-common", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] name = "openvm-custom-insn" version = "0.1.0" -source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.1#05cb6a11bbd7ac3ac8a00c3fc56391b06f54baa2" +source = "git+https://github.com/openvm-org/openvm.git?tag=v2.0.0-beta.1#90648c5fd67fb59fe442e16424ab120fa2633f8b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] name = "openvm-ecc-guest" -version = "1.4.1" -source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.1#05cb6a11bbd7ac3ac8a00c3fc56391b06f54baa2" +version = "2.0.0-beta.1" +source = "git+https://github.com/openvm-org/openvm.git?tag=v2.0.0-beta.1#90648c5fd67fb59fe442e16424ab120fa2633f8b" dependencies = [ "ecdsa", "elliptic-curve", @@ -1593,62 +1557,47 @@ dependencies = [ [[package]] name = "openvm-ecc-sw-macros" -version = "1.4.1" -source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.1#05cb6a11bbd7ac3ac8a00c3fc56391b06f54baa2" +version = "2.0.0-beta.1" +source = "git+https://github.com/openvm-org/openvm.git?tag=v2.0.0-beta.1#90648c5fd67fb59fe442e16424ab120fa2633f8b" dependencies = [ "openvm-macros-common", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] name = "openvm-keccak256" -version = "1.4.1" -source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.1#05cb6a11bbd7ac3ac8a00c3fc56391b06f54baa2" +version = "2.0.0-beta.1" +source = "git+https://github.com/openvm-org/openvm.git?tag=v2.0.0-beta.1#90648c5fd67fb59fe442e16424ab120fa2633f8b" dependencies = [ "openvm-keccak256-guest", + "spin 0.10.0", "tiny-keccak", ] [[package]] name = "openvm-keccak256-guest" -version = "1.4.1" -source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.1#05cb6a11bbd7ac3ac8a00c3fc56391b06f54baa2" +version = "2.0.0-beta.1" +source = "git+https://github.com/openvm-org/openvm.git?tag=v2.0.0-beta.1#90648c5fd67fb59fe442e16424ab120fa2633f8b" dependencies = [ "openvm-platform", ] -[[package]] -name = "openvm-kzg" -version = "0.2.0-alpha" -source = "git+https://github.com/axiom-crypto/openvm-kzg.git?rev=530a6ed413def5296b7e4967650ba4fc8fd92ea1#530a6ed413def5296b7e4967650ba4fc8fd92ea1" -dependencies = [ - "bls12_381 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", - "hex", - "hex-literal 1.1.0", - "openvm-algebra-guest", - "openvm-ecc-guest", - "openvm-pairing", - "serde", - "serde-big-array", - "spin 0.10.0", -] - [[package]] name = "openvm-macros-common" -version = "1.4.1" -source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.1#05cb6a11bbd7ac3ac8a00c3fc56391b06f54baa2" +version = "2.0.0-beta.1" +source = "git+https://github.com/openvm-org/openvm.git?tag=v2.0.0-beta.1#90648c5fd67fb59fe442e16424ab120fa2633f8b" dependencies = [ - "syn 2.0.114", + "syn 2.0.117", ] [[package]] name = "openvm-pairing" -version = "1.4.1" -source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.1#05cb6a11bbd7ac3ac8a00c3fc56391b06f54baa2" +version = "2.0.0-beta.1" +source = "git+https://github.com/openvm-org/openvm.git?tag=v2.0.0-beta.1#90648c5fd67fb59fe442e16424ab120fa2633f8b" dependencies = [ "group", - "hex-literal 0.4.1", + "hex-literal 1.1.0", "itertools 0.14.0", "num-bigint", "num-traits", @@ -1662,16 +1611,15 @@ dependencies = [ "openvm-pairing-guest", "openvm-platform", "openvm-rv32im-guest", - "rand", "serde", ] [[package]] name = "openvm-pairing-guest" -version = "1.4.1" -source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.1#05cb6a11bbd7ac3ac8a00c3fc56391b06f54baa2" +version = "2.0.0-beta.1" +source = "git+https://github.com/openvm-org/openvm.git?tag=v2.0.0-beta.1#90648c5fd67fb59fe442e16424ab120fa2633f8b" dependencies = [ - "hex-literal 0.4.1", + "hex-literal 1.1.0", "itertools 0.14.0", "lazy_static", "num-bigint", @@ -1681,15 +1629,14 @@ dependencies = [ "openvm-algebra-moduli-macros", "openvm-custom-insn", "openvm-ecc-guest", - "rand", "serde", "strum_macros 0.26.4", ] [[package]] name = "openvm-platform" -version = "1.4.1" -source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.1#05cb6a11bbd7ac3ac8a00c3fc56391b06f54baa2" +version = "2.0.0-beta.1" +source = "git+https://github.com/openvm-org/openvm.git?tag=v2.0.0-beta.1#90648c5fd67fb59fe442e16424ab120fa2633f8b" dependencies = [ "libm", "openvm-custom-insn", @@ -1698,14 +1645,32 @@ dependencies = [ [[package]] name = "openvm-rv32im-guest" -version = "1.4.1" -source = "git+https://github.com/openvm-org/openvm.git?tag=v1.4.1#05cb6a11bbd7ac3ac8a00c3fc56391b06f54baa2" +version = "2.0.0-beta.1" +source = "git+https://github.com/openvm-org/openvm.git?tag=v2.0.0-beta.1#90648c5fd67fb59fe442e16424ab120fa2633f8b" dependencies = [ "openvm-custom-insn", "p3-field", "strum_macros 0.26.4", ] +[[package]] +name = "openvm-sha2" +version = "2.0.0-beta.1" +source = "git+https://github.com/openvm-org/openvm.git?tag=v2.0.0-beta.1#90648c5fd67fb59fe442e16424ab120fa2633f8b" +dependencies = [ + "openvm", + "openvm-sha2-guest", + "sha2", +] + +[[package]] +name = "openvm-sha2-guest" +version = "2.0.0-beta.1" +source = "git+https://github.com/openvm-org/openvm.git?tag=v2.0.0-beta.1#90648c5fd67fb59fe442e16424ab120fa2633f8b" +dependencies = [ + "openvm-platform", +] + [[package]] name = "outref" version = "0.5.2" @@ -1724,32 +1689,51 @@ dependencies = [ "sha2", ] +[[package]] +name = "p256" +version = "0.13.2" +source = "git+https://github.com/openvm-org/openvm.git?tag=v2.0.0-beta.1#90648c5fd67fb59fe442e16424ab120fa2633f8b" +dependencies = [ + "ecdsa", + "elliptic-curve", + "ff", + "hex-literal 1.1.0", + "num-bigint", + "openvm", + "openvm-algebra-guest", + "openvm-algebra-moduli-macros", + "openvm-ecc-guest", + "openvm-ecc-sw-macros", + "serde", +] + [[package]] name = "p3-field" -version = "0.1.0" -source = "git+https://github.com/Plonky3/Plonky3.git?rev=539bbc84085efb609f4f62cb03cf49588388abdb#539bbc84085efb609f4f62cb03cf49588388abdb" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56aae7630ff6df83fb7421d5bd97df27620e5f0e29422b7e8f6a294d44cce297" dependencies = [ "itertools 0.14.0", "num-bigint", - "num-integer", - "num-traits", - "nums", "p3-maybe-rayon", "p3-util", - "rand", + "paste", + "rand 0.9.4", "serde", "tracing", ] [[package]] name = "p3-maybe-rayon" -version = "0.1.0" -source = "git+https://github.com/Plonky3/Plonky3.git?rev=539bbc84085efb609f4f62cb03cf49588388abdb#539bbc84085efb609f4f62cb03cf49588388abdb" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e5669ca75645f99cd001e9d0289a4eeff2bc2cd9dc3c6c3aaf22643966e83df" [[package]] name = "p3-util" -version = "0.1.0" -source = "git+https://github.com/Plonky3/Plonky3.git?rev=539bbc84085efb609f4f62cb03cf49588388abdb#539bbc84085efb609f4f62cb03cf49588388abdb" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "663b16021930bc600ecada915c6c3965730a3b9d6a6c23434ccf70bfc29d6881" dependencies = [ "serde", ] @@ -1788,7 +1772,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -1801,7 +1785,7 @@ dependencies = [ "ff", "group", "lazy_static", - "rand", + "rand 0.8.5", "static_assertions", "subtle", ] @@ -1814,9 +1798,9 @@ checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" [[package]] name = "pin-project-lite" -version = "0.2.16" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" +checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd" [[package]] name = "pkcs8" @@ -1867,9 +1851,9 @@ dependencies = [ [[package]] name = "proc-macro-crate" -version = "3.4.0" +version = "3.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "219cb19e96be00ab2e37d6e299658a0cfa83e52429179969b0f0121b4ac46983" +checksum = "e67ba7e9b2b56446f1d419b1d807906278ffa1a658a8a5d8a39dcb1f5a78614f" dependencies = [ "toml_edit", ] @@ -1900,14 +1884,14 @@ checksum = "7347867d0a7e1208d93b46767be83e2b8f978c3dad35f775ac8d8847551d6fe1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] name = "quote" -version = "1.0.44" +version = "1.0.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21b2ebcf727b7760c461f091f9f0f539b77b8e87f2fd88131e7f1b433b3cece4" +checksum = "41f2619966050689382d2b44f664f4bc593e129785a36d6ee376ddf37259b924" dependencies = [ "proc-macro2", ] @@ -1941,7 +1925,16 @@ checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" dependencies = [ "libc", "rand_chacha", - "rand_core", + "rand_core 0.6.4", +] + +[[package]] +name = "rand" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44c5af06bb1b7d3216d91932aed5265164bf384dc89cd6ba05cf59a35f5f76ea" +dependencies = [ + "rand_core 0.9.5", ] [[package]] @@ -1951,7 +1944,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" dependencies = [ "ppv-lite86", - "rand_core", + "rand_core 0.6.4", ] [[package]] @@ -1963,11 +1956,17 @@ dependencies = [ "getrandom 0.2.17", ] +[[package]] +name = "rand_core" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76afc826de14238e6e8c374ddcc1fa19e374fd8dd986b0d2af0d02377261d83c" + [[package]] name = "rayon" -version = "1.11.0" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "368f01d005bf8fd9b1206fb6fa653e6c4a81ceb1466406b81792d87c5677a58f" +checksum = "fb39b166781f92d482534ef4b4b1b2568f42613b53e5b6c160e24cfbfa30926d" dependencies = [ "either", "rayon-core", @@ -2000,7 +1999,7 @@ checksum = "b7186006dcb21920990093f30e3dea63b7d6e977bf1256be20c3563a5db070da" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -2033,14 +2032,14 @@ dependencies = [ [[package]] name = "rkyv" -version = "0.8.14" +version = "0.8.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "360b333c61ae24e5af3ae7c8660bd6b21ccd8200dbbc5d33c2454421e85b9c69" +checksum = "1a30e631b7f4a03dee9056b8ef6982e8ba371dd5bedb74d3ec86df4499132c70" dependencies = [ "bytecheck", "bytes", "hashbrown 0.16.1", - "indexmap 2.13.0", + "indexmap 2.14.0", "munge", "ptr_meta", "rancor", @@ -2052,13 +2051,13 @@ dependencies = [ [[package]] name = "rkyv_derive" -version = "0.8.14" +version = "0.8.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c02f8cdd12b307ab69fe0acf4cd2249c7460eb89dce64a0febadf934ebb6a9e" +checksum = "8100bb34c0a1d0f907143db3149e6b4eea3c33b9ee8b189720168e818303986f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -2073,9 +2072,9 @@ dependencies = [ [[package]] name = "rustc-hash" -version = "2.1.1" +version = "2.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d" +checksum = "94300abf3f1ae2e2b8ffb7b58043de3d399c73fa6f4b73826402a5c457614dbe" [[package]] name = "rustc-hex" @@ -2091,9 +2090,9 @@ checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" [[package]] name = "ryu" -version = "1.0.22" +version = "1.0.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a50f4cf475b65d88e057964e0e9bb1f0aa9bbb2036dc65c64596b42932536984" +checksum = "9774ba4a74de5f7b1c1451ed6cd5285a32eddb5cccb8cc655a4e50009e06477f" [[package]] name = "safe_arch" @@ -2118,9 +2117,9 @@ dependencies = [ [[package]] name = "schemars" -version = "1.2.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54e910108742c57a770f492731f99be216a52fadd361b06c8fb59d74ccc267d2" +checksum = "a2b42f36aa1cd011945615b92222f6bf73c599a102a300334cd7f8dbeec726cc" dependencies = [ "dyn-clone", "ref-cast", @@ -2142,26 +2141,6 @@ dependencies = [ "zeroize", ] -[[package]] -name = "secp256k1" -version = "0.30.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b50c5943d326858130af85e049f2661ba3c78b26589b8ab98e65e80ae44a1252" -dependencies = [ - "bitcoin_hashes", - "rand", - "secp256k1-sys", -] - -[[package]] -name = "secp256k1-sys" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4387882333d3aa8cb20530a17c69a3752e97837832f34f6dccc760e715001d9" -dependencies = [ - "cc", -] - [[package]] name = "serde" version = "1.0.228" @@ -2207,7 +2186,7 @@ checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -2225,17 +2204,17 @@ dependencies = [ [[package]] name = "serde_with" -version = "3.16.1" +version = "3.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fa237f2807440d238e0364a218270b98f767a00d3dada77b1c53ae88940e2e7" +checksum = "dd5414fad8e6907dbdd5bc441a50ae8d6e26151a03b1de04d89a5576de61d01f" dependencies = [ "base64", "chrono", "hex", "indexmap 1.9.3", - "indexmap 2.13.0", + "indexmap 2.14.0", "schemars 0.9.0", - "schemars 1.2.0", + "schemars 1.2.1", "serde_core", "serde_json", "serde_with_macros", @@ -2244,14 +2223,14 @@ dependencies = [ [[package]] name = "serde_with_macros" -version = "3.16.1" +version = "3.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52a8e3ca0ca629121f70ab50f95249e5a6f925cc0f6ffe8256c45b728875706c" +checksum = "d3db8978e608f1fe7357e211969fd9abdcae80bac1ba7a3369bb7eb6b404eb65" dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -2288,7 +2267,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" dependencies = [ "digest", - "rand_core", + "rand_core 0.6.4", ] [[package]] @@ -2356,7 +2335,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -2368,7 +2347,7 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -2390,9 +2369,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.114" +version = "2.0.117" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4d107df263a3013ef9b1879b0df87d706ff80f65a86ea879bd9c31f9b307c2a" +checksum = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99" dependencies = [ "proc-macro2", "quote", @@ -2422,14 +2401,14 @@ checksum = "ebc4ee7f67670e9b64d05fa4253e753e016c6c95ff35b89b7941d6b856dec1d5" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] name = "time" -version = "0.3.46" +version = "0.3.47" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9da98b7d9b7dad93488a84b8248efc35352b0b2657397d4167e7ad67e5d535e5" +checksum = "743bd48c283afc0388f9b8827b976905fb217ad9e647fae3a379a9283c4def2c" dependencies = [ "deranged", "itoa", @@ -2448,9 +2427,9 @@ checksum = "7694e1cfe791f8d31026952abf09c69ca6f6fa4e1a1229e18988f06a04a12dca" [[package]] name = "time-macros" -version = "0.2.26" +version = "0.2.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78cc610bac2dcee56805c99642447d4c5dbde4d01f752ffea0199aee1f601dc4" +checksum = "2e70e4c5a0e0a8a4823ad65dfe1a6930e4f4d756dcd9dd7939022b5e8c501215" dependencies = [ "num-conv", "time-core", @@ -2467,9 +2446,9 @@ dependencies = [ [[package]] name = "tinyvec" -version = "1.10.0" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa5fdc3bce6191a1dbc8c02d5c8bffcf557bafa17c124c5264a458f1b0613fa" +checksum = "3e61e67053d25a4e82c844e8424039d9745781b3fc4f32b8d55ed50f5f667ef3" dependencies = [ "tinyvec_macros", ] @@ -2482,20 +2461,20 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "toml_datetime" -version = "0.7.5+spec-1.1.0" +version = "1.1.1+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92e1cfed4a3038bc5a127e35a2d360f145e1f4b971b551a2ba5fd7aedf7e1347" +checksum = "3165f65f62e28e0115a00b2ebdd37eb6f3b641855f9d636d3cd4103767159ad7" dependencies = [ "serde_core", ] [[package]] name = "toml_edit" -version = "0.23.10+spec-1.0.0" +version = "0.25.11+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84c8b9f757e028cee9fa244aea147aab2a9ec09d5325a9b01e0a49730c2b5269" +checksum = "0b59c4d22ed448339746c59b905d24568fcbb3ab65a500494f7b8c3e97739f2b" dependencies = [ - "indexmap 2.13.0", + "indexmap 2.14.0", "toml_datetime", "toml_parser", "winnow", @@ -2503,9 +2482,9 @@ dependencies = [ [[package]] name = "toml_parser" -version = "1.0.6+spec-1.1.0" +version = "1.1.2+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3198b4b0a8e11f09dd03e133c0280504d0801269e9afa46362ffde1cbeebf44" +checksum = "a2abe9b86193656635d2411dc43050282ca48aa31c2451210f4202550afb7526" dependencies = [ "winnow", ] @@ -2530,7 +2509,7 @@ checksum = "7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -2562,15 +2541,15 @@ dependencies = [ [[package]] name = "unicode-ident" -version = "1.0.22" +version = "1.0.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9312f7c4f6ff9069b165498234ce8be658059c6728633667c526e27dc2cf1df5" +checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75" [[package]] name = "unicode-segmentation" -version = "1.12.0" +version = "1.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" +checksum = "9629274872b2bfaf8d66f5f15725007f635594914870f65218920345aa11aa8c" [[package]] name = "unicode-xid" @@ -2590,9 +2569,9 @@ dependencies = [ [[package]] name = "uuid" -version = "1.20.0" +version = "1.23.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee48d38b119b0cd71fe4141b30f5ba9c7c5d9f4e7a3a8b4a674e4b6ef789976f" +checksum = "ddd74a9687298c6858e9b88ec8935ec45d22e8fd5e6394fa1bd4e99a87789c76" dependencies = [ "js-sys", "wasm-bindgen", @@ -2627,9 +2606,9 @@ dependencies = [ [[package]] name = "wasm-bindgen" -version = "0.2.108" +version = "0.2.118" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64024a30ec1e37399cf85a7ffefebdb72205ca1c972291c51512360d90bd8566" +checksum = "0bf938a0bacb0469e83c1e148908bd7d5a6010354cf4fb73279b7447422e3a89" dependencies = [ "cfg-if", "once_cell", @@ -2640,9 +2619,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.108" +version = "0.2.118" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "008b239d9c740232e71bd39e8ef6429d27097518b6b30bdf9086833bd5b6d608" +checksum = "eeff24f84126c0ec2db7a449f0c2ec963c6a49efe0698c4242929da037ca28ed" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -2650,22 +2629,22 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.108" +version = "0.2.118" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5256bae2d58f54820e6490f9839c49780dff84c65aeab9e772f15d5f0e913a55" +checksum = "9d08065faf983b2b80a79fd87d8254c409281cf7de75fc4b773019824196c904" dependencies = [ "bumpalo", "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.108" +version = "0.2.118" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f01b580c9ac74c8d8f0c0e4afb04eeef2acf145458e52c03845ee9cd23e3d12" +checksum = "5fd04d9e306f1907bd13c6361b5c6bfc7b3b3c095ed3f8a9246390f8dbdee129" dependencies = [ "unicode-ident", ] @@ -2701,7 +2680,7 @@ checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -2712,7 +2691,7 @@ checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -2741,9 +2720,9 @@ dependencies = [ [[package]] name = "winnow" -version = "0.7.14" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a5364e9d77fcdeeaa6062ced926ee3381faa2ee02d3eb83a5c27a8825540829" +checksum = "09dac053f1cd375980747450bfc7250c264eaae0583872e845c0c7cd578872b5" dependencies = [ "memchr", ] @@ -2765,22 +2744,22 @@ dependencies = [ [[package]] name = "zerocopy" -version = "0.8.34" +version = "0.8.48" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71ddd76bcebeed25db614f82bf31a9f4222d3fbba300e6fb6c00afa26cbd4d9d" +checksum = "eed437bf9d6692032087e337407a86f04cd8d6a16a37199ed57949d415bd68e9" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.8.34" +version = "0.8.48" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8187381b52e32220d50b255276aa16a084ec0a9017a0ca2152a1f55c539758d" +checksum = "70e3cd084b1788766f53af483dd21f93881ff30d7320490ec3ef7526d203bad4" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -2800,11 +2779,11 @@ checksum = "85a5b4158499876c763cb03bc4e49185d3cccbabb15b33c627f7884f43db852e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] name = "zmij" -version = "1.0.17" +version = "1.0.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02aae0f83f69aafc94776e879363e9771d7ecbffe2c7fbb6c14c5e00dfe88439" +checksum = "b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa" diff --git a/crates/guest-program/bin/openvm/Cargo.toml b/crates/guest-program/bin/openvm/Cargo.toml index e6474ff52a..dede2436cc 100644 --- a/crates/guest-program/bin/openvm/Cargo.toml +++ b/crates/guest-program/bin/openvm/Cargo.toml @@ -9,11 +9,14 @@ license = "MIT OR Apache-2.0" [dependencies] openvm = { git = "https://github.com/openvm-org/openvm.git", features = [ "std", -], tag = "v1.4.1" } -openvm-keccak256 = { git = "https://github.com/openvm-org/openvm.git", tag = "v1.4.1" } -openvm-k256 = { git = "https://github.com/openvm-org/openvm.git", tag = "v1.4.1", package = "k256" } -openvm-ecc-guest = { git = "https://github.com/openvm-org/openvm.git", tag = "v1.4.1" } -openvm-algebra-guest = { git = "https://github.com/openvm-org/openvm.git", tag = "v1.4.1" } +], tag = "v2.0.0-beta.1" } +openvm-keccak256 = { git = "https://github.com/openvm-org/openvm.git", tag = "v2.0.0-beta.1" } +openvm-k256 = { git = "https://github.com/openvm-org/openvm.git", tag = "v2.0.0-beta.1", package = "k256" } +openvm-ecc-guest = { git = "https://github.com/openvm-org/openvm.git", tag = "v2.0.0-beta.1" } +openvm-algebra-guest = { git = "https://github.com/openvm-org/openvm.git", tag = "v2.0.0-beta.1" } +openvm-pairing-guest = { git = "https://github.com/openvm-org/openvm.git", tag = "v2.0.0-beta.1", features = ["bn254", "bls12_381"] } +openvm-pairing = { git = "https://github.com/openvm-org/openvm.git", tag = "v2.0.0-beta.1", features = ["bn254", "bls12_381"] } +openvm-sha2 = { git = "https://github.com/openvm-org/openvm.git", tag = "v2.0.0-beta.1" } rkyv = "0.8.10" ethrex-vm = { path = "../../../vm", default-features = false, features = [ diff --git a/crates/guest-program/bin/openvm/openvm.toml b/crates/guest-program/bin/openvm/openvm.toml index 090d66c943..f1f9267191 100644 --- a/crates/guest-program/bin/openvm/openvm.toml +++ b/crates/guest-program/bin/openvm/openvm.toml @@ -1,12 +1,10 @@ [app_vm_config.rv32i] [app_vm_config.rv32m] -range_tuple_checker_sizes = [256, 8192] [app_vm_config.io] [app_vm_config.keccak] [app_vm_config.sha256] [app_vm_config.bigint] -range_tuple_checker_sizes = [256, 8192] [app_vm_config.modular] supported_moduli = [ diff --git a/crates/guest-program/src/crypto/openvm.rs b/crates/guest-program/src/crypto/openvm.rs index b7a4662d85..953817fd90 100644 --- a/crates/guest-program/src/crypto/openvm.rs +++ b/crates/guest-program/src/crypto/openvm.rs @@ -5,15 +5,15 @@ use super::shared::{k256_ecrecover, k256_recover_signer}; /// OpenVM crypto provider. /// -/// Uses k256 for ECDSA (secp256k1). -/// All other operations use the trait defaults (native libraries). -/// -/// When building actual OpenVM guest binaries, OpenVM's patched crate version -/// of k256 is used transparently via Cargo patches. +/// Uses OpenVM guest-lib accelerators for keccak256, sha256, BN254, BLS12-381, +/// and P-256 operations. Falls back to k256 (patched by OpenVM) for secp256k1 +/// ECDSA. Operations without an OpenVM extension (blake2, hash-to-curve, +/// etc.) use the trait defaults. #[derive(Debug)] pub struct OpenVmCrypto; impl Crypto for OpenVmCrypto { + fn secp256k1_ecrecover( &self, sig: &[u8; 64], @@ -26,4 +26,645 @@ impl Crypto for OpenVmCrypto { fn recover_signer(&self, sig: &[u8; 65], msg: &[u8; 32]) -> Result { k256_recover_signer(sig, msg) } + + + fn keccak256(&self, input: &[u8]) -> [u8; 32] { + openvm_keccak256::keccak256(input) + } + + fn sha256(&self, input: &[u8]) -> [u8; 32] { + use openvm_sha2::Digest; + openvm_sha2::Sha256::digest(input).into() + } + + + fn bn254_g1_add(&self, p1: &[u8], p2: &[u8]) -> Result<[u8; 64], CryptoError> { + use openvm_ecc_guest::Group; + + let a = decode_bn254_g1(p1)?; + let b = decode_bn254_g1(p2)?; + + if a.is_identity() && b.is_identity() { + return Ok([0u8; 64]); + } + if a.is_identity() { + return encode_bn254_g1(&b); + } + if b.is_identity() { + return encode_bn254_g1(&a); + } + + #[allow(clippy::arithmetic_side_effects)] + let result = a + &b; + encode_bn254_g1(&result) + } + + fn bn254_g1_mul(&self, point: &[u8], scalar: &[u8]) -> Result<[u8; 64], CryptoError> { + use openvm_algebra_guest::IntMod; + use openvm_ecc_guest::{weierstrass::IntrinsicCurve, Group}; + use openvm_pairing::bn254::{Bn254, Scalar as Bn254Scalar}; + + if point.len() < 64 || scalar.len() < 32 { + return Err(CryptoError::InvalidInput("invalid input length")); + } + + let pt = decode_bn254_g1(point)?; + if pt.is_identity() { + return Ok([0u8; 64]); + } + + let s = Bn254Scalar::from_be_bytes_unchecked(scalar); + if s == Bn254Scalar::ZERO { + return Ok([0u8; 64]); + } + + let result = Bn254::msm(&[s], &[pt]); + encode_bn254_g1(&result) + } + + fn bn254_pairing_check(&self, pairs: &[(&[u8], &[u8])]) -> Result { + use openvm_algebra_guest::IntMod; + use openvm_ecc_guest::{weierstrass::WeierstrassPoint, AffinePoint}; + use openvm_pairing::bn254::{Bn254, Fp as Bn254Fp, Fp2 as Bn254Fp2}; + use openvm_pairing_guest::pairing::PairingCheck; + + if pairs.is_empty() { + return Ok(true); + } + + let mut g1_points: Vec> = Vec::with_capacity(pairs.len()); + let mut g2_points: Vec> = Vec::with_capacity(pairs.len()); + + for (g1_bytes, g2_bytes) in pairs { + if g1_bytes.len() < 64 { + return Err(CryptoError::InvalidInput("G1 must be 64 bytes")); + } + if g2_bytes.len() < 128 { + return Err(CryptoError::InvalidInput("G2 must be 128 bytes")); + } + + // Parse G1 — BN254 G1 has h=1, so from_xy (curve check) is sufficient + let g1 = decode_bn254_g1(g1_bytes)?; + let (g1_x, g1_y) = g1.into_coords(); + g1_points.push(AffinePoint::new(g1_x, g1_y)); + + // Parse G2: EVM encodes as (x_im[32] || x_re[32] || y_im[32] || y_re[32]) + let g2_x_im = Bn254Fp::from_be_bytes(&g2_bytes[..32]); + let g2_x_re = Bn254Fp::from_be_bytes(&g2_bytes[32..64]); + let g2_y_im = Bn254Fp::from_be_bytes(&g2_bytes[64..96]); + let g2_y_re = Bn254Fp::from_be_bytes(&g2_bytes[96..128]); + let (Some(g2_x_im), Some(g2_x_re), Some(g2_y_im), Some(g2_y_re)) = + (g2_x_im, g2_x_re, g2_y_im, g2_y_re) + else { + return Err(CryptoError::InvalidInput("G2 coordinate >= field modulus")); + }; + + // OpenVM Fp2 is (c0=real, c1=imaginary) + let g2_x = Bn254Fp2::new(g2_x_re, g2_x_im); + let g2_y = Bn254Fp2::new(g2_y_re, g2_y_im); + + // Check if point is zero (identity) + if g2_x == Bn254Fp2::ZERO && g2_y == Bn254Fp2::ZERO { + g2_points.push(AffinePoint::new(g2_x, g2_y)); + continue; + } + + // Curve check via from_xy + let g2_point = openvm_pairing::bn254::G2Affine::from_xy(g2_x.clone(), g2_y.clone()) + .ok_or(CryptoError::InvalidPoint("G2 point not on curve"))?; + + // Subgroup check — BN254 G2 has cofactor > 1 + if !g2_point.is_in_correct_subgroup() { + return Err(CryptoError::InvalidPoint("G2 point not in subgroup")); + } + + g2_points.push(AffinePoint::new(g2_x, g2_y)); + } + + match Bn254::pairing_check(&g1_points, &g2_points) { + Ok(()) => Ok(true), + Err(_) => Ok(false), + } + } + + + fn secp256r1_verify(&self, msg: &[u8; 32], sig: &[u8; 64], pk: &[u8; 64]) -> bool { + use openvm_p256::ecdsa::{signature::hazmat::PrehashVerifier, Signature, VerifyingKey}; + + // Build SEC1 uncompressed key: 0x04 || x[32] || y[32] + let mut sec1 = [0u8; 65]; + sec1[0] = 0x04; + sec1[1..33].copy_from_slice(&pk[..32]); + sec1[33..65].copy_from_slice(&pk[32..]); + + let Ok(verifier) = VerifyingKey::from_sec1_bytes(&sec1) else { + return false; + }; + + let Ok(signature) = Signature::from_slice(sig) else { + return false; + }; + + verifier.verify_prehash(msg, &signature).is_ok() + } + + + fn bls12_381_g1_add( + &self, + a: ([u8; 48], [u8; 48]), + b: ([u8; 48], [u8; 48]), + ) -> Result<[u8; 96], CryptoError> { + use openvm_ecc_guest::Group; + + let pa = decode_bls12_g1(a)?; + let pb = decode_bls12_g1(b)?; + + // Subgroup checks for BLS12-381 G1 (cofactor > 1) + if !pa.is_identity() && !pa.is_in_correct_subgroup() { + return Err(CryptoError::InvalidPoint("G1 point not in subgroup")); + } + if !pb.is_identity() && !pb.is_in_correct_subgroup() { + return Err(CryptoError::InvalidPoint("G1 point not in subgroup")); + } + + if pa.is_identity() && pb.is_identity() { + return Ok([0u8; 96]); + } + if pa.is_identity() { + return encode_bls12_g1(&pb); + } + if pb.is_identity() { + return encode_bls12_g1(&pa); + } + + #[allow(clippy::arithmetic_side_effects)] + let result = pa + &pb; + encode_bls12_g1(&result) + } + + fn bls12_381_g1_msm( + &self, + pairs: &[(([u8; 48], [u8; 48]), [u8; 32])], + ) -> Result<[u8; 96], CryptoError> { + use openvm_algebra_guest::IntMod; + use openvm_ecc_guest::{weierstrass::IntrinsicCurve, Group}; + use openvm_pairing::bls12_381::{Bls12_381, Scalar as Bls12Scalar}; + + let mut bases = Vec::with_capacity(pairs.len()); + let mut scalars = Vec::with_capacity(pairs.len()); + + for (point_bytes, scalar_bytes) in pairs { + let point = decode_bls12_g1(*point_bytes)?; + + // Subgroup check for BLS12-381 G1 (cofactor > 1) + if !point.is_identity() && !point.is_in_correct_subgroup() { + return Err(CryptoError::InvalidPoint("G1 point not in subgroup")); + } + + let scalar = Bls12Scalar::from_be_bytes_unchecked(scalar_bytes); + + if scalar == Bls12Scalar::ZERO || point.is_identity() { + continue; + } + bases.push(point); + scalars.push(scalar); + } + + if bases.is_empty() { + return Ok([0u8; 96]); + } + + let result = Bls12_381::msm(&scalars, &bases); + encode_bls12_g1(&result) + } + + fn bls12_381_g2_add( + &self, + a: ([u8; 48], [u8; 48], [u8; 48], [u8; 48]), + b: ([u8; 48], [u8; 48], [u8; 48], [u8; 48]), + ) -> Result<[u8; 192], CryptoError> { + use openvm_ecc_guest::Group; + + let pa = decode_bls12_g2(a)?; + let pb = decode_bls12_g2(b)?; + + if pa.is_identity() && pb.is_identity() { + return Ok([0u8; 192]); + } + if pa.is_identity() { + return encode_bls12_g2(&pb); + } + if pb.is_identity() { + return encode_bls12_g2(&pa); + } + + #[allow(clippy::arithmetic_side_effects)] + let result = pa + &pb; + encode_bls12_g2(&result) + } + + #[allow(clippy::type_complexity)] + fn bls12_381_g2_msm( + &self, + pairs: &[(([u8; 48], [u8; 48], [u8; 48], [u8; 48]), [u8; 32])], + ) -> Result<[u8; 192], CryptoError> { + use openvm_algebra_guest::IntMod; + use openvm_ecc_guest::Group; + use openvm_pairing::bls12_381::Scalar as Bls12Scalar; + + let mut bases = Vec::with_capacity(pairs.len()); + let mut scalars = Vec::with_capacity(pairs.len()); + + for (point_bytes, scalar_bytes) in pairs { + let point = decode_bls12_g2(*point_bytes)?; + let scalar = Bls12Scalar::from_be_bytes_unchecked(scalar_bytes); + + if scalar == Bls12Scalar::ZERO || point.is_identity() { + continue; + } + bases.push(point); + scalars.push(scalar); + } + + if bases.is_empty() { + return Ok([0u8; 192]); + } + + let result = openvm_ecc_guest::msm(&scalars, &bases); + encode_bls12_g2(&result) + } + + fn bls12_381_pairing_check( + &self, + pairs: &[( + ([u8; 48], [u8; 48]), + ([u8; 48], [u8; 48], [u8; 48], [u8; 48]), + )], + ) -> Result { + use openvm_ecc_guest::{weierstrass::WeierstrassPoint, AffinePoint, Group}; + use openvm_pairing::bls12_381::{Bls12_381, Fp as Bls12Fp, Fp2 as Bls12Fp2}; + use openvm_pairing_guest::pairing::PairingCheck; + + if pairs.is_empty() { + return Ok(true); + } + + let mut g1_points: Vec> = Vec::with_capacity(pairs.len()); + let mut g2_points: Vec> = Vec::with_capacity(pairs.len()); + + for (g1_bytes, g2_bytes) in pairs { + // Parse G1 with curve check and subgroup check + let g1 = decode_bls12_g1(*g1_bytes)?; + if !g1.is_identity() && !g1.is_in_correct_subgroup() { + return Err(CryptoError::InvalidPoint("G1 not in subgroup")); + } + let (g1_x, g1_y) = g1.into_coords(); + g1_points.push(AffinePoint::new(g1_x, g1_y)); + + // Parse G2 with curve check and subgroup check + let g2 = decode_bls12_g2(*g2_bytes)?; + if !g2.is_identity() && !g2.is_in_correct_subgroup() { + return Err(CryptoError::InvalidPoint("G2 not in subgroup")); + } + let (g2_x, g2_y) = g2.into_coords(); + g2_points.push(AffinePoint::new(g2_x, g2_y)); + } + + match Bls12_381::pairing_check(&g1_points, &g2_points) { + Ok(()) => Ok(true), + Err(_) => Ok(false), + } + } + + + fn modexp(&self, base: &[u8], exp: &[u8], modulus: &[u8]) -> Result, CryptoError> { + if is_bn254_fr(modulus) { + return Ok(accelerated_modexp_bn254_fr(base, exp)); + } + // Fall back to BigUint-based implementation (no-std compatible) + modexp_fallback(base, exp, modulus) + } +} + + +type Bn254G1 = openvm_pairing::bn254::G1Affine; + +/// Decode a BN254 G1 point from 64 big-endian bytes (x[32] || y[32]). +/// Uses `from_xy` which validates the point is on the curve. +/// BN254 G1 has cofactor h=1, so curve check is sufficient for subgroup membership. +fn decode_bn254_g1(bytes: &[u8]) -> Result { + use openvm_algebra_guest::IntMod; + use openvm_ecc_guest::weierstrass::WeierstrassPoint; + use openvm_pairing::bn254::Fp as Bn254Fp; + + if bytes.len() < 64 { + return Err(CryptoError::InvalidInput("G1 point must be 64 bytes")); + } + + let x = Bn254Fp::from_be_bytes(&bytes[..32]); + let y = Bn254Fp::from_be_bytes(&bytes[32..64]); + let (Some(x), Some(y)) = (x, y) else { + return Err(CryptoError::InvalidInput("coordinate >= field modulus")); + }; + + // from_xy validates the curve equation (identity handled as (0,0)) + WeierstrassPoint::from_xy(x, y) + .ok_or(CryptoError::InvalidPoint("G1 point not on curve")) +} + +/// Encode a BN254 G1 point to 64 big-endian bytes. +fn encode_bn254_g1(point: &Bn254G1) -> Result<[u8; 64], CryptoError> { + use openvm_algebra_guest::IntMod; + use openvm_ecc_guest::{weierstrass::WeierstrassPoint, Group}; + + if point.is_identity() { + return Ok([0u8; 64]); + } + + let x_be = point.x().to_be_bytes(); + let y_be = point.y().to_be_bytes(); + let mut out = [0u8; 64]; + out[..32].copy_from_slice(x_be.as_ref()); + out[32..].copy_from_slice(y_be.as_ref()); + Ok(out) +} + + +type Bls12G1 = openvm_pairing::bls12_381::G1Affine; +type Bls12G2 = openvm_pairing::bls12_381::G2Affine; + +/// Decode a BLS12-381 G1 point from two 48-byte big-endian field elements. +/// Uses `from_xy` which validates the point is on the curve. +fn decode_bls12_g1((x_bytes, y_bytes): ([u8; 48], [u8; 48])) -> Result { + use openvm_algebra_guest::IntMod; + use openvm_ecc_guest::weierstrass::WeierstrassPoint; + use openvm_pairing::bls12_381::Fp as Bls12Fp; + + let x = Bls12Fp::from_be_bytes(&x_bytes); + let y = Bls12Fp::from_be_bytes(&y_bytes); + let (Some(x), Some(y)) = (x, y) else { + return Err(CryptoError::InvalidInput( + "G1 coordinate >= field modulus", + )); + }; + + // from_xy validates the curve equation (identity handled as (0,0)) + WeierstrassPoint::from_xy(x, y) + .ok_or(CryptoError::InvalidPoint("G1 point not on curve")) +} + +/// Decode a BLS12-381 G2 point from four 48-byte big-endian field elements. +/// EIP-2537 encodes as (x_0[48] || x_1[48] || y_0[48] || y_1[48]) where Fp2 = x_0 + x_1*u. +fn decode_bls12_g2( + (x0_bytes, x1_bytes, y0_bytes, y1_bytes): ([u8; 48], [u8; 48], [u8; 48], [u8; 48]), +) -> Result { + use openvm_algebra_guest::IntMod; + use openvm_ecc_guest::weierstrass::WeierstrassPoint; + use openvm_pairing::bls12_381::{Fp as Bls12Fp, Fp2 as Bls12Fp2}; + + let x0 = Bls12Fp::from_be_bytes(&x0_bytes); + let x1 = Bls12Fp::from_be_bytes(&x1_bytes); + let y0 = Bls12Fp::from_be_bytes(&y0_bytes); + let y1 = Bls12Fp::from_be_bytes(&y1_bytes); + let (Some(x0), Some(x1), Some(y0), Some(y1)) = (x0, x1, y0, y1) else { + return Err(CryptoError::InvalidInput("G2 coordinate >= field modulus")); + }; + + let x = Bls12Fp2::new(x0, x1); + let y = Bls12Fp2::new(y0, y1); + + // from_xy validates the curve equation (identity handled as (0,0)) + WeierstrassPoint::from_xy(x, y) + .ok_or(CryptoError::InvalidPoint("G2 point not on curve")) +} + +/// Encode a BLS12-381 G1 point to 96 big-endian bytes. +fn encode_bls12_g1(point: &Bls12G1) -> Result<[u8; 96], CryptoError> { + use openvm_algebra_guest::IntMod; + use openvm_ecc_guest::{weierstrass::WeierstrassPoint, Group}; + + if point.is_identity() { + return Ok([0u8; 96]); + } + + let x_le = point.x().as_le_bytes(); + let y_le = point.y().as_le_bytes(); + let mut out = [0u8; 96]; + for i in 0..48 { + out[i] = x_le[47 - i]; + out[i + 48] = y_le[47 - i]; + } + Ok(out) +} + +/// Encode a BLS12-381 G2 point to 192 big-endian bytes. +/// EIP-2537 format: (x_c0[48] || x_c1[48] || y_c0[48] || y_c1[48]) +fn encode_bls12_g2(point: &Bls12G2) -> Result<[u8; 192], CryptoError> { + use openvm_algebra_guest::IntMod; + use openvm_ecc_guest::{weierstrass::WeierstrassPoint, Group}; + + if point.is_identity() { + return Ok([0u8; 192]); + } + + let x = point.x(); + let y = point.y(); + let x_c0 = x.c0.as_le_bytes(); + let x_c1 = x.c1.as_le_bytes(); + let y_c0 = y.c0.as_le_bytes(); + let y_c1 = y.c1.as_le_bytes(); + let mut out = [0u8; 192]; + for i in 0..48 { + out[i] = x_c0[47 - i]; + out[i + 48] = x_c1[47 - i]; + out[i + 96] = y_c0[47 - i]; + out[i + 144] = y_c1[47 - i]; + } + Ok(out) +} + + +/// Returns true if the modulus (big-endian, possibly with leading zeros) equals BN254 Fr. +fn is_bn254_fr(modulus: &[u8]) -> bool { + use openvm_algebra_guest::IntMod; + + // Strip leading zeros + let stripped = match modulus.iter().position(|&b| b != 0) { + Some(i) => &modulus[i..], + None => return false, // all zeros + }; + // bn::Scalar::MODULUS is little-endian; compare against reversed input + stripped.len() == 32 + && stripped + .iter() + .rev() + .eq(openvm_pairing::bn254::Scalar::MODULUS.as_ref().iter()) +} + +/// Accelerated modexp for BN254 Fr using field arithmetic intrinsics. +fn accelerated_modexp_bn254_fr(base: &[u8], exp: &[u8]) -> Vec { + use openvm_algebra_guest::{IntMod, Reduce}; + use openvm_ecc_guest::algebra::ExpBytes; + use openvm_pairing::bn254::Scalar as Bn254Scalar; + + let base_fr = if base.len() <= 32 { + Bn254Scalar::from_be_bytes(base) + .unwrap_or_else(|| Bn254Scalar::reduce_be_bytes(base)) + } else { + let padded_len = base.len().next_multiple_of(32); + let mut padded = vec![0u8; padded_len]; + padded[padded_len - base.len()..].copy_from_slice(base); + Bn254Scalar::reduce_be_bytes(&padded) + }; + + base_fr.exp_bytes(true, exp).to_be_bytes().as_ref().to_vec() +} + +/// Fallback modexp using BigUint (no-std compatible). +fn modexp_fallback(base: &[u8], exp: &[u8], modulus: &[u8]) -> Result, CryptoError> { + use num_bigint::BigUint; + + let base_nat = BigUint::from_bytes_be(base); + let exp_nat = BigUint::from_bytes_be(exp); + let mod_nat = BigUint::from_bytes_be(modulus); + + let result = if mod_nat == BigUint::ZERO { + BigUint::ZERO + } else if exp_nat == BigUint::ZERO { + BigUint::from(1_u8) % &mod_nat + } else { + base_nat.modpow(&exp_nat, &mod_nat) + }; + + let res_bytes = result.to_bytes_be(); + let mut out = vec![0u8; modulus.len()]; + if res_bytes.len() <= modulus.len() { + let offset = modulus.len() - res_bytes.len(); + out[offset..].copy_from_slice(&res_bytes); + } else { + out.copy_from_slice(&res_bytes[res_bytes.len() - modulus.len()..]); + } + Ok(out) +} + + +use openvm_ecc_guest::weierstrass::WeierstrassPoint; + +/// Scalar multiplication using double-and-add. +/// `scalar` is given as little-endian u64 limbs. +fn scalar_mul( + base: &P, + scalar: impl AsRef<[u64]>, +) -> P { + let mut result = P::IDENTITY; + let mut temp = base.clone(); + for limb in scalar.as_ref() { + for bit_idx in 0..64u32 { + if (limb >> bit_idx) & 1 == 1 { + result.add_assign_impl::(&temp); + } + temp.double_assign_impl::(); + } + } + result +} + +/// Checks whether an elliptic curve point belongs to the correct prime-order +/// subgroup. Assumes the point is already verified to lie on the curve. +trait SubgroupCheck: WeierstrassPoint { + fn is_in_correct_subgroup(&self) -> bool; +} + +// BN254 G1: cofactor = 1, every point on the curve is in the subgroup. +impl SubgroupCheck for openvm_pairing::bn254::G1Affine { + fn is_in_correct_subgroup(&self) -> bool { + true + } +} + +// BN254 G2: check [6x²]P == ψ(P). Section 4.3 of https://eprint.iacr.org/2022/352.pdf +impl SubgroupCheck for openvm_pairing::bn254::G2Affine { + fn is_in_correct_subgroup(&self) -> bool { + use openvm_algebra_guest::field::FieldExtension; + use openvm_pairing::bn254 as bn; + + const SIX_X_SQUARED: [u64; 2] = [17887900258952609094, 8020209761171036667]; + + let coeff_0 = bn::Fp2::new( + bn::Fp::from_const_bytes(hex_literal::hex!( + "3d556f175795e3990c33c3c210c38cb743b159f53cec0b4cf711794f9847b32f" + )), + bn::Fp::from_const_bytes(hex_literal::hex!( + "a2cb0f641cd56516ce9d7c0b1d2aae3294075ad78bcca44b20aeeb6150e5c916" + )), + ); + let coeff_1 = bn::Fp2::new( + bn::Fp::from_const_bytes(hex_literal::hex!( + "5a13a071460154dc9859c9a9ede0aadbb9f9e2b698c65edcdcf59a4805f33c06" + )), + bn::Fp::from_const_bytes(hex_literal::hex!( + "e3b02326637fd382d25ba28fc97d80212b6f79eca7b504079a0441acbc3cc007" + )), + ); + + let x_times_point = scalar_mul::<_, false>(self, SIX_X_SQUARED); + let psi_x = self.x().frobenius_map(1) * coeff_0; + let psi_y = self.y().frobenius_map(1) * coeff_1; + let endomorphism_point = Self::from_xy_unchecked(psi_x, psi_y); + x_times_point.eq(&endomorphism_point) + } +} + +// BLS12-381 G1: GLV endomorphism check. Section 6 of https://eprint.iacr.org/2021/1130 +impl SubgroupCheck for openvm_pairing::bls12_381::G1Affine { + fn is_in_correct_subgroup(&self) -> bool { + use core::ops::{MulAssign, Neg}; + use openvm_ecc_guest::Group; + use openvm_pairing::bls12_381 as bls; + + const X: [u64; 1] = [0xd201000000010000]; + let beta = bls::Fp::from_const_bytes(hex_literal::hex!( + "fefffeffffff012e02000a6213d817de8896f8e63ba9b3ddea770f6a07c669ba51ce76df2f67195f0000000000000000" + )); + + let x_times_point = scalar_mul::<_, true>(self, X); + if self.eq(&x_times_point) && !self.is_identity() { + return false; + } + + let minus_x_squared_times_point = scalar_mul::<_, false>(&x_times_point, X).neg(); + let mut endomorphism_point = self.clone(); + endomorphism_point.x_mut().mul_assign(&beta); + minus_x_squared_times_point.eq(&endomorphism_point) + } +} + +// BLS12-381 G2: untwist-Frobenius-twist check. Section 4 of https://eprint.iacr.org/2021/1130 +impl SubgroupCheck for openvm_pairing::bls12_381::G2Affine { + fn is_in_correct_subgroup(&self) -> bool { + use core::ops::Neg; + use openvm_algebra_guest::field::FieldExtension; + use openvm_pairing::bls12_381 as bls; + + const X: [u64; 1] = [0xd201000000010000]; + + let coeff_0_c1 = bls::Fp::from_const_bytes(hex_literal::hex!( + "adaa00000000fd8bfdff494feb2794409b5fb80f65297d89d49a75897d850daa85ded463864002ec99e67f39ea11011a" + )); + let coeff_1 = bls::Fp2::new( + bls::Fp::from_const_bytes(hex_literal::hex!( + "a2de1b12047beef10afa673ecf6644305eb41ef6896439ef60cfb130d9ed3d1cd92c7ad748c4e9e28ea68001e6035213" + )), + bls::Fp::from_const_bytes(hex_literal::hex!( + "09cce3edfb8410c8f405ec722f9967eec5419200176ef7775e43d3c2ab5d3948fe7fd16b6de331680b40ff37040eaf06" + )), + ); + + let x_times_point = scalar_mul::<_, true>(self, X).neg(); + let tmp_x = self.x().frobenius_map(1); + let psi_x = bls::Fp2::new(-coeff_0_c1.clone() * tmp_x.c1, coeff_0_c1 * tmp_x.c0); + let psi_y = self.y().frobenius_map(1) * coeff_1; + let endomorphism_point = Self::from_xy_unchecked(psi_x, psi_y); + x_times_point.eq(&endomorphism_point) + } } diff --git a/crates/l2/prover/Cargo.toml b/crates/l2/prover/Cargo.toml index c27c72f5dd..878f4d8e82 100644 --- a/crates/l2/prover/Cargo.toml +++ b/crates/l2/prover/Cargo.toml @@ -50,9 +50,8 @@ sp1-recursion-gnark-ffi = { version = "=5.0.8", optional = true } openvm-sdk = { git = "https://github.com/openvm-org/openvm.git", package = "openvm-sdk", optional = true, features = [ "evm-prove", "parallel", -] } -openvm-continuations = { git = "https://github.com/openvm-org/openvm.git", package = "openvm-continuations", optional = true } -openvm-stark-sdk = { git = "https://github.com/openvm-org/stark-backend.git", package = "openvm-stark-sdk", tag = "v1.2.1", optional = true } +], tag = "v2.0.0-beta.1" } +openvm-stark-sdk = { git = "https://github.com/openvm-org/stark-backend.git", package = "openvm-stark-sdk", tag = "v2.0.0-beta.1", optional = true } [dev-dependencies] ethrex-storage.workspace = true @@ -79,7 +78,6 @@ openvm = [ "ethrex-guest-program/openvm-build-elf", "dep:openvm-sdk", "dep:openvm-stark-sdk", - "dep:openvm-continuations", ] profiling = ["sp1-sdk?/profiling", "ethrex-prover/profiling"] diff --git a/crates/prover/Cargo.toml b/crates/prover/Cargo.toml index f1e422d3f4..d806d6f4c8 100644 --- a/crates/prover/Cargo.toml +++ b/crates/prover/Cargo.toml @@ -37,9 +37,9 @@ sp1-recursion-gnark-ffi = { version = "=5.0.8", optional = true } openvm-sdk = { git = "https://github.com/openvm-org/openvm.git", package = "openvm-sdk", optional = true, features = [ "evm-prove", "parallel", -] } -openvm-continuations = { git = "https://github.com/openvm-org/openvm.git", package = "openvm-continuations", optional = true } -openvm-stark-sdk = { git = "https://github.com/openvm-org/stark-backend.git", package = "openvm-stark-sdk", tag = "v1.2.1", optional = true } +], tag = "v2.0.0-beta.1" } +openvm-stark-sdk = { git = "https://github.com/openvm-org/stark-backend.git", package = "openvm-stark-sdk", tag = "v2.0.0-beta.1", optional = true } +openvm-verify-stark-host = { git = "https://github.com/openvm-org/openvm.git", package = "openvm-verify-stark-host", tag = "v2.0.0-beta.1", optional = true } [[bin]] name = "l1_prover" @@ -64,7 +64,7 @@ openvm = [ "ethrex-guest-program/openvm", "dep:openvm-sdk", "dep:openvm-stark-sdk", - "dep:openvm-continuations", + "dep:openvm-verify-stark-host", ] profiling = ["sp1-sdk?/profiling"] diff --git a/crates/prover/src/backend/openvm.rs b/crates/prover/src/backend/openvm.rs index cea8e08f6e..3d9c5d3982 100644 --- a/crates/prover/src/backend/openvm.rs +++ b/crates/prover/src/backend/openvm.rs @@ -2,23 +2,25 @@ use std::time::{Duration, Instant}; use ethrex_common::types::prover::{ProofFormat, ProverOutput, ProverType}; use ethrex_guest_program::input::ProgramInput; -use openvm_continuations::verifier::internal::types::VmStarkProof; -use openvm_sdk::{Sdk, StdIn, types::EvmProof}; -use openvm_stark_sdk::config::baby_bear_poseidon2::BabyBearPoseidon2Config; +use openvm_sdk::config::AggregationSystemParams; +use openvm_sdk::{Sdk, StdIn}; +use openvm_stark_sdk::config::{app_params_with_100_bits_security, MAX_APP_LOG_STACKED_HEIGHT}; +use openvm_verify_stark_host::NonRootStarkProof; use rkyv::rancor::Error; use crate::backend::{BackendError, ProverBackend}; static PROGRAM_ELF: &[u8] = - include_bytes!("../../../../guest-program/bin/openvm/out/riscv32im-openvm-elf"); + include_bytes!("../../../guest-program/bin/openvm/out/riscv32im-openvm-elf"); -/// OpenVM-specific proof output. -pub enum OpenVmProveOutput { - Compressed(VmStarkProof), - Groth16(EvmProof), -} +/// OpenVM v2 proof output (Compressed STARK proof only). +pub struct OpenVmProveOutput(pub NonRootStarkProof); -/// OpenVM prover backend. +/// OpenVM v2 prover backend. +/// +/// The SDK is created per-call rather than stored in the struct because it +/// contains `Rc` internally (in the Transpiler) and is therefore `!Send`. +/// The Actor framework requires `Send` on backend structs. #[derive(Default)] pub struct OpenVmBackend; @@ -29,7 +31,10 @@ impl OpenVmBackend { /// Execute using already-serialized input. fn execute_with_stdin(&self, stdin: StdIn) -> Result<(), BackendError> { - let sdk = Sdk::standard(); + let sdk = Sdk::standard( + app_params_with_100_bits_security(MAX_APP_LOG_STACKED_HEIGHT), + AggregationSystemParams::default(), + ); sdk.execute(PROGRAM_ELF, stdin) .map_err(BackendError::execution)?; Ok(()) @@ -41,22 +46,21 @@ impl OpenVmBackend { stdin: StdIn, format: ProofFormat, ) -> Result { - let sdk = Sdk::standard(); - let proof = match format { + match format { ProofFormat::Compressed => { - let (proof, _) = sdk - .prove(PROGRAM_ELF, stdin) - .map_err(BackendError::proving)?; - OpenVmProveOutput::Compressed(proof) - } - ProofFormat::Groth16 => { - let proof = sdk - .prove_evm(PROGRAM_ELF, stdin) + let sdk = Sdk::standard( + app_params_with_100_bits_security(MAX_APP_LOG_STACKED_HEIGHT), + AggregationSystemParams::default(), + ); + let (proof, _verification_baseline) = sdk + .prove(PROGRAM_ELF, stdin, &[]) .map_err(BackendError::proving)?; - OpenVmProveOutput::Groth16(proof) + Ok(OpenVmProveOutput(proof)) } - }; - Ok(proof) + ProofFormat::Groth16 => Err(BackendError::not_implemented( + "Groth16 is not supported for OpenVM backend", + )), + } } } @@ -122,4 +126,4 @@ impl ProverBackend for OpenVmBackend { let proof = self.prove_with_stdin(stdin, format)?; Ok((proof, start.elapsed())) } -} +} \ No newline at end of file