diff --git a/Cargo.lock b/Cargo.lock index e5072c3..9884fa3 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -844,6 +844,30 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5e764a1d40d510daf35e07be9eb06e75770908c27d411ee6c92109c9840eaaf7" +[[package]] +name = "bitcode" +version = "0.6.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf300f4aa6e66f3bdff11f1236a88c622fe47ea814524792240b4d554d9858ee" +dependencies = [ + "arrayvec", + "bitcode_derive", + "bytemuck", + "glam", + "serde", +] + +[[package]] +name = "bitcode_derive" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42b6b4cb608b8282dc3b53d0f4c9ab404655d562674c682db7e6c0458cc83c23" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.101", +] + [[package]] name = "bitflags" version = "2.9.0" @@ -912,7 +936,7 @@ checksum = "a3c196a77437e7cc2fb515ce413a6401291578b5afc8ecb29a3c7ab957f05941" dependencies = [ "ff 0.12.1", "group 0.12.1", - "pairing", + "pairing 0.22.0", "rand_core 0.6.4", "subtle", ] @@ -929,6 +953,31 @@ dependencies = [ "zeroize", ] +[[package]] +name = "bon" +version = "3.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ced38439e7a86a4761f7f7d5ded5ff009135939ecb464a24452eaa4c1696af7d" +dependencies = [ + "bon-macros", + "rustversion", +] + +[[package]] +name = "bon-macros" +version = "3.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ce61d2d3844c6b8d31b2353d9f66cf5e632b3e9549583fe3cac2f4f6136725e" +dependencies = [ + "darling", + "ident_case", + "prettyplease", + "proc-macro2", + "quote", + "rustversion", + "syn 2.0.101", +] + [[package]] name = "bumpalo" version = "3.17.0" @@ -1186,6 +1235,12 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7c74b8349d32d297c9134b8c88677813a227df8f779daa29bfc29c183fe3dca6" +[[package]] +name = "convert_case" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" + [[package]] name = "core-foundation" version = "0.10.0" @@ -1226,6 +1281,19 @@ version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5" +[[package]] +name = "crossbeam" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1137cd7e7fc0fb5d3c5a8678be38ec56e819125d8d7907411fe24ccb943faca8" +dependencies = [ + "crossbeam-channel", + "crossbeam-deque", + "crossbeam-epoch", + "crossbeam-queue", + "crossbeam-utils", +] + [[package]] name = "crossbeam-channel" version = "0.5.15" @@ -1254,6 +1322,15 @@ dependencies = [ "crossbeam-utils", ] +[[package]] +name = "crossbeam-queue" +version = "0.3.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f58bbc28f91df819d0aa2a2c00cd19754769c2fad90579b3592b1c9ba7a3115" +dependencies = [ + "crossbeam-utils", +] + [[package]] name = "crossbeam-utils" version = "0.8.21" @@ -1443,6 +1520,41 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "derive-new" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d150dea618e920167e5973d70ae6ece4385b7164e0d799fe7c122dd0a5d912ad" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.101", +] + +[[package]] +name = "derive-new" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2cdc8d50f426189eef89dac62fabfa0abb27d5cc008f25bf4156a0203325becc" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.101", +] + +[[package]] +name = "derive_more" +version = "0.99.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6edb4b64a43d977b8e99788fe3a04d483834fba1215a7e02caa415b626497f7f" +dependencies = [ + "convert_case", + "proc-macro2", + "quote", + "rustc_version 0.4.1", + "syn 2.0.101", +] + [[package]] name = "derive_more" version = "1.0.0" @@ -1470,6 +1582,7 @@ dependencies = [ "proc-macro2", "quote", "syn 2.0.101", + "unicode-xid", ] [[package]] @@ -1620,6 +1733,12 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "34aa73646ffb006b8f5147f3dc182bd4bcb190227ce861fc4a4844bf8e3cb2c0" +[[package]] +name = "endian-type" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c34f04666d835ff5d62e058c3995147c06f42fe86ff053337632bca83e42702d" + [[package]] name = "enum-map" version = "2.7.3" @@ -1641,12 +1760,37 @@ dependencies = [ "syn 2.0.101", ] +[[package]] +name = "enum_dispatch" +version = "0.3.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa18ce2bc66555b3218614519ac839ddb759a7d6720732f979ef8d13be147ecd" +dependencies = [ + "once_cell", + "proc-macro2", + "quote", + "syn 2.0.101", +] + [[package]] name = "equivalent" version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" +[[package]] +name = "ere-openvm" +version = "0.1.0" +dependencies = [ + "openvm-build", + "openvm-circuit", + "openvm-sdk", + "openvm-stark-sdk", + "openvm-transpiler", + "thiserror 2.0.12", + "zkvm-interface", +] + [[package]] name = "ere-risczero" version = "0.1.0" @@ -1964,12 +2108,30 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "getset" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3586f256131df87204eb733da72e3d3eb4f343c639f4b7be279ac7c48baeafe" +dependencies = [ + "proc-macro-error2", + "proc-macro2", + "quote", + "syn 2.0.101", +] + [[package]] name = "gimli" version = "0.31.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" +[[package]] +name = "glam" +version = "0.30.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b46b9ca4690308844c644e7c634d68792467260e051c8543e0c7871662b3ba7" + [[package]] name = "glob" version = "0.3.2" @@ -2027,6 +2189,69 @@ dependencies = [ "halo2_proofs", ] +[[package]] +name = "halo2-axiom" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62f0ca78d12ac5c893f286d7cdfe3869290305ab8cac376e2592cdc8396da102" +dependencies = [ + "blake2b_simd", + "crossbeam", + "ff 0.13.1", + "group 0.13.0", + "halo2curves-axiom", + "itertools 0.11.0", + "maybe-rayon", + "pairing 0.23.0", + "rand 0.8.5", + "rand_core 0.6.4", + "rayon", + "rustc-hash 1.1.0", + "sha3", + "tracing", +] + +[[package]] +name = "halo2-base" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "678cf3adc0a39d7b4d9b82315a655201aa24a430dd1902b162c508047f56ac69" +dependencies = [ + "getset", + "halo2-axiom", + "itertools 0.11.0", + "log", + "num-bigint 0.4.6", + "num-integer", + "num-traits", + "poseidon-primitives", + "rand_chacha 0.3.1", + "rayon", + "rustc-hash 1.1.0", + "serde", + "serde_json", +] + +[[package]] +name = "halo2-ecc" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "645c00681fdd1febaf552d8814e9f5a6a142d81a1514102190da07039588b366" +dependencies = [ + "halo2-base", + "itertools 0.11.0", + "num-bigint 0.4.6", + "num-integer", + "num-traits", + "rand 0.8.5", + "rand_chacha 0.3.1", + "rand_core 0.6.4", + "rayon", + "serde", + "serde_json", + "test-case", +] + [[package]] name = "halo2_proofs" version = "0.1.0" @@ -2041,6 +2266,77 @@ 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", + "sha2", + "static_assertions", + "subtle", + "unroll", +] + +[[package]] +name = "halo2curves-axiom" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd8309e4638b4f1bcf6613d72265a84074d26034c35edc5d605b5688e580b8b8" +dependencies = [ + "blake2b_simd", + "digest 0.10.7", + "ff 0.13.1", + "group 0.13.0", + "hex", + "lazy_static", + "num-bigint 0.4.6", + "num-traits", + "pairing 0.23.0", + "pasta_curves 0.5.1", + "paste", + "rand 0.8.5", + "rand_core 0.6.4", + "rayon", + "serde", + "serde_arrays", + "sha2", + "static_assertions", + "subtle", + "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 = "hashbrown" version = "0.12.3" @@ -2097,6 +2393,12 @@ dependencies = [ "serde", ] +[[package]] +name = "hex-literal" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" + [[package]] name = "hmac" version = "0.12.1" @@ -2452,6 +2754,15 @@ dependencies = [ "either", ] +[[package]] +name = "itertools" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57" +dependencies = [ + "either", +] + [[package]] name = "itertools" version = "0.12.1" @@ -2606,6 +2917,12 @@ dependencies = [ "scopeguard", ] +[[package]] +name = "lockfree-object-pool" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9374ef4228402d4b7e403e5838cb880d9ee663314b0a900d5a6aabf0c213552e" + [[package]] name = "log" version = "0.4.27" @@ -2653,6 +2970,16 @@ version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0e7465ac9959cc2b1404e8e2367b43684a6d13790fe23056cc8c6c5a6b7bcb94" +[[package]] +name = "maybe-rayon" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ea1f30cedd69f0a2954655f7188c6a834246d2bcf1e315e2ac40c4b24dc9519" +dependencies = [ + "cfg-if", + "rayon", +] + [[package]] name = "memchr" version = "2.7.4" @@ -2665,6 +2992,52 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3d97bbf43eb4f088f8ca469930cde17fa036207c9a5e02ccc5107c4e8b17c964" +[[package]] +name = "metrics" +version = "0.23.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3045b4193fbdc5b5681f32f11070da9be3609f189a79f3390706d42587f46bb5" +dependencies = [ + "ahash", + "portable-atomic", +] + +[[package]] +name = "metrics-tracing-context" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62a6a1f7141f1d9bc7a886b87536bbfc97752e08b369e1e0453a9acfab5f5da4" +dependencies = [ + "indexmap 2.9.0", + "itoa", + "lockfree-object-pool", + "metrics", + "metrics-util", + "once_cell", + "tracing", + "tracing-core", + "tracing-subscriber", +] + +[[package]] +name = "metrics-util" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4259040465c955f9f2f1a4a8a16dc46726169bca0f88e8fb2dbeced487c3e828" +dependencies = [ + "aho-corasick", + "crossbeam-epoch", + "crossbeam-utils", + "hashbrown 0.14.5", + "indexmap 2.9.0", + "metrics", + "num_cpus", + "ordered-float", + "quanta", + "radix_trie", + "sketches-ddsketch", +] + [[package]] name = "mime" version = "0.3.17" @@ -2697,6 +3070,15 @@ dependencies = [ "windows-sys 0.52.0", ] +[[package]] +name = "nibble_vec" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77a5d83df9f36fe23f0c3648c6bbb8b0298bb5f1939c8f2704431371f4b84d43" +dependencies = [ + "smallvec", +] + [[package]] name = "nix" version = "0.30.1" @@ -2777,6 +3159,8 @@ checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" dependencies = [ "num-integer", "num-traits", + "rand 0.8.5", + "serde", ] [[package]] @@ -2887,6 +3271,18 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3" +[[package]] +name = "nums" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf3c74f925fb8cfc49a8022f2afce48a0683b70f9e439885594e84c5edbf5b01" +dependencies = [ + "num-bigint 0.4.6", + "num-integer", + "num-traits", + "rand 0.8.5", +] + [[package]] name = "nybbles" version = "0.3.4" @@ -2921,12 +3317,879 @@ version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e" +[[package]] +name = "openvm" +version = "1.1.1" +source = "git+https://github.com/openvm-org/openvm.git?tag=v1.1.1#2f9bf748a7e6130d530adbefb6a6507278098ff5" +dependencies = [ + "bytemuck", + "num-bigint 0.4.6", + "openvm-custom-insn", + "openvm-platform", + "openvm-rv32im-guest", + "serde", +] + +[[package]] +name = "openvm-algebra-circuit" +version = "1.1.1" +source = "git+https://github.com/openvm-org/openvm.git?tag=v1.1.1#2f9bf748a7e6130d530adbefb6a6507278098ff5" +dependencies = [ + "derive-new 0.6.0", + "derive_more 1.0.0", + "itertools 0.14.0", + "num-bigint 0.4.6", + "num-traits", + "openvm-algebra-transpiler", + "openvm-circuit", + "openvm-circuit-derive", + "openvm-circuit-primitives", + "openvm-circuit-primitives-derive", + "openvm-instructions", + "openvm-mod-circuit-builder", + "openvm-rv32-adapters", + "openvm-rv32im-circuit", + "openvm-stark-backend", + "openvm-stark-sdk", + "rand 0.8.5", + "serde", + "serde-big-array", + "serde_with", + "strum", +] + +[[package]] +name = "openvm-algebra-complex-macros" +version = "0.1.0" +source = "git+https://github.com/openvm-org/openvm.git?tag=v1.1.1#2f9bf748a7e6130d530adbefb6a6507278098ff5" +dependencies = [ + "openvm-macros-common", + "quote", + "syn 2.0.101", +] + +[[package]] +name = "openvm-algebra-guest" +version = "1.1.1" +source = "git+https://github.com/openvm-org/openvm.git?tag=v1.1.1#2f9bf748a7e6130d530adbefb6a6507278098ff5" +dependencies = [ + "halo2curves-axiom", + "num-bigint 0.4.6", + "openvm-algebra-complex-macros", + "openvm-algebra-moduli-macros", + "serde-big-array", + "strum_macros", +] + +[[package]] +name = "openvm-algebra-moduli-macros" +version = "1.1.1" +source = "git+https://github.com/openvm-org/openvm.git?tag=v1.1.1#2f9bf748a7e6130d530adbefb6a6507278098ff5" +dependencies = [ + "openvm-macros-common", + "quote", + "syn 2.0.101", +] + +[[package]] +name = "openvm-algebra-transpiler" +version = "1.1.1" +source = "git+https://github.com/openvm-org/openvm.git?tag=v1.1.1#2f9bf748a7e6130d530adbefb6a6507278098ff5" +dependencies = [ + "openvm-algebra-guest", + "openvm-instructions", + "openvm-instructions-derive", + "openvm-stark-backend", + "openvm-transpiler", + "rrs-lib", + "strum", +] + +[[package]] +name = "openvm-bigint-circuit" +version = "1.1.1" +source = "git+https://github.com/openvm-org/openvm.git?tag=v1.1.1#2f9bf748a7e6130d530adbefb6a6507278098ff5" +dependencies = [ + "derive-new 0.6.0", + "derive_more 1.0.0", + "openvm-bigint-transpiler", + "openvm-circuit", + "openvm-circuit-derive", + "openvm-circuit-primitives", + "openvm-circuit-primitives-derive", + "openvm-instructions", + "openvm-rv32-adapters", + "openvm-rv32im-circuit", + "openvm-rv32im-transpiler", + "openvm-stark-backend", + "openvm-stark-sdk", + "rand 0.8.5", + "serde", +] + +[[package]] +name = "openvm-bigint-guest" +version = "1.1.1" +source = "git+https://github.com/openvm-org/openvm.git?tag=v1.1.1#2f9bf748a7e6130d530adbefb6a6507278098ff5" +dependencies = [ + "num-bigint 0.4.6", + "num-traits", + "openvm", + "openvm-platform", + "serde", + "serde-big-array", + "strum_macros", +] + +[[package]] +name = "openvm-bigint-transpiler" +version = "1.1.1" +source = "git+https://github.com/openvm-org/openvm.git?tag=v1.1.1#2f9bf748a7e6130d530adbefb6a6507278098ff5" +dependencies = [ + "openvm-bigint-guest", + "openvm-instructions", + "openvm-instructions-derive", + "openvm-rv32im-transpiler", + "openvm-stark-backend", + "openvm-transpiler", + "rrs-lib", + "strum", +] + +[[package]] +name = "openvm-build" +version = "1.1.1" +source = "git+https://github.com/openvm-org/openvm.git?tag=v1.1.1#2f9bf748a7e6130d530adbefb6a6507278098ff5" +dependencies = [ + "cargo_metadata", + "eyre", + "openvm-platform", + "serde", + "serde_json", +] + +[[package]] +name = "openvm-circuit" +version = "1.1.1" +source = "git+https://github.com/openvm-org/openvm.git?tag=v1.1.1#2f9bf748a7e6130d530adbefb6a6507278098ff5" +dependencies = [ + "backtrace", + "cfg-if", + "derivative", + "derive-new 0.6.0", + "derive_more 1.0.0", + "enum_dispatch", + "eyre", + "getset", + "itertools 0.14.0", + "openvm-circuit-derive", + "openvm-circuit-primitives", + "openvm-circuit-primitives-derive", + "openvm-instructions", + "openvm-poseidon2-air", + "openvm-stark-backend", + "p3-baby-bear 0.1.0", + "rand 0.8.5", + "rustc-hash 2.1.1", + "serde", + "serde-big-array", + "static_assertions", + "thiserror 1.0.69", + "tracing", +] + +[[package]] +name = "openvm-circuit-derive" +version = "1.1.1" +source = "git+https://github.com/openvm-org/openvm.git?tag=v1.1.1#2f9bf748a7e6130d530adbefb6a6507278098ff5" +dependencies = [ + "itertools 0.14.0", + "quote", + "syn 2.0.101", +] + +[[package]] +name = "openvm-circuit-primitives" +version = "1.1.1" +source = "git+https://github.com/openvm-org/openvm.git?tag=v1.1.1#2f9bf748a7e6130d530adbefb6a6507278098ff5" +dependencies = [ + "derive-new 0.6.0", + "itertools 0.14.0", + "num-bigint 0.4.6", + "num-traits", + "openvm-circuit-primitives-derive", + "openvm-stark-backend", + "rand 0.8.5", + "tracing", +] + +[[package]] +name = "openvm-circuit-primitives-derive" +version = "1.1.1" +source = "git+https://github.com/openvm-org/openvm.git?tag=v1.1.1#2f9bf748a7e6130d530adbefb6a6507278098ff5" +dependencies = [ + "itertools 0.14.0", + "quote", + "syn 2.0.101", +] + +[[package]] +name = "openvm-continuations" +version = "1.1.1" +source = "git+https://github.com/openvm-org/openvm.git?tag=v1.1.1#2f9bf748a7e6130d530adbefb6a6507278098ff5" +dependencies = [ + "derivative", + "openvm-circuit", + "openvm-native-compiler", + "openvm-native-recursion", + "openvm-stark-backend", + "openvm-stark-sdk", + "serde", + "static_assertions", +] + +[[package]] +name = "openvm-custom-insn" +version = "0.1.0" +source = "git+https://github.com/openvm-org/openvm.git?tag=v1.1.1#2f9bf748a7e6130d530adbefb6a6507278098ff5" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.101", +] + +[[package]] +name = "openvm-ecc-circuit" +version = "1.1.1" +source = "git+https://github.com/openvm-org/openvm.git?tag=v1.1.1#2f9bf748a7e6130d530adbefb6a6507278098ff5" +dependencies = [ + "derive-new 0.6.0", + "derive_more 1.0.0", + "eyre", + "num-bigint 0.4.6", + "num-integer", + "num-traits", + "once_cell", + "openvm-algebra-circuit", + "openvm-algebra-guest", + "openvm-circuit", + "openvm-circuit-derive", + "openvm-circuit-primitives", + "openvm-circuit-primitives-derive", + "openvm-ecc-guest", + "openvm-ecc-transpiler", + "openvm-instructions", + "openvm-mod-circuit-builder", + "openvm-rv32-adapters", + "openvm-rv32im-circuit", + "openvm-stark-backend", + "rand 0.8.5", + "serde", + "serde_with", + "strum", +] + +[[package]] +name = "openvm-ecc-guest" +version = "1.1.1" +source = "git+https://github.com/openvm-org/openvm.git?tag=v1.1.1#2f9bf748a7e6130d530adbefb6a6507278098ff5" +dependencies = [ + "ecdsa", + "elliptic-curve", + "group 0.13.0", + "halo2curves-axiom", + "hex-literal", + "k256", + "lazy_static", + "num-bigint 0.4.6", + "once_cell", + "openvm", + "openvm-algebra-guest", + "openvm-algebra-moduli-macros", + "openvm-custom-insn", + "openvm-ecc-sw-macros", + "openvm-rv32im-guest", + "p256", + "serde", + "strum_macros", +] + +[[package]] +name = "openvm-ecc-sw-macros" +version = "1.1.1" +source = "git+https://github.com/openvm-org/openvm.git?tag=v1.1.1#2f9bf748a7e6130d530adbefb6a6507278098ff5" +dependencies = [ + "openvm-macros-common", + "quote", + "syn 2.0.101", +] + +[[package]] +name = "openvm-ecc-transpiler" +version = "1.1.1" +source = "git+https://github.com/openvm-org/openvm.git?tag=v1.1.1#2f9bf748a7e6130d530adbefb6a6507278098ff5" +dependencies = [ + "openvm-ecc-guest", + "openvm-instructions", + "openvm-instructions-derive", + "openvm-stark-backend", + "openvm-transpiler", + "rrs-lib", + "strum", +] + +[[package]] +name = "openvm-instructions" +version = "1.1.1" +source = "git+https://github.com/openvm-org/openvm.git?tag=v1.1.1#2f9bf748a7e6130d530adbefb6a6507278098ff5" +dependencies = [ + "backtrace", + "derive-new 0.6.0", + "itertools 0.14.0", + "num-bigint 0.4.6", + "num-traits", + "openvm-instructions-derive", + "openvm-stark-backend", + "serde", + "strum", + "strum_macros", +] + +[[package]] +name = "openvm-instructions-derive" +version = "1.1.1" +source = "git+https://github.com/openvm-org/openvm.git?tag=v1.1.1#2f9bf748a7e6130d530adbefb6a6507278098ff5" +dependencies = [ + "quote", + "syn 2.0.101", +] + +[[package]] +name = "openvm-keccak256-circuit" +version = "1.1.1" +source = "git+https://github.com/openvm-org/openvm.git?tag=v1.1.1#2f9bf748a7e6130d530adbefb6a6507278098ff5" +dependencies = [ + "derive-new 0.6.0", + "derive_more 1.0.0", + "itertools 0.14.0", + "openvm-circuit", + "openvm-circuit-derive", + "openvm-circuit-primitives", + "openvm-circuit-primitives-derive", + "openvm-instructions", + "openvm-keccak256-transpiler", + "openvm-rv32im-circuit", + "openvm-stark-backend", + "openvm-stark-sdk", + "p3-keccak-air 0.1.0", + "rand 0.8.5", + "serde", + "serde-big-array", + "strum", + "tiny-keccak", + "tracing", +] + +[[package]] +name = "openvm-keccak256-guest" +version = "1.1.1" +source = "git+https://github.com/openvm-org/openvm.git?tag=v1.1.1#2f9bf748a7e6130d530adbefb6a6507278098ff5" +dependencies = [ + "openvm-platform", + "tiny-keccak", +] + +[[package]] +name = "openvm-keccak256-transpiler" +version = "1.1.1" +source = "git+https://github.com/openvm-org/openvm.git?tag=v1.1.1#2f9bf748a7e6130d530adbefb6a6507278098ff5" +dependencies = [ + "openvm-instructions", + "openvm-instructions-derive", + "openvm-keccak256-guest", + "openvm-stark-backend", + "openvm-transpiler", + "rrs-lib", + "strum", +] + +[[package]] +name = "openvm-macros-common" +version = "1.1.1" +source = "git+https://github.com/openvm-org/openvm.git?tag=v1.1.1#2f9bf748a7e6130d530adbefb6a6507278098ff5" +dependencies = [ + "syn 2.0.101", +] + +[[package]] +name = "openvm-mod-circuit-builder" +version = "1.1.1" +source = "git+https://github.com/openvm-org/openvm.git?tag=v1.1.1#2f9bf748a7e6130d530adbefb6a6507278098ff5" +dependencies = [ + "itertools 0.14.0", + "num-bigint 0.4.6", + "num-traits", + "openvm-circuit", + "openvm-circuit-primitives", + "openvm-instructions", + "openvm-stark-backend", + "openvm-stark-sdk", + "rand 0.8.5", + "serde", + "serde_with", + "tracing", +] + +[[package]] +name = "openvm-native-circuit" +version = "1.1.1" +source = "git+https://github.com/openvm-org/openvm.git?tag=v1.1.1#2f9bf748a7e6130d530adbefb6a6507278098ff5" +dependencies = [ + "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-instructions", + "openvm-native-compiler", + "openvm-poseidon2-air", + "openvm-rv32im-circuit", + "openvm-stark-backend", + "openvm-stark-sdk", + "rand 0.8.5", + "serde", + "serde-big-array", + "static_assertions", + "strum", + "tracing", +] + +[[package]] +name = "openvm-native-compiler" +version = "1.1.1" +source = "git+https://github.com/openvm-org/openvm.git?tag=v1.1.1#2f9bf748a7e6130d530adbefb6a6507278098ff5" +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", + "openvm-stark-sdk", + "serde", + "snark-verifier-sdk", + "strum", + "strum_macros", + "zkhash 0.2.0 (git+https://github.com/HorizenLabs/poseidon2.git?rev=bb476b9)", +] + +[[package]] +name = "openvm-native-compiler-derive" +version = "1.1.1" +source = "git+https://github.com/openvm-org/openvm.git?tag=v1.1.1#2f9bf748a7e6130d530adbefb6a6507278098ff5" +dependencies = [ + "quote", + "syn 2.0.101", +] + +[[package]] +name = "openvm-native-recursion" +version = "1.1.1" +source = "git+https://github.com/openvm-org/openvm.git?tag=v1.1.1#2f9bf748a7e6130d530adbefb6a6507278098ff5" +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", + "openvm-stark-sdk", + "p3-dft 0.1.0", + "p3-fri 0.1.0", + "p3-merkle-tree 0.1.0", + "p3-symmetric 0.1.0", + "rand 0.8.5", + "serde", + "serde_json", + "serde_with", + "snark-verifier-sdk", + "tracing", +] + +[[package]] +name = "openvm-pairing-circuit" +version = "1.1.1" +source = "git+https://github.com/openvm-org/openvm.git?tag=v1.1.1#2f9bf748a7e6130d530adbefb6a6507278098ff5" +dependencies = [ + "derive-new 0.6.0", + "derive_more 1.0.0", + "eyre", + "itertools 0.14.0", + "num-bigint 0.4.6", + "num-traits", + "openvm-algebra-circuit", + "openvm-circuit", + "openvm-circuit-derive", + "openvm-circuit-primitives", + "openvm-circuit-primitives-derive", + "openvm-ecc-circuit", + "openvm-ecc-guest", + "openvm-instructions", + "openvm-mod-circuit-builder", + "openvm-pairing-guest", + "openvm-pairing-transpiler", + "openvm-rv32-adapters", + "openvm-rv32im-circuit", + "openvm-stark-backend", + "rand 0.8.5", + "serde", + "strum", +] + +[[package]] +name = "openvm-pairing-guest" +version = "1.1.1" +source = "git+https://github.com/openvm-org/openvm.git?tag=v1.1.1#2f9bf748a7e6130d530adbefb6a6507278098ff5" +dependencies = [ + "group 0.13.0", + "halo2curves-axiom", + "hex-literal", + "itertools 0.14.0", + "lazy_static", + "num-bigint 0.4.6", + "num-traits", + "openvm", + "openvm-algebra-complex-macros", + "openvm-algebra-guest", + "openvm-algebra-moduli-macros", + "openvm-custom-insn", + "openvm-ecc-guest", + "openvm-ecc-sw-macros", + "openvm-platform", + "openvm-rv32im-guest", + "rand 0.8.5", + "serde", + "strum_macros", +] + +[[package]] +name = "openvm-pairing-transpiler" +version = "1.1.1" +source = "git+https://github.com/openvm-org/openvm.git?tag=v1.1.1#2f9bf748a7e6130d530adbefb6a6507278098ff5" +dependencies = [ + "openvm-instructions", + "openvm-instructions-derive", + "openvm-pairing-guest", + "openvm-stark-backend", + "openvm-transpiler", + "rrs-lib", + "strum", +] + +[[package]] +name = "openvm-platform" +version = "1.1.1" +source = "git+https://github.com/openvm-org/openvm.git?tag=v1.1.1#2f9bf748a7e6130d530adbefb6a6507278098ff5" +dependencies = [ + "getrandom 0.2.16", + "libm", + "openvm-custom-insn", + "openvm-rv32im-guest", +] + +[[package]] +name = "openvm-poseidon2-air" +version = "1.1.1" +source = "git+https://github.com/openvm-org/openvm.git?tag=v1.1.1#2f9bf748a7e6130d530adbefb6a6507278098ff5" +dependencies = [ + "derivative", + "lazy_static", + "openvm-stark-backend", + "openvm-stark-sdk", + "p3-monty-31", + "p3-poseidon2 0.1.0", + "p3-poseidon2-air", + "p3-symmetric 0.1.0", + "rand 0.8.5", + "zkhash 0.2.0 (git+https://github.com/HorizenLabs/poseidon2.git?rev=bb476b9)", +] + +[[package]] +name = "openvm-rv32-adapters" +version = "1.1.1" +source = "git+https://github.com/openvm-org/openvm.git?tag=v1.1.1#2f9bf748a7e6130d530adbefb6a6507278098ff5" +dependencies = [ + "derive-new 0.6.0", + "itertools 0.14.0", + "openvm-circuit", + "openvm-circuit-primitives", + "openvm-circuit-primitives-derive", + "openvm-instructions", + "openvm-rv32im-circuit", + "openvm-stark-backend", + "openvm-stark-sdk", + "rand 0.8.5", + "serde", + "serde-big-array", + "serde_with", +] + +[[package]] +name = "openvm-rv32im-circuit" +version = "1.1.1" +source = "git+https://github.com/openvm-org/openvm.git?tag=v1.1.1#2f9bf748a7e6130d530adbefb6a6507278098ff5" +dependencies = [ + "derive-new 0.6.0", + "derive_more 1.0.0", + "eyre", + "num-bigint 0.4.6", + "num-integer", + "openvm-circuit", + "openvm-circuit-derive", + "openvm-circuit-primitives", + "openvm-circuit-primitives-derive", + "openvm-instructions", + "openvm-rv32im-transpiler", + "openvm-stark-backend", + "rand 0.8.5", + "serde", + "serde-big-array", + "strum", +] + +[[package]] +name = "openvm-rv32im-guest" +version = "1.1.1" +source = "git+https://github.com/openvm-org/openvm.git?tag=v1.1.1#2f9bf748a7e6130d530adbefb6a6507278098ff5" +dependencies = [ + "openvm-custom-insn", + "strum_macros", +] + +[[package]] +name = "openvm-rv32im-transpiler" +version = "1.1.1" +source = "git+https://github.com/openvm-org/openvm.git?tag=v1.1.1#2f9bf748a7e6130d530adbefb6a6507278098ff5" +dependencies = [ + "openvm-instructions", + "openvm-instructions-derive", + "openvm-rv32im-guest", + "openvm-stark-backend", + "openvm-transpiler", + "rrs-lib", + "serde", + "strum", + "tracing", +] + +[[package]] +name = "openvm-sdk" +version = "1.1.1" +source = "git+https://github.com/openvm-org/openvm.git?tag=v1.1.1#2f9bf748a7e6130d530adbefb6a6507278098ff5" +dependencies = [ + "async-trait", + "bitcode", + "bon", + "clap", + "derivative", + "derive_more 1.0.0", + "eyre", + "getset", + "hex", + "itertools 0.14.0", + "metrics", + "openvm", + "openvm-algebra-circuit", + "openvm-algebra-transpiler", + "openvm-bigint-circuit", + "openvm-bigint-transpiler", + "openvm-build", + "openvm-circuit", + "openvm-continuations", + "openvm-ecc-circuit", + "openvm-ecc-transpiler", + "openvm-keccak256-circuit", + "openvm-keccak256-transpiler", + "openvm-native-circuit", + "openvm-native-compiler", + "openvm-native-recursion", + "openvm-pairing-circuit", + "openvm-pairing-transpiler", + "openvm-rv32im-circuit", + "openvm-rv32im-transpiler", + "openvm-sha256-circuit", + "openvm-sha256-transpiler", + "openvm-stark-backend", + "openvm-stark-sdk", + "openvm-transpiler", + "p3-fri 0.1.0", + "serde", + "serde_json", + "serde_with", + "snark-verifier", + "snark-verifier-sdk", + "tempfile", + "thiserror 1.0.69", + "tracing", +] + +[[package]] +name = "openvm-sha256-air" +version = "1.1.1" +source = "git+https://github.com/openvm-org/openvm.git?tag=v1.1.1#2f9bf748a7e6130d530adbefb6a6507278098ff5" +dependencies = [ + "openvm-circuit-primitives", + "openvm-stark-backend", + "rand 0.8.5", + "sha2", +] + +[[package]] +name = "openvm-sha256-circuit" +version = "1.1.1" +source = "git+https://github.com/openvm-org/openvm.git?tag=v1.1.1#2f9bf748a7e6130d530adbefb6a6507278098ff5" +dependencies = [ + "derive-new 0.6.0", + "derive_more 1.0.0", + "openvm-circuit", + "openvm-circuit-derive", + "openvm-circuit-primitives", + "openvm-circuit-primitives-derive", + "openvm-instructions", + "openvm-rv32im-circuit", + "openvm-sha256-air", + "openvm-sha256-transpiler", + "openvm-stark-backend", + "openvm-stark-sdk", + "rand 0.8.5", + "serde", + "sha2", + "strum", +] + +[[package]] +name = "openvm-sha256-guest" +version = "1.1.1" +source = "git+https://github.com/openvm-org/openvm.git?tag=v1.1.1#2f9bf748a7e6130d530adbefb6a6507278098ff5" +dependencies = [ + "openvm-platform", + "sha2", +] + +[[package]] +name = "openvm-sha256-transpiler" +version = "1.1.1" +source = "git+https://github.com/openvm-org/openvm.git?tag=v1.1.1#2f9bf748a7e6130d530adbefb6a6507278098ff5" +dependencies = [ + "openvm-instructions", + "openvm-instructions-derive", + "openvm-sha256-guest", + "openvm-stark-backend", + "openvm-transpiler", + "rrs-lib", + "strum", +] + +[[package]] +name = "openvm-stark-backend" +version = "1.0.0" +source = "git+https://github.com/openvm-org/stark-backend.git?tag=v1.0.1#e540dbdd09ef20db7207ad7f2674bece75a2b803" +dependencies = [ + "bitcode", + "cfg-if", + "derivative", + "derive-new 0.7.0", + "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.1", + "serde", + "thiserror 1.0.69", + "tracing", +] + +[[package]] +name = "openvm-stark-sdk" +version = "1.0.0" +source = "git+https://github.com/openvm-org/stark-backend.git?tag=v1.0.1#e540dbdd09ef20db7207ad7f2674bece75a2b803" +dependencies = [ + "derivative", + "derive_more 0.99.20", + "ff 0.13.1", + "itertools 0.14.0", + "metrics", + "metrics-tracing-context", + "metrics-util", + "openvm-stark-backend", + "p3-baby-bear 0.1.0", + "p3-blake3", + "p3-bn254-fr 0.1.0", + "p3-dft 0.1.0", + "p3-fri 0.1.0", + "p3-goldilocks", + "p3-keccak", + "p3-koala-bear", + "p3-merkle-tree 0.1.0", + "p3-poseidon", + "p3-poseidon2 0.1.0", + "p3-symmetric 0.1.0", + "rand 0.8.5", + "serde", + "serde_json", + "static_assertions", + "toml", + "tracing", + "tracing-forest", + "tracing-subscriber", + "zkhash 0.2.0 (git+https://github.com/HorizenLabs/poseidon2.git?rev=bb476b9)", +] + +[[package]] +name = "openvm-transpiler" +version = "1.1.1" +source = "git+https://github.com/openvm-org/openvm.git?tag=v1.1.1#2f9bf748a7e6130d530adbefb6a6507278098ff5" +dependencies = [ + "elf", + "eyre", + "openvm-instructions", + "openvm-platform", + "openvm-stark-backend", + "rrs-lib", + "thiserror 1.0.69", +] + [[package]] name = "option-ext" version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" +[[package]] +name = "ordered-float" +version = "4.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7bb71e1b3fa6ca1c61f383464aaf2bb0e2f8e772a1f01d486832464de363b951" +dependencies = [ + "num-traits", +] + [[package]] name = "overload" version = "0.1.1" @@ -2945,14 +4208,37 @@ dependencies = [ "sha2", ] +[[package]] +name = "p3-air" +version = "0.1.0" +source = "git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c#1ba4e5c40417f4f7aae86bcca56b6484b4b2490b" +dependencies = [ + "p3-field 0.1.0", + "p3-matrix 0.1.0", +] + [[package]] name = "p3-air" version = "0.2.2-succinct" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3b3079235eaa131553ae7ff992317ebeb1d431d238896315672869570ef0c38d" dependencies = [ - "p3-field", - "p3-matrix", + "p3-field 0.2.2-succinct", + "p3-matrix 0.2.2-succinct", +] + +[[package]] +name = "p3-baby-bear" +version = "0.1.0" +source = "git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c#1ba4e5c40417f4f7aae86bcca56b6484b4b2490b" +dependencies = [ + "p3-field 0.1.0", + "p3-mds 0.1.0", + "p3-monty-31", + "p3-poseidon2 0.1.0", + "p3-symmetric 0.1.0", + "rand 0.8.5", + "serde", ] [[package]] @@ -2962,10 +4248,35 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "49ecc3edc6fb8186268e05031c26a8b2b1e567957d63adcae1026d55d6bb189b" dependencies = [ "num-bigint 0.4.6", - "p3-field", - "p3-mds", - "p3-poseidon2", - "p3-symmetric", + "p3-field 0.2.2-succinct", + "p3-mds 0.2.2-succinct", + "p3-poseidon2 0.2.2-succinct", + "p3-symmetric 0.2.2-succinct", + "rand 0.8.5", + "serde", +] + +[[package]] +name = "p3-blake3" +version = "0.1.0" +source = "git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c#1ba4e5c40417f4f7aae86bcca56b6484b4b2490b" +dependencies = [ + "blake3", + "p3-symmetric 0.1.0", + "p3-util 0.1.0", +] + +[[package]] +name = "p3-bn254-fr" +version = "0.1.0" +source = "git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c#1ba4e5c40417f4f7aae86bcca56b6484b4b2490b" +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", ] @@ -2978,27 +4289,53 @@ checksum = "80e3df8d85259448803639657a4aafdf4caad9422f9be6264187f179fa0bc761" dependencies = [ "ff 0.13.1", "num-bigint 0.4.6", - "p3-field", - "p3-poseidon2", - "p3-symmetric", + "p3-field 0.2.2-succinct", + "p3-poseidon2 0.2.2-succinct", + "p3-symmetric 0.2.2-succinct", "rand 0.8.5", "serde", ] +[[package]] +name = "p3-challenger" +version = "0.1.0" +source = "git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c#1ba4e5c40417f4f7aae86bcca56b6484b4b2490b" +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.2-succinct" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "11466fe23e14dd6d61512c8ce5a068de87e3d92954058b05b24ae12b7824a960" dependencies = [ - "p3-field", - "p3-maybe-rayon", - "p3-symmetric", - "p3-util", + "p3-field 0.2.2-succinct", + "p3-maybe-rayon 0.2.2-succinct", + "p3-symmetric 0.2.2-succinct", + "p3-util 0.2.2-succinct", "serde", "tracing", ] +[[package]] +name = "p3-commit" +version = "0.1.0" +source = "git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c#1ba4e5c40417f4f7aae86bcca56b6484b4b2490b" +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.2-succinct" @@ -3006,23 +4343,53 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "30877bdc426bfa5ebb0033dbc45ba1b083dfeb0db7ad7628c72a5be7562324ce" dependencies = [ "itertools 0.12.1", - "p3-challenger", - "p3-field", - "p3-matrix", - "p3-util", + "p3-challenger 0.2.2-succinct", + "p3-field 0.2.2-succinct", + "p3-matrix 0.2.2-succinct", + "p3-util 0.2.2-succinct", "serde", ] +[[package]] +name = "p3-dft" +version = "0.1.0" +source = "git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c#1ba4e5c40417f4f7aae86bcca56b6484b4b2490b" +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.2-succinct" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eece7b035978976138622b116fefe6c4cc372b1ce70739c40e7a351a9bb68f1f" dependencies = [ - "p3-field", - "p3-matrix", - "p3-maybe-rayon", - "p3-util", + "p3-field 0.2.2-succinct", + "p3-matrix 0.2.2-succinct", + "p3-maybe-rayon 0.2.2-succinct", + "p3-util 0.2.2-succinct", + "tracing", +] + +[[package]] +name = "p3-field" +version = "0.1.0" +source = "git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c#1ba4e5c40417f4f7aae86bcca56b6484b4b2490b" +dependencies = [ + "itertools 0.14.0", + "num-bigint 0.4.6", + "num-integer", + "num-traits", + "nums", + "p3-maybe-rayon 0.1.0", + "p3-util 0.1.0", + "rand 0.8.5", + "serde", "tracing", ] @@ -3035,11 +4402,30 @@ dependencies = [ "itertools 0.12.1", "num-bigint 0.4.6", "num-traits", - "p3-util", + "p3-util 0.2.2-succinct", "rand 0.8.5", "serde", ] +[[package]] +name = "p3-fri" +version = "0.1.0" +source = "git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c#1ba4e5c40417f4f7aae86bcca56b6484b4b2490b" +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.2-succinct" @@ -3047,27 +4433,81 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "07df36a633712e2a73387674a7e1922f3e58bc28b4e55359b2d3749e146f8faa" dependencies = [ "itertools 0.12.1", - "p3-challenger", - "p3-commit", - "p3-dft", - "p3-field", - "p3-interpolation", - "p3-matrix", - "p3-maybe-rayon", - "p3-util", + "p3-challenger 0.2.2-succinct", + "p3-commit 0.2.2-succinct", + "p3-dft 0.2.2-succinct", + "p3-field 0.2.2-succinct", + "p3-interpolation 0.2.2-succinct", + "p3-matrix 0.2.2-succinct", + "p3-maybe-rayon 0.2.2-succinct", + "p3-util 0.2.2-succinct", "serde", "tracing", ] +[[package]] +name = "p3-goldilocks" +version = "0.1.0" +source = "git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c#1ba4e5c40417f4f7aae86bcca56b6484b4b2490b" +dependencies = [ + "num-bigint 0.4.6", + "p3-dft 0.1.0", + "p3-field 0.1.0", + "p3-mds 0.1.0", + "p3-poseidon", + "p3-poseidon2 0.1.0", + "p3-symmetric 0.1.0", + "p3-util 0.1.0", + "rand 0.8.5", + "serde", +] + +[[package]] +name = "p3-interpolation" +version = "0.1.0" +source = "git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c#1ba4e5c40417f4f7aae86bcca56b6484b4b2490b" +dependencies = [ + "p3-field 0.1.0", + "p3-matrix 0.1.0", + "p3-maybe-rayon 0.1.0", + "p3-util 0.1.0", +] + [[package]] name = "p3-interpolation" version = "0.2.2-succinct" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a09b01809167d6e39e8a34779eb2d5fca50d0ff7b2d13661953b46dc74bf1619" dependencies = [ - "p3-field", - "p3-matrix", - "p3-util", + "p3-field 0.2.2-succinct", + "p3-matrix 0.2.2-succinct", + "p3-util 0.2.2-succinct", +] + +[[package]] +name = "p3-keccak" +version = "0.1.0" +source = "git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c#1ba4e5c40417f4f7aae86bcca56b6484b4b2490b" +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-air" +version = "0.1.0" +source = "git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c#1ba4e5c40417f4f7aae86bcca56b6484b4b2490b" +dependencies = [ + "p3-air 0.1.0", + "p3-field 0.1.0", + "p3-matrix 0.1.0", + "p3-maybe-rayon 0.1.0", + "p3-util 0.1.0", + "rand 0.8.5", + "tracing", ] [[package]] @@ -3076,14 +4516,43 @@ version = "0.2.2-succinct" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d9f6bacf49ba7c1d9c436994ace80a96c3532462c655e4339919d5b397035e56" dependencies = [ - "p3-air", - "p3-field", - "p3-matrix", - "p3-maybe-rayon", - "p3-util", + "p3-air 0.2.2-succinct", + "p3-field 0.2.2-succinct", + "p3-matrix 0.2.2-succinct", + "p3-maybe-rayon 0.2.2-succinct", + "p3-util 0.2.2-succinct", "tracing", ] +[[package]] +name = "p3-koala-bear" +version = "0.1.0" +source = "git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c#1ba4e5c40417f4f7aae86bcca56b6484b4b2490b" +dependencies = [ + "p3-field 0.1.0", + "p3-mds 0.1.0", + "p3-monty-31", + "p3-poseidon2 0.1.0", + "p3-symmetric 0.1.0", + "rand 0.8.5", + "serde", +] + +[[package]] +name = "p3-matrix" +version = "0.1.0" +source = "git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c#1ba4e5c40417f4f7aae86bcca56b6484b4b2490b" +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.2-succinct" @@ -3091,14 +4560,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "60961b4d7ffd2e8412ce4e66e213de610356df71cc4e396519c856a664138a27" dependencies = [ "itertools 0.12.1", - "p3-field", - "p3-maybe-rayon", - "p3-util", + "p3-field 0.2.2-succinct", + "p3-maybe-rayon 0.2.2-succinct", + "p3-util 0.2.2-succinct", "rand 0.8.5", "serde", "tracing", ] +[[package]] +name = "p3-maybe-rayon" +version = "0.1.0" +source = "git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c#1ba4e5c40417f4f7aae86bcca56b6484b4b2490b" +dependencies = [ + "rayon", +] + [[package]] name = "p3-maybe-rayon" version = "0.2.2-succinct" @@ -3108,6 +4585,20 @@ dependencies = [ "rayon", ] +[[package]] +name = "p3-mds" +version = "0.1.0" +source = "git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c#1ba4e5c40417f4f7aae86bcca56b6484b4b2490b" +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.2-succinct" @@ -3115,14 +4606,31 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4127956cc6c783b7d021c5c42d5d89456d5f3bda4a7b165fcc2a3fd4e78fbede" dependencies = [ "itertools 0.12.1", - "p3-dft", - "p3-field", - "p3-matrix", - "p3-symmetric", - "p3-util", + "p3-dft 0.2.2-succinct", + "p3-field 0.2.2-succinct", + "p3-matrix 0.2.2-succinct", + "p3-symmetric 0.2.2-succinct", + "p3-util 0.2.2-succinct", "rand 0.8.5", ] +[[package]] +name = "p3-merkle-tree" +version = "0.1.0" +source = "git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c#1ba4e5c40417f4f7aae86bcca56b6484b4b2490b" +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.2-succinct" @@ -3130,16 +4638,60 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "74f7eff1ddec74ee4178b40b2b4630f4bf5a02abf2d9619c8c4f8295e59d02a1" dependencies = [ "itertools 0.12.1", - "p3-commit", - "p3-field", - "p3-matrix", - "p3-maybe-rayon", - "p3-symmetric", - "p3-util", + "p3-commit 0.2.2-succinct", + "p3-field 0.2.2-succinct", + "p3-matrix 0.2.2-succinct", + "p3-maybe-rayon 0.2.2-succinct", + "p3-symmetric 0.2.2-succinct", + "p3-util 0.2.2-succinct", "serde", "tracing", ] +[[package]] +name = "p3-monty-31" +version = "0.1.0" +source = "git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c#1ba4e5c40417f4f7aae86bcca56b6484b4b2490b" +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-poseidon" +version = "0.1.0" +source = "git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c#1ba4e5c40417f4f7aae86bcca56b6484b4b2490b" +dependencies = [ + "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.1.0" +source = "git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c#1ba4e5c40417f4f7aae86bcca56b6484b4b2490b" +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.2-succinct" @@ -3147,13 +4699,39 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "be09497da406a98e89dc05c1ce539eeef29541bad61a5b2108a44ffe94dd0b4c" dependencies = [ "gcd", - "p3-field", - "p3-mds", - "p3-symmetric", + "p3-field 0.2.2-succinct", + "p3-mds 0.2.2-succinct", + "p3-symmetric 0.2.2-succinct", "rand 0.8.5", "serde", ] +[[package]] +name = "p3-poseidon2-air" +version = "0.1.0" +source = "git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c#1ba4e5c40417f4f7aae86bcca56b6484b4b2490b" +dependencies = [ + "p3-air 0.1.0", + "p3-field 0.1.0", + "p3-matrix 0.1.0", + "p3-maybe-rayon 0.1.0", + "p3-poseidon2 0.1.0", + "p3-util 0.1.0", + "rand 0.8.5", + "tikv-jemallocator", + "tracing", +] + +[[package]] +name = "p3-symmetric" +version = "0.1.0" +source = "git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c#1ba4e5c40417f4f7aae86bcca56b6484b4b2490b" +dependencies = [ + "itertools 0.14.0", + "p3-field 0.1.0", + "serde", +] + [[package]] name = "p3-symmetric" version = "0.2.2-succinct" @@ -3161,10 +4739,28 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6e7d954033f657d48490344ca4b3dbcc054962a0e92831b736666bb2f5e5820b" dependencies = [ "itertools 0.12.1", - "p3-field", + "p3-field 0.2.2-succinct", "serde", ] +[[package]] +name = "p3-uni-stark" +version = "0.1.0" +source = "git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c#1ba4e5c40417f4f7aae86bcca56b6484b4b2490b" +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.2-succinct" @@ -3172,18 +4768,26 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "064b3923492d182e768dff8a19a36d7742b0166dbff75455fdc99187d3115dd3" dependencies = [ "itertools 0.12.1", - "p3-air", - "p3-challenger", - "p3-commit", - "p3-dft", - "p3-field", - "p3-matrix", - "p3-maybe-rayon", - "p3-util", + "p3-air 0.2.2-succinct", + "p3-challenger 0.2.2-succinct", + "p3-commit 0.2.2-succinct", + "p3-dft 0.2.2-succinct", + "p3-field 0.2.2-succinct", + "p3-matrix 0.2.2-succinct", + "p3-maybe-rayon 0.2.2-succinct", + "p3-util 0.2.2-succinct", "serde", "tracing", ] +[[package]] +name = "p3-util" +version = "0.1.0" +source = "git+https://github.com/Plonky3/Plonky3.git?rev=1ba4e5c#1ba4e5c40417f4f7aae86bcca56b6484b4b2490b" +dependencies = [ + "serde", +] + [[package]] name = "p3-util" version = "0.2.2-succinct" @@ -3202,6 +4806,15 @@ dependencies = [ "group 0.12.1", ] +[[package]] +name = "pairing" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81fec4625e73cf41ef4bb6846cafa6d44736525f442ba45e407c4a000a13996f" +dependencies = [ + "group 0.13.0", +] + [[package]] name = "parity-scale-codec" version = "3.7.4" @@ -3369,6 +4982,21 @@ version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "350e9b48cbc6b0e028b0473b114454c6316e57336ee184ceab6e53f72c178b3e" +[[package]] +name = "poseidon-primitives" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e4aaeda7a092e21165cc5f0cbc738e72a46f31c03c3cbd87b71ceae9d2d93bc" +dependencies = [ + "bitvec", + "ff 0.13.1", + "lazy_static", + "log", + "rand 0.8.5", + "rand_xorshift", + "thiserror 1.0.69", +] + [[package]] name = "potential_utf" version = "0.1.2" @@ -3516,6 +5144,21 @@ dependencies = [ "syn 2.0.101", ] +[[package]] +name = "quanta" +version = "0.12.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3bd1fe6824cea6538803de3ff1bc0cf3949024db3d43c9643024bfb33a807c0e" +dependencies = [ + "crossbeam-utils", + "libc", + "once_cell", + "raw-cpuid", + "wasi 0.11.0+wasi-snapshot-preview1", + "web-sys", + "winapi", +] + [[package]] name = "quick-error" version = "1.2.3" @@ -3598,6 +5241,16 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" +[[package]] +name = "radix_trie" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c069c179fcdc6a2fe24d8d18305cf085fdbd4f922c041943e203685d6a1c58fd" +dependencies = [ + "endian-type", + "nibble_vec", +] + [[package]] name = "rand" version = "0.8.5" @@ -3681,6 +5334,15 @@ dependencies = [ "num-traits", ] +[[package]] +name = "raw-cpuid" +version = "11.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6df7ab838ed27997ba19a4664507e6f82b41fe6e20be42929332156e5e85146" +dependencies = [ + "bitflags", +] + [[package]] name = "rayon" version = "1.10.0" @@ -3868,6 +5530,16 @@ dependencies = [ "rustc-hex", ] +[[package]] +name = "rrs-lib" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4382d3af3a4ebdae7f64ba6edd9114fff92c89808004c4943b393377a25d001" +dependencies = [ + "downcast-rs", + "paste", +] + [[package]] name = "rrs-succinct" version = "0.1.0" @@ -4176,6 +5848,24 @@ dependencies = [ "serde_derive", ] +[[package]] +name = "serde-big-array" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11fc7cc2c76d73e0f27ee52abbd64eec84d46f370c88371120433196934e4b7f" +dependencies = [ + "serde", +] + +[[package]] +name = "serde_arrays" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38636132857f68ec3d5f3eb121166d2af33cb55174c4d5ff645db6165cbef0fd" +dependencies = [ + "serde", +] + [[package]] name = "serde_derive" version = "1.0.219" @@ -4366,6 +6056,12 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9fed904c7fb2856d868b92464fc8fa597fce366edea1a9cbfaa8cb5fe080bd6d" +[[package]] +name = "sketches-ddsketch" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85636c14b73d81f541e525f585c0a2109e6744e1565b5c1668e31c70c10ed65c" + [[package]] name = "slab" version = "0.4.9" @@ -4384,6 +6080,47 @@ dependencies = [ "serde", ] +[[package]] +name = "snark-verifier" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d798d8ce8e29b8820ecc1028ac44cc4fc0f0296728af6fe6a0c4db05782c0a4" +dependencies = [ + "halo2-base", + "halo2-ecc", + "hex", + "itertools 0.11.0", + "lazy_static", + "num-bigint 0.4.6", + "num-integer", + "num-traits", + "pairing 0.23.0", + "rand 0.8.5", + "serde", +] + +[[package]] +name = "snark-verifier-sdk" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a338d065044702bf751e87cf353daac63e2fc4c53a3e323cbcd98c603ee6e66c" +dependencies = [ + "bincode", + "getset", + "halo2-base", + "hex", + "itertools 0.11.0", + "lazy_static", + "num-bigint 0.4.6", + "num-integer", + "num-traits", + "rand 0.8.5", + "rand_chacha 0.3.1", + "serde", + "serde_json", + "snark-verifier", +] + [[package]] name = "snowbridge-amcl" version = "1.0.2" @@ -4434,10 +6171,10 @@ dependencies = [ "itertools 0.13.0", "nohash-hasher", "num", - "p3-baby-bear", - "p3-field", - "p3-maybe-rayon", - "p3-util", + "p3-baby-bear 0.2.2-succinct", + "p3-field 0.2.2-succinct", + "p3-maybe-rayon 0.2.2-succinct", + "p3-util 0.2.2-succinct", "rand 0.8.5", "range-set-blaze", "rrs-succinct", @@ -4476,17 +6213,17 @@ dependencies = [ "num", "num_cpus", "p256", - "p3-air", - "p3-baby-bear", - "p3-challenger", - "p3-field", - "p3-keccak-air", - "p3-matrix", - "p3-maybe-rayon", - "p3-poseidon2", - "p3-symmetric", - "p3-uni-stark", - "p3-util", + "p3-air 0.2.2-succinct", + "p3-baby-bear 0.2.2-succinct", + "p3-challenger 0.2.2-succinct", + "p3-field 0.2.2-succinct", + "p3-keccak-air 0.2.2-succinct", + "p3-matrix 0.2.2-succinct", + "p3-maybe-rayon 0.2.2-succinct", + "p3-poseidon2 0.2.2-succinct", + "p3-symmetric 0.2.2-succinct", + "p3-uni-stark 0.2.2-succinct", + "p3-util 0.2.2-succinct", "pathdiff", "rand 0.8.5", "rayon", @@ -4543,7 +6280,7 @@ dependencies = [ "k256", "num", "p256", - "p3-field", + "p3-field 0.2.2-succinct", "serde", "snowbridge-amcl", "sp1-primitives", @@ -4573,10 +6310,10 @@ dependencies = [ "hex", "lazy_static", "num-bigint 0.4.6", - "p3-baby-bear", - "p3-field", - "p3-poseidon2", - "p3-symmetric", + "p3-baby-bear 0.2.2-succinct", + "p3-field 0.2.2-succinct", + "p3-poseidon2 0.2.2-succinct", + "p3-symmetric 0.2.2-succinct", "serde", "sha2", ] @@ -4599,14 +6336,14 @@ dependencies = [ "itertools 0.13.0", "lru", "num-bigint 0.4.6", - "p3-baby-bear", - "p3-bn254-fr", - "p3-challenger", - "p3-commit", - "p3-field", - "p3-matrix", - "p3-symmetric", - "p3-util", + "p3-baby-bear 0.2.2-succinct", + "p3-bn254-fr 0.2.2-succinct", + "p3-challenger 0.2.2-succinct", + "p3-commit 0.2.2-succinct", + "p3-field 0.2.2-succinct", + "p3-matrix 0.2.2-succinct", + "p3-symmetric 0.2.2-succinct", + "p3-util 0.2.2-succinct", "rayon", "serde", "serde_json", @@ -4635,18 +6372,18 @@ dependencies = [ "hashbrown 0.14.5", "itertools 0.13.0", "num-traits", - "p3-air", - "p3-baby-bear", - "p3-bn254-fr", - "p3-challenger", - "p3-commit", - "p3-dft", - "p3-field", - "p3-fri", - "p3-matrix", - "p3-symmetric", - "p3-uni-stark", - "p3-util", + "p3-air 0.2.2-succinct", + "p3-baby-bear 0.2.2-succinct", + "p3-bn254-fr 0.2.2-succinct", + "p3-challenger 0.2.2-succinct", + "p3-commit 0.2.2-succinct", + "p3-dft 0.2.2-succinct", + "p3-field 0.2.2-succinct", + "p3-fri 0.2.2-succinct", + "p3-matrix 0.2.2-succinct", + "p3-symmetric 0.2.2-succinct", + "p3-uni-stark 0.2.2-succinct", + "p3-util 0.2.2-succinct", "rand 0.8.5", "rayon", "serde", @@ -4669,10 +6406,10 @@ checksum = "d630ab95063c1cf52668b23cdae8a216f5749604c3b063f5cdec20ef2c60d086" dependencies = [ "backtrace", "itertools 0.13.0", - "p3-baby-bear", - "p3-bn254-fr", - "p3-field", - "p3-symmetric", + "p3-baby-bear 0.2.2-succinct", + "p3-bn254-fr 0.2.2-succinct", + "p3-field 0.2.2-succinct", + "p3-symmetric 0.2.2-succinct", "serde", "sp1-core-machine", "sp1-primitives", @@ -4698,20 +6435,20 @@ dependencies = [ "hashbrown 0.14.5", "itertools 0.13.0", "num_cpus", - "p3-air", - "p3-baby-bear", - "p3-bn254-fr", - "p3-challenger", - "p3-commit", - "p3-dft", - "p3-field", - "p3-fri", - "p3-matrix", - "p3-maybe-rayon", - "p3-merkle-tree", - "p3-poseidon2", - "p3-symmetric", - "p3-util", + "p3-air 0.2.2-succinct", + "p3-baby-bear 0.2.2-succinct", + "p3-bn254-fr 0.2.2-succinct", + "p3-challenger 0.2.2-succinct", + "p3-commit 0.2.2-succinct", + "p3-dft 0.2.2-succinct", + "p3-field 0.2.2-succinct", + "p3-fri 0.2.2-succinct", + "p3-matrix 0.2.2-succinct", + "p3-maybe-rayon 0.2.2-succinct", + "p3-merkle-tree 0.2.2-succinct", + "p3-poseidon2 0.2.2-succinct", + "p3-symmetric 0.2.2-succinct", + "p3-util 0.2.2-succinct", "pathdiff", "rand 0.8.5", "serde", @@ -4723,7 +6460,7 @@ dependencies = [ "thiserror 1.0.69", "tracing", "vec_map", - "zkhash", + "zkhash 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -4749,9 +6486,9 @@ dependencies = [ "cfg-if", "hex", "num-bigint 0.4.6", - "p3-baby-bear", - "p3-field", - "p3-symmetric", + "p3-baby-bear 0.2.2-succinct", + "p3-field 0.2.2-succinct", + "p3-symmetric 0.2.2-succinct", "serde", "serde_json", "sha2", @@ -4785,9 +6522,9 @@ dependencies = [ "indicatif", "itertools 0.13.0", "k256", - "p3-baby-bear", - "p3-field", - "p3-fri", + "p3-baby-bear 0.2.2-succinct", + "p3-field 0.2.2-succinct", + "p3-fri 0.2.2-succinct", "prost", "reqwest", "reqwest-middleware", @@ -4821,20 +6558,20 @@ dependencies = [ "itertools 0.13.0", "num-bigint 0.4.6", "num-traits", - "p3-air", - "p3-baby-bear", - "p3-challenger", - "p3-commit", - "p3-dft", - "p3-field", - "p3-fri", - "p3-matrix", - "p3-maybe-rayon", - "p3-merkle-tree", - "p3-poseidon2", - "p3-symmetric", - "p3-uni-stark", - "p3-util", + "p3-air 0.2.2-succinct", + "p3-baby-bear 0.2.2-succinct", + "p3-challenger 0.2.2-succinct", + "p3-commit 0.2.2-succinct", + "p3-dft 0.2.2-succinct", + "p3-field 0.2.2-succinct", + "p3-fri 0.2.2-succinct", + "p3-matrix 0.2.2-succinct", + "p3-maybe-rayon 0.2.2-succinct", + "p3-merkle-tree 0.2.2-succinct", + "p3-poseidon2 0.2.2-succinct", + "p3-symmetric 0.2.2-succinct", + "p3-uni-stark 0.2.2-succinct", + "p3-util 0.2.2-succinct", "rayon-scan", "serde", "sp1-derive", @@ -4873,6 +6610,12 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" +[[package]] +name = "strength_reduce" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe895eb47f22e2ddd4dabc02bce419d2e643c8e3b585c78158b349195bc24d82" + [[package]] name = "strsim" version = "0.11.1" @@ -5007,6 +6750,39 @@ dependencies = [ "windows-sys 0.59.0", ] +[[package]] +name = "test-case" +version = "3.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eb2550dd13afcd286853192af8601920d959b14c401fcece38071d53bf0768a8" +dependencies = [ + "test-case-macros", +] + +[[package]] +name = "test-case-core" +version = "3.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adcb7fd841cd518e279be3d5a3eb0636409487998a4aff22f3de87b81e88384f" +dependencies = [ + "cfg-if", + "proc-macro2", + "quote", + "syn 2.0.101", +] + +[[package]] +name = "test-case-macros" +version = "3.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c89e72a01ed4c579669add59014b9a524d609c0c88c6a585ce37485879f6ffb" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.101", + "test-case-core", +] + [[package]] name = "thiserror" version = "1.0.69" @@ -5066,6 +6842,26 @@ dependencies = [ "num_cpus", ] +[[package]] +name = "tikv-jemalloc-sys" +version = "0.6.0+5.3.0-1-ge13ca993e8ccb9ba9847cc330696e02839f328f7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd3c60906412afa9c2b5b5a48ca6a5abe5736aec9eb48ad05037a677e52e4e2d" +dependencies = [ + "cc", + "libc", +] + +[[package]] +name = "tikv-jemallocator" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cec5ff18518d81584f477e9bfdf957f5bb0979b0bac3af4ca30b5b3ae2d2865" +dependencies = [ + "libc", + "tikv-jemalloc-sys", +] + [[package]] name = "time" version = "0.3.41" @@ -5414,6 +7210,16 @@ dependencies = [ "tracing-log", ] +[[package]] +name = "transpose" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ad61aed86bc3faea4300c7aee358b4c6d0c8d6ccc36524c96e4c92ccf26e77e" +dependencies = [ + "num-integer", + "strength_reduce", +] + [[package]] name = "try-lock" version = "0.2.5" @@ -5490,6 +7296,16 @@ version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" +[[package]] +name = "unroll" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ad948c1cb799b1a70f836077721a92a35ac177d4daddf4c20a633786d4cf618" +dependencies = [ + "quote", + "syn 1.0.109", +] + [[package]] name = "untrusted" version = "0.9.0" @@ -6214,6 +8030,32 @@ dependencies = [ "subtle", ] +[[package]] +name = "zkhash" +version = "0.2.0" +source = "git+https://github.com/HorizenLabs/poseidon2.git?rev=bb476b9#bb476b9ca38198cf5092487283c8b8c5d4317c4e" +dependencies = [ + "ark-ff 0.4.2", + "ark-std 0.4.0", + "bitvec", + "blake2", + "bls12_381", + "byteorder", + "cfg-if", + "group 0.12.1", + "group 0.13.0", + "halo2", + "hex", + "jubjub", + "lazy_static", + "pasta_curves 0.5.1", + "rand 0.8.5", + "serde", + "sha2", + "sha3", + "subtle", +] + [[package]] name = "zkvm-interface" version = "0.1.0" diff --git a/Cargo.toml b/Cargo.toml index d8da53d..a90eb9c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -3,7 +3,8 @@ members = [ # zkVM interface "crates/zkvm-interface", # zkVMs - "crates/ere-sp1", "crates/ere-risczero", + "crates/ere-sp1", + "crates/ere-risczero", "crates/ere-openvm", ] resolver = "2" diff --git a/crates/ere-openvm/Cargo.toml b/crates/ere-openvm/Cargo.toml new file mode 100644 index 0000000..d78f5d1 --- /dev/null +++ b/crates/ere-openvm/Cargo.toml @@ -0,0 +1,20 @@ +[package] +name = "ere-openvm" +version.workspace = true +edition.workspace = true +rust-version.workspace = true +license.workspace = true + +[dependencies] +zkvm-interface = { workspace = true } + +openvm-sdk = { git = "https://github.com/openvm-org/openvm.git", tag = "v1.1.1", default-features = false } +openvm-circuit = { git = "https://github.com/openvm-org/openvm.git", tag = "v1.1.1", default-features = false } +openvm-stark-sdk = { git = "https://github.com/openvm-org/stark-backend.git", tag = "v1.0.1" } +openvm-build = { git = "https://github.com/openvm-org/openvm.git", tag = "v1.1.1", default-features = false } +openvm-transpiler = { git = "https://github.com/openvm-org/openvm.git", tag = "v1.1.1", default-features = false } + +thiserror = "2" + +[lints] +workspace = true diff --git a/crates/ere-openvm/src/error.rs b/crates/ere-openvm/src/error.rs new file mode 100644 index 0000000..5f32748 --- /dev/null +++ b/crates/ere-openvm/src/error.rs @@ -0,0 +1,22 @@ +use thiserror::Error; + +#[derive(Debug, Error)] +pub enum OpenVMError { + #[error(transparent)] + Compile(#[from] CompileError), + + #[error(transparent)] + Verify(#[from] VerifyError), +} + +#[derive(Debug, Error)] +pub enum CompileError { + #[error("OpenVM execution failed: {0}")] + Client(#[source] Box), +} + +#[derive(Debug, Error)] +pub enum VerifyError { + #[error("OpenVM verification failed: {0}")] + Client(#[source] Box), +} diff --git a/crates/ere-openvm/src/lib.rs b/crates/ere-openvm/src/lib.rs new file mode 100644 index 0000000..a56cf3d --- /dev/null +++ b/crates/ere-openvm/src/lib.rs @@ -0,0 +1,208 @@ +use openvm_build::GuestOptions; +use openvm_circuit::arch::ContinuationVmProof; +use openvm_sdk::{ + Sdk, StdIn, + codec::{Decode, Encode}, + config::{AppConfig, SdkVmConfig}, + prover::AppProver, +}; +use openvm_stark_sdk::config::{ + FriParameters, baby_bear_poseidon2::BabyBearPoseidon2Config, + baby_bear_poseidon2::BabyBearPoseidon2Engine, +}; +use openvm_transpiler::elf::Elf; +use zkvm_interface::{Compiler, ProgramExecutionReport, ProgramProvingReport, zkVM}; + +mod error; +use error::{CompileError, OpenVMError, VerifyError}; + +#[allow(non_camel_case_types)] +pub struct OPENVM_TARGET; + +impl Compiler for OPENVM_TARGET { + type Error = OpenVMError; + + type Program = Elf; + + fn compile(path_to_program: &std::path::Path) -> Result { + let sdk = Sdk::new(); + + // Build the guest crate + let elf: Elf = sdk + .build( + GuestOptions::default(), + path_to_program, + &Default::default(), + ) + .map_err(|e| CompileError::Client(e.into()))?; + // TODO: note that this does not transpile (check to see how expensive that is) + + Ok(elf) + } +} + +pub struct EreOpenVM; + +impl zkVM for EreOpenVM { + type Error = OpenVMError; + + fn execute( + program: &::Program, + inputs: &zkvm_interface::Input, + ) -> Result { + let sdk = Sdk::new(); + let vm_cfg = SdkVmConfig::builder() + .system(Default::default()) + .rv32i(Default::default()) + .rv32m(Default::default()) + .io(Default::default()) + .build(); + + let exe = sdk + .transpile(program.clone(), vm_cfg.transpiler()) + .map_err(|e| CompileError::Client(e.into()))?; + + let mut stdin = StdIn::default(); + for input in inputs.chunked_iter() { + stdin.write_bytes(input); + } + + let _outputs = sdk + .execute(exe.clone(), vm_cfg.clone(), stdin) + .map_err(|e| CompileError::Client(e.into()))?; + + Ok(ProgramExecutionReport::default()) + } + + fn prove( + program: &::Program, + inputs: &zkvm_interface::Input, + ) -> Result<(Vec, zkvm_interface::ProgramProvingReport), Self::Error> { + // TODO: We need a stateful version in order to not spend a lot of time + // TODO doing things like computing the pk and vk. + + let sdk = Sdk::new(); + let vm_cfg = SdkVmConfig::builder() + .system(Default::default()) + .rv32i(Default::default()) + .rv32m(Default::default()) + .io(Default::default()) + .build(); + + let app_exe = sdk + .transpile(program.clone(), vm_cfg.transpiler()) + .map_err(|e| CompileError::Client(e.into()))?; + + let mut stdin = StdIn::default(); + for input in inputs.chunked_iter() { + stdin.write_bytes(input); + } + + let app_config = AppConfig::new(FriParameters::standard_fast(), vm_cfg); + + let app_pk = sdk.app_keygen(app_config).unwrap(); + + let app_committed_exe = sdk + .commit_app_exe(app_pk.app_fri_params(), app_exe) + .unwrap(); + + let prover = AppProver::<_, BabyBearPoseidon2Engine>::new( + app_pk.app_vm_pk.clone(), + app_committed_exe, + ); + let now = std::time::Instant::now(); + let proof = prover.generate_app_proof(stdin); + let elapsed = now.elapsed(); + + let proof_bytes = proof.encode_to_vec().unwrap(); + + Ok((proof_bytes, ProgramProvingReport::new(elapsed))) + } + + fn verify( + _program: &::Program, + mut proof: &[u8], + ) -> Result<(), Self::Error> { + let sdk = Sdk::new(); + let vm_cfg = SdkVmConfig::builder() + .system(Default::default()) + .rv32i(Default::default()) + .rv32m(Default::default()) + .io(Default::default()) + .build(); + + let app_config = AppConfig::new(FriParameters::standard_fast(), vm_cfg); + + let app_pk = sdk.app_keygen(app_config).unwrap(); + + let proof = ContinuationVmProof::::decode(&mut proof).unwrap(); + + let app_vk = app_pk.get_app_vk(); + sdk.verify_app_proof(&app_vk, &proof) + .map(|_payload| ()) + .map_err(|e| OpenVMError::Verify(VerifyError::Client(e.into()))) + } +} + +#[cfg(test)] +mod tests { + use zkvm_interface::Compiler; + + use crate::OPENVM_TARGET; + + use super::*; + use std::path::PathBuf; + + // TODO: for now, we just get one test file + // TODO: but this should get the whole directory and compile each test + fn get_compile_test_guest_program_path() -> PathBuf { + let workspace_dir = env!("CARGO_WORKSPACE_DIR"); + PathBuf::from(workspace_dir) + .join("tests") + .join("openvm") + .join("compile") + .join("basic") + .canonicalize() + .expect("Failed to find or canonicalize test guest program at /tests/compile/openvm") + } + + #[test] + fn test_compile() { + let test_guest_path = get_compile_test_guest_program_path(); + let elf = OPENVM_TARGET::compile(&test_guest_path).expect("compilation failed"); + assert!( + !elf.instructions.is_empty(), + "ELF bytes should not be empty." + ); + } + + #[test] + #[should_panic] + fn test_execute_empty_input_panic() { + // Panics because the program expects input arguments, but we supply none + let test_guest_path = get_compile_test_guest_program_path(); + let elf = OPENVM_TARGET::compile(&test_guest_path).expect("compilation failed"); + let empty_input = zkvm_interface::Input::new(); + + EreOpenVM::execute(&elf, &empty_input).unwrap(); + } + + #[test] + fn test_execute() { + let test_guest_path = get_compile_test_guest_program_path(); + let elf = OPENVM_TARGET::compile(&test_guest_path).expect("compilation failed"); + let mut input = zkvm_interface::Input::new(); + input.write(&10u64).unwrap(); + EreOpenVM::execute(&elf, &input).unwrap(); + } + + #[test] + fn test_prove_verify() { + let test_guest_path = get_compile_test_guest_program_path(); + let elf = OPENVM_TARGET::compile(&test_guest_path).expect("compilation failed"); + let mut input = zkvm_interface::Input::new(); + input.write(&10u64).unwrap(); + let (proof, _) = EreOpenVM::prove(&elf, &input).unwrap(); + EreOpenVM::verify(&elf, &proof).expect("proof should verify"); + } +}