From 4db49af1a9b829a1e00493179e52781483f30534 Mon Sep 17 00:00:00 2001 From: Ho Date: Thu, 19 Jun 2025 22:30:39 +0900 Subject: [PATCH 01/14] refactoring rust codebase --- common/libzkp/impl/Cargo.lock => Cargo.lock | 3112 +++++++++++++++-- Cargo.toml | 67 + common/libzkp/impl/Cargo.toml | 77 +- common/libzkp/impl/src/lib.rs | 214 +- common/libzkp/impl/src/proofs.rs | 344 ++ common/libzkp/impl/src/tasks.rs | 76 + common/libzkp/impl/src/tasks/batch.rs | 253 ++ common/libzkp/impl/src/tasks/batch/utils.rs | 77 + common/libzkp/impl/src/tasks/bundle.rs | 125 + common/libzkp/impl/src/tasks/chunk.rs | 185 + .../impl/src/tasks/chunk_interpreter.rs | 26 + common/libzkp/impl/src/utils.rs | 41 +- common/libzkp/impl/src/verifier.rs | 17 +- common/libzkp/impl/src/verifier/euclidv2.rs | 25 +- common/libzkp/l2geth/Cargo.toml | 26 + common/libzkp/l2geth/src/lib.rs | 19 + common/libzkp/l2geth/src/rpc_client.rs | 240 ++ rust-toolchain | 3 + zkvm-prover/Cargo.toml | 67 +- zkvm-prover/rust-toolchain | 1 - zkvm-prover/src/main.rs | 7 +- zkvm-prover/src/prover.rs | 14 +- zkvm-prover/src/types.rs | 4 - zkvm-prover/src/zk_circuits_handler.rs | 56 +- .../src/zk_circuits_handler/euclidV2.rs | 54 +- 25 files changed, 4451 insertions(+), 679 deletions(-) rename common/libzkp/impl/Cargo.lock => Cargo.lock (72%) create mode 100644 Cargo.toml create mode 100644 common/libzkp/impl/src/proofs.rs create mode 100644 common/libzkp/impl/src/tasks.rs create mode 100644 common/libzkp/impl/src/tasks/batch.rs create mode 100644 common/libzkp/impl/src/tasks/batch/utils.rs create mode 100644 common/libzkp/impl/src/tasks/bundle.rs create mode 100644 common/libzkp/impl/src/tasks/chunk.rs create mode 100644 common/libzkp/impl/src/tasks/chunk_interpreter.rs create mode 100644 common/libzkp/l2geth/Cargo.toml create mode 100644 common/libzkp/l2geth/src/lib.rs create mode 100644 common/libzkp/l2geth/src/rpc_client.rs create mode 100644 rust-toolchain delete mode 100644 zkvm-prover/rust-toolchain diff --git a/common/libzkp/impl/Cargo.lock b/Cargo.lock similarity index 72% rename from common/libzkp/impl/Cargo.lock rename to Cargo.lock index f31deb3c31..0e2dc7bf40 100644 --- a/common/libzkp/impl/Cargo.lock +++ b/Cargo.lock @@ -24,9 +24,9 @@ dependencies = [ [[package]] name = "adler2" -version = "2.0.1" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" +checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" [[package]] name = "ahash" @@ -49,6 +49,29 @@ dependencies = [ "memchr", ] +[[package]] +name = "allocator-api2" +version = "0.2.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" + +[[package]] +name = "alloy" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d2cc5aeb8dfa1e451a49fac87bc4b86c5de40ebea153ed88e83eb92b8151e74" +dependencies = [ + "alloy-consensus", + "alloy-core", + "alloy-eips", + "alloy-json-rpc", + "alloy-network", + "alloy-provider", + "alloy-rpc-client", + "alloy-transport", + "alloy-transport-http", +] + [[package]] name = "alloy-chains" version = "0.1.69" @@ -57,7 +80,7 @@ checksum = "28e2652684758b0d9b389d248b209ed9fd9989ef489a550265fe4bb8454fe7eb" dependencies = [ "alloy-primitives", "alloy-rlp", - "num_enum", + "num_enum 0.7.3", "serde", "strum 0.27.1", ] @@ -94,6 +117,15 @@ dependencies = [ "serde", ] +[[package]] +name = "alloy-core" +version = "0.8.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0713007d14d88a6edb8e248cddab783b698dbb954a28b8eee4bab21cfb7e578" +dependencies = [ + "alloy-primitives", +] + [[package]] name = "alloy-eip2124" version = "0.1.0" @@ -240,7 +272,7 @@ dependencies = [ "const-hex", "derive_more 1.0.0", "foldhash", - "hashbrown 0.15.4", + "hashbrown 0.15.3", "indexmap 2.9.0", "itoa", "k256", @@ -256,6 +288,43 @@ dependencies = [ "tiny-keccak", ] +[[package]] +name = "alloy-provider" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cbe0a2acff0c4bd1669c71251ce10fc455cbffa1b4d0a817d5ea4ba7e5bb3db7" +dependencies = [ + "alloy-chains", + "alloy-consensus", + "alloy-eips", + "alloy-json-rpc", + "alloy-network", + "alloy-network-primitives", + "alloy-primitives", + "alloy-rpc-client", + "alloy-rpc-types-eth", + "alloy-sol-types", + "alloy-transport", + "alloy-transport-http", + "async-stream", + "async-trait", + "auto_impl", + "dashmap", + "futures", + "futures-utils-wasm", + "lru", + "parking_lot 0.12.4", + "pin-project", + "reqwest 0.12.19", + "serde", + "serde_json", + "thiserror 2.0.12", + "tokio", + "tracing", + "url", + "wasmtimer", +] + [[package]] name = "alloy-rlp" version = "0.3.12" @@ -275,7 +344,30 @@ checksum = "64b728d511962dda67c1bc7ea7c03736ec275ed2cf4c35d9585298ac9ccf3b73" dependencies = [ "proc-macro2", "quote", - "syn 2.0.103", + "syn 2.0.101", +] + +[[package]] +name = "alloy-rpc-client" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b37cc3c7883dc41be1b01460127ad7930466d0a4bb6ba15a02ee34d2745e2d7c" +dependencies = [ + "alloy-json-rpc", + "alloy-primitives", + "alloy-transport", + "alloy-transport-http", + "futures", + "pin-project", + "reqwest 0.12.19", + "serde", + "serde_json", + "tokio", + "tokio-stream", + "tower 0.5.2", + "tracing", + "url", + "wasmtimer", ] [[package]] @@ -363,23 +455,23 @@ dependencies = [ [[package]] name = "alloy-sol-macro" -version = "0.8.25" +version = "0.8.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e10ae8e9a91d328ae954c22542415303919aabe976fe7a92eb06db1b68fd59f2" +checksum = "a07b74d48661ab2e4b50bb5950d74dbff5e61dd8ed03bb822281b706d54ebacb" dependencies = [ "alloy-sol-macro-expander", "alloy-sol-macro-input", "proc-macro-error2", "proc-macro2", "quote", - "syn 2.0.103", + "syn 2.0.101", ] [[package]] name = "alloy-sol-macro-expander" -version = "0.8.25" +version = "0.8.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83ad5da86c127751bc607c174d6c9fe9b85ef0889a9ca0c641735d77d4f98f26" +checksum = "19cc9c7f20b90f9be1a8f71a3d8e283a43745137b0837b1a1cb13159d37cad72" dependencies = [ "alloy-sol-macro-input", "const-hex", @@ -388,24 +480,23 @@ dependencies = [ "proc-macro-error2", "proc-macro2", "quote", - "syn 2.0.103", + "syn 2.0.101", "syn-solidity", "tiny-keccak", ] [[package]] name = "alloy-sol-macro-input" -version = "0.8.25" +version = "0.8.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba3d30f0d3f9ba3b7686f3ff1de9ee312647aac705604417a2f40c604f409a9e" +checksum = "713b7e6dfe1cb2f55c80fb05fd22ed085a1b4e48217611365ed0ae598a74c6ac" dependencies = [ "const-hex", "dunce", "heck 0.5.0", - "macro-string", "proc-macro2", "quote", - "syn 2.0.103", + "syn 2.0.101", "syn-solidity", ] @@ -416,7 +507,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6d162f8524adfdfb0e4bd0505c734c985f3e2474eb022af32eef0d52a4f3935c" dependencies = [ "serde", - "winnow", + "winnow 0.7.10", ] [[package]] @@ -432,6 +523,40 @@ dependencies = [ "serde", ] +[[package]] +name = "alloy-transport" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a8d762eadce3e9b65eac09879430c6f4fce3736cac3cac123f9b1bf435ddd13" +dependencies = [ + "alloy-json-rpc", + "base64 0.22.1", + "futures-utils-wasm", + "serde", + "serde_json", + "thiserror 2.0.12", + "tokio", + "tower 0.5.2", + "tracing", + "url", + "wasmtimer", +] + +[[package]] +name = "alloy-transport-http" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20819c4cb978fb39ce6ac31991ba90f386d595f922f42ef888b4a18be190713e" +dependencies = [ + "alloy-json-rpc", + "alloy-transport", + "reqwest 0.12.19", + "serde_json", + "tower 0.5.2", + "tracing", + "url", +] + [[package]] name = "alloy-trie" version = "0.7.9" @@ -508,7 +633,7 @@ version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6c8bdeb6047d8983be085bab0ba1472e6dc604e7041dbf6fcd5e71523014fae9" dependencies = [ - "windows-sys", + "windows-sys 0.59.0", ] [[package]] @@ -519,7 +644,7 @@ checksum = "403f75924867bb1033c59fbf0797484329750cfbe3c4325cd33127941fabc882" dependencies = [ "anstyle", "once_cell_polyfill", - "windows-sys", + "windows-sys 0.59.0", ] [[package]] @@ -668,6 +793,41 @@ dependencies = [ "serde", ] +[[package]] +name = "async-compression" +version = "0.4.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b37fc50485c4f3f736a4fb14199f6d5f5ba008d7f28fe710306c92780f004c07" +dependencies = [ + "flate2", + "futures-core", + "memchr", + "pin-project-lite", + "tokio", +] + +[[package]] +name = "async-stream" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b5a71a6f37880a80d1d7f19efd781e4b5de42c88f0722cc13bcb6cc2cfe8476" +dependencies = [ + "async-stream-impl", + "futures-core", + "pin-project-lite", +] + +[[package]] +name = "async-stream-impl" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.101", +] + [[package]] name = "async-trait" version = "0.1.88" @@ -676,20 +836,26 @@ checksum = "e539d3fca749fcee5236ab05e93a52867dd549cc157c8cb7f99595f3cedffdb5" dependencies = [ "proc-macro2", "quote", - "syn 2.0.103", + "syn 2.0.101", ] [[package]] -name = "atty" -version = "0.2.14" +name = "async_io_stream" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" +checksum = "b6d7b9decdf35d8908a7e3ef02f64c5e9b1695e230154c0e8de3969142d9b94c" dependencies = [ - "hermit-abi 0.1.19", - "libc", - "winapi", + "futures", + "pharos", + "rustc_version 0.4.1", ] +[[package]] +name = "atomic-waker" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" + [[package]] name = "aurora-engine-modexp" version = "1.2.0" @@ -708,14 +874,63 @@ checksum = "ffdcb70bdbc4d478427380519163274ac86e52916e10f0a8889adf0f96d3fee7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.103", + "syn 2.0.101", ] [[package]] name = "autocfg" -version = "1.5.0" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" + +[[package]] +name = "axum" +version = "0.6.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b829e4e32b91e643de6eafe82b1d90675f5874230191a4ffbc1b336dec4d6bf" +dependencies = [ + "async-trait", + "axum-core", + "bitflags 1.3.2", + "bytes", + "futures-util", + "http 0.2.12", + "http-body 0.4.6", + "hyper 0.14.32", + "itoa", + "matchit", + "memchr", + "mime", + "percent-encoding", + "pin-project-lite", + "rustversion", + "serde", + "serde_json", + "serde_path_to_error", + "serde_urlencoded", + "sync_wrapper 0.1.2", + "tokio", + "tower 0.4.13", + "tower-layer", + "tower-service", +] + +[[package]] +name = "axum-core" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" +checksum = "759fa577a247914fd3f7f76d62972792636412fbfd634cd452f6a385a74d2d2c" +dependencies = [ + "async-trait", + "bytes", + "futures-util", + "http 0.2.12", + "http-body 0.4.6", + "mime", + "rustversion", + "tower-layer", + "tower-service", +] [[package]] name = "backtrace" @@ -730,7 +945,7 @@ dependencies = [ "object", "rustc-demangle", "serde", - "windows-targets", + "windows-targets 0.52.6", ] [[package]] @@ -745,6 +960,12 @@ version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" +[[package]] +name = "base64" +version = "0.21.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" + [[package]] name = "base64" version = "0.22.1" @@ -766,6 +987,44 @@ dependencies = [ "serde", ] +[[package]] +name = "bindgen" +version = "0.69.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "271383c67ccabffb7381723dea0672a673f292304fcb45c01cc648c7a8d58088" +dependencies = [ + "bitflags 2.9.1", + "cexpr", + "clang-sys", + "itertools 0.11.0", + "lazy_static", + "lazycell", + "proc-macro2", + "quote", + "regex", + "rustc-hash 1.1.0", + "shlex", + "syn 2.0.101", +] + +[[package]] +name = "bindgen" +version = "0.71.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f58bf3d7db68cfbac37cfc485a8d711e87e064c3d0fe0435b92f7a407f9d6b3" +dependencies = [ + "bitflags 2.9.1", + "cexpr", + "clang-sys", + "itertools 0.13.0", + "proc-macro2", + "quote", + "regex", + "rustc-hash 2.1.1", + "shlex", + "syn 2.0.101", +] + [[package]] name = "bit-set" version = "0.8.0" @@ -802,9 +1061,15 @@ checksum = "42b6b4cb608b8282dc3b53d0f4c9ab404655d562674c682db7e6c0458cc83c23" dependencies = [ "proc-macro2", "quote", - "syn 2.0.103", + "syn 2.0.101", ] +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + [[package]] name = "bitflags" version = "2.9.1" @@ -902,9 +1167,9 @@ dependencies = [ [[package]] name = "bon" -version = "3.6.4" +version = "3.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f61138465baf186c63e8d9b6b613b508cd832cba4ce93cf37ce5f096f91ac1a6" +checksum = "ced38439e7a86a4761f7f7d5ded5ff009135939ecb464a24452eaa4c1696af7d" dependencies = [ "bon-macros", "rustversion", @@ -912,9 +1177,9 @@ dependencies = [ [[package]] name = "bon-macros" -version = "3.6.4" +version = "3.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40d1dad34aa19bf02295382f08d9bc40651585bd497266831d40ee6296fb49ca" +checksum = "0ce61d2d3844c6b8d31b2353d9f66cf5e632b3e9549583fe3cac2f4f6136725e" dependencies = [ "darling", "ident_case", @@ -922,7 +1187,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.103", + "syn 2.0.101", ] [[package]] @@ -957,14 +1222,14 @@ checksum = "efb7846e0cb180355c2dec69e721edafa36919850f1a9f52ffba4ebc0393cb71" dependencies = [ "proc-macro2", "quote", - "syn 2.0.103", + "syn 2.0.101", ] [[package]] name = "bytemuck" -version = "1.23.1" +version = "1.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c76a5792e44e4abe34d3abf15636779261d45a7450612059293d1d2cfc63422" +checksum = "9134a6ef01ce4b366b50689c94f82c14bc72bc5d0386829828a2e2752ef7958c" [[package]] name = "byteorder" @@ -981,6 +1246,16 @@ dependencies = [ "serde", ] +[[package]] +name = "bzip2-sys" +version = "0.1.13+1.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "225bff33b2141874fe80d71e07d6eec4f85c5c216453dd96388240f96e1acc14" +dependencies = [ + "cc", + "pkg-config", +] + [[package]] name = "c-kzg" version = "1.0.3" @@ -1030,18 +1305,35 @@ dependencies = [ [[package]] name = "cc" -version = "1.2.27" +version = "1.2.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d487aa071b5f64da6f19a3e848e3578944b726ee5a4854b82172f02aa876bfdc" +checksum = "956a5e21988b87f372569b66183b78babf23ebc2e744b733e4350a752c4dafac" dependencies = [ + "jobserver", + "libc", "shlex", ] +[[package]] +name = "cexpr" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766" +dependencies = [ + "nom", +] + [[package]] name = "cfg-if" -version = "1.0.1" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "cfg_aliases" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9555578bc9e57714c812a1f84e4fc5b4d21fcb063490c624de019f7464c91268" +checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" [[package]] name = "chrono" @@ -1058,11 +1350,22 @@ dependencies = [ "windows-link", ] +[[package]] +name = "clang-sys" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b023947811758c97c59bf9d1c188fd619ad4718dcaa767947df1cadb14f39f4" +dependencies = [ + "glob", + "libc", + "libloading", +] + [[package]] name = "clap" -version = "4.5.40" +version = "4.5.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40b6887a1d8685cebccf115538db5c0efe625ccac9696ad45c409d96566e910f" +checksum = "fd60e63e9be68e5fb56422e397cf9baddded06dae1d2e523401542383bc72a9f" dependencies = [ "clap_builder", "clap_derive", @@ -1070,9 +1373,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.40" +version = "4.5.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0c66c08ce9f0c698cbce5c0279d0bb6ac936d8674174fe48f736533b964f59e" +checksum = "89cc6392a1f72bbeb820d71f32108f61fdaf18bc526e1d23954168a67759ef51" dependencies = [ "anstream", "anstyle", @@ -1082,21 +1385,21 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.5.40" +version = "4.5.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2c7947ae4cc3d851207c1adb5b5e260ff0cca11446b1d6d1423788e442257ce" +checksum = "09176aae279615badda0765c0c0b3f6ed53f4709118af73cf4655d85d1530cd7" dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.103", + "syn 2.0.101", ] [[package]] name = "clap_lex" -version = "0.7.5" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b94f61472cee1439c0b966b47e3aca9ae07e45d070759512cd390ea2bebc6675" +checksum = "f46ad14479a25103f283c0f10005961cf086d8dc42205bb44c46ac563475dca6" [[package]] name = "colorchoice" @@ -1111,7 +1414,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "117725a109d387c937a1533ce01b450cbde6b88abceea8473c4d7a85853cda3c" dependencies = [ "lazy_static", - "windows-sys", + "windows-sys 0.59.0", ] [[package]] @@ -1174,6 +1477,16 @@ dependencies = [ "unicode-segmentation", ] +[[package]] +name = "core-foundation" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" +dependencies = [ + "core-foundation-sys", + "libc", +] + [[package]] name = "core-foundation-sys" version = "0.8.7" @@ -1204,6 +1517,15 @@ version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5" +[[package]] +name = "crc32fast" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3" +dependencies = [ + "cfg-if", +] + [[package]] name = "critical-section" version = "1.2.0" @@ -1294,6 +1616,16 @@ dependencies = [ "typenum", ] +[[package]] +name = "ctor" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a2785755761f3ddc1492979ce1e48d2c00d09311c39e4466429188f3dd6501" +dependencies = [ + "quote", + "syn 2.0.101", +] + [[package]] name = "darling" version = "0.20.11" @@ -1315,7 +1647,7 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 2.0.103", + "syn 2.0.101", ] [[package]] @@ -1326,9 +1658,29 @@ checksum = "fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead" dependencies = [ "darling_core", "quote", - "syn 2.0.103", + "syn 2.0.101", ] +[[package]] +name = "dashmap" +version = "6.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5041cc499144891f3790297212f32a74fb938e5136a14943f338ef9e0ae276cf" +dependencies = [ + "cfg-if", + "crossbeam-utils", + "hashbrown 0.14.5", + "lock_api", + "once_cell", + "parking_lot_core 0.9.11", +] + +[[package]] +name = "data-encoding" +version = "2.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a2330da5de22e8a3cb63252ce2abb30116bf5265e89c0e01bc17015ce30a476" + [[package]] name = "der" version = "0.7.10" @@ -1368,7 +1720,7 @@ checksum = "d150dea618e920167e5973d70ae6ece4385b7164e0d799fe7c122dd0a5d912ad" dependencies = [ "proc-macro2", "quote", - "syn 2.0.103", + "syn 2.0.101", ] [[package]] @@ -1379,7 +1731,7 @@ checksum = "2cdc8d50f426189eef89dac62fabfa0abb27d5cc008f25bf4156a0203325becc" dependencies = [ "proc-macro2", "quote", - "syn 2.0.103", + "syn 2.0.101", ] [[package]] @@ -1392,7 +1744,7 @@ dependencies = [ "proc-macro2", "quote", "rustc_version 0.4.1", - "syn 2.0.103", + "syn 2.0.101", ] [[package]] @@ -1413,7 +1765,7 @@ dependencies = [ "convert_case 0.6.0", "proc-macro2", "quote", - "syn 2.0.103", + "syn 2.0.101", "unicode-xid", ] @@ -1446,9 +1798,15 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.103", + "syn 2.0.101", ] +[[package]] +name = "dotenv" +version = "0.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77c90badedccf4105eca100756a0b1289e191f6fcbdadd3cee1d2f614f97da8f" + [[package]] name = "downcast-rs" version = "1.2.1" @@ -1514,6 +1872,23 @@ dependencies = [ "zeroize", ] +[[package]] +name = "encoder" +version = "0.1.0" +source = "git+https://github.com/scroll-tech/da-codec.git?tag=v0.1.2#8c5d2f0cd707153151a5154fef702204f6ca40b3" +dependencies = [ + "zstd 0.13.0", +] + +[[package]] +name = "encoding_rs" +version = "0.8.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3" +dependencies = [ + "cfg-if", +] + [[package]] name = "endian-type" version = "0.1.2" @@ -1521,39 +1896,44 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c34f04666d835ff5d62e058c3995147c06f42fe86ff053337632bca83e42702d" [[package]] -name = "enum_dispatch" -version = "0.3.13" +name = "enr" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa18ce2bc66555b3218614519ac839ddb759a7d6720732f979ef8d13be147ecd" +checksum = "cf56acd72bb22d2824e66ae8e9e5ada4d0de17a69c7fd35569dde2ada8ec9116" dependencies = [ - "once_cell", - "proc-macro2", - "quote", - "syn 2.0.103", + "base64 0.13.1", + "bytes", + "hex", + "k256", + "log", + "rand 0.8.5", + "rlp", + "serde", + "sha3", + "zeroize", ] [[package]] -name = "enumn" -version = "0.1.14" +name = "enum_dispatch" +version = "0.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f9ed6b3789237c8a0c1c505af1c7eb2c560df6186f01b098c3a1064ea532f38" +checksum = "aa18ce2bc66555b3218614519ac839ddb759a7d6720732f979ef8d13be147ecd" dependencies = [ + "once_cell", "proc-macro2", "quote", - "syn 2.0.103", + "syn 2.0.101", ] [[package]] -name = "env_logger" -version = "0.9.3" +name = "enumn" +version = "0.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a12e6657c4c97ebab115a42dcee77225f7f482cdd841cf7088c657a42e9e00e7" +checksum = "2f9ed6b3789237c8a0c1c505af1c7eb2c560df6186f01b098c3a1064ea532f38" dependencies = [ - "atty", - "humantime", - "log", - "regex", - "termcolor", + "proc-macro2", + "quote", + "syn 2.0.101", ] [[package]] @@ -1569,7 +1949,24 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cea14ef9355e3beab063703aa9dab15afd25f0667c341310c1e5274bb1d0da18" dependencies = [ "libc", - "windows-sys", + "windows-sys 0.59.0", +] + +[[package]] +name = "ethabi" +version = "18.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7413c5f74cc903ea37386a8965a936cbeb334bd270862fdece542c1b2dcbc898" +dependencies = [ + "ethereum-types", + "hex", + "once_cell", + "regex", + "serde", + "serde_json", + "sha3", + "thiserror 1.0.69", + "uint", ] [[package]] @@ -1580,6 +1977,10 @@ checksum = "c22d4b5885b6aa2fe5e8b9329fb8d232bf739e434e6b87347c63bdd00c120f60" dependencies = [ "crunchy", "fixed-hash", + "impl-codec", + "impl-rlp", + "impl-serde", + "scale-info", "tiny-keccak", ] @@ -1591,10 +1992,76 @@ checksum = "02d215cbf040552efcbe99a38372fe80ab9d00268e20012b79fcd0f073edd8ee" dependencies = [ "ethbloom", "fixed-hash", + "impl-codec", + "impl-rlp", + "impl-serde", "primitive-types", + "scale-info", "uint", ] +[[package]] +name = "ethers-core" +version = "2.0.7" +source = "git+https://github.com/scroll-tech/ethers-rs.git?branch=v2.0.7#e32dfd62e7cdec31160b91c5a646883594a586ba" +dependencies = [ + "arrayvec", + "bytes", + "chrono", + "elliptic-curve", + "ethabi", + "generic-array", + "hex", + "k256", + "num_enum 0.6.1", + "open-fastrlp", + "rand 0.8.5", + "rlp", + "serde", + "serde_json", + "strum 0.24.1", + "tempfile", + "thiserror 1.0.69", + "tiny-keccak", + "unicode-xid", +] + +[[package]] +name = "ethers-providers" +version = "2.0.7" +source = "git+https://github.com/scroll-tech/ethers-rs.git?branch=v2.0.7#e32dfd62e7cdec31160b91c5a646883594a586ba" +dependencies = [ + "async-trait", + "auto_impl", + "base64 0.21.7", + "bytes", + "enr", + "ethers-core", + "futures-channel", + "futures-core", + "futures-timer", + "futures-util", + "hashers", + "hex", + "http 0.2.12", + "instant", + "once_cell", + "pin-project", + "reqwest 0.11.27", + "serde", + "serde_json", + "thiserror 1.0.69", + "tokio", + "tokio-tungstenite", + "tracing", + "tracing-futures", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "ws_stream_wasm", +] + [[package]] name = "eyre" version = "0.6.12" @@ -1673,6 +2140,16 @@ dependencies = [ "static_assertions", ] +[[package]] +name = "flate2" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ced92e76e966ca2fd84c8f7aa01a4aea65b0eb6648d72f7c8f3e2764a67fece" +dependencies = [ + "crc32fast", + "miniz_oxide", +] + [[package]] name = "fnv" version = "1.0.7" @@ -1685,6 +2162,21 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" +[[package]] +name = "foreign-types" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" +dependencies = [ + "foreign-types-shared", +] + +[[package]] +name = "foreign-types-shared" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" + [[package]] name = "form_urlencoded" version = "1.2.1" @@ -1694,18 +2186,70 @@ dependencies = [ "percent-encoding", ] +[[package]] +name = "fs2" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9564fc758e15025b46aa6643b1b77d047d1a56a1aea6e01002ac0c7026876213" +dependencies = [ + "libc", + "winapi", +] + [[package]] name = "funty" version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" +[[package]] +name = "futures" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876" +dependencies = [ + "futures-channel", + "futures-core", + "futures-executor", + "futures-io", + "futures-sink", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-channel" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" +dependencies = [ + "futures-core", + "futures-sink", +] + [[package]] name = "futures-core" version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" +[[package]] +name = "futures-executor" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f" +dependencies = [ + "futures-core", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-io" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" + [[package]] name = "futures-macro" version = "0.3.31" @@ -1714,24 +2258,44 @@ checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.103", + "syn 2.0.101", ] +[[package]] +name = "futures-sink" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" + [[package]] name = "futures-task" version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" +[[package]] +name = "futures-timer" +version = "3.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f288b0a4f20f9a56b5d1da57e2227c661b7b16168e2f72365f57b63326e29b24" +dependencies = [ + "gloo-timers", + "send_wrapper 0.4.0", +] + [[package]] name = "futures-util" version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" dependencies = [ + "futures-channel", "futures-core", + "futures-io", "futures-macro", + "futures-sink", "futures-task", + "memchr", "pin-project-lite", "pin-utils", "slab", @@ -1743,6 +2307,15 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "42012b0f064e01aa58b545fe3727f90f7dd4020f4a3ea735b50344965f5a57e9" +[[package]] +name = "fxhash" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" +dependencies = [ + "byteorder", +] + [[package]] name = "gcd" version = "2.3.0" @@ -1767,8 +2340,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592" dependencies = [ "cfg-if", + "js-sys", "libc", - "wasi 0.11.1+wasi-snapshot-preview1", + "wasi 0.11.0+wasi-snapshot-preview1", + "wasm-bindgen", ] [[package]] @@ -1778,21 +2353,23 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "26145e563e54f2cadc477553f1ec5ee650b00862f0a58bcd12cbdc5f0ea2d2f4" dependencies = [ "cfg-if", + "js-sys", "libc", "r-efi", "wasi 0.14.2+wasi-0.2.4", + "wasm-bindgen", ] [[package]] name = "getset" -version = "0.1.6" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cf0fc11e47561d47397154977bc219f4cf809b2974facc3ccb3b89e2436f912" +checksum = "f3586f256131df87204eb733da72e3d3eb4f343c639f4b7be279ac7c48baeafe" dependencies = [ "proc-macro-error2", "proc-macro2", "quote", - "syn 2.0.103", + "syn 2.0.101", ] [[package]] @@ -1818,14 +2395,14 @@ checksum = "53010ccb100b96a67bc32c0175f0ed1426b31b655d562898e57325f81c023ac0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.103", + "syn 2.0.101", ] [[package]] name = "glam" -version = "0.30.4" +version = "0.30.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50a99dbe56b72736564cfa4b85bf9a33079f16ae8b74983ab06af3b1a3696b11" +checksum = "6b46b9ca4690308844c644e7c634d68792467260e051c8543e0c7871662b3ba7" [[package]] name = "glob" @@ -1833,6 +2410,18 @@ version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a8d1add55171497b4705a648c6b583acafb01d58050a51727785f0b2c8e0a2b2" +[[package]] +name = "gloo-timers" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b995a66bb87bebce9a0f4a95aed01daca4872c050bfcb21653361c03bc35e5c" +dependencies = [ + "futures-channel", + "futures-core", + "js-sys", + "wasm-bindgen", +] + [[package]] name = "group" version = "0.12.1" @@ -1856,6 +2445,44 @@ dependencies = [ "subtle", ] +[[package]] +name = "h2" +version = "0.3.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" +dependencies = [ + "bytes", + "fnv", + "futures-core", + "futures-sink", + "futures-util", + "http 0.2.12", + "indexmap 2.9.0", + "slab", + "tokio", + "tokio-util", + "tracing", +] + +[[package]] +name = "h2" +version = "0.4.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9421a676d1b147b16b82c9225157dc629087ef8ec4d5e2960f9437a90dac0a5" +dependencies = [ + "atomic-waker", + "bytes", + "fnv", + "futures-core", + "futures-sink", + "http 1.3.1", + "indexmap 2.9.0", + "slab", + "tokio", + "tokio-util", + "tracing", +] + [[package]] name = "halo2" version = "0.1.0-beta.2" @@ -2030,15 +2657,26 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.15.4" +version = "0.15.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5971ac85611da7067dbfcabef3c70ebb5606018acd9e2a3903a0da507521e0d5" +checksum = "84b26c544d002229e640969970a2e74021aadf6e2f96372b9c58eff97de08eb3" dependencies = [ + "allocator-api2", + "equivalent", "foldhash", "rayon", "serde", ] +[[package]] +name = "hashers" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2bca93b15ea5a746f220e56587f71e73c6165eab783df9e26590069953e3c30" +dependencies = [ + "fxhash", +] + [[package]] name = "heck" version = "0.4.1" @@ -2053,18 +2691,9 @@ checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" [[package]] name = "hermit-abi" -version = "0.1.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" -dependencies = [ - "libc", -] - -[[package]] -name = "hermit-abi" -version = "0.5.2" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc0fef456e4baa96da950455cd02c081ca953b141298e41db3fc7e36b1da849c" +checksum = "f154ce46856750ed433c8649605bf7ed2de3bc35fd9d2a9f30cddd873c80cb08" [[package]] name = "hex" @@ -2091,64 +2720,243 @@ dependencies = [ ] [[package]] -name = "humantime" -version = "2.2.0" +name = "http" +version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b112acc8b3adf4b107a8ec20977da0273a8c386765a3ec0229bd500a1443f9f" +checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" +dependencies = [ + "bytes", + "fnv", + "itoa", +] [[package]] -name = "iana-time-zone" -version = "0.1.63" +name = "http" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0c919e5debc312ad217002b8048a17b7d83f80703865bbfcfebb0458b0b27d8" +checksum = "f4a85d31aea989eead29a3aaf9e1115a180df8282431156e533de47660892565" dependencies = [ - "android_system_properties", - "core-foundation-sys", - "iana-time-zone-haiku", - "js-sys", - "log", - "wasm-bindgen", - "windows-core 0.61.2", + "bytes", + "fnv", + "itoa", ] [[package]] -name = "iana-time-zone-haiku" -version = "0.1.2" +name = "http-body" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" +checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" dependencies = [ - "cc", + "bytes", + "http 0.2.12", + "pin-project-lite", ] [[package]] -name = "icu_collections" -version = "2.0.0" +name = "http-body" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "200072f5d0e3614556f94a9930d5dc3e0662a652823904c3a75dc3b0af7fee47" +checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" dependencies = [ - "displaydoc", - "potential_utf", - "yoke", - "zerofrom", - "zerovec", + "bytes", + "http 1.3.1", ] [[package]] -name = "icu_locale_core" -version = "2.0.0" +name = "http-body-util" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0cde2700ccaed3872079a65fb1a78f6c0a36c91570f28755dda67bc8f7d9f00a" +checksum = "b021d93e26becf5dc7e1b75b1bed1fd93124b374ceb73f43d4d4eafec896a64a" dependencies = [ - "displaydoc", - "litemap", - "tinystr", - "writeable", - "zerovec", + "bytes", + "futures-core", + "http 1.3.1", + "http-body 1.0.1", + "pin-project-lite", ] [[package]] -name = "icu_normalizer" -version = "2.0.0" +name = "httparse" +version = "1.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" + +[[package]] +name = "httpdate" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" + +[[package]] +name = "hyper" +version = "0.14.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41dfc780fdec9373c01bae43289ea34c972e40ee3c9f6b3c8801a35f35586ce7" +dependencies = [ + "bytes", + "futures-channel", + "futures-core", + "futures-util", + "h2 0.3.26", + "http 0.2.12", + "http-body 0.4.6", + "httparse", + "httpdate", + "itoa", + "pin-project-lite", + "socket2", + "tokio", + "tower-service", + "tracing", + "want", +] + +[[package]] +name = "hyper" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc2b571658e38e0c01b1fdca3bbbe93c00d3d71693ff2770043f8c29bc7d6f80" +dependencies = [ + "bytes", + "futures-channel", + "futures-util", + "h2 0.4.10", + "http 1.3.1", + "http-body 1.0.1", + "httparse", + "itoa", + "pin-project-lite", + "smallvec", + "tokio", + "want", +] + +[[package]] +name = "hyper-rustls" +version = "0.24.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590" +dependencies = [ + "futures-util", + "http 0.2.12", + "hyper 0.14.32", + "rustls 0.21.12", + "tokio", + "tokio-rustls 0.24.1", +] + +[[package]] +name = "hyper-rustls" +version = "0.27.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3c93eb611681b207e1fe55d5a71ecf91572ec8a6705cdb6857f7d8d5242cf58" +dependencies = [ + "http 1.3.1", + "hyper 1.6.0", + "hyper-util", + "rustls 0.23.27", + "rustls-pki-types", + "tokio", + "tokio-rustls 0.26.2", + "tower-service", + "webpki-roots 1.0.0", +] + +[[package]] +name = "hyper-tls" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0" +dependencies = [ + "bytes", + "http-body-util", + "hyper 1.6.0", + "hyper-util", + "native-tls", + "tokio", + "tokio-native-tls", + "tower-service", +] + +[[package]] +name = "hyper-util" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc2fdfdbff08affe55bb779f33b053aa1fe5dd5b54c257343c17edfa55711bdb" +dependencies = [ + "base64 0.22.1", + "bytes", + "futures-channel", + "futures-core", + "futures-util", + "http 1.3.1", + "http-body 1.0.1", + "hyper 1.6.0", + "ipnet", + "libc", + "percent-encoding", + "pin-project-lite", + "socket2", + "system-configuration 0.6.1", + "tokio", + "tower-service", + "tracing", + "windows-registry", +] + +[[package]] +name = "iana-time-zone" +version = "0.1.63" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0c919e5debc312ad217002b8048a17b7d83f80703865bbfcfebb0458b0b27d8" +dependencies = [ + "android_system_properties", + "core-foundation-sys", + "iana-time-zone-haiku", + "js-sys", + "log", + "wasm-bindgen", + "windows-core", +] + +[[package]] +name = "iana-time-zone-haiku" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" +dependencies = [ + "cc", +] + +[[package]] +name = "icu_collections" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "200072f5d0e3614556f94a9930d5dc3e0662a652823904c3a75dc3b0af7fee47" +dependencies = [ + "displaydoc", + "potential_utf", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_locale_core" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0cde2700ccaed3872079a65fb1a78f6c0a36c91570f28755dda67bc8f7d9f00a" +dependencies = [ + "displaydoc", + "litemap", + "tinystr", + "writeable", + "zerovec", +] + +[[package]] +name = "icu_normalizer" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "436880e8e18df4d7bbc06d58432329d6458cc84531f7ac5f024e93deadb37979" dependencies = [ @@ -2242,6 +3050,24 @@ dependencies = [ "parity-scale-codec", ] +[[package]] +name = "impl-rlp" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f28220f89297a075ddc7245cd538076ee98b01f2a9c23a53a4f1105d5a322808" +dependencies = [ + "rlp", +] + +[[package]] +name = "impl-serde" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebc88fc67028ae3db0c853baa36269d398d5f45b6982f95549ff5def78c935cd" +dependencies = [ + "serde", +] + [[package]] name = "impl-trait-for-tuples" version = "0.2.3" @@ -2250,7 +3076,7 @@ checksum = "a0eb5a3343abf848c0984fe4604b2b105da9539376e24fc0a3b0007411ae4fd9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.103", + "syn 2.0.101", ] [[package]] @@ -2277,7 +3103,35 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cea70ddb795996207ad57735b50c5982d8844f38ba9ee5f1aedcfb708a2aa11e" dependencies = [ "equivalent", - "hashbrown 0.15.4", + "hashbrown 0.15.3", + "serde", +] + +[[package]] +name = "instant" +version = "0.1.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222" +dependencies = [ + "cfg-if", + "js-sys", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "ipnet" +version = "2.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130" + +[[package]] +name = "iri-string" +version = "0.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbc5ebe9c3a1a7a5127f920a418f7585e9e758e911d0466ed004f393b0e380b2" +dependencies = [ + "memchr", "serde", ] @@ -2329,6 +3183,16 @@ version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" +[[package]] +name = "jobserver" +version = "0.1.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38f262f097c174adebe41eb73d66ae9c06b2844fb0da69969647bbddd9b0538a" +dependencies = [ + "getrandom 0.3.3", + "libc", +] + [[package]] name = "js-sys" version = "0.3.77" @@ -2365,6 +3229,7 @@ dependencies = [ "once_cell", "serdect", "sha2", + "signature", ] [[package]] @@ -2386,20 +3251,55 @@ dependencies = [ "sha3-asm", ] +[[package]] +name = "l2geth" +version = "4.5.8" +dependencies = [ + "alloy", + "async-trait", + "base64 0.22.1", + "eyre", + "libzkp", + "sbv-primitives", + "sbv-utils", + "serde", + "serde_derive", + "serde_json", + "tokio", + "tracing", + "url", +] + [[package]] name = "lazy_static" version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" dependencies = [ - "spin", + "spin 0.9.8", ] +[[package]] +name = "lazycell" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" + [[package]] name = "libc" -version = "0.2.174" +version = "0.2.172" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1171693293099992e19cddea4e8b849964e9846f4acee11b3948bcc337be8776" +checksum = "d750af042f7ef4f724306de029d18836c26c1765a54a6a3f094cbd23a7267ffa" + +[[package]] +name = "libloading" +version = "0.8.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07033963ba89ebaf1584d767badaa2e8fcec21aedea6b8c0346d487d49c28667" +dependencies = [ + "cfg-if", + "windows-targets 0.53.0", +] [[package]] name = "libm" @@ -2407,6 +3307,60 @@ version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f9fbbcab51052fe104eb5e5d351cf728d30a5be1fe14d9be8a3b097481fb97de" +[[package]] +name = "librocksdb-sys" +version = "0.17.1+9.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b7869a512ae9982f4d46ba482c2a304f1efd80c6412a3d4bf57bb79a619679f" +dependencies = [ + "bindgen 0.69.5", + "bzip2-sys", + "cc", + "libc", + "libz-sys", + "lz4-sys", + "zstd-sys 2.0.15+zstd.1.5.7", +] + +[[package]] +name = "libz-sys" +version = "1.1.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b70e7a7df205e92a1a4cd9aaae7898dac0aa555503cc0a649494d0d60e7651d" +dependencies = [ + "cc", + "pkg-config", + "vcpkg", +] + +[[package]] +name = "libzkp" +version = "4.5.8" +dependencies = [ + "base64 0.22.1", + "c-kzg", + "eyre", + "git-version", + "regex", + "sbv-primitives", + "scroll-zkvm-types", + "scroll-zkvm-verifier", + "serde", + "serde_derive", + "serde_json", + "serde_stacker", + "tracing", +] + +[[package]] +name = "libzkp-c" +version = "4.5.8" +dependencies = [ + "l2geth", + "libzkp", + "tracing", +] + [[package]] name = "linux-raw-sys" version = "0.9.4" @@ -2419,6 +3373,16 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "241eaef5fd12c88705a01fc1066c48c4b36e0dd4377dcdc7ec3942cea7a69956" +[[package]] +name = "lock_api" +version = "0.4.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96936507f153605bddfcda068dd804796c84324ed2510809e5b2a624c81da765" +dependencies = [ + "autocfg", + "scopeguard", +] + [[package]] name = "lockfree-object-pool" version = "0.1.6" @@ -2432,22 +3396,36 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94" [[package]] -name = "lz4_flex" -version = "0.11.4" +name = "lru" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c592ad9fbc1b7838633b3ae55ce69b17d01150c72fcef229fbb819d39ee51ee" +checksum = "227748d55f2f0ab4735d87fd623798cb6b664512fe979705f829c9f81c934465" +dependencies = [ + "hashbrown 0.15.3", +] [[package]] -name = "macro-string" -version = "0.1.4" +name = "lru-slab" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "112b39cec0b298b6c1999fee3e31427f74f676e4cb9879ed1a121b43661a4154" + +[[package]] +name = "lz4-sys" +version = "1.11.1+lz4-1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b27834086c65ec3f9387b096d66e99f221cf081c2b738042aa252bcd41204e3" +checksum = "6bd8c0d6c6ed0cd30b3652886bb8711dc4bb01d637a68105a3d5158039b418e6" dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.103", + "cc", + "libc", ] +[[package]] +name = "lz4_flex" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75761162ae2b0e580d7e7c390558127e5f01b4194debd6221fd8c207fc80e3f5" + [[package]] name = "matchers" version = "0.1.0" @@ -2457,6 +3435,12 @@ dependencies = [ "regex-automata 0.1.10", ] +[[package]] +name = "matchit" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e7465ac9959cc2b1404e8e2367b43684a6d13790fe23056cc8c6c5a6b7bcb94" + [[package]] name = "maybe-rayon" version = "0.1.1" @@ -2469,9 +3453,9 @@ dependencies = [ [[package]] name = "memchr" -version = "2.7.5" +version = "2.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32a282da65faaf38286cf3be983213fcf1d2e2a58700e808f83f4ea9a4804bc0" +checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" [[package]] name = "memmap2" @@ -2517,7 +3501,7 @@ dependencies = [ "proc-macro2", "quote", "regex", - "syn 2.0.103", + "syn 2.0.101", ] [[package]] @@ -2556,15 +3540,38 @@ dependencies = [ "sketches-ddsketch", ] +[[package]] +name = "mime" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" + +[[package]] +name = "minimal-lexical" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" + [[package]] name = "miniz_oxide" -version = "0.8.9" +version = "0.8.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316" +checksum = "3be647b768db090acb35d5ec5db2b0e1f1de11133ca123b9eacf5137868f892a" dependencies = [ "adler2", ] +[[package]] +name = "mio" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78bed444cc8a2160f01cbcf811ef18cac863ad68ae8ca62092e8db51d51c761c" +dependencies = [ + "libc", + "wasi 0.11.0+wasi-snapshot-preview1", + "windows-sys 0.59.0", +] + [[package]] name = "modular-bitfield" version = "0.11.2" @@ -2603,7 +3610,24 @@ checksum = "1bb5c1d8184f13f7d0ccbeeca0def2f9a181bce2624302793005f5ca8aa62e5e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.103", + "syn 2.0.101", +] + +[[package]] +name = "native-tls" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87de3442987e9dbec73158d5c715e7ad9072fda936bb03d19d7fa10e00520f0e" +dependencies = [ + "libc", + "log", + "openssl", + "openssl-probe", + "openssl-sys", + "schannel", + "security-framework", + "security-framework-sys", + "tempfile", ] [[package]] @@ -2615,6 +3639,16 @@ dependencies = [ "smallvec", ] +[[package]] +name = "nom" +version = "7.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" +dependencies = [ + "memchr", + "minimal-lexical", +] + [[package]] name = "ntapi" version = "0.4.1" @@ -2732,17 +3766,38 @@ version = "1.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "91df4bbde75afed763b708b7eee1e8e7651e02d97f6d5dd763e89367e957b23b" dependencies = [ - "hermit-abi 0.5.2", + "hermit-abi", "libc", ] +[[package]] +name = "num_enum" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a015b430d3c108a207fd776d2e2196aaf8b1cf8cf93253e3a097ff3085076a1" +dependencies = [ + "num_enum_derive 0.6.1", +] + [[package]] name = "num_enum" version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4e613fc340b2220f734a8595782c551f1250e969d87d3be1ae0579e8d4065179" dependencies = [ - "num_enum_derive", + "num_enum_derive 0.7.3", +] + +[[package]] +name = "num_enum_derive" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96667db765a921f7b295ffee8b60472b686a51d4f21c2ee4ffdb94c7013b65a6" +dependencies = [ + "proc-macro-crate 1.3.1", + "proc-macro2", + "quote", + "syn 2.0.101", ] [[package]] @@ -2753,7 +3808,7 @@ checksum = "af1844ef2428cc3e1cb900be36181049ef3d3193c63e43026cfe202983b27a56" dependencies = [ "proc-macro2", "quote", - "syn 2.0.103", + "syn 2.0.101", ] [[package]] @@ -2823,6 +3878,75 @@ dependencies = [ "thiserror 2.0.12", ] +[[package]] +name = "open-fastrlp" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "786393f80485445794f6043fd3138854dd109cc6c4bd1a6383db304c9ce9b9ce" +dependencies = [ + "arrayvec", + "auto_impl", + "bytes", + "ethereum-types", + "open-fastrlp-derive", +] + +[[package]] +name = "open-fastrlp-derive" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "003b2be5c6c53c1cfeb0a238b8a1c3915cd410feb684457a36c10038f764bb1c" +dependencies = [ + "bytes", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "openssl" +version = "0.10.73" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8505734d46c8ab1e19a1dce3aef597ad87dcb4c37e7188231769bd6bd51cebf8" +dependencies = [ + "bitflags 2.9.1", + "cfg-if", + "foreign-types", + "libc", + "once_cell", + "openssl-macros", + "openssl-sys", +] + +[[package]] +name = "openssl-macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.101", +] + +[[package]] +name = "openssl-probe" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e" + +[[package]] +name = "openssl-sys" +version = "0.9.109" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90096e2e47630d78b7d1c20952dc621f957103f8bc2c8359ec81290d75238571" +dependencies = [ + "cc", + "libc", + "pkg-config", + "vcpkg", +] + [[package]] name = "openvm" version = "1.1.1" @@ -2884,7 +4008,7 @@ source = "git+https://github.com/openvm-org/openvm.git?rev=bdb4831#bdb4831fefed1 dependencies = [ "openvm-macros-common", "quote", - "syn 2.0.103", + "syn 2.0.101", ] [[package]] @@ -2907,7 +4031,7 @@ source = "git+https://github.com/openvm-org/openvm.git?rev=bdb4831#bdb4831fefed1 dependencies = [ "openvm-macros-common", "quote", - "syn 2.0.103", + "syn 2.0.101", ] [[package]] @@ -3025,7 +4149,7 @@ source = "git+https://github.com/openvm-org/openvm.git?rev=bdb4831#bdb4831fefed1 dependencies = [ "itertools 0.14.0", "quote", - "syn 2.0.103", + "syn 2.0.101", ] [[package]] @@ -3050,7 +4174,7 @@ source = "git+https://github.com/openvm-org/openvm.git?rev=bdb4831#bdb4831fefed1 dependencies = [ "itertools 0.14.0", "quote", - "syn 2.0.103", + "syn 2.0.101", ] [[package]] @@ -3075,7 +4199,7 @@ source = "git+https://github.com/openvm-org/openvm.git?rev=a0ae88f#a0ae88f2c4d98 dependencies = [ "proc-macro2", "quote", - "syn 2.0.103", + "syn 2.0.101", ] [[package]] @@ -3085,7 +4209,7 @@ source = "git+https://github.com/openvm-org/openvm.git?rev=bdb4831#bdb4831fefed1 dependencies = [ "proc-macro2", "quote", - "syn 2.0.103", + "syn 2.0.101", ] [[package]] @@ -3151,7 +4275,7 @@ source = "git+https://github.com/openvm-org/openvm.git?rev=bdb4831#bdb4831fefed1 dependencies = [ "openvm-macros-common", "quote", - "syn 2.0.103", + "syn 2.0.101", ] [[package]] @@ -3191,7 +4315,7 @@ version = "1.2.0" source = "git+https://github.com/openvm-org/openvm.git?rev=bdb4831#bdb4831fefed13b0741d3a052d434a9c995c6d5d" dependencies = [ "quote", - "syn 2.0.103", + "syn 2.0.101", ] [[package]] @@ -3248,7 +4372,7 @@ name = "openvm-macros-common" version = "1.2.0" source = "git+https://github.com/openvm-org/openvm.git?rev=bdb4831#bdb4831fefed13b0741d3a052d434a9c995c6d5d" dependencies = [ - "syn 2.0.103", + "syn 2.0.101", ] [[package]] @@ -3327,7 +4451,7 @@ version = "1.2.0" source = "git+https://github.com/openvm-org/openvm.git?rev=bdb4831#bdb4831fefed13b0741d3a052d434a9c995c6d5d" dependencies = [ "quote", - "syn 2.0.103", + "syn 2.0.101", ] [[package]] @@ -4137,10 +5261,58 @@ version = "3.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "34b4653168b563151153c9e4c08ebed57fb8262bebfa79711552fa983c623e7a" dependencies = [ - "proc-macro-crate", + "proc-macro-crate 3.3.0", "proc-macro2", "quote", - "syn 2.0.103", + "syn 2.0.101", +] + +[[package]] +name = "parking_lot" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99" +dependencies = [ + "instant", + "lock_api", + "parking_lot_core 0.8.6", +] + +[[package]] +name = "parking_lot" +version = "0.12.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70d58bf43669b5795d1576d0641cfb6fbb2057bf629506267a92807158584a13" +dependencies = [ + "lock_api", + "parking_lot_core 0.9.11", +] + +[[package]] +name = "parking_lot_core" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60a2cfe6f0ad2bfc16aefa463b497d5c7a5ecd44a23efa72aa342d90177356dc" +dependencies = [ + "cfg-if", + "instant", + "libc", + "redox_syscall 0.2.16", + "smallvec", + "winapi", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc838d2a56b5b1a6c25f55575dfc605fabb63bb2365f6c2353ef9159aa69e4a5" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall 0.5.12", + "smallvec", + "windows-targets 0.52.6", ] [[package]] @@ -4187,15 +5359,45 @@ checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" [[package]] name = "pest" -version = "2.8.1" +version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1db05f56d34358a8b1066f67cbb203ee3e7ed2ba674a6263a1d5ec6db2204323" +checksum = "198db74531d58c70a361c42201efde7e2591e976d518caf7662a47dc5720e7b6" dependencies = [ "memchr", "thiserror 2.0.12", "ucd-trie", ] +[[package]] +name = "pharos" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e9567389417feee6ce15dd6527a8a1ecac205ef62c2932bcf3d9f6fc5b78b414" +dependencies = [ + "futures", + "rustc_version 0.4.1", +] + +[[package]] +name = "pin-project" +version = "1.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "677f1add503faace112b9f1373e43e9e054bfdd22ff1a63c1bc485eaec6a6a8a" +dependencies = [ + "pin-project-internal", +] + +[[package]] +name = "pin-project-internal" +version = "1.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.101", +] + [[package]] name = "pin-project-lite" version = "0.2.16" @@ -4218,6 +5420,12 @@ dependencies = [ "spki", ] +[[package]] +name = "pkg-config" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" + [[package]] name = "portable-atomic" version = "1.11.1" @@ -4235,7 +5443,7 @@ dependencies = [ "lazy_static", "log", "rand 0.8.5", - "rand_xorshift 0.3.0", + "rand_xorshift", "thiserror 1.0.69", ] @@ -4265,12 +5473,12 @@ dependencies = [ [[package]] name = "prettyplease" -version = "0.2.34" +version = "0.2.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6837b9e10d61f45f987d50808f83d1ee3d206c66acf650c3e4ae2e1f6ddedf55" +checksum = "9dee91521343f4c5c6a63edd65e54f31f5c92fe8978c40a4282f8372194c6a7d" dependencies = [ "proc-macro2", - "syn 2.0.103", + "syn 2.0.101", ] [[package]] @@ -4290,16 +5498,29 @@ checksum = "0b34d9fd68ae0b74a41b21c03c2f62847aa0ffea044eee893b4c140b37e244e2" dependencies = [ "fixed-hash", "impl-codec", + "impl-rlp", + "impl-serde", + "scale-info", "uint", ] +[[package]] +name = "proc-macro-crate" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" +dependencies = [ + "once_cell", + "toml_edit 0.19.15", +] + [[package]] name = "proc-macro-crate" version = "3.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "edce586971a4dfaa28950c6f18ed55e0406c1ab88bbce2c6f6293a7aaba73d35" dependencies = [ - "toml_edit", + "toml_edit 0.22.26", ] [[package]] @@ -4321,7 +5542,7 @@ dependencies = [ "proc-macro-error-attr2", "proc-macro2", "quote", - "syn 2.0.103", + "syn 2.0.101", ] [[package]] @@ -4335,24 +5556,53 @@ dependencies = [ [[package]] name = "proptest" -version = "1.7.0" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fcdab19deb5195a31cf7726a210015ff1496ba1464fd42cb4f537b8b01b471f" +checksum = "14cae93065090804185d3b75f0bf93b8eeda30c7a9b4a33d3bdb3988d6229e50" dependencies = [ "bit-set", "bit-vec", - "bitflags", + "bitflags 2.9.1", "lazy_static", "num-traits", - "rand 0.9.1", - "rand_chacha 0.9.0", - "rand_xorshift 0.4.0", + "rand 0.8.5", + "rand_chacha 0.3.1", + "rand_xorshift", "regex-syntax 0.8.5", "rusty-fork", "tempfile", "unarray", ] +[[package]] +name = "prover" +version = "0.1.0" +dependencies = [ + "async-trait", + "base64 0.22.1", + "clap", + "ctor", + "eyre", + "futures", + "hex", + "http 1.3.1", + "once_cell", + "rand 0.8.5", + "reqwest 0.12.19", + "reqwest-middleware", + "reqwest-retry", + "scroll-proving-sdk", + "scroll-zkvm-prover", + "scroll-zkvm-types", + "serde", + "serde_bytes", + "serde_json", + "sled", + "tiny-keccak", + "tokio", + "url", +] + [[package]] name = "psm" version = "0.1.26" @@ -4379,20 +5629,20 @@ checksum = "ca414edb151b4c8d125c12566ab0d74dc9cdba36fb80eb7b848c15f495fd32d1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.103", + "syn 2.0.101", ] [[package]] name = "quanta" -version = "0.12.6" +version = "0.12.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3ab5a9d756f0d97bdc89019bd2e4ea098cf9cde50ee7564dde6b81ccc8f06c7" +checksum = "3bd1fe6824cea6538803de3ff1bc0cf3949024db3d43c9643024bfb33a807c0e" dependencies = [ "crossbeam-utils", "libc", "once_cell", "raw-cpuid", - "wasi 0.11.1+wasi-snapshot-preview1", + "wasi 0.11.0+wasi-snapshot-preview1", "web-sys", "winapi", ] @@ -4403,6 +5653,61 @@ version = "1.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" +[[package]] +name = "quinn" +version = "0.11.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "626214629cda6781b6dc1d316ba307189c85ba657213ce642d9c77670f8202c8" +dependencies = [ + "bytes", + "cfg_aliases", + "pin-project-lite", + "quinn-proto", + "quinn-udp", + "rustc-hash 2.1.1", + "rustls 0.23.27", + "socket2", + "thiserror 2.0.12", + "tokio", + "tracing", + "web-time", +] + +[[package]] +name = "quinn-proto" +version = "0.11.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49df843a9161c85bb8aae55f101bc0bac8bcafd637a620d9122fd7e0b2f7422e" +dependencies = [ + "bytes", + "getrandom 0.3.3", + "lru-slab", + "rand 0.9.1", + "ring 0.17.14", + "rustc-hash 2.1.1", + "rustls 0.23.27", + "rustls-pki-types", + "slab", + "thiserror 2.0.12", + "tinyvec", + "tracing", + "web-time", +] + +[[package]] +name = "quinn-udp" +version = "0.5.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee4e529991f949c5e25755532370b8af5d114acae52326361d68d47af64aa842" +dependencies = [ + "cfg_aliases", + "libc", + "once_cell", + "socket2", + "tracing", + "windows-sys 0.59.0", +] + [[package]] name = "quote" version = "1.0.40" @@ -4414,9 +5719,9 @@ dependencies = [ [[package]] name = "r-efi" -version = "5.3.0" +version = "5.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" +checksum = "74765f6d916ee2faa39bc8e68e4f3ed8949b48cccdac59983d287a7cb71ce9c5" [[package]] name = "radium" @@ -4512,22 +5817,13 @@ dependencies = [ "rand_core 0.6.4", ] -[[package]] -name = "rand_xorshift" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "513962919efc330f829edb2535844d1b912b0fbe2ca165d613e4e8788bb05a5a" -dependencies = [ - "rand_core 0.9.3", -] - [[package]] name = "raw-cpuid" version = "11.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c6df7ab838ed27997ba19a4664507e6f82b41fe6e20be42929332156e5e85146" dependencies = [ - "bitflags", + "bitflags 2.9.1", ] [[package]] @@ -4551,23 +5847,21 @@ dependencies = [ ] [[package]] -name = "ref-cast" -version = "1.0.24" +name = "redox_syscall" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a0ae411dbe946a674d89546582cea4ba2bb8defac896622d6496f14c23ba5cf" +checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" dependencies = [ - "ref-cast-impl", + "bitflags 1.3.2", ] [[package]] -name = "ref-cast-impl" -version = "1.0.24" +name = "redox_syscall" +version = "0.5.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1165225c21bff1f3bbce98f5a1f889949bc902d3575308cc7b0de30b4f6d27c7" +checksum = "928fca9cf2aa042393a8325b9ead81d2f0df4cb12e1e24cef072922ccd99c5af" dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.103", + "bitflags 2.9.1", ] [[package]] @@ -4623,6 +5917,133 @@ dependencies = [ "bytecheck", ] +[[package]] +name = "reqwest" +version = "0.11.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd67538700a17451e7cba03ac727fb961abb7607553461627b97de0b89cf4a62" +dependencies = [ + "base64 0.21.7", + "bytes", + "encoding_rs", + "futures-core", + "futures-util", + "h2 0.3.26", + "http 0.2.12", + "http-body 0.4.6", + "hyper 0.14.32", + "hyper-rustls 0.24.2", + "ipnet", + "js-sys", + "log", + "mime", + "once_cell", + "percent-encoding", + "pin-project-lite", + "rustls 0.21.12", + "rustls-pemfile", + "serde", + "serde_json", + "serde_urlencoded", + "sync_wrapper 0.1.2", + "system-configuration 0.5.1", + "tokio", + "tokio-rustls 0.24.1", + "tower-service", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "webpki-roots 0.25.4", + "winreg", +] + +[[package]] +name = "reqwest" +version = "0.12.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2f8e5513d63f2e5b386eb5106dc67eaf3f84e95258e210489136b8b92ad6119" +dependencies = [ + "async-compression", + "base64 0.22.1", + "bytes", + "encoding_rs", + "futures-core", + "futures-util", + "h2 0.4.10", + "http 1.3.1", + "http-body 1.0.1", + "http-body-util", + "hyper 1.6.0", + "hyper-rustls 0.27.7", + "hyper-tls", + "hyper-util", + "ipnet", + "js-sys", + "log", + "mime", + "native-tls", + "once_cell", + "percent-encoding", + "pin-project-lite", + "quinn", + "rustls 0.23.27", + "rustls-pki-types", + "serde", + "serde_json", + "serde_urlencoded", + "sync_wrapper 1.0.2", + "tokio", + "tokio-native-tls", + "tokio-rustls 0.26.2", + "tokio-util", + "tower 0.5.2", + "tower-http", + "tower-service", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "webpki-roots 1.0.0", +] + +[[package]] +name = "reqwest-middleware" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "562ceb5a604d3f7c885a792d42c199fd8af239d0a51b2fa6a78aafa092452b04" +dependencies = [ + "anyhow", + "async-trait", + "http 1.3.1", + "reqwest 0.12.19", + "serde", + "thiserror 1.0.69", + "tower-service", +] + +[[package]] +name = "reqwest-retry" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "40f342894422862af74c50e1e9601cf0931accc9c6981e5eb413c46603b616b5" +dependencies = [ + "anyhow", + "async-trait", + "chrono", + "futures", + "getrandom 0.2.16", + "http 1.3.1", + "hyper 1.6.0", + "parking_lot 0.11.2", + "reqwest 0.12.19", + "reqwest-middleware", + "retry-policies", + "tokio", + "tracing", + "wasm-timer", +] + [[package]] name = "reth-chainspec" version = "1.1.5" @@ -4667,7 +6088,7 @@ dependencies = [ "convert_case 0.6.0", "proc-macro2", "quote", - "syn 2.0.103", + "syn 2.0.101", ] [[package]] @@ -4934,7 +6355,7 @@ dependencies = [ "serde", "thiserror 2.0.12", "tracing", - "zstd", + "zstd 1.1.4", ] [[package]] @@ -5262,7 +6683,18 @@ name = "reth-zstd-compressors" version = "1.1.5" source = "git+https://github.com/scroll-tech/reth?branch=zkvm%2Feuclid-upgrade#6009111704d286ed6c737fe78dca09d613be0352" dependencies = [ - "zstd", + "zstd 1.1.4", +] + +[[package]] +name = "retry-policies" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "493b4243e32d6eedd29f9a398896e35c6943a123b55eec97dcaee98310d25810" +dependencies = [ + "anyhow", + "chrono", + "rand 0.8.5", ] [[package]] @@ -5359,7 +6791,7 @@ dependencies = [ "alloy-eip7702", "alloy-primitives", "auto_impl", - "bitflags", + "bitflags 2.9.1", "bitvec", "c-kzg", "cfg-if", @@ -5379,7 +6811,7 @@ dependencies = [ "alloy-eip7702", "alloy-primitives", "auto_impl", - "bitflags", + "bitflags 2.9.1", "bitvec", "c-kzg", "cfg-if", @@ -5399,6 +6831,35 @@ dependencies = [ "subtle", ] +[[package]] +name = "ring" +version = "0.16.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc" +dependencies = [ + "cc", + "libc", + "once_cell", + "spin 0.5.2", + "untrusted 0.7.1", + "web-sys", + "winapi", +] + +[[package]] +name = "ring" +version = "0.17.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7" +dependencies = [ + "cc", + "cfg-if", + "getrandom 0.2.16", + "libc", + "untrusted 0.9.0", + "windows-sys 0.52.0", +] + [[package]] name = "ripemd" version = "0.1.3" @@ -5416,7 +6877,7 @@ checksum = "1e147371c75553e1e2fcdb483944a8540b8438c31426279553b9a8182a9b7b65" dependencies = [ "bytecheck", "bytes", - "hashbrown 0.15.4", + "hashbrown 0.15.3", "indexmap 2.9.0", "munge", "ptr_meta", @@ -5435,7 +6896,7 @@ checksum = "246b40ac189af6c675d124b802e8ef6d5246c53e17367ce9501f8f66a81abb7a" dependencies = [ "proc-macro2", "quote", - "syn 2.0.103", + "syn 2.0.101", ] [[package]] @@ -5445,9 +6906,21 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bb919243f34364b6bd2fc10ef797edbfa75f33c252e7998527479c6d6b47e1ec" dependencies = [ "bytes", + "rlp-derive", "rustc-hex", ] +[[package]] +name = "rlp-derive" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e33d7b2abe0c340d8797fe2907d3f20d3b5ea5908683618bfe80df7f621f672a" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + [[package]] name = "roaring" version = "0.10.12" @@ -5458,6 +6931,16 @@ dependencies = [ "byteorder", ] +[[package]] +name = "rocksdb" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26ec73b20525cb235bad420f911473b69f9fe27cc856c5461bccd7e4af037f43" +dependencies = [ + "libc", + "librocksdb-sys", +] + [[package]] name = "rolling-file" version = "0.2.0" @@ -5508,9 +6991,9 @@ source = "git+https://github.com/scroll-tech/uint.git?branch=v1.12.3#d26b1f2a441 [[package]] name = "rustc-demangle" -version = "0.1.25" +version = "0.1.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "989e6739f80c4ad5b13e0fd7fe89531180375b18520cc8c82080e4dc4035b84f" +checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" [[package]] name = "rustc-hash" @@ -5554,11 +7037,87 @@ version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c71e83d6afe7ff64890ec6b71d6a69bb8a610ab78ce364b3352876bb4c801266" dependencies = [ - "bitflags", + "bitflags 2.9.1", "errno", "libc", "linux-raw-sys", - "windows-sys", + "windows-sys 0.59.0", +] + +[[package]] +name = "rustls" +version = "0.21.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f56a14d1f48b391359b22f731fd4bd7e43c97f3c50eee276f3aa09c94784d3e" +dependencies = [ + "log", + "ring 0.17.14", + "rustls-webpki 0.101.7", + "sct", +] + +[[package]] +name = "rustls" +version = "0.23.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "730944ca083c1c233a75c09f199e973ca499344a2b7ba9e755c457e86fb4a321" +dependencies = [ + "once_cell", + "ring 0.17.14", + "rustls-pki-types", + "rustls-webpki 0.103.3", + "subtle", + "zeroize", +] + +[[package]] +name = "rustls-pemfile" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" +dependencies = [ + "base64 0.21.7", +] + +[[package]] +name = "rustls-pki-types" +version = "1.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "229a4a4c221013e7e1f1a043678c5cc39fe5171437c88fb47151a21e6f5b5c79" +dependencies = [ + "web-time", + "zeroize", +] + +[[package]] +name = "rustls-webpki" +version = "0.100.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f6a5fc258f1c1276dfe3016516945546e2d5383911efc0fc4f1cdc5df3a4ae3" +dependencies = [ + "ring 0.16.20", + "untrusted 0.7.1", +] + +[[package]] +name = "rustls-webpki" +version = "0.101.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765" +dependencies = [ + "ring 0.17.14", + "untrusted 0.9.0", +] + +[[package]] +name = "rustls-webpki" +version = "0.103.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4a72fe2bcf7a6ac6fd7d0b9e5cb68aeb7d4c0a0271730218b3e92d43b4eb435" +dependencies = [ + "ring 0.17.14", + "rustls-pki-types", + "untrusted 0.9.0", ] [[package]] @@ -5616,7 +7175,7 @@ version = "2.0.0" source = "git+https://github.com/scroll-tech/stateless-block-verifier?branch=zkvm%2Feuclid-upgrade#2c46ab68c4d77bf27aa6c27bf7763bede4dab968" dependencies = [ "auto_impl", - "hashbrown 0.15.4", + "hashbrown 0.15.3", "rustc-hash 2.1.1", ] @@ -5667,17 +7226,57 @@ dependencies = [ ] [[package]] -name = "schemars" -version = "0.9.0" +name = "sbv-utils" +version = "2.0.0" +source = "git+https://github.com/scroll-tech/stateless-block-verifier?branch=zkvm%2Feuclid-upgrade#2c46ab68c4d77bf27aa6c27bf7763bede4dab968" +dependencies = [ + "alloy-provider", + "alloy-transport", + "async-trait", + "futures", + "sbv-primitives", + "thiserror 1.0.69", +] + +[[package]] +name = "scale-info" +version = "2.11.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cd191f9397d57d581cddd31014772520aa448f65ef991055d7f61582c65165f" +checksum = "346a3b32eba2640d17a9cb5927056b08f3de90f65b72fe09402c2ad07d684d0b" dependencies = [ - "dyn-clone", - "ref-cast", - "serde", - "serde_json", + "cfg-if", + "derive_more 1.0.0", + "parity-scale-codec", + "scale-info-derive", +] + +[[package]] +name = "scale-info-derive" +version = "2.11.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6630024bf739e2179b91fb424b28898baf819414262c5d376677dbff1fe7ebf" +dependencies = [ + "proc-macro-crate 3.3.0", + "proc-macro2", + "quote", + "syn 2.0.101", +] + +[[package]] +name = "schannel" +version = "0.1.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f29ebaa345f945cec9fbbc532eb307f0fdad8161f281b6369539c8d84876b3d" +dependencies = [ + "windows-sys 0.59.0", ] +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + [[package]] name = "scroll-alloy-consensus" version = "1.1.5" @@ -5727,10 +7326,67 @@ dependencies = [ "serde_json", ] +[[package]] +name = "scroll-proving-sdk" +version = "0.1.0" +source = "git+https://github.com/scroll-tech/scroll-proving-sdk.git?branch=refactor%2Fscroll#5c08f96093cb49f64cbbc90dfbd50f6371f33c72" +dependencies = [ + "anyhow", + "async-trait", + "axum", + "clap", + "dotenv", + "ethers-core", + "ethers-providers", + "hex", + "http 1.3.1", + "log", + "rand 0.8.5", + "reqwest 0.12.19", + "reqwest-middleware", + "reqwest-retry", + "rlp", + "rocksdb", + "serde", + "serde_json", + "tiny-keccak", + "tokio", + "tracing", + "tracing-subscriber", + "url", +] + +[[package]] +name = "scroll-zkvm-integration" +version = "4.5.8" +dependencies = [ + "alloy-primitives", + "chrono", + "eyre", + "ff 0.13.1", + "glob", + "halo2curves-axiom", + "libzkp", + "metrics-tracing-context", + "once_cell", + "revm 19.7.0", + "sbv-primitives", + "scroll-zkvm-prover", + "scroll-zkvm-types", + "scroll-zkvm-verifier", + "serde", + "serde_json", + "sha2", + "snark-verifier-sdk", + "tracing", + "tracing-subscriber", + "vm-zstd", +] + [[package]] name = "scroll-zkvm-prover" version = "0.4.0" -source = "git+https://github.com/scroll-tech/zkvm-prover.git#f6d5a59c1c41e010c51e0d8b554ccd2a5a171209" +source = "git+https://github.com/scroll-tech/zkvm-prover?branch=refactor%2Fscroll_3#0f2b551c6a8c079967968f97d7488acb9b0c87ae" dependencies = [ "alloy-primitives", "base64 0.22.1", @@ -5766,7 +7422,7 @@ dependencies = [ [[package]] name = "scroll-zkvm-types" version = "0.4.0" -source = "git+https://github.com/scroll-tech/zkvm-prover.git#f6d5a59c1c41e010c51e0d8b554ccd2a5a171209" +source = "git+https://github.com/scroll-tech/zkvm-prover?branch=refactor%2Fscroll_3#0f2b551c6a8c079967968f97d7488acb9b0c87ae" dependencies = [ "base64 0.22.1", "bincode", @@ -5786,7 +7442,7 @@ dependencies = [ [[package]] name = "scroll-zkvm-types-base" version = "0.4.0" -source = "git+https://github.com/scroll-tech/zkvm-prover.git#f6d5a59c1c41e010c51e0d8b554ccd2a5a171209" +source = "git+https://github.com/scroll-tech/zkvm-prover?branch=refactor%2Fscroll_3#0f2b551c6a8c079967968f97d7488acb9b0c87ae" dependencies = [ "alloy-primitives", "alloy-serde 0.8.3", @@ -5801,7 +7457,7 @@ dependencies = [ [[package]] name = "scroll-zkvm-types-batch" version = "0.4.0" -source = "git+https://github.com/scroll-tech/zkvm-prover.git#f6d5a59c1c41e010c51e0d8b554ccd2a5a171209" +source = "git+https://github.com/scroll-tech/zkvm-prover?branch=refactor%2Fscroll_3#0f2b551c6a8c079967968f97d7488acb9b0c87ae" dependencies = [ "alloy-primitives", "itertools 0.14.0", @@ -5814,7 +7470,7 @@ dependencies = [ [[package]] name = "scroll-zkvm-types-bundle" version = "0.4.0" -source = "git+https://github.com/scroll-tech/zkvm-prover.git#f6d5a59c1c41e010c51e0d8b554ccd2a5a171209" +source = "git+https://github.com/scroll-tech/zkvm-prover?branch=refactor%2Fscroll_3#0f2b551c6a8c079967968f97d7488acb9b0c87ae" dependencies = [ "alloy-primitives", "itertools 0.14.0", @@ -5827,7 +7483,7 @@ dependencies = [ [[package]] name = "scroll-zkvm-types-chunk" version = "0.4.0" -source = "git+https://github.com/scroll-tech/zkvm-prover.git#f6d5a59c1c41e010c51e0d8b554ccd2a5a171209" +source = "git+https://github.com/scroll-tech/zkvm-prover?branch=refactor%2Fscroll_3#0f2b551c6a8c079967968f97d7488acb9b0c87ae" dependencies = [ "alloy-primitives", "itertools 0.14.0", @@ -5846,7 +7502,7 @@ dependencies = [ [[package]] name = "scroll-zkvm-verifier" version = "0.4.0" -source = "git+https://github.com/scroll-tech/zkvm-prover.git#f6d5a59c1c41e010c51e0d8b554ccd2a5a171209" +source = "git+https://github.com/scroll-tech/zkvm-prover?branch=refactor%2Fscroll_3#0f2b551c6a8c079967968f97d7488acb9b0c87ae" dependencies = [ "bincode", "eyre", @@ -5863,6 +7519,16 @@ dependencies = [ "snark-verifier-sdk", ] +[[package]] +name = "sct" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" +dependencies = [ + "ring 0.17.14", + "untrusted 0.9.0", +] + [[package]] name = "sec1" version = "0.7.3" @@ -5898,6 +7564,29 @@ dependencies = [ "cc", ] +[[package]] +name = "security-framework" +version = "2.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" +dependencies = [ + "bitflags 2.9.1", + "core-foundation", + "core-foundation-sys", + "libc", + "security-framework-sys", +] + +[[package]] +name = "security-framework-sys" +version = "2.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49db231d56a190491cb4aeda9527f1ad45345af50b0851622a7adb8c03b01c32" +dependencies = [ + "core-foundation-sys", + "libc", +] + [[package]] name = "semver" version = "0.11.0" @@ -5925,6 +7614,18 @@ dependencies = [ "pest", ] +[[package]] +name = "send_wrapper" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f638d531eccd6e23b980caf34876660d38e265409d8e99b397ab71eb3612fad0" + +[[package]] +name = "send_wrapper" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" + [[package]] name = "serde" version = "1.0.219" @@ -5947,7 +7648,16 @@ dependencies = [ name = "serde_arrays" version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38636132857f68ec3d5f3eb121166d2af33cb55174c4d5ff645db6165cbef0fd" +checksum = "38636132857f68ec3d5f3eb121166d2af33cb55174c4d5ff645db6165cbef0fd" +dependencies = [ + "serde", +] + +[[package]] +name = "serde_bytes" +version = "0.11.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8437fd221bde2d4ca316d61b90e337e9e702b3820b87d63caa9ba6c02bd06d96" dependencies = [ "serde", ] @@ -5960,7 +7670,7 @@ checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" dependencies = [ "proc-macro2", "quote", - "syn 2.0.103", + "syn 2.0.101", ] [[package]] @@ -5976,11 +7686,21 @@ dependencies = [ "serde", ] +[[package]] +name = "serde_path_to_error" +version = "0.1.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59fab13f937fa393d08645bf3a84bdfe86e296747b506ada67bb15f10f218b2a" +dependencies = [ + "itoa", + "serde", +] + [[package]] name = "serde_spanned" -version = "0.6.9" +version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf41e0cfaf7226dca15e8197172c295a782857fcb97fad1808a166870dee75a3" +checksum = "87607cb1398ed59d48732e575a4c28a7a8ebf2454b964fe3f224f2afc07909e1" dependencies = [ "serde", ] @@ -5995,18 +7715,29 @@ dependencies = [ "stacker", ] +[[package]] +name = "serde_urlencoded" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" +dependencies = [ + "form_urlencoded", + "itoa", + "ryu", + "serde", +] + [[package]] name = "serde_with" -version = "3.13.0" +version = "3.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf65a400f8f66fb7b0552869ad70157166676db75ed8181f8104ea91cf9d0b42" +checksum = "d6b6f7f2fcb69f747921f79f3926bd1e203fce4fef62c268dd3abfb6d86029aa" dependencies = [ "base64 0.22.1", "chrono", "hex", "indexmap 1.9.3", "indexmap 2.9.0", - "schemars", "serde", "serde_derive", "serde_json", @@ -6016,14 +7747,14 @@ dependencies = [ [[package]] name = "serde_with_macros" -version = "3.13.0" +version = "3.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81679d9ed988d5e9a5e6531dc3f2c28efbd639cbd1dfb628df08edea6004da77" +checksum = "8d00caa5193a3c8362ac2b73be6b9e768aa5a4b2f721d8f4b339600c3cb51f8e" dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.103", + "syn 2.0.101", ] [[package]] @@ -6036,6 +7767,17 @@ dependencies = [ "serde", ] +[[package]] +name = "sha1" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest 0.10.7", +] + [[package]] name = "sha2" version = "0.10.9" @@ -6082,6 +7824,15 @@ version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" +[[package]] +name = "signal-hook-registry" +version = "1.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9203b8055f63a2a00e2f593bb0510367fe707d7ff1e5c872de2f537b339e5410" +dependencies = [ + "libc", +] + [[package]] name = "signature" version = "2.2.0" @@ -6106,15 +7857,34 @@ checksum = "85636c14b73d81f541e525f585c0a2109e6744e1565b5c1668e31c70c10ed65c" [[package]] name = "slab" -version = "0.4.10" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" +dependencies = [ + "autocfg", +] + +[[package]] +name = "sled" +version = "0.34.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04dc19736151f35336d325007ac991178d504a119863a2fcb3758cdb5e52c50d" +checksum = "7f96b4737c2ce5987354855aed3797279def4ebf734436c6aa4552cf8e169935" +dependencies = [ + "crc32fast", + "crossbeam-epoch", + "crossbeam-utils", + "fs2", + "fxhash", + "libc", + "log", + "parking_lot 0.11.2", +] [[package]] name = "smallvec" -version = "1.15.1" +version = "1.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" +checksum = "8917285742e9f3e1683f0a9c4e6b57960b7314d0b08d30d1ecd426713ee2eee9" dependencies = [ "serde", ] @@ -6164,6 +7934,22 @@ dependencies = [ "snark-verifier", ] +[[package]] +name = "socket2" +version = "0.5.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e22376abed350d73dd1cd119b57ffccad95b4e585a7cda43e286245ce23c0678" +dependencies = [ + "libc", + "windows-sys 0.52.0", +] + +[[package]] +name = "spin" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" + [[package]] name = "spin" version = "0.9.8" @@ -6196,7 +7982,7 @@ dependencies = [ "cfg-if", "libc", "psm", - "windows-sys", + "windows-sys 0.59.0", ] [[package]] @@ -6217,6 +8003,15 @@ version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" +[[package]] +name = "strum" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "063e6045c0e62079840579a7e47a355ae92f60eb74daaf156fb1e84ba164e63f" +dependencies = [ + "strum_macros 0.24.3", +] + [[package]] name = "strum" version = "0.25.0" @@ -6241,6 +8036,19 @@ dependencies = [ "strum_macros 0.27.1", ] +[[package]] +name = "strum_macros" +version = "0.24.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59" +dependencies = [ + "heck 0.4.1", + "proc-macro2", + "quote", + "rustversion", + "syn 1.0.109", +] + [[package]] name = "strum_macros" version = "0.25.3" @@ -6251,7 +8059,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.103", + "syn 2.0.101", ] [[package]] @@ -6264,7 +8072,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.103", + "syn 2.0.101", ] [[package]] @@ -6277,7 +8085,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.103", + "syn 2.0.101", ] [[package]] @@ -6312,9 +8120,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.103" +version = "2.0.101" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4307e30089d6fd6aff212f2da3a1f9e32f3223b1f010fb09b7c95f90f3ca1e8" +checksum = "8ce2b7fc941b3a24138a0a7cf8e858bfc6a992e7978a068a5c760deb0ed43caf" dependencies = [ "proc-macro2", "quote", @@ -6330,7 +8138,22 @@ dependencies = [ "paste", "proc-macro2", "quote", - "syn 2.0.103", + "syn 2.0.101", +] + +[[package]] +name = "sync_wrapper" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" + +[[package]] +name = "sync_wrapper" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263" +dependencies = [ + "futures-core", ] [[package]] @@ -6341,7 +8164,7 @@ checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" dependencies = [ "proc-macro2", "quote", - "syn 2.0.103", + "syn 2.0.101", ] [[package]] @@ -6357,6 +8180,48 @@ dependencies = [ "windows", ] +[[package]] +name = "system-configuration" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" +dependencies = [ + "bitflags 1.3.2", + "core-foundation", + "system-configuration-sys 0.5.0", +] + +[[package]] +name = "system-configuration" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" +dependencies = [ + "bitflags 2.9.1", + "core-foundation", + "system-configuration-sys 0.6.0", +] + +[[package]] +name = "system-configuration-sys" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "system-configuration-sys" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e1d1b10ced5ca923a1fcb8d03e96b8d3268065d724548c0211415ff6ac6bac4" +dependencies = [ + "core-foundation-sys", + "libc", +] + [[package]] name = "tap" version = "1.0.1" @@ -6373,16 +8238,7 @@ dependencies = [ "getrandom 0.3.3", "once_cell", "rustix", - "windows-sys", -] - -[[package]] -name = "termcolor" -version = "1.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755" -dependencies = [ - "winapi-util", + "windows-sys 0.59.0", ] [[package]] @@ -6403,7 +8259,7 @@ dependencies = [ "cfg-if", "proc-macro2", "quote", - "syn 2.0.103", + "syn 2.0.101", ] [[package]] @@ -6414,7 +8270,7 @@ checksum = "5c89e72a01ed4c579669add59014b9a524d609c0c88c6a585ce37485879f6ffb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.103", + "syn 2.0.101", "test-case-core", ] @@ -6444,7 +8300,7 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.103", + "syn 2.0.101", ] [[package]] @@ -6455,16 +8311,17 @@ checksum = "7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.103", + "syn 2.0.101", ] [[package]] name = "thread_local" -version = "1.1.9" +version = "1.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f60246a4944f24f6e018aa17cdeffb7818b76356965d03b07d6a9886e8962185" +checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" dependencies = [ "cfg-if", + "once_cell", ] [[package]] @@ -6561,46 +8418,217 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" +[[package]] +name = "tokio" +version = "1.45.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75ef51a33ef1da925cea3e4eb122833cb377c61439ca401b770f54902b806779" +dependencies = [ + "backtrace", + "bytes", + "libc", + "mio", + "parking_lot 0.12.4", + "pin-project-lite", + "signal-hook-registry", + "socket2", + "tokio-macros", + "windows-sys 0.52.0", +] + +[[package]] +name = "tokio-macros" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.101", +] + +[[package]] +name = "tokio-native-tls" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" +dependencies = [ + "native-tls", + "tokio", +] + +[[package]] +name = "tokio-rustls" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" +dependencies = [ + "rustls 0.21.12", + "tokio", +] + +[[package]] +name = "tokio-rustls" +version = "0.26.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e727b36a1a0e8b74c376ac2211e40c2c8af09fb4013c60d910495810f008e9b" +dependencies = [ + "rustls 0.23.27", + "tokio", +] + +[[package]] +name = "tokio-stream" +version = "0.1.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eca58d7bba4a75707817a2c44174253f9236b2d5fbd055602e9d5c07c139a047" +dependencies = [ + "futures-core", + "pin-project-lite", + "tokio", + "tokio-util", +] + +[[package]] +name = "tokio-tungstenite" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec509ac96e9a0c43427c74f003127d953a265737636129424288d27cb5c4b12c" +dependencies = [ + "futures-util", + "log", + "rustls 0.21.12", + "tokio", + "tokio-rustls 0.24.1", + "tungstenite", + "webpki-roots 0.23.1", +] + +[[package]] +name = "tokio-util" +version = "0.7.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "66a539a9ad6d5d281510d5bd368c973d636c02dbf8a67300bfb6b950696ad7df" +dependencies = [ + "bytes", + "futures-core", + "futures-sink", + "pin-project-lite", + "tokio", +] + [[package]] name = "toml" -version = "0.8.23" +version = "0.8.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc1beb996b9d83529a9e75c17a1686767d148d70663143c7854d8b4a09ced362" +checksum = "05ae329d1f08c4d17a59bed7ff5b5a769d062e64a62d34a3261b219e62cd5aae" dependencies = [ "serde", "serde_spanned", "toml_datetime", - "toml_edit", + "toml_edit 0.22.26", ] [[package]] name = "toml_datetime" -version = "0.6.11" +version = "0.6.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22cddaf88f4fbc13c51aebbf5f8eceb5c7c5a9da2ac40a13519eb5b0a0e8f11c" +checksum = "3da5db5a963e24bc68be8b17b6fa82814bb22ee8660f192bb182771d498f09a3" dependencies = [ "serde", ] [[package]] name = "toml_edit" -version = "0.22.27" +version = "0.19.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" +dependencies = [ + "indexmap 2.9.0", + "toml_datetime", + "winnow 0.5.40", +] + +[[package]] +name = "toml_edit" +version = "0.22.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a" +checksum = "310068873db2c5b3e7659d2cc35d21855dbafa50d1ce336397c666e3cb08137e" dependencies = [ "indexmap 2.9.0", "serde", "serde_spanned", "toml_datetime", "toml_write", - "winnow", + "winnow 0.7.10", ] [[package]] name = "toml_write" -version = "0.1.2" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfb942dfe1d8e29a7ee7fcbde5bd2b9a25fb89aa70caea2eba3bee836ff41076" + +[[package]] +name = "tower" +version = "0.4.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" +dependencies = [ + "futures-core", + "futures-util", + "pin-project", + "pin-project-lite", + "tokio", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "tower" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d039ad9159c98b70ecfd540b2573b97f7f52c3e8d9f8ad57a24b916a536975f9" +dependencies = [ + "futures-core", + "futures-util", + "pin-project-lite", + "sync_wrapper 1.0.2", + "tokio", + "tower-layer", + "tower-service", +] + +[[package]] +name = "tower-http" +version = "0.6.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adc82fd73de2a9722ac5da747f12383d2bfdb93591ee6c58486e0097890f05f2" +dependencies = [ + "bitflags 2.9.1", + "bytes", + "futures-util", + "http 1.3.1", + "http-body 1.0.1", + "iri-string", + "pin-project-lite", + "tower 0.5.2", + "tower-layer", + "tower-service", +] + +[[package]] +name = "tower-layer" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e" + +[[package]] +name = "tower-service" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d99f8c9a7727884afe522e9bd5edbfc91a3312b36a77b5fb8926e4c31a41801" +checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" [[package]] name = "tracing" @@ -6608,6 +8636,7 @@ version = "0.1.41" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" dependencies = [ + "log", "pin-project-lite", "tracing-attributes", "tracing-core", @@ -6627,13 +8656,13 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.30" +version = "0.1.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81383ab64e72a7a8b8e13130c49e3dab29def6d0c7d76a03087b3cf71c5c6903" +checksum = "1b1ffbcf9c6f6b99d386e7444eb608ba646ae452a36b39737deb9663b610f662" dependencies = [ "proc-macro2", "quote", - "syn 2.0.103", + "syn 2.0.101", ] [[package]] @@ -6659,6 +8688,16 @@ dependencies = [ "tracing-subscriber", ] +[[package]] +name = "tracing-futures" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2" +dependencies = [ + "pin-project", + "tracing", +] + [[package]] name = "tracing-journald" version = "0.3.1" @@ -6734,6 +8773,33 @@ dependencies = [ "strength_reduce", ] +[[package]] +name = "try-lock" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" + +[[package]] +name = "tungstenite" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "15fba1a6d6bb030745759a9a2a588bfe8490fc8b4751a277db3a0be1c9ebbf67" +dependencies = [ + "byteorder", + "bytes", + "data-encoding", + "http 0.2.12", + "httparse", + "log", + "rand 0.8.5", + "rustls 0.21.12", + "sha1", + "thiserror 1.0.69", + "url", + "utf-8", + "webpki", +] + [[package]] name = "typenum" version = "1.18.0" @@ -6786,11 +8852,23 @@ checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" name = "unroll" version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ad948c1cb799b1a70f836077721a92a35ac177d4daddf4c20a633786d4cf618" -dependencies = [ - "quote", - "syn 1.0.109", -] +checksum = "5ad948c1cb799b1a70f836077721a92a35ac177d4daddf4c20a633786d4cf618" +dependencies = [ + "quote", + "syn 1.0.109", +] + +[[package]] +name = "untrusted" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" + +[[package]] +name = "untrusted" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" [[package]] name = "url" @@ -6803,6 +8881,12 @@ dependencies = [ "percent-encoding", ] +[[package]] +name = "utf-8" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" + [[package]] name = "utf8_iter" version = "1.0.4" @@ -6831,6 +8915,12 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65" +[[package]] +name = "vcpkg" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" + [[package]] name = "version_check" version = "0.9.5" @@ -6844,6 +8934,7 @@ source = "git+https://github.com/scroll-tech/rust-zstd-decompressor.git?tag=v0.1 dependencies = [ "anyhow", "bitstream-io", + "encoder", "itertools 0.11.0", "serde", "strum 0.25.0", @@ -6859,11 +8950,20 @@ dependencies = [ "libc", ] +[[package]] +name = "want" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" +dependencies = [ + "try-lock", +] + [[package]] name = "wasi" -version = "0.11.1+wasi-snapshot-preview1" +version = "0.11.0+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasi" @@ -6896,10 +8996,23 @@ dependencies = [ "log", "proc-macro2", "quote", - "syn 2.0.103", + "syn 2.0.101", "wasm-bindgen-shared", ] +[[package]] +name = "wasm-bindgen-futures" +version = "0.4.50" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "555d470ec0bc3bb57890405e5d4322cc9ea83cebb085523ced7be4144dac1e61" +dependencies = [ + "cfg-if", + "js-sys", + "once_cell", + "wasm-bindgen", + "web-sys", +] + [[package]] name = "wasm-bindgen-macro" version = "0.2.100" @@ -6918,7 +9031,7 @@ checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" dependencies = [ "proc-macro2", "quote", - "syn 2.0.103", + "syn 2.0.101", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -6932,6 +9045,35 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "wasm-timer" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be0ecb0db480561e9a7642b5d3e4187c128914e58aa84330b9493e3eb68c5e7f" +dependencies = [ + "futures", + "js-sys", + "parking_lot 0.11.2", + "pin-utils", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + +[[package]] +name = "wasmtimer" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0048ad49a55b9deb3953841fa1fc5858f0efbcb7a18868c899a360269fac1b23" +dependencies = [ + "futures", + "js-sys", + "parking_lot 0.12.4", + "pin-utils", + "slab", + "wasm-bindgen", +] + [[package]] name = "web-sys" version = "0.3.77" @@ -6942,6 +9084,50 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "web-time" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "webpki" +version = "0.22.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed63aea5ce73d0ff405984102c42de94fc55a6b75765d621c65262469b3c9b53" +dependencies = [ + "ring 0.17.14", + "untrusted 0.9.0", +] + +[[package]] +name = "webpki-roots" +version = "0.23.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b03058f88386e5ff5310d9111d53f48b17d732b401aeb83a8d5190f2ac459338" +dependencies = [ + "rustls-webpki 0.100.3", +] + +[[package]] +name = "webpki-roots" +version = "0.25.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1" + +[[package]] +name = "webpki-roots" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2853738d1cc4f2da3a225c18ec6c3721abb31961096e9dbf5ab35fa88b19cfdb" +dependencies = [ + "rustls-pki-types", +] + [[package]] name = "winapi" version = "0.3.9" @@ -6958,15 +9144,6 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" -[[package]] -name = "winapi-util" -version = "0.1.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" -dependencies = [ - "windows-sys", -] - [[package]] name = "winapi-x86_64-pc-windows-gnu" version = "0.4.0" @@ -6979,8 +9156,8 @@ version = "0.57.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "12342cb4d8e3b046f3d80effd474a7a02447231330ef77d71daa6fbc40681143" dependencies = [ - "windows-core 0.57.0", - "windows-targets", + "windows-core", + "windows-targets 0.52.6", ] [[package]] @@ -6989,23 +9166,10 @@ version = "0.57.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d2ed2439a290666cd67ecce2b0ffaad89c2a56b976b736e6ece670297897832d" dependencies = [ - "windows-implement 0.57.0", - "windows-interface 0.57.0", + "windows-implement", + "windows-interface", "windows-result 0.1.2", - "windows-targets", -] - -[[package]] -name = "windows-core" -version = "0.61.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0fdd3ddb90610c7638aa2b3a3ab2904fb9e5cdbecc643ddb3647212781c4ae3" -dependencies = [ - "windows-implement 0.60.0", - "windows-interface 0.59.1", - "windows-link", - "windows-result 0.3.4", - "windows-strings", + "windows-targets 0.52.6", ] [[package]] @@ -7016,18 +9180,7 @@ checksum = "9107ddc059d5b6fbfbffdfa7a7fe3e22a226def0b2608f72e9d552763d3e1ad7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.103", -] - -[[package]] -name = "windows-implement" -version = "0.60.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a47fddd13af08290e67f4acabf4b459f647552718f683a7b415d290ac744a836" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.103", + "syn 2.0.101", ] [[package]] @@ -7038,25 +9191,25 @@ checksum = "29bee4b38ea3cde66011baa44dba677c432a78593e202392d1e9070cf2a7fca7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.103", + "syn 2.0.101", ] [[package]] -name = "windows-interface" -version = "0.59.1" +name = "windows-link" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd9211b69f8dcdfa817bfd14bf1c97c9188afa36f4750130fcdf3f400eca9fa8" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.103", -] +checksum = "76840935b766e1b0a05c0066835fb9ec80071d4c09a16f6bd5f7e655e3c14c38" [[package]] -name = "windows-link" -version = "0.1.3" +name = "windows-registry" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a" +checksum = "b3bab093bdd303a1240bb99b8aba8ea8a69ee19d34c9e2ef9594e708a4878820" +dependencies = [ + "windows-link", + "windows-result 0.3.4", + "windows-strings", +] [[package]] name = "windows-result" @@ -7064,7 +9217,7 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5e383302e8ec8515204254685643de10811af0ed97ea37210dc26fb0032647f8" dependencies = [ - "windows-targets", + "windows-targets 0.52.6", ] [[package]] @@ -7085,13 +9238,46 @@ dependencies = [ "windows-link", ] +[[package]] +name = "windows-sys" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +dependencies = [ + "windows-targets 0.48.5", +] + +[[package]] +name = "windows-sys" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +dependencies = [ + "windows-targets 0.52.6", +] + [[package]] name = "windows-sys" version = "0.59.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" dependencies = [ - "windows-targets", + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-targets" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" +dependencies = [ + "windows_aarch64_gnullvm 0.48.5", + "windows_aarch64_msvc 0.48.5", + "windows_i686_gnu 0.48.5", + "windows_i686_msvc 0.48.5", + "windows_x86_64_gnu 0.48.5", + "windows_x86_64_gnullvm 0.48.5", + "windows_x86_64_msvc 0.48.5", ] [[package]] @@ -7100,80 +9286,205 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" dependencies = [ - "windows_aarch64_gnullvm", - "windows_aarch64_msvc", - "windows_i686_gnu", - "windows_i686_gnullvm", - "windows_i686_msvc", - "windows_x86_64_gnu", - "windows_x86_64_gnullvm", - "windows_x86_64_msvc", + "windows_aarch64_gnullvm 0.52.6", + "windows_aarch64_msvc 0.52.6", + "windows_i686_gnu 0.52.6", + "windows_i686_gnullvm 0.52.6", + "windows_i686_msvc 0.52.6", + "windows_x86_64_gnu 0.52.6", + "windows_x86_64_gnullvm 0.52.6", + "windows_x86_64_msvc 0.52.6", +] + +[[package]] +name = "windows-targets" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1e4c7e8ceaaf9cb7d7507c974735728ab453b67ef8f18febdd7c11fe59dca8b" +dependencies = [ + "windows_aarch64_gnullvm 0.53.0", + "windows_aarch64_msvc 0.53.0", + "windows_i686_gnu 0.53.0", + "windows_i686_gnullvm 0.53.0", + "windows_i686_msvc 0.53.0", + "windows_x86_64_gnu 0.53.0", + "windows_x86_64_gnullvm 0.53.0", + "windows_x86_64_msvc 0.53.0", ] +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" + [[package]] name = "windows_aarch64_gnullvm" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86b8d5f90ddd19cb4a147a5fa63ca848db3df085e25fee3cc10b39b6eebae764" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" + [[package]] name = "windows_aarch64_msvc" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" +[[package]] +name = "windows_aarch64_msvc" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7651a1f62a11b8cbd5e0d42526e55f2c99886c77e007179efff86c2b137e66c" + +[[package]] +name = "windows_i686_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" + [[package]] name = "windows_i686_gnu" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" +[[package]] +name = "windows_i686_gnu" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1dc67659d35f387f5f6c479dc4e28f1d4bb90ddd1a5d3da2e5d97b42d6272c3" + [[package]] name = "windows_i686_gnullvm" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" +[[package]] +name = "windows_i686_gnullvm" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ce6ccbdedbf6d6354471319e781c0dfef054c81fbc7cf83f338a4296c0cae11" + +[[package]] +name = "windows_i686_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" + [[package]] name = "windows_i686_msvc" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" +[[package]] +name = "windows_i686_msvc" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "581fee95406bb13382d2f65cd4a908ca7b1e4c2f1917f143ba16efe98a589b5d" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" + [[package]] name = "windows_x86_64_gnu" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" +[[package]] +name = "windows_x86_64_gnu" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e55b5ac9ea33f2fc1716d1742db15574fd6fc8dadc51caab1c16a3d3b4190ba" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" + [[package]] name = "windows_x86_64_gnullvm" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a6e035dd0599267ce1ee132e51c27dd29437f63325753051e71dd9e42406c57" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" + [[package]] name = "windows_x86_64_msvc" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" +[[package]] +name = "windows_x86_64_msvc" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486" + +[[package]] +name = "winnow" +version = "0.5.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" +dependencies = [ + "memchr", +] + [[package]] name = "winnow" -version = "0.7.11" +version = "0.7.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74c7b26e3480b707944fc872477815d29a8e429d2f93a1ce000f5fa84a15cbcd" +checksum = "c06928c8748d81b05c9be96aad92e1b6ff01833332f281e8cfca3be4b35fc9ec" dependencies = [ "memchr", ] +[[package]] +name = "winreg" +version = "0.50.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" +dependencies = [ + "cfg-if", + "windows-sys 0.48.0", +] + [[package]] name = "wit-bindgen-rt" version = "0.39.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1" dependencies = [ - "bitflags", + "bitflags 2.9.1", ] [[package]] @@ -7182,6 +9493,25 @@ version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ea2f10b9bb0928dfb1b42b65e1f9e36f7f54dbdf08457afefb38afcdec4fa2bb" +[[package]] +name = "ws_stream_wasm" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7999f5f4217fe3818726b66257a4475f71e74ffd190776ad053fa159e50737f5" +dependencies = [ + "async_io_stream", + "futures", + "js-sys", + "log", + "pharos", + "rustc_version 0.4.1", + "send_wrapper 0.6.0", + "thiserror 1.0.69", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + [[package]] name = "wyz" version = "0.5.1" @@ -7211,28 +9541,28 @@ checksum = "38da3c9736e16c5d3c8c597a9aaa5d1fa565d0532ae05e27c24aa62fb32c0ab6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.103", + "syn 2.0.101", "synstructure", ] [[package]] name = "zerocopy" -version = "0.8.26" +version = "0.8.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1039dd0d3c310cf05de012d8a39ff557cb0d23087fd44cad61df08fc31907a2f" +checksum = "a1702d9583232ddb9174e01bb7c15a2ab8fb1bc6f227aa1233858c351a3ba0cb" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.8.26" +version = "0.8.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ecf5b4cc5364572d7f4c329661bcc82724222973f2cab6f050a4e5c22f75181" +checksum = "28a6e20d751156648aa063f3800b706ee209a32c0b4d9f24be3d980b01be55ef" dependencies = [ "proc-macro2", "quote", - "syn 2.0.103", + "syn 2.0.101", ] [[package]] @@ -7252,7 +9582,7 @@ checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" dependencies = [ "proc-macro2", "quote", - "syn 2.0.103", + "syn 2.0.101", "synstructure", ] @@ -7273,7 +9603,7 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.103", + "syn 2.0.101", ] [[package]] @@ -7306,7 +9636,7 @@ checksum = "5b96237efa0c878c64bd89c436f661be4e46b2f3eff1ebb976f7ef2321d2f58f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.103", + "syn 2.0.101", ] [[package]] @@ -7336,22 +9666,42 @@ dependencies = [ ] [[package]] -name = "zkp" -version = "0.1.0" +name = "zstd" +version = "0.13.0" +source = "git+https://github.com/scroll-tech/zstd-rs?branch=hack%2Fmul-block#5c0892b6567dab31394d701477183ce9d6a32aca" dependencies = [ - "anyhow", - "base64 0.13.1", - "env_logger", - "log", - "once_cell", - "scroll-zkvm-prover", - "scroll-zkvm-verifier", - "serde", - "serde_derive", - "serde_json", + "zstd-safe", ] [[package]] name = "zstd" version = "1.1.4" source = "git+https://github.com/scroll-tech/reth?branch=zkvm%2Feuclid-upgrade#6009111704d286ed6c737fe78dca09d613be0352" + +[[package]] +name = "zstd-safe" +version = "7.0.0" +source = "git+https://github.com/scroll-tech/zstd-rs?branch=hack%2Fmul-block#5c0892b6567dab31394d701477183ce9d6a32aca" +dependencies = [ + "zstd-sys 2.0.9+zstd.1.5.5", +] + +[[package]] +name = "zstd-sys" +version = "2.0.9+zstd.1.5.5" +source = "git+https://github.com/scroll-tech/zstd-rs?branch=hack%2Fmul-block#5c0892b6567dab31394d701477183ce9d6a32aca" +dependencies = [ + "cc", + "pkg-config", +] + +[[package]] +name = "zstd-sys" +version = "2.0.15+zstd.1.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eb81183ddd97d0c74cedf1d50d85c8d08c1b8b68ee863bdee9e706eedba1a237" +dependencies = [ + "bindgen 0.71.1", + "cc", + "pkg-config", +] diff --git a/Cargo.toml b/Cargo.toml new file mode 100644 index 0000000000..671e637d29 --- /dev/null +++ b/Cargo.toml @@ -0,0 +1,67 @@ +[workspace] +members = [ + "common/libzkp/impl", + "common/libzkp/l2geth", + "common/libzkp/interface", + "common/libzkp/integration_test", + "zkvm-prover", +] + +resolver = "2" + +[workspace.package] +authors = ["Scroll developers"] +edition = "2021" +homepage = "https://scroll.io" +readme = "README.md" +repository = "https://github.com/scroll-tech/scroll" +version = "4.5.8" + +[workspace.dependencies] +scroll-zkvm-prover-euclid = { git = "https://github.com/scroll-tech/zkvm-prover", branch = "refactor/scroll_3", package = "scroll-zkvm-prover" } +scroll-zkvm-verifier-euclid = { git = "https://github.com/scroll-tech/zkvm-prover", branch = "refactor/scroll_3", package = "scroll-zkvm-verifier" } +scroll-zkvm-types = { git = "https://github.com/scroll-tech/zkvm-prover", branch = "refactor/scroll_3" } + +sbv-primitives = { git = "https://github.com/scroll-tech/stateless-block-verifier", branch = "zkvm/euclid-upgrade", features = ["scroll"] } +sbv-utils = { git = "https://github.com/scroll-tech/stateless-block-verifier", branch = "zkvm/euclid-upgrade" } + +metrics = "0.23.0" +metrics-util = "0.17" +metrics-tracing-context = "0.16.0" + +anyhow = "1.0" +alloy = { version = "0.11", default-features = false } +alloy-primitives = { version = "0.8", default-features = false } +# also use this to trigger "serde" feature for primitives +alloy-serde = { version = "0.8", default-features = false } + +rkyv = "0.8" +serde = { version = "1", default-features = false, features = ["derive"] } +serde_json = { version = "1.0" } +serde_derive = "1.0" +serde_with = "3.11.0" +itertools = "0.14" +tiny-keccak = "2.0" +tracing = "0.1" +eyre = "0.6" +bincode_v1 = { version = "1.3", package = "bincode"} +snark-verifier-sdk = { version = "0.2.0", default-features = false, features = [ + "loader_halo2", + "halo2-axiom", + "display", +] } +once_cell = "1.20" +base64 = "0.22" + +#TODO: upgrade when Feyman +vm-zstd = { git = "https://github.com/scroll-tech/rust-zstd-decompressor.git", tag = "v0.1.1" } + +[patch.crates-io] +alloy-primitives = { git = "https://github.com/scroll-tech/alloy-core", branch = "v0.8.18-euclid-upgrade" } +ruint = { git = "https://github.com/scroll-tech/uint.git", branch = "v1.12.3" } +tiny-keccak = { git = "https://github.com/scroll-tech/tiny-keccak", branch = "scroll-patch-v2.0.2-euclid-upgrade" } + +[profile.maxperf] +inherits = "release" +lto = "fat" +codegen-units = 1 \ No newline at end of file diff --git a/common/libzkp/impl/Cargo.toml b/common/libzkp/impl/Cargo.toml index 717de0be7c..962f300dd7 100644 --- a/common/libzkp/impl/Cargo.toml +++ b/common/libzkp/impl/Cargo.toml @@ -1,64 +1,23 @@ [package] -name = "zkp" -version = "0.1.0" -edition = "2021" +name = "libzkp" +version.workspace = true +edition.workspace = true # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html -[lib] -crate-type = ["cdylib"] - -[patch.crates-io] -alloy-primitives = { git = "https://github.com/scroll-tech/alloy-core", branch = "v0.8.18-euclid-upgrade" } -ruint = { git = "https://github.com/scroll-tech/uint.git", branch = "v1.12.3" } -tiny-keccak = { git = "https://github.com/scroll-tech/tiny-keccak", branch = "scroll-patch-v2.0.2-euclid-upgrade" } - [dependencies] -euclid_prover = { git = "https://github.com/scroll-tech/zkvm-prover.git", package = "scroll-zkvm-prover" } -euclid_verifier = { git = "https://github.com/scroll-tech/zkvm-prover.git", package = "scroll-zkvm-verifier" } - -base64 = "0.13.0" -env_logger = "0.9.0" -log = "0.4" -once_cell = "1.19" -serde = "1.0" -serde_derive = "1.0" -serde_json = "1.0.66" -anyhow = "1.0.86" - -[profile.test] -opt-level = 3 - -[profile.release] -opt-level = 3 - -# [patch."https://github.com/openvm-org/stark-backend.git"] -# openvm-stark-backend = { git = "ssh://git@github.com/scroll-tech/openvm-stark-gpu.git", branch = "main", features = ["gpu"] } -# openvm-stark-sdk = { git = "ssh://git@github.com/scroll-tech/openvm-stark-gpu.git", branch = "main", features = ["gpu"] } +scroll-zkvm-types.workspace = true +scroll-zkvm-verifier-euclid.workspace = true + +sbv-primitives.workspace = true +base64.workspace = true +serde.workspace = true +serde_derive.workspace = true +serde_json = { workspace = true, features = ["raw_value"]} +tracing.workspace = true +eyre.workspace = true + +git-version = "0.3.5" +serde_stacker = "0.1" +regex = "1.11" +c-kzg = { version = "1.0", features = ["serde"] } -# [patch."https://github.com/Plonky3/Plonky3.git"] -# p3-air = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", tag = "v0.2.0" } -# p3-field = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", tag = "v0.2.0" } -# p3-commit = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", tag = "v0.2.0" } -# p3-matrix = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", tag = "v0.2.0" } -# p3-baby-bear = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", features = [ -# "nightly-features", -# ], tag = "v0.2.0" } -# p3-koala-bear = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", tag = "v0.2.0" } -# p3-util = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", tag = "v0.2.0" } -# p3-challenger = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", tag = "v0.2.0" } -# p3-dft = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", tag = "v0.2.0" } -# p3-fri = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", tag = "v0.2.0" } -# p3-goldilocks = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", tag = "v0.2.0" } -# p3-keccak = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", tag = "v0.2.0" } -# p3-keccak-air = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", tag = "v0.2.0" } -# p3-blake3 = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", tag = "v0.2.0" } -# p3-mds = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", tag = "v0.2.0" } -# p3-merkle-tree = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", tag = "v0.2.0" } -# p3-monty-31 = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", tag = "v0.2.0" } -# p3-poseidon = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", tag = "v0.2.0" } -# p3-poseidon2 = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", tag = "v0.2.0" } -# p3-poseidon2-air = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", tag = "v0.2.0" } -# p3-symmetric = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", tag = "v0.2.0" } -# p3-uni-stark = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", tag = "v0.2.0" } -# p3-maybe-rayon = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", tag = "v0.2.0" } # the "parallel" feature is NOT on by default to allow single-threaded benchmarking -# p3-bn254-fr = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", tag = "v0.2.0" } diff --git a/common/libzkp/impl/src/lib.rs b/common/libzkp/impl/src/lib.rs index b9be01013e..7a7cd88814 100644 --- a/common/libzkp/impl/src/lib.rs +++ b/common/libzkp/impl/src/lib.rs @@ -1,135 +1,121 @@ +pub mod proofs; +pub mod tasks; +pub mod verifier; +pub use verifier::{TaskType, VerifierConfig}; mod utils; -mod verifier; - -use std::{ - ffi::{c_char, c_int, CString}, - path::Path, -}; - -use crate::utils::{c_char_to_str, c_char_to_vec}; -use verifier::{TaskType, VerifierConfig}; - -/// # Safety -#[no_mangle] -pub unsafe extern "C" fn init_verifier(config: *const c_char) { - let config_str = c_char_to_str(config); - let verifier_config = serde_json::from_str::(config_str).unwrap(); - verifier::init(verifier_config); -} -/// # Safety -#[no_mangle] -pub unsafe extern "C" fn verify_chunk_proof( - proof: *const c_char, - fork_name: *const c_char, -) -> c_char { - verify_proof(proof, fork_name, TaskType::Chunk) +use sbv_primitives::B256; +use scroll_zkvm_types::util::vec_as_base64; +use serde::{Deserialize, Serialize}; +use serde_json::value::RawValue; +use std::path::Path; +use tasks::chunk_interpreter::{ChunkInterpreter, TryFromWithInterpreter}; + +/// Turn the coordinator's chunk task into a json string for formal chunk proving +/// task (with full witnesses) +pub fn checkout_chunk_task( + task_json: &str, + interpreter: impl ChunkInterpreter, +) -> eyre::Result { + let chunk_task = serde_json::from_str::(task_json)?; + let ret = serde_json::to_string(&tasks::ChunkProvingTask::try_from_with_interpret( + chunk_task, + interpreter, + )?)?; + Ok(ret) } -fn verify_proof(proof: *const c_char, fork_name: *const c_char, task_type: TaskType) -> c_char { - let fork_name_str = c_char_to_str(fork_name); - let proof = c_char_to_vec(proof); - let verifier = verifier::get_verifier(fork_name_str); - - if let Err(e) = verifier { - log::warn!("failed to get verifier, error: {:#}", e); - return 0 as c_char; +/// Generate required staff for proving tasks +pub fn gen_universal_task( + task_type: i32, + task_json: &str, + fork_name: &str, + interpreter: Option, +) -> eyre::Result<(B256, String, String)> { + use proofs::*; + use tasks::*; + + /// Wrapper for metadata + #[derive(Clone, Debug, Serialize, Deserialize)] + #[serde(untagged)] + enum AnyMetaData { + Chunk(ChunkProofMetadata), + Batch(BatchProofMetadata), + Bundle(BundleProofMetadata), } - match verifier.unwrap().verify(task_type, proof) { - Err(e) => { - log::error!("{:?} verify failed, error: {:#}", task_type, e); - false as c_char - } - Ok(result) => result as c_char, - } -} -/// # Safety -#[no_mangle] -pub unsafe extern "C" fn verify_batch_proof( - proof: *const c_char, - fork_name: *const c_char, -) -> c_char { - verify_proof(proof, fork_name, TaskType::Batch) -} - -/// # Safety -#[no_mangle] -pub unsafe extern "C" fn verify_bundle_proof( - proof: *const c_char, - fork_name: *const c_char, -) -> c_char { - verify_proof(proof, fork_name, TaskType::Bundle) + let (pi_hash, metadata, u_task) = match task_type { + x if x == TaskType::Chunk as i32 => { + let task = serde_json::from_str::(task_json)?; + let (pi_hash, metadata, u_task) = + gen_universal_chunk_task(task, fork_name.into(), interpreter)?; + (pi_hash, AnyMetaData::Chunk(metadata), u_task) + } + x if x == TaskType::Batch as i32 => { + let task = serde_json::from_str::(task_json)?; + let (pi_hash, metadata, u_task) = gen_universal_batch_task(task, fork_name.into())?; + (pi_hash, AnyMetaData::Batch(metadata), u_task) + } + x if x == TaskType::Bundle as i32 => { + let task = serde_json::from_str::(task_json)?; + let (pi_hash, metadata, u_task) = gen_universal_bundle_task(task, fork_name.into())?; + (pi_hash, AnyMetaData::Bundle(metadata), u_task) + } + _ => return Err(eyre::eyre!("unrecognized task type {task_type}")), + }; + + Ok(( + pi_hash, + serde_json::to_string(&metadata)?, + serde_json::to_string(&u_task)?, + )) } -/// # Safety -#[no_mangle] -pub unsafe extern "C" fn dump_vk(fork_name: *const c_char, file: *const c_char) { - _dump_vk(fork_name, file); -} +/// helper to rearrange the proof return by universal prover into corresponding wrapped proof +pub fn gen_wrapped_proof(proof_json: &str, metadata: &str, vk: &[u8]) -> eyre::Result { + #[derive(Serialize)] + struct RearrangeWrappedProofJson<'a> { + #[serde(borrow)] + pub metadata: &'a RawValue, + #[serde(borrow)] + pub proof: &'a RawValue, + #[serde(with = "vec_as_base64", default)] + pub vk: Vec, + pub git_version: String, + } -fn _dump_vk(fork_name: *const c_char, file: *const c_char) { - let fork_name_str = c_char_to_str(fork_name); - let verifier = verifier::get_verifier(fork_name_str); + let re_arrange = RearrangeWrappedProofJson { + metadata: serde_json::from_str(metadata)?, + proof: serde_json::from_str(proof_json)?, + vk: vk.to_vec(), + git_version: utils::short_git_version(), + }; - if let Ok(verifier) = verifier { - verifier.as_ref().dump_vk(Path::new(c_char_to_str(file))); - } + let ret = serde_json::to_string(&re_arrange)?; + Ok(ret) } -/// Represents the result of generating a universal task -#[repr(C)] -pub struct HandlingResult { - pub ok: bool, - pub universal_task: *mut c_char, - pub metadata: *mut c_char, - pub expected_pi_hash: [u8; 32], +/// init verifier +pub fn verifier_init(config: &str) -> eyre::Result<()> { + let cfg: VerifierConfig = serde_json::from_str(config)?; + verifier::init(cfg); + Ok(()) } -/// # Safety -#[no_mangle] -pub unsafe extern "C" fn gen_universal_task( - _task_type: c_int, - _task: *const c_char, - _fork_name: *const c_char, -) -> HandlingResult { - unimplemented!("implementation will be added in later PRs"); -} +/// verify proof +pub fn verify_proof(proof: Vec, fork_name: &str, task_type: TaskType) -> eyre::Result { + let verifier = verifier::get_verifier(fork_name)?; -/// # Safety -#[no_mangle] -pub unsafe extern "C" fn release_task_result(result: HandlingResult) { - // Free the allocated strings - if !result.universal_task.is_null() { - let _ = CString::from_raw(result.universal_task); - } + let ret = verifier.verify(task_type, proof)?; - if !result.metadata.is_null() { - let _ = CString::from_raw(result.metadata); - } + Ok(ret) } -/// # Safety -#[no_mangle] -pub unsafe extern "C" fn gen_wrapped_proof( - _proof_json: *const c_char, - _metadata: *const c_char, - _vk: *const c_char, - _vk_len: usize, -) -> *mut c_char { - unimplemented!("implementation will be added in later PRs"); -} +/// dump vk +pub fn dump_vk(fork_name: &str, file: &str) -> eyre::Result<()> { + let verifier = verifier::get_verifier(fork_name)?; -/// # Safety -#[no_mangle] -pub unsafe extern "C" fn release_string(string_ptr: *mut c_char) { - if !string_ptr.is_null() { - let _ = CString::from_raw(string_ptr); - } -} + verifier.dump_vk(Path::new(file)); -/// # Safety -#[no_mangle] -pub unsafe extern "C" fn init_l2geth(_config: *const c_char) { - unimplemented!("implementation will be added in later PRs"); + Ok(()) } diff --git a/common/libzkp/impl/src/proofs.rs b/common/libzkp/impl/src/proofs.rs new file mode 100644 index 0000000000..782d294a4f --- /dev/null +++ b/common/libzkp/impl/src/proofs.rs @@ -0,0 +1,344 @@ +use std::path::Path; + +use crate::utils::short_git_version; +use eyre::Result; +use sbv_primitives::B256; +use scroll_zkvm_types::{ + batch::BatchInfo, + bundle::BundleInfo, + chunk::ChunkInfo, + proof::{EvmProof, OpenVmEvmProof, ProofEnum, RootProof}, + public_inputs::{ForkName, MultiVersionPublicInputs}, + types_agg::{AggregationInput, ProgramCommitment}, + util::vec_as_base64, +}; +use serde::{de::DeserializeOwned, Deserialize, Serialize}; + +/// A wrapper around the actual inner proof. +#[derive(Clone, Serialize, Deserialize)] +pub struct WrappedProof { + /// Generic metadata carried by a proof. + pub metadata: Metadata, + /// The inner proof, either a [`RootProof`] or [`EvmProof`] depending on the + /// [`crate::ProverType`]. + pub proof: ProofEnum, + /// Represents the verifying key in serialized form. The purpose of including the verifying key + /// along with the proof is to allow a verifier-only mode to identify the source of proof + /// generation. + /// + /// For [`RootProof`] the verifying key is denoted by the digest of the VM's program. + /// + /// For [`EvmProof`] its the raw bytes of the halo2 circuit's `VerifyingKey`. + /// + /// We encode the vk in base64 format during JSON serialization. + #[serde(with = "vec_as_base64", default)] + pub vk: Vec, + /// Represents the git ref for `zkvm-prover` that was used to construct the proof. + /// + /// This is useful for debugging. + pub git_version: String, +} + +pub trait AsRootProof { + fn as_root_proof(&self) -> &RootProof; +} + +pub trait AsEvmProof { + fn as_evm_proof(&self) -> &EvmProof; +} + +pub trait IntoEvmProof { + fn into_evm_proof(self) -> OpenVmEvmProof; +} + +/// Alias for convenience. +pub type ChunkProof = WrappedProof; + +/// Alias for convenience. +pub type BatchProof = WrappedProof; + +/// Alias for convenience. +pub type BundleProof = WrappedProof; + +impl AsRootProof for ChunkProof { + fn as_root_proof(&self) -> &RootProof { + self.proof + .as_root_proof() + .expect("batch proof use root proof") + } +} + +impl AsRootProof for BatchProof { + fn as_root_proof(&self) -> &RootProof { + self.proof + .as_root_proof() + .expect("batch proof use root proof") + } +} + +impl AsEvmProof for BundleProof { + fn as_evm_proof(&self) -> &EvmProof { + self.proof + .as_evm_proof() + .expect("bundle proof use evm proof") + } +} + +impl IntoEvmProof for BundleProof { + fn into_evm_proof(self) -> OpenVmEvmProof { + self.proof + .as_evm_proof() + .expect("bundle proof use evm proof") + .clone() + .into() + } +} + +/// Trait to enable operations in metadata +pub trait ProofMetadata: Serialize + DeserializeOwned + std::fmt::Debug { + type PublicInputs: MultiVersionPublicInputs; + + fn pi_hash_info(&self) -> &Self::PublicInputs; + + fn new_proof>(self, proof: P, vk: Option<&[u8]>) -> WrappedProof { + WrappedProof { + metadata: self, + proof: proof.into(), + vk: vk.map(Vec::from).unwrap_or_default(), + git_version: short_git_version(), + } + } +} + +pub trait PersistableProof: Sized { + /// Read and deserialize the proof. + fn from_json>(path_proof: P) -> Result; + /// Serialize the proof and dumping at the given path. + fn dump>(&self, path_proof: P) -> Result<()>; +} + +/// Metadata attached to [`ChunkProof`]. +#[derive(Clone, Debug, Serialize, Deserialize)] +pub struct ChunkProofMetadata { + /// The chunk information describing the list of blocks contained within the chunk. + pub chunk_info: ChunkInfo, +} + +impl ProofMetadata for ChunkProofMetadata { + type PublicInputs = ChunkInfo; + + fn pi_hash_info(&self) -> &Self::PublicInputs { + &self.chunk_info + } +} + +/// Metadata attached to [`BatchProof`]. +#[derive(Clone, Debug, Serialize, Deserialize)] +pub struct BatchProofMetadata { + /// The batch information describing the list of chunks. + pub batch_info: BatchInfo, + /// The [`scroll_zkvm_types::batch::BatchHeader`]'s digest. + pub batch_hash: B256, +} + +impl ProofMetadata for BatchProofMetadata { + type PublicInputs = BatchInfo; + + fn pi_hash_info(&self) -> &Self::PublicInputs { + &self.batch_info + } +} + +/// Metadata attached to [`BundleProof`]. +#[derive(Clone, Debug, Serialize, Deserialize)] +pub struct BundleProofMetadata { + /// The bundle information describing the list of batches to be finalised on-chain. + pub bundle_info: BundleInfo, + /// The public-input digest for the bundle. + pub bundle_pi_hash: B256, +} + +impl ProofMetadata for BundleProofMetadata { + type PublicInputs = BundleInfo; + + fn pi_hash_info(&self) -> &Self::PublicInputs { + &self.bundle_info + } +} + +impl From<&WrappedProof> for AggregationInput { + fn from(value: &WrappedProof) -> Self { + Self { + public_values: value.proof.public_values(), + commitment: ProgramCommitment::deserialize(&value.vk), + } + } +} + +impl WrappedProof { + /// Sanity checks on the wrapped proof: + /// + /// - pi_hash computed in host does in fact match pi_hash computed in guest + pub fn sanity_check(&self, fork_name: ForkName) { + let proof_pi = self.proof.public_values(); + + let expected_pi = self + .metadata + .pi_hash_info() + .pi_hash_by_fork(fork_name) + .0 + .as_ref() + .iter() + .map(|&v| v as u32) + .collect::>(); + + assert_eq!( + expected_pi, proof_pi, + "pi mismatch: expected={expected_pi:?}, found={proof_pi:?}" + ); + } +} + +impl PersistableProof for WrappedProof { + fn from_json>(path_proof: P) -> Result { + crate::utils::read_json_deep(path_proof) + } + + fn dump>(&self, path_proof: P) -> Result<()> { + crate::utils::write_json(path_proof, &self) + } +} + +#[cfg(test)] +mod tests { + use base64::{prelude::BASE64_STANDARD, Engine}; + use sbv_primitives::B256; + use scroll_zkvm_types::{ + bundle::{BundleInfo, BundleInfoV1}, + proof::EvmProof, + public_inputs::PublicInputs, + }; + + use super::*; + + #[test] + fn test_roundtrip() -> eyre::Result<()> { + macro_rules! assert_roundtrip { + ($fd:expr, $proof:ident) => { + let proof_str_expected = + std::fs::read_to_string(std::path::Path::new("./testdata").join($fd))?; + let proof = serde_json::from_str::<$proof>(&proof_str_expected)?; + let proof_str_got = serde_json::to_string(&proof)?; + assert_eq!(proof_str_got, proof_str_expected); + }; + } + + assert_roundtrip!("chunk-proof.json", ChunkProof); + assert_roundtrip!("batch-proof.json", BatchProof); + assert_roundtrip!("bundle-proof.json", BundleProof); + + Ok(()) + } + + #[test] + fn test_dummy_proof() -> eyre::Result<()> { + // 1. Metadata + let metadata = { + let bundle_info: BundleInfoV1 = BundleInfo { + chain_id: 12345, + num_batches: 12, + prev_state_root: B256::repeat_byte(1), + prev_batch_hash: B256::repeat_byte(2), + post_state_root: B256::repeat_byte(3), + batch_hash: B256::repeat_byte(4), + withdraw_root: B256::repeat_byte(5), + msg_queue_hash: B256::repeat_byte(6), + } + .into(); + let bundle_pi_hash = bundle_info.pi_hash(); + BundleProofMetadata { + bundle_info: bundle_info.0, + bundle_pi_hash, + } + }; + + // 2. Proof + let (proof, proof_base64) = { + let proof = std::iter::empty() + .chain(std::iter::repeat_n(1, 1)) + .chain(std::iter::repeat_n(2, 2)) + .chain(std::iter::repeat_n(3, 3)) + .chain(std::iter::repeat_n(4, 4)) + .chain(std::iter::repeat_n(5, 5)) + .chain(std::iter::repeat_n(6, 6)) + .chain(std::iter::repeat_n(7, 7)) + .chain(std::iter::repeat_n(8, 8)) + .chain(std::iter::repeat_n(9, 9)) + .collect::>(); + let proof_base64 = BASE64_STANDARD.encode(&proof); + (proof, proof_base64) + }; + + // 3. Instances + let (instances, instances_base64) = { + // LE: [0x56, 0x34, 0x12, 0x00, 0x00, ..., 0x00] + // LE: [0x32, 0x54, 0x76, 0x98, 0x00, ..., 0x00] + let instances = std::iter::empty() + .chain(std::iter::repeat_n(0x00, 29)) + .chain(std::iter::once(0x12)) + .chain(std::iter::once(0x34)) + .chain(std::iter::once(0x56)) + .chain(std::iter::repeat_n(0x00, 28)) + .chain(std::iter::once(0x98)) + .chain(std::iter::once(0x76)) + .chain(std::iter::once(0x54)) + .chain(std::iter::once(0x32)) + .collect::>(); + let instances_base64 = BASE64_STANDARD.encode(&instances); + (instances, instances_base64) + }; + + // 4. VK + let (vk, vk_base64) = { + let vk = std::iter::empty() + .chain(std::iter::repeat_n(1, 9)) + .chain(std::iter::repeat_n(2, 8)) + .chain(std::iter::repeat_n(3, 7)) + .chain(std::iter::repeat_n(4, 6)) + .chain(std::iter::repeat_n(5, 5)) + .chain(std::iter::repeat_n(6, 4)) + .chain(std::iter::repeat_n(7, 3)) + .chain(std::iter::repeat_n(8, 2)) + .chain(std::iter::repeat_n(9, 1)) + .collect::>(); + let vk_base64 = BASE64_STANDARD.encode(&vk); + (vk, vk_base64) + }; + + let evm_proof = EvmProof { instances, proof }; + let bundle_proof = metadata.new_proof(evm_proof, Some(vk.as_slice())); + let bundle_proof_json = serde_json::to_value(&bundle_proof)?; + + assert_eq!( + bundle_proof_json.get("proof").unwrap(), + &serde_json::json!({ + "proof": proof_base64, + "instances": instances_base64, + }), + ); + assert_eq!( + bundle_proof_json.get("vk").unwrap(), + &serde_json::Value::String(vk_base64), + ); + + let bundle_proof_de = serde_json::from_value::(bundle_proof_json)?; + + assert_eq!( + bundle_proof_de.proof.as_evm_proof(), + bundle_proof.proof.as_evm_proof() + ); + assert_eq!(bundle_proof_de.vk, bundle_proof.vk); + + Ok(()) + } +} diff --git a/common/libzkp/impl/src/tasks.rs b/common/libzkp/impl/src/tasks.rs new file mode 100644 index 0000000000..6d5f08addd --- /dev/null +++ b/common/libzkp/impl/src/tasks.rs @@ -0,0 +1,76 @@ +pub mod batch; +pub mod bundle; +pub mod chunk; +pub mod chunk_interpreter; + +pub use batch::BatchProvingTask; +pub use bundle::BundleProvingTask; +pub use chunk::{ChunkProvingTask, ChunkTask}; +pub use chunk_interpreter::ChunkInterpreter; +pub use scroll_zkvm_types::task::ProvingTask; + +use crate::proofs::{BatchProofMetadata, BundleProofMetadata, ChunkProofMetadata}; +use chunk_interpreter::{DummyInterpreter, TryFromWithInterpreter}; +use sbv_primitives::B256; +use scroll_zkvm_types::{ + chunk::ChunkInfo, + public_inputs::{ForkName, MultiVersionPublicInputs}, +}; + +/// Generate required staff for chunk proving +pub fn gen_universal_chunk_task( + mut task: ChunkProvingTask, + fork_name: ForkName, + interpreter: Option, +) -> eyre::Result<(B256, ChunkProofMetadata, ProvingTask)> { + let chunk_info = if let Some(interpreter) = interpreter { + ChunkInfo::try_from_with_interpret(&mut task, interpreter) + } else { + ChunkInfo::try_from_with_interpret(&mut task, DummyInterpreter {}) + }?; + let proving_task = task.try_into()?; + let expected_pi_hash = chunk_info.pi_hash_by_fork(fork_name); + Ok(( + expected_pi_hash, + ChunkProofMetadata { chunk_info }, + proving_task, + )) +} + +/// Generate required staff for batch proving +pub fn gen_universal_batch_task( + task: BatchProvingTask, + fork_name: ForkName, +) -> eyre::Result<(B256, BatchProofMetadata, ProvingTask)> { + let batch_info = task.precheck_and_build_metadata()?; + let proving_task = task.try_into()?; + let expected_pi_hash = batch_info.pi_hash_by_fork(fork_name); + + Ok(( + expected_pi_hash, + BatchProofMetadata { + batch_info, + batch_hash: expected_pi_hash, + }, + proving_task, + )) +} + +/// Generate required staff for bundle proving +pub fn gen_universal_bundle_task( + task: BundleProvingTask, + fork_name: ForkName, +) -> eyre::Result<(B256, BundleProofMetadata, ProvingTask)> { + let bundle_info = task.precheck_and_build_metadata()?; + let proving_task = task.try_into()?; + let expected_pi_hash = bundle_info.pi_hash_by_fork(fork_name); + + Ok(( + expected_pi_hash, + BundleProofMetadata { + bundle_info, + bundle_pi_hash: expected_pi_hash, + }, + proving_task, + )) +} diff --git a/common/libzkp/impl/src/tasks/batch.rs b/common/libzkp/impl/src/tasks/batch.rs new file mode 100644 index 0000000000..c685a70d66 --- /dev/null +++ b/common/libzkp/impl/src/tasks/batch.rs @@ -0,0 +1,253 @@ +use crate::proofs::ChunkProof; +use c_kzg::Bytes48; +use eyre::Result; +use sbv_primitives::{B256, U256}; +use scroll_zkvm_types::{ + batch::{ + BatchHeader, BatchHeaderV6, BatchHeaderV7, BatchInfo, BatchWitness, EnvelopeV6, EnvelopeV7, + PointEvalWitness, ReferenceHeader, N_BLOB_BYTES, + }, + public_inputs::ForkName, + task::ProvingTask, + utils::{to_rkyv_bytes, RancorError}, +}; + +mod utils; +use utils::{base64, point_eval}; + +/// Define variable batch header type, since BatchHeaderV6 can not +/// be decoded as V7 we can always has correct deserialization +/// Notice: V6 header MUST be put above V7 since untagged enum +/// try to decode each defination in order +#[derive(Clone, serde::Deserialize, serde::Serialize)] +#[serde(untagged)] +pub enum BatchHeaderV { + V6(BatchHeaderV6), + V7(BatchHeaderV7), +} + +impl From for ReferenceHeader { + fn from(value: BatchHeaderV) -> Self { + match value { + BatchHeaderV::V6(h) => ReferenceHeader::V6(h), + BatchHeaderV::V7(h) => ReferenceHeader::V7(h), + } + } +} + +impl BatchHeaderV { + pub fn batch_hash(&self) -> B256 { + match self { + BatchHeaderV::V6(h) => h.batch_hash(), + BatchHeaderV::V7(h) => h.batch_hash(), + } + } + + pub fn must_v6_header(&self) -> &BatchHeaderV6 { + match self { + BatchHeaderV::V6(h) => h, + BatchHeaderV::V7(_) => panic!("try to pick v7 header"), + } + } + + pub fn must_v7_header(&self) -> &BatchHeaderV7 { + match self { + BatchHeaderV::V7(h) => h, + BatchHeaderV::V6(_) => panic!("try to pick v6 header"), + } + } +} + +/// Defines a proving task for batch proof generation, the format +/// is compatible with both pre-euclidv2 and euclidv2 +#[derive(Clone, serde::Deserialize, serde::Serialize)] +pub struct BatchProvingTask { + /// Chunk proofs for the contiguous list of chunks within the batch. + pub chunk_proofs: Vec, + /// The [`BatchHeaderV6/V7`], as computed on-chain for this batch. + pub batch_header: BatchHeaderV, + /// The bytes encoding the batch data that will finally be published on-chain in the form of an + /// EIP-4844 blob. + #[serde(with = "base64")] + pub blob_bytes: Vec, + /// Challenge digest computed using the blob's bytes and versioned hash. + pub challenge_digest: Option, + /// KZG commitment for the blob. + pub kzg_commitment: Option, + /// KZG proof. + pub kzg_proof: Option, + /// fork version specify, for sanity check with batch_header and chunk proof + pub fork_name: String, +} + +impl TryFrom for ProvingTask { + type Error = eyre::Error; + + fn try_from(value: BatchProvingTask) -> Result { + let witness = value.build_guest_input(); + + Ok(ProvingTask { + identifier: value.batch_header.batch_hash().to_string(), + fork_name: value.fork_name, + aggregated_proofs: value + .chunk_proofs + .into_iter() + .map(|w_proof| w_proof.proof.into_root_proof().expect("expect root proof")) + .collect(), + serialized_witness: vec![to_rkyv_bytes::(&witness)?.into_vec()], + vk: Vec::new(), + }) + } +} + +impl BatchProvingTask { + fn build_guest_input(&self) -> BatchWitness { + let fork_name = self.fork_name.to_lowercase().as_str().into(); + + // calculate point eval needed and compare with task input + let (kzg_commitment, kzg_proof, challenge_digest) = { + let blob = point_eval::to_blob(&self.blob_bytes); + let commitment = point_eval::blob_to_kzg_commitment(&blob); + let versioned_hash = point_eval::get_versioned_hash(&commitment); + let challenge_digest = match &self.batch_header { + BatchHeaderV::V6(_) => { + assert_eq!( + fork_name, + ForkName::EuclidV1, + "hardfork mismatch for da-codec@v6 header: found={fork_name:?}, expected={:?}", + ForkName::EuclidV1, + ); + EnvelopeV6::from(self.blob_bytes.as_slice()).challenge_digest(versioned_hash) + } + BatchHeaderV::V7(_) => { + assert_eq!( + fork_name, + ForkName::EuclidV2, + "hardfork mismatch for da-codec@v7 header: found={fork_name:?}, expected={:?}", + ForkName::EuclidV2, + ); + let padded_blob_bytes = { + let mut padded_blob_bytes = self.blob_bytes.to_vec(); + padded_blob_bytes.resize(N_BLOB_BYTES, 0); + padded_blob_bytes + }; + EnvelopeV7::from(padded_blob_bytes.as_slice()).challenge_digest(versioned_hash) + } + }; + + let (proof, _) = point_eval::get_kzg_proof(&blob, challenge_digest); + + (commitment.to_bytes(), proof.to_bytes(), challenge_digest) + }; + + if let Some(k) = self.kzg_commitment { + assert_eq!(k, kzg_commitment); + } + + if let Some(c) = self.challenge_digest { + assert_eq!(c, U256::from_be_bytes(challenge_digest.0)); + } + + if let Some(p) = self.kzg_proof { + assert_eq!(p, kzg_proof); + } + + let point_eval_witness = PointEvalWitness { + kzg_commitment: kzg_commitment.into_inner(), + kzg_proof: kzg_proof.into_inner(), + }; + + let reference_header = self.batch_header.clone().into(); + + BatchWitness { + fork_name, + chunk_proofs: self.chunk_proofs.iter().map(|proof| proof.into()).collect(), + chunk_infos: self + .chunk_proofs + .iter() + .map(|p| p.metadata.chunk_info.clone()) + .collect(), + blob_bytes: self.blob_bytes.clone(), + reference_header, + point_eval_witness, + } + } + + pub fn precheck_and_build_metadata(&self) -> Result { + let fork_name = ForkName::from(self.fork_name.as_str()); + let (parent_state_root, state_root, chain_id, withdraw_root) = ( + self.chunk_proofs + .first() + .expect("at least one chunk in batch") + .metadata + .chunk_info + .prev_state_root, + self.chunk_proofs + .last() + .expect("at least one chunk in batch") + .metadata + .chunk_info + .post_state_root, + self.chunk_proofs + .last() + .expect("at least one chunk in batch") + .metadata + .chunk_info + .chain_id, + self.chunk_proofs + .last() + .expect("at least one chunk in batch") + .metadata + .chunk_info + .withdraw_root, + ); + let (parent_batch_hash, prev_msg_queue_hash, post_msg_queue_hash) = match self.batch_header + { + BatchHeaderV::V6(h) => { + assert_eq!( + fork_name, + ForkName::EuclidV1, + "hardfork mismatch for da-codec@v6 header: found={fork_name:?}, expected={:?}", + ForkName::EuclidV1, + ); + (h.parent_batch_hash, Default::default(), Default::default()) + } + BatchHeaderV::V7(h) => { + assert_eq!( + fork_name, + ForkName::EuclidV2, + "hardfork mismatch for da-codec@v7 header: found={fork_name:?}, expected={:?}", + ForkName::EuclidV2, + ); + ( + h.parent_batch_hash, + self.chunk_proofs + .first() + .expect("at least one chunk in batch") + .metadata + .chunk_info + .prev_msg_queue_hash, + self.chunk_proofs + .last() + .expect("at least one chunk in batch") + .metadata + .chunk_info + .post_msg_queue_hash, + ) + } + }; + + let batch_hash = self.batch_header.batch_hash(); + + Ok(BatchInfo { + parent_state_root, + parent_batch_hash, + state_root, + batch_hash, + chain_id, + withdraw_root, + prev_msg_queue_hash, + post_msg_queue_hash, + }) + } +} diff --git a/common/libzkp/impl/src/tasks/batch/utils.rs b/common/libzkp/impl/src/tasks/batch/utils.rs new file mode 100644 index 0000000000..d0a80e59ea --- /dev/null +++ b/common/libzkp/impl/src/tasks/batch/utils.rs @@ -0,0 +1,77 @@ +pub mod base64 { + use base64::prelude::*; + use serde::{Deserialize, Deserializer, Serialize, Serializer}; + + pub fn serialize(v: &Vec, s: S) -> Result { + let base64 = BASE64_STANDARD.encode(v); + String::serialize(&base64, s) + } + + pub fn deserialize<'de, D: Deserializer<'de>>(d: D) -> Result, D::Error> { + let base64 = String::deserialize(d)?; + BASE64_STANDARD + .decode(base64.as_bytes()) + .map_err(serde::de::Error::custom) + } +} + +pub mod point_eval { + use c_kzg; + use sbv_primitives::{types::eips::eip4844::BLS_MODULUS, B256 as H256, U256}; + use scroll_zkvm_types::util::sha256_rv32; + + /// Given the blob-envelope, translate it to a fixed size EIP-4844 blob. + /// + /// For every 32-bytes chunk in the blob, the most-significant byte is set to 0 while the other + /// 31 bytes are copied from the provided blob-envelope. + pub fn to_blob(envelope_bytes: &[u8]) -> c_kzg::Blob { + let mut blob_bytes = [0u8; c_kzg::BYTES_PER_BLOB]; + + assert!( + envelope_bytes.len() + <= c_kzg::FIELD_ELEMENTS_PER_BLOB * (c_kzg::BYTES_PER_FIELD_ELEMENT - 1), + "too many bytes in blob envelope", + ); + + for (i, &byte) in envelope_bytes.iter().enumerate() { + blob_bytes[(i / 31) * 32 + 1 + (i % 31)] = byte; + } + + c_kzg::Blob::new(blob_bytes) + } + + /// Get the KZG commitment from an EIP-4844 blob. + pub fn blob_to_kzg_commitment(blob: &c_kzg::Blob) -> c_kzg::KzgCommitment { + c_kzg::KzgCommitment::blob_to_kzg_commitment(blob, c_kzg::ethereum_kzg_settings()) + .expect("blob to kzg commitment should succeed") + } + + /// The version for KZG as per EIP-4844. + const VERSIONED_HASH_VERSION_KZG: u8 = 1; + + /// Get the EIP-4844 versioned hash from the KZG commitment. + pub fn get_versioned_hash(commitment: &c_kzg::KzgCommitment) -> H256 { + let mut hash: [u8; 32] = sha256_rv32(commitment.to_bytes().as_slice()).into(); + hash[0] = VERSIONED_HASH_VERSION_KZG; + H256::new(hash) + } + + /// Get x for kzg proof from challenge hash + pub fn get_x_from_challenge(challenge: H256) -> U256 { + U256::from_be_bytes(challenge.0) % BLS_MODULUS + } + + /// Generate KZG proof and evaluation given the blob (polynomial) and a random challenge. + pub fn get_kzg_proof(blob: &c_kzg::Blob, challenge: H256) -> (c_kzg::KzgProof, U256) { + let challenge = get_x_from_challenge(challenge); + + let (proof, y) = c_kzg::KzgProof::compute_kzg_proof( + blob, + &c_kzg::Bytes32::new(challenge.to_be_bytes()), + c_kzg::ethereum_kzg_settings(), + ) + .expect("kzg proof should succeed"); + + (proof, U256::from_be_slice(y.as_slice())) + } +} diff --git a/common/libzkp/impl/src/tasks/bundle.rs b/common/libzkp/impl/src/tasks/bundle.rs new file mode 100644 index 0000000000..c4d32dcc23 --- /dev/null +++ b/common/libzkp/impl/src/tasks/bundle.rs @@ -0,0 +1,125 @@ +use crate::proofs::BatchProof; +use eyre::Result; +use scroll_zkvm_types::{ + bundle::{BundleInfo, BundleWitness}, + task::ProvingTask, + utils::{to_rkyv_bytes, RancorError}, +}; + +/// Message indicating a sanity check failure. +const BUNDLE_SANITY_MSG: &str = "bundle must have at least one batch"; + +#[derive(Clone, serde::Deserialize, serde::Serialize)] +pub struct BundleProvingTask { + pub batch_proofs: Vec, + /// for sanity check + pub bundle_info: Option, + /// Fork name specify + pub fork_name: String, +} + +impl BundleProvingTask { + fn identifier(&self) -> String { + assert!(!self.batch_proofs.is_empty(), "{BUNDLE_SANITY_MSG}",); + + let (first, last) = ( + self.batch_proofs + .first() + .expect(BUNDLE_SANITY_MSG) + .metadata + .batch_hash, + self.batch_proofs + .last() + .expect(BUNDLE_SANITY_MSG) + .metadata + .batch_hash, + ); + + format!("{first}-{last}") + } + + fn build_guest_input(&self) -> BundleWitness { + BundleWitness { + batch_proofs: self.batch_proofs.iter().map(|proof| proof.into()).collect(), + batch_infos: self + .batch_proofs + .iter() + .map(|wrapped_proof| wrapped_proof.metadata.batch_info.clone()) + .collect(), + } + } + + pub fn precheck_and_build_metadata(&self) -> Result { + use eyre::eyre; + let err_prefix = format!("metadata_with_prechecks for task_id={}", self.identifier()); + + for w in self.batch_proofs.windows(2) { + if w[1].metadata.batch_info.chain_id != w[0].metadata.batch_info.chain_id { + return Err(eyre!("{err_prefix}: chain_id mismatch")); + } + + if w[1].metadata.batch_info.parent_state_root != w[0].metadata.batch_info.state_root { + return Err(eyre!("{err_prefix}: state_root not chained")); + } + + if w[1].metadata.batch_info.parent_batch_hash != w[0].metadata.batch_info.batch_hash { + return Err(eyre!("{err_prefix}: batch_hash not chained")); + } + } + + let (first_batch, last_batch) = ( + &self + .batch_proofs + .first() + .expect("at least one batch in bundle") + .metadata + .batch_info, + &self + .batch_proofs + .last() + .expect("at least one batch in bundle") + .metadata + .batch_info, + ); + + let chain_id = first_batch.chain_id; + let num_batches = u32::try_from(self.batch_proofs.len()).expect("num_batches: u32"); + let prev_state_root = first_batch.parent_state_root; + let prev_batch_hash = first_batch.parent_batch_hash; + let post_state_root = last_batch.state_root; + let batch_hash = last_batch.batch_hash; + let withdraw_root = last_batch.withdraw_root; + let msg_queue_hash = last_batch.post_msg_queue_hash; + + Ok(BundleInfo { + chain_id, + msg_queue_hash, + num_batches, + prev_state_root, + prev_batch_hash, + post_state_root, + batch_hash, + withdraw_root, + }) + } +} + +impl TryFrom for ProvingTask { + type Error = eyre::Error; + + fn try_from(value: BundleProvingTask) -> Result { + let witness = value.build_guest_input(); + + Ok(ProvingTask { + identifier: value.identifier(), + fork_name: value.fork_name, + aggregated_proofs: value + .batch_proofs + .into_iter() + .map(|w_proof| w_proof.proof.into_root_proof().expect("expect root proof")) + .collect(), + serialized_witness: vec![to_rkyv_bytes::(&witness)?.to_vec()], + vk: Vec::new(), + }) + } +} diff --git a/common/libzkp/impl/src/tasks/chunk.rs b/common/libzkp/impl/src/tasks/chunk.rs new file mode 100644 index 0000000000..0fef0c66bc --- /dev/null +++ b/common/libzkp/impl/src/tasks/chunk.rs @@ -0,0 +1,185 @@ +use super::chunk_interpreter::*; +use eyre::Result; +use sbv_primitives::{types::BlockWitness, B256}; +use scroll_zkvm_types::{ + chunk::{execute, ChunkInfo, ChunkWitness}, + task::ProvingTask, + utils::{to_rkyv_bytes, RancorError}, +}; + +/// The type aligned with coordinator's defination +#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)] +pub struct ChunkTask { + /// block hashes for a series of block + pub block_hashes: Vec, + /// The on-chain L1 msg queue hash before applying L1 msg txs from the chunk. + pub prev_msg_queue_hash: B256, + /// Fork name specify + pub fork_name: String, +} + +impl TryFromWithInterpreter for ChunkProvingTask { + fn try_from_with_interpret( + value: ChunkTask, + interpreter: impl ChunkInterpreter, + ) -> Result { + let mut block_witnesses = Vec::new(); + for block_hash in value.block_hashes { + let witness = + interpreter.try_fetch_block_witness(block_hash, block_witnesses.last())?; + block_witnesses.push(witness); + } + + Ok(Self { + block_witnesses, + prev_msg_queue_hash: value.prev_msg_queue_hash, + fork_name: value.fork_name, + }) + } +} + +/// Message indicating a sanity check failure. +const CHUNK_SANITY_MSG: &str = "chunk must have at least one block"; + +/// Proving task for the [`ChunkCircuit`][scroll_zkvm_chunk_circuit]. +/// +/// The identifier for a chunk proving task is: +/// - {first_block_number}-{last_block_number} +#[derive(Clone, Debug, serde::Deserialize, serde::Serialize)] +pub struct ChunkProvingTask { + /// Witnesses for every block in the chunk. + pub block_witnesses: Vec, + /// The on-chain L1 msg queue hash before applying L1 msg txs from the chunk. + pub prev_msg_queue_hash: B256, + /// Fork name specify + pub fork_name: String, +} + +#[derive(Clone, Debug)] +pub struct ChunkDetails { + pub num_blocks: usize, + pub num_txs: usize, + pub total_gas_used: u64, +} + +impl TryFrom for ProvingTask { + type Error = eyre::Error; + + fn try_from(value: ChunkProvingTask) -> Result { + let witness = value.build_guest_input(); + + Ok(ProvingTask { + identifier: value.identifier(), + fork_name: value.fork_name, + aggregated_proofs: Vec::new(), + serialized_witness: vec![to_rkyv_bytes::(&witness)?.to_vec()], + vk: Vec::new(), + }) + } +} + +impl ChunkProvingTask { + pub fn stats(&self) -> ChunkDetails { + let num_blocks = self.block_witnesses.len(); + let num_txs = self + .block_witnesses + .iter() + .map(|b| b.transaction.len()) + .sum::(); + let total_gas_used = self + .block_witnesses + .iter() + .map(|b| b.header.gas_used) + .sum::(); + + ChunkDetails { + num_blocks, + num_txs, + total_gas_used, + } + } + + fn identifier(&self) -> String { + assert!(!self.block_witnesses.is_empty(), "{CHUNK_SANITY_MSG}",); + + let (first, last) = ( + self.block_witnesses + .first() + .expect(CHUNK_SANITY_MSG) + .header + .number, + self.block_witnesses + .last() + .expect(CHUNK_SANITY_MSG) + .header + .number, + ); + + format!("{first}-{last}") + } + + fn build_guest_input(&self) -> ChunkWitness { + ChunkWitness { + blocks: self.block_witnesses.to_vec(), + prev_msg_queue_hash: self.prev_msg_queue_hash, + fork_name: self.fork_name.to_lowercase().as_str().into(), + } + } + + fn insert_state(&mut self, node: sbv_primitives::Bytes) { + self.block_witnesses[0].states.push(node); + } +} + +const MAX_FETCH_NODES_ATTEMPTS: usize = 15; + +impl TryFromWithInterpreter<&mut ChunkProvingTask> for ChunkInfo { + fn try_from_with_interpret( + value: &mut ChunkProvingTask, + interpreter: impl ChunkInterpreter, + ) -> eyre::Result { + use eyre::eyre; + + let err_prefix = format!( + "metadata_with_prechecks for task_id={:?}", + value.identifier() + ); + + if value.block_witnesses.is_empty() { + return Err(eyre!( + "{err_prefix}: chunk should contain at least one block", + )); + } + + // resume from node missing error and keep executing process + let pattern = r"SparseTrieError\(BlindedNode \{ path: Nibbles\((0x[0-9a-fA-F]+)\), hash: (0x[0-9a-fA-F]+) \}\)"; + let err_parse_re = regex::Regex::new(pattern)?; + let mut attempts = 0; + loop { + match execute(&value.build_guest_input()) { + Ok(chunk_info) => return Ok(chunk_info), + Err(e) => { + if let Some(caps) = err_parse_re.captures(&e) { + let hash = caps[2].to_string(); + tracing::debug!("missing trie hash {hash}"); + + attempts += 1; + if attempts >= MAX_FETCH_NODES_ATTEMPTS { + return Err(eyre!( + "failed to fetch nodes after {MAX_FETCH_NODES_ATTEMPTS} attempts: {e}" + )); + } + + let node_hash = + hash.parse::().expect("should be hex"); + let node = interpreter.try_fetch_storage_node(node_hash)?; + tracing::warn!("missing node fetched: {node}"); + value.insert_state(node); + } else { + return Err(eyre!("{err_prefix}: {e}")); + } + } + } + } + } +} diff --git a/common/libzkp/impl/src/tasks/chunk_interpreter.rs b/common/libzkp/impl/src/tasks/chunk_interpreter.rs new file mode 100644 index 0000000000..0dd7a7b3e6 --- /dev/null +++ b/common/libzkp/impl/src/tasks/chunk_interpreter.rs @@ -0,0 +1,26 @@ +use eyre::Result; +use sbv_primitives::{types::BlockWitness, Bytes, B256}; + +/// An interpreter which is cirtical in translating chunk data +/// since we need to grep block witness and storage node data +/// (in rare case) from external +pub trait ChunkInterpreter { + fn try_fetch_block_witness( + &self, + _block_hash: B256, + _prev_witness: Option<&BlockWitness>, + ) -> Result { + Err(eyre::eyre!("no implement")) + } + fn try_fetch_storage_node(&self, _node_hash: B256) -> Result { + Err(eyre::eyre!("no implement")) + } +} + +pub trait TryFromWithInterpreter: Sized { + fn try_from_with_interpret(value: T, intepreter: impl ChunkInterpreter) -> Result; +} + +pub struct DummyInterpreter {} + +impl ChunkInterpreter for DummyInterpreter {} diff --git a/common/libzkp/impl/src/utils.rs b/common/libzkp/impl/src/utils.rs index 38eb9db6bb..aa15706943 100644 --- a/common/libzkp/impl/src/utils.rs +++ b/common/libzkp/impl/src/utils.rs @@ -1,16 +1,43 @@ use std::{ - ffi::{c_char, CStr}, panic::{catch_unwind, AssertUnwindSafe}, + path::Path, }; -pub(crate) fn c_char_to_str(c: *const c_char) -> &'static str { - let cstr = unsafe { CStr::from_ptr(c) }; - cstr.to_str().unwrap() +use git_version::git_version; +use serde::{ + de::{Deserialize, DeserializeOwned}, + Serialize, +}; + +use eyre::Result; + +const GIT_VERSION: &str = git_version!(args = ["--abbrev=7", "--always"]); + +/// Shortened git commit ref from [`scroll_zkvm_prover`]. +pub(crate) fn short_git_version() -> String { + let commit_version = GIT_VERSION.split('-').next_back().unwrap(); + + // Check if use commit object as fallback. + if commit_version.len() < 8 { + commit_version.to_string() + } else { + commit_version[1..8].to_string() + } +} + +/// Wrapper to read JSON that might be deeply nested. +pub(crate) fn read_json_deep, T: DeserializeOwned>(path: P) -> Result { + let fd = std::fs::File::open(path)?; + let mut deserializer = serde_json::Deserializer::from_reader(fd); + deserializer.disable_recursion_limit(); + let deserializer = serde_stacker::Deserializer::new(&mut deserializer); + Ok(Deserialize::deserialize(deserializer)?) } -pub(crate) fn c_char_to_vec(c: *const c_char) -> Vec { - let cstr = unsafe { CStr::from_ptr(c) }; - cstr.to_bytes().to_vec() +/// Serialize the provided type to JSON format and write to the given path. +pub(crate) fn write_json, T: Serialize>(path: P, value: &T) -> Result<()> { + let mut writer = std::fs::File::create(path)?; + Ok(serde_json::to_writer(&mut writer, value)?) } pub(crate) fn panic_catch R, R>(f: F) -> Result { diff --git a/common/libzkp/impl/src/verifier.rs b/common/libzkp/impl/src/verifier.rs index f97efba724..83224e2381 100644 --- a/common/libzkp/impl/src/verifier.rs +++ b/common/libzkp/impl/src/verifier.rs @@ -1,8 +1,8 @@ #![allow(static_mut_refs)] mod euclidv2; -use anyhow::{bail, Result}; use euclidv2::EuclidV2Verifier; +use eyre::Result; use serde::{Deserialize, Serialize}; use std::{cell::OnceCell, path::Path, rc::Rc}; @@ -13,6 +13,16 @@ pub enum TaskType { Bundle, } +impl std::fmt::Display for TaskType { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + match self { + Self::Chunk => write!(f, "chunk"), + Self::Batch => write!(f, "batch"), + Self::Bundle => write!(f, "bundle"), + } + } +} + #[derive(Debug, Serialize, Deserialize)] pub struct VKDump { pub chunk_vk: String, @@ -61,5 +71,8 @@ pub fn get_verifier(fork_name: &str) -> Result>> { } } } - bail!("failed to get verifier, key not found, {}", fork_name) + Err(eyre::eyre!( + "failed to get verifier, key not found, {}", + fork_name + )) } diff --git a/common/libzkp/impl/src/verifier/euclidv2.rs b/common/libzkp/impl/src/verifier/euclidv2.rs index 8f188b6290..7994abf50c 100644 --- a/common/libzkp/impl/src/verifier/euclidv2.rs +++ b/common/libzkp/impl/src/verifier/euclidv2.rs @@ -1,10 +1,12 @@ use super::{ProofVerifier, TaskType, VKDump}; -use anyhow::Result; +use eyre::Result; -use crate::utils::panic_catch; -use euclid_prover::{BatchProof, BundleProof, ChunkProof, IntoEvmProof}; -use euclid_verifier::verifier::{BatchVerifier, BundleVerifierEuclidV2, ChunkVerifier}; +use crate::{ + proofs::{AsRootProof, BatchProof, BundleProof, ChunkProof, IntoEvmProof}, + utils::panic_catch, +}; +use scroll_zkvm_verifier_euclid::verifier::{BatchVerifier, BundleVerifierEuclidV2, ChunkVerifier}; use std::{fs::File, path::Path}; pub struct EuclidV2Verifier { @@ -35,13 +37,11 @@ impl ProofVerifier for EuclidV2Verifier { panic_catch(|| match task_type { TaskType::Chunk => { let proof = serde_json::from_slice::(proof.as_slice()).unwrap(); - self.chunk_verifier - .verify_proof(proof.proof.as_root_proof().unwrap()) + self.chunk_verifier.verify_proof(proof.as_root_proof()) } TaskType::Batch => { let proof = serde_json::from_slice::(proof.as_slice()).unwrap(); - self.batch_verifier - .verify_proof(proof.proof.as_root_proof().unwrap()) + self.batch_verifier.verify_proof(proof.as_root_proof()) } TaskType::Bundle => { let proof = serde_json::from_slice::(proof.as_slice()).unwrap(); @@ -49,16 +49,17 @@ impl ProofVerifier for EuclidV2Verifier { .verify_proof_evm(&proof.into_evm_proof()) } }) - .map_err(|err_str: String| anyhow::anyhow!(err_str)) + .map_err(|err_str: String| eyre::eyre!("{err_str}")) } fn dump_vk(&self, file: &Path) { + use base64::{prelude::BASE64_STANDARD, Engine}; let f = File::create(file).expect("Failed to open file to dump VK"); let dump = VKDump { - chunk_vk: base64::encode(self.chunk_verifier.get_app_vk()), - batch_vk: base64::encode(self.batch_verifier.get_app_vk()), - bundle_vk: base64::encode(self.bundle_verifier.get_app_vk()), + chunk_vk: BASE64_STANDARD.encode(self.chunk_verifier.get_app_vk()), + batch_vk: BASE64_STANDARD.encode(self.batch_verifier.get_app_vk()), + bundle_vk: BASE64_STANDARD.encode(self.bundle_verifier.get_app_vk()), }; serde_json::to_writer(f, &dump).expect("Failed to dump VK"); } diff --git a/common/libzkp/l2geth/Cargo.toml b/common/libzkp/l2geth/Cargo.toml new file mode 100644 index 0000000000..7c7cc34037 --- /dev/null +++ b/common/libzkp/l2geth/Cargo.toml @@ -0,0 +1,26 @@ +[package] +name = "l2geth" +version.workspace = true +edition.workspace = true + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html +[dependencies] +tokio = {version = "1", features = ["rt-multi-thread"]} +async-trait = "0.1" +url = ">=2.5.3" + +libzkp = { path = "../impl" } +alloy = { workspace = true, features = ["provider-http", "transport-http", "reqwest", "reqwest-rustls-tls", "json-rpc"] } +sbv-primitives = { workspace = true, features = ["scroll"] } +sbv-utils = { workspace = true, features = ["scroll"] } + +eyre.workspace = true + +base64.workspace = true +serde.workspace = true +serde_derive.workspace = true +serde_json = { workspace = true, features = ["raw_value"]} +tracing.workspace = true + + + diff --git a/common/libzkp/l2geth/src/lib.rs b/common/libzkp/l2geth/src/lib.rs new file mode 100644 index 0000000000..8654bfc572 --- /dev/null +++ b/common/libzkp/l2geth/src/lib.rs @@ -0,0 +1,19 @@ +pub mod rpc_client; +pub use rpc_client::RpcConfig; + +use std::sync::{Arc, OnceLock}; + +static GLOBAL_L2GETH_CLI: OnceLock> = OnceLock::new(); + +pub fn init(config: &str) -> eyre::Result<()> { + let cfg: RpcConfig = serde_json::from_str(config)?; + GLOBAL_L2GETH_CLI.get_or_init(|| Arc::new(rpc_client::RpcClientCore::create(&cfg).unwrap())); + Ok(()) +} + +pub fn get_client() -> rpc_client::RpcClient<'static> { + GLOBAL_L2GETH_CLI + .get() + .expect("must has been inited") + .get_client() +} diff --git a/common/libzkp/l2geth/src/rpc_client.rs b/common/libzkp/l2geth/src/rpc_client.rs new file mode 100644 index 0000000000..1c77c923be --- /dev/null +++ b/common/libzkp/l2geth/src/rpc_client.rs @@ -0,0 +1,240 @@ +use alloy::{ + providers::{Provider, ProviderBuilder, RootProvider}, + rpc::client::ClientBuilder, + transports::layers::RetryBackoffLayer, +}; +use eyre::Result; +use libzkp::tasks::ChunkInterpreter; +use sbv_primitives::types::Network; +use serde::{Deserialize, Serialize}; + +fn default_max_retry() -> u32 { + 10 +} +fn default_backoff() -> u64 { + 100 +} +fn default_cups() -> u64 { + 100 +} +fn default_workers() -> usize { + 4 +} +fn default_max_concurrency() -> usize { + 10 +} + +#[derive(Serialize, Deserialize, Clone, Debug)] +pub struct RpcConfig { + #[serde(alias = "endpoint")] + pub rpc_url: String, + // The threads used in rt, default 4 + #[serde(default = "default_workers")] + pub workers: usize, + // The blocking threads to handle rpc tasks, default 10 + #[serde(default = "default_max_concurrency")] + pub max_concurrency: usize, + // Retry parameters + #[serde(default = "default_max_retry")] + pub max_retry: u32, + // backoff duration in milliseconds, default 100ms + #[serde(default = "default_backoff")] + pub backoff: u64, + // compute units per second: default 100 + #[serde(default = "default_cups")] + pub cups: u64, +} + +/// An rpc client prover which carrying async runtime, +/// so it can be run in block mode (i.e. inside dynamic library without a global entry) +pub struct RpcClientCore { + /// rpc prover + provider: RootProvider, + rt: tokio::runtime::Runtime, +} + +#[derive(Clone, Copy)] +pub struct RpcClient<'a> { + provider: &'a RootProvider, + handle: &'a tokio::runtime::Handle, +} + +impl RpcClientCore { + pub fn create(config: &RpcConfig) -> Result { + let rpc = url::Url::parse(&config.rpc_url)?; + tracing::info!("Using RPC: {}", rpc); + // note we MUST use multi rt since we have no a main thread for driving + // for each call in our method we can acquire a handle of the rt to resolve one or more async tasks + let rt = tokio::runtime::Builder::new_multi_thread() + .worker_threads(config.workers) + .max_blocking_threads(config.max_concurrency) + .enable_all() + .build()?; + + let retry_layer = RetryBackoffLayer::new(config.max_retry, config.backoff, config.cups); + let client = ClientBuilder::default().layer(retry_layer).http(rpc); + + Ok(Self { + provider: ProviderBuilder::<_, _, Network>::default().on_client(client), + rt, + }) + } + + pub fn get_client(&self) -> RpcClient { + RpcClient { + provider: &self.provider, + handle: self.rt.handle(), + } + } +} + +impl ChunkInterpreter for RpcClient<'_> { + fn try_fetch_block_witness( + &self, + block_hash: sbv_primitives::B256, + prev_witness: Option<&sbv_primitives::types::BlockWitness>, + ) -> Result { + async fn fetch_witness_async( + provider: &RootProvider, + block_hash: sbv_primitives::B256, + prev_witness: Option<&sbv_primitives::types::BlockWitness>, + ) -> Result { + use alloy::network::primitives::BlockTransactionsKind; + use sbv_utils::{rpc::ProviderExt, witness::WitnessBuilder}; + + let chain_id = provider.get_chain_id().await?; + + let block = provider + .get_block_by_hash(block_hash, BlockTransactionsKind::Full) + .await? + .ok_or_else(|| eyre::eyre!("Block not found"))?; + + let number = block.header.number; + if number == 0 { + eyre::bail!("no number in header or use block 0"); + } + + let prev_state_root = if let Some(witness) = prev_witness { + if witness.header.number != number - 1 { + eyre::bail!( + "the ref witness is not the previous block, expected {} get {}", + number - 1, + witness.header.number, + ); + } + witness.header.state_root + } else { + provider + .scroll_disk_root((number - 1).into()) + .await? + .disk_root + }; + + let witness = WitnessBuilder::new() + .block(block) + .chain_id(chain_id) + .execution_witness(provider.debug_execution_witness(number.into()).await?) + .state_root(provider.scroll_disk_root(number.into()).await?.disk_root)? + .prev_state_root(prev_state_root) + .build()?; + + Ok(witness) + } + + tracing::debug!("fetch witness for {block_hash}"); + self.handle + .block_on(fetch_witness_async(self.provider, block_hash, prev_witness)) + } + + fn try_fetch_storage_node( + &self, + node_hash: sbv_primitives::B256, + ) -> Result { + async fn fetch_storage_node_async( + provider: &RootProvider, + node_hash: sbv_primitives::B256, + ) -> Result { + let ret = provider + .client() + .request::<_, sbv_primitives::Bytes>("debug_dbGet", (node_hash,)) + .await?; + Ok(ret) + } + + tracing::debug!("fetch storage node for {node_hash}"); + self.handle + .block_on(fetch_storage_node_async(self.provider, node_hash)) + } +} + +#[cfg(test)] +mod tests { + use super::*; + use alloy::primitives::hex; + use sbv_primitives::B256; + use std::env; + + fn create_config_from_env() -> RpcConfig { + let endpoint = + env::var("L2GETH_ENDPOINT").expect("L2GETH_ENDPOINT environment variable must be set"); + + let config_json = format!(r#"{{"endpoint": "{}"}}"#, endpoint); + serde_json::from_str(&config_json).expect("Failed to parse RPC config") + } + + #[test] + #[ignore = "Requires L2GETH_ENDPOINT environment variable"] + fn test_try_fetch_block_witness() { + let config = create_config_from_env(); + let client_core = RpcClientCore::create(&config).expect("Failed to create RPC client"); + let client = client_core.get_client(); + + // latest - 1 block in 2025.6.15 + let block_hash = B256::from( + hex::const_decode_to_array( + b"0x9535a6970bc4db9031749331a214e35ed8c8a3f585f6f456d590a0bc780a1368", + ) + .unwrap(), + ); + + // This is expected to fail since we're using a dummy hash, but it tests the code path + let wit1 = client + .try_fetch_block_witness(block_hash, None) + .expect("should success"); + + // latest block in 2025.6.15 + let block_hash = B256::from( + hex::const_decode_to_array( + b"0xd47088cdb6afc68aa082e633bb7da9340d29c73841668afacfb9c1e66e557af0", + ) + .unwrap(), + ); + let wit2 = client + .try_fetch_block_witness(block_hash, Some(&wit1)) + .expect("should success"); + + println!("{}", serde_json::to_string_pretty(&wit2).unwrap()); + } + + #[test] + #[ignore = "Requires L2GETH_ENDPOINT environment variable"] + fn test_try_fetch_storage_node() { + let config = create_config_from_env(); + let client_core = RpcClientCore::create(&config).expect("Failed to create RPC client"); + let client = client_core.get_client(); + + // the root node (state root) of the block in unittest above + let node_hash = B256::from( + hex::const_decode_to_array( + b"0xb9e67403a2eb35afbb0475fe942918cf9a330a1d7532704c24554506be62b27c", + ) + .unwrap(), + ); + + // This is expected to fail since we're using a dummy hash, but it tests the code path + let node = client + .try_fetch_storage_node(node_hash) + .expect("should success"); + println!("{}", serde_json::to_string_pretty(&node).unwrap()); + } +} diff --git a/rust-toolchain b/rust-toolchain new file mode 100644 index 0000000000..e758c2c9fc --- /dev/null +++ b/rust-toolchain @@ -0,0 +1,3 @@ +[toolchain] +channel = "nightly-2025-02-14" +targets = ["riscv32im-unknown-none-elf", "x86_64-unknown-linux-gnu"] \ No newline at end of file diff --git a/zkvm-prover/Cargo.toml b/zkvm-prover/Cargo.toml index 068067efda..7534788119 100644 --- a/zkvm-prover/Cargo.toml +++ b/zkvm-prover/Cargo.toml @@ -5,38 +5,25 @@ edition = "2021" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html -[patch.crates-io] -alloy-primitives = { git = "https://github.com/scroll-tech/alloy-core", branch = "v0.8.21" } -ruint = { git = "https://github.com/scroll-tech/uint.git", branch = "v1.12.3" } -tiny-keccak = { git = "https://github.com/scroll-tech/tiny-keccak", branch = "scroll-patch-v2.0.2-openvm-v1.0.0-rc.1" } - [dependencies] -anyhow = "1.0" -log = "0.4" -env_logger = "0.11.3" -serde = { version = "1.0.198", features = ["derive"] } -serde_json = "1.0.116" +scroll-zkvm-types.workspace = true +scroll-zkvm-prover-euclid.workspace = true +scroll-proving-sdk = { git = "https://github.com/scroll-tech/scroll-proving-sdk.git", branch = "refactor/scroll" } +serde.workspace = true +serde_json.workspace = true +once_cell.workspace =true +base64.workspace = true +tiny-keccak = { workspace = true, features = ["sha3", "keccak"] } +eyre.workspace = true + futures = "0.3.30" -scroll-zkvm-prover-euclid = { git = "https://github.com/scroll-tech/zkvm-prover", tag = "v0.4.2", package = "scroll-zkvm-prover" } -ethers-core = { git = "https://github.com/scroll-tech/ethers-rs.git", branch = "v2.0.7" } -ethers-providers = { git = "https://github.com/scroll-tech/ethers-rs.git", branch = "v2.0.7" } -scroll-proving-sdk = { git = "https://github.com/scroll-tech/scroll-proving-sdk.git", branch = "main", features = [ - "openvm", -] } -sbv-primitives = { git = "https://github.com/scroll-tech/stateless-block-verifier", branch = "zkvm/euclid-upgrade", features = [ - "scroll", -] } -base64 = "0.13.1" reqwest = { version = "0.12.4", features = ["gzip"] } reqwest-middleware = "0.3" reqwest-retry = "0.5" -once_cell = "1.19.0" hex = "0.4.3" -tiny-keccak = { version = "2.0.0", features = ["sha3", "keccak"] } + rand = "0.8.5" -eth-keystore = "0.5.0" -rlp = "0.5.2" tokio = "1.37.0" async-trait = "0.1" sled = "0.34.7" @@ -45,35 +32,3 @@ clap = { version = "4.5", features = ["derive"] } ctor = "0.2.8" url = "2.5.4" serde_bytes = "0.11.15" - -[patch."https://github.com/openvm-org/stark-backend.git"] -openvm-stark-backend = { git = "ssh://git@github.com/scroll-tech/openvm-stark-gpu.git", branch = "main", features = ["gpu"] } -openvm-stark-sdk = { git = "ssh://git@github.com/scroll-tech/openvm-stark-gpu.git", branch = "main", features = ["gpu"] } - -[patch."https://github.com/Plonky3/Plonky3.git"] -p3-air = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", tag = "v0.2.0" } -p3-field = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", tag = "v0.2.0" } -p3-commit = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", tag = "v0.2.0" } -p3-matrix = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", tag = "v0.2.0" } -p3-baby-bear = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", features = [ - "nightly-features", -], tag = "v0.2.0" } -p3-koala-bear = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", tag = "v0.2.0" } -p3-util = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", tag = "v0.2.0" } -p3-challenger = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", tag = "v0.2.0" } -p3-dft = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", tag = "v0.2.0" } -p3-fri = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", tag = "v0.2.0" } -p3-goldilocks = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", tag = "v0.2.0" } -p3-keccak = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", tag = "v0.2.0" } -p3-keccak-air = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", tag = "v0.2.0" } -p3-blake3 = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", tag = "v0.2.0" } -p3-mds = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", tag = "v0.2.0" } -p3-merkle-tree = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", tag = "v0.2.0" } -p3-monty-31 = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", tag = "v0.2.0" } -p3-poseidon = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", tag = "v0.2.0" } -p3-poseidon2 = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", tag = "v0.2.0" } -p3-poseidon2-air = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", tag = "v0.2.0" } -p3-symmetric = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", tag = "v0.2.0" } -p3-uni-stark = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", tag = "v0.2.0" } -p3-maybe-rayon = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", tag = "v0.2.0" } # the "parallel" feature is NOT on by default to allow single-threaded benchmarking -p3-bn254-fr = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", tag = "v0.2.0" } diff --git a/zkvm-prover/rust-toolchain b/zkvm-prover/rust-toolchain deleted file mode 100644 index 537ad6c524..0000000000 --- a/zkvm-prover/rust-toolchain +++ /dev/null @@ -1 +0,0 @@ -nightly-2024-12-06 \ No newline at end of file diff --git a/zkvm-prover/src/main.rs b/zkvm-prover/src/main.rs index 145788b05a..8c20c3e9cb 100644 --- a/zkvm-prover/src/main.rs +++ b/zkvm-prover/src/main.rs @@ -26,7 +26,7 @@ struct Args { } #[tokio::main] -async fn main() -> anyhow::Result<()> { +async fn main() -> eyre::Result<()> { init_tracing(); let args = Args::parse(); @@ -39,7 +39,10 @@ async fn main() -> anyhow::Result<()> { let cfg = LocalProverConfig::from_file(args.config_file)?; let sdk_config = cfg.sdk_config.clone(); let local_prover = LocalProver::new(cfg); - let prover = ProverBuilder::new(sdk_config, local_prover).build().await?; + let prover = ProverBuilder::new(sdk_config, local_prover) + .build() + .await + .map_err(|e| eyre::eyre!("build prover fail: {e}"))?; prover.run().await; diff --git a/zkvm-prover/src/prover.rs b/zkvm-prover/src/prover.rs index c169343c52..1d628f2706 100644 --- a/zkvm-prover/src/prover.rs +++ b/zkvm-prover/src/prover.rs @@ -1,8 +1,7 @@ -use crate::zk_circuits_handler::{ - euclid::EuclidHandler, euclidV2::EuclidV2Handler, CircuitsHandler, -}; -use anyhow::{anyhow, Result}; +use crate::zk_circuits_handler::{euclidV2::EuclidV2Handler, CircuitsHandler}; use async_trait::async_trait; +use base64::{prelude::BASE64_STANDARD, Engine}; +use eyre::Result; use scroll_proving_sdk::{ config::Config as SdkConfig, prover::{ @@ -33,7 +32,7 @@ impl LocalProverConfig { where R: std::io::Read, { - serde_json::from_reader(reader).map_err(|e| anyhow!(e)) + serde_json::from_reader(reader).map_err(|e| eyre::eyre!(e)) } pub fn from_file(file_name: String) -> Result { @@ -69,7 +68,7 @@ impl ProvingService for LocalProver { let vk = handler.get_vk(*proof_type).await; if let Some(vk) = vk { - vks.push(base64::encode(vk)); + vks.push(BASE64_STANDARD.encode(vk)); } } } @@ -184,9 +183,6 @@ impl LocalProver { let config = self.config.circuits.get(hard_fork_name).unwrap(); match hard_fork_name { - "euclid" => Arc::new(Arc::new(Mutex::new(EuclidHandler::new( - &config.workspace_path, - )))) as Arc, "euclidV2" => Arc::new(Arc::new(Mutex::new(EuclidV2Handler::new( &config.workspace_path, )))) as Arc, diff --git a/zkvm-prover/src/types.rs b/zkvm-prover/src/types.rs index 287bc4182d..43f2348406 100644 --- a/zkvm-prover/src/types.rs +++ b/zkvm-prover/src/types.rs @@ -1,11 +1,8 @@ use serde::{Deserialize, Deserializer, Serialize, Serializer}; -use scroll_proving_sdk::prover::types::CircuitType; - #[derive(Serialize, Deserialize, Default)] pub struct Task { #[serde(rename = "type", default)] - pub task_type: CircuitType, pub task_data: String, #[serde(default)] pub hard_fork_name: String, @@ -15,7 +12,6 @@ pub struct Task { pub struct ProofDetail { pub id: String, #[serde(rename = "type", default)] - pub proof_type: CircuitType, pub proof_data: String, pub error: String, } diff --git a/zkvm-prover/src/zk_circuits_handler.rs b/zkvm-prover/src/zk_circuits_handler.rs index 6b97e3d906..17cf44db04 100644 --- a/zkvm-prover/src/zk_circuits_handler.rs +++ b/zkvm-prover/src/zk_circuits_handler.rs @@ -1,11 +1,13 @@ -pub mod euclid; +//pub mod euclid; #[allow(non_snake_case)] pub mod euclidV2; -use anyhow::Result; use async_trait::async_trait; +use eyre::Result; use scroll_proving_sdk::prover::{proving_service::ProveRequest, ProofType}; +use scroll_zkvm_prover_euclid::ProverConfig; +use std::path::Path; #[async_trait] pub trait CircuitsHandler: Sync + Send { @@ -13,3 +15,53 @@ pub trait CircuitsHandler: Sync + Send { async fn get_proof_data(&self, prove_request: ProveRequest) -> Result; } + +#[derive(Clone, Copy)] +pub(crate) enum Phase { + EuclidV2, +} + +impl Phase { + pub fn phase_spec_chunk(&self, workspace_path: &Path) -> ProverConfig { + let dir_cache = Some(workspace_path.join("cache")); + let path_app_exe = workspace_path.join("chunk/app.vmexe"); + let path_app_config = workspace_path.join("chunk/openvm.toml"); + let segment_len = Some((1 << 22) - 100); + ProverConfig { + dir_cache, + path_app_config, + path_app_exe, + segment_len, + ..Default::default() + } + } + + pub fn phase_spec_batch(&self, workspace_path: &Path) -> ProverConfig { + let dir_cache = Some(workspace_path.join("cache")); + let path_app_exe = workspace_path.join("batch/app.vmexe"); + let path_app_config = workspace_path.join("batch/openvm.toml"); + let segment_len = Some((1 << 22) - 100); + ProverConfig { + dir_cache, + path_app_config, + path_app_exe, + segment_len, + ..Default::default() + } + } + + pub fn phase_spec_bundle(&self, workspace_path: &Path) -> ProverConfig { + let dir_cache = Some(workspace_path.join("cache")); + let path_app_config = workspace_path.join("bundle/openvm.toml"); + let segment_len = Some((1 << 22) - 100); + match self { + Phase::EuclidV2 => ProverConfig { + dir_cache, + path_app_config, + segment_len, + path_app_exe: workspace_path.join("bundle/app.vmexe"), + ..Default::default() + }, + } + } +} diff --git a/zkvm-prover/src/zk_circuits_handler/euclidV2.rs b/zkvm-prover/src/zk_circuits_handler/euclidV2.rs index 2191f0d5f3..1bc173ea0d 100644 --- a/zkvm-prover/src/zk_circuits_handler/euclidV2.rs +++ b/zkvm-prover/src/zk_circuits_handler/euclidV2.rs @@ -1,13 +1,11 @@ use std::{path::Path, sync::Arc}; -use super::{euclid::Phase, CircuitsHandler}; -use anyhow::{anyhow, Result}; +use super::{CircuitsHandler, Phase}; use async_trait::async_trait; +use eyre::Result; use scroll_proving_sdk::prover::{proving_service::ProveRequest, ProofType}; -use scroll_zkvm_prover_euclid::{ - task::{batch::BatchProvingTask, bundle::BundleProvingTask, chunk::ChunkProvingTask}, - BatchProver, BundleProverEuclidV2, ChunkProver, -}; +use scroll_zkvm_prover_euclid::{BatchProver, BundleProverEuclidV2, ChunkProver}; +use scroll_zkvm_types::ProvingTask; use tokio::sync::Mutex; pub struct EuclidV2Handler { chunk_prover: ChunkProver, @@ -50,30 +48,26 @@ impl CircuitsHandler for Arc> { } async fn get_proof_data(&self, prove_request: ProveRequest) -> Result { - match prove_request.proof_type { - ProofType::Chunk => { - let task: ChunkProvingTask = serde_json::from_str(&prove_request.input)?; - let proof = self.try_lock().unwrap().chunk_prover.gen_proof(&task)?; + let u_task: ProvingTask = serde_json::from_str(&prove_request.input)?; - Ok(serde_json::to_string(&proof)?) - } - ProofType::Batch => { - let task: BatchProvingTask = serde_json::from_str(&prove_request.input)?; - let proof = self.try_lock().unwrap().batch_prover.gen_proof(&task)?; - - Ok(serde_json::to_string(&proof)?) - } - ProofType::Bundle => { - let batch_proofs: BundleProvingTask = serde_json::from_str(&prove_request.input)?; - let proof = self - .try_lock() - .unwrap() - .bundle_prover - .gen_proof_evm(&batch_proofs)?; - - Ok(serde_json::to_string(&proof)?) - } - _ => Err(anyhow!("Unsupported proof type")), - } + let proof = match prove_request.proof_type { + ProofType::Chunk => self + .try_lock() + .unwrap() + .chunk_prover + .gen_proof_universal(&u_task, false)?, + ProofType::Batch => self + .try_lock() + .unwrap() + .batch_prover + .gen_proof_universal(&u_task, false)?, + ProofType::Bundle => self + .try_lock() + .unwrap() + .bundle_prover + .gen_proof_universal(&u_task, true)?, + _ => return Err(eyre::eyre!("Unsupported proof type")), + }; + Ok(serde_json::to_string(&proof)?) } } From c517deb3d3232bfd76f9ca2e5aea90786c9537d3 Mon Sep 17 00:00:00 2001 From: Ho Date: Fri, 20 Jun 2025 17:27:32 +0900 Subject: [PATCH 02/14] re-organize all rust crates --- Cargo.lock | 67 +- Cargo.toml | 11 +- build/dockerfiles/coordinator-api.Dockerfile | 18 +- build/dockerfiles/prover.Dockerfile | 2 +- common/libzkp/Makefile | 17 + common/libzkp/impl/Makefile | 16 - common/libzkp/impl/rust-toolchain | 1 - common/libzkp/lib.go | 2 +- common/libzkp/{interface => }/libzkp.h | 0 coordinator/Makefile | 18 +- {common/libzkp => crates}/l2geth/Cargo.toml | 2 +- {common/libzkp => crates}/l2geth/src/lib.rs | 0 .../l2geth/src/rpc_client.rs | 3 +- .../libzkp/impl => crates/libzkp}/Cargo.toml | 0 .../impl => crates/libzkp}/rustfmt.toml | 0 .../libzkp/impl => crates/libzkp}/src/lib.rs | 0 .../libzkp}/src/plonk_verifier_0.11.4.bin | Bin .../impl => crates/libzkp}/src/proofs.rs | 0 .../impl => crates/libzkp}/src/tasks.rs | 0 .../impl => crates/libzkp}/src/tasks/batch.rs | 0 .../libzkp}/src/tasks/batch/utils.rs | 0 .../libzkp}/src/tasks/bundle.rs | 0 .../impl => crates/libzkp}/src/tasks/chunk.rs | 0 .../libzkp}/src/tasks/chunk_interpreter.rs | 0 .../impl => crates/libzkp}/src/utils.rs | 0 .../impl => crates/libzkp}/src/verifier.rs | 0 .../libzkp}/src/verifier/euclidv2.rs | 0 crates/libzkp_c/Cargo.toml | 14 + crates/libzkp_c/src/lib.rs | 167 + crates/libzkp_c/src/utils.rs | 11 + {zkvm-prover => crates/prover-bin}/Cargo.toml | 0 crates/prover-bin/README.md | 11 + .../prover-bin}/src/main.rs | 0 .../prover-bin}/src/prover.rs | 0 .../prover-bin}/src/types.rs | 0 .../prover-bin}/src/zk_circuits_handler.rs | 0 .../src/zk_circuits_handler/euclid.rs | 0 .../src/zk_circuits_handler/euclidV2.rs | 0 zkvm-prover/rustfmt.toml => rustfmt.toml | 0 zkvm-prover/Cargo.lock | 10154 ---------------- zkvm-prover/Makefile | 6 +- zkvm-prover/config.json.template | 31 + zkvm-prover/print_high_zkvm_version.sh | 2 +- 43 files changed, 288 insertions(+), 10265 deletions(-) create mode 100644 common/libzkp/Makefile delete mode 100644 common/libzkp/impl/Makefile delete mode 100644 common/libzkp/impl/rust-toolchain rename common/libzkp/{interface => }/libzkp.h (100%) rename {common/libzkp => crates}/l2geth/Cargo.toml (95%) rename {common/libzkp => crates}/l2geth/src/lib.rs (100%) rename {common/libzkp => crates}/l2geth/src/rpc_client.rs (99%) rename {common/libzkp/impl => crates/libzkp}/Cargo.toml (100%) rename {common/libzkp/impl => crates/libzkp}/rustfmt.toml (100%) rename {common/libzkp/impl => crates/libzkp}/src/lib.rs (100%) rename {common/libzkp/impl => crates/libzkp}/src/plonk_verifier_0.11.4.bin (100%) rename {common/libzkp/impl => crates/libzkp}/src/proofs.rs (100%) rename {common/libzkp/impl => crates/libzkp}/src/tasks.rs (100%) rename {common/libzkp/impl => crates/libzkp}/src/tasks/batch.rs (100%) rename {common/libzkp/impl => crates/libzkp}/src/tasks/batch/utils.rs (100%) rename {common/libzkp/impl => crates/libzkp}/src/tasks/bundle.rs (100%) rename {common/libzkp/impl => crates/libzkp}/src/tasks/chunk.rs (100%) rename {common/libzkp/impl => crates/libzkp}/src/tasks/chunk_interpreter.rs (100%) rename {common/libzkp/impl => crates/libzkp}/src/utils.rs (100%) rename {common/libzkp/impl => crates/libzkp}/src/verifier.rs (100%) rename {common/libzkp/impl => crates/libzkp}/src/verifier/euclidv2.rs (100%) create mode 100644 crates/libzkp_c/Cargo.toml create mode 100644 crates/libzkp_c/src/lib.rs create mode 100644 crates/libzkp_c/src/utils.rs rename {zkvm-prover => crates/prover-bin}/Cargo.toml (100%) create mode 100644 crates/prover-bin/README.md rename {zkvm-prover => crates/prover-bin}/src/main.rs (100%) rename {zkvm-prover => crates/prover-bin}/src/prover.rs (100%) rename {zkvm-prover => crates/prover-bin}/src/types.rs (100%) rename {zkvm-prover => crates/prover-bin}/src/zk_circuits_handler.rs (100%) rename {zkvm-prover => crates/prover-bin}/src/zk_circuits_handler/euclid.rs (100%) rename {zkvm-prover => crates/prover-bin}/src/zk_circuits_handler/euclidV2.rs (100%) rename zkvm-prover/rustfmt.toml => rustfmt.toml (100%) delete mode 100644 zkvm-prover/Cargo.lock create mode 100644 zkvm-prover/config.json.template diff --git a/Cargo.lock b/Cargo.lock index 0e2dc7bf40..31c35ea775 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1872,14 +1872,6 @@ dependencies = [ "zeroize", ] -[[package]] -name = "encoder" -version = "0.1.0" -source = "git+https://github.com/scroll-tech/da-codec.git?tag=v0.1.2#8c5d2f0cd707153151a5154fef702204f6ca40b3" -dependencies = [ - "zstd 0.13.0", -] - [[package]] name = "encoding_rs" version = "0.8.35" @@ -3319,7 +3311,7 @@ dependencies = [ "libc", "libz-sys", "lz4-sys", - "zstd-sys 2.0.15+zstd.1.5.7", + "zstd-sys", ] [[package]] @@ -6355,7 +6347,7 @@ dependencies = [ "serde", "thiserror 2.0.12", "tracing", - "zstd 1.1.4", + "zstd", ] [[package]] @@ -6683,7 +6675,7 @@ name = "reth-zstd-compressors" version = "1.1.5" source = "git+https://github.com/scroll-tech/reth?branch=zkvm%2Feuclid-upgrade#6009111704d286ed6c737fe78dca09d613be0352" dependencies = [ - "zstd 1.1.4", + "zstd", ] [[package]] @@ -7356,33 +7348,6 @@ dependencies = [ "url", ] -[[package]] -name = "scroll-zkvm-integration" -version = "4.5.8" -dependencies = [ - "alloy-primitives", - "chrono", - "eyre", - "ff 0.13.1", - "glob", - "halo2curves-axiom", - "libzkp", - "metrics-tracing-context", - "once_cell", - "revm 19.7.0", - "sbv-primitives", - "scroll-zkvm-prover", - "scroll-zkvm-types", - "scroll-zkvm-verifier", - "serde", - "serde_json", - "sha2", - "snark-verifier-sdk", - "tracing", - "tracing-subscriber", - "vm-zstd", -] - [[package]] name = "scroll-zkvm-prover" version = "0.4.0" @@ -8934,7 +8899,6 @@ source = "git+https://github.com/scroll-tech/rust-zstd-decompressor.git?tag=v0.1 dependencies = [ "anyhow", "bitstream-io", - "encoder", "itertools 0.11.0", "serde", "strum 0.25.0", @@ -9665,36 +9629,11 @@ dependencies = [ "subtle", ] -[[package]] -name = "zstd" -version = "0.13.0" -source = "git+https://github.com/scroll-tech/zstd-rs?branch=hack%2Fmul-block#5c0892b6567dab31394d701477183ce9d6a32aca" -dependencies = [ - "zstd-safe", -] - [[package]] name = "zstd" version = "1.1.4" source = "git+https://github.com/scroll-tech/reth?branch=zkvm%2Feuclid-upgrade#6009111704d286ed6c737fe78dca09d613be0352" -[[package]] -name = "zstd-safe" -version = "7.0.0" -source = "git+https://github.com/scroll-tech/zstd-rs?branch=hack%2Fmul-block#5c0892b6567dab31394d701477183ce9d6a32aca" -dependencies = [ - "zstd-sys 2.0.9+zstd.1.5.5", -] - -[[package]] -name = "zstd-sys" -version = "2.0.9+zstd.1.5.5" -source = "git+https://github.com/scroll-tech/zstd-rs?branch=hack%2Fmul-block#5c0892b6567dab31394d701477183ce9d6a32aca" -dependencies = [ - "cc", - "pkg-config", -] - [[package]] name = "zstd-sys" version = "2.0.15+zstd.1.5.7" diff --git a/Cargo.toml b/Cargo.toml index 671e637d29..72123d11ae 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,10 +1,9 @@ [workspace] members = [ - "common/libzkp/impl", - "common/libzkp/l2geth", - "common/libzkp/interface", - "common/libzkp/integration_test", - "zkvm-prover", + "crates/libzkp", + "crates/l2geth", + "crates/libzkp_c", + "crates/prover-bin", ] resolver = "2" @@ -53,7 +52,7 @@ snark-verifier-sdk = { version = "0.2.0", default-features = false, features = [ once_cell = "1.20" base64 = "0.22" -#TODO: upgrade when Feyman +#TODO: upgrade when Feynman vm-zstd = { git = "https://github.com/scroll-tech/rust-zstd-decompressor.git", tag = "v0.1.1" } [patch.crates-io] diff --git a/build/dockerfiles/coordinator-api.Dockerfile b/build/dockerfiles/coordinator-api.Dockerfile index b08e54161c..31e5789c51 100644 --- a/build/dockerfiles/coordinator-api.Dockerfile +++ b/build/dockerfiles/coordinator-api.Dockerfile @@ -3,11 +3,13 @@ FROM scrolltech/cuda-go-rust-builder:cuda-11.7.1-go-1.21-rust-nightly-2023-12-03 WORKDIR app FROM chef as planner -COPY ./common/libzkp/impl/ . +COPY ./crates ./ +COPY ./Cargo.* ./ +COPY ./rust-toolchain ./ RUN cargo chef prepare --recipe-path recipe.json FROM chef as zkp-builder -COPY ./common/libzkp/impl/rust-toolchain ./ +COPY ./rust-toolchain ./ COPY --from=planner /app/recipe.json recipe.json # run scripts to get openvm-gpu COPY ./build/dockerfiles/coordinator-api/plonky3-gpu /plonky3-gpu @@ -17,8 +19,9 @@ COPY ./build/dockerfiles/coordinator-api/gitconfig /root/.gitconfig COPY ./build/dockerfiles/coordinator-api/config.toml /root/.cargo/config.toml RUN cargo chef cook --release --recipe-path recipe.json -COPY ./common/libzkp/impl . -RUN cargo build --release +COPY ./crates ./ +COPY ./Cargo.* ./ +RUN cargo build --release -p libzkp-c # Download Go dependencies @@ -37,9 +40,10 @@ RUN go mod download -x # Build coordinator FROM base as builder COPY . . -RUN cp -r ./common/libzkp/interface ./coordinator/internal/logic/verifier/lib -COPY --from=zkp-builder /app/target/release/libzkp.so ./coordinator/internal/logic/verifier/lib/ -RUN cd ./coordinator && CGO_LDFLAGS="-Wl,--no-as-needed -ldl" make coordinator_api_skip_libzkp && mv ./build/bin/coordinator_api /bin/coordinator_api && mv internal/logic/verifier/lib /bin/ +#RUN cp -r ./common/libzkp/interface ./coordinator/internal/logic/verifier/lib +COPY --from=zkp-builder /app/target/release/libzkp.so ./common/libzkp/lib/ +RUN cd ./coordinator && CGO_LDFLAGS="-Wl,--no-as-needed -ldl" make coordinator_api && mv ./build/bin/coordinator_api /bin/coordinator_api +RUN mv common/libzkp/lib /bin/ # Pull coordinator into a second stage deploy ubuntu container FROM nvidia/cuda:11.7.1-runtime-ubuntu22.04 diff --git a/build/dockerfiles/prover.Dockerfile b/build/dockerfiles/prover.Dockerfile index 90efa6efa0..0bac2b59af 100644 --- a/build/dockerfiles/prover.Dockerfile +++ b/build/dockerfiles/prover.Dockerfile @@ -18,6 +18,6 @@ RUN cd /src/zkvm-prover && make prover FROM ubuntu:24.04 AS runtime -COPY --from=builder /src/zkvm-prover/target/release/prover /usr/local/bin/ +COPY --from=builder /src/target/release/prover /usr/local/bin/ ENTRYPOINT ["prover"] \ No newline at end of file diff --git a/common/libzkp/Makefile b/common/libzkp/Makefile new file mode 100644 index 0000000000..5e961d08e2 --- /dev/null +++ b/common/libzkp/Makefile @@ -0,0 +1,17 @@ +.PHONY: help fmt clippy test test-ci test-all + +build: + @cargo build --release -p libzkp-c + @mkdir -p lib + @cp -f ../../target/release/libzkp.so lib/ + +fmt: + @cargo fmt --all -- --check + +clean: + @cargo clean --release -p libzkp -p libzkp-c -p l2geth + @rm -f lib/libzkp.so + +clippy: + @cargo check --release --all-features + @cargo clippy --release -- -D warnings diff --git a/common/libzkp/impl/Makefile b/common/libzkp/impl/Makefile deleted file mode 100644 index 93516869cd..0000000000 --- a/common/libzkp/impl/Makefile +++ /dev/null @@ -1,16 +0,0 @@ -.PHONY: help fmt clippy test test-ci test-all - -build: - @cargo build --release - @mkdir -p ../lib - @cp -f target/release/libzkp.so ../lib/ - -fmt: - @cargo fmt --all -- --check - -clean: - @rm -f ../lib/libzkp.so - -clippy: - @cargo check --all-features - @cargo clippy --release -- -D warnings diff --git a/common/libzkp/impl/rust-toolchain b/common/libzkp/impl/rust-toolchain deleted file mode 100644 index 71ef52e171..0000000000 --- a/common/libzkp/impl/rust-toolchain +++ /dev/null @@ -1 +0,0 @@ -nightly-2024-12-06 diff --git a/common/libzkp/lib.go b/common/libzkp/lib.go index 83a3ed5e9f..c5c69a5dba 100644 --- a/common/libzkp/lib.go +++ b/common/libzkp/lib.go @@ -4,7 +4,7 @@ package libzkp #cgo LDFLAGS: -lzkp -lm -ldl -L${SRCDIR}/lib -Wl,-rpath=${SRCDIR}/lib #cgo gpu LDFLAGS: -lzkp -lm -ldl -lgmp -lstdc++ -lprocps -L/usr/local/cuda/lib64/ -lcudart -L${SRCDIR}/lib/ -Wl,-rpath=${SRCDIR}/lib #include -#include "interface/libzkp.h" +#include "libzkp.h" */ import "C" //nolint:typecheck diff --git a/common/libzkp/interface/libzkp.h b/common/libzkp/libzkp.h similarity index 100% rename from common/libzkp/interface/libzkp.h rename to common/libzkp/libzkp.h diff --git a/coordinator/Makefile b/coordinator/Makefile index 91ed9adc47..d7e0cf0a04 100644 --- a/coordinator/Makefile +++ b/coordinator/Makefile @@ -4,23 +4,23 @@ IMAGE_VERSION=latest REPO_ROOT_DIR=./.. ifeq (4.3,$(firstword $(sort $(MAKE_VERSION) 4.3))) - ZKEVM_VERSION=$(shell grep -m 1 "zkevm-circuits" ../common/libzkp/impl/Cargo.lock | cut -d "#" -f2 | cut -c-7) - HALO2_VERSION=$(shell grep -m 1 "halo2.git" ../common/libzkp/impl/Cargo.lock | cut -d "#" -f2 | cut -c-7) + ZKVM_VERSION=$(shell grep -m 1 "zkvm-prover?" ../Cargo.lock | cut -d "#" -f2 | cut -c-7) + OPENVM_VERSION=$(shell grep -m 1 "openvm.git" ../Cargo.lock | cut -d "#" -f2 | cut -c-7) else - ZKEVM_VERSION=$(shell grep -m 1 "zkevm-circuits" ../common/libzkp/impl/Cargo.lock | cut -d "\#" -f2 | cut -c-7) - HALO2_VERSION=$(shell grep -m 1 "halo2.git" ../common/libzkp/impl/Cargo.lock | cut -d "\#" -f2 | cut -c-7) + ZKVM_VERSION=$(shell grep -m 1 "zkvm-prover?" ../Cargo.lock | cut -d "\#" -f2 | cut -c-7) + OPENVM_VERSION=$(shell grep -m 1 "openvm.git" ../Cargo.lock | cut -d "\#" -f2 | cut -c-7) endif -ZK_VERSION=${ZKEVM_VERSION}-${HALO2_VERSION} +ZK_VERSION=${ZKVM_VERSION}-${OPENVM_VERSION} test: go test -v -race -coverprofile=coverage.txt -covermode=atomic -p 1 $(PWD)/... ../common/libzkp/lib/libzkp.so: - $(MAKE) -C ../common/libzkp/impl build + $(MAKE) -C ../common/libzkp build clean_libzkp: - $(MAKE) -C ../common/libzkp/impl clean + $(MAKE) -C ../common/libzkp clean libzkp: clean_libzkp ../common/libzkp/lib/libzkp.so @@ -33,8 +33,8 @@ coordinator_cron: coordinator_tool: go build -ldflags "-X scroll-tech/common/version.ZkVersion=${ZK_VERSION}" -o $(PWD)/build/bin/coordinator_tool ./cmd/tool -coordinator_api_skip_libzkp: - go build -ldflags "-X scroll-tech/common/version.ZkVersion=${ZK_VERSION}" -o $(PWD)/build/bin/coordinator_api ./cmd/api +#coordinator_api_skip_libzkp: +# go build -ldflags "-X scroll-tech/common/version.ZkVersion=${ZK_VERSION}" -o $(PWD)/build/bin/coordinator_api ./cmd/api mock_coordinator_api: ## Builds the mocked Coordinator instance. go build -tags="mock_prover mock_verifier" -o $(PWD)/build/bin/coordinator_api ./cmd/api diff --git a/common/libzkp/l2geth/Cargo.toml b/crates/l2geth/Cargo.toml similarity index 95% rename from common/libzkp/l2geth/Cargo.toml rename to crates/l2geth/Cargo.toml index 7c7cc34037..2b71e8907a 100644 --- a/common/libzkp/l2geth/Cargo.toml +++ b/crates/l2geth/Cargo.toml @@ -9,7 +9,7 @@ tokio = {version = "1", features = ["rt-multi-thread"]} async-trait = "0.1" url = ">=2.5.3" -libzkp = { path = "../impl" } +libzkp = { path = "../libzkp" } alloy = { workspace = true, features = ["provider-http", "transport-http", "reqwest", "reqwest-rustls-tls", "json-rpc"] } sbv-primitives = { workspace = true, features = ["scroll"] } sbv-utils = { workspace = true, features = ["scroll"] } diff --git a/common/libzkp/l2geth/src/lib.rs b/crates/l2geth/src/lib.rs similarity index 100% rename from common/libzkp/l2geth/src/lib.rs rename to crates/l2geth/src/lib.rs diff --git a/common/libzkp/l2geth/src/rpc_client.rs b/crates/l2geth/src/rpc_client.rs similarity index 99% rename from common/libzkp/l2geth/src/rpc_client.rs rename to crates/l2geth/src/rpc_client.rs index 1c77c923be..3f8faf7ca3 100644 --- a/common/libzkp/l2geth/src/rpc_client.rs +++ b/crates/l2geth/src/rpc_client.rs @@ -64,7 +64,8 @@ impl RpcClientCore { let rpc = url::Url::parse(&config.rpc_url)?; tracing::info!("Using RPC: {}", rpc); // note we MUST use multi rt since we have no a main thread for driving - // for each call in our method we can acquire a handle of the rt to resolve one or more async tasks + // for each call in our method we can acquire a handle of the rt to resolve one or more + // async tasks let rt = tokio::runtime::Builder::new_multi_thread() .worker_threads(config.workers) .max_blocking_threads(config.max_concurrency) diff --git a/common/libzkp/impl/Cargo.toml b/crates/libzkp/Cargo.toml similarity index 100% rename from common/libzkp/impl/Cargo.toml rename to crates/libzkp/Cargo.toml diff --git a/common/libzkp/impl/rustfmt.toml b/crates/libzkp/rustfmt.toml similarity index 100% rename from common/libzkp/impl/rustfmt.toml rename to crates/libzkp/rustfmt.toml diff --git a/common/libzkp/impl/src/lib.rs b/crates/libzkp/src/lib.rs similarity index 100% rename from common/libzkp/impl/src/lib.rs rename to crates/libzkp/src/lib.rs diff --git a/common/libzkp/impl/src/plonk_verifier_0.11.4.bin b/crates/libzkp/src/plonk_verifier_0.11.4.bin similarity index 100% rename from common/libzkp/impl/src/plonk_verifier_0.11.4.bin rename to crates/libzkp/src/plonk_verifier_0.11.4.bin diff --git a/common/libzkp/impl/src/proofs.rs b/crates/libzkp/src/proofs.rs similarity index 100% rename from common/libzkp/impl/src/proofs.rs rename to crates/libzkp/src/proofs.rs diff --git a/common/libzkp/impl/src/tasks.rs b/crates/libzkp/src/tasks.rs similarity index 100% rename from common/libzkp/impl/src/tasks.rs rename to crates/libzkp/src/tasks.rs diff --git a/common/libzkp/impl/src/tasks/batch.rs b/crates/libzkp/src/tasks/batch.rs similarity index 100% rename from common/libzkp/impl/src/tasks/batch.rs rename to crates/libzkp/src/tasks/batch.rs diff --git a/common/libzkp/impl/src/tasks/batch/utils.rs b/crates/libzkp/src/tasks/batch/utils.rs similarity index 100% rename from common/libzkp/impl/src/tasks/batch/utils.rs rename to crates/libzkp/src/tasks/batch/utils.rs diff --git a/common/libzkp/impl/src/tasks/bundle.rs b/crates/libzkp/src/tasks/bundle.rs similarity index 100% rename from common/libzkp/impl/src/tasks/bundle.rs rename to crates/libzkp/src/tasks/bundle.rs diff --git a/common/libzkp/impl/src/tasks/chunk.rs b/crates/libzkp/src/tasks/chunk.rs similarity index 100% rename from common/libzkp/impl/src/tasks/chunk.rs rename to crates/libzkp/src/tasks/chunk.rs diff --git a/common/libzkp/impl/src/tasks/chunk_interpreter.rs b/crates/libzkp/src/tasks/chunk_interpreter.rs similarity index 100% rename from common/libzkp/impl/src/tasks/chunk_interpreter.rs rename to crates/libzkp/src/tasks/chunk_interpreter.rs diff --git a/common/libzkp/impl/src/utils.rs b/crates/libzkp/src/utils.rs similarity index 100% rename from common/libzkp/impl/src/utils.rs rename to crates/libzkp/src/utils.rs diff --git a/common/libzkp/impl/src/verifier.rs b/crates/libzkp/src/verifier.rs similarity index 100% rename from common/libzkp/impl/src/verifier.rs rename to crates/libzkp/src/verifier.rs diff --git a/common/libzkp/impl/src/verifier/euclidv2.rs b/crates/libzkp/src/verifier/euclidv2.rs similarity index 100% rename from common/libzkp/impl/src/verifier/euclidv2.rs rename to crates/libzkp/src/verifier/euclidv2.rs diff --git a/crates/libzkp_c/Cargo.toml b/crates/libzkp_c/Cargo.toml new file mode 100644 index 0000000000..c75860cc50 --- /dev/null +++ b/crates/libzkp_c/Cargo.toml @@ -0,0 +1,14 @@ +[package] +name = "libzkp-c" +version.workspace = true +edition.workspace = true + +[lib] +name = "zkp" +crate-type = ["cdylib"] + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html +[dependencies] +libzkp = { path = "../libzkp" } +l2geth = { path = "../l2geth"} +tracing.workspace = true diff --git a/crates/libzkp_c/src/lib.rs b/crates/libzkp_c/src/lib.rs new file mode 100644 index 0000000000..b297aa528e --- /dev/null +++ b/crates/libzkp_c/src/lib.rs @@ -0,0 +1,167 @@ +mod utils; + +use std::ffi::{c_char, CString}; + +use libzkp::TaskType; +use utils::{c_char_to_str, c_char_to_vec}; + +/// # Safety +#[no_mangle] +pub unsafe extern "C" fn init_verifier(config: *const c_char) { + let config_str = c_char_to_str(config); + libzkp::verifier_init(config_str).unwrap(); +} + +/// # Safety +#[no_mangle] +pub unsafe extern "C" fn init_l2geth(config: *const c_char) { + let config_str = c_char_to_str(config); + l2geth::init(config_str).unwrap(); +} + +fn verify_proof(proof: *const c_char, fork_name: *const c_char, task_type: TaskType) -> c_char { + let fork_name_str = c_char_to_str(fork_name); + let proof = c_char_to_vec(proof); + + match libzkp::verify_proof(proof, fork_name_str, task_type) { + Err(e) => { + tracing::error!("{:?} verify failed, error: {:#}", task_type, e); + false as c_char + } + Ok(result) => result as c_char, + } +} + +/// # Safety +#[no_mangle] +pub unsafe extern "C" fn verify_chunk_proof( + proof: *const c_char, + fork_name: *const c_char, +) -> c_char { + verify_proof(proof, fork_name, TaskType::Chunk) +} + +/// # Safety +#[no_mangle] +pub unsafe extern "C" fn verify_batch_proof( + proof: *const c_char, + fork_name: *const c_char, +) -> c_char { + verify_proof(proof, fork_name, TaskType::Batch) +} + +/// # Safety +#[no_mangle] +pub unsafe extern "C" fn verify_bundle_proof( + proof: *const c_char, + fork_name: *const c_char, +) -> c_char { + verify_proof(proof, fork_name, TaskType::Bundle) +} + +/// # Safety +#[no_mangle] +pub unsafe extern "C" fn dump_vk(fork_name: *const c_char, file: *const c_char) { + let fork_name_str = c_char_to_str(fork_name); + let file_str = c_char_to_str(file); + libzkp::dump_vk(fork_name_str, file_str).unwrap(); +} + +// Define a struct to hold handling results +#[repr(C)] +pub struct HandlingResult { + ok: c_char, + universal_task: *mut c_char, + metadata: *mut c_char, + expected_pi_hash: [c_char; 32], +} + +fn failed_handling_result() -> HandlingResult { + HandlingResult { + ok: false as c_char, + universal_task: std::ptr::null_mut(), + metadata: std::ptr::null_mut(), + expected_pi_hash: Default::default(), + } +} + +/// # Safety +#[no_mangle] +pub unsafe extern "C" fn gen_universal_task( + task_type: i32, + task: *const c_char, + fork_name: *const c_char, +) -> HandlingResult { + let mut interpreter = None; + let task_json = if task_type == TaskType::Chunk as i32 { + let pre_task_str = c_char_to_str(task); + let cli = l2geth::get_client(); + match libzkp::checkout_chunk_task(pre_task_str, cli) { + Ok(str) => { + interpreter.replace(cli); + str + } + Err(e) => { + tracing::error!("gen_universal_task failed at pre interpret step, error: {e}"); + return failed_handling_result(); + } + } + } else { + c_char_to_str(task).to_string() + }; + let ret = + libzkp::gen_universal_task(task_type, &task_json, c_char_to_str(fork_name), interpreter); + + if let Ok((pi_hash, task_json, meta_json)) = ret { + let expected_pi_hash = pi_hash.0.map(|byte| byte as c_char); + HandlingResult { + ok: true as c_char, + universal_task: CString::new(task_json).unwrap().into_raw(), + metadata: CString::new(meta_json).unwrap().into_raw(), + expected_pi_hash, + } + } else { + tracing::error!("gen_universal_task failed, error: {:#}", ret.unwrap_err()); + failed_handling_result() + } +} + +/// # Safety +#[no_mangle] +pub unsafe extern "C" fn release_task_result(result: HandlingResult) { + if !result.universal_task.is_null() { + let _ = CString::from_raw(result.universal_task); + } + if !result.metadata.is_null() { + let _ = CString::from_raw(result.metadata); + } +} + +/// # Safety +#[no_mangle] +pub unsafe extern "C" fn gen_wrapped_proof( + proof: *const c_char, + metadata: *const c_char, + vk: *const c_char, + vk_len: usize, +) -> *mut c_char { + let proof_str = c_char_to_str(proof); + let metadata_str = c_char_to_str(metadata); + let vk_data = std::slice::from_raw_parts(vk as *const u8, vk_len); + + match libzkp::gen_wrapped_proof(proof_str, metadata_str, vk_data) { + Ok(result) => CString::new(result).unwrap().into_raw(), + Err(e) => { + tracing::error!("gen_wrapped_proof failed, error: {:#}", e); + std::ptr::null_mut() + } + } +} + +/// # Safety +#[no_mangle] +pub unsafe extern "C" fn release_string(ptr: *mut c_char) { + if !ptr.is_null() { + let _ = CString::from_raw(ptr); + } +} diff --git a/crates/libzkp_c/src/utils.rs b/crates/libzkp_c/src/utils.rs new file mode 100644 index 0000000000..32225c9634 --- /dev/null +++ b/crates/libzkp_c/src/utils.rs @@ -0,0 +1,11 @@ +use std::{ffi::CStr, os::raw::c_char}; + +pub(crate) fn c_char_to_str(c: *const c_char) -> &'static str { + let cstr = unsafe { CStr::from_ptr(c) }; + cstr.to_str().unwrap() +} + +pub(crate) fn c_char_to_vec(c: *const c_char) -> Vec { + let cstr = unsafe { CStr::from_ptr(c) }; + cstr.to_bytes().to_vec() +} diff --git a/zkvm-prover/Cargo.toml b/crates/prover-bin/Cargo.toml similarity index 100% rename from zkvm-prover/Cargo.toml rename to crates/prover-bin/Cargo.toml diff --git a/crates/prover-bin/README.md b/crates/prover-bin/README.md new file mode 100644 index 0000000000..58819223b7 --- /dev/null +++ b/crates/prover-bin/README.md @@ -0,0 +1,11 @@ +## Prover + +A runnable zkvm prover which can communicate with coordinator, receving proving task and generate proof + +## Testing + ++ Get the url of the endpoint of coordinator and a rpc endpoint response to the cooresponding chain + ++ Build a `config.json` file with previous knowledge from the template in current directory + ++ Call `make test_run` \ No newline at end of file diff --git a/zkvm-prover/src/main.rs b/crates/prover-bin/src/main.rs similarity index 100% rename from zkvm-prover/src/main.rs rename to crates/prover-bin/src/main.rs diff --git a/zkvm-prover/src/prover.rs b/crates/prover-bin/src/prover.rs similarity index 100% rename from zkvm-prover/src/prover.rs rename to crates/prover-bin/src/prover.rs diff --git a/zkvm-prover/src/types.rs b/crates/prover-bin/src/types.rs similarity index 100% rename from zkvm-prover/src/types.rs rename to crates/prover-bin/src/types.rs diff --git a/zkvm-prover/src/zk_circuits_handler.rs b/crates/prover-bin/src/zk_circuits_handler.rs similarity index 100% rename from zkvm-prover/src/zk_circuits_handler.rs rename to crates/prover-bin/src/zk_circuits_handler.rs diff --git a/zkvm-prover/src/zk_circuits_handler/euclid.rs b/crates/prover-bin/src/zk_circuits_handler/euclid.rs similarity index 100% rename from zkvm-prover/src/zk_circuits_handler/euclid.rs rename to crates/prover-bin/src/zk_circuits_handler/euclid.rs diff --git a/zkvm-prover/src/zk_circuits_handler/euclidV2.rs b/crates/prover-bin/src/zk_circuits_handler/euclidV2.rs similarity index 100% rename from zkvm-prover/src/zk_circuits_handler/euclidV2.rs rename to crates/prover-bin/src/zk_circuits_handler/euclidV2.rs diff --git a/zkvm-prover/rustfmt.toml b/rustfmt.toml similarity index 100% rename from zkvm-prover/rustfmt.toml rename to rustfmt.toml diff --git a/zkvm-prover/Cargo.lock b/zkvm-prover/Cargo.lock deleted file mode 100644 index 0f39562cb4..0000000000 --- a/zkvm-prover/Cargo.lock +++ /dev/null @@ -1,10154 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -version = 4 - -[[package]] -name = "addchain" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b2e69442aa5628ea6951fa33e24efe8313f4321a91bd729fc2f75bdfc858570" -dependencies = [ - "num-bigint 0.3.3", - "num-integer", - "num-traits", -] - -[[package]] -name = "addr2line" -version = "0.24.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" -dependencies = [ - "gimli", -] - -[[package]] -name = "adler2" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" - -[[package]] -name = "aes" -version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" -dependencies = [ - "cfg-if", - "cipher", - "cpufeatures", -] - -[[package]] -name = "ahash" -version = "0.8.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" -dependencies = [ - "cfg-if", - "once_cell", - "version_check", - "zerocopy 0.7.35", -] - -[[package]] -name = "aho-corasick" -version = "1.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" -dependencies = [ - "memchr", -] - -[[package]] -name = "allocator-api2" -version = "0.2.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" - -[[package]] -name = "alloy" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d2cc5aeb8dfa1e451a49fac87bc4b86c5de40ebea153ed88e83eb92b8151e74" -dependencies = [ - "alloy-consensus", - "alloy-contract", - "alloy-core", - "alloy-eips", - "alloy-genesis", - "alloy-json-rpc", - "alloy-network", - "alloy-provider", - "alloy-rpc-client", - "alloy-rpc-types", - "alloy-serde 0.11.1", - "alloy-signer", - "alloy-signer-local", - "alloy-transport", - "alloy-transport-http", -] - -[[package]] -name = "alloy-chains" -version = "0.1.69" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28e2652684758b0d9b389d248b209ed9fd9989ef489a550265fe4bb8454fe7eb" -dependencies = [ - "alloy-primitives", - "alloy-rlp", - "num_enum 0.7.3", - "serde", - "strum 0.27.1", -] - -[[package]] -name = "alloy-consensus" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69e32ef5c74bbeb1733c37f4ac7f866f8c8af208b7b4265e21af609dcac5bd5e" -dependencies = [ - "alloy-eips", - "alloy-primitives", - "alloy-rlp", - "alloy-serde 0.11.1", - "alloy-trie", - "auto_impl", - "c-kzg", - "derive_more 1.0.0", - "serde", - "serde_with", -] - -[[package]] -name = "alloy-consensus-any" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fa13b7b1e1e3fedc42f0728103bfa3b4d566d3d42b606db449504d88dbdbdcf" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives", - "alloy-rlp", - "alloy-serde 0.11.1", - "serde", -] - -[[package]] -name = "alloy-contract" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee6180fb232becdea70fad57c63b6967f01f74ab9595671b870f504116dd29de" -dependencies = [ - "alloy-dyn-abi", - "alloy-json-abi", - "alloy-network", - "alloy-network-primitives", - "alloy-primitives", - "alloy-provider", - "alloy-rpc-types-eth", - "alloy-sol-types", - "alloy-transport", - "futures", - "futures-util", - "thiserror 2.0.12", -] - -[[package]] -name = "alloy-core" -version = "0.8.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "482f377cebceed4bb1fb5e7970f0805e2ab123d06701be9351b67ed6341e74aa" -dependencies = [ - "alloy-dyn-abi", - "alloy-json-abi", - "alloy-primitives", - "alloy-rlp", - "alloy-sol-types", -] - -[[package]] -name = "alloy-dyn-abi" -version = "0.8.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "555896f0b8578adb522b1453b6e6cc6704c3027bd0af20058befdde992cee8e9" -dependencies = [ - "alloy-json-abi", - "alloy-primitives", - "alloy-sol-type-parser", - "alloy-sol-types", - "const-hex", - "itoa", - "serde", - "serde_json", - "winnow 0.7.6", -] - -[[package]] -name = "alloy-eip2124" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "675264c957689f0fd75f5993a73123c2cc3b5c235a38f5b9037fe6c826bfb2c0" -dependencies = [ - "alloy-primitives", - "alloy-rlp", - "crc", - "serde", - "thiserror 2.0.12", -] - -[[package]] -name = "alloy-eip2930" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0069cf0642457f87a01a014f6dc29d5d893cd4fd8fddf0c3cdfad1bb3ebafc41" -dependencies = [ - "alloy-primitives", - "alloy-rlp", - "serde", -] - -[[package]] -name = "alloy-eip7702" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b15b13d38b366d01e818fe8e710d4d702ef7499eacd44926a06171dd9585d0c" -dependencies = [ - "alloy-primitives", - "alloy-rlp", - "k256", - "serde", - "serde_with", - "thiserror 2.0.12", -] - -[[package]] -name = "alloy-eips" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5591581ca2ab0b3e7226a4047f9a1bfcf431da1d0cce3752fda609fea3c27e37" -dependencies = [ - "alloy-eip2124", - "alloy-eip2930", - "alloy-eip7702", - "alloy-primitives", - "alloy-rlp", - "alloy-serde 0.11.1", - "auto_impl", - "c-kzg", - "derive_more 1.0.0", - "once_cell", - "serde", - "sha2", -] - -[[package]] -name = "alloy-genesis" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0cded3a2d4bd7173f696458c5d4c98c18a628dfcc9f194385e80a486e412e2e0" -dependencies = [ - "alloy-eips", - "alloy-primitives", - "alloy-serde 0.11.1", - "alloy-trie", - "serde", -] - -[[package]] -name = "alloy-json-abi" -version = "0.8.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4012581681b186ba0882007ed873987cc37f86b1b488fe6b91d5efd0b585dc41" -dependencies = [ - "alloy-primitives", - "alloy-sol-type-parser", - "serde", - "serde_json", -] - -[[package]] -name = "alloy-json-rpc" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "762414662d793d7aaa36ee3af6928b6be23227df1681ce9c039f6f11daadef64" -dependencies = [ - "alloy-primitives", - "alloy-sol-types", - "serde", - "serde_json", - "thiserror 2.0.12", - "tracing", -] - -[[package]] -name = "alloy-network" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8be03f2ebc00cf88bd06d3c6caf387dceaa9c7e6b268216779fa68a9bf8ab4e6" -dependencies = [ - "alloy-consensus", - "alloy-consensus-any", - "alloy-eips", - "alloy-json-rpc", - "alloy-network-primitives", - "alloy-primitives", - "alloy-rpc-types-any", - "alloy-rpc-types-eth", - "alloy-serde 0.11.1", - "alloy-signer", - "alloy-sol-types", - "async-trait", - "auto_impl", - "futures-utils-wasm", - "serde", - "serde_json", - "thiserror 2.0.12", -] - -[[package]] -name = "alloy-network-primitives" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a00ce618ae2f78369918be0c20f620336381502c83b6ed62c2f7b2db27698b0" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives", - "alloy-serde 0.11.1", - "serde", -] - -[[package]] -name = "alloy-primitives" -version = "0.8.21" -source = "git+https://github.com/scroll-tech/alloy-core?branch=v0.8.21#6d28bdb643f36da7b580ed0f252df6d8117f2fdd" -dependencies = [ - "alloy-rlp", - "bytes", - "cfg-if", - "const-hex", - "derive_more 1.0.0", - "foldhash", - "hashbrown 0.15.2", - "indexmap 2.9.0", - "itoa", - "k256", - "keccak-asm", - "paste", - "proptest", - "rand 0.8.5", - "rkyv", - "ruint", - "rustc-hash 2.1.1", - "serde", - "sha3", - "tiny-keccak", -] - -[[package]] -name = "alloy-provider" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbe0a2acff0c4bd1669c71251ce10fc455cbffa1b4d0a817d5ea4ba7e5bb3db7" -dependencies = [ - "alloy-chains", - "alloy-consensus", - "alloy-eips", - "alloy-json-rpc", - "alloy-network", - "alloy-network-primitives", - "alloy-primitives", - "alloy-rpc-client", - "alloy-rpc-types-eth", - "alloy-sol-types", - "alloy-transport", - "alloy-transport-http", - "async-stream", - "async-trait", - "auto_impl", - "dashmap", - "futures", - "futures-utils-wasm", - "lru", - "parking_lot 0.12.3", - "pin-project", - "reqwest 0.12.15", - "serde", - "serde_json", - "thiserror 2.0.12", - "tokio", - "tracing", - "url", - "wasmtimer", -] - -[[package]] -name = "alloy-rlp" -version = "0.3.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d6c1d995bff8d011f7cd6c81820d51825e6e06d6db73914c1630ecf544d83d6" -dependencies = [ - "alloy-rlp-derive", - "arrayvec", - "bytes", -] - -[[package]] -name = "alloy-rlp-derive" -version = "0.3.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a40e1ef334153322fd878d07e86af7a529bcb86b2439525920a88eba87bcf943" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.100", -] - -[[package]] -name = "alloy-rpc-client" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b37cc3c7883dc41be1b01460127ad7930466d0a4bb6ba15a02ee34d2745e2d7c" -dependencies = [ - "alloy-json-rpc", - "alloy-primitives", - "alloy-transport", - "alloy-transport-http", - "futures", - "pin-project", - "reqwest 0.12.15", - "serde", - "serde_json", - "tokio", - "tokio-stream", - "tower 0.5.2", - "tracing", - "url", - "wasmtimer", -] - -[[package]] -name = "alloy-rpc-types" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f18e68a3882f372e045ddc89eb455469347767d17878ca492cfbac81e71a111" -dependencies = [ - "alloy-primitives", - "alloy-rpc-types-eth", - "alloy-serde 0.11.1", - "serde", -] - -[[package]] -name = "alloy-rpc-types-any" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "318ae46dd12456df42527c3b94c1ae9001e1ceb707f7afe2c7807ac4e49ebad9" -dependencies = [ - "alloy-consensus-any", - "alloy-rpc-types-eth", - "alloy-serde 0.11.1", -] - -[[package]] -name = "alloy-rpc-types-engine" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e83dde9fcf1ccb9b815cc0c89bba26bbbbaae5150a53ae624ed0fc63cb3676c1" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives", - "alloy-rlp", - "alloy-serde 0.11.1", - "derive_more 1.0.0", - "strum 0.26.3", -] - -[[package]] -name = "alloy-rpc-types-eth" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b4dbee4d82f8a22dde18c28257bed759afeae7ba73da4a1479a039fd1445d04" -dependencies = [ - "alloy-consensus", - "alloy-consensus-any", - "alloy-eips", - "alloy-network-primitives", - "alloy-primitives", - "alloy-rlp", - "alloy-serde 0.11.1", - "alloy-sol-types", - "itertools 0.14.0", - "serde", - "serde_json", - "thiserror 2.0.12", -] - -[[package]] -name = "alloy-serde" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5851bf8d5ad33014bd0c45153c603303e730acc8a209450a7ae6b4a12c2789e2" -dependencies = [ - "alloy-primitives", - "serde", - "serde_json", -] - -[[package]] -name = "alloy-serde" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8732058f5ca28c1d53d241e8504620b997ef670315d7c8afab856b3e3b80d945" -dependencies = [ - "alloy-primitives", - "serde", - "serde_json", -] - -[[package]] -name = "alloy-signer" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f96b3526fdd779a4bd0f37319cfb4172db52a7ac24cdbb8804b72091c18e1701" -dependencies = [ - "alloy-primitives", - "async-trait", - "auto_impl", - "either", - "elliptic-curve", - "k256", - "thiserror 2.0.12", -] - -[[package]] -name = "alloy-signer-local" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe8f78cd6b7501c7e813a1eb4a087b72d23af51f5bb66d4e948dc840bdd207d8" -dependencies = [ - "alloy-consensus", - "alloy-network", - "alloy-primitives", - "alloy-signer", - "async-trait", - "k256", - "rand 0.8.5", - "thiserror 2.0.12", -] - -[[package]] -name = "alloy-sol-macro" -version = "0.8.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2708e27f58d747423ae21d31b7a6625159bd8d867470ddd0256f396a68efa11" -dependencies = [ - "alloy-sol-macro-expander", - "alloy-sol-macro-input", - "proc-macro-error2", - "proc-macro2", - "quote", - "syn 2.0.100", -] - -[[package]] -name = "alloy-sol-macro-expander" -version = "0.8.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6b7984d7e085dec382d2c5ef022b533fcdb1fe6129200af30ebf5afddb6a361" -dependencies = [ - "alloy-json-abi", - "alloy-sol-macro-input", - "const-hex", - "heck 0.5.0", - "indexmap 2.9.0", - "proc-macro-error2", - "proc-macro2", - "quote", - "syn 2.0.100", - "syn-solidity", - "tiny-keccak", -] - -[[package]] -name = "alloy-sol-macro-input" -version = "0.8.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33d6a9fc4ed1a3c70bdb2357bec3924551c1a59f24e5a04a74472c755b37f87d" -dependencies = [ - "alloy-json-abi", - "const-hex", - "dunce", - "heck 0.5.0", - "proc-macro2", - "quote", - "serde_json", - "syn 2.0.100", - "syn-solidity", -] - -[[package]] -name = "alloy-sol-type-parser" -version = "0.8.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d162f8524adfdfb0e4bd0505c734c985f3e2474eb022af32eef0d52a4f3935c" -dependencies = [ - "serde", - "winnow 0.7.6", -] - -[[package]] -name = "alloy-sol-types" -version = "0.8.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6044800da35c38118fd4b98e18306bd3b91af5dedeb54c1b768cf1b4fb68f549" -dependencies = [ - "alloy-json-abi", - "alloy-primitives", - "alloy-sol-macro", - "const-hex", - "serde", -] - -[[package]] -name = "alloy-transport" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a8d762eadce3e9b65eac09879430c6f4fce3736cac3cac123f9b1bf435ddd13" -dependencies = [ - "alloy-json-rpc", - "base64 0.22.1", - "futures-utils-wasm", - "serde", - "serde_json", - "thiserror 2.0.12", - "tokio", - "tower 0.5.2", - "tracing", - "url", - "wasmtimer", -] - -[[package]] -name = "alloy-transport-http" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20819c4cb978fb39ce6ac31991ba90f386d595f922f42ef888b4a18be190713e" -dependencies = [ - "alloy-json-rpc", - "alloy-transport", - "reqwest 0.12.15", - "serde_json", - "tower 0.5.2", - "tracing", - "url", -] - -[[package]] -name = "alloy-trie" -version = "0.7.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d95a94854e420f07e962f7807485856cde359ab99ab6413883e15235ad996e8b" -dependencies = [ - "alloy-primitives", - "alloy-rlp", - "arrayvec", - "derive_more 1.0.0", - "nybbles", - "serde", - "smallvec", - "tracing", -] - -[[package]] -name = "android-tzdata" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" - -[[package]] -name = "android_system_properties" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" -dependencies = [ - "libc", -] - -[[package]] -name = "ansi_term" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2" -dependencies = [ - "winapi", -] - -[[package]] -name = "anstream" -version = "0.6.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8acc5369981196006228e28809f761875c0327210a891e941f4c683b3a99529b" -dependencies = [ - "anstyle", - "anstyle-parse", - "anstyle-query", - "anstyle-wincon", - "colorchoice", - "is_terminal_polyfill", - "utf8parse", -] - -[[package]] -name = "anstyle" -version = "1.0.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55cc3b69f167a1ef2e161439aa98aed94e6028e5f9a59be9a6ffb47aef1651f9" - -[[package]] -name = "anstyle-parse" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b2d16507662817a6a20a9ea92df6652ee4f94f914589377d69f3b21bc5798a9" -dependencies = [ - "utf8parse", -] - -[[package]] -name = "anstyle-query" -version = "1.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79947af37f4177cfead1110013d678905c37501914fba0efea834c3fe9a8d60c" -dependencies = [ - "windows-sys 0.59.0", -] - -[[package]] -name = "anstyle-wincon" -version = "3.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca3534e77181a9cc07539ad51f2141fe32f6c3ffd4df76db8ad92346b003ae4e" -dependencies = [ - "anstyle", - "once_cell", - "windows-sys 0.59.0", -] - -[[package]] -name = "anyhow" -version = "1.0.97" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcfed56ad506cb2c684a14971b8861fdc3baaaae314b9e5f9bb532cbe3ba7a4f" - -[[package]] -name = "approx" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cab112f0a86d568ea0e627cc1d6be74a1e9cd55214684db5561995f6dad897c6" -dependencies = [ - "num-traits", -] - -[[package]] -name = "ark-ff" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b3235cc41ee7a12aaaf2c575a2ad7b46713a8a50bda2fc3b003a04845c05dd6" -dependencies = [ - "ark-ff-asm 0.3.0", - "ark-ff-macros 0.3.0", - "ark-serialize 0.3.0", - "ark-std 0.3.0", - "derivative", - "num-bigint 0.4.6", - "num-traits", - "paste", - "rustc_version 0.3.3", - "zeroize", -] - -[[package]] -name = "ark-ff" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec847af850f44ad29048935519032c33da8aa03340876d351dfab5660d2966ba" -dependencies = [ - "ark-ff-asm 0.4.2", - "ark-ff-macros 0.4.2", - "ark-serialize 0.4.2", - "ark-std 0.4.0", - "derivative", - "digest 0.10.7", - "itertools 0.10.5", - "num-bigint 0.4.6", - "num-traits", - "paste", - "rustc_version 0.4.1", - "zeroize", -] - -[[package]] -name = "ark-ff-asm" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db02d390bf6643fb404d3d22d31aee1c4bc4459600aef9113833d17e786c6e44" -dependencies = [ - "quote", - "syn 1.0.109", -] - -[[package]] -name = "ark-ff-asm" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ed4aa4fe255d0bc6d79373f7e31d2ea147bcf486cba1be5ba7ea85abdb92348" -dependencies = [ - "quote", - "syn 1.0.109", -] - -[[package]] -name = "ark-ff-macros" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db2fd794a08ccb318058009eefdf15bcaaaaf6f8161eb3345f907222bac38b20" -dependencies = [ - "num-bigint 0.4.6", - "num-traits", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "ark-ff-macros" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7abe79b0e4288889c4574159ab790824d0033b9fdcb2a112a3182fac2e514565" -dependencies = [ - "num-bigint 0.4.6", - "num-traits", - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "ark-serialize" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d6c2b318ee6e10f8c2853e73a83adc0ccb88995aa978d8a3408d492ab2ee671" -dependencies = [ - "ark-std 0.3.0", - "digest 0.9.0", -] - -[[package]] -name = "ark-serialize" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adb7b85a02b83d2f22f89bd5cac66c9c89474240cb6207cb1efc16d098e822a5" -dependencies = [ - "ark-std 0.4.0", - "digest 0.10.7", - "num-bigint 0.4.6", -] - -[[package]] -name = "ark-std" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1df2c09229cbc5a028b1d70e00fdb2acee28b1055dfb5ca73eea49c5a25c4e7c" -dependencies = [ - "colored", - "num-traits", - "rand 0.8.5", -] - -[[package]] -name = "ark-std" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94893f1e0c6eeab764ade8dc4c0db24caf4fe7cbbaafc0eba0a9030f447b5185" -dependencies = [ - "num-traits", - "rand 0.8.5", -] - -[[package]] -name = "arrayref" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76a2e8124351fda1ef8aaaa3bbd7ebbcb486bbcd4225aca0aa0d84bb2db8fecb" - -[[package]] -name = "arrayvec" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" -dependencies = [ - "serde", -] - -[[package]] -name = "async-compression" -version = "0.4.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59a194f9d963d8099596278594b3107448656ba73831c9d8c783e613ce86da64" -dependencies = [ - "flate2", - "futures-core", - "memchr", - "pin-project-lite", - "tokio", -] - -[[package]] -name = "async-stream" -version = "0.3.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b5a71a6f37880a80d1d7f19efd781e4b5de42c88f0722cc13bcb6cc2cfe8476" -dependencies = [ - "async-stream-impl", - "futures-core", - "pin-project-lite", -] - -[[package]] -name = "async-stream-impl" -version = "0.3.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.100", -] - -[[package]] -name = "async-trait" -version = "0.1.88" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e539d3fca749fcee5236ab05e93a52867dd549cc157c8cb7f99595f3cedffdb5" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.100", -] - -[[package]] -name = "async_io_stream" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6d7b9decdf35d8908a7e3ef02f64c5e9b1695e230154c0e8de3969142d9b94c" -dependencies = [ - "futures", - "pharos", - "rustc_version 0.4.1", -] - -[[package]] -name = "atomic-waker" -version = "1.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" - -[[package]] -name = "aurora-engine-modexp" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "518bc5745a6264b5fd7b09dffb9667e400ee9e2bbe18555fac75e1fe9afa0df9" -dependencies = [ - "hex", - "num", -] - -[[package]] -name = "auto_impl" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffdcb70bdbc4d478427380519163274ac86e52916e10f0a8889adf0f96d3fee7" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.100", -] - -[[package]] -name = "autocfg" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" - -[[package]] -name = "axum" -version = "0.6.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b829e4e32b91e643de6eafe82b1d90675f5874230191a4ffbc1b336dec4d6bf" -dependencies = [ - "async-trait", - "axum-core", - "bitflags 1.3.2", - "bytes", - "futures-util", - "http 0.2.12", - "http-body 0.4.6", - "hyper 0.14.32", - "itoa", - "matchit", - "memchr", - "mime", - "percent-encoding", - "pin-project-lite", - "rustversion", - "serde", - "serde_json", - "serde_path_to_error", - "serde_urlencoded", - "sync_wrapper 0.1.2", - "tokio", - "tower 0.4.13", - "tower-layer", - "tower-service", -] - -[[package]] -name = "axum-core" -version = "0.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "759fa577a247914fd3f7f76d62972792636412fbfd634cd452f6a385a74d2d2c" -dependencies = [ - "async-trait", - "bytes", - "futures-util", - "http 0.2.12", - "http-body 0.4.6", - "mime", - "rustversion", - "tower-layer", - "tower-service", -] - -[[package]] -name = "backon" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd0b50b1b78dbadd44ab18b3c794e496f3a139abb9fbc27d9c94c4eebbb96496" -dependencies = [ - "fastrand", - "gloo-timers 0.3.0", - "tokio", -] - -[[package]] -name = "backtrace" -version = "0.3.74" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a" -dependencies = [ - "addr2line", - "cfg-if", - "libc", - "miniz_oxide", - "object", - "rustc-demangle", - "serde", - "windows-targets 0.52.6", -] - -[[package]] -name = "base16ct" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" - -[[package]] -name = "base64" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" - -[[package]] -name = "base64" -version = "0.21.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" - -[[package]] -name = "base64" -version = "0.22.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" - -[[package]] -name = "base64ct" -version = "1.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89e25b6adfb930f02d1981565a6e5d9c547ac15a96606256d3b59040e5cd4ca3" - -[[package]] -name = "bincode" -version = "1.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" -dependencies = [ - "serde", -] - -[[package]] -name = "bindgen" -version = "0.69.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "271383c67ccabffb7381723dea0672a673f292304fcb45c01cc648c7a8d58088" -dependencies = [ - "bitflags 2.9.0", - "cexpr", - "clang-sys", - "itertools 0.12.1", - "lazy_static", - "lazycell", - "proc-macro2", - "quote", - "regex", - "rustc-hash 1.1.0", - "shlex", - "syn 2.0.100", -] - -[[package]] -name = "bindgen" -version = "0.71.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f58bf3d7db68cfbac37cfc485a8d711e87e064c3d0fe0435b92f7a407f9d6b3" -dependencies = [ - "bitflags 2.9.0", - "cexpr", - "clang-sys", - "itertools 0.12.1", - "proc-macro2", - "quote", - "regex", - "rustc-hash 2.1.1", - "shlex", - "syn 2.0.100", -] - -[[package]] -name = "bit-set" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08807e080ed7f9d5433fa9b275196cfc35414f66a0c79d864dc51a0d825231a3" -dependencies = [ - "bit-vec", -] - -[[package]] -name = "bit-vec" -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 0.30.1", - "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.100", -] - -[[package]] -name = "bitflags" -version = "1.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" - -[[package]] -name = "bitflags" -version = "2.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c8214115b7bf84099f1309324e63141d4c5d7cc26862f97a0a857dbefe165bd" -dependencies = [ - "serde", -] - -[[package]] -name = "bitstream-io" -version = "2.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6099cdc01846bc367c4e7dd630dc5966dccf36b652fae7a74e17b640411a91b2" - -[[package]] -name = "bitvec" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" -dependencies = [ - "funty", - "radium", - "serde", - "tap", - "wyz", -] - -[[package]] -name = "blake2" -version = "0.10.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46502ad458c9a52b69d4d4d32775c788b7a1b85e8bc9d482d92250fc0e3f8efe" -dependencies = [ - "digest 0.10.7", -] - -[[package]] -name = "blake2b_simd" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06e903a20b159e944f91ec8499fe1e55651480c541ea0a584f5d967c49ad9d99" -dependencies = [ - "arrayref", - "arrayvec", - "constant_time_eq", -] - -[[package]] -name = "blake3" -version = "1.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "389a099b34312839e16420d499a9cad9650541715937ffbdd40d36f49e77eeb3" -dependencies = [ - "arrayref", - "arrayvec", - "cc", - "cfg-if", - "constant_time_eq", -] - -[[package]] -name = "block-buffer" -version = "0.10.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" -dependencies = [ - "generic-array", -] - -[[package]] -name = "bls12_381" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3c196a77437e7cc2fb515ce413a6401291578b5afc8ecb29a3c7ab957f05941" -dependencies = [ - "ff 0.12.1", - "group 0.12.1", - "pairing 0.22.0", - "rand_core 0.6.4", - "subtle", -] - -[[package]] -name = "blst" -version = "0.3.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47c79a94619fade3c0b887670333513a67ac28a6a7e653eb260bf0d4103db38d" -dependencies = [ - "cc", - "glob", - "threadpool", - "zeroize", -] - -[[package]] -name = "bon" -version = "3.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92c5f8abc69af414cbd6f2103bb668b91e584072f2105e4b38bed79b6ad0975f" -dependencies = [ - "bon-macros", - "rustversion", -] - -[[package]] -name = "bon-macros" -version = "3.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b69edf39b6f321cb2699a93fc20c256adb839719c42676d03f7aa975e4e5581d" -dependencies = [ - "darling", - "ident_case", - "prettyplease", - "proc-macro2", - "quote", - "rustversion", - "syn 2.0.100", -] - -[[package]] -name = "bumpalo" -version = "3.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1628fb46dfa0b37568d12e5edd512553eccf6a22a78e8bde00bb4aed84d5bdbf" - -[[package]] -name = "byte-slice-cast" -version = "1.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7575182f7272186991736b70173b0ea045398f984bf5ebbb3804736ce1330c9d" - -[[package]] -name = "bytecheck" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50690fb3370fb9fe3550372746084c46f2ac8c9685c583d2be10eefd89d3d1a3" -dependencies = [ - "bytecheck_derive", - "ptr_meta", - "rancor", - "simdutf8", -] - -[[package]] -name = "bytecheck_derive" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "efb7846e0cb180355c2dec69e721edafa36919850f1a9f52ffba4ebc0393cb71" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.100", -] - -[[package]] -name = "bytemuck" -version = "1.22.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6b1fc10dbac614ebc03540c9dbd60e83887fda27794998c6528f1782047d540" -dependencies = [ - "bytemuck_derive", -] - -[[package]] -name = "bytemuck_derive" -version = "1.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ecc273b49b3205b83d648f0690daa588925572cc5063745bfe547fe7ec8e1a1" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.100", -] - -[[package]] -name = "byteorder" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" - -[[package]] -name = "bytes" -version = "1.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a" -dependencies = [ - "serde", -] - -[[package]] -name = "bzip2-sys" -version = "0.1.13+1.0.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "225bff33b2141874fe80d71e07d6eec4f85c5c216453dd96388240f96e1acc14" -dependencies = [ - "cc", - "pkg-config", -] - -[[package]] -name = "c-kzg" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0307f72feab3300336fb803a57134159f6e20139af1357f36c54cb90d8e8928" -dependencies = [ - "blst", - "cc", - "glob", - "hex", - "libc", - "once_cell", - "serde", -] - -[[package]] -name = "camino" -version = "1.1.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b96ec4966b5813e2c0507c1f86115c8c5abaadc3980879c3424042a02fd1ad3" -dependencies = [ - "serde", -] - -[[package]] -name = "cargo-platform" -version = "0.1.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e35af189006b9c0f00a064685c727031e3ed2d8020f7ba284d78cc2671bd36ea" -dependencies = [ - "serde", -] - -[[package]] -name = "cargo_metadata" -version = "0.18.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d886547e41f740c616ae73108f6eb70afe6d940c7bc697cb30f13daec073037" -dependencies = [ - "camino", - "cargo-platform", - "semver 1.0.26", - "serde", - "serde_json", - "thiserror 1.0.69", -] - -[[package]] -name = "cc" -version = "1.2.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e3a13707ac958681c13b39b458c073d0d9bc8a22cb1b2f4c8e55eb72c13f362" -dependencies = [ - "jobserver", - "libc", - "shlex", -] - -[[package]] -name = "cexpr" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766" -dependencies = [ - "nom", -] - -[[package]] -name = "cfg-if" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" - -[[package]] -name = "cfg_aliases" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" - -[[package]] -name = "chrono" -version = "0.4.40" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a7964611d71df112cb1730f2ee67324fcf4d0fc6606acbbe9bfe06df124637c" -dependencies = [ - "android-tzdata", - "iana-time-zone", - "js-sys", - "num-traits", - "serde", - "wasm-bindgen", - "windows-link", -] - -[[package]] -name = "cipher" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" -dependencies = [ - "crypto-common", - "inout", -] - -[[package]] -name = "clang-sys" -version = "1.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b023947811758c97c59bf9d1c188fd619ad4718dcaa767947df1cadb14f39f4" -dependencies = [ - "glob", - "libc", - "libloading", -] - -[[package]] -name = "clap" -version = "4.5.35" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8aa86934b44c19c50f87cc2790e19f54f7a67aedb64101c2e1a2e5ecfb73944" -dependencies = [ - "clap_builder", - "clap_derive", -] - -[[package]] -name = "clap_builder" -version = "4.5.35" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2414dbb2dd0695280da6ea9261e327479e9d37b0630f6b53ba2a11c60c679fd9" -dependencies = [ - "anstream", - "anstyle", - "clap_lex", - "strsim", -] - -[[package]] -name = "clap_derive" -version = "4.5.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09176aae279615badda0765c0c0b3f6ed53f4709118af73cf4655d85d1530cd7" -dependencies = [ - "heck 0.5.0", - "proc-macro2", - "quote", - "syn 2.0.100", -] - -[[package]] -name = "clap_lex" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f46ad14479a25103f283c0f10005961cf086d8dc42205bb44c46ac563475dca6" - -[[package]] -name = "colorchoice" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b63caa9aa9397e2d9480a9b13673856c78d8ac123288526c37d7839f2a86990" - -[[package]] -name = "colored" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "117725a109d387c937a1533ce01b450cbde6b88abceea8473c4d7a85853cda3c" -dependencies = [ - "lazy_static", - "windows-sys 0.48.0", -] - -[[package]] -name = "const-hex" -version = "1.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b0485bab839b018a8f1723fc5391819fea5f8f0f32288ef8a735fd096b6160c" -dependencies = [ - "cfg-if", - "cpufeatures", - "hex", - "proptest", - "serde", -] - -[[package]] -name = "const-oid" -version = "0.9.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" - -[[package]] -name = "const_format" -version = "0.2.34" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "126f97965c8ad46d6d9163268ff28432e8f6a1196a55578867832e3049df63dd" -dependencies = [ - "const_format_proc_macros", -] - -[[package]] -name = "const_format_proc_macros" -version = "0.2.34" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d57c2eccfb16dbac1f4e61e206105db5820c9d26c3c472bc17c774259ef7744" -dependencies = [ - "proc-macro2", - "quote", - "unicode-xid", -] - -[[package]] -name = "constant_time_eq" -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 = "convert_case" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec182b0ca2f35d8fc196cf3404988fd8b8c739a4d270ff118a398feb0cbec1ca" -dependencies = [ - "unicode-segmentation", -] - -[[package]] -name = "core-foundation" -version = "0.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "core-foundation-sys" -version = "0.8.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" - -[[package]] -name = "cpufeatures" -version = "0.2.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" -dependencies = [ - "libc", -] - -[[package]] -name = "crc" -version = "3.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69e6e4d7b33a94f0991c26729976b10ebde1d34c3ee82408fb536164fa10d636" -dependencies = [ - "crc-catalog", -] - -[[package]] -name = "crc-catalog" -version = "2.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5" - -[[package]] -name = "crc32fast" -version = "1.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "critical-section" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "790eea4361631c5e7d22598ecd5723ff611904e3344ce8720784c93e3d83d40b" - -[[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" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82b8f8f868b36967f9606790d1903570de9ceaf870a7bf9fbbd3016d636a2cb2" -dependencies = [ - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-deque" -version = "0.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51" -dependencies = [ - "crossbeam-epoch", - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-epoch" -version = "0.9.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" -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" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" - -[[package]] -name = "crunchy" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43da5946c66ffcc7745f48db692ffbb10a83bfe0afd96235c5c2a4fb23994929" - -[[package]] -name = "crypto-bigint" -version = "0.5.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76" -dependencies = [ - "generic-array", - "rand_core 0.6.4", - "subtle", - "zeroize", -] - -[[package]] -name = "crypto-common" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" -dependencies = [ - "generic-array", - "typenum", -] - -[[package]] -name = "ctor" -version = "0.2.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32a2785755761f3ddc1492979ce1e48d2c00d09311c39e4466429188f3dd6501" -dependencies = [ - "quote", - "syn 2.0.100", -] - -[[package]] -name = "ctr" -version = "0.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835" -dependencies = [ - "cipher", -] - -[[package]] -name = "cust" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d6cc71911e179f12483b9734120b45bd00bf64fab085cc4818428523eedd469" -dependencies = [ - "bitflags 1.3.2", - "bytemuck", - "cust_core", - "cust_derive", - "cust_raw", - "find_cuda_helper", -] - -[[package]] -name = "cust_core" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "039f79662cb8f890cbf335e818cd522d6e3a53fe63f61d1aaaf859cd3d975f06" -dependencies = [ - "cust_derive", - "glam 0.20.5", - "mint", - "vek", -] - -[[package]] -name = "cust_derive" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8a3bc95fe629aed92b2423de6ccff9e40174b21d19cb6ee6281a4d04ac72f66" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "cust_raw" -version = "0.11.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbf40d6ade12cb9828bbc844b9875c7b93d25e67a3c9bf61c7aa3ae09e402bf8" -dependencies = [ - "find_cuda_helper", -] - -[[package]] -name = "darling" -version = "0.20.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc7f46116c46ff9ab3eb1597a45688b6715c6e628b5c133e288e709a29bcb4ee" -dependencies = [ - "darling_core", - "darling_macro", -] - -[[package]] -name = "darling_core" -version = "0.20.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d00b9596d185e565c2207a0b01f8bd1a135483d02d9b7b0a54b11da8d53412e" -dependencies = [ - "fnv", - "ident_case", - "proc-macro2", - "quote", - "strsim", - "syn 2.0.100", -] - -[[package]] -name = "darling_macro" -version = "0.20.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead" -dependencies = [ - "darling_core", - "quote", - "syn 2.0.100", -] - -[[package]] -name = "dashmap" -version = "6.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5041cc499144891f3790297212f32a74fb938e5136a14943f338ef9e0ae276cf" -dependencies = [ - "cfg-if", - "crossbeam-utils", - "hashbrown 0.14.5", - "lock_api", - "once_cell", - "parking_lot_core 0.9.10", -] - -[[package]] -name = "data-encoding" -version = "2.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "575f75dfd25738df5b91b8e43e14d44bda14637a58fae779fd2b064f8bf3e010" - -[[package]] -name = "der" -version = "0.7.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f55bf8e7b65898637379c1b74eb1551107c8294ed26d855ceb9fd1a09cfc9bc0" -dependencies = [ - "const-oid", - "zeroize", -] - -[[package]] -name = "deranged" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c9e6a11ca8224451684bc0d7d5a7adbf8f2fd6887261a1cfc3c0432f9d4068e" -dependencies = [ - "powerfmt", - "serde", -] - -[[package]] -name = "derivative" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" -dependencies = [ - "proc-macro2", - "quote", - "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.100", -] - -[[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.100", -] - -[[package]] -name = "derive_more" -version = "0.99.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3da29a38df43d6f156149c9b43ded5e018ddff2a855cf2cfd62e8cd7d079c69f" -dependencies = [ - "convert_case 0.4.0", - "proc-macro2", - "quote", - "rustc_version 0.4.1", - "syn 2.0.100", -] - -[[package]] -name = "derive_more" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a9b99b9cbbe49445b21764dc0625032a89b145a2642e67603e1c936f5458d05" -dependencies = [ - "derive_more-impl", -] - -[[package]] -name = "derive_more-impl" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb7330aeadfbe296029522e6c40f315320aba36fc43a5b3632f3795348f3bd22" -dependencies = [ - "convert_case 0.6.0", - "proc-macro2", - "quote", - "syn 2.0.100", - "unicode-xid", -] - -[[package]] -name = "digest" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" -dependencies = [ - "generic-array", -] - -[[package]] -name = "digest" -version = "0.10.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" -dependencies = [ - "block-buffer", - "const-oid", - "crypto-common", - "subtle", -] - -[[package]] -name = "directories" -version = "5.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a49173b84e034382284f27f1af4dcbbd231ffa358c0fe316541a7337f376a35" -dependencies = [ - "dirs-sys", -] - -[[package]] -name = "dirs-sys" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c" -dependencies = [ - "libc", - "option-ext", - "redox_users", - "windows-sys 0.48.0", -] - -[[package]] -name = "displaydoc" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.100", -] - -[[package]] -name = "dotenv" -version = "0.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77c90badedccf4105eca100756a0b1289e191f6fcbdadd3cee1d2f614f97da8f" - -[[package]] -name = "downcast-rs" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75b325c5dbd37f80359721ad39aca5a29fb04c89279657cffdda8736d0c0b9d2" - -[[package]] -name = "dunce" -version = "1.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" - -[[package]] -name = "dyn-clone" -version = "1.0.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c7a8fb8a9fbf66c1f703fe16184d10ca0ee9d23be5b4436400408ba54a95005" - -[[package]] -name = "ecdsa" -version = "0.16.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca" -dependencies = [ - "der", - "digest 0.10.7", - "elliptic-curve", - "rfc6979", - "serdect", - "signature", - "spki", -] - -[[package]] -name = "either" -version = "1.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" - -[[package]] -name = "elf" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4445909572dbd556c457c849c4ca58623d84b27c8fff1e74b0b4227d8b90d17b" - -[[package]] -name = "elliptic-curve" -version = "0.13.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5e6043086bf7973472e0c7dff2142ea0b680d30e18d9cc40f267efbf222bd47" -dependencies = [ - "base16ct", - "crypto-bigint", - "digest 0.10.7", - "ff 0.13.1", - "generic-array", - "group 0.13.0", - "pkcs8", - "rand_core 0.6.4", - "sec1", - "serdect", - "subtle", - "zeroize", -] - -[[package]] -name = "encoding_rs" -version = "0.8.35" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "endian-type" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c34f04666d835ff5d62e058c3995147c06f42fe86ff053337632bca83e42702d" - -[[package]] -name = "enr" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf56acd72bb22d2824e66ae8e9e5ada4d0de17a69c7fd35569dde2ada8ec9116" -dependencies = [ - "base64 0.13.1", - "bytes", - "hex", - "k256", - "log", - "rand 0.8.5", - "rlp", - "serde", - "sha3", - "zeroize", -] - -[[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.100", -] - -[[package]] -name = "enumn" -version = "0.1.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f9ed6b3789237c8a0c1c505af1c7eb2c560df6186f01b098c3a1064ea532f38" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.100", -] - -[[package]] -name = "env_filter" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "186e05a59d4c50738528153b83b0b0194d3a29507dfec16eccd4b342903397d0" -dependencies = [ - "log", - "regex", -] - -[[package]] -name = "env_logger" -version = "0.11.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13c863f0904021b108aa8b2f55046443e6b1ebde8fd4a15c399893aae4fa069f" -dependencies = [ - "anstream", - "anstyle", - "env_filter", - "jiff", - "log", -] - -[[package]] -name = "equivalent" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" - -[[package]] -name = "errno" -version = "0.3.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "976dd42dc7e85965fe702eb8164f21f450704bdde31faefd6471dba214cb594e" -dependencies = [ - "libc", - "windows-sys 0.59.0", -] - -[[package]] -name = "eth-keystore" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fda3bf123be441da5260717e0661c25a2fd9cb2b2c1d20bf2e05580047158ab" -dependencies = [ - "aes", - "ctr", - "digest 0.10.7", - "hex", - "hmac", - "pbkdf2", - "rand 0.8.5", - "scrypt", - "serde", - "serde_json", - "sha2", - "sha3", - "thiserror 1.0.69", - "uuid 0.8.2", -] - -[[package]] -name = "ethabi" -version = "18.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7413c5f74cc903ea37386a8965a936cbeb334bd270862fdece542c1b2dcbc898" -dependencies = [ - "ethereum-types", - "hex", - "once_cell", - "regex", - "serde", - "serde_json", - "sha3", - "thiserror 1.0.69", - "uint", -] - -[[package]] -name = "ethbloom" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c22d4b5885b6aa2fe5e8b9329fb8d232bf739e434e6b87347c63bdd00c120f60" -dependencies = [ - "crunchy", - "fixed-hash", - "impl-codec", - "impl-rlp", - "impl-serde", - "scale-info", - "tiny-keccak", -] - -[[package]] -name = "ethereum-types" -version = "0.14.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02d215cbf040552efcbe99a38372fe80ab9d00268e20012b79fcd0f073edd8ee" -dependencies = [ - "ethbloom", - "fixed-hash", - "impl-codec", - "impl-rlp", - "impl-serde", - "primitive-types", - "scale-info", - "uint", -] - -[[package]] -name = "ethers-core" -version = "2.0.7" -source = "git+https://github.com/scroll-tech/ethers-rs.git?branch=v2.0.7#e32dfd62e7cdec31160b91c5a646883594a586ba" -dependencies = [ - "arrayvec", - "bytes", - "chrono", - "elliptic-curve", - "ethabi", - "generic-array", - "hex", - "k256", - "num_enum 0.6.1", - "open-fastrlp", - "rand 0.8.5", - "rlp", - "serde", - "serde_json", - "strum 0.24.1", - "tempfile", - "thiserror 1.0.69", - "tiny-keccak", - "unicode-xid", -] - -[[package]] -name = "ethers-providers" -version = "2.0.7" -source = "git+https://github.com/scroll-tech/ethers-rs.git?branch=v2.0.7#e32dfd62e7cdec31160b91c5a646883594a586ba" -dependencies = [ - "async-trait", - "auto_impl", - "base64 0.21.7", - "bytes", - "enr", - "ethers-core", - "futures-channel", - "futures-core", - "futures-timer", - "futures-util", - "hashers", - "hex", - "http 0.2.12", - "instant", - "once_cell", - "pin-project", - "reqwest 0.11.27", - "serde", - "serde_json", - "thiserror 1.0.69", - "tokio", - "tokio-tungstenite", - "tracing", - "tracing-futures", - "url", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", - "ws_stream_wasm", -] - -[[package]] -name = "eyre" -version = "0.6.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7cd915d99f24784cdc19fd37ef22b97e3ff0ae756c7e492e9fbfe897d61e2aec" -dependencies = [ - "indenter", - "once_cell", -] - -[[package]] -name = "fastrand" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" - -[[package]] -name = "fastrlp" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "139834ddba373bbdd213dffe02c8d110508dcf1726c2be27e8d1f7d7e1856418" -dependencies = [ - "arrayvec", - "auto_impl", - "bytes", -] - -[[package]] -name = "ff" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d013fc25338cc558c5c2cfbad646908fb23591e2404481826742b651c9af7160" -dependencies = [ - "bitvec", - "rand_core 0.6.4", - "subtle", -] - -[[package]] -name = "ff" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0b50bfb653653f9ca9095b427bed08ab8d75a137839d9ad64eb11810d5b6393" -dependencies = [ - "bitvec", - "byteorder", - "ff_derive", - "rand_core 0.6.4", - "subtle", -] - -[[package]] -name = "ff_derive" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f10d12652036b0e99197587c6ba87a8fc3031986499973c030d8b44fcc151b60" -dependencies = [ - "addchain", - "num-bigint 0.3.3", - "num-integer", - "num-traits", - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "find_cuda_helper" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9f9e65c593dd01ac77daad909ea4ad17f0d6d1776193fc8ea766356177abdad" -dependencies = [ - "glob", -] - -[[package]] -name = "fixed-hash" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "835c052cb0c08c1acf6ffd71c022172e18723949c8282f2b9f27efbc51e64534" -dependencies = [ - "byteorder", - "rand 0.8.5", - "rustc-hex", - "static_assertions", -] - -[[package]] -name = "flate2" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ced92e76e966ca2fd84c8f7aa01a4aea65b0eb6648d72f7c8f3e2764a67fece" -dependencies = [ - "crc32fast", - "miniz_oxide", -] - -[[package]] -name = "fnv" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" - -[[package]] -name = "foldhash" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" - -[[package]] -name = "foreign-types" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" -dependencies = [ - "foreign-types-shared", -] - -[[package]] -name = "foreign-types-shared" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" - -[[package]] -name = "form_urlencoded" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" -dependencies = [ - "percent-encoding", -] - -[[package]] -name = "fs2" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9564fc758e15025b46aa6643b1b77d047d1a56a1aea6e01002ac0c7026876213" -dependencies = [ - "libc", - "winapi", -] - -[[package]] -name = "funty" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" - -[[package]] -name = "futures" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876" -dependencies = [ - "futures-channel", - "futures-core", - "futures-executor", - "futures-io", - "futures-sink", - "futures-task", - "futures-util", -] - -[[package]] -name = "futures-channel" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" -dependencies = [ - "futures-core", - "futures-sink", -] - -[[package]] -name = "futures-core" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" - -[[package]] -name = "futures-executor" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f" -dependencies = [ - "futures-core", - "futures-task", - "futures-util", -] - -[[package]] -name = "futures-io" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" - -[[package]] -name = "futures-macro" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.100", -] - -[[package]] -name = "futures-sink" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" - -[[package]] -name = "futures-task" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" - -[[package]] -name = "futures-timer" -version = "3.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f288b0a4f20f9a56b5d1da57e2227c661b7b16168e2f72365f57b63326e29b24" -dependencies = [ - "gloo-timers 0.2.6", - "send_wrapper 0.4.0", -] - -[[package]] -name = "futures-util" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" -dependencies = [ - "futures-channel", - "futures-core", - "futures-io", - "futures-macro", - "futures-sink", - "futures-task", - "memchr", - "pin-project-lite", - "pin-utils", - "slab", -] - -[[package]] -name = "futures-utils-wasm" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42012b0f064e01aa58b545fe3727f90f7dd4020f4a3ea735b50344965f5a57e9" - -[[package]] -name = "fxhash" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" -dependencies = [ - "byteorder", -] - -[[package]] -name = "gcd" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d758ba1b47b00caf47f24925c0074ecb20d6dfcffe7f6d53395c0465674841a" - -[[package]] -name = "generic-array" -version = "0.14.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" -dependencies = [ - "typenum", - "version_check", - "zeroize", -] - -[[package]] -name = "getrandom" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" -dependencies = [ - "cfg-if", - "js-sys", - "libc", - "wasi 0.11.0+wasi-snapshot-preview1", - "wasm-bindgen", -] - -[[package]] -name = "getrandom" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73fea8450eea4bac3940448fb7ae50d91f034f941199fcd9d909a5a07aa455f0" -dependencies = [ - "cfg-if", - "js-sys", - "libc", - "r-efi", - "wasi 0.14.2+wasi-0.2.4", - "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.100", -] - -[[package]] -name = "gimli" -version = "0.31.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" - -[[package]] -name = "git-version" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ad568aa3db0fcbc81f2f116137f263d7304f512a1209b35b85150d3ef88ad19" -dependencies = [ - "git-version-macro", -] - -[[package]] -name = "git-version-macro" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53010ccb100b96a67bc32c0175f0ed1426b31b655d562898e57325f81c023ac0" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.100", -] - -[[package]] -name = "glam" -version = "0.20.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f43e957e744be03f5801a55472f593d43fabdebf25a4585db250f04d86b1675f" -dependencies = [ - "num-traits", -] - -[[package]] -name = "glam" -version = "0.30.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf3aa70d918d2b234126ff4f850f628f172542bf0603ded26b8ee36e5e22d5f9" - -[[package]] -name = "glob" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8d1add55171497b4705a648c6b583acafb01d58050a51727785f0b2c8e0a2b2" - -[[package]] -name = "gloo-timers" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b995a66bb87bebce9a0f4a95aed01daca4872c050bfcb21653361c03bc35e5c" -dependencies = [ - "futures-channel", - "futures-core", - "js-sys", - "wasm-bindgen", -] - -[[package]] -name = "gloo-timers" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbb143cf96099802033e0d4f4963b19fd2e0b728bcf076cd9cf7f6634f092994" -dependencies = [ - "futures-channel", - "futures-core", - "js-sys", - "wasm-bindgen", -] - -[[package]] -name = "group" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5dfbfb3a6cfbd390d5c9564ab283a0349b9b9fcd46a706c1eb10e0db70bfbac7" -dependencies = [ - "ff 0.12.1", - "memuse", - "rand_core 0.6.4", - "subtle", -] - -[[package]] -name = "group" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" -dependencies = [ - "ff 0.13.1", - "rand_core 0.6.4", - "subtle", -] - -[[package]] -name = "h2" -version = "0.3.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" -dependencies = [ - "bytes", - "fnv", - "futures-core", - "futures-sink", - "futures-util", - "http 0.2.12", - "indexmap 2.9.0", - "slab", - "tokio", - "tokio-util", - "tracing", -] - -[[package]] -name = "h2" -version = "0.4.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5017294ff4bb30944501348f6f8e42e6ad28f42c8bbef7a74029aff064a4e3c2" -dependencies = [ - "atomic-waker", - "bytes", - "fnv", - "futures-core", - "futures-sink", - "http 1.3.1", - "indexmap 2.9.0", - "slab", - "tokio", - "tokio-util", - "tracing", -] - -[[package]] -name = "halo2" -version = "0.1.0-beta.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a23c779b38253fe1538102da44ad5bd5378495a61d2c4ee18d64eaa61ae5995" -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" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e925780549adee8364c7f2b685c753f6f3df23bde520c67416e93bf615933760" -dependencies = [ - "blake2b_simd", - "ff 0.12.1", - "group 0.12.1", - "pasta_curves 0.4.1", - "rand_core 0.6.4", - "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" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" - -[[package]] -name = "hashbrown" -version = "0.14.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" -dependencies = [ - "ahash", -] - -[[package]] -name = "hashbrown" -version = "0.15.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" -dependencies = [ - "allocator-api2", - "equivalent", - "foldhash", - "rayon", - "serde", -] - -[[package]] -name = "hashers" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2bca93b15ea5a746f220e56587f71e73c6165eab783df9e26590069953e3c30" -dependencies = [ - "fxhash", -] - -[[package]] -name = "heck" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" - -[[package]] -name = "heck" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" - -[[package]] -name = "hermit-abi" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" - -[[package]] -name = "hex" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" -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" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" -dependencies = [ - "digest 0.10.7", -] - -[[package]] -name = "home" -version = "0.5.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "589533453244b0995c858700322199b2becb13b627df2851f64a2775d024abcf" -dependencies = [ - "windows-sys 0.59.0", -] - -[[package]] -name = "http" -version = "0.2.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" -dependencies = [ - "bytes", - "fnv", - "itoa", -] - -[[package]] -name = "http" -version = "1.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4a85d31aea989eead29a3aaf9e1115a180df8282431156e533de47660892565" -dependencies = [ - "bytes", - "fnv", - "itoa", -] - -[[package]] -name = "http-body" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" -dependencies = [ - "bytes", - "http 0.2.12", - "pin-project-lite", -] - -[[package]] -name = "http-body" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" -dependencies = [ - "bytes", - "http 1.3.1", -] - -[[package]] -name = "http-body-util" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b021d93e26becf5dc7e1b75b1bed1fd93124b374ceb73f43d4d4eafec896a64a" -dependencies = [ - "bytes", - "futures-core", - "http 1.3.1", - "http-body 1.0.1", - "pin-project-lite", -] - -[[package]] -name = "httparse" -version = "1.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" - -[[package]] -name = "httpdate" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" - -[[package]] -name = "hyper" -version = "0.14.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41dfc780fdec9373c01bae43289ea34c972e40ee3c9f6b3c8801a35f35586ce7" -dependencies = [ - "bytes", - "futures-channel", - "futures-core", - "futures-util", - "h2 0.3.26", - "http 0.2.12", - "http-body 0.4.6", - "httparse", - "httpdate", - "itoa", - "pin-project-lite", - "socket2", - "tokio", - "tower-service", - "tracing", - "want", -] - -[[package]] -name = "hyper" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc2b571658e38e0c01b1fdca3bbbe93c00d3d71693ff2770043f8c29bc7d6f80" -dependencies = [ - "bytes", - "futures-channel", - "futures-util", - "h2 0.4.8", - "http 1.3.1", - "http-body 1.0.1", - "httparse", - "itoa", - "pin-project-lite", - "smallvec", - "tokio", - "want", -] - -[[package]] -name = "hyper-rustls" -version = "0.24.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590" -dependencies = [ - "futures-util", - "http 0.2.12", - "hyper 0.14.32", - "rustls 0.21.12", - "tokio", - "tokio-rustls 0.24.1", -] - -[[package]] -name = "hyper-rustls" -version = "0.27.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d191583f3da1305256f22463b9bb0471acad48a4e534a5218b9963e9c1f59b2" -dependencies = [ - "futures-util", - "http 1.3.1", - "hyper 1.6.0", - "hyper-util", - "rustls 0.23.26", - "rustls-pki-types", - "tokio", - "tokio-rustls 0.26.2", - "tower-service", - "webpki-roots 0.26.8", -] - -[[package]] -name = "hyper-tls" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0" -dependencies = [ - "bytes", - "http-body-util", - "hyper 1.6.0", - "hyper-util", - "native-tls", - "tokio", - "tokio-native-tls", - "tower-service", -] - -[[package]] -name = "hyper-util" -version = "0.1.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "497bbc33a26fdd4af9ed9c70d63f61cf56a938375fbb32df34db9b1cd6d643f2" -dependencies = [ - "bytes", - "futures-channel", - "futures-util", - "http 1.3.1", - "http-body 1.0.1", - "hyper 1.6.0", - "libc", - "pin-project-lite", - "socket2", - "tokio", - "tower-service", - "tracing", -] - -[[package]] -name = "iana-time-zone" -version = "0.1.63" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0c919e5debc312ad217002b8048a17b7d83f80703865bbfcfebb0458b0b27d8" -dependencies = [ - "android_system_properties", - "core-foundation-sys", - "iana-time-zone-haiku", - "js-sys", - "log", - "wasm-bindgen", - "windows-core 0.61.0", -] - -[[package]] -name = "iana-time-zone-haiku" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" -dependencies = [ - "cc", -] - -[[package]] -name = "icu_collections" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526" -dependencies = [ - "displaydoc", - "yoke", - "zerofrom", - "zerovec", -] - -[[package]] -name = "icu_locid" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" -dependencies = [ - "displaydoc", - "litemap", - "tinystr", - "writeable", - "zerovec", -] - -[[package]] -name = "icu_locid_transform" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e" -dependencies = [ - "displaydoc", - "icu_locid", - "icu_locid_transform_data", - "icu_provider", - "tinystr", - "zerovec", -] - -[[package]] -name = "icu_locid_transform_data" -version = "1.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7515e6d781098bf9f7205ab3fc7e9709d34554ae0b21ddbcb5febfa4bc7df11d" - -[[package]] -name = "icu_normalizer" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f" -dependencies = [ - "displaydoc", - "icu_collections", - "icu_normalizer_data", - "icu_properties", - "icu_provider", - "smallvec", - "utf16_iter", - "utf8_iter", - "write16", - "zerovec", -] - -[[package]] -name = "icu_normalizer_data" -version = "1.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5e8338228bdc8ab83303f16b797e177953730f601a96c25d10cb3ab0daa0cb7" - -[[package]] -name = "icu_properties" -version = "1.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5" -dependencies = [ - "displaydoc", - "icu_collections", - "icu_locid_transform", - "icu_properties_data", - "icu_provider", - "tinystr", - "zerovec", -] - -[[package]] -name = "icu_properties_data" -version = "1.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85fb8799753b75aee8d2a21d7c14d9f38921b54b3dbda10f5a3c7a7b82dba5e2" - -[[package]] -name = "icu_provider" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9" -dependencies = [ - "displaydoc", - "icu_locid", - "icu_provider_macros", - "stable_deref_trait", - "tinystr", - "writeable", - "yoke", - "zerofrom", - "zerovec", -] - -[[package]] -name = "icu_provider_macros" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.100", -] - -[[package]] -name = "ident_case" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" - -[[package]] -name = "idna" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" -dependencies = [ - "idna_adapter", - "smallvec", - "utf8_iter", -] - -[[package]] -name = "idna_adapter" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71" -dependencies = [ - "icu_normalizer", - "icu_properties", -] - -[[package]] -name = "impl-codec" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba6a270039626615617f3f36d15fc827041df3b78c439da2cadfa47455a77f2f" -dependencies = [ - "parity-scale-codec", -] - -[[package]] -name = "impl-rlp" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f28220f89297a075ddc7245cd538076ee98b01f2a9c23a53a4f1105d5a322808" -dependencies = [ - "rlp", -] - -[[package]] -name = "impl-serde" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebc88fc67028ae3db0c853baa36269d398d5f45b6982f95549ff5def78c935cd" -dependencies = [ - "serde", -] - -[[package]] -name = "impl-trait-for-tuples" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0eb5a3343abf848c0984fe4604b2b105da9539376e24fc0a3b0007411ae4fd9" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.100", -] - -[[package]] -name = "indenter" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce23b50ad8242c51a442f3ff322d56b02f08852c77e4c0b4d3fd684abc89c683" - -[[package]] -name = "indexmap" -version = "1.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" -dependencies = [ - "autocfg", - "hashbrown 0.12.3", - "serde", -] - -[[package]] -name = "indexmap" -version = "2.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cea70ddb795996207ad57735b50c5982d8844f38ba9ee5f1aedcfb708a2aa11e" -dependencies = [ - "equivalent", - "hashbrown 0.15.2", - "serde", -] - -[[package]] -name = "inout" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "879f10e63c20629ecabbb64a8010319738c66a5cd0c29b02d63d272b03751d01" -dependencies = [ - "generic-array", -] - -[[package]] -name = "instant" -version = "0.1.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222" -dependencies = [ - "cfg-if", - "js-sys", - "wasm-bindgen", - "web-sys", -] - -[[package]] -name = "ipnet" -version = "2.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130" - -[[package]] -name = "is_terminal_polyfill" -version = "1.70.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" - -[[package]] -name = "itertools" -version = "0.10.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" -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" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" -dependencies = [ - "either", -] - -[[package]] -name = "itertools" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" -dependencies = [ - "either", -] - -[[package]] -name = "itertools" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285" -dependencies = [ - "either", -] - -[[package]] -name = "itoa" -version = "1.0.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" - -[[package]] -name = "jiff" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f33145a5cbea837164362c7bd596106eb7c5198f97d1ba6f6ebb3223952e488" -dependencies = [ - "jiff-static", - "log", - "portable-atomic", - "portable-atomic-util", - "serde", -] - -[[package]] -name = "jiff-static" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43ce13c40ec6956157a3635d97a1ee2df323b263f09ea14165131289cb0f5c19" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.100", -] - -[[package]] -name = "jobserver" -version = "0.1.33" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38f262f097c174adebe41eb73d66ae9c06b2844fb0da69969647bbddd9b0538a" -dependencies = [ - "getrandom 0.3.2", - "libc", -] - -[[package]] -name = "js-sys" -version = "0.3.77" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f" -dependencies = [ - "once_cell", - "wasm-bindgen", -] - -[[package]] -name = "jubjub" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a575df5f985fe1cd5b2b05664ff6accfc46559032b954529fd225a2168d27b0f" -dependencies = [ - "bitvec", - "bls12_381", - "ff 0.12.1", - "group 0.12.1", - "rand_core 0.6.4", - "subtle", -] - -[[package]] -name = "k256" -version = "0.13.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6e3919bbaa2945715f0bb6d3934a173d1e9a59ac23767fbaaef277265a7411b" -dependencies = [ - "cfg-if", - "ecdsa", - "elliptic-curve", - "once_cell", - "serdect", - "sha2", - "signature", -] - -[[package]] -name = "keccak" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ecc2af9a1119c51f12a14607e783cb977bde58bc069ff0c3da1095e635d70654" -dependencies = [ - "cpufeatures", -] - -[[package]] -name = "keccak-asm" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "505d1856a39b200489082f90d897c3f07c455563880bc5952e38eabf731c83b6" -dependencies = [ - "digest 0.10.7", - "sha3-asm", -] - -[[package]] -name = "lazy_static" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" -dependencies = [ - "spin 0.9.8", -] - -[[package]] -name = "lazycell" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" - -[[package]] -name = "libc" -version = "0.2.171" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c19937216e9d3aa9956d9bb8dfc0b0c8beb6058fc4f7a4dc4d850edf86a237d6" - -[[package]] -name = "libloading" -version = "0.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc2f4eb4bc735547cfed7c0a4922cbd04a4655978c09b54f1f7b228750664c34" -dependencies = [ - "cfg-if", - "windows-targets 0.48.5", -] - -[[package]] -name = "libm" -version = "0.2.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8355be11b20d696c8f18f6cc018c4e372165b1fa8126cef092399c9951984ffa" - -[[package]] -name = "libredox" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" -dependencies = [ - "bitflags 2.9.0", - "libc", -] - -[[package]] -name = "librocksdb-sys" -version = "0.17.1+9.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b7869a512ae9982f4d46ba482c2a304f1efd80c6412a3d4bf57bb79a619679f" -dependencies = [ - "bindgen 0.69.5", - "bzip2-sys", - "cc", - "libc", - "libz-sys", - "lz4-sys", - "zstd-sys", -] - -[[package]] -name = "libz-sys" -version = "1.1.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b70e7a7df205e92a1a4cd9aaae7898dac0aa555503cc0a649494d0d60e7651d" -dependencies = [ - "cc", - "pkg-config", - "vcpkg", -] - -[[package]] -name = "linux-raw-sys" -version = "0.4.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab" - -[[package]] -name = "linux-raw-sys" -version = "0.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd945864f07fe9f5371a27ad7b52a172b4b499999f1d97574c9fa68373937e12" - -[[package]] -name = "litemap" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23fb14cb19457329c82206317a5663005a4d404783dc74f4252769b0d5f42856" - -[[package]] -name = "lock_api" -version = "0.4.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" -dependencies = [ - "autocfg", - "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" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94" - -[[package]] -name = "lru" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "227748d55f2f0ab4735d87fd623798cb6b664512fe979705f829c9f81c934465" -dependencies = [ - "hashbrown 0.15.2", -] - -[[package]] -name = "lz4-sys" -version = "1.11.1+lz4-1.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6bd8c0d6c6ed0cd30b3652886bb8711dc4bb01d637a68105a3d5158039b418e6" -dependencies = [ - "cc", - "libc", -] - -[[package]] -name = "lz4_flex" -version = "0.11.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75761162ae2b0e580d7e7c390558127e5f01b4194debd6221fd8c207fc80e3f5" - -[[package]] -name = "matchers" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" -dependencies = [ - "regex-automata 0.1.10", -] - -[[package]] -name = "matchit" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e7465ac9959cc2b1404e8e2367b43684a6d13790fe23056cc8c6c5a6b7bcb94" - -[[package]] -name = "matrixmultiply" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9380b911e3e96d10c1f415da0876389aaf1b56759054eeb0de7df940c456ba1a" -dependencies = [ - "autocfg", - "rawpointer", -] - -[[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" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" - -[[package]] -name = "memmap2" -version = "0.9.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd3f7eed9d3848f8b98834af67102b720745c4ec028fcd0aa0239277e7de374f" -dependencies = [ - "libc", -] - -[[package]] -name = "memuse" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d97bbf43eb4f088f8ca469930cde17fa036207c9a5e02ccc5107c4e8b17c964" - -[[package]] -name = "metrics" -version = "0.23.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "884adb57038347dfbaf2d5065887b6cf4312330dc8e94bc30a1a839bd79d3261" -dependencies = [ - "ahash", - "portable-atomic", -] - -[[package]] -name = "metrics" -version = "0.24.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a7deb012b3b2767169ff203fadb4c6b0b82b947512e5eb9e0b78c2e186ad9e3" -dependencies = [ - "ahash", - "portable-atomic", -] - -[[package]] -name = "metrics-derive" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3dbdd96ed57d565ec744cba02862d707acf373c5772d152abae6ec5c4e24f6c" -dependencies = [ - "proc-macro2", - "quote", - "regex", - "syn 2.0.100", -] - -[[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 0.23.0", - "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 0.23.0", - "num_cpus", - "ordered-float", - "quanta", - "radix_trie", - "sketches-ddsketch", -] - -[[package]] -name = "mime" -version = "0.3.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" - -[[package]] -name = "minimal-lexical" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" - -[[package]] -name = "miniz_oxide" -version = "0.8.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3be647b768db090acb35d5ec5db2b0e1f1de11133ca123b9eacf5137868f892a" -dependencies = [ - "adler2", -] - -[[package]] -name = "mint" -version = "0.5.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e53debba6bda7a793e5f99b8dacf19e626084f525f7829104ba9898f367d85ff" - -[[package]] -name = "mio" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2886843bf800fba2e3377cff24abf6379b4c4d5c6681eaf9ea5b0d15090450bd" -dependencies = [ - "libc", - "wasi 0.11.0+wasi-snapshot-preview1", - "windows-sys 0.52.0", -] - -[[package]] -name = "modular-bitfield" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a53d79ba8304ac1c4f9eb3b9d281f21f7be9d4626f72ce7df4ad8fbde4f38a74" -dependencies = [ - "modular-bitfield-impl", - "static_assertions", -] - -[[package]] -name = "modular-bitfield-impl" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a7d5f7076603ebc68de2dc6a650ec331a062a13abaa346975be747bbfa4b789" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "munge" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64142d38c84badf60abf06ff9bd80ad2174306a5b11bd4706535090a30a419df" -dependencies = [ - "munge_macro", -] - -[[package]] -name = "munge_macro" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bb5c1d8184f13f7d0ccbeeca0def2f9a181bce2624302793005f5ca8aa62e5e" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.100", -] - -[[package]] -name = "native-tls" -version = "0.2.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87de3442987e9dbec73158d5c715e7ad9072fda936bb03d19d7fa10e00520f0e" -dependencies = [ - "libc", - "log", - "openssl", - "openssl-probe", - "openssl-sys", - "schannel", - "security-framework", - "security-framework-sys", - "tempfile", -] - -[[package]] -name = "ndarray" -version = "0.15.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adb12d4e967ec485a5f71c6311fe28158e9d6f4bc4a447b474184d0f91a8fa32" -dependencies = [ - "matrixmultiply", - "num-complex", - "num-integer", - "num-traits", - "rawpointer", - "rayon", -] - -[[package]] -name = "nibble_vec" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77a5d83df9f36fe23f0c3648c6bbb8b0298bb5f1939c8f2704431371f4b84d43" -dependencies = [ - "smallvec", -] - -[[package]] -name = "nom" -version = "7.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" -dependencies = [ - "memchr", - "minimal-lexical", -] - -[[package]] -name = "ntapi" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8a3895c6391c39d7fe7ebc444a87eb2991b2a0bc718fdabd071eec617fc68e4" -dependencies = [ - "winapi", -] - -[[package]] -name = "nu-ansi-term" -version = "0.46.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" -dependencies = [ - "overload", - "winapi", -] - -[[package]] -name = "num" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35bd024e8b2ff75562e5f34e7f4905839deb4b22955ef5e73d2fea1b9813cb23" -dependencies = [ - "num-bigint 0.4.6", - "num-complex", - "num-integer", - "num-iter", - "num-rational", - "num-traits", -] - -[[package]] -name = "num-bigint" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f6f7833f2cbf2360a6cfd58cd41a53aa7a90bd4c202f5b1c7dd2ed73c57b2c3" -dependencies = [ - "autocfg", - "num-integer", - "num-traits", -] - -[[package]] -name = "num-bigint" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" -dependencies = [ - "num-integer", - "num-traits", - "rand 0.8.5", - "serde", -] - -[[package]] -name = "num-complex" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73f88a1307638156682bada9d7604135552957b7818057dcef22705b4d509495" -dependencies = [ - "num-traits", -] - -[[package]] -name = "num-conv" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" - -[[package]] -name = "num-integer" -version = "0.1.46" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" -dependencies = [ - "num-traits", -] - -[[package]] -name = "num-iter" -version = "0.1.45" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1429034a0490724d0075ebb2bc9e875d6503c3cf69e235a8941aa757d83ef5bf" -dependencies = [ - "autocfg", - "num-integer", - "num-traits", -] - -[[package]] -name = "num-rational" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f83d14da390562dca69fc84082e73e548e1ad308d24accdedd2720017cb37824" -dependencies = [ - "num-bigint 0.4.6", - "num-integer", - "num-traits", -] - -[[package]] -name = "num-traits" -version = "0.2.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" -dependencies = [ - "autocfg", - "libm", -] - -[[package]] -name = "num_cpus" -version = "1.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" -dependencies = [ - "hermit-abi", - "libc", -] - -[[package]] -name = "num_enum" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a015b430d3c108a207fd776d2e2196aaf8b1cf8cf93253e3a097ff3085076a1" -dependencies = [ - "num_enum_derive 0.6.1", -] - -[[package]] -name = "num_enum" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e613fc340b2220f734a8595782c551f1250e969d87d3be1ae0579e8d4065179" -dependencies = [ - "num_enum_derive 0.7.3", -] - -[[package]] -name = "num_enum_derive" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96667db765a921f7b295ffee8b60472b686a51d4f21c2ee4ffdb94c7013b65a6" -dependencies = [ - "proc-macro-crate 1.3.1", - "proc-macro2", - "quote", - "syn 2.0.100", -] - -[[package]] -name = "num_enum_derive" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af1844ef2428cc3e1cb900be36181049ef3d3193c63e43026cfe202983b27a56" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.100", -] - -[[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" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8983bb634df7248924ee0c4c3a749609b5abcb082c28fffe3254b3eb3602b307" -dependencies = [ - "alloy-rlp", - "const-hex", - "proptest", - "serde", - "smallvec", -] - -[[package]] -name = "object" -version = "0.36.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87" -dependencies = [ - "memchr", -] - -[[package]] -name = "once_cell" -version = "1.21.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" -dependencies = [ - "critical-section", - "portable-atomic", -] - -[[package]] -name = "op-alloy-consensus" -version = "0.10.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9ddc5e1dcd2967e8325ab06ed52a2c7cfa562a6dd31ffc9f64e7075bba9f221" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives", - "alloy-rlp", - "alloy-serde 0.11.1", - "derive_more 1.0.0", - "serde", - "serde_with", - "thiserror 2.0.12", -] - -[[package]] -name = "open-fastrlp" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "786393f80485445794f6043fd3138854dd109cc6c4bd1a6383db304c9ce9b9ce" -dependencies = [ - "arrayvec", - "auto_impl", - "bytes", - "ethereum-types", - "open-fastrlp-derive", -] - -[[package]] -name = "open-fastrlp-derive" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "003b2be5c6c53c1cfeb0a238b8a1c3915cd410feb684457a36c10038f764bb1c" -dependencies = [ - "bytes", - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "openssl" -version = "0.10.72" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fedfea7d58a1f73118430a55da6a286e7b044961736ce96a16a17068ea25e5da" -dependencies = [ - "bitflags 2.9.0", - "cfg-if", - "foreign-types", - "libc", - "once_cell", - "openssl-macros", - "openssl-sys", -] - -[[package]] -name = "openssl-macros" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.100", -] - -[[package]] -name = "openssl-probe" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e" - -[[package]] -name = "openssl-sys" -version = "0.9.107" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8288979acd84749c744a9014b4382d42b8f7b2592847b5afb2ed29e5d16ede07" -dependencies = [ - "cc", - "libc", - "pkg-config", - "vcpkg", -] - -[[package]] -name = "openvm" -version = "1.2.0" -source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.2.0#8094b4f5a4000f0d75d93cfcd6690fd3174325af" -dependencies = [ - "bytemuck", - "num-bigint 0.4.6", - "openvm-custom-insn", - "openvm-platform", - "openvm-rv32im-guest", - "serde", -] - -[[package]] -name = "openvm-algebra-circuit" -version = "1.2.0" -source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.2.0#8094b4f5a4000f0d75d93cfcd6690fd3174325af" -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 0.26.3", -] - -[[package]] -name = "openvm-algebra-complex-macros" -version = "0.1.0" -source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.2.0#8094b4f5a4000f0d75d93cfcd6690fd3174325af" -dependencies = [ - "openvm-macros-common", - "quote", - "syn 2.0.100", -] - -[[package]] -name = "openvm-algebra-guest" -version = "1.2.0" -source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.2.0#8094b4f5a4000f0d75d93cfcd6690fd3174325af" -dependencies = [ - "halo2curves-axiom", - "num-bigint 0.4.6", - "openvm-algebra-complex-macros", - "openvm-algebra-moduli-macros", - "serde-big-array", - "strum_macros 0.26.4", -] - -[[package]] -name = "openvm-algebra-moduli-macros" -version = "1.2.0" -source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.2.0#8094b4f5a4000f0d75d93cfcd6690fd3174325af" -dependencies = [ - "openvm-macros-common", - "quote", - "syn 2.0.100", -] - -[[package]] -name = "openvm-algebra-transpiler" -version = "1.2.0" -source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.2.0#8094b4f5a4000f0d75d93cfcd6690fd3174325af" -dependencies = [ - "openvm-algebra-guest", - "openvm-instructions", - "openvm-instructions-derive", - "openvm-stark-backend", - "openvm-transpiler", - "rrs-lib", - "strum 0.26.3", -] - -[[package]] -name = "openvm-bigint-circuit" -version = "1.2.0" -source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.2.0#8094b4f5a4000f0d75d93cfcd6690fd3174325af" -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.2.0" -source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.2.0#8094b4f5a4000f0d75d93cfcd6690fd3174325af" -dependencies = [ - "num-bigint 0.4.6", - "num-traits", - "openvm", - "openvm-platform", - "serde", - "serde-big-array", - "strum_macros 0.26.4", -] - -[[package]] -name = "openvm-bigint-transpiler" -version = "1.2.0" -source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.2.0#8094b4f5a4000f0d75d93cfcd6690fd3174325af" -dependencies = [ - "openvm-bigint-guest", - "openvm-instructions", - "openvm-instructions-derive", - "openvm-rv32im-transpiler", - "openvm-stark-backend", - "openvm-transpiler", - "rrs-lib", - "strum 0.26.3", -] - -[[package]] -name = "openvm-build" -version = "1.2.0" -source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.2.0#8094b4f5a4000f0d75d93cfcd6690fd3174325af" -dependencies = [ - "cargo_metadata", - "eyre", - "openvm-platform", - "serde", - "serde_json", -] - -[[package]] -name = "openvm-circuit" -version = "1.2.0" -source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.2.0#8094b4f5a4000f0d75d93cfcd6690fd3174325af" -dependencies = [ - "backtrace", - "cfg-if", - "derivative", - "derive-new 0.6.0", - "derive_more 1.0.0", - "enum_dispatch", - "eyre", - "getset", - "itertools 0.14.0", - "metrics 0.23.0", - "openvm-circuit-derive", - "openvm-circuit-primitives", - "openvm-circuit-primitives-derive", - "openvm-instructions", - "openvm-poseidon2-air", - "openvm-stark-backend", - "p3-baby-bear", - "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.2.0" -source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.2.0#8094b4f5a4000f0d75d93cfcd6690fd3174325af" -dependencies = [ - "itertools 0.14.0", - "quote", - "syn 2.0.100", -] - -[[package]] -name = "openvm-circuit-primitives" -version = "1.2.0" -source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.2.0#8094b4f5a4000f0d75d93cfcd6690fd3174325af" -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.2.0" -source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.2.0#8094b4f5a4000f0d75d93cfcd6690fd3174325af" -dependencies = [ - "itertools 0.14.0", - "quote", - "syn 2.0.100", -] - -[[package]] -name = "openvm-continuations" -version = "1.2.0" -source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.2.0#8094b4f5a4000f0d75d93cfcd6690fd3174325af" -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+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.2.0#8094b4f5a4000f0d75d93cfcd6690fd3174325af" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.100", -] - -[[package]] -name = "openvm-ecc-circuit" -version = "1.2.0" -source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.2.0#8094b4f5a4000f0d75d93cfcd6690fd3174325af" -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 0.26.3", -] - -[[package]] -name = "openvm-ecc-guest" -version = "1.2.0" -source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.2.0#8094b4f5a4000f0d75d93cfcd6690fd3174325af" -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 0.26.4", -] - -[[package]] -name = "openvm-ecc-sw-macros" -version = "1.2.0" -source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.2.0#8094b4f5a4000f0d75d93cfcd6690fd3174325af" -dependencies = [ - "openvm-macros-common", - "quote", - "syn 2.0.100", -] - -[[package]] -name = "openvm-ecc-transpiler" -version = "1.2.0" -source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.2.0#8094b4f5a4000f0d75d93cfcd6690fd3174325af" -dependencies = [ - "openvm-ecc-guest", - "openvm-instructions", - "openvm-instructions-derive", - "openvm-stark-backend", - "openvm-transpiler", - "rrs-lib", - "strum 0.26.3", -] - -[[package]] -name = "openvm-instructions" -version = "1.2.0" -source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.2.0#8094b4f5a4000f0d75d93cfcd6690fd3174325af" -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 0.26.3", - "strum_macros 0.26.4", -] - -[[package]] -name = "openvm-instructions-derive" -version = "1.2.0" -source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.2.0#8094b4f5a4000f0d75d93cfcd6690fd3174325af" -dependencies = [ - "quote", - "syn 2.0.100", -] - -[[package]] -name = "openvm-keccak256-circuit" -version = "1.2.0" -source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.2.0#8094b4f5a4000f0d75d93cfcd6690fd3174325af" -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", - "rand 0.8.5", - "serde", - "serde-big-array", - "strum 0.26.3", - "tiny-keccak", - "tracing", -] - -[[package]] -name = "openvm-keccak256-guest" -version = "1.2.0" -source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.2.0#8094b4f5a4000f0d75d93cfcd6690fd3174325af" -dependencies = [ - "openvm-platform", - "tiny-keccak", -] - -[[package]] -name = "openvm-keccak256-transpiler" -version = "1.2.0" -source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.2.0#8094b4f5a4000f0d75d93cfcd6690fd3174325af" -dependencies = [ - "openvm-instructions", - "openvm-instructions-derive", - "openvm-keccak256-guest", - "openvm-stark-backend", - "openvm-transpiler", - "rrs-lib", - "strum 0.26.3", -] - -[[package]] -name = "openvm-macros-common" -version = "1.2.0" -source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.2.0#8094b4f5a4000f0d75d93cfcd6690fd3174325af" -dependencies = [ - "syn 2.0.100", -] - -[[package]] -name = "openvm-mod-circuit-builder" -version = "1.2.0" -source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.2.0#8094b4f5a4000f0d75d93cfcd6690fd3174325af" -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.2.0" -source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.2.0#8094b4f5a4000f0d75d93cfcd6690fd3174325af" -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 0.26.3", - "tracing", -] - -[[package]] -name = "openvm-native-compiler" -version = "1.2.0" -source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.2.0#8094b4f5a4000f0d75d93cfcd6690fd3174325af" -dependencies = [ - "backtrace", - "itertools 0.14.0", - "metrics 0.23.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 0.26.3", - "strum_macros 0.26.4", - "zkhash", -] - -[[package]] -name = "openvm-native-compiler-derive" -version = "1.2.0" -source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.2.0#8094b4f5a4000f0d75d93cfcd6690fd3174325af" -dependencies = [ - "quote", - "syn 2.0.100", -] - -[[package]] -name = "openvm-native-recursion" -version = "1.2.0" -source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.2.0#8094b4f5a4000f0d75d93cfcd6690fd3174325af" -dependencies = [ - "cfg-if", - "itertools 0.14.0", - "lazy_static", - "metrics 0.23.0", - "once_cell", - "openvm-circuit", - "openvm-native-circuit", - "openvm-native-compiler", - "openvm-native-compiler-derive", - "openvm-stark-backend", - "openvm-stark-sdk", - "p3-dft", - "p3-fri", - "p3-merkle-tree", - "p3-symmetric", - "rand 0.8.5", - "serde", - "serde_json", - "serde_with", - "snark-verifier-sdk", - "tracing", -] - -[[package]] -name = "openvm-pairing-circuit" -version = "1.2.0" -source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.2.0#8094b4f5a4000f0d75d93cfcd6690fd3174325af" -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 0.26.3", -] - -[[package]] -name = "openvm-pairing-guest" -version = "1.2.0" -source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.2.0#8094b4f5a4000f0d75d93cfcd6690fd3174325af" -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 0.26.4", -] - -[[package]] -name = "openvm-pairing-transpiler" -version = "1.2.0" -source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.2.0#8094b4f5a4000f0d75d93cfcd6690fd3174325af" -dependencies = [ - "openvm-instructions", - "openvm-instructions-derive", - "openvm-pairing-guest", - "openvm-stark-backend", - "openvm-transpiler", - "rrs-lib", - "strum 0.26.3", -] - -[[package]] -name = "openvm-platform" -version = "1.2.0" -source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.2.0#8094b4f5a4000f0d75d93cfcd6690fd3174325af" -dependencies = [ - "getrandom 0.2.15", - "libm", - "openvm-custom-insn", - "openvm-rv32im-guest", -] - -[[package]] -name = "openvm-poseidon2-air" -version = "1.2.0" -source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.2.0#8094b4f5a4000f0d75d93cfcd6690fd3174325af" -dependencies = [ - "derivative", - "lazy_static", - "openvm-stark-backend", - "openvm-stark-sdk", - "p3-monty-31", - "p3-poseidon2", - "p3-poseidon2-air", - "p3-symmetric", - "rand 0.8.5", - "zkhash", -] - -[[package]] -name = "openvm-rv32-adapters" -version = "1.2.0" -source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.2.0#8094b4f5a4000f0d75d93cfcd6690fd3174325af" -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.2.0" -source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.2.0#8094b4f5a4000f0d75d93cfcd6690fd3174325af" -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 0.26.3", -] - -[[package]] -name = "openvm-rv32im-guest" -version = "1.2.0" -source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.2.0#8094b4f5a4000f0d75d93cfcd6690fd3174325af" -dependencies = [ - "openvm-custom-insn", - "strum_macros 0.26.4", -] - -[[package]] -name = "openvm-rv32im-transpiler" -version = "1.2.0" -source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.2.0#8094b4f5a4000f0d75d93cfcd6690fd3174325af" -dependencies = [ - "openvm-instructions", - "openvm-instructions-derive", - "openvm-rv32im-guest", - "openvm-stark-backend", - "openvm-transpiler", - "rrs-lib", - "serde", - "strum 0.26.3", - "tracing", -] - -[[package]] -name = "openvm-sdk" -version = "1.2.0" -source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.2.0#8094b4f5a4000f0d75d93cfcd6690fd3174325af" -dependencies = [ - "async-trait", - "bitcode", - "bon", - "clap", - "derivative", - "derive_more 1.0.0", - "eyre", - "getset", - "hex", - "itertools 0.14.0", - "metrics 0.23.0", - "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", - "serde", - "serde_json", - "serde_with", - "snark-verifier", - "snark-verifier-sdk", - "tempfile", - "thiserror 1.0.69", - "tracing", -] - -[[package]] -name = "openvm-sha256-air" -version = "1.2.0" -source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.2.0#8094b4f5a4000f0d75d93cfcd6690fd3174325af" -dependencies = [ - "openvm-circuit-primitives", - "openvm-stark-backend", - "rand 0.8.5", - "sha2", -] - -[[package]] -name = "openvm-sha256-circuit" -version = "1.2.0" -source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.2.0#8094b4f5a4000f0d75d93cfcd6690fd3174325af" -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 0.26.3", -] - -[[package]] -name = "openvm-sha256-guest" -version = "1.2.0" -source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.2.0#8094b4f5a4000f0d75d93cfcd6690fd3174325af" -dependencies = [ - "openvm-platform", - "sha2", -] - -[[package]] -name = "openvm-sha256-transpiler" -version = "1.2.0" -source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.2.0#8094b4f5a4000f0d75d93cfcd6690fd3174325af" -dependencies = [ - "openvm-instructions", - "openvm-instructions-derive", - "openvm-sha256-guest", - "openvm-stark-backend", - "openvm-transpiler", - "rrs-lib", - "strum 0.26.3", -] - -[[package]] -name = "openvm-stark-backend" -version = "1.1.0" -source = "git+ssh://git@github.com/scroll-tech/openvm-stark-gpu.git?branch=main#308223401cab827f931cb5939be0620a8ba83875" -dependencies = [ - "bitcode", - "cfg-if", - "derivative", - "derive-new 0.7.0", - "itertools 0.14.0", - "metrics 0.23.0", - "p3-air", - "p3-challenger", - "p3-commit", - "p3-field", - "p3-gpu-backend", - "p3-gpu-base", - "p3-gpu-module", - "p3-matrix", - "p3-maybe-rayon", - "p3-uni-stark", - "p3-util", - "rayon", - "rustc-hash 2.1.1", - "serde", - "thiserror 1.0.69", - "tracing", -] - -[[package]] -name = "openvm-stark-sdk" -version = "1.1.0" -source = "git+ssh://git@github.com/scroll-tech/openvm-stark-gpu.git?branch=main#308223401cab827f931cb5939be0620a8ba83875" -dependencies = [ - "derivative", - "derive_more 0.99.19", - "ff 0.13.1", - "itertools 0.14.0", - "metrics 0.23.0", - "metrics-tracing-context", - "metrics-util", - "openvm-stark-backend", - "p3-baby-bear", - "p3-blake3", - "p3-bn254-fr", - "p3-dft", - "p3-fri", - "p3-goldilocks", - "p3-gpu-backend", - "p3-keccak", - "p3-koala-bear", - "p3-merkle-tree", - "p3-poseidon", - "p3-poseidon2", - "p3-symmetric", - "rand 0.8.5", - "serde", - "serde_json", - "static_assertions", - "toml", - "tracing", - "tracing-forest", - "tracing-subscriber", - "zkhash", -] - -[[package]] -name = "openvm-transpiler" -version = "1.2.0" -source = "git+ssh://git@github.com/scroll-tech/openvm-gpu.git?branch=patch-v1.2.0#8094b4f5a4000f0d75d93cfcd6690fd3174325af" -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" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" - -[[package]] -name = "p256" -version = "0.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9863ad85fa8f4460f9c48cb909d38a0d689dba1f6f6988a5e3e0d31071bcd4b" -dependencies = [ - "ecdsa", - "elliptic-curve", - "primeorder", - "sha2", -] - -[[package]] -name = "p3-air" -version = "0.1.0" -source = "git+ssh://git@github.com/scroll-tech/plonky3-gpu.git?tag=v0.2.0#261b322c885fdc3e340fc91db12f96c11cc3b00e" -dependencies = [ - "p3-field", - "p3-matrix", -] - -[[package]] -name = "p3-baby-bear" -version = "0.1.0" -source = "git+ssh://git@github.com/scroll-tech/plonky3-gpu.git?tag=v0.2.0#261b322c885fdc3e340fc91db12f96c11cc3b00e" -dependencies = [ - "p3-field", - "p3-mds", - "p3-monty-31", - "p3-poseidon2", - "p3-symmetric", - "rand 0.8.5", - "serde", -] - -[[package]] -name = "p3-blake3" -version = "0.1.0" -source = "git+ssh://git@github.com/scroll-tech/plonky3-gpu.git?tag=v0.2.0#261b322c885fdc3e340fc91db12f96c11cc3b00e" -dependencies = [ - "blake3", - "p3-symmetric", - "p3-util", -] - -[[package]] -name = "p3-bn254-fr" -version = "0.1.0" -source = "git+ssh://git@github.com/scroll-tech/plonky3-gpu.git?tag=v0.2.0#261b322c885fdc3e340fc91db12f96c11cc3b00e" -dependencies = [ - "ff 0.13.1", - "halo2curves", - "num-bigint 0.4.6", - "p3-field", - "p3-poseidon2", - "p3-symmetric", - "rand 0.8.5", - "serde", -] - -[[package]] -name = "p3-challenger" -version = "0.1.0" -source = "git+ssh://git@github.com/scroll-tech/plonky3-gpu.git?tag=v0.2.0#261b322c885fdc3e340fc91db12f96c11cc3b00e" -dependencies = [ - "p3-field", - "p3-maybe-rayon", - "p3-symmetric", - "p3-util", - "tracing", -] - -[[package]] -name = "p3-commit" -version = "0.1.0" -source = "git+ssh://git@github.com/scroll-tech/plonky3-gpu.git?tag=v0.2.0#261b322c885fdc3e340fc91db12f96c11cc3b00e" -dependencies = [ - "anyhow", - "itertools 0.14.0", - "p3-challenger", - "p3-dft", - "p3-field", - "p3-gpu-base", - "p3-matrix", - "p3-util", - "serde", -] - -[[package]] -name = "p3-dft" -version = "0.1.0" -source = "git+ssh://git@github.com/scroll-tech/plonky3-gpu.git?tag=v0.2.0#261b322c885fdc3e340fc91db12f96c11cc3b00e" -dependencies = [ - "itertools 0.14.0", - "p3-field", - "p3-matrix", - "p3-maybe-rayon", - "p3-util", - "tracing", -] - -[[package]] -name = "p3-field" -version = "0.1.0" -source = "git+ssh://git@github.com/scroll-tech/plonky3-gpu.git?tag=v0.2.0#261b322c885fdc3e340fc91db12f96c11cc3b00e" -dependencies = [ - "itertools 0.14.0", - "num-bigint 0.4.6", - "num-integer", - "num-traits", - "nums", - "p3-maybe-rayon", - "p3-util", - "rand 0.8.5", - "serde", - "tracing", -] - -[[package]] -name = "p3-fri" -version = "0.1.0" -source = "git+ssh://git@github.com/scroll-tech/plonky3-gpu.git?tag=v0.2.0#261b322c885fdc3e340fc91db12f96c11cc3b00e" -dependencies = [ - "anyhow", - "itertools 0.14.0", - "p3-challenger", - "p3-commit", - "p3-dft", - "p3-field", - "p3-gpu-backend", - "p3-gpu-base", - "p3-interpolation", - "p3-matrix", - "p3-maybe-rayon", - "p3-merkle-tree", - "p3-util", - "rand 0.8.5", - "serde", - "tracing", - "zkhash", -] - -[[package]] -name = "p3-goldilocks" -version = "0.1.0" -source = "git+ssh://git@github.com/scroll-tech/plonky3-gpu.git?tag=v0.2.0#261b322c885fdc3e340fc91db12f96c11cc3b00e" -dependencies = [ - "num-bigint 0.4.6", - "p3-dft", - "p3-field", - "p3-mds", - "p3-poseidon", - "p3-poseidon2", - "p3-symmetric", - "p3-util", - "rand 0.8.5", - "serde", -] - -[[package]] -name = "p3-gpu-backend" -version = "0.1.0" -source = "git+ssh://git@github.com/scroll-tech/plonky3-gpu.git?tag=v0.2.0#261b322c885fdc3e340fc91db12f96c11cc3b00e" -dependencies = [ - "anyhow", - "bytemuck", - "cc", - "cust", - "cust_raw", - "ff 0.13.1", - "itertools 0.13.0", - "lazy_static", - "ndarray", - "once_cell", - "p3-baby-bear", - "p3-commit", - "p3-dft", - "p3-field", - "p3-gpu-base", - "p3-gpu-build", - "p3-interpolation", - "p3-matrix", - "p3-maybe-rayon", - "p3-poseidon2", - "p3-util", - "parking_lot 0.12.3", - "paste", - "rand 0.8.5", - "rand_core 0.6.4", - "rayon", - "serde", - "sppark", - "tracing", - "transpose", -] - -[[package]] -name = "p3-gpu-base" -version = "0.1.0" -source = "git+ssh://git@github.com/scroll-tech/plonky3-gpu.git?tag=v0.2.0#261b322c885fdc3e340fc91db12f96c11cc3b00e" -dependencies = [ - "anyhow", - "bytemuck", - "cust", - "cust_raw", - "hex", - "lazy_static", - "p3-field", - "p3-matrix", - "parking_lot 0.12.3", - "tracing", -] - -[[package]] -name = "p3-gpu-build" -version = "0.1.0" -source = "git+ssh://git@github.com/scroll-tech/plonky3-gpu.git?tag=v0.2.0#261b322c885fdc3e340fc91db12f96c11cc3b00e" -dependencies = [ - "cc", - "directories", - "hex", - "p3-gpu-field", - "sha2", - "tempfile", -] - -[[package]] -name = "p3-gpu-field" -version = "0.1.0" -source = "git+ssh://git@github.com/scroll-tech/plonky3-gpu.git?tag=v0.2.0#261b322c885fdc3e340fc91db12f96c11cc3b00e" - -[[package]] -name = "p3-gpu-module" -version = "0.1.0" -source = "git+ssh://git@github.com/scroll-tech/plonky3-gpu.git?tag=v0.2.0#261b322c885fdc3e340fc91db12f96c11cc3b00e" -dependencies = [ - "itertools 0.14.0", - "p3-field", - "p3-gpu-base", - "p3-matrix", - "p3-util", - "tracing", -] - -[[package]] -name = "p3-interpolation" -version = "0.1.0" -source = "git+ssh://git@github.com/scroll-tech/plonky3-gpu.git?tag=v0.2.0#261b322c885fdc3e340fc91db12f96c11cc3b00e" -dependencies = [ - "p3-field", - "p3-matrix", - "p3-maybe-rayon", - "p3-util", -] - -[[package]] -name = "p3-keccak" -version = "0.1.0" -source = "git+ssh://git@github.com/scroll-tech/plonky3-gpu.git?tag=v0.2.0#261b322c885fdc3e340fc91db12f96c11cc3b00e" -dependencies = [ - "itertools 0.14.0", - "p3-field", - "p3-symmetric", - "p3-util", - "tiny-keccak", -] - -[[package]] -name = "p3-keccak-air" -version = "0.1.0" -source = "git+ssh://git@github.com/scroll-tech/plonky3-gpu.git?tag=v0.2.0#261b322c885fdc3e340fc91db12f96c11cc3b00e" -dependencies = [ - "p3-air", - "p3-field", - "p3-gpu-backend", - "p3-matrix", - "p3-maybe-rayon", - "p3-util", - "rand 0.8.5", - "tracing", - "zkhash", -] - -[[package]] -name = "p3-koala-bear" -version = "0.1.0" -source = "git+ssh://git@github.com/scroll-tech/plonky3-gpu.git?tag=v0.2.0#261b322c885fdc3e340fc91db12f96c11cc3b00e" -dependencies = [ - "p3-field", - "p3-mds", - "p3-monty-31", - "p3-poseidon2", - "p3-symmetric", - "rand 0.8.5", - "serde", -] - -[[package]] -name = "p3-matrix" -version = "0.1.0" -source = "git+ssh://git@github.com/scroll-tech/plonky3-gpu.git?tag=v0.2.0#261b322c885fdc3e340fc91db12f96c11cc3b00e" -dependencies = [ - "itertools 0.14.0", - "p3-field", - "p3-maybe-rayon", - "p3-util", - "rand 0.8.5", - "serde", - "tracing", - "transpose", -] - -[[package]] -name = "p3-maybe-rayon" -version = "0.1.0" -source = "git+ssh://git@github.com/scroll-tech/plonky3-gpu.git?tag=v0.2.0#261b322c885fdc3e340fc91db12f96c11cc3b00e" -dependencies = [ - "rayon", -] - -[[package]] -name = "p3-mds" -version = "0.1.0" -source = "git+ssh://git@github.com/scroll-tech/plonky3-gpu.git?tag=v0.2.0#261b322c885fdc3e340fc91db12f96c11cc3b00e" -dependencies = [ - "itertools 0.14.0", - "p3-dft", - "p3-field", - "p3-matrix", - "p3-symmetric", - "p3-util", - "rand 0.8.5", -] - -[[package]] -name = "p3-merkle-tree" -version = "0.1.0" -source = "git+ssh://git@github.com/scroll-tech/plonky3-gpu.git?tag=v0.2.0#261b322c885fdc3e340fc91db12f96c11cc3b00e" -dependencies = [ - "anyhow", - "itertools 0.14.0", - "p3-commit", - "p3-field", - "p3-gpu-base", - "p3-matrix", - "p3-maybe-rayon", - "p3-symmetric", - "p3-util", - "rand 0.8.5", - "serde", - "tracing", -] - -[[package]] -name = "p3-monty-31" -version = "0.1.0" -source = "git+ssh://git@github.com/scroll-tech/plonky3-gpu.git?tag=v0.2.0#261b322c885fdc3e340fc91db12f96c11cc3b00e" -dependencies = [ - "itertools 0.14.0", - "num-bigint 0.4.6", - "p3-dft", - "p3-field", - "p3-matrix", - "p3-maybe-rayon", - "p3-mds", - "p3-poseidon2", - "p3-symmetric", - "p3-util", - "rand 0.8.5", - "serde", - "tracing", - "transpose", -] - -[[package]] -name = "p3-poseidon" -version = "0.1.0" -source = "git+ssh://git@github.com/scroll-tech/plonky3-gpu.git?tag=v0.2.0#261b322c885fdc3e340fc91db12f96c11cc3b00e" -dependencies = [ - "p3-field", - "p3-mds", - "p3-symmetric", - "rand 0.8.5", -] - -[[package]] -name = "p3-poseidon2" -version = "0.1.0" -source = "git+ssh://git@github.com/scroll-tech/plonky3-gpu.git?tag=v0.2.0#261b322c885fdc3e340fc91db12f96c11cc3b00e" -dependencies = [ - "gcd", - "p3-field", - "p3-mds", - "p3-symmetric", - "rand 0.8.5", -] - -[[package]] -name = "p3-poseidon2-air" -version = "0.1.0" -source = "git+ssh://git@github.com/scroll-tech/plonky3-gpu.git?tag=v0.2.0#261b322c885fdc3e340fc91db12f96c11cc3b00e" -dependencies = [ - "p3-air", - "p3-field", - "p3-matrix", - "p3-maybe-rayon", - "p3-poseidon2", - "p3-util", - "rand 0.8.5", - "tikv-jemallocator", - "tracing", -] - -[[package]] -name = "p3-symmetric" -version = "0.1.0" -source = "git+ssh://git@github.com/scroll-tech/plonky3-gpu.git?tag=v0.2.0#261b322c885fdc3e340fc91db12f96c11cc3b00e" -dependencies = [ - "itertools 0.14.0", - "p3-field", - "serde", -] - -[[package]] -name = "p3-uni-stark" -version = "0.1.0" -source = "git+ssh://git@github.com/scroll-tech/plonky3-gpu.git?tag=v0.2.0#261b322c885fdc3e340fc91db12f96c11cc3b00e" -dependencies = [ - "itertools 0.14.0", - "p3-air", - "p3-challenger", - "p3-commit", - "p3-dft", - "p3-field", - "p3-matrix", - "p3-maybe-rayon", - "p3-util", - "serde", - "tracing", -] - -[[package]] -name = "p3-util" -version = "0.1.0" -source = "git+ssh://git@github.com/scroll-tech/plonky3-gpu.git?tag=v0.2.0#261b322c885fdc3e340fc91db12f96c11cc3b00e" -dependencies = [ - "serde", -] - -[[package]] -name = "pairing" -version = "0.22.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "135590d8bdba2b31346f9cd1fb2a912329f5135e832a4f422942eb6ead8b6b3b" -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" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9fde3d0718baf5bc92f577d652001da0f8d54cd03a7974e118d04fc888dc23d" -dependencies = [ - "arrayvec", - "bitvec", - "byte-slice-cast", - "bytes", - "const_format", - "impl-trait-for-tuples", - "parity-scale-codec-derive", - "rustversion", - "serde", -] - -[[package]] -name = "parity-scale-codec-derive" -version = "3.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "581c837bb6b9541ce7faa9377c20616e4fb7650f6b0f68bc93c827ee504fb7b3" -dependencies = [ - "proc-macro-crate 3.3.0", - "proc-macro2", - "quote", - "syn 2.0.100", -] - -[[package]] -name = "parking_lot" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99" -dependencies = [ - "instant", - "lock_api", - "parking_lot_core 0.8.6", -] - -[[package]] -name = "parking_lot" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" -dependencies = [ - "lock_api", - "parking_lot_core 0.9.10", -] - -[[package]] -name = "parking_lot_core" -version = "0.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60a2cfe6f0ad2bfc16aefa463b497d5c7a5ecd44a23efa72aa342d90177356dc" -dependencies = [ - "cfg-if", - "instant", - "libc", - "redox_syscall 0.2.16", - "smallvec", - "winapi", -] - -[[package]] -name = "parking_lot_core" -version = "0.9.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" -dependencies = [ - "cfg-if", - "libc", - "redox_syscall 0.5.11", - "smallvec", - "windows-targets 0.52.6", -] - -[[package]] -name = "pasta_curves" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5cc65faf8e7313b4b1fbaa9f7ca917a0eed499a9663be71477f87993604341d8" -dependencies = [ - "blake2b_simd", - "ff 0.12.1", - "group 0.12.1", - "lazy_static", - "rand 0.8.5", - "static_assertions", - "subtle", -] - -[[package]] -name = "pasta_curves" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3e57598f73cc7e1b2ac63c79c517b31a0877cd7c402cdcaa311b5208de7a095" -dependencies = [ - "blake2b_simd", - "ff 0.13.1", - "group 0.13.0", - "lazy_static", - "rand 0.8.5", - "static_assertions", - "subtle", -] - -[[package]] -name = "paste" -version = "1.0.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" - -[[package]] -name = "pbkdf2" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83a0692ec44e4cf1ef28ca317f14f8f07da2d95ec3fa01f86e4467b725e60917" -dependencies = [ - "digest 0.10.7", -] - -[[package]] -name = "percent-encoding" -version = "2.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" - -[[package]] -name = "pest" -version = "2.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "198db74531d58c70a361c42201efde7e2591e976d518caf7662a47dc5720e7b6" -dependencies = [ - "memchr", - "thiserror 2.0.12", - "ucd-trie", -] - -[[package]] -name = "pharos" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9567389417feee6ce15dd6527a8a1ecac205ef62c2932bcf3d9f6fc5b78b414" -dependencies = [ - "futures", - "rustc_version 0.4.1", -] - -[[package]] -name = "pin-project" -version = "1.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677f1add503faace112b9f1373e43e9e054bfdd22ff1a63c1bc485eaec6a6a8a" -dependencies = [ - "pin-project-internal", -] - -[[package]] -name = "pin-project-internal" -version = "1.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.100", -] - -[[package]] -name = "pin-project-lite" -version = "0.2.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" - -[[package]] -name = "pin-utils" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" - -[[package]] -name = "pkcs8" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" -dependencies = [ - "der", - "spki", -] - -[[package]] -name = "pkg-config" -version = "0.3.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" - -[[package]] -name = "portable-atomic" -version = "1.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "350e9b48cbc6b0e028b0473b114454c6316e57336ee184ceab6e53f72c178b3e" - -[[package]] -name = "portable-atomic-util" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8a2f0d8d040d7848a709caf78912debcc3f33ee4b3cac47d73d1e1069e83507" -dependencies = [ - "portable-atomic", -] - -[[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 = "powerfmt" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" - -[[package]] -name = "ppv-lite86" -version = "0.2.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" -dependencies = [ - "zerocopy 0.8.24", -] - -[[package]] -name = "prettyplease" -version = "0.2.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "664ec5419c51e34154eec046ebcba56312d5a2fc3b09a06da188e1ad21afadf6" -dependencies = [ - "proc-macro2", - "syn 2.0.100", -] - -[[package]] -name = "primeorder" -version = "0.13.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "353e1ca18966c16d9deb1c69278edbc5f194139612772bd9537af60ac231e1e6" -dependencies = [ - "elliptic-curve", -] - -[[package]] -name = "primitive-types" -version = "0.12.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b34d9fd68ae0b74a41b21c03c2f62847aa0ffea044eee893b4c140b37e244e2" -dependencies = [ - "fixed-hash", - "impl-codec", - "impl-rlp", - "impl-serde", - "scale-info", - "uint", -] - -[[package]] -name = "proc-macro-crate" -version = "1.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" -dependencies = [ - "once_cell", - "toml_edit 0.19.15", -] - -[[package]] -name = "proc-macro-crate" -version = "3.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edce586971a4dfaa28950c6f18ed55e0406c1ab88bbce2c6f6293a7aaba73d35" -dependencies = [ - "toml_edit 0.22.24", -] - -[[package]] -name = "proc-macro-error-attr2" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96de42df36bb9bba5542fe9f1a054b8cc87e172759a1868aa05c1f3acc89dfc5" -dependencies = [ - "proc-macro2", - "quote", -] - -[[package]] -name = "proc-macro-error2" -version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11ec05c52be0a07b08061f7dd003e7d7092e0472bc731b4af7bb1ef876109802" -dependencies = [ - "proc-macro-error-attr2", - "proc-macro2", - "quote", - "syn 2.0.100", -] - -[[package]] -name = "proc-macro2" -version = "1.0.94" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a31971752e70b8b2686d7e46ec17fb38dad4051d94024c88df49b667caea9c84" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "proptest" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14cae93065090804185d3b75f0bf93b8eeda30c7a9b4a33d3bdb3988d6229e50" -dependencies = [ - "bit-set", - "bit-vec", - "bitflags 2.9.0", - "lazy_static", - "num-traits", - "rand 0.8.5", - "rand_chacha 0.3.1", - "rand_xorshift", - "regex-syntax 0.8.5", - "rusty-fork", - "tempfile", - "unarray", -] - -[[package]] -name = "prover" -version = "0.1.0" -dependencies = [ - "anyhow", - "async-trait", - "base64 0.13.1", - "clap", - "ctor", - "env_logger", - "eth-keystore", - "ethers-core", - "ethers-providers", - "futures", - "hex", - "http 1.3.1", - "log", - "once_cell", - "rand 0.8.5", - "reqwest 0.12.15", - "reqwest-middleware", - "reqwest-retry", - "rlp", - "sbv-primitives", - "scroll-proving-sdk", - "scroll-zkvm-prover", - "serde", - "serde_bytes", - "serde_json", - "sled", - "tiny-keccak", - "tokio", - "url", -] - -[[package]] -name = "psm" -version = "0.1.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f58e5423e24c18cc840e1c98370b3993c6649cd1678b4d24318bcf0a083cbe88" -dependencies = [ - "cc", -] - -[[package]] -name = "ptr_meta" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe9e76f66d3f9606f44e45598d155cb13ecf09f4a28199e48daf8c8fc937ea90" -dependencies = [ - "ptr_meta_derive", -] - -[[package]] -name = "ptr_meta_derive" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca414edb151b4c8d125c12566ab0d74dc9cdba36fb80eb7b848c15f495fd32d1" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.100", -] - -[[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" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" - -[[package]] -name = "quinn" -version = "0.11.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3bd15a6f2967aef83887dcb9fec0014580467e33720d073560cf015a5683012" -dependencies = [ - "bytes", - "cfg_aliases", - "pin-project-lite", - "quinn-proto", - "quinn-udp", - "rustc-hash 2.1.1", - "rustls 0.23.26", - "socket2", - "thiserror 2.0.12", - "tokio", - "tracing", - "web-time", -] - -[[package]] -name = "quinn-proto" -version = "0.11.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b820744eb4dc9b57a3398183639c511b5a26d2ed702cedd3febaa1393caa22cc" -dependencies = [ - "bytes", - "getrandom 0.3.2", - "rand 0.9.0", - "ring 0.17.14", - "rustc-hash 2.1.1", - "rustls 0.23.26", - "rustls-pki-types", - "slab", - "thiserror 2.0.12", - "tinyvec", - "tracing", - "web-time", -] - -[[package]] -name = "quinn-udp" -version = "0.5.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "541d0f57c6ec747a90738a52741d3221f7960e8ac2f0ff4b1a63680e033b4ab5" -dependencies = [ - "cfg_aliases", - "libc", - "once_cell", - "socket2", - "tracing", - "windows-sys 0.59.0", -] - -[[package]] -name = "quote" -version = "1.0.40" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d" -dependencies = [ - "proc-macro2", -] - -[[package]] -name = "r-efi" -version = "5.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74765f6d916ee2faa39bc8e68e4f3ed8949b48cccdac59983d287a7cb71ce9c5" - -[[package]] -name = "radium" -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 = "rancor" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "caf5f7161924b9d1cea0e4cabc97c372cea92b5f927fc13c6bca67157a0ad947" -dependencies = [ - "ptr_meta", -] - -[[package]] -name = "rand" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" -dependencies = [ - "libc", - "rand_chacha 0.3.1", - "rand_core 0.6.4", - "serde", -] - -[[package]] -name = "rand" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3779b94aeb87e8bd4e834cee3650289ee9e0d5677f976ecdb6d219e5f4f6cd94" -dependencies = [ - "rand_chacha 0.9.0", - "rand_core 0.9.3", - "zerocopy 0.8.24", -] - -[[package]] -name = "rand_chacha" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" -dependencies = [ - "ppv-lite86", - "rand_core 0.6.4", -] - -[[package]] -name = "rand_chacha" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" -dependencies = [ - "ppv-lite86", - "rand_core 0.9.3", -] - -[[package]] -name = "rand_core" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" -dependencies = [ - "getrandom 0.2.15", -] - -[[package]] -name = "rand_core" -version = "0.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" -dependencies = [ - "getrandom 0.3.2", -] - -[[package]] -name = "rand_xorshift" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d25bf25ec5ae4a3f1b92f929810509a2f53d7dca2f50b794ff57e3face536c8f" -dependencies = [ - "rand_core 0.6.4", -] - -[[package]] -name = "raw-cpuid" -version = "11.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6df7ab838ed27997ba19a4664507e6f82b41fe6e20be42929332156e5e85146" -dependencies = [ - "bitflags 2.9.0", -] - -[[package]] -name = "rawpointer" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3" - -[[package]] -name = "rayon" -version = "1.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa" -dependencies = [ - "either", - "rayon-core", -] - -[[package]] -name = "rayon-core" -version = "1.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2" -dependencies = [ - "crossbeam-deque", - "crossbeam-utils", -] - -[[package]] -name = "redox_syscall" -version = "0.2.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" -dependencies = [ - "bitflags 1.3.2", -] - -[[package]] -name = "redox_syscall" -version = "0.5.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2f103c6d277498fbceb16e84d317e2a400f160f46904d5f5410848c829511a3" -dependencies = [ - "bitflags 2.9.0", -] - -[[package]] -name = "redox_users" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43" -dependencies = [ - "getrandom 0.2.15", - "libredox", - "thiserror 1.0.69", -] - -[[package]] -name = "regex" -version = "1.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191" -dependencies = [ - "aho-corasick", - "memchr", - "regex-automata 0.4.9", - "regex-syntax 0.8.5", -] - -[[package]] -name = "regex-automata" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" -dependencies = [ - "regex-syntax 0.6.29", -] - -[[package]] -name = "regex-automata" -version = "0.4.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908" -dependencies = [ - "aho-corasick", - "memchr", - "regex-syntax 0.8.5", -] - -[[package]] -name = "regex-syntax" -version = "0.6.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" - -[[package]] -name = "regex-syntax" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" - -[[package]] -name = "rend" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a35e8a6bf28cd121053a66aa2e6a2e3eaffad4a60012179f0e864aa5ffeff215" -dependencies = [ - "bytecheck", -] - -[[package]] -name = "reqwest" -version = "0.11.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd67538700a17451e7cba03ac727fb961abb7607553461627b97de0b89cf4a62" -dependencies = [ - "base64 0.21.7", - "bytes", - "encoding_rs", - "futures-core", - "futures-util", - "h2 0.3.26", - "http 0.2.12", - "http-body 0.4.6", - "hyper 0.14.32", - "hyper-rustls 0.24.2", - "ipnet", - "js-sys", - "log", - "mime", - "once_cell", - "percent-encoding", - "pin-project-lite", - "rustls 0.21.12", - "rustls-pemfile 1.0.4", - "serde", - "serde_json", - "serde_urlencoded", - "sync_wrapper 0.1.2", - "system-configuration 0.5.1", - "tokio", - "tokio-rustls 0.24.1", - "tower-service", - "url", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", - "webpki-roots 0.25.4", - "winreg", -] - -[[package]] -name = "reqwest" -version = "0.12.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d19c46a6fdd48bc4dab94b6103fccc55d34c67cc0ad04653aad4ea2a07cd7bbb" -dependencies = [ - "async-compression", - "base64 0.22.1", - "bytes", - "encoding_rs", - "futures-channel", - "futures-core", - "futures-util", - "h2 0.4.8", - "http 1.3.1", - "http-body 1.0.1", - "http-body-util", - "hyper 1.6.0", - "hyper-rustls 0.27.5", - "hyper-tls", - "hyper-util", - "ipnet", - "js-sys", - "log", - "mime", - "native-tls", - "once_cell", - "percent-encoding", - "pin-project-lite", - "quinn", - "rustls 0.23.26", - "rustls-pemfile 2.2.0", - "rustls-pki-types", - "serde", - "serde_json", - "serde_urlencoded", - "sync_wrapper 1.0.2", - "system-configuration 0.6.1", - "tokio", - "tokio-native-tls", - "tokio-rustls 0.26.2", - "tokio-util", - "tower 0.5.2", - "tower-service", - "url", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", - "webpki-roots 0.26.8", - "windows-registry", -] - -[[package]] -name = "reqwest-middleware" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "562ceb5a604d3f7c885a792d42c199fd8af239d0a51b2fa6a78aafa092452b04" -dependencies = [ - "anyhow", - "async-trait", - "http 1.3.1", - "reqwest 0.12.15", - "serde", - "thiserror 1.0.69", - "tower-service", -] - -[[package]] -name = "reqwest-retry" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40f342894422862af74c50e1e9601cf0931accc9c6981e5eb413c46603b616b5" -dependencies = [ - "anyhow", - "async-trait", - "chrono", - "futures", - "getrandom 0.2.15", - "http 1.3.1", - "hyper 1.6.0", - "parking_lot 0.11.2", - "reqwest 0.12.15", - "reqwest-middleware", - "retry-policies", - "tokio", - "tracing", - "wasm-timer", -] - -[[package]] -name = "reth-chainspec" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth?branch=zkvm%2Feuclid-upgrade#6009111704d286ed6c737fe78dca09d613be0352" -dependencies = [ - "alloy-chains", - "alloy-consensus", - "alloy-eips", - "alloy-genesis", - "alloy-primitives", - "alloy-trie", - "auto_impl", - "derive_more 1.0.0", - "reth-ethereum-forks", - "reth-network-peers", - "reth-primitives-traits", - "serde_json", -] - -[[package]] -name = "reth-codecs" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth?branch=zkvm%2Feuclid-upgrade#6009111704d286ed6c737fe78dca09d613be0352" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-genesis", - "alloy-primitives", - "alloy-trie", - "bytes", - "modular-bitfield", - "op-alloy-consensus", - "reth-codecs-derive", - "serde", -] - -[[package]] -name = "reth-codecs-derive" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth?branch=zkvm%2Feuclid-upgrade#6009111704d286ed6c737fe78dca09d613be0352" -dependencies = [ - "convert_case 0.6.0", - "proc-macro2", - "quote", - "syn 2.0.100", -] - -[[package]] -name = "reth-consensus" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth?branch=zkvm%2Feuclid-upgrade#6009111704d286ed6c737fe78dca09d613be0352" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives", - "auto_impl", - "derive_more 1.0.0", - "reth-primitives-traits", -] - -[[package]] -name = "reth-consensus-common" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth?branch=zkvm%2Feuclid-upgrade#6009111704d286ed6c737fe78dca09d613be0352" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives", - "reth-chainspec", - "reth-consensus", - "reth-primitives-traits", -] - -[[package]] -name = "reth-db" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth?branch=zkvm%2Feuclid-upgrade#6009111704d286ed6c737fe78dca09d613be0352" -dependencies = [ - "alloy-consensus", - "alloy-primitives", - "bytes", - "derive_more 1.0.0", - "reth-db-api", - "reth-fs-util", - "reth-nippy-jar", - "reth-primitives", - "reth-primitives-traits", - "reth-prune-types", - "reth-stages-types", - "reth-storage-errors", - "reth-tracing", - "reth-trie-common", - "serde", - "sysinfo", - "thiserror 2.0.12", -] - -[[package]] -name = "reth-db-api" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth?branch=zkvm%2Feuclid-upgrade#6009111704d286ed6c737fe78dca09d613be0352" -dependencies = [ - "alloy-consensus", - "alloy-genesis", - "alloy-primitives", - "bytes", - "derive_more 1.0.0", - "metrics 0.24.1", - "modular-bitfield", - "parity-scale-codec", - "reth-codecs", - "reth-db-models", - "reth-primitives", - "reth-primitives-traits", - "reth-prune-types", - "reth-stages-types", - "reth-storage-errors", - "reth-trie-common", - "roaring", - "serde", -] - -[[package]] -name = "reth-db-models" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth?branch=zkvm%2Feuclid-upgrade#6009111704d286ed6c737fe78dca09d613be0352" -dependencies = [ - "alloy-eips", - "alloy-primitives", - "bytes", - "modular-bitfield", - "reth-codecs", - "reth-primitives-traits", - "serde", -] - -[[package]] -name = "reth-ethereum-consensus" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth?branch=zkvm%2Feuclid-upgrade#6009111704d286ed6c737fe78dca09d613be0352" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives", - "reth-chainspec", - "reth-consensus", - "reth-consensus-common", - "reth-primitives", - "reth-primitives-traits", - "tracing", -] - -[[package]] -name = "reth-ethereum-forks" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth?branch=zkvm%2Feuclid-upgrade#6009111704d286ed6c737fe78dca09d613be0352" -dependencies = [ - "alloy-chains", - "alloy-eip2124", - "alloy-primitives", - "auto_impl", - "dyn-clone", - "once_cell", - "rustc-hash 2.1.1", - "serde", -] - -[[package]] -name = "reth-ethereum-primitives" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth?branch=zkvm%2Feuclid-upgrade#6009111704d286ed6c737fe78dca09d613be0352" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives", - "alloy-rlp", - "alloy-serde 0.11.1", - "derive_more 1.0.0", - "modular-bitfield", - "reth-codecs", - "reth-primitives-traits", - "reth-zstd-compressors", - "revm-primitives 15.1.0", - "secp256k1", - "serde", -] - -[[package]] -name = "reth-evm" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth?branch=zkvm%2Feuclid-upgrade#6009111704d286ed6c737fe78dca09d613be0352" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives", - "auto_impl", - "futures-util", - "metrics 0.24.1", - "reth-chainspec", - "reth-consensus", - "reth-consensus-common", - "reth-execution-errors", - "reth-execution-types", - "reth-metrics", - "reth-primitives", - "reth-primitives-traits", - "reth-revm", - "reth-storage-errors", - "revm 19.4.0", - "revm-primitives 15.1.0", -] - -[[package]] -name = "reth-evm-ethereum" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth?branch=zkvm%2Feuclid-upgrade#6009111704d286ed6c737fe78dca09d613be0352" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives", - "alloy-sol-types", - "derive_more 1.0.0", - "reth-chainspec", - "reth-consensus", - "reth-ethereum-consensus", - "reth-ethereum-forks", - "reth-evm", - "reth-primitives", - "reth-primitives-traits", - "reth-revm", - "revm-primitives 15.1.0", -] - -[[package]] -name = "reth-execution-errors" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth?branch=zkvm%2Feuclid-upgrade#6009111704d286ed6c737fe78dca09d613be0352" -dependencies = [ - "alloy-eips", - "alloy-primitives", - "alloy-rlp", - "nybbles", - "reth-consensus", - "reth-storage-errors", - "thiserror 2.0.12", -] - -[[package]] -name = "reth-execution-types" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth?branch=zkvm%2Feuclid-upgrade#6009111704d286ed6c737fe78dca09d613be0352" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives", - "reth-execution-errors", - "reth-primitives", - "reth-primitives-traits", - "reth-trie", - "reth-trie-common", - "revm 19.4.0", - "serde", - "serde_with", -] - -[[package]] -name = "reth-fs-util" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth?branch=zkvm%2Feuclid-upgrade#6009111704d286ed6c737fe78dca09d613be0352" -dependencies = [ - "serde", - "serde_json", - "thiserror 2.0.12", -] - -[[package]] -name = "reth-metrics" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth?branch=zkvm%2Feuclid-upgrade#6009111704d286ed6c737fe78dca09d613be0352" -dependencies = [ - "metrics 0.24.1", - "metrics-derive", -] - -[[package]] -name = "reth-network-peers" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth?branch=zkvm%2Feuclid-upgrade#6009111704d286ed6c737fe78dca09d613be0352" -dependencies = [ - "alloy-primitives", - "alloy-rlp", - "secp256k1", - "serde_with", - "thiserror 2.0.12", - "url", -] - -[[package]] -name = "reth-nippy-jar" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth?branch=zkvm%2Feuclid-upgrade#6009111704d286ed6c737fe78dca09d613be0352" -dependencies = [ - "anyhow", - "bincode", - "derive_more 1.0.0", - "lz4_flex", - "memmap2", - "reth-fs-util", - "serde", - "thiserror 2.0.12", - "tracing", - "zstd", -] - -[[package]] -name = "reth-primitives" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth?branch=zkvm%2Feuclid-upgrade#6009111704d286ed6c737fe78dca09d613be0352" -dependencies = [ - "alloy-consensus", - "once_cell", - "reth-ethereum-forks", - "reth-ethereum-primitives", - "reth-primitives-traits", - "reth-static-file-types", -] - -[[package]] -name = "reth-primitives-traits" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth?branch=zkvm%2Feuclid-upgrade#6009111704d286ed6c737fe78dca09d613be0352" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-genesis", - "alloy-primitives", - "alloy-rlp", - "alloy-trie", - "auto_impl", - "byteorder", - "bytes", - "derive_more 1.0.0", - "k256", - "modular-bitfield", - "once_cell", - "op-alloy-consensus", - "reth-codecs", - "revm-precompile 16.0.0", - "revm-primitives 15.1.0", - "scroll-alloy-consensus", - "secp256k1", - "serde", - "serde_with", - "thiserror 2.0.12", -] - -[[package]] -name = "reth-prune-types" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth?branch=zkvm%2Feuclid-upgrade#6009111704d286ed6c737fe78dca09d613be0352" -dependencies = [ - "alloy-primitives", - "derive_more 1.0.0", - "modular-bitfield", - "reth-codecs", - "serde", - "thiserror 2.0.12", -] - -[[package]] -name = "reth-revm" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth?branch=zkvm%2Feuclid-upgrade#6009111704d286ed6c737fe78dca09d613be0352" -dependencies = [ - "alloy-eips", - "alloy-primitives", - "reth-ethereum-primitives", - "reth-primitives-traits", - "reth-storage-api", - "reth-storage-errors", - "reth-trie", - "revm 19.4.0", -] - -[[package]] -name = "reth-scroll-chainspec" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth?branch=zkvm%2Feuclid-upgrade#6009111704d286ed6c737fe78dca09d613be0352" -dependencies = [ - "alloy-chains", - "alloy-consensus", - "alloy-eips", - "alloy-genesis", - "alloy-primitives", - "alloy-serde 0.11.1", - "derive_more 1.0.0", - "once_cell", - "reth-chainspec", - "reth-ethereum-forks", - "reth-network-peers", - "reth-primitives-traits", - "reth-scroll-forks", - "reth-trie-common", - "serde", - "serde_json", -] - -[[package]] -name = "reth-scroll-consensus" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth?branch=zkvm%2Feuclid-upgrade#6009111704d286ed6c737fe78dca09d613be0352" -dependencies = [ - "revm 19.4.0", -] - -[[package]] -name = "reth-scroll-evm" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth?branch=zkvm%2Feuclid-upgrade#6009111704d286ed6c737fe78dca09d613be0352" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "derive_more 1.0.0", - "reth-chainspec", - "reth-consensus", - "reth-ethereum-consensus", - "reth-evm", - "reth-primitives", - "reth-primitives-traits", - "reth-revm", - "reth-scroll-chainspec", - "reth-scroll-consensus", - "reth-scroll-forks", - "reth-scroll-primitives", - "revm 19.4.0", - "revm-primitives 15.1.0", - "scroll-alloy-consensus", - "thiserror 2.0.12", - "tracing", -] - -[[package]] -name = "reth-scroll-forks" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth?branch=zkvm%2Feuclid-upgrade#6009111704d286ed6c737fe78dca09d613be0352" -dependencies = [ - "alloy-chains", - "alloy-primitives", - "once_cell", - "reth-ethereum-forks", - "serde", -] - -[[package]] -name = "reth-scroll-primitives" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth?branch=zkvm%2Feuclid-upgrade#6009111704d286ed6c737fe78dca09d613be0352" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives", - "alloy-rlp", - "bytes", - "derive_more 1.0.0", - "modular-bitfield", - "once_cell", - "proptest", - "rand 0.8.5", - "reth-codecs", - "reth-primitives-traits", - "reth-zstd-compressors", - "revm-primitives 15.1.0", - "scroll-alloy-consensus", - "secp256k1", - "serde", -] - -[[package]] -name = "reth-stages-types" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth?branch=zkvm%2Feuclid-upgrade#6009111704d286ed6c737fe78dca09d613be0352" -dependencies = [ - "alloy-primitives", - "bytes", - "modular-bitfield", - "reth-codecs", - "reth-trie-common", - "serde", -] - -[[package]] -name = "reth-static-file-types" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth?branch=zkvm%2Feuclid-upgrade#6009111704d286ed6c737fe78dca09d613be0352" -dependencies = [ - "alloy-primitives", - "derive_more 1.0.0", - "serde", - "strum 0.26.3", -] - -[[package]] -name = "reth-storage-api" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth?branch=zkvm%2Feuclid-upgrade#6009111704d286ed6c737fe78dca09d613be0352" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives", - "alloy-rpc-types-engine", - "auto_impl", - "reth-chainspec", - "reth-db", - "reth-db-api", - "reth-db-models", - "reth-execution-types", - "reth-primitives", - "reth-primitives-traits", - "reth-prune-types", - "reth-stages-types", - "reth-storage-errors", - "reth-trie", - "reth-trie-db", - "revm 19.4.0", -] - -[[package]] -name = "reth-storage-errors" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth?branch=zkvm%2Feuclid-upgrade#6009111704d286ed6c737fe78dca09d613be0352" -dependencies = [ - "alloy-eips", - "alloy-primitives", - "alloy-rlp", - "derive_more 1.0.0", - "reth-primitives-traits", - "reth-prune-types", - "reth-static-file-types", - "thiserror 2.0.12", -] - -[[package]] -name = "reth-tracing" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth?branch=zkvm%2Feuclid-upgrade#6009111704d286ed6c737fe78dca09d613be0352" -dependencies = [ - "clap", - "eyre", - "rolling-file", - "tracing", - "tracing-appender", - "tracing-journald", - "tracing-logfmt", - "tracing-subscriber", -] - -[[package]] -name = "reth-trie" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth?branch=zkvm%2Feuclid-upgrade#6009111704d286ed6c737fe78dca09d613be0352" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives", - "alloy-rlp", - "alloy-trie", - "auto_impl", - "itertools 0.13.0", - "reth-execution-errors", - "reth-primitives-traits", - "reth-stages-types", - "reth-storage-errors", - "reth-trie-common", - "reth-trie-sparse", - "revm 19.4.0", - "tracing", -] - -[[package]] -name = "reth-trie-common" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth?branch=zkvm%2Feuclid-upgrade#6009111704d286ed6c737fe78dca09d613be0352" -dependencies = [ - "alloy-consensus", - "alloy-primitives", - "alloy-rlp", - "alloy-rpc-types-eth", - "alloy-serde 0.11.1", - "alloy-trie", - "bytes", - "derive_more 1.0.0", - "itertools 0.13.0", - "nybbles", - "rayon", - "reth-codecs", - "reth-primitives-traits", - "revm 19.4.0", - "serde", - "serde_with", -] - -[[package]] -name = "reth-trie-db" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth?branch=zkvm%2Feuclid-upgrade#6009111704d286ed6c737fe78dca09d613be0352" -dependencies = [ - "alloy-primitives", - "alloy-rlp", - "derive_more 1.0.0", - "reth-db", - "reth-db-api", - "reth-execution-errors", - "reth-primitives-traits", - "reth-storage-errors", - "reth-trie", - "revm 19.4.0", - "tracing", -] - -[[package]] -name = "reth-trie-sparse" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth?branch=zkvm%2Feuclid-upgrade#6009111704d286ed6c737fe78dca09d613be0352" -dependencies = [ - "alloy-primitives", - "alloy-rlp", - "reth-execution-errors", - "reth-primitives-traits", - "reth-tracing", - "reth-trie-common", - "smallvec", - "thiserror 2.0.12", -] - -[[package]] -name = "reth-zstd-compressors" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth?branch=zkvm%2Feuclid-upgrade#6009111704d286ed6c737fe78dca09d613be0352" -dependencies = [ - "zstd", -] - -[[package]] -name = "retry-policies" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "493b4243e32d6eedd29f9a398896e35c6943a123b55eec97dcaee98310d25810" -dependencies = [ - "anyhow", - "chrono", - "rand 0.8.5", -] - -[[package]] -name = "revm" -version = "19.4.0" -source = "git+https://github.com/scroll-tech/revm?branch=scroll-evm-executor%2Ffeat%2Fv55%2Feuclid-upgrade#aa6d8a72a665f36f8f706e12dbb83139d9dce4f8" -dependencies = [ - "auto_impl", - "cfg-if", - "dyn-clone", - "revm-interpreter 15.1.0", - "revm-precompile 16.0.0", - "serde", - "serde_json", -] - -[[package]] -name = "revm" -version = "19.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c175ecec83bba464aa8406502fe5bf670491c2ace81a153264891d43bc7fa332" -dependencies = [ - "auto_impl", - "cfg-if", - "dyn-clone", - "revm-interpreter 15.2.0", - "revm-precompile 16.2.0", - "serde", - "serde_json", -] - -[[package]] -name = "revm-interpreter" -version = "15.1.0" -source = "git+https://github.com/scroll-tech/revm?branch=scroll-evm-executor%2Ffeat%2Fv55%2Feuclid-upgrade#aa6d8a72a665f36f8f706e12dbb83139d9dce4f8" -dependencies = [ - "revm-primitives 15.1.0", - "serde", -] - -[[package]] -name = "revm-interpreter" -version = "15.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7dcab7ef2064057acfc84731205f4bc77f4ec1b35630800b26ff6a185731c5ab" -dependencies = [ - "revm-primitives 15.2.0", - "serde", -] - -[[package]] -name = "revm-precompile" -version = "16.0.0" -source = "git+https://github.com/scroll-tech/revm?branch=scroll-evm-executor%2Ffeat%2Fv55%2Feuclid-upgrade#aa6d8a72a665f36f8f706e12dbb83139d9dce4f8" -dependencies = [ - "aurora-engine-modexp", - "c-kzg", - "cfg-if", - "k256", - "once_cell", - "p256", - "revm-primitives 15.1.0", - "ripemd", - "secp256k1", - "sha2", - "substrate-bn", -] - -[[package]] -name = "revm-precompile" -version = "16.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99743c3a2cac341084cc15ac74286c4bf34a0941ebf60aa420cfdb9f81f72f9f" -dependencies = [ - "aurora-engine-modexp", - "blst", - "c-kzg", - "cfg-if", - "k256", - "once_cell", - "revm-primitives 15.2.0", - "ripemd", - "secp256k1", - "sha2", - "substrate-bn", -] - -[[package]] -name = "revm-primitives" -version = "15.1.0" -source = "git+https://github.com/scroll-tech/revm?branch=scroll-evm-executor%2Ffeat%2Fv55%2Feuclid-upgrade#aa6d8a72a665f36f8f706e12dbb83139d9dce4f8" -dependencies = [ - "alloy-eip2930", - "alloy-eip7702", - "alloy-primitives", - "auto_impl", - "bitflags 2.9.0", - "bitvec", - "c-kzg", - "cfg-if", - "dyn-clone", - "enumn", - "hex", - "serde", -] - -[[package]] -name = "revm-primitives" -version = "15.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0f987564210317706def498421dfba2ae1af64a8edce82c6102758b48133fcb" -dependencies = [ - "alloy-eip2930", - "alloy-eip7702", - "alloy-primitives", - "auto_impl", - "bitflags 2.9.0", - "bitvec", - "c-kzg", - "cfg-if", - "dyn-clone", - "enumn", - "hex", - "serde", -] - -[[package]] -name = "rfc6979" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" -dependencies = [ - "hmac", - "subtle", -] - -[[package]] -name = "ring" -version = "0.16.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc" -dependencies = [ - "cc", - "libc", - "once_cell", - "spin 0.5.2", - "untrusted 0.7.1", - "web-sys", - "winapi", -] - -[[package]] -name = "ring" -version = "0.17.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7" -dependencies = [ - "cc", - "cfg-if", - "getrandom 0.2.15", - "libc", - "untrusted 0.9.0", - "windows-sys 0.52.0", -] - -[[package]] -name = "ripemd" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd124222d17ad93a644ed9d011a40f4fb64aa54275c08cc216524a9ea82fb09f" -dependencies = [ - "digest 0.10.7", -] - -[[package]] -name = "rkyv" -version = "0.8.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e147371c75553e1e2fcdb483944a8540b8438c31426279553b9a8182a9b7b65" -dependencies = [ - "bytecheck", - "bytes", - "hashbrown 0.15.2", - "indexmap 2.9.0", - "munge", - "ptr_meta", - "rancor", - "rend", - "rkyv_derive", - "tinyvec", - "uuid 1.16.0", -] - -[[package]] -name = "rkyv_derive" -version = "0.8.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "246b40ac189af6c675d124b802e8ef6d5246c53e17367ce9501f8f66a81abb7a" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.100", -] - -[[package]] -name = "rlp" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb919243f34364b6bd2fc10ef797edbfa75f33c252e7998527479c6d6b47e1ec" -dependencies = [ - "bytes", - "rlp-derive", - "rustc-hex", -] - -[[package]] -name = "rlp-derive" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e33d7b2abe0c340d8797fe2907d3f20d3b5ea5908683618bfe80df7f621f672a" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "roaring" -version = "0.10.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19e8d2cfa184d94d0726d650a9f4a1be7f9b76ac9fdb954219878dc00c1c1e7b" -dependencies = [ - "bytemuck", - "byteorder", -] - -[[package]] -name = "rocksdb" -version = "0.23.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26ec73b20525cb235bad420f911473b69f9fe27cc856c5461bccd7e4af037f43" -dependencies = [ - "libc", - "librocksdb-sys", -] - -[[package]] -name = "rolling-file" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8395b4f860856b740f20a296ea2cd4d823e81a2658cf05ef61be22916026a906" -dependencies = [ - "chrono", -] - -[[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 = "ruint" -version = "1.12.3" -source = "git+https://github.com/scroll-tech/uint.git?branch=v1.12.3#d26b1f2a4412bba2b9b366f43f7684fd32ac1c8a" -dependencies = [ - "alloy-rlp", - "ark-ff 0.3.0", - "ark-ff 0.4.2", - "bytes", - "fastrlp", - "num-bigint 0.4.6", - "num-traits", - "parity-scale-codec", - "primitive-types", - "proptest", - "rand 0.8.5", - "rkyv", - "rlp", - "ruint-macro", - "serde", - "valuable", - "zeroize", -] - -[[package]] -name = "ruint-macro" -version = "1.2.1" -source = "git+https://github.com/scroll-tech/uint.git?branch=v1.12.3#d26b1f2a4412bba2b9b366f43f7684fd32ac1c8a" - -[[package]] -name = "rustc-demangle" -version = "0.1.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" - -[[package]] -name = "rustc-hash" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" - -[[package]] -name = "rustc-hash" -version = "2.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d" - -[[package]] -name = "rustc-hex" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e75f6a532d0fd9f7f13144f392b6ad56a32696bfcd9c78f797f16bbb6f072d6" - -[[package]] -name = "rustc_version" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0dfe2087c51c460008730de8b57e6a320782fbfb312e1f4d520e6c6fae155ee" -dependencies = [ - "semver 0.11.0", -] - -[[package]] -name = "rustc_version" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" -dependencies = [ - "semver 1.0.26", -] - -[[package]] -name = "rustix" -version = "0.38.44" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdb5bc1ae2baa591800df16c9ca78619bf65c0488b41b96ccec5d11220d8c154" -dependencies = [ - "bitflags 2.9.0", - "errno", - "libc", - "linux-raw-sys 0.4.15", - "windows-sys 0.59.0", -] - -[[package]] -name = "rustix" -version = "1.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d97817398dd4bb2e6da002002db259209759911da105da92bec29ccb12cf58bf" -dependencies = [ - "bitflags 2.9.0", - "errno", - "libc", - "linux-raw-sys 0.9.4", - "windows-sys 0.59.0", -] - -[[package]] -name = "rustls" -version = "0.21.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f56a14d1f48b391359b22f731fd4bd7e43c97f3c50eee276f3aa09c94784d3e" -dependencies = [ - "log", - "ring 0.17.14", - "rustls-webpki 0.101.7", - "sct", -] - -[[package]] -name = "rustls" -version = "0.23.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df51b5869f3a441595eac5e8ff14d486ff285f7b8c0df8770e49c3b56351f0f0" -dependencies = [ - "once_cell", - "ring 0.17.14", - "rustls-pki-types", - "rustls-webpki 0.103.1", - "subtle", - "zeroize", -] - -[[package]] -name = "rustls-pemfile" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" -dependencies = [ - "base64 0.21.7", -] - -[[package]] -name = "rustls-pemfile" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dce314e5fee3f39953d46bb63bb8a46d40c2f8fb7cc5a3b6cab2bde9721d6e50" -dependencies = [ - "rustls-pki-types", -] - -[[package]] -name = "rustls-pki-types" -version = "1.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "917ce264624a4b4db1c364dcc35bfca9ded014d0a958cd47ad3e960e988ea51c" -dependencies = [ - "web-time", -] - -[[package]] -name = "rustls-webpki" -version = "0.100.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f6a5fc258f1c1276dfe3016516945546e2d5383911efc0fc4f1cdc5df3a4ae3" -dependencies = [ - "ring 0.16.20", - "untrusted 0.7.1", -] - -[[package]] -name = "rustls-webpki" -version = "0.101.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765" -dependencies = [ - "ring 0.17.14", - "untrusted 0.9.0", -] - -[[package]] -name = "rustls-webpki" -version = "0.103.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fef8b8769aaccf73098557a87cd1816b4f9c7c16811c9c77142aa695c16f2c03" -dependencies = [ - "ring 0.17.14", - "rustls-pki-types", - "untrusted 0.9.0", -] - -[[package]] -name = "rustversion" -version = "1.0.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eded382c5f5f786b989652c49544c4877d9f015cc22e145a5ea8ea66c2921cd2" - -[[package]] -name = "rusty-fork" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb3dcc6e454c328bb824492db107ab7c0ae8fcffe4ad210136ef014458c1bc4f" -dependencies = [ - "fnv", - "quick-error", - "tempfile", - "wait-timeout", -] - -[[package]] -name = "ryu" -version = "1.0.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" - -[[package]] -name = "salsa20" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97a22f5af31f73a954c10289c93e8a50cc23d971e80ee446f1f6f7137a088213" -dependencies = [ - "cipher", -] - -[[package]] -name = "sbv-core" -version = "2.0.0" -source = "git+https://github.com/scroll-tech/stateless-block-verifier?branch=zkvm%2Feuclid-upgrade#2c46ab68c4d77bf27aa6c27bf7763bede4dab968" -dependencies = [ - "reth-evm", - "reth-evm-ethereum", - "reth-execution-types", - "reth-scroll-evm", - "reth-storage-errors", - "sbv-helpers", - "sbv-kv", - "sbv-primitives", - "sbv-trie", - "thiserror 1.0.69", -] - -[[package]] -name = "sbv-helpers" -version = "2.0.0" -source = "git+https://github.com/scroll-tech/stateless-block-verifier?branch=zkvm%2Feuclid-upgrade#2c46ab68c4d77bf27aa6c27bf7763bede4dab968" -dependencies = [ - "revm 19.4.0", -] - -[[package]] -name = "sbv-kv" -version = "2.0.0" -source = "git+https://github.com/scroll-tech/stateless-block-verifier?branch=zkvm%2Feuclid-upgrade#2c46ab68c4d77bf27aa6c27bf7763bede4dab968" -dependencies = [ - "auto_impl", - "hashbrown 0.15.2", - "rustc-hash 2.1.1", -] - -[[package]] -name = "sbv-primitives" -version = "2.0.0" -source = "git+https://github.com/scroll-tech/stateless-block-verifier?branch=zkvm%2Feuclid-upgrade#2c46ab68c4d77bf27aa6c27bf7763bede4dab968" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-network", - "alloy-primitives", - "alloy-rpc-types-eth", - "alloy-serde 0.11.1", - "auto_impl", - "itertools 0.14.0", - "reth-chainspec", - "reth-ethereum-forks", - "reth-primitives", - "reth-primitives-traits", - "reth-scroll-chainspec", - "reth-scroll-forks", - "reth-scroll-primitives", - "revm 19.4.0", - "rkyv", - "sbv-helpers", - "sbv-kv", - "scroll-alloy-consensus", - "scroll-alloy-network", - "scroll-alloy-rpc-types", - "serde", - "tiny-keccak", -] - -[[package]] -name = "sbv-trie" -version = "2.0.0" -source = "git+https://github.com/scroll-tech/stateless-block-verifier?branch=zkvm%2Feuclid-upgrade#2c46ab68c4d77bf27aa6c27bf7763bede4dab968" -dependencies = [ - "alloy-rlp", - "alloy-trie", - "reth-trie", - "reth-trie-sparse", - "sbv-helpers", - "sbv-kv", - "sbv-primitives", - "thiserror 1.0.69", -] - -[[package]] -name = "sbv-utils" -version = "2.0.0" -source = "git+https://github.com/scroll-tech/stateless-block-verifier?branch=zkvm%2Feuclid-upgrade#2c46ab68c4d77bf27aa6c27bf7763bede4dab968" -dependencies = [ - "alloy-provider", - "alloy-transport", - "async-trait", - "futures", - "sbv-primitives", - "thiserror 1.0.69", -] - -[[package]] -name = "scale-info" -version = "2.11.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "346a3b32eba2640d17a9cb5927056b08f3de90f65b72fe09402c2ad07d684d0b" -dependencies = [ - "cfg-if", - "derive_more 1.0.0", - "parity-scale-codec", - "scale-info-derive", -] - -[[package]] -name = "scale-info-derive" -version = "2.11.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6630024bf739e2179b91fb424b28898baf819414262c5d376677dbff1fe7ebf" -dependencies = [ - "proc-macro-crate 3.3.0", - "proc-macro2", - "quote", - "syn 2.0.100", -] - -[[package]] -name = "schannel" -version = "0.1.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f29ebaa345f945cec9fbbc532eb307f0fdad8161f281b6369539c8d84876b3d" -dependencies = [ - "windows-sys 0.59.0", -] - -[[package]] -name = "scopeguard" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" - -[[package]] -name = "scroll-alloy-consensus" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth?branch=zkvm%2Feuclid-upgrade#6009111704d286ed6c737fe78dca09d613be0352" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-primitives", - "alloy-rlp", - "alloy-serde 0.11.1", - "derive_more 1.0.0", - "modular-bitfield", - "reth-codecs", - "reth-codecs-derive", - "serde", - "serde_with", -] - -[[package]] -name = "scroll-alloy-network" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth?branch=zkvm%2Feuclid-upgrade#6009111704d286ed6c737fe78dca09d613be0352" -dependencies = [ - "alloy-consensus", - "alloy-network", - "alloy-primitives", - "alloy-rpc-types-eth", - "alloy-signer", - "scroll-alloy-consensus", - "scroll-alloy-rpc-types", -] - -[[package]] -name = "scroll-alloy-rpc-types" -version = "1.1.5" -source = "git+https://github.com/scroll-tech/reth?branch=zkvm%2Feuclid-upgrade#6009111704d286ed6c737fe78dca09d613be0352" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-network-primitives", - "alloy-primitives", - "alloy-rpc-types-eth", - "alloy-serde 0.11.1", - "derive_more 1.0.0", - "scroll-alloy-consensus", - "serde", - "serde_json", -] - -[[package]] -name = "scroll-proving-sdk" -version = "0.1.0" -source = "git+https://github.com/scroll-tech/scroll-proving-sdk.git?branch=main#6582c28ebfe0a710cb7efb8ea1463427230baaf3" -dependencies = [ - "alloy", - "anyhow", - "async-trait", - "axum", - "clap", - "dotenv", - "ethers-core", - "ethers-providers", - "hex", - "http 1.3.1", - "log", - "rand 0.8.5", - "reqwest 0.12.15", - "reqwest-middleware", - "reqwest-retry", - "rlp", - "rocksdb", - "sbv-primitives", - "sbv-utils", - "serde", - "serde_json", - "tiny-keccak", - "tokio", - "tracing", - "tracing-subscriber", - "url", -] - -[[package]] -name = "scroll-zkvm-circuit-input-types" -version = "0.4.0" -source = "git+https://github.com/scroll-tech/zkvm-prover?tag=v0.4.2#6ad5d8ce6e002f2a8958110c55075ab2dcfdda69" -dependencies = [ - "alloy-primitives", - "alloy-serde 0.8.3", - "itertools 0.14.0", - "openvm", - "openvm-custom-insn", - "openvm-rv32im-guest", - "rkyv", - "sbv-core", - "sbv-kv", - "sbv-primitives", - "sbv-trie", - "serde", - "sha2", - "sha3", - "tiny-keccak", - "vm-zstd", -] - -[[package]] -name = "scroll-zkvm-prover" -version = "0.4.0" -source = "git+https://github.com/scroll-tech/zkvm-prover?tag=v0.4.2#6ad5d8ce6e002f2a8958110c55075ab2dcfdda69" -dependencies = [ - "alloy-primitives", - "backon", - "base64 0.22.1", - "bincode", - "c-kzg", - "git-version", - "hex", - "metrics 0.23.0", - "metrics-tracing-context", - "metrics-util", - "munge", - "once_cell", - "openvm-circuit", - "openvm-continuations", - "openvm-native-circuit", - "openvm-native-recursion", - "openvm-sdk", - "openvm-stark-sdk", - "regex", - "reqwest 0.12.15", - "revm 19.7.0", - "rkyv", - "sbv-primitives", - "scroll-zkvm-circuit-input-types", - "scroll-zkvm-verifier", - "serde", - "serde_json", - "serde_stacker", - "snark-verifier-sdk", - "thiserror 2.0.12", - "toml", - "tracing", -] - -[[package]] -name = "scroll-zkvm-verifier" -version = "0.4.0" -source = "git+https://github.com/scroll-tech/zkvm-prover?tag=v0.4.2#6ad5d8ce6e002f2a8958110c55075ab2dcfdda69" -dependencies = [ - "bincode", - "eyre", - "itertools 0.14.0", - "openvm-circuit", - "openvm-continuations", - "openvm-native-circuit", - "openvm-native-recursion", - "openvm-sdk", - "openvm-stark-sdk", - "revm 19.7.0", - "scroll-zkvm-circuit-input-types", - "serde", - "snark-verifier-sdk", -] - -[[package]] -name = "scrypt" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f9e24d2b632954ded8ab2ef9fea0a0c769ea56ea98bddbafbad22caeeadf45d" -dependencies = [ - "hmac", - "pbkdf2", - "salsa20", - "sha2", -] - -[[package]] -name = "sct" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" -dependencies = [ - "ring 0.17.14", - "untrusted 0.9.0", -] - -[[package]] -name = "sec1" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc" -dependencies = [ - "base16ct", - "der", - "generic-array", - "pkcs8", - "serdect", - "subtle", - "zeroize", -] - -[[package]] -name = "secp256k1" -version = "0.29.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9465315bc9d4566e1724f0fffcbcc446268cb522e60f9a27bcded6b19c108113" -dependencies = [ - "rand 0.8.5", - "secp256k1-sys", - "serde", -] - -[[package]] -name = "secp256k1-sys" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4387882333d3aa8cb20530a17c69a3752e97837832f34f6dccc760e715001d9" -dependencies = [ - "cc", -] - -[[package]] -name = "security-framework" -version = "2.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" -dependencies = [ - "bitflags 2.9.0", - "core-foundation", - "core-foundation-sys", - "libc", - "security-framework-sys", -] - -[[package]] -name = "security-framework-sys" -version = "2.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49db231d56a190491cb4aeda9527f1ad45345af50b0851622a7adb8c03b01c32" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "semver" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f301af10236f6df4160f7c3f04eec6dbc70ace82d23326abad5edee88801c6b6" -dependencies = [ - "semver-parser", -] - -[[package]] -name = "semver" -version = "1.0.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56e6fa9c48d24d85fb3de5ad847117517440f6beceb7798af16b4a87d616b8d0" -dependencies = [ - "serde", -] - -[[package]] -name = "semver-parser" -version = "0.10.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9900206b54a3527fdc7b8a938bffd94a568bac4f4aa8113b209df75a09c0dec2" -dependencies = [ - "pest", -] - -[[package]] -name = "send_wrapper" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f638d531eccd6e23b980caf34876660d38e265409d8e99b397ab71eb3612fad0" - -[[package]] -name = "send_wrapper" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" - -[[package]] -name = "serde" -version = "1.0.219" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6" -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_bytes" -version = "0.11.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8437fd221bde2d4ca316d61b90e337e9e702b3820b87d63caa9ba6c02bd06d96" -dependencies = [ - "serde", -] - -[[package]] -name = "serde_derive" -version = "1.0.219" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.100", -] - -[[package]] -name = "serde_json" -version = "1.0.140" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20068b6e96dc6c9bd23e01df8827e6c7e1f2fddd43c21810382803c136b99373" -dependencies = [ - "indexmap 2.9.0", - "itoa", - "memchr", - "ryu", - "serde", -] - -[[package]] -name = "serde_path_to_error" -version = "0.1.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59fab13f937fa393d08645bf3a84bdfe86e296747b506ada67bb15f10f218b2a" -dependencies = [ - "itoa", - "serde", -] - -[[package]] -name = "serde_spanned" -version = "0.6.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87607cb1398ed59d48732e575a4c28a7a8ebf2454b964fe3f224f2afc07909e1" -dependencies = [ - "serde", -] - -[[package]] -name = "serde_stacker" -version = "0.1.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69c8defe6c780725cce4ec6ad3bd91e321baf6fa4e255df1f31e345d507ef01a" -dependencies = [ - "serde", - "stacker", -] - -[[package]] -name = "serde_urlencoded" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" -dependencies = [ - "form_urlencoded", - "itoa", - "ryu", - "serde", -] - -[[package]] -name = "serde_with" -version = "3.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6b6f7f2fcb69f747921f79f3926bd1e203fce4fef62c268dd3abfb6d86029aa" -dependencies = [ - "base64 0.22.1", - "chrono", - "hex", - "indexmap 1.9.3", - "indexmap 2.9.0", - "serde", - "serde_derive", - "serde_json", - "serde_with_macros", - "time", -] - -[[package]] -name = "serde_with_macros" -version = "3.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d00caa5193a3c8362ac2b73be6b9e768aa5a4b2f721d8f4b339600c3cb51f8e" -dependencies = [ - "darling", - "proc-macro2", - "quote", - "syn 2.0.100", -] - -[[package]] -name = "serdect" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a84f14a19e9a014bb9f4512488d9829a68e04ecabffb0f9904cd1ace94598177" -dependencies = [ - "base16ct", - "serde", -] - -[[package]] -name = "sha1" -version = "0.10.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" -dependencies = [ - "cfg-if", - "cpufeatures", - "digest 0.10.7", -] - -[[package]] -name = "sha2" -version = "0.10.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" -dependencies = [ - "cfg-if", - "cpufeatures", - "digest 0.10.7", -] - -[[package]] -name = "sha3" -version = "0.10.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75872d278a8f37ef87fa0ddbda7802605cb18344497949862c0d4dcb291eba60" -dependencies = [ - "digest 0.10.7", - "keccak", -] - -[[package]] -name = "sha3-asm" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c28efc5e327c837aa837c59eae585fc250715ef939ac32881bcc11677cd02d46" -dependencies = [ - "cc", - "cfg-if", -] - -[[package]] -name = "sharded-slab" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" -dependencies = [ - "lazy_static", -] - -[[package]] -name = "shlex" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" - -[[package]] -name = "signal-hook-registry" -version = "1.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1" -dependencies = [ - "libc", -] - -[[package]] -name = "signature" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" -dependencies = [ - "digest 0.10.7", - "rand_core 0.6.4", -] - -[[package]] -name = "simdutf8" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e" - -[[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" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" -dependencies = [ - "autocfg", -] - -[[package]] -name = "sled" -version = "0.34.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f96b4737c2ce5987354855aed3797279def4ebf734436c6aa4552cf8e169935" -dependencies = [ - "crc32fast", - "crossbeam-epoch", - "crossbeam-utils", - "fs2", - "fxhash", - "libc", - "log", - "parking_lot 0.11.2", -] - -[[package]] -name = "smallvec" -version = "1.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8917285742e9f3e1683f0a9c4e6b57960b7314d0b08d30d1ecd426713ee2eee9" -dependencies = [ - "serde", -] - -[[package]] -name = "snark-verifier" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28e4c4ed1edca41687fe2d8a09ba30badb0a5cc7fa56dd1159d62aeab7c99ace" -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", - "ruint", - "serde", - "sha3", -] - -[[package]] -name = "snark-verifier-sdk" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "babff70ce6292fce03f692d68569f76b8f6710dbac7be7fe5f32c915909c9065" -dependencies = [ - "ark-std 0.3.0", - "bincode", - "ethereum-types", - "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 = "socket2" -version = "0.5.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f5fd57c80058a56cf5c777ab8a126398ece8e442983605d280a44ce79d0edef" -dependencies = [ - "libc", - "windows-sys 0.52.0", -] - -[[package]] -name = "spin" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" - -[[package]] -name = "spin" -version = "0.9.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" - -[[package]] -name = "spki" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" -dependencies = [ - "base64ct", - "der", -] - -[[package]] -name = "sppark" -version = "0.1.8" -source = "git+https://github.com/scroll-tech/sppark.git?branch=sp1-v3.0#07fe0de43a745a395dd718c735cdfe0cfc457b0a" -dependencies = [ - "cc", - "which", -] - -[[package]] -name = "stable_deref_trait" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" - -[[package]] -name = "stacker" -version = "0.1.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "601f9201feb9b09c00266478bf459952b9ef9a6b94edb2f21eba14ab681a60a9" -dependencies = [ - "cc", - "cfg-if", - "libc", - "psm", - "windows-sys 0.59.0", -] - -[[package]] -name = "static_assertions" -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" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" - -[[package]] -name = "strum" -version = "0.24.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "063e6045c0e62079840579a7e47a355ae92f60eb74daaf156fb1e84ba164e63f" -dependencies = [ - "strum_macros 0.24.3", -] - -[[package]] -name = "strum" -version = "0.25.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "290d54ea6f91c969195bdbcd7442c8c2a2ba87da8bf60a7ee86a235d4bc1e125" - -[[package]] -name = "strum" -version = "0.26.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fec0f0aef304996cf250b31b5a10dee7980c85da9d759361292b8bca5a18f06" -dependencies = [ - "strum_macros 0.26.4", -] - -[[package]] -name = "strum" -version = "0.27.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f64def088c51c9510a8579e3c5d67c65349dcf755e5479ad3d010aa6454e2c32" -dependencies = [ - "strum_macros 0.27.1", -] - -[[package]] -name = "strum_macros" -version = "0.24.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59" -dependencies = [ - "heck 0.4.1", - "proc-macro2", - "quote", - "rustversion", - "syn 1.0.109", -] - -[[package]] -name = "strum_macros" -version = "0.25.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23dc1fa9ac9c169a78ba62f0b841814b7abae11bdd047b9c58f893439e309ea0" -dependencies = [ - "heck 0.4.1", - "proc-macro2", - "quote", - "rustversion", - "syn 2.0.100", -] - -[[package]] -name = "strum_macros" -version = "0.26.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c6bee85a5a24955dc440386795aa378cd9cf82acd5f764469152d2270e581be" -dependencies = [ - "heck 0.5.0", - "proc-macro2", - "quote", - "rustversion", - "syn 2.0.100", -] - -[[package]] -name = "strum_macros" -version = "0.27.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c77a8c5abcaf0f9ce05d62342b7d298c346515365c36b673df4ebe3ced01fde8" -dependencies = [ - "heck 0.5.0", - "proc-macro2", - "quote", - "rustversion", - "syn 2.0.100", -] - -[[package]] -name = "substrate-bn" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b5bbfa79abbae15dd642ea8176a21a635ff3c00059961d1ea27ad04e5b441c" -dependencies = [ - "byteorder", - "crunchy", - "lazy_static", - "rand 0.8.5", - "rustc-hex", -] - -[[package]] -name = "subtle" -version = "2.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" - -[[package]] -name = "syn" -version = "1.0.109" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "syn" -version = "2.0.100" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b09a44accad81e1ba1cd74a32461ba89dee89095ba17b32f5d03683b1b1fc2a0" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "syn-solidity" -version = "0.8.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4560533fbd6914b94a8fb5cc803ed6801c3455668db3b810702c57612bac9412" -dependencies = [ - "paste", - "proc-macro2", - "quote", - "syn 2.0.100", -] - -[[package]] -name = "sync_wrapper" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" - -[[package]] -name = "sync_wrapper" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263" -dependencies = [ - "futures-core", -] - -[[package]] -name = "synstructure" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.100", -] - -[[package]] -name = "sysinfo" -version = "0.32.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c33cd241af0f2e9e3b5c32163b873b29956890b5342e6745b917ce9d490f4af" -dependencies = [ - "core-foundation-sys", - "libc", - "memchr", - "ntapi", - "windows", -] - -[[package]] -name = "system-configuration" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" -dependencies = [ - "bitflags 1.3.2", - "core-foundation", - "system-configuration-sys 0.5.0", -] - -[[package]] -name = "system-configuration" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c879d448e9d986b661742763247d3693ed13609438cf3d006f51f5368a5ba6b" -dependencies = [ - "bitflags 2.9.0", - "core-foundation", - "system-configuration-sys 0.6.0", -] - -[[package]] -name = "system-configuration-sys" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "system-configuration-sys" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e1d1b10ced5ca923a1fcb8d03e96b8d3268065d724548c0211415ff6ac6bac4" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "tap" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" - -[[package]] -name = "tempfile" -version = "3.19.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7437ac7763b9b123ccf33c338a5cc1bac6f69b45a136c19bdd8a65e3916435bf" -dependencies = [ - "fastrand", - "getrandom 0.3.2", - "once_cell", - "rustix 1.0.5", - "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.100", -] - -[[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.100", - "test-case-core", -] - -[[package]] -name = "thiserror" -version = "1.0.69" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" -dependencies = [ - "thiserror-impl 1.0.69", -] - -[[package]] -name = "thiserror" -version = "2.0.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708" -dependencies = [ - "thiserror-impl 2.0.12", -] - -[[package]] -name = "thiserror-impl" -version = "1.0.69" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.100", -] - -[[package]] -name = "thiserror-impl" -version = "2.0.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.100", -] - -[[package]] -name = "thread_local" -version = "1.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" -dependencies = [ - "cfg-if", - "once_cell", -] - -[[package]] -name = "threadpool" -version = "1.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d050e60b33d41c19108b32cea32164033a9013fe3b46cbd4457559bfbf77afaa" -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" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a7619e19bc266e0f9c5e6686659d394bc57973859340060a69221e57dbc0c40" -dependencies = [ - "deranged", - "itoa", - "num-conv", - "powerfmt", - "serde", - "time-core", - "time-macros", -] - -[[package]] -name = "time-core" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9e9a38711f559d9e3ce1cdb06dd7c5b8ea546bc90052da6d06bb76da74bb07c" - -[[package]] -name = "time-macros" -version = "0.2.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3526739392ec93fd8b359c8e98514cb3e8e021beb4e5f597b00a0221f8ed8a49" -dependencies = [ - "num-conv", - "time-core", -] - -[[package]] -name = "tiny-keccak" -version = "2.0.2" -source = "git+https://github.com/scroll-tech/tiny-keccak?branch=scroll-patch-v2.0.2-openvm-v1.0.0-rc.1#4c7c96660cb852b4f8aed2296d30c31f06e103c9" -dependencies = [ - "cfg-if", - "crunchy", -] - -[[package]] -name = "tinystr" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" -dependencies = [ - "displaydoc", - "zerovec", -] - -[[package]] -name = "tinyvec" -version = "1.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09b3661f17e86524eccd4371ab0429194e0d7c008abb45f7a7495b1719463c71" -dependencies = [ - "tinyvec_macros", -] - -[[package]] -name = "tinyvec_macros" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" - -[[package]] -name = "tokio" -version = "1.44.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6b88822cbe49de4185e3a4cbf8321dd487cf5fe0c5c65695fef6346371e9c48" -dependencies = [ - "backtrace", - "bytes", - "libc", - "mio", - "parking_lot 0.12.3", - "pin-project-lite", - "signal-hook-registry", - "socket2", - "tokio-macros", - "windows-sys 0.52.0", -] - -[[package]] -name = "tokio-macros" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.100", -] - -[[package]] -name = "tokio-native-tls" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" -dependencies = [ - "native-tls", - "tokio", -] - -[[package]] -name = "tokio-rustls" -version = "0.24.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" -dependencies = [ - "rustls 0.21.12", - "tokio", -] - -[[package]] -name = "tokio-rustls" -version = "0.26.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e727b36a1a0e8b74c376ac2211e40c2c8af09fb4013c60d910495810f008e9b" -dependencies = [ - "rustls 0.23.26", - "tokio", -] - -[[package]] -name = "tokio-stream" -version = "0.1.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eca58d7bba4a75707817a2c44174253f9236b2d5fbd055602e9d5c07c139a047" -dependencies = [ - "futures-core", - "pin-project-lite", - "tokio", - "tokio-util", -] - -[[package]] -name = "tokio-tungstenite" -version = "0.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec509ac96e9a0c43427c74f003127d953a265737636129424288d27cb5c4b12c" -dependencies = [ - "futures-util", - "log", - "rustls 0.21.12", - "tokio", - "tokio-rustls 0.24.1", - "tungstenite", - "webpki-roots 0.23.1", -] - -[[package]] -name = "tokio-util" -version = "0.7.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b9590b93e6fcc1739458317cccd391ad3955e2bde8913edf6f95f9e65a8f034" -dependencies = [ - "bytes", - "futures-core", - "futures-sink", - "pin-project-lite", - "tokio", -] - -[[package]] -name = "toml" -version = "0.8.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd87a5cdd6ffab733b2f74bc4fd7ee5fff6634124999ac278c35fc78c6120148" -dependencies = [ - "serde", - "serde_spanned", - "toml_datetime", - "toml_edit 0.22.24", -] - -[[package]] -name = "toml_datetime" -version = "0.6.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" -dependencies = [ - "serde", -] - -[[package]] -name = "toml_edit" -version = "0.19.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" -dependencies = [ - "indexmap 2.9.0", - "toml_datetime", - "winnow 0.5.40", -] - -[[package]] -name = "toml_edit" -version = "0.22.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17b4795ff5edd201c7cd6dca065ae59972ce77d1b80fa0a84d94950ece7d1474" -dependencies = [ - "indexmap 2.9.0", - "serde", - "serde_spanned", - "toml_datetime", - "winnow 0.7.6", -] - -[[package]] -name = "tower" -version = "0.4.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" -dependencies = [ - "futures-core", - "futures-util", - "pin-project", - "pin-project-lite", - "tokio", - "tower-layer", - "tower-service", - "tracing", -] - -[[package]] -name = "tower" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d039ad9159c98b70ecfd540b2573b97f7f52c3e8d9f8ad57a24b916a536975f9" -dependencies = [ - "futures-core", - "futures-util", - "pin-project-lite", - "sync_wrapper 1.0.2", - "tokio", - "tower-layer", - "tower-service", -] - -[[package]] -name = "tower-layer" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e" - -[[package]] -name = "tower-service" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" - -[[package]] -name = "tracing" -version = "0.1.41" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" -dependencies = [ - "log", - "pin-project-lite", - "tracing-attributes", - "tracing-core", -] - -[[package]] -name = "tracing-appender" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3566e8ce28cc0a3fe42519fc80e6b4c943cc4c8cef275620eb8dac2d3d4e06cf" -dependencies = [ - "crossbeam-channel", - "thiserror 1.0.69", - "time", - "tracing-subscriber", -] - -[[package]] -name = "tracing-attributes" -version = "0.1.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.100", -] - -[[package]] -name = "tracing-core" -version = "0.1.33" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c" -dependencies = [ - "once_cell", - "valuable", -] - -[[package]] -name = "tracing-forest" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee40835db14ddd1e3ba414292272eddde9dad04d3d4b65509656414d1c42592f" -dependencies = [ - "ansi_term", - "smallvec", - "thiserror 1.0.69", - "tracing", - "tracing-subscriber", -] - -[[package]] -name = "tracing-futures" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2" -dependencies = [ - "pin-project", - "tracing", -] - -[[package]] -name = "tracing-journald" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc0b4143302cf1022dac868d521e36e8b27691f72c84b3311750d5188ebba657" -dependencies = [ - "libc", - "tracing-core", - "tracing-subscriber", -] - -[[package]] -name = "tracing-log" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" -dependencies = [ - "log", - "once_cell", - "tracing-core", -] - -[[package]] -name = "tracing-logfmt" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b1f47d22deb79c3f59fcf2a1f00f60cbdc05462bf17d1cd356c1fefa3f444bd" -dependencies = [ - "time", - "tracing", - "tracing-core", - "tracing-subscriber", -] - -[[package]] -name = "tracing-serde" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "704b1aeb7be0d0a84fc9828cae51dab5970fee5088f83d1dd7ee6f6246fc6ff1" -dependencies = [ - "serde", - "tracing-core", -] - -[[package]] -name = "tracing-subscriber" -version = "0.3.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8189decb5ac0fa7bc8b96b7cb9b2701d60d48805aca84a238004d665fcc4008" -dependencies = [ - "matchers", - "nu-ansi-term", - "once_cell", - "regex", - "serde", - "serde_json", - "sharded-slab", - "smallvec", - "thread_local", - "tracing", - "tracing-core", - "tracing-log", - "tracing-serde", -] - -[[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" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" - -[[package]] -name = "tungstenite" -version = "0.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15fba1a6d6bb030745759a9a2a588bfe8490fc8b4751a277db3a0be1c9ebbf67" -dependencies = [ - "byteorder", - "bytes", - "data-encoding", - "http 0.2.12", - "httparse", - "log", - "rand 0.8.5", - "rustls 0.21.12", - "sha1", - "thiserror 1.0.69", - "url", - "utf-8", - "webpki", -] - -[[package]] -name = "typenum" -version = "1.18.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f" - -[[package]] -name = "ucd-trie" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2896d95c02a80c6d6a5d6e953d479f5ddf2dfdb6a244441010e373ac0fb88971" - -[[package]] -name = "uint" -version = "0.9.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76f64bba2c53b04fcab63c01a7d7427eadc821e3bc48c34dc9ba29c501164b52" -dependencies = [ - "byteorder", - "crunchy", - "hex", - "static_assertions", -] - -[[package]] -name = "unarray" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94" - -[[package]] -name = "unicode-ident" -version = "1.0.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" - -[[package]] -name = "unicode-segmentation" -version = "1.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" - -[[package]] -name = "unicode-xid" -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.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" - -[[package]] -name = "untrusted" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" - -[[package]] -name = "url" -version = "2.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" -dependencies = [ - "form_urlencoded", - "idna", - "percent-encoding", -] - -[[package]] -name = "utf-8" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" - -[[package]] -name = "utf16_iter" -version = "1.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" - -[[package]] -name = "utf8_iter" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" - -[[package]] -name = "utf8parse" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" - -[[package]] -name = "uuid" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7" -dependencies = [ - "getrandom 0.2.15", - "serde", -] - -[[package]] -name = "uuid" -version = "1.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "458f7a779bf54acc9f347480ac654f68407d3aab21269a6e3c9f922acd9e2da9" - -[[package]] -name = "valuable" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65" - -[[package]] -name = "vcpkg" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" - -[[package]] -name = "vek" -version = "0.15.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8085882662f9bc47fc8b0cdafa5e19df8f592f650c02b9083da8d45ac9eebd17" -dependencies = [ - "approx", - "num-integer", - "num-traits", - "rustc_version 0.4.1", -] - -[[package]] -name = "version_check" -version = "0.9.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" - -[[package]] -name = "vm-zstd" -version = "0.1.1" -source = "git+https://github.com/scroll-tech/rust-zstd-decompressor.git?tag=v0.1.1#c7e953fc690d5f56f201892d88311c0f938f2d21" -dependencies = [ - "anyhow", - "bitstream-io", - "itertools 0.11.0", - "serde", - "strum 0.25.0", - "strum_macros 0.25.3", -] - -[[package]] -name = "wait-timeout" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09ac3b126d3914f9849036f826e054cbabdc8519970b8998ddaf3b5bd3c65f11" -dependencies = [ - "libc", -] - -[[package]] -name = "want" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" -dependencies = [ - "try-lock", -] - -[[package]] -name = "wasi" -version = "0.11.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" - -[[package]] -name = "wasi" -version = "0.14.2+wasi-0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9683f9a5a998d873c0d21fcbe3c083009670149a8fab228644b8bd36b2c48cb3" -dependencies = [ - "wit-bindgen-rt", -] - -[[package]] -name = "wasm-bindgen" -version = "0.2.100" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5" -dependencies = [ - "cfg-if", - "once_cell", - "rustversion", - "wasm-bindgen-macro", -] - -[[package]] -name = "wasm-bindgen-backend" -version = "0.2.100" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6" -dependencies = [ - "bumpalo", - "log", - "proc-macro2", - "quote", - "syn 2.0.100", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-futures" -version = "0.4.50" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "555d470ec0bc3bb57890405e5d4322cc9ea83cebb085523ced7be4144dac1e61" -dependencies = [ - "cfg-if", - "js-sys", - "once_cell", - "wasm-bindgen", - "web-sys", -] - -[[package]] -name = "wasm-bindgen-macro" -version = "0.2.100" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407" -dependencies = [ - "quote", - "wasm-bindgen-macro-support", -] - -[[package]] -name = "wasm-bindgen-macro-support" -version = "0.2.100" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.100", - "wasm-bindgen-backend", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-shared" -version = "0.2.100" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "wasm-timer" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be0ecb0db480561e9a7642b5d3e4187c128914e58aa84330b9493e3eb68c5e7f" -dependencies = [ - "futures", - "js-sys", - "parking_lot 0.11.2", - "pin-utils", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", -] - -[[package]] -name = "wasmtimer" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0048ad49a55b9deb3953841fa1fc5858f0efbcb7a18868c899a360269fac1b23" -dependencies = [ - "futures", - "js-sys", - "parking_lot 0.12.3", - "pin-utils", - "slab", - "wasm-bindgen", -] - -[[package]] -name = "web-sys" -version = "0.3.77" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33b6dd2ef9186f1f2072e409e99cd22a975331a6b3591b12c764e0e55c60d5d2" -dependencies = [ - "js-sys", - "wasm-bindgen", -] - -[[package]] -name = "web-time" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb" -dependencies = [ - "js-sys", - "wasm-bindgen", -] - -[[package]] -name = "webpki" -version = "0.22.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed63aea5ce73d0ff405984102c42de94fc55a6b75765d621c65262469b3c9b53" -dependencies = [ - "ring 0.17.14", - "untrusted 0.9.0", -] - -[[package]] -name = "webpki-roots" -version = "0.23.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b03058f88386e5ff5310d9111d53f48b17d732b401aeb83a8d5190f2ac459338" -dependencies = [ - "rustls-webpki 0.100.3", -] - -[[package]] -name = "webpki-roots" -version = "0.25.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1" - -[[package]] -name = "webpki-roots" -version = "0.26.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2210b291f7ea53617fbafcc4939f10914214ec15aace5ba62293a668f322c5c9" -dependencies = [ - "rustls-pki-types", -] - -[[package]] -name = "which" -version = "4.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87ba24419a2078cd2b0f2ede2691b6c66d8e47836da3b6db8265ebad47afbfc7" -dependencies = [ - "either", - "home", - "once_cell", - "rustix 0.38.44", -] - -[[package]] -name = "winapi" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" -dependencies = [ - "winapi-i686-pc-windows-gnu", - "winapi-x86_64-pc-windows-gnu", -] - -[[package]] -name = "winapi-i686-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" - -[[package]] -name = "winapi-x86_64-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" - -[[package]] -name = "windows" -version = "0.57.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12342cb4d8e3b046f3d80effd474a7a02447231330ef77d71daa6fbc40681143" -dependencies = [ - "windows-core 0.57.0", - "windows-targets 0.52.6", -] - -[[package]] -name = "windows-core" -version = "0.57.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2ed2439a290666cd67ecce2b0ffaad89c2a56b976b736e6ece670297897832d" -dependencies = [ - "windows-implement 0.57.0", - "windows-interface 0.57.0", - "windows-result 0.1.2", - "windows-targets 0.52.6", -] - -[[package]] -name = "windows-core" -version = "0.61.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4763c1de310c86d75a878046489e2e5ba02c649d185f21c67d4cf8a56d098980" -dependencies = [ - "windows-implement 0.60.0", - "windows-interface 0.59.1", - "windows-link", - "windows-result 0.3.2", - "windows-strings 0.4.0", -] - -[[package]] -name = "windows-implement" -version = "0.57.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9107ddc059d5b6fbfbffdfa7a7fe3e22a226def0b2608f72e9d552763d3e1ad7" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.100", -] - -[[package]] -name = "windows-implement" -version = "0.60.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a47fddd13af08290e67f4acabf4b459f647552718f683a7b415d290ac744a836" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.100", -] - -[[package]] -name = "windows-interface" -version = "0.57.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29bee4b38ea3cde66011baa44dba677c432a78593e202392d1e9070cf2a7fca7" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.100", -] - -[[package]] -name = "windows-interface" -version = "0.59.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd9211b69f8dcdfa817bfd14bf1c97c9188afa36f4750130fcdf3f400eca9fa8" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.100", -] - -[[package]] -name = "windows-link" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76840935b766e1b0a05c0066835fb9ec80071d4c09a16f6bd5f7e655e3c14c38" - -[[package]] -name = "windows-registry" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4286ad90ddb45071efd1a66dfa43eb02dd0dfbae1545ad6cc3c51cf34d7e8ba3" -dependencies = [ - "windows-result 0.3.2", - "windows-strings 0.3.1", - "windows-targets 0.53.0", -] - -[[package]] -name = "windows-result" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e383302e8ec8515204254685643de10811af0ed97ea37210dc26fb0032647f8" -dependencies = [ - "windows-targets 0.52.6", -] - -[[package]] -name = "windows-result" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c64fd11a4fd95df68efcfee5f44a294fe71b8bc6a91993e2791938abcc712252" -dependencies = [ - "windows-link", -] - -[[package]] -name = "windows-strings" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87fa48cc5d406560701792be122a10132491cff9d0aeb23583cc2dcafc847319" -dependencies = [ - "windows-link", -] - -[[package]] -name = "windows-strings" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a2ba9642430ee452d5a7aa78d72907ebe8cfda358e8cb7918a2050581322f97" -dependencies = [ - "windows-link", -] - -[[package]] -name = "windows-sys" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" -dependencies = [ - "windows-targets 0.48.5", -] - -[[package]] -name = "windows-sys" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" -dependencies = [ - "windows-targets 0.52.6", -] - -[[package]] -name = "windows-sys" -version = "0.59.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" -dependencies = [ - "windows-targets 0.52.6", -] - -[[package]] -name = "windows-targets" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" -dependencies = [ - "windows_aarch64_gnullvm 0.48.5", - "windows_aarch64_msvc 0.48.5", - "windows_i686_gnu 0.48.5", - "windows_i686_msvc 0.48.5", - "windows_x86_64_gnu 0.48.5", - "windows_x86_64_gnullvm 0.48.5", - "windows_x86_64_msvc 0.48.5", -] - -[[package]] -name = "windows-targets" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" -dependencies = [ - "windows_aarch64_gnullvm 0.52.6", - "windows_aarch64_msvc 0.52.6", - "windows_i686_gnu 0.52.6", - "windows_i686_gnullvm 0.52.6", - "windows_i686_msvc 0.52.6", - "windows_x86_64_gnu 0.52.6", - "windows_x86_64_gnullvm 0.52.6", - "windows_x86_64_msvc 0.52.6", -] - -[[package]] -name = "windows-targets" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1e4c7e8ceaaf9cb7d7507c974735728ab453b67ef8f18febdd7c11fe59dca8b" -dependencies = [ - "windows_aarch64_gnullvm 0.53.0", - "windows_aarch64_msvc 0.53.0", - "windows_i686_gnu 0.53.0", - "windows_i686_gnullvm 0.53.0", - "windows_i686_msvc 0.53.0", - "windows_x86_64_gnu 0.53.0", - "windows_x86_64_gnullvm 0.53.0", - "windows_x86_64_msvc 0.53.0", -] - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86b8d5f90ddd19cb4a147a5fa63ca848db3df085e25fee3cc10b39b6eebae764" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7651a1f62a11b8cbd5e0d42526e55f2c99886c77e007179efff86c2b137e66c" - -[[package]] -name = "windows_i686_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" - -[[package]] -name = "windows_i686_gnu" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" - -[[package]] -name = "windows_i686_gnu" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1dc67659d35f387f5f6c479dc4e28f1d4bb90ddd1a5d3da2e5d97b42d6272c3" - -[[package]] -name = "windows_i686_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" - -[[package]] -name = "windows_i686_gnullvm" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ce6ccbdedbf6d6354471319e781c0dfef054c81fbc7cf83f338a4296c0cae11" - -[[package]] -name = "windows_i686_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" - -[[package]] -name = "windows_i686_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" - -[[package]] -name = "windows_i686_msvc" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "581fee95406bb13382d2f65cd4a908ca7b1e4c2f1917f143ba16efe98a589b5d" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e55b5ac9ea33f2fc1716d1742db15574fd6fc8dadc51caab1c16a3d3b4190ba" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a6e035dd0599267ce1ee132e51c27dd29437f63325753051e71dd9e42406c57" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486" - -[[package]] -name = "winnow" -version = "0.5.40" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" -dependencies = [ - "memchr", -] - -[[package]] -name = "winnow" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63d3fcd9bba44b03821e7d699eeee959f3126dcc4aa8e4ae18ec617c2a5cea10" -dependencies = [ - "memchr", -] - -[[package]] -name = "winreg" -version = "0.50.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" -dependencies = [ - "cfg-if", - "windows-sys 0.48.0", -] - -[[package]] -name = "wit-bindgen-rt" -version = "0.39.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1" -dependencies = [ - "bitflags 2.9.0", -] - -[[package]] -name = "write16" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" - -[[package]] -name = "writeable" -version = "0.5.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" - -[[package]] -name = "ws_stream_wasm" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7999f5f4217fe3818726b66257a4475f71e74ffd190776ad053fa159e50737f5" -dependencies = [ - "async_io_stream", - "futures", - "js-sys", - "log", - "pharos", - "rustc_version 0.4.1", - "send_wrapper 0.6.0", - "thiserror 1.0.69", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", -] - -[[package]] -name = "wyz" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" -dependencies = [ - "tap", -] - -[[package]] -name = "yoke" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "120e6aef9aa629e3d4f52dc8cc43a015c7724194c97dfaf45180d2daf2b77f40" -dependencies = [ - "serde", - "stable_deref_trait", - "yoke-derive", - "zerofrom", -] - -[[package]] -name = "yoke-derive" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.100", - "synstructure", -] - -[[package]] -name = "zerocopy" -version = "0.7.35" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" -dependencies = [ - "zerocopy-derive 0.7.35", -] - -[[package]] -name = "zerocopy" -version = "0.8.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2586fea28e186957ef732a5f8b3be2da217d65c5969d4b1e17f973ebbe876879" -dependencies = [ - "zerocopy-derive 0.8.24", -] - -[[package]] -name = "zerocopy-derive" -version = "0.7.35" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.100", -] - -[[package]] -name = "zerocopy-derive" -version = "0.8.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a996a8f63c5c4448cd959ac1bab0aaa3306ccfd060472f85943ee0750f0169be" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.100", -] - -[[package]] -name = "zerofrom" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5" -dependencies = [ - "zerofrom-derive", -] - -[[package]] -name = "zerofrom-derive" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.100", - "synstructure", -] - -[[package]] -name = "zeroize" -version = "1.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" -dependencies = [ - "zeroize_derive", -] - -[[package]] -name = "zeroize_derive" -version = "1.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.100", -] - -[[package]] -name = "zerovec" -version = "0.10.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079" -dependencies = [ - "yoke", - "zerofrom", - "zerovec-derive", -] - -[[package]] -name = "zerovec-derive" -version = "0.10.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.100", -] - -[[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 = "zstd" -version = "1.1.4" -source = "git+https://github.com/scroll-tech/reth?branch=zkvm%2Feuclid-upgrade#6009111704d286ed6c737fe78dca09d613be0352" - -[[package]] -name = "zstd-sys" -version = "2.0.15+zstd.1.5.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb81183ddd97d0c74cedf1d50d85c8d08c1b8b68ee863bdee9e706eedba1a237" -dependencies = [ - "bindgen 0.71.1", - "cc", - "pkg-config", -] diff --git a/zkvm-prover/Makefile b/zkvm-prover/Makefile index 1d5e1fbe4d..332f86610f 100644 --- a/zkvm-prover/Makefile +++ b/zkvm-prover/Makefile @@ -1,9 +1,9 @@ .PHONY: prover lint tests_binary ifeq (4.3,$(firstword $(sort $(MAKE_VERSION) 4.3))) - PLONKY3_VERSION=$(shell grep -m 1 "Plonky3.git" ./Cargo.lock | cut -d "#" -f2 | cut -c-7) + PLONKY3_VERSION=$(shell grep -m 1 "Plonky3.git" ../Cargo.lock | cut -d "#" -f2 | cut -c-7) else - PLONKY3_VERSION=$(shell grep -m 1 "Plonky3.git" ./Cargo.lock | cut -d "\#" -f2 | cut -c-7) + PLONKY3_VERSION=$(shell grep -m 1 "Plonky3.git" ../Cargo.lock | cut -d "\#" -f2 | cut -c-7) endif ZKVM_VERSION=$(shell ./print_high_zkvm_version.sh) @@ -40,7 +40,7 @@ prover: tests_binary: cargo clean && cargo test --release --no-run - ls target/release/deps/prover* | grep -v "\.d" | xargs -I{} ln -sf {} ./prover.test + ls ../target/release/deps/prover* | grep -v "\.d" | xargs -I{} ln -sf {} ./prover.test lint: cargo check --all-features diff --git a/zkvm-prover/config.json.template b/zkvm-prover/config.json.template new file mode 100644 index 0000000000..9aad78ead8 --- /dev/null +++ b/zkvm-prover/config.json.template @@ -0,0 +1,31 @@ +{ + "sdk_config": { + "prover_name_prefix": "test-prover", + "keys_dir": ".work", + "coordinator": { + "base_url": "", + "retry_count": 10, + "retry_wait_time_sec": 10, + "connection_timeout_sec": 1800 + }, + "l2geth": { + "endpoint": "" + }, + "prover": { + "circuit_type": 2, + "supported_proof_types": [ + 1, + 2, + 3 + ], + "circuit_version": "v0.13.1" + }, + "db_path": ".work/db" + }, + "circuits": { + "euclidV2": { + "hard_fork_name": "euclidV2", + "workspace_path": ".work" + } + } +} \ No newline at end of file diff --git a/zkvm-prover/print_high_zkvm_version.sh b/zkvm-prover/print_high_zkvm_version.sh index c4b6ffa1c5..e9318ccfc7 100755 --- a/zkvm-prover/print_high_zkvm_version.sh +++ b/zkvm-prover/print_high_zkvm_version.sh @@ -1,7 +1,7 @@ #!/bin/bash set -ue -higher_zkvm_item=`grep "zkvm-prover" ./Cargo.lock | sort | uniq | awk -F "[#=]" '{print $3" "$4}' | sort -k 1 | tail -n 1` +higher_zkvm_item=`grep "zkvm-prover" ../Cargo.lock | sort | uniq | awk -F "[#=]" '{print $3" "$4}' | sort -k 1 | tail -n 1` higher_version=`echo $higher_zkvm_item | awk '{print $1}'` From cc40ab444a374f19b79834652fa61ddecac56689 Mon Sep 17 00:00:00 2001 From: Ho Date: Sun, 22 Jun 2025 22:16:49 +0900 Subject: [PATCH 03/14] fix CI --- common/libzkp/lib.go | 49 +++++++++++----------- common/libzkp/mock_universal_task.go | 41 ++++++++++++++++++ common/libzkp/universal_task.go | 36 ++++++++++++++++ coordinator/test/mock_prover.go | 62 ++++++++++++++-------------- 4 files changed, 134 insertions(+), 54 deletions(-) create mode 100644 common/libzkp/mock_universal_task.go create mode 100644 common/libzkp/universal_task.go diff --git a/common/libzkp/lib.go b/common/libzkp/lib.go index c5c69a5dba..ff19c78f4a 100644 --- a/common/libzkp/lib.go +++ b/common/libzkp/lib.go @@ -11,6 +11,7 @@ import "C" //nolint:typecheck import ( "fmt" "os" + "scroll-tech/common/types/message" "unsafe" ) @@ -73,32 +74,29 @@ func VerifyBundleProof(proofData, forkName string) bool { return result != 0 } -// Generate a universal task -func GenerateUniversalTask(taskType int, taskJSON, forkName string) (bool, string, string, []byte) { - cTask := goToCString(taskJSON) - cForkName := goToCString(forkName) - defer freeCString(cTask) - defer freeCString(cForkName) - - result := C.gen_universal_task(C.int(taskType), cTask, cForkName) - defer C.release_task_result(result) - - // Check if the operation was successful - if result.ok == 0 { - return false, "", "", nil - } - - // Convert C strings to Go strings - universalTask := C.GoString(result.universal_task) - metadata := C.GoString(result.metadata) +// TaskType enum values matching the Rust enum +const ( + TaskTypeChunk = 0 + TaskTypeBatch = 1 + TaskTypeBundle = 2 +) - // Convert C array to Go slice - piHash := make([]byte, 32) - for i := 0; i < 32; i++ { - piHash[i] = byte(result.expected_pi_hash[i]) +func fromMessageTaskType(taskType int) int { + switch message.ProofType(taskType) { + case message.ProofTypeChunk: + return TaskTypeChunk + case message.ProofTypeBatch: + return TaskTypeBatch + case message.ProofTypeBundle: + return TaskTypeBundle + default: + panic(fmt.Sprintf("unsupported proof type: %d", taskType)) } +} - return true, universalTask, metadata, piHash +// Generate a universal task +func GenerateUniversalTask(taskType int, taskJSON, forkName string) (bool, string, string, []byte) { + return generateUniversalTask(fromMessageTaskType(taskType), taskJSON, forkName) } // Generate wrapped proof @@ -109,7 +107,10 @@ func GenerateWrappedProof(proofJSON, metadata string, vkData []byte) string { defer freeCString(cMetadata) // Create a C array from Go slice - cVkData := (*C.char)(unsafe.Pointer(&vkData[0])) + var cVkData *C.char + if len(vkData) > 0 { + cVkData = (*C.char)(unsafe.Pointer(&vkData[0])) + } resultPtr := C.gen_wrapped_proof(cProofJSON, cMetadata, cVkData, C.size_t(len(vkData))) if resultPtr == nil { diff --git a/common/libzkp/mock_universal_task.go b/common/libzkp/mock_universal_task.go new file mode 100644 index 0000000000..15f20fd9ef --- /dev/null +++ b/common/libzkp/mock_universal_task.go @@ -0,0 +1,41 @@ +//go:build mock_verifier + +package libzkp + +import ( + "encoding/json" + "fmt" + "scroll-tech/common/types/message" + + "github.com/scroll-tech/go-ethereum/common" +) + +func generateUniversalTask(taskType int, taskJSON, forkName string) (bool, string, string, []byte) { + + fmt.Printf("call mocked generate universal task %d, taskJson %s\n", taskType, taskJSON) + var metadata interface{} + switch taskType { + case TaskTypeChunk: + metadata = struct { + ChunkInfo *message.ChunkInfo `json:"chunk_info"` + }{ChunkInfo: &message.ChunkInfo{}} + case TaskTypeBatch: + metadata = struct { + BatchInfo *message.OpenVMBatchInfo `json:"batch_info"` + BatchHash common.Hash `json:"batch_hash"` + }{BatchInfo: &message.OpenVMBatchInfo{}} + case TaskTypeBundle: + metadata = struct { + BundleInfo *message.OpenVMBundleInfo `json:"bundle_info"` + BunndlePIHash common.Hash `json:"bundle_pi_hash"` + }{BundleInfo: &message.OpenVMBundleInfo{}} + } + + encodeData, err := json.Marshal(metadata) + if err != nil { + fmt.Println("mock encoding json fail:", err) + return false, "", "", nil + } + + return true, "UniversalTask data is not parsed", string(encodeData), []byte{0} +} diff --git a/common/libzkp/universal_task.go b/common/libzkp/universal_task.go new file mode 100644 index 0000000000..b7ae53328a --- /dev/null +++ b/common/libzkp/universal_task.go @@ -0,0 +1,36 @@ +//go:build !mock_verifier + +package libzkp + +/* +#include +#include "libzkp.h" +*/ +import "C" //nolint:typecheck + +func generateUniversalTask(taskType int, taskJSON, forkName string) (bool, string, string, []byte) { + cTask := goToCString(taskJSON) + cForkName := goToCString(forkName) + defer freeCString(cTask) + defer freeCString(cForkName) + + result := C.gen_universal_task(C.int(taskType), cTask, cForkName) + defer C.release_task_result(result) + + // Check if the operation was successful + if result.ok == 0 { + return false, "", "", nil + } + + // Convert C strings to Go strings + universalTask := C.GoString(result.universal_task) + metadata := C.GoString(result.metadata) + + // Convert C array to Go slice + piHash := make([]byte, 32) + for i := 0; i < 32; i++ { + piHash[i] = byte(result.expected_pi_hash[i]) + } + + return true, universalTask, metadata, piHash +} diff --git a/coordinator/test/mock_prover.go b/coordinator/test/mock_prover.go index 2b87b2df6e..0076199b33 100644 --- a/coordinator/test/mock_prover.go +++ b/coordinator/test/mock_prover.go @@ -161,7 +161,7 @@ func (r *mockProver) getProverTask(t *testing.T, proofType message.ProofType) (* resp, err := client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Authorization", fmt.Sprintf("Bearer %s", token)). - SetBody(map[string]interface{}{"prover_height": 100, "task_types": []int{int(proofType)}}). + SetBody(map[string]interface{}{"universal": true, "prover_height": 100, "task_types": []int{int(proofType)}}). SetResult(&result). Post("http://" + r.coordinatorURL + "/coordinator/v1/get_task") assert.NoError(t, err) @@ -191,7 +191,7 @@ func (r *mockProver) tryGetProverTask(t *testing.T, proofType message.ProofType) resp, err := client.R(). SetHeader("Content-Type", "application/json"). SetHeader("Authorization", fmt.Sprintf("Bearer %s", token)). - SetBody(map[string]interface{}{"prover_height": 100, "task_type": int(proofType)}). + SetBody(map[string]interface{}{"prover_height": 100, "task_type": int(proofType), "universal": true}). SetResult(&result). Post("http://" + r.coordinatorURL + "/coordinator/v1/get_task") assert.NoError(t, err) @@ -207,32 +207,33 @@ func (r *mockProver) submitProof(t *testing.T, proverTaskSchema *types.GetTaskSc } var proof []byte - switch message.ProofType(proverTaskSchema.TaskType) { - case message.ProofTypeChunk: - encodeData, err := json.Marshal(message.OpenVMChunkProof{VmProof: &message.OpenVMProof{}, MetaData: struct { - ChunkInfo *message.ChunkInfo `json:"chunk_info"` - }{ChunkInfo: &message.ChunkInfo{}}}) - assert.NoError(t, err) - assert.NotEmpty(t, encodeData) - proof = encodeData - case message.ProofTypeBatch: - encodeData, err := json.Marshal(message.OpenVMBatchProof{VmProof: &message.OpenVMProof{}}) - assert.NoError(t, err) - assert.NotEmpty(t, encodeData) - proof = encodeData - } - - if proofStatus == verifiedFailed { - switch proverTaskSchema.TaskType { - case int(message.ProofTypeChunk): - encodeData, err := json.Marshal(message.OpenVMChunkProof{VmProof: &message.OpenVMProof{Proof: []byte(verifier.InvalidTestProof)}, MetaData: struct { - ChunkInfo *message.ChunkInfo `json:"chunk_info"` - }{ChunkInfo: &message.ChunkInfo{}}}) + if proofStatus != verifiedFailed { + switch message.ProofType(proverTaskSchema.TaskType) { + case message.ProofTypeChunk: + fallthrough + case message.ProofTypeBatch: + encodeData, err := json.Marshal(&message.OpenVMProof{}) + assert.NoError(t, err) + assert.NotEmpty(t, encodeData) + proof = encodeData + case message.ProofTypeBundle: + encodeData, err := json.Marshal(&message.OpenVMEvmProof{}) + assert.NoError(t, err) + assert.NotEmpty(t, encodeData) + proof = encodeData + } + } else { + // in "verifiedFailed" status, we purpose the mockprover submit proof but not valid + switch message.ProofType(proverTaskSchema.TaskType) { + case message.ProofTypeChunk: + fallthrough + case message.ProofTypeBatch: + encodeData, err := json.Marshal(&message.OpenVMProof{Proof: []byte(verifier.InvalidTestProof)}) assert.NoError(t, err) assert.NotEmpty(t, encodeData) proof = encodeData - case int(message.ProofTypeBatch): - encodeData, err := json.Marshal(&message.OpenVMBatchProof{VmProof: &message.OpenVMProof{Proof: []byte(verifier.InvalidTestProof)}}) + case message.ProofTypeBundle: + encodeData, err := json.Marshal(&message.OpenVMEvmProof{Proof: []byte(verifier.InvalidTestProof)}) assert.NoError(t, err) assert.NotEmpty(t, encodeData) proof = encodeData @@ -240,11 +241,12 @@ func (r *mockProver) submitProof(t *testing.T, proverTaskSchema *types.GetTaskSc } submitProof := types.SubmitProofParameter{ - UUID: proverTaskSchema.UUID, - TaskID: proverTaskSchema.TaskID, - TaskType: proverTaskSchema.TaskType, - Status: int(proofMsgStatus), - Proof: string(proof), + UUID: proverTaskSchema.UUID, + TaskID: proverTaskSchema.TaskID, + TaskType: proverTaskSchema.TaskType, + Status: int(proofMsgStatus), + Proof: string(proof), + Universal: true, } token, authErrCode, errMsg := r.connectToCoordinator(t, []types.ProverType{types.MakeProverType(message.ProofType(proverTaskSchema.TaskType))}) From 43f3c7359755f36962b29c4b8bbf97d7ca58d8d0 Mon Sep 17 00:00:00 2001 From: Ho Date: Sun, 22 Jun 2025 22:17:16 +0900 Subject: [PATCH 04/14] build prover with gpu patches --- zkvm-prover/.cargo/config.toml | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 zkvm-prover/.cargo/config.toml diff --git a/zkvm-prover/.cargo/config.toml b/zkvm-prover/.cargo/config.toml new file mode 100644 index 0000000000..95319ace8f --- /dev/null +++ b/zkvm-prover/.cargo/config.toml @@ -0,0 +1,32 @@ + +[patch."https://github.com/openvm-org/stark-backend.git"] +openvm-stark-backend = { git = "ssh://git@github.com/scroll-tech/openvm-stark-gpu.git", branch = "main", features = ["gpu"] } +openvm-stark-sdk = { git = "ssh://git@github.com/scroll-tech/openvm-stark-gpu.git", branch = "main", features = ["gpu"] } + +[patch."https://github.com/Plonky3/Plonky3.git"] +p3-air = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", tag = "v0.2.0" } +p3-field = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", tag = "v0.2.0" } +p3-commit = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", tag = "v0.2.0" } +p3-matrix = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", tag = "v0.2.0" } +p3-baby-bear = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", features = [ + "nightly-features", +], tag = "v0.2.0" } +p3-koala-bear = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", tag = "v0.2.0" } +p3-util = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", tag = "v0.2.0" } +p3-challenger = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", tag = "v0.2.0" } +p3-dft = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", tag = "v0.2.0" } +p3-fri = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", tag = "v0.2.0" } +p3-goldilocks = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", tag = "v0.2.0" } +p3-keccak = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", tag = "v0.2.0" } +p3-keccak-air = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", tag = "v0.2.0" } +p3-blake3 = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", tag = "v0.2.0" } +p3-mds = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", tag = "v0.2.0" } +p3-merkle-tree = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", tag = "v0.2.0" } +p3-monty-31 = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", tag = "v0.2.0" } +p3-poseidon = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", tag = "v0.2.0" } +p3-poseidon2 = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", tag = "v0.2.0" } +p3-poseidon2-air = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", tag = "v0.2.0" } +p3-symmetric = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", tag = "v0.2.0" } +p3-uni-stark = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", tag = "v0.2.0" } +p3-maybe-rayon = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", tag = "v0.2.0" } # the "parallel" feature is NOT on by default to allow single-threaded benchmarking +p3-bn254-fr = { git = "ssh://git@github.com/scroll-tech/plonky3-gpu.git", tag = "v0.2.0" } \ No newline at end of file From bdc28676cadfcb9a7c3e55cf91ec241032115530 Mon Sep 17 00:00:00 2001 From: Ho Date: Sun, 22 Jun 2025 22:19:29 +0900 Subject: [PATCH 05/14] fixing goimports --- common/libzkp/lib.go | 3 ++- common/libzkp/mock_universal_task.go | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/common/libzkp/lib.go b/common/libzkp/lib.go index ff19c78f4a..38e217eb94 100644 --- a/common/libzkp/lib.go +++ b/common/libzkp/lib.go @@ -11,8 +11,9 @@ import "C" //nolint:typecheck import ( "fmt" "os" - "scroll-tech/common/types/message" "unsafe" + + "scroll-tech/common/types/message" ) // Helper function to convert Go string to C string and handle cleanup diff --git a/common/libzkp/mock_universal_task.go b/common/libzkp/mock_universal_task.go index 15f20fd9ef..5ce89f5021 100644 --- a/common/libzkp/mock_universal_task.go +++ b/common/libzkp/mock_universal_task.go @@ -5,6 +5,7 @@ package libzkp import ( "encoding/json" "fmt" + "scroll-tech/common/types/message" "github.com/scroll-tech/go-ethereum/common" From 1e4b261ecafc8c578154297c82ed8b4d099fa1c5 Mon Sep 17 00:00:00 2001 From: Ho Date: Mon, 23 Jun 2025 08:52:53 +0900 Subject: [PATCH 06/14] update integration CI --- .github/workflows/common.yml | 2 +- .github/workflows/integration.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/common.yml b/.github/workflows/common.yml index 466d732c3d..d89053cf99 100644 --- a/.github/workflows/common.yml +++ b/.github/workflows/common.yml @@ -41,7 +41,7 @@ jobs: - name: Cache cargo uses: Swatinem/rust-cache@v2 with: - workspaces: "common/libzkp/impl -> target" + workspaces: ". -> target" # - name: Lint # working-directory: 'common' # run: | diff --git a/.github/workflows/integration.yml b/.github/workflows/integration.yml index c706aa9421..cedca2d847 100644 --- a/.github/workflows/integration.yml +++ b/.github/workflows/integration.yml @@ -38,7 +38,7 @@ jobs: make dev_docker make -C rollup mock_abi make -C common/bytecode all - make -C common/libzkp/impl build + make -C common/libzkp build - name: Run integration tests run: | go test -v -tags="mock_prover mock_verifier" -p 1 -coverprofile=coverage.txt scroll-tech/integration-test/... From ece12d6661185992c0282cacd4bc7559611883ad Mon Sep 17 00:00:00 2001 From: Ho Date: Tue, 24 Jun 2025 21:52:32 +0900 Subject: [PATCH 07/14] use rev in dep of zkvm-prover --- Cargo.lock | 14 +++++++------- Cargo.toml | 6 +++--- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 31c35ea775..91ecb1cdcb 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -7351,7 +7351,7 @@ dependencies = [ [[package]] name = "scroll-zkvm-prover" version = "0.4.0" -source = "git+https://github.com/scroll-tech/zkvm-prover?branch=refactor%2Fscroll_3#0f2b551c6a8c079967968f97d7488acb9b0c87ae" +source = "git+https://github.com/scroll-tech/zkvm-prover?rev=29c99de#29c99def6f496bf70a590823cda4b74f67625bc2" dependencies = [ "alloy-primitives", "base64 0.22.1", @@ -7387,7 +7387,7 @@ dependencies = [ [[package]] name = "scroll-zkvm-types" version = "0.4.0" -source = "git+https://github.com/scroll-tech/zkvm-prover?branch=refactor%2Fscroll_3#0f2b551c6a8c079967968f97d7488acb9b0c87ae" +source = "git+https://github.com/scroll-tech/zkvm-prover?rev=29c99de#29c99def6f496bf70a590823cda4b74f67625bc2" dependencies = [ "base64 0.22.1", "bincode", @@ -7407,7 +7407,7 @@ dependencies = [ [[package]] name = "scroll-zkvm-types-base" version = "0.4.0" -source = "git+https://github.com/scroll-tech/zkvm-prover?branch=refactor%2Fscroll_3#0f2b551c6a8c079967968f97d7488acb9b0c87ae" +source = "git+https://github.com/scroll-tech/zkvm-prover?rev=29c99de#29c99def6f496bf70a590823cda4b74f67625bc2" dependencies = [ "alloy-primitives", "alloy-serde 0.8.3", @@ -7422,7 +7422,7 @@ dependencies = [ [[package]] name = "scroll-zkvm-types-batch" version = "0.4.0" -source = "git+https://github.com/scroll-tech/zkvm-prover?branch=refactor%2Fscroll_3#0f2b551c6a8c079967968f97d7488acb9b0c87ae" +source = "git+https://github.com/scroll-tech/zkvm-prover?rev=29c99de#29c99def6f496bf70a590823cda4b74f67625bc2" dependencies = [ "alloy-primitives", "itertools 0.14.0", @@ -7435,7 +7435,7 @@ dependencies = [ [[package]] name = "scroll-zkvm-types-bundle" version = "0.4.0" -source = "git+https://github.com/scroll-tech/zkvm-prover?branch=refactor%2Fscroll_3#0f2b551c6a8c079967968f97d7488acb9b0c87ae" +source = "git+https://github.com/scroll-tech/zkvm-prover?rev=29c99de#29c99def6f496bf70a590823cda4b74f67625bc2" dependencies = [ "alloy-primitives", "itertools 0.14.0", @@ -7448,7 +7448,7 @@ dependencies = [ [[package]] name = "scroll-zkvm-types-chunk" version = "0.4.0" -source = "git+https://github.com/scroll-tech/zkvm-prover?branch=refactor%2Fscroll_3#0f2b551c6a8c079967968f97d7488acb9b0c87ae" +source = "git+https://github.com/scroll-tech/zkvm-prover?rev=29c99de#29c99def6f496bf70a590823cda4b74f67625bc2" dependencies = [ "alloy-primitives", "itertools 0.14.0", @@ -7467,7 +7467,7 @@ dependencies = [ [[package]] name = "scroll-zkvm-verifier" version = "0.4.0" -source = "git+https://github.com/scroll-tech/zkvm-prover?branch=refactor%2Fscroll_3#0f2b551c6a8c079967968f97d7488acb9b0c87ae" +source = "git+https://github.com/scroll-tech/zkvm-prover?rev=29c99de#29c99def6f496bf70a590823cda4b74f67625bc2" dependencies = [ "bincode", "eyre", diff --git a/Cargo.toml b/Cargo.toml index 72123d11ae..d7d4d05835 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -17,9 +17,9 @@ repository = "https://github.com/scroll-tech/scroll" version = "4.5.8" [workspace.dependencies] -scroll-zkvm-prover-euclid = { git = "https://github.com/scroll-tech/zkvm-prover", branch = "refactor/scroll_3", package = "scroll-zkvm-prover" } -scroll-zkvm-verifier-euclid = { git = "https://github.com/scroll-tech/zkvm-prover", branch = "refactor/scroll_3", package = "scroll-zkvm-verifier" } -scroll-zkvm-types = { git = "https://github.com/scroll-tech/zkvm-prover", branch = "refactor/scroll_3" } +scroll-zkvm-prover-euclid = { git = "https://github.com/scroll-tech/zkvm-prover", rev = "29c99de", package = "scroll-zkvm-prover" } +scroll-zkvm-verifier-euclid = { git = "https://github.com/scroll-tech/zkvm-prover", rev = "29c99de", package = "scroll-zkvm-verifier" } +scroll-zkvm-types = { git = "https://github.com/scroll-tech/zkvm-prover", rev = "29c99de" } sbv-primitives = { git = "https://github.com/scroll-tech/stateless-block-verifier", branch = "zkvm/euclid-upgrade", features = ["scroll"] } sbv-utils = { git = "https://github.com/scroll-tech/stateless-block-verifier", branch = "zkvm/euclid-upgrade" } From 74e606098e4193d97e3a9f0cccc0dcdc77589989 Mon Sep 17 00:00:00 2001 From: Ho Date: Tue, 24 Jun 2025 21:54:25 +0900 Subject: [PATCH 08/14] update according to review: move libzkp --- .github/workflows/coordinator.yml | 2 +- .github/workflows/integration.yml | 2 +- README.md | 2 +- build/dockerfiles/coordinator-api.Dockerfile | 6 +++--- common/libzkp/go.mod | 3 --- common/version/version.go | 2 +- coordinator/Makefile | 16 ++++++++-------- .../internal/logic/provertask/prover_task.go | 3 ++- .../internal/logic/submitproof/proof_receiver.go | 3 ++- coordinator/internal/logic/verifier/verifier.go | 7 ++++--- {common => coordinator}/libzkp/.gitignore | 0 {common => coordinator}/libzkp/Makefile | 0 {common => coordinator}/libzkp/e2e-test.sh | 2 +- {common => coordinator}/libzkp/lib.go | 0 {common => coordinator}/libzkp/libzkp.h | 0 .../libzkp/mock_universal_task.go | 4 ++-- {common => coordinator}/libzkp/universal_task.go | 0 go.work | 1 - 18 files changed, 26 insertions(+), 27 deletions(-) delete mode 100644 common/libzkp/go.mod rename {common => coordinator}/libzkp/.gitignore (100%) rename {common => coordinator}/libzkp/Makefile (100%) rename {common => coordinator}/libzkp/e2e-test.sh (96%) rename {common => coordinator}/libzkp/lib.go (100%) rename {common => coordinator}/libzkp/libzkp.h (100%) rename {common => coordinator}/libzkp/mock_universal_task.go (88%) rename {common => coordinator}/libzkp/universal_task.go (100%) diff --git a/.github/workflows/coordinator.yml b/.github/workflows/coordinator.yml index af47829ece..604b6aae20 100644 --- a/.github/workflows/coordinator.yml +++ b/.github/workflows/coordinator.yml @@ -113,7 +113,7 @@ jobs: working-directory: 'coordinator' run: | make libzkp - # go test -exec "env LD_LIBRARY_PATH=${PWD}/../common/libzkp/lib" -v -race -gcflags="-l" -ldflags="-s=false" -coverpkg="scroll-tech/coordinator" -coverprofile=coverage.txt -covermode=atomic ./... + # go test -exec "env LD_LIBRARY_PATH=${PWD}/libzkp/lib" -v -race -gcflags="-l" -ldflags="-s=false" -coverpkg="scroll-tech/coordinator" -coverprofile=coverage.txt -covermode=atomic ./... go test -v -race -gcflags="-l" -ldflags="-s=false" -coverprofile=coverage.txt -covermode=atomic -tags mock_verifier ./... - name: Upload coverage reports to Codecov uses: codecov/codecov-action@v3 diff --git a/.github/workflows/integration.yml b/.github/workflows/integration.yml index cedca2d847..fb2b2190d0 100644 --- a/.github/workflows/integration.yml +++ b/.github/workflows/integration.yml @@ -38,7 +38,7 @@ jobs: make dev_docker make -C rollup mock_abi make -C common/bytecode all - make -C common/libzkp build + make -C coordinator/libzkp build - name: Run integration tests run: | go test -v -tags="mock_prover mock_verifier" -p 1 -coverprofile=coverage.txt scroll-tech/integration-test/... diff --git a/README.md b/README.md index 12d7b1cfd4..51ab8df057 100644 --- a/README.md +++ b/README.md @@ -28,7 +28,7 @@ We welcome community contributions to this repository. Before you submit any iss ## Prerequisites + Go 1.21 -+ Rust (for version, see [rust-toolchain](./common/libzkp/impl/rust-toolchain)) ++ Rust (for version, see [rust-toolchain](./rust-toolchain)) + Hardhat / Foundry + Docker diff --git a/build/dockerfiles/coordinator-api.Dockerfile b/build/dockerfiles/coordinator-api.Dockerfile index 31e5789c51..5f30ff76ad 100644 --- a/build/dockerfiles/coordinator-api.Dockerfile +++ b/build/dockerfiles/coordinator-api.Dockerfile @@ -40,10 +40,10 @@ RUN go mod download -x # Build coordinator FROM base as builder COPY . . -#RUN cp -r ./common/libzkp/interface ./coordinator/internal/logic/verifier/lib -COPY --from=zkp-builder /app/target/release/libzkp.so ./common/libzkp/lib/ +#RUN cp -r ./coordinator/libzkp/interface ./coordinator/internal/logic/verifier/lib +COPY --from=zkp-builder /app/target/release/libzkp.so ./coordinator/libzkp/lib/ RUN cd ./coordinator && CGO_LDFLAGS="-Wl,--no-as-needed -ldl" make coordinator_api && mv ./build/bin/coordinator_api /bin/coordinator_api -RUN mv common/libzkp/lib /bin/ +RUN mv coordinator/libzkp/lib /bin/ # Pull coordinator into a second stage deploy ubuntu container FROM nvidia/cuda:11.7.1-runtime-ubuntu22.04 diff --git a/common/libzkp/go.mod b/common/libzkp/go.mod deleted file mode 100644 index 5cd5035687..0000000000 --- a/common/libzkp/go.mod +++ /dev/null @@ -1,3 +0,0 @@ -module scroll-tech/common/libzkp - -go 1.22 diff --git a/common/version/version.go b/common/version/version.go index 1061e5cd0c..52bec79cda 100644 --- a/common/version/version.go +++ b/common/version/version.go @@ -23,7 +23,7 @@ var commit = func() string { return "000000" }() -// ZkVersion is commit-id of common/libzkp/impl/cargo.lock/scroll-prover and halo2, contacted by a "-" +// ZkVersion is commit-id of cargo.lock/zkvm-prover and openvm, contacted by a "-" // The default `000000-000000` is set for integration test, and will be overwritten by coordinator's & prover's actual compilations (see their Makefiles). var ZkVersion = "000000-000000" diff --git a/coordinator/Makefile b/coordinator/Makefile index d7e0cf0a04..5e97cf4e6d 100644 --- a/coordinator/Makefile +++ b/coordinator/Makefile @@ -2,6 +2,7 @@ IMAGE_VERSION=latest REPO_ROOT_DIR=./.. +LIBZKP_PATH=libzkp/lib/libzkp.so ifeq (4.3,$(firstword $(sort $(MAKE_VERSION) 4.3))) ZKVM_VERSION=$(shell grep -m 1 "zkvm-prover?" ../Cargo.lock | cut -d "#" -f2 | cut -c-7) @@ -16,15 +17,15 @@ ZK_VERSION=${ZKVM_VERSION}-${OPENVM_VERSION} test: go test -v -race -coverprofile=coverage.txt -covermode=atomic -p 1 $(PWD)/... -../common/libzkp/lib/libzkp.so: - $(MAKE) -C ../common/libzkp build +$(LIBZKP_PATH): + $(MAKE) -C libzkp build clean_libzkp: - $(MAKE) -C ../common/libzkp clean + $(MAKE) -C libzkp clean -libzkp: clean_libzkp ../common/libzkp/lib/libzkp.so +libzkp: clean_libzkp $(LIBZKP_PATH) -coordinator_api: ../common/libzkp/lib/libzkp.so ## Builds the Coordinator api instance. +coordinator_api: $(LIBZKP_PATH) ## Builds the Coordinator api instance. go build -ldflags "-X scroll-tech/common/version.ZkVersion=${ZK_VERSION}" -o $(PWD)/build/bin/coordinator_api ./cmd/api coordinator_cron: @@ -42,14 +43,13 @@ mock_coordinator_api: ## Builds the mocked Coordinator instance. mock_coordinator_cron: ## Builds the mocked Coordinator instance. go build -tags="mock_prover mock_verifier" -o $(PWD)/build/bin/coordinator_cron ./cmd/cron -test-verifier: ../common/libzkp/lib/libzkp.so +test-verifier: $(LIBZKP_PATH) go test -tags ffi -timeout 0 -v ./internal/logic/verifier -test-gpu-verifier: ../common/libzkp/lib/libzkp.so +test-gpu-verifier: $(LIBZKP_PATH) go test -tags="gpu ffi" -timeout 0 -v ./internal/logic/verifier lint: ## Lint the files - used for CI -# cp -r ../common/libzkp/interface ./internal/logic/verifier/lib GOBIN=$(PWD)/build/bin go run ../build/lint.go clean: ## Empty out the bin folder diff --git a/coordinator/internal/logic/provertask/prover_task.go b/coordinator/internal/logic/provertask/prover_task.go index 91bc526ac1..bb75cf3f3e 100644 --- a/coordinator/internal/logic/provertask/prover_task.go +++ b/coordinator/internal/logic/provertask/prover_task.go @@ -13,7 +13,8 @@ import ( "github.com/scroll-tech/go-ethereum/params" "gorm.io/gorm" - "scroll-tech/common/libzkp" + "scroll-tech/coordinator/libzkp" + "scroll-tech/common/types/message" "scroll-tech/coordinator/internal/config" diff --git a/coordinator/internal/logic/submitproof/proof_receiver.go b/coordinator/internal/logic/submitproof/proof_receiver.go index 1ed9a25f7b..6b221de212 100644 --- a/coordinator/internal/logic/submitproof/proof_receiver.go +++ b/coordinator/internal/logic/submitproof/proof_receiver.go @@ -15,7 +15,8 @@ import ( "github.com/scroll-tech/go-ethereum/params" "gorm.io/gorm" - "scroll-tech/common/libzkp" + "scroll-tech/coordinator/libzkp" + "scroll-tech/common/types" "scroll-tech/common/types/message" diff --git a/coordinator/internal/logic/verifier/verifier.go b/coordinator/internal/logic/verifier/verifier.go index 999bad9032..7bd3801113 100644 --- a/coordinator/internal/logic/verifier/verifier.go +++ b/coordinator/internal/logic/verifier/verifier.go @@ -12,13 +12,14 @@ import ( "github.com/scroll-tech/go-ethereum/log" - "scroll-tech/common/libzkp" + "scroll-tech/coordinator/libzkp" + "scroll-tech/common/types/message" "scroll-tech/coordinator/internal/config" ) -// This struct maps to `CircuitConfig` in common/libzkp/impl/src/verifier.rs +// This struct maps to `CircuitConfig` in libzkp/impl/src/verifier.rs // Define a brand new struct here is to eliminate side effects in case fields // in `*config.CircuitConfig` being changed type rustCircuitConfig struct { @@ -33,7 +34,7 @@ func newRustCircuitConfig(cfg *config.CircuitConfig) *rustCircuitConfig { } } -// This struct maps to `VerifierConfig` in common/libzkp/impl/src/verifier.rs +// This struct maps to `VerifierConfig` in coordinator/libzkp/impl/src/verifier.rs // Define a brand new struct here is to eliminate side effects in case fields // in `*config.VerifierConfig` being changed type rustVerifierConfig struct { diff --git a/common/libzkp/.gitignore b/coordinator/libzkp/.gitignore similarity index 100% rename from common/libzkp/.gitignore rename to coordinator/libzkp/.gitignore diff --git a/common/libzkp/Makefile b/coordinator/libzkp/Makefile similarity index 100% rename from common/libzkp/Makefile rename to coordinator/libzkp/Makefile diff --git a/common/libzkp/e2e-test.sh b/coordinator/libzkp/e2e-test.sh similarity index 96% rename from common/libzkp/e2e-test.sh rename to coordinator/libzkp/e2e-test.sh index a46a979f53..75a91c48cf 100644 --- a/common/libzkp/e2e-test.sh +++ b/coordinator/libzkp/e2e-test.sh @@ -20,7 +20,7 @@ function build_test_bins() { cd $REPO/coordinator make libzkp go test -tags="gpu ffi" -timeout 0 -c ./internal/logic/verifier - cd $REPO/common/libzkp + cd $REPO/coordinator/libzkp } build_test_bins diff --git a/common/libzkp/lib.go b/coordinator/libzkp/lib.go similarity index 100% rename from common/libzkp/lib.go rename to coordinator/libzkp/lib.go diff --git a/common/libzkp/libzkp.h b/coordinator/libzkp/libzkp.h similarity index 100% rename from common/libzkp/libzkp.h rename to coordinator/libzkp/libzkp.h diff --git a/common/libzkp/mock_universal_task.go b/coordinator/libzkp/mock_universal_task.go similarity index 88% rename from common/libzkp/mock_universal_task.go rename to coordinator/libzkp/mock_universal_task.go index 5ce89f5021..f8f78a29e3 100644 --- a/common/libzkp/mock_universal_task.go +++ b/coordinator/libzkp/mock_universal_task.go @@ -27,8 +27,8 @@ func generateUniversalTask(taskType int, taskJSON, forkName string) (bool, strin }{BatchInfo: &message.OpenVMBatchInfo{}} case TaskTypeBundle: metadata = struct { - BundleInfo *message.OpenVMBundleInfo `json:"bundle_info"` - BunndlePIHash common.Hash `json:"bundle_pi_hash"` + BundleInfo *message.OpenVMBundleInfo `json:"bundle_info"` + BundlePIHash common.Hash `json:"bundle_pi_hash"` }{BundleInfo: &message.OpenVMBundleInfo{}} } diff --git a/common/libzkp/universal_task.go b/coordinator/libzkp/universal_task.go similarity index 100% rename from common/libzkp/universal_task.go rename to coordinator/libzkp/universal_task.go diff --git a/go.work b/go.work index 53e0310311..4cbfe753ee 100644 --- a/go.work +++ b/go.work @@ -3,7 +3,6 @@ go 1.22.4 use ( ./bridge-history-api ./common - ./common/libzkp ./coordinator ./database ./rollup From 9a139f9e2cc0bcf5d880ecc044a8b2d9649ea608 Mon Sep 17 00:00:00 2001 From: georgehao Date: Wed, 25 Jun 2025 10:28:45 +0800 Subject: [PATCH 09/14] move libzkp to internal --- .github/workflows/coordinator.yml | 2 -- coordinator/Makefile | 6 +++--- coordinator/{ => internal/logic}/libzkp/.gitignore | 0 coordinator/{ => internal/logic}/libzkp/Makefile | 0 coordinator/{ => internal/logic}/libzkp/e2e-test.sh | 0 coordinator/{ => internal/logic}/libzkp/lib.go | 0 coordinator/{ => internal/logic}/libzkp/libzkp.h | 0 .../{ => internal/logic}/libzkp/mock_universal_task.go | 0 coordinator/{ => internal/logic}/libzkp/universal_task.go | 0 coordinator/internal/logic/provertask/prover_task.go | 3 +-- coordinator/internal/logic/submitproof/proof_receiver.go | 3 +-- coordinator/internal/logic/verifier/verifier.go | 3 +-- go.work.sum | 2 ++ 13 files changed, 8 insertions(+), 11 deletions(-) rename coordinator/{ => internal/logic}/libzkp/.gitignore (100%) rename coordinator/{ => internal/logic}/libzkp/Makefile (100%) rename coordinator/{ => internal/logic}/libzkp/e2e-test.sh (100%) rename coordinator/{ => internal/logic}/libzkp/lib.go (100%) rename coordinator/{ => internal/logic}/libzkp/libzkp.h (100%) rename coordinator/{ => internal/logic}/libzkp/mock_universal_task.go (100%) rename coordinator/{ => internal/logic}/libzkp/universal_task.go (100%) diff --git a/.github/workflows/coordinator.yml b/.github/workflows/coordinator.yml index 604b6aae20..3c3ee02900 100644 --- a/.github/workflows/coordinator.yml +++ b/.github/workflows/coordinator.yml @@ -112,8 +112,6 @@ jobs: - name: Test coordinator packages working-directory: 'coordinator' run: | - make libzkp - # go test -exec "env LD_LIBRARY_PATH=${PWD}/libzkp/lib" -v -race -gcflags="-l" -ldflags="-s=false" -coverpkg="scroll-tech/coordinator" -coverprofile=coverage.txt -covermode=atomic ./... go test -v -race -gcflags="-l" -ldflags="-s=false" -coverprofile=coverage.txt -covermode=atomic -tags mock_verifier ./... - name: Upload coverage reports to Codecov uses: codecov/codecov-action@v3 diff --git a/coordinator/Makefile b/coordinator/Makefile index 5e97cf4e6d..a086b77374 100644 --- a/coordinator/Makefile +++ b/coordinator/Makefile @@ -2,7 +2,7 @@ IMAGE_VERSION=latest REPO_ROOT_DIR=./.. -LIBZKP_PATH=libzkp/lib/libzkp.so +LIBZKP_PATH=./internal/logic/libzkp/lib/libzkp.so ifeq (4.3,$(firstword $(sort $(MAKE_VERSION) 4.3))) ZKVM_VERSION=$(shell grep -m 1 "zkvm-prover?" ../Cargo.lock | cut -d "#" -f2 | cut -c-7) @@ -18,10 +18,10 @@ test: go test -v -race -coverprofile=coverage.txt -covermode=atomic -p 1 $(PWD)/... $(LIBZKP_PATH): - $(MAKE) -C libzkp build + $(MAKE) -C ./internal/logic/libzkp build clean_libzkp: - $(MAKE) -C libzkp clean + $(MAKE) -C ./internal/logic/libzkp clean libzkp: clean_libzkp $(LIBZKP_PATH) diff --git a/coordinator/libzkp/.gitignore b/coordinator/internal/logic/libzkp/.gitignore similarity index 100% rename from coordinator/libzkp/.gitignore rename to coordinator/internal/logic/libzkp/.gitignore diff --git a/coordinator/libzkp/Makefile b/coordinator/internal/logic/libzkp/Makefile similarity index 100% rename from coordinator/libzkp/Makefile rename to coordinator/internal/logic/libzkp/Makefile diff --git a/coordinator/libzkp/e2e-test.sh b/coordinator/internal/logic/libzkp/e2e-test.sh similarity index 100% rename from coordinator/libzkp/e2e-test.sh rename to coordinator/internal/logic/libzkp/e2e-test.sh diff --git a/coordinator/libzkp/lib.go b/coordinator/internal/logic/libzkp/lib.go similarity index 100% rename from coordinator/libzkp/lib.go rename to coordinator/internal/logic/libzkp/lib.go diff --git a/coordinator/libzkp/libzkp.h b/coordinator/internal/logic/libzkp/libzkp.h similarity index 100% rename from coordinator/libzkp/libzkp.h rename to coordinator/internal/logic/libzkp/libzkp.h diff --git a/coordinator/libzkp/mock_universal_task.go b/coordinator/internal/logic/libzkp/mock_universal_task.go similarity index 100% rename from coordinator/libzkp/mock_universal_task.go rename to coordinator/internal/logic/libzkp/mock_universal_task.go diff --git a/coordinator/libzkp/universal_task.go b/coordinator/internal/logic/libzkp/universal_task.go similarity index 100% rename from coordinator/libzkp/universal_task.go rename to coordinator/internal/logic/libzkp/universal_task.go diff --git a/coordinator/internal/logic/provertask/prover_task.go b/coordinator/internal/logic/provertask/prover_task.go index bb75cf3f3e..abe56b94ad 100644 --- a/coordinator/internal/logic/provertask/prover_task.go +++ b/coordinator/internal/logic/provertask/prover_task.go @@ -13,11 +13,10 @@ import ( "github.com/scroll-tech/go-ethereum/params" "gorm.io/gorm" - "scroll-tech/coordinator/libzkp" - "scroll-tech/common/types/message" "scroll-tech/coordinator/internal/config" + "scroll-tech/coordinator/internal/logic/libzkp" "scroll-tech/coordinator/internal/orm" coordinatorType "scroll-tech/coordinator/internal/types" ) diff --git a/coordinator/internal/logic/submitproof/proof_receiver.go b/coordinator/internal/logic/submitproof/proof_receiver.go index 6b221de212..ae54a17e60 100644 --- a/coordinator/internal/logic/submitproof/proof_receiver.go +++ b/coordinator/internal/logic/submitproof/proof_receiver.go @@ -15,12 +15,11 @@ import ( "github.com/scroll-tech/go-ethereum/params" "gorm.io/gorm" - "scroll-tech/coordinator/libzkp" - "scroll-tech/common/types" "scroll-tech/common/types/message" "scroll-tech/coordinator/internal/config" + "scroll-tech/coordinator/internal/logic/libzkp" "scroll-tech/coordinator/internal/logic/provertask" "scroll-tech/coordinator/internal/logic/verifier" "scroll-tech/coordinator/internal/orm" diff --git a/coordinator/internal/logic/verifier/verifier.go b/coordinator/internal/logic/verifier/verifier.go index 7bd3801113..f5b628e066 100644 --- a/coordinator/internal/logic/verifier/verifier.go +++ b/coordinator/internal/logic/verifier/verifier.go @@ -12,11 +12,10 @@ import ( "github.com/scroll-tech/go-ethereum/log" - "scroll-tech/coordinator/libzkp" - "scroll-tech/common/types/message" "scroll-tech/coordinator/internal/config" + "scroll-tech/coordinator/internal/logic/libzkp" ) // This struct maps to `CircuitConfig` in libzkp/impl/src/verifier.rs diff --git a/go.work.sum b/go.work.sum index c09efd6876..3faed37da3 100644 --- a/go.work.sum +++ b/go.work.sum @@ -671,6 +671,7 @@ github.com/bmizerany/pat v0.0.0-20170815010413-6226ea591a40 h1:y4B3+GPxKlrigF1ha github.com/bmizerany/pat v0.0.0-20170815010413-6226ea591a40/go.mod h1:8rLXio+WjiTceGBHIoTvn60HIbs7Hm7bcHjyrSqYB9c= github.com/boltdb/bolt v1.3.1 h1:JQmyP4ZBrce+ZQu0dY660FMfatumYDLun9hBCUVIkF4= github.com/boltdb/bolt v1.3.1/go.mod h1:clJnj/oiGkjum5o1McbSZDSLxVThjynRyGBgiAx27Ps= +github.com/btcsuite/btcd/btcec/v2 v2.2.0 h1:fzn1qaOt32TuLjFlkzYSsBC35Q3KUjT1SwPxiMSCF5k= github.com/btcsuite/btcd/btcec/v2 v2.2.0/go.mod h1:U7MHm051Al6XmscBQ0BoNydpOTsFAn707034b5nY8zU= github.com/btcsuite/btcd/chaincfg/chainhash v1.0.1 h1:q0rUy8C/TYNBQS1+CGKw68tLOFYSNEs0TFnxxnS9+4U= github.com/btcsuite/btcd/chaincfg/chainhash v1.0.1/go.mod h1:7SFka0XMvUgj3hfZtydOrQY2mwhPclbT2snogU7SQQc= @@ -791,6 +792,7 @@ github.com/deckarep/golang-set v1.8.0/go.mod h1:5nI87KwE7wgsBU1F4GKAw2Qod7p5kyS3 github.com/deckarep/golang-set/v2 v2.6.0/go.mod h1:VAky9rY/yGXJOLEDv3OMci+7wtDpOF4IN+y82NBOac4= github.com/decred/dcrd/crypto/blake256 v1.0.0 h1:/8DMNYp9SGi5f0w7uCm6d6M4OU2rGFK09Y2A4Xv7EE0= github.com/decred/dcrd/crypto/blake256 v1.0.0/go.mod h1:sQl2p6Y26YV+ZOcSTP6thNdn47hh8kt6rqSlvmrXFAc= +github.com/decred/dcrd/dcrec/secp256k1/v4 v4.0.1 h1:YLtO71vCjJRCBcrPMtQ9nqBsqpA1m5sE92cU+pd5Mcc= github.com/decred/dcrd/dcrec/secp256k1/v4 v4.0.1/go.mod h1:hyedUtir6IdtD/7lIxGeCxkaw7y45JueMRL4DIyJDKs= github.com/deepmap/oapi-codegen v1.6.0 h1:w/d1ntwh91XI0b/8ja7+u5SvA4IFfM0UNNLmiDR1gg0= github.com/deepmap/oapi-codegen v1.6.0/go.mod h1:ryDa9AgbELGeB+YEXE1dR53yAjHwFvE9iAUlWl9Al3M= From ec52fce35c64dfe1c9a2554b08cdc2cc14171c55 Mon Sep 17 00:00:00 2001 From: georgehao Date: Wed, 25 Jun 2025 10:30:32 +0800 Subject: [PATCH 10/14] update --- .github/workflows/coordinator.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/coordinator.yml b/.github/workflows/coordinator.yml index 3c3ee02900..53b1b98bd5 100644 --- a/.github/workflows/coordinator.yml +++ b/.github/workflows/coordinator.yml @@ -112,6 +112,7 @@ jobs: - name: Test coordinator packages working-directory: 'coordinator' run: | + make libzkp go test -v -race -gcflags="-l" -ldflags="-s=false" -coverprofile=coverage.txt -covermode=atomic -tags mock_verifier ./... - name: Upload coverage reports to Codecov uses: codecov/codecov-action@v3 From cd54da2d0e0923821b5729cce566861f3688bd34 Mon Sep 17 00:00:00 2001 From: georgehao Date: Wed, 25 Jun 2025 10:32:38 +0800 Subject: [PATCH 11/14] update docker file --- build/dockerfiles/coordinator-api.Dockerfile | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/build/dockerfiles/coordinator-api.Dockerfile b/build/dockerfiles/coordinator-api.Dockerfile index 5f30ff76ad..10fc53d928 100644 --- a/build/dockerfiles/coordinator-api.Dockerfile +++ b/build/dockerfiles/coordinator-api.Dockerfile @@ -40,10 +40,9 @@ RUN go mod download -x # Build coordinator FROM base as builder COPY . . -#RUN cp -r ./coordinator/libzkp/interface ./coordinator/internal/logic/verifier/lib -COPY --from=zkp-builder /app/target/release/libzkp.so ./coordinator/libzkp/lib/ +COPY --from=zkp-builder /app/target/release/libzkp.so ./coordinator/internal/logic/libzkp/lib/ RUN cd ./coordinator && CGO_LDFLAGS="-Wl,--no-as-needed -ldl" make coordinator_api && mv ./build/bin/coordinator_api /bin/coordinator_api -RUN mv coordinator/libzkp/lib /bin/ +RUN mv coordinator/internal/logic/libzkp/lib /bin/ # Pull coordinator into a second stage deploy ubuntu container FROM nvidia/cuda:11.7.1-runtime-ubuntu22.04 From 1651b3d827a58457ba63af061a5938287f3ec26e Mon Sep 17 00:00:00 2001 From: georgehao Date: Wed, 25 Jun 2025 10:35:16 +0800 Subject: [PATCH 12/14] update e2e-test path --- coordinator/internal/logic/libzkp/e2e-test.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/coordinator/internal/logic/libzkp/e2e-test.sh b/coordinator/internal/logic/libzkp/e2e-test.sh index 75a91c48cf..b9461cd5bc 100644 --- a/coordinator/internal/logic/libzkp/e2e-test.sh +++ b/coordinator/internal/logic/libzkp/e2e-test.sh @@ -20,7 +20,7 @@ function build_test_bins() { cd $REPO/coordinator make libzkp go test -tags="gpu ffi" -timeout 0 -c ./internal/logic/verifier - cd $REPO/coordinator/libzkp + cd $REPO/coordinator/internal/logic/libzkp } build_test_bins From 97085900cde7a0d415667fb7327a44815cccccd1 Mon Sep 17 00:00:00 2001 From: georgehao Date: Wed, 25 Jun 2025 10:37:48 +0800 Subject: [PATCH 13/14] fix test failed --- .github/workflows/integration.yml | 2 +- coordinator/internal/logic/verifier/verifier.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/integration.yml b/.github/workflows/integration.yml index fb2b2190d0..1a3a43d9ad 100644 --- a/.github/workflows/integration.yml +++ b/.github/workflows/integration.yml @@ -38,7 +38,7 @@ jobs: make dev_docker make -C rollup mock_abi make -C common/bytecode all - make -C coordinator/libzkp build + make -C coordinator/internal/logic/libzkp build - name: Run integration tests run: | go test -v -tags="mock_prover mock_verifier" -p 1 -coverprofile=coverage.txt scroll-tech/integration-test/... diff --git a/coordinator/internal/logic/verifier/verifier.go b/coordinator/internal/logic/verifier/verifier.go index f5b628e066..d62318d1e7 100644 --- a/coordinator/internal/logic/verifier/verifier.go +++ b/coordinator/internal/logic/verifier/verifier.go @@ -33,7 +33,7 @@ func newRustCircuitConfig(cfg *config.CircuitConfig) *rustCircuitConfig { } } -// This struct maps to `VerifierConfig` in coordinator/libzkp/impl/src/verifier.rs +// This struct maps to `VerifierConfig` in coordinator/internal/logic/libzkp/impl/src/verifier.rs // Define a brand new struct here is to eliminate side effects in case fields // in `*config.VerifierConfig` being changed type rustVerifierConfig struct { From 58e404635c892026defdbc0bb18d0cf89e00db83 Mon Sep 17 00:00:00 2001 From: georgehao Date: Wed, 25 Jun 2025 11:06:42 +0800 Subject: [PATCH 14/14] fix unit test failed --- coordinator/internal/logic/libzkp/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/coordinator/internal/logic/libzkp/Makefile b/coordinator/internal/logic/libzkp/Makefile index 5e961d08e2..24e7881099 100644 --- a/coordinator/internal/logic/libzkp/Makefile +++ b/coordinator/internal/logic/libzkp/Makefile @@ -3,7 +3,7 @@ build: @cargo build --release -p libzkp-c @mkdir -p lib - @cp -f ../../target/release/libzkp.so lib/ + @cp -f ../../../../target/release/libzkp.so lib/ fmt: @cargo fmt --all -- --check