diff --git a/.gitignore b/.gitignore index 22931e5..d69b4c8 100644 --- a/.gitignore +++ b/.gitignore @@ -20,9 +20,13 @@ target/ # option (not recommended) you can uncomment the following to ignore the entire idea folder. #.idea/ -.DS_Store -config.json keys/ +db/ # Helm chart related *.lock +*.tgz +.vscode/ + +.DS_Store +config.json diff --git a/Cargo.lock b/Cargo.lock index 78518c0..fbbd1b6 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1,6 +1,6 @@ # This file is automatically @generated by Cargo. # It is not intended for manual editing. -version = 3 +version = 4 [[package]] name = "addr2line" @@ -18,109 +18,588 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" [[package]] -name = "aes" -version = "0.8.4" +name = "aho-corasick" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" +checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" dependencies = [ - "cfg-if 1.0.0", - "cipher", - "cpufeatures", + "memchr", ] [[package]] -name = "aggregator" -version = "0.13.0" -source = "git+https://github.com/scroll-tech/zkevm-circuits.git?tag=v0.13.1#4009e5593f13ba73f64f556011ee5ef47bc4ebf3" +name = "allocator-api2" +version = "0.2.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f" + +[[package]] +name = "alloy" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d2cc5aeb8dfa1e451a49fac87bc4b86c5de40ebea153ed88e83eb92b8151e74" dependencies = [ - "ark-std 0.3.0", - "bitstream-io", + "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", + "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", + "alloy-trie", + "auto_impl", "c-kzg", - "ctor 0.1.26", - "encoder", - "env_logger 0.10.2", - "eth-types", - "ethers-core 2.0.7 (git+https://github.com/scroll-tech/ethers-rs.git?branch=v2.0.7)", - "gadgets", - "halo2-base", - "halo2-ecc", - "halo2_proofs", - "hex", - "itertools 0.11.0", - "log", - "num-bigint", - "once_cell", - "rand", - "revm-precompile", - "revm-primitives", + "derive_more 1.0.0", + "serde", +] + +[[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", + "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", - "snark-verifier", - "snark-verifier-sdk", - "strum 0.25.0", - "strum_macros 0.25.3", - "zkevm-circuits", + "winnow 0.7.6", ] [[package]] -name = "ahash" -version = "0.8.11" +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", + "thiserror 2.0.12", +] + +[[package]] +name = "alloy-eips" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" +checksum = "5591581ca2ab0b3e7226a4047f9a1bfcf431da1d0cce3752fda609fea3c27e37" dependencies = [ - "cfg-if 1.0.0", + "alloy-eip2124", + "alloy-eip2930", + "alloy-eip7702", + "alloy-primitives", + "alloy-rlp", + "alloy-serde", + "auto_impl", + "c-kzg", + "derive_more 1.0.0", "once_cell", - "version_check", - "zerocopy", + "serde", + "sha2", ] [[package]] -name = "aho-corasick" -version = "1.1.3" +name = "alloy-genesis" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916" +checksum = "0cded3a2d4bd7173f696458c5d4c98c18a628dfcc9f194385e80a486e412e2e0" dependencies = [ - "memchr", + "alloy-eips", + "alloy-primitives", + "alloy-serde", + "alloy-trie", + "serde", ] [[package]] -name = "allocator-api2" -version = "0.2.18" +name = "alloy-json-abi" +version = "0.8.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f" +checksum = "4012581681b186ba0882007ed873987cc37f86b1b488fe6b91d5efd0b585dc41" +dependencies = [ + "alloy-primitives", + "alloy-sol-type-parser", + "serde", + "serde_json", +] [[package]] -name = "alloy-primitives" -version = "0.7.4" +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 = "db8aa973e647ec336810a9356af8aea787249c9d00b1525359f3db29a68d231b" +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", + "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", + "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 1.0.0", + "cfg-if", "const-hex", - "derive_more", - "hex-literal", + "derive_more 1.0.0", + "foldhash", + "hashbrown 0.15.2", + "indexmap 2.9.0", "itoa", "k256", "keccak-asm", + "paste", "proptest", "rand", + "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.4", + "serde", + "serde_json", + "thiserror 2.0.12", + "tokio", + "tracing", + "url", + "wasmtimer", +] + [[package]] name = "alloy-rlp" -version = "0.3.5" +version = "0.3.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b155716bab55763c95ba212806cf43d05bcc70e5f35b02bad20cf5ec7fe11fed" +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.4", + "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", + "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", +] + +[[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", + "alloy-sol-types", + "itertools 0.14.0", + "serde", + "serde_json", + "thiserror 2.0.12", +] + +[[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", + "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.4", + "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" @@ -191,12 +670,6 @@ version = "1.0.86" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da" -[[package]] -name = "arc-swap" -version = "1.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69f7f8c3906b62b754cd5326047894316021dcfe5a194c8ea52bdd94934a3457" - [[package]] name = "ark-ff" version = "0.3.0" @@ -321,23 +794,14 @@ dependencies = [ "rand", ] -[[package]] -name = "array-init" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d62b7694a562cdf5a74227903507c56ab2cc8bdd1f781ed5cb4cf9c9f810bfc" - -[[package]] -name = "arrayref" -version = "0.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b4930d2cb77ce62f89ee5d5289b4ac049559b1c45539271f5ed4fdc7db34545" - [[package]] name = "arrayvec" version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" +dependencies = [ + "serde", +] [[package]] name = "async-compression" @@ -352,6 +816,28 @@ dependencies = [ "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.80" @@ -360,7 +846,7 @@ checksum = "c6fa2087f2753a7da8cc1c0dbfcf89579dd57458e36769de5ac750b4671737ca" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.100", ] [[package]] @@ -398,7 +884,7 @@ checksum = "3c87f3f15e7794432337fc718554eaa4dc8f04c9677a950ffe366f20a162ae42" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.100", ] [[package]] @@ -432,9 +918,9 @@ dependencies = [ "serde_json", "serde_path_to_error", "serde_urlencoded", - "sync_wrapper", + "sync_wrapper 0.1.2", "tokio", - "tower", + "tower 0.4.13", "tower-layer", "tower-service", ] @@ -464,7 +950,7 @@ checksum = "26b05800d2e817c8b3b4b54abd461726265fa9789ae34330622f2db9ee696f9d" dependencies = [ "addr2line", "cc", - "cfg-if 1.0.0", + "cfg-if", "libc", "miniz_oxide", "object", @@ -502,18 +988,41 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" [[package]] -name = "bech32" -version = "0.9.1" +name = "bindgen" +version = "0.69.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d86b93f97252c47b41663388e6d155714a9d0c398b99f1005cbc5f978b29f445" +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 = "bincode" -version = "1.3.3" +name = "bindgen" +version = "0.71.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" +checksum = "5f58bf3d7db68cfbac37cfc485a8d711e87e064c3d0fe0435b92f7a407f9d6b3" dependencies = [ - "serde", + "bitflags 2.9.0", + "cexpr", + "clang-sys", + "itertools 0.13.0", + "proc-macro2", + "quote", + "regex", + "rustc-hash 2.1.1", + "shlex", + "syn 2.0.100", ] [[package]] @@ -539,15 +1048,12 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1" - -[[package]] -name = "bitstream-io" -version = "2.3.0" +version = "2.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c12d1856e42f0d817a835fe55853957c85c8c8a470114029143d3f12671446e" +checksum = "5c8214115b7bf84099f1309324e63141d4c5d7cc26862f97a0a857dbefe165bd" +dependencies = [ + "serde", +] [[package]] name = "bitvec" @@ -557,38 +1063,9 @@ checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" dependencies = [ "funty", "radium", - "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.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23285ad32269793932e830392f2fe2f83e26488fd3ec778883a93c8323735780" -dependencies = [ - "arrayref", - "arrayvec", - "constant_time_eq", -] - -[[package]] -name = "block-buffer" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" -dependencies = [ - "block-padding", - "generic-array", + "serde", + "tap", + "wyz", ] [[package]] @@ -600,25 +1077,6 @@ dependencies = [ "generic-array", ] -[[package]] -name = "block-padding" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d696c370c750c948ada61c69a0ee2cbbb9c50b1019ddb86d9317157a99c2cae" - -[[package]] -name = "bls12_381" -version = "0.8.0" -source = "git+https://github.com/scroll-tech/bls12_381?branch=feat/impl_scalar_field#2c515f73a2462fef8681c8e884edf1710f52b22a" -dependencies = [ - "ff", - "group", - "pairing", - "pasta_curves", - "rand_core", - "subtle", -] - [[package]] name = "blst" version = "0.3.11" @@ -631,53 +1089,41 @@ dependencies = [ "zeroize", ] -[[package]] -name = "bs58" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf88ba1141d185c399bee5288d850d63b8369520c1eafc32a0430b5b6c287bf4" -dependencies = [ - "sha2", - "tinyvec", -] - [[package]] name = "bumpalo" version = "3.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" -[[package]] -name = "bus-mapping" -version = "0.13.0" -source = "git+https://github.com/scroll-tech/zkevm-circuits.git?tag=v0.13.1#4009e5593f13ba73f64f556011ee5ef47bc4ebf3" -dependencies = [ - "eth-types", - "ethers-core 2.0.7 (git+https://github.com/scroll-tech/ethers-rs.git?branch=v2.0.7)", - "ethers-providers 2.0.7 (registry+https://github.com/rust-lang/crates.io-index)", - "ethers-signers", - "gadgets", - "halo2_proofs", - "hex", - "itertools 0.11.0", - "log", - "mock", - "mpt-zktrie", - "num", - "poseidon-circuit", - "revm-precompile", - "serde", - "serde_json", - "strum 0.25.0", - "strum_macros 0.25.3", -] - [[package]] name = "byte-slice-cast" version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3ac9f8b63eca6fd385229b3675f6cc0dc5c8a5c8a54a59d4f52ffd670d87b0c" +[[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 = "byteorder" version = "1.5.0" @@ -693,36 +1139,50 @@ 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.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cdf100c4cea8f207e883ff91ca886d621d8a166cb04971dfaa9bb8fd99ed95df" +checksum = "f0307f72feab3300336fb803a57134159f6e20139af1357f36c54cb90d8e8928" dependencies = [ "blst", "cc", "glob", "hex", "libc", + "once_cell", "serde", ] [[package]] name = "cc" -version = "1.0.98" +version = "1.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41c270e7540d725e65ac7f1b212ac8ce349719624d7bcff99f8e2e488e8cf03f" +checksum = "8e3a13707ac958681c13b39b458c073d0d9bc8a22cb1b2f4c8e55eb72c13f362" dependencies = [ "jobserver", "libc", - "once_cell", + "shlex", ] [[package]] -name = "cfg-if" -version = "0.1.10" +name = "cexpr" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" +checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766" +dependencies = [ + "nom", +] [[package]] name = "cfg-if" @@ -746,13 +1206,14 @@ dependencies = [ ] [[package]] -name = "cipher" -version = "0.4.4" +name = "clang-sys" +version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" +checksum = "0b023947811758c97c59bf9d1c188fd619ad4718dcaa767947df1cadb14f39f4" dependencies = [ - "crypto-common", - "inout", + "glob", + "libc", + "libloading", ] [[package]] @@ -774,7 +1235,7 @@ dependencies = [ "anstream", "anstyle", "clap_lex", - "strsim 0.11.1", + "strsim", ] [[package]] @@ -786,7 +1247,7 @@ dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.100", ] [[package]] @@ -795,58 +1256,6 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "98cc8fbded0c607b7ba9dd60cd98df59af97e84d24e49c8557331cfc26d301ce" -[[package]] -name = "coins-bip32" -version = "0.8.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b6be4a5df2098cd811f3194f64ddb96c267606bffd9689ac7b0160097b01ad3" -dependencies = [ - "bs58", - "coins-core", - "digest 0.10.7", - "hmac", - "k256", - "serde", - "sha2", - "thiserror", -] - -[[package]] -name = "coins-bip39" -version = "0.8.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3db8fba409ce3dc04f7d804074039eb68b960b0829161f8e06c95fea3f122528" -dependencies = [ - "bitvec", - "coins-bip32", - "hmac", - "once_cell", - "pbkdf2 0.12.2", - "rand", - "sha2", - "thiserror", -] - -[[package]] -name = "coins-core" -version = "0.8.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5286a0843c21f8367f7be734f89df9b822e0321d8bcce8d6e735aadff7d74979" -dependencies = [ - "base64 0.21.7", - "bech32", - "bs58", - "digest 0.10.7", - "generic-array", - "hex", - "ripemd", - "serde", - "serde_derive", - "sha2", - "sha3 0.10.8", - "thiserror", -] - [[package]] name = "colorchoice" version = "1.0.1" @@ -855,11 +1264,11 @@ checksum = "0b6a852b24ab71dffc585bcb46eaf7959d175cb865a7152e35b348d1b2960422" [[package]] name = "const-hex" -version = "1.11.4" +version = "1.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70ff96486ccc291d36a958107caf2c0af8c78c0af7d31ae2f35ce055130de1a6" +checksum = "4b0485bab839b018a8f1723fc5391819fea5f8f0f32288ef8a735fd096b6160c" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "cpufeatures", "hex", "proptest", @@ -872,17 +1281,14 @@ version = "0.9.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" -[[package]] -name = "constant_time_eq" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7144d30dcf0fafbce74250a3963025d8d52177934239851c917d29f1df280c2" - [[package]] name = "convert_case" -version = "0.4.0" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" +checksum = "ec182b0ca2f35d8fc196cf3404988fd8b8c739a4d270ff118a398feb0cbec1ca" +dependencies = [ + "unicode-segmentation", +] [[package]] name = "core-foundation" @@ -910,36 +1316,35 @@ dependencies = [ ] [[package]] -name = "crc32fast" -version = "1.4.2" +name = "crc" +version = "3.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3" +checksum = "69e6e4d7b33a94f0991c26729976b10ebde1d34c3ee82408fb536164fa10d636" dependencies = [ - "cfg-if 1.0.0", + "crc-catalog", ] [[package]] -name = "crossbeam" -version = "0.8.4" +name = "crc-catalog" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1137cd7e7fc0fb5d3c5a8678be38ec56e819125d8d7907411fe24ccb943faca8" -dependencies = [ - "crossbeam-channel", - "crossbeam-deque", - "crossbeam-epoch", - "crossbeam-queue", - "crossbeam-utils", -] +checksum = "19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5" [[package]] -name = "crossbeam-channel" -version = "0.5.13" +name = "crc32fast" +version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33480d6946193aa8033910124896ca395333cae7e2d1113d1fef6c3272217df2" +checksum = "a97769d94ddab943e4510d138150169a2758b5ef3eb191a9ee688de3e23ef7b3" dependencies = [ - "crossbeam-utils", + "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-deque" version = "0.8.5" @@ -959,15 +1364,6 @@ dependencies = [ "crossbeam-utils", ] -[[package]] -name = "crossbeam-queue" -version = "0.3.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df0346b5d5e76ac2fe4e327c5fd1118d6be7c51dfb18f9b7922923f287471e35" -dependencies = [ - "crossbeam-utils", -] - [[package]] name = "crossbeam-utils" version = "0.8.20" @@ -1002,40 +1398,11 @@ dependencies = [ "typenum", ] -[[package]] -name = "ctor" -version = "0.1.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d2301688392eb071b0bf1a37be05c469d3cc4dbbd95df672fe28ab021e6a096" -dependencies = [ - "quote", - "syn 1.0.109", -] - -[[package]] -name = "ctor" -version = "0.2.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edb49164822f3ee45b17acd4a208cfc1251410cf0cad9a833234c9890774dd9f" -dependencies = [ - "quote", - "syn 2.0.66", -] - -[[package]] -name = "ctr" -version = "0.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835" -dependencies = [ - "cipher", -] - [[package]] name = "darling" -version = "0.13.4" +version = "0.20.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a01d95850c592940db9b8194bc39f4bc0e89dee5c4265e4b1807c34a9aba453c" +checksum = "fc7f46116c46ff9ab3eb1597a45688b6715c6e628b5c133e288e709a29bcb4ee" dependencies = [ "darling_core", "darling_macro", @@ -1043,27 +1410,41 @@ dependencies = [ [[package]] name = "darling_core" -version = "0.13.4" +version = "0.20.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "859d65a907b6852c9361e3185c862aae7fafd2887876799fa55f5f99dc40d610" +checksum = "0d00b9596d185e565c2207a0b01f8bd1a135483d02d9b7b0a54b11da8d53412e" dependencies = [ "fnv", "ident_case", "proc-macro2", "quote", - "strsim 0.10.0", - "syn 1.0.109", + "strsim", + "syn 2.0.100", ] [[package]] name = "darling_macro" -version = "0.13.4" +version = "0.20.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c972679f83bdf9c42bd905396b6c3588a843a17f0f16dfcfa3e2c5d57441835" +checksum = "fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead" dependencies = [ "darling_core", "quote", - "syn 1.0.109", + "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]] @@ -1082,6 +1463,16 @@ dependencies = [ "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" @@ -1099,13 +1490,33 @@ version = "0.99.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321" dependencies = [ - "convert_case", "proc-macro2", "quote", - "rustc_version 0.4.0", "syn 1.0.109", ] +[[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", + "proc-macro2", + "quote", + "syn 2.0.100", + "unicode-xid", +] + [[package]] name = "digest" version = "0.9.0" @@ -1121,17 +1532,34 @@ version = "0.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" dependencies = [ - "block-buffer 0.10.4", + "block-buffer", "const-oid", "crypto-common", "subtle", ] [[package]] -name = "dotenvy" -version = "0.15.7" +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 = "dunce" +version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1aaf95b3e5c8f23aa320147307562d361db0ae0d51242340f558153b4eb2439b" +checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" [[package]] name = "dyn-clone" @@ -1149,15 +1577,16 @@ dependencies = [ "digest 0.10.7", "elliptic-curve", "rfc6979", + "serdect", "signature", "spki", ] [[package]] name = "either" -version = "1.12.0" +version = "1.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3dca9240753cf90908d7e4aac30f630662b02aebaa1b58a3cadabdb23385b58b" +checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" [[package]] name = "elliptic-curve" @@ -1174,25 +1603,18 @@ dependencies = [ "pkcs8", "rand_core", "sec1", + "serdect", "subtle", "zeroize", ] -[[package]] -name = "encoder" -version = "0.1.0" -source = "git+https://github.com/scroll-tech/da-codec.git?tag=v0.1.0#5a28b752d4504bf0966734fe4a6a5433981c74c2" -dependencies = [ - "zstd", -] - [[package]] name = "encoding_rs" version = "0.8.34" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b45de904aa0b010bce2ab45264d0631681847fa7b6f2eaa7dab7619943bc4f59" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", ] [[package]] @@ -1209,7 +1631,7 @@ dependencies = [ "rand", "rlp", "serde", - "sha3 0.10.8", + "sha3", "zeroize", ] @@ -1221,43 +1643,7 @@ checksum = "6fd000fd6988e73bbe993ea3db9b1aa64906ab88766d654973924340c8cddb42" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", -] - -[[package]] -name = "env_filter" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a009aa4810eb158359dda09d0c87378e4bbb89b5a801f016885a4707ba24f7ea" -dependencies = [ - "log", - "regex", -] - -[[package]] -name = "env_logger" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cd405aab171cb85d6735e5c8d9db038c17d3ca007a4d2c25f337935c3d90580" -dependencies = [ - "humantime", - "is-terminal", - "log", - "regex", - "termcolor", -] - -[[package]] -name = "env_logger" -version = "0.11.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38b35839ba51819680ba087cd351788c9a3c476841207e0b8cee0b04722343b9" -dependencies = [ - "anstream", - "anstyle", - "env_filter", - "humantime", - "log", + "syn 2.0.100", ] [[package]] @@ -1267,63 +1653,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" [[package]] -name = "errno" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba" -dependencies = [ - "libc", - "windows-sys 0.52.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 0.11.0", - "rand", - "scrypt", - "serde", - "serde_json", - "sha2", - "sha3 0.10.8", - "thiserror", - "uuid", -] - -[[package]] -name = "eth-types" -version = "0.13.0" -source = "git+https://github.com/scroll-tech/zkevm-circuits.git?tag=v0.13.1#4009e5593f13ba73f64f556011ee5ef47bc4ebf3" +name = "errno" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba" dependencies = [ - "base64 0.13.1", - "ethers-core 2.0.7 (git+https://github.com/scroll-tech/ethers-rs.git?branch=v2.0.7)", - "ethers-signers", - "halo2curves", - "hex", - "itertools 0.11.0", - "log", - "num", - "num-bigint", - "poseidon-base", - "regex", - "revm-precompile", - "revm-primitives", - "serde", - "serde_json", - "serde_with", - "sha3 0.10.8", - "strum 0.25.0", - "strum_macros 0.25.3", - "subtle", - "uint", + "libc", + "windows-sys 0.52.0", ] [[package]] @@ -1338,8 +1674,8 @@ dependencies = [ "regex", "serde", "serde_json", - "sha3 0.10.8", - "thiserror", + "sha3", + "thiserror 1.0.61", "uint", ] @@ -1374,33 +1710,6 @@ dependencies = [ "uint", ] -[[package]] -name = "ethers-core" -version = "2.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6da5fa198af0d3be20c19192df2bd9590b92ce09a8421e793bec8851270f1b05" -dependencies = [ - "arrayvec", - "bytes", - "chrono", - "elliptic-curve", - "ethabi", - "generic-array", - "hex", - "k256", - "num_enum 0.6.1", - "open-fastrlp", - "rand", - "rlp", - "serde", - "serde_json", - "strum 0.24.1", - "tempfile", - "thiserror", - "tiny-keccak", - "unicode-xid", -] - [[package]] name = "ethers-core" version = "2.0.7" @@ -1422,48 +1731,11 @@ dependencies = [ "serde_json", "strum 0.24.1", "tempfile", - "thiserror", + "thiserror 1.0.61", "tiny-keccak", "unicode-xid", ] -[[package]] -name = "ethers-providers" -version = "2.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56b498fd2a6c019d023e43e83488cd1fb0721f299055975aa6bac8dbf1e95f2c" -dependencies = [ - "async-trait", - "auto_impl", - "base64 0.21.7", - "bytes", - "enr", - "ethers-core 2.0.7 (registry+https://github.com/rust-lang/crates.io-index)", - "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", - "tokio", - "tokio-tungstenite", - "tracing", - "tracing-futures", - "url", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", - "ws_stream_wasm", -] - [[package]] name = "ethers-providers" version = "2.0.7" @@ -1474,7 +1746,7 @@ dependencies = [ "base64 0.21.7", "bytes", "enr", - "ethers-core 2.0.7 (git+https://github.com/scroll-tech/ethers-rs.git?branch=v2.0.7)", + "ethers-core", "futures-channel", "futures-core", "futures-timer", @@ -1488,7 +1760,7 @@ dependencies = [ "reqwest 0.11.27", "serde", "serde_json", - "thiserror", + "thiserror 1.0.61", "tokio", "tokio-tungstenite", "tracing", @@ -1500,37 +1772,6 @@ dependencies = [ "ws_stream_wasm", ] -[[package]] -name = "ethers-signers" -version = "2.0.7" -source = "git+https://github.com/scroll-tech/ethers-rs.git?branch=v2.0.7#e32dfd62e7cdec31160b91c5a646883594a586ba" -dependencies = [ - "async-trait", - "coins-bip32", - "coins-bip39", - "elliptic-curve", - "eth-keystore", - "ethers-core 2.0.7 (git+https://github.com/scroll-tech/ethers-rs.git?branch=v2.0.7)", - "hex", - "rand", - "sha2", - "thiserror", - "tracing", -] - -[[package]] -name = "external-tracer" -version = "0.13.0" -source = "git+https://github.com/scroll-tech/zkevm-circuits.git?tag=v0.13.1#4009e5593f13ba73f64f556011ee5ef47bc4ebf3" -dependencies = [ - "eth-types", - "geth-utils", - "log", - "serde", - "serde_json", - "serde_stacker", -] - [[package]] name = "fastrand" version = "2.1.0" @@ -1554,7 +1795,6 @@ version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449" dependencies = [ - "bitvec", "rand_core", "subtle", ] @@ -1587,6 +1827,12 @@ 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" @@ -1611,16 +1857,6 @@ 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" @@ -1683,7 +1919,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.100", ] [[package]] @@ -1726,6 +1962,12 @@ dependencies = [ "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" @@ -1735,18 +1977,6 @@ dependencies = [ "byteorder", ] -[[package]] -name = "gadgets" -version = "0.13.0" -source = "git+https://github.com/scroll-tech/zkevm-circuits.git?tag=v0.13.1#4009e5593f13ba73f64f556011ee5ef47bc4ebf3" -dependencies = [ - "eth-types", - "halo2_proofs", - "poseidon-base", - "sha3 0.10.8", - "strum 0.25.0", -] - [[package]] name = "generic-array" version = "0.14.7" @@ -1758,23 +1988,13 @@ dependencies = [ "zeroize", ] -[[package]] -name = "geth-utils" -version = "0.13.0" -source = "git+https://github.com/scroll-tech/zkevm-circuits.git?tag=v0.13.1#4009e5593f13ba73f64f556011ee5ef47bc4ebf3" -dependencies = [ - "env_logger 0.10.2", - "gobuild", - "log", -] - [[package]] name = "getrandom" version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "js-sys", "libc", "wasi", @@ -1787,26 +2007,6 @@ version = "0.28.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" -[[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.66", -] - [[package]] name = "glob" version = "0.3.1" @@ -1825,14 +2025,6 @@ dependencies = [ "wasm-bindgen", ] -[[package]] -name = "gobuild" -version = "0.1.0-alpha.2" -source = "git+https://github.com/scroll-tech/gobuild.git#24935c2b8f677841f22acd6710957621bb294e0e" -dependencies = [ - "cc", -] - [[package]] name = "group" version = "0.13.0" @@ -1852,191 +2044,59 @@ checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" dependencies = [ "bytes", "fnv", - "futures-core", - "futures-sink", - "futures-util", - "http 0.2.12", - "indexmap", - "slab", - "tokio", - "tokio-util", - "tracing", -] - -[[package]] -name = "h2" -version = "0.4.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa82e28a107a8cc405f0839610bdc9b15f1e25ec7d696aa5cf173edbcb1486ab" -dependencies = [ - "atomic-waker", - "bytes", - "fnv", - "futures-core", - "futures-sink", - "http 1.1.0", - "indexmap", - "slab", - "tokio", - "tokio-util", - "tracing", -] - -[[package]] -name = "halo2-base" -version = "0.2.2" -source = "git+https://github.com/scroll-tech/halo2-lib?branch=develop#817cace374a9f4b2eca682b1cc36f143255ea25f" -dependencies = [ - "ff", - "halo2_proofs", - "itertools 0.10.5", - "num-bigint", - "num-integer", - "num-traits", - "rand_chacha", - "rustc-hash", -] - -[[package]] -name = "halo2-ecc" -version = "0.2.2" -source = "git+https://github.com/scroll-tech/halo2-lib?branch=develop#817cace374a9f4b2eca682b1cc36f143255ea25f" -dependencies = [ - "ff", - "group", - "halo2-base", - "itertools 0.10.5", - "num-bigint", - "num-integer", - "num-traits", - "rand", - "rand_chacha", - "rand_core", - "serde", - "serde_json", -] - -[[package]] -name = "halo2-gate-generator" -version = "0.1.0" -source = "git+https://github.com/scroll-tech/halo2gategen?branch=scroll#2fa5c39aa67d0f97d660f37954daa9e897d0a4c1" -dependencies = [ - "halo2_proofs", - "lazy_static", - "num-bigint", - "rand", - "serde", - "serde_json", - "strum 0.24.1", - "strum_macros 0.24.3", - "subtle", -] - -[[package]] -name = "halo2-mpt-circuits" -version = "0.1.0" -source = "git+https://github.com/scroll-tech/mpt-circuit.git?branch=v0.7#daa3a06e2e96d00337188280ac43fa879e722804" -dependencies = [ - "ethers-core 2.0.7 (registry+https://github.com/rust-lang/crates.io-index)", - "halo2_proofs", - "hex", - "itertools 0.10.5", - "lazy_static", - "log", - "num-bigint", - "num-traits", - "poseidon-circuit", - "rand", - "rand_chacha", - "serde", - "serde_json", - "strum 0.24.1", - "strum_macros 0.24.3", - "thiserror", -] - -[[package]] -name = "halo2_gadgets" -version = "1.1.0" -source = "git+https://github.com/scroll-tech/halo2.git?branch=v1.1#e5ddf67e5ae16be38d6368ed355c7c41906272ab" -dependencies = [ - "arrayvec", - "bitvec", - "ff", - "group", - "halo2_proofs", - "halo2curves", - "lazy_static", - "rand", - "subtle", - "uint", -] - -[[package]] -name = "halo2_proofs" -version = "1.1.0" -source = "git+https://github.com/scroll-tech/halo2.git?branch=v1.1#e5ddf67e5ae16be38d6368ed355c7c41906272ab" -dependencies = [ - "ark-std 0.3.0", - "blake2b_simd", - "cfg-if 0.1.10", - "crossbeam", - "ff", - "group", - "halo2curves", - "log", - "maybe-rayon", - "num-bigint", - "num-integer", - "poseidon", - "rand_chacha", - "rand_core", - "rayon", - "sha3 0.9.1", - "subtle", + "futures-core", + "futures-sink", + "futures-util", + "http 0.2.12", + "indexmap 2.9.0", + "slab", + "tokio", + "tokio-util", "tracing", ] [[package]] -name = "halo2curves" -version = "0.1.0" -source = "git+https://github.com/scroll-tech/halo2curves?branch=v0.1.0#112f5b9bf27f6b1708ba7d1c2fc14cb3c6e55604" +name = "h2" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa82e28a107a8cc405f0839610bdc9b15f1e25ec7d696aa5cf173edbcb1486ab" dependencies = [ - "blake2b_simd", - "bls12_381", - "ff", - "group", - "lazy_static", - "maybe-rayon", - "num-bigint", - "num-traits", - "pasta_curves", - "paste", - "rand", - "rand_core", - "serde", - "serde_arrays", - "static_assertions", - "subtle", + "atomic-waker", + "bytes", + "fnv", + "futures-core", + "futures-sink", + "http 1.1.0", + "indexmap 2.9.0", + "slab", + "tokio", + "tokio-util", + "tracing", ] [[package]] name = "hashbrown" -version = "0.13.2" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e" -dependencies = [ - "ahash", -] +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" [[package]] name = "hashbrown" version = "0.14.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" + +[[package]] +name = "hashbrown" +version = "0.15.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" dependencies = [ - "ahash", "allocator-api2", + "equivalent", + "foldhash", + "rayon", + "serde", ] [[package]] @@ -2071,12 +2131,9 @@ name = "hex" version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" - -[[package]] -name = "hex-literal" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" +dependencies = [ + "serde", +] [[package]] name = "hmac" @@ -2155,12 +2212,6 @@ version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" -[[package]] -name = "humantime" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" - [[package]] name = "hyper" version = "0.14.28" @@ -2214,9 +2265,26 @@ dependencies = [ "futures-util", "http 0.2.12", "hyper 0.14.28", - "rustls", + "rustls 0.21.12", + "tokio", + "tokio-rustls 0.24.1", +] + +[[package]] +name = "hyper-rustls" +version = "0.26.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0bea761b46ae2b24eb4aef630d8d1c398157b6fc29e6350ecf090a0b70c952c" +dependencies = [ + "futures-util", + "http 1.1.0", + "hyper 1.3.1", + "hyper-util", + "rustls 0.22.4", + "rustls-pki-types", "tokio", - "tokio-rustls", + "tokio-rustls 0.25.0", + "tower-service", ] [[package]] @@ -2250,7 +2318,7 @@ dependencies = [ "pin-project-lite", "socket2", "tokio", - "tower", + "tower 0.4.13", "tower-service", "tracing", ] @@ -2278,6 +2346,124 @@ 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" @@ -2286,12 +2472,23 @@ checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" [[package]] name = "idna" -version = "0.5.0" +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 = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" +checksum = "daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71" dependencies = [ - "unicode-bidi", - "unicode-normalization", + "icu_normalizer", + "icu_properties", ] [[package]] @@ -2334,21 +2531,24 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.2.6" +version = "1.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26" +checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" dependencies = [ - "equivalent", - "hashbrown 0.14.5", + "autocfg", + "hashbrown 0.12.3", + "serde", ] [[package]] -name = "inout" -version = "0.1.3" +name = "indexmap" +version = "2.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5" +checksum = "cea70ddb795996207ad57735b50c5982d8844f38ba9ee5f1aedcfb708a2aa11e" dependencies = [ - "generic-array", + "equivalent", + "hashbrown 0.15.2", + "serde", ] [[package]] @@ -2357,7 +2557,7 @@ version = "0.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "js-sys", "wasm-bindgen", "web-sys", @@ -2369,17 +2569,6 @@ version = "2.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3" -[[package]] -name = "is-terminal" -version = "0.4.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f23ff5ef2b80d608d61efee834934d862cd92461afc0560dedf493e4c033738b" -dependencies = [ - "hermit-abi", - "libc", - "windows-sys 0.52.0", -] - [[package]] name = "is_terminal_polyfill" version = "1.70.0" @@ -2397,18 +2586,27 @@ dependencies = [ [[package]] name = "itertools" -version = "0.11.0" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57" +checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" dependencies = [ "either", ] [[package]] name = "itertools" -version = "0.12.1" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" +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", ] @@ -2443,10 +2641,11 @@ version = "0.13.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "956ff9b67e26e1a6a866cb758f12c6f8746208489e3e4a4b5580802f2f0a587b" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "ecdsa", "elliptic-curve", "once_cell", + "serdect", "sha2", "signature", ] @@ -2479,24 +2678,72 @@ dependencies = [ "spin 0.5.2", ] +[[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.155" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c" +[[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.52.5", +] + [[package]] name = "libm" version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" +[[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.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" +[[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" @@ -2514,30 +2761,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c" [[package]] -name = "log-mdc" -version = "0.1.0" +name = "lru" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a94d21414c1f4a51209ad204c1776a3d0765002c76c6abcb602a6f09f1e881c7" +checksum = "227748d55f2f0ab4735d87fd623798cb6b664512fe979705f829c9f81c934465" +dependencies = [ + "hashbrown 0.15.2", +] [[package]] -name = "log4rs" -version = "1.3.0" +name = "lz4-sys" +version = "1.11.1+lz4-1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0816135ae15bd0391cf284eab37e6e3ee0a6ee63d2ceeb659862bd8d0a984ca6" +checksum = "6bd8c0d6c6ed0cd30b3652886bb8711dc4bb01d637a68105a3d5158039b418e6" dependencies = [ - "anyhow", - "arc-swap", - "chrono", - "derivative", - "fnv", + "cc", "libc", - "log", - "log-mdc", - "once_cell", - "parking_lot 0.12.3", - "thiserror", - "thread-id", - "winapi", ] [[package]] @@ -2555,16 +2794,6 @@ version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0e7465ac9959cc2b1404e8e2367b43684a6d13790fe23056cc8c6c5a6b7bcb94" -[[package]] -name = "maybe-rayon" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ea1f30cedd69f0a2954655f7188c6a834246d2bcf1e315e2ac40c4b24dc9519" -dependencies = [ - "cfg-if 1.0.0", - "rayon", -] - [[package]] name = "memchr" version = "2.7.2" @@ -2577,6 +2806,12 @@ 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.7.3" @@ -2598,48 +2833,44 @@ dependencies = [ ] [[package]] -name = "misc-precompiled-circuit" -version = "0.1.0" -source = "git+https://github.com/scroll-tech/misc-precompiled-circuit.git?branch=main#dcb5018d84e8a9adec59cd33f5348a3971cec194" +name = "modular-bitfield" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a53d79ba8304ac1c4f9eb3b9d281f21f7be9d4626f72ce7df4ad8fbde4f38a74" dependencies = [ - "halo2-gate-generator", - "halo2_proofs", - "num-bigint", - "rand", - "serde", - "serde_json", - "strum 0.25.0", - "strum_macros 0.25.3", - "subtle", + "modular-bitfield-impl", + "static_assertions", ] [[package]] -name = "mock" -version = "0.13.0" -source = "git+https://github.com/scroll-tech/zkevm-circuits.git?tag=v0.13.1#4009e5593f13ba73f64f556011ee5ef47bc4ebf3" +name = "modular-bitfield-impl" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a7d5f7076603ebc68de2dc6a650ec331a062a13abaa346975be747bbfa4b789" dependencies = [ - "eth-types", - "ethers-core 2.0.7 (git+https://github.com/scroll-tech/ethers-rs.git?branch=v2.0.7)", - "ethers-signers", - "external-tracer", - "itertools 0.11.0", - "log", - "rand", - "rand_chacha", + "proc-macro2", + "quote", + "syn 1.0.109", ] [[package]] -name = "mpt-zktrie" -version = "0.13.0" -source = "git+https://github.com/scroll-tech/zkevm-circuits.git?tag=v0.13.1#4009e5593f13ba73f64f556011ee5ef47bc4ebf3" +name = "munge" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0091202c98cf06da46c279fdf50cccb6b1c43b4521abdf6a27b4c7e71d5d9d7" dependencies = [ - "eth-types", - "halo2curves", - "hex", - "log", - "num-bigint", - "poseidon-base", - "zktrie", + "munge_macro", +] + +[[package]] +name = "munge_macro" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "734799cf91479720b2f970c61a22850940dd91e27d4f02b1c6fc792778df2459" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.100", ] [[package]] @@ -2660,6 +2891,16 @@ dependencies = [ "tempfile", ] +[[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 = "nu-ansi-term" version = "0.46.0" @@ -2692,7 +2933,6 @@ checksum = "c165a9ab64cf766f73521c0dd2cfdff64f488b8f0b3e621face3462d3db536d7" dependencies = [ "num-integer", "num-traits", - "rand", ] [[package]] @@ -2705,15 +2945,10 @@ dependencies = [ ] [[package]] -name = "num-derive" -version = "0.3.3" +name = "num-conv" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "876a53fff98e03a936a674b29568b0e605f06b29372c2489ff4de23f1949743d" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] +checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" [[package]] name = "num-integer" @@ -2768,44 +3003,56 @@ dependencies = [ [[package]] name = "num_enum" -version = "0.5.11" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f646caf906c20226733ed5b1374287eb97e3c2a5c227ce668c1f2ce20ae57c9" +checksum = "7a015b430d3c108a207fd776d2e2196aaf8b1cf8cf93253e3a097ff3085076a1" dependencies = [ - "num_enum_derive 0.5.11", + "num_enum_derive 0.6.1", ] [[package]] name = "num_enum" -version = "0.6.1" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a015b430d3c108a207fd776d2e2196aaf8b1cf8cf93253e3a097ff3085076a1" +checksum = "4e613fc340b2220f734a8595782c551f1250e969d87d3be1ae0579e8d4065179" dependencies = [ - "num_enum_derive 0.6.1", + "num_enum_derive 0.7.3", ] [[package]] name = "num_enum_derive" -version = "0.5.11" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcbff9bc912032c62bf65ef1d5aea88983b420f4f839db1e9b0c281a25c9c799" +checksum = "96667db765a921f7b295ffee8b60472b686a51d4f21c2ee4ffdb94c7013b65a6" dependencies = [ "proc-macro-crate 1.3.1", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.100", ] [[package]] name = "num_enum_derive" -version = "0.6.1" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96667db765a921f7b295ffee8b60472b686a51d4f21c2ee4ffdb94c7013b65a6" +checksum = "af1844ef2428cc3e1cb900be36181049ef3d3193c63e43026cfe202983b27a56" dependencies = [ - "proc-macro-crate 1.3.1", "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.100", +] + +[[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]] @@ -2822,12 +3069,26 @@ name = "once_cell" version = "1.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" +dependencies = [ + "critical-section", + "portable-atomic", +] [[package]] -name = "opaque-debug" -version = "0.3.1" +name = "op-alloy-consensus" +version = "0.10.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" +checksum = "a9ddc5e1dcd2967e8325ab06ed52a2c7cfa562a6dd31ffc9f64e7075bba9f221" +dependencies = [ + "alloy-consensus", + "alloy-eips", + "alloy-primitives", + "alloy-rlp", + "alloy-serde", + "derive_more 1.0.0", + "serde", + "thiserror 2.0.12", +] [[package]] name = "open-fastrlp" @@ -2860,8 +3121,8 @@ version = "0.10.64" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "95a0481286a310808298130d22dd1fef0fa571e05a8f44ec801801e84b216b1f" dependencies = [ - "bitflags 2.5.0", - "cfg-if 1.0.0", + "bitflags 2.9.0", + "cfg-if", "foreign-types", "libc", "once_cell", @@ -2877,7 +3138,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.100", ] [[package]] @@ -2905,12 +3166,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" [[package]] -name = "pairing" -version = "0.23.0" +name = "p256" +version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81fec4625e73cf41ef4bb6846cafa6d44736525f442ba45e407c4a000a13996f" +checksum = "c9863ad85fa8f4460f9c48cb909d38a0d689dba1f6f6988a5e3e0d31071bcd4b" dependencies = [ - "group", + "ecdsa", + "elliptic-curve", + "primeorder", + "sha2", ] [[package]] @@ -2966,7 +3230,7 @@ version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "60a2cfe6f0ad2bfc16aefa463b497d5c7a5ecd44a23efa72aa342d90177356dc" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "instant", "libc", "redox_syscall 0.2.16", @@ -2980,53 +3244,19 @@ version = "0.9.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "libc", "redox_syscall 0.5.1", "smallvec", "windows-targets 0.52.5", ] -[[package]] -name = "pasta_curves" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3e57598f73cc7e1b2ac63c79c517b31a0877cd7c402cdcaa311b5208de7a095" -dependencies = [ - "blake2b_simd", - "ff", - "group", - "lazy_static", - "rand", - "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 = "pbkdf2" -version = "0.12.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8ed6a7761f76e3b9f92dfb0a60a6a6477c61024b775147ff0973a02653abaf2" -dependencies = [ - "digest 0.10.7", - "hmac", -] - [[package]] name = "percent-encoding" version = "2.3.1" @@ -3040,7 +3270,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "560131c633294438da9f7c4b08189194b20946c8274c6b9e38881a7874dc8ee8" dependencies = [ "memchr", - "thiserror", + "thiserror 1.0.61", "ucd-trie", ] @@ -3071,7 +3301,7 @@ checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.100", ] [[package]] @@ -3103,37 +3333,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" [[package]] -name = "poseidon" -version = "0.2.0" -source = "git+https://github.com/scroll-tech/poseidon.git?branch=main#5787dd3d2ce7a9e9601a035c396ac0c03449b54d" -dependencies = [ - "halo2curves", - "subtle", -] - -[[package]] -name = "poseidon-base" -version = "0.1.0" -source = "git+https://github.com/scroll-tech/poseidon-circuit.git?branch=main#7b96835c6201afdbfaf3d13d641efbaaf5db2d20" -dependencies = [ - "bitvec", - "halo2curves", - "lazy_static", -] +name = "portable-atomic" +version = "1.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "350e9b48cbc6b0e028b0473b114454c6316e57336ee184ceab6e53f72c178b3e" [[package]] -name = "poseidon-circuit" -version = "0.1.0" -source = "git+https://github.com/scroll-tech/poseidon-circuit.git?branch=main#7b96835c6201afdbfaf3d13d641efbaaf5db2d20" -dependencies = [ - "ff", - "halo2_proofs", - "log", - "poseidon-base", - "rand", - "rand_xorshift", - "thiserror", -] +name = "powerfmt" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" [[package]] name = "ppv-lite86" @@ -3141,6 +3350,15 @@ version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" +[[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" @@ -3174,11 +3392,33 @@ dependencies = [ "toml_edit 0.21.1", ] +[[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.84" +version = "1.0.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec96c6a92621310b51366f1e28d05ef11489516e93be030060e5fc12024a49d6" +checksum = "02b3e5e68a3a1a02aad3ec490a98007cbc13c37cbe84a3cd7b8e406d76e7f778" dependencies = [ "unicode-ident", ] @@ -3191,7 +3431,7 @@ checksum = "31b476131c3c86cb68032fdc5cb6d5a1045e3e42d96b69fa599fd77701e1f5bf" dependencies = [ "bit-set", "bit-vec", - "bitflags 2.5.0", + "bitflags 2.9.0", "lazy_static", "num-traits", "rand", @@ -3204,46 +3444,23 @@ dependencies = [ ] [[package]] -name = "prover" -version = "0.13.0" -source = "git+https://github.com/scroll-tech/zkevm-circuits.git?tag=v0.13.1#4009e5593f13ba73f64f556011ee5ef47bc4ebf3" +name = "ptr_meta" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe9e76f66d3f9606f44e45598d155cb13ecf09f4a28199e48daf8c8fc937ea90" dependencies = [ - "aggregator", - "anyhow", - "base64 0.13.1", - "blake2", - "bus-mapping", - "chrono", - "dotenvy", - "eth-types", - "ethers-core 2.0.7 (git+https://github.com/scroll-tech/ethers-rs.git?branch=v2.0.7)", - "git-version", - "halo2_proofs", - "hex", - "itertools 0.11.0", - "log", - "log4rs", - "mpt-zktrie", - "num-bigint", - "rand", - "rand_xorshift", - "serde", - "serde_derive", - "serde_json", - "serde_stacker", - "sha2", - "snark-verifier", - "snark-verifier-sdk", - "zkevm-circuits", + "ptr_meta_derive", ] [[package]] -name = "psm" -version = "0.1.21" +name = "ptr_meta_derive" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5787f7cda34e3033a72192c018bc5883100330f362ef279a8cbccfce8bb4e874" +checksum = "ca414edb151b4c8d125c12566ab0d74dc9cdba36fb80eb7b848c15f495fd32d1" dependencies = [ - "cc", + "proc-macro2", + "quote", + "syn 2.0.100", ] [[package]] @@ -3267,6 +3484,15 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" +[[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" @@ -3276,6 +3502,7 @@ dependencies = [ "libc", "rand_chacha", "rand_core", + "serde", ] [[package]] @@ -3341,7 +3568,7 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "469052894dcb553421e483e4209ee581a45100d31b4018de03e5a7ad86374a7e" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.9.0", ] [[package]] @@ -3388,6 +3615,15 @@ version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "adad44e29e4c806119491a7f06f03de4d1af22c3a680dd47f1e6e179439d1f56" +[[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" @@ -3403,7 +3639,7 @@ dependencies = [ "http 0.2.12", "http-body 0.4.6", "hyper 0.14.28", - "hyper-rustls", + "hyper-rustls 0.24.2", "ipnet", "js-sys", "log", @@ -3411,15 +3647,15 @@ dependencies = [ "once_cell", "percent-encoding", "pin-project-lite", - "rustls", + "rustls 0.21.12", "rustls-pemfile 1.0.4", "serde", "serde_json", "serde_urlencoded", - "sync_wrapper", + "sync_wrapper 0.1.2", "system-configuration", "tokio", - "tokio-rustls", + "tokio-rustls 0.24.1", "tower-service", "url", "wasm-bindgen", @@ -3446,6 +3682,7 @@ dependencies = [ "http-body 1.0.0", "http-body-util", "hyper 1.3.1", + "hyper-rustls 0.26.0", "hyper-tls", "hyper-util", "ipnet", @@ -3456,20 +3693,24 @@ dependencies = [ "once_cell", "percent-encoding", "pin-project-lite", + "rustls 0.22.4", "rustls-pemfile 2.1.2", + "rustls-pki-types", "serde", "serde_json", "serde_urlencoded", - "sync_wrapper", + "sync_wrapper 0.1.2", "system-configuration", "tokio", "tokio-native-tls", + "tokio-rustls 0.25.0", "tokio-util", "tower-service", "url", "wasm-bindgen", "wasm-bindgen-futures", "web-sys", + "webpki-roots 0.26.3", "winreg 0.52.0", ] @@ -3484,7 +3725,7 @@ dependencies = [ "http 1.1.0", "reqwest 0.12.4", "serde", - "thiserror", + "thiserror 1.0.61", "tower-service", ] @@ -3510,6 +3751,217 @@ dependencies = [ "wasm-timer", ] +[[package]] +name = "reth-chainspec" +version = "1.1.5" +source = "git+https://github.com/scroll-tech/reth?branch=zkvm%2Feuclid-upgrade#eb41a605a7efd77c2292a110745179d7d1a5b1de" +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#eb41a605a7efd77c2292a110745179d7d1a5b1de" +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#eb41a605a7efd77c2292a110745179d7d1a5b1de" +dependencies = [ + "convert_case", + "proc-macro2", + "quote", + "syn 2.0.100", +] + +[[package]] +name = "reth-ethereum-forks" +version = "1.1.5" +source = "git+https://github.com/scroll-tech/reth?branch=zkvm%2Feuclid-upgrade#eb41a605a7efd77c2292a110745179d7d1a5b1de" +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#eb41a605a7efd77c2292a110745179d7d1a5b1de" +dependencies = [ + "alloy-consensus", + "alloy-eips", + "alloy-primitives", + "alloy-rlp", + "derive_more 1.0.0", + "reth-primitives-traits", + "revm-primitives", + "serde", +] + +[[package]] +name = "reth-network-peers" +version = "1.1.5" +source = "git+https://github.com/scroll-tech/reth?branch=zkvm%2Feuclid-upgrade#eb41a605a7efd77c2292a110745179d7d1a5b1de" +dependencies = [ + "alloy-primitives", + "alloy-rlp", + "serde_with", + "thiserror 2.0.12", + "url", +] + +[[package]] +name = "reth-primitives" +version = "1.1.5" +source = "git+https://github.com/scroll-tech/reth?branch=zkvm%2Feuclid-upgrade#eb41a605a7efd77c2292a110745179d7d1a5b1de" +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#eb41a605a7efd77c2292a110745179d7d1a5b1de" +dependencies = [ + "alloy-consensus", + "alloy-eips", + "alloy-genesis", + "alloy-primitives", + "alloy-rlp", + "alloy-trie", + "auto_impl", + "bytes", + "derive_more 1.0.0", + "k256", + "once_cell", + "op-alloy-consensus", + "reth-codecs", + "revm-precompile", + "revm-primitives", + "scroll-alloy-consensus", + "secp256k1", + "serde", + "thiserror 2.0.12", +] + +[[package]] +name = "reth-scroll-chainspec" +version = "1.1.5" +source = "git+https://github.com/scroll-tech/reth?branch=zkvm%2Feuclid-upgrade#eb41a605a7efd77c2292a110745179d7d1a5b1de" +dependencies = [ + "alloy-chains", + "alloy-consensus", + "alloy-eips", + "alloy-genesis", + "alloy-primitives", + "alloy-serde", + "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-forks" +version = "1.1.5" +source = "git+https://github.com/scroll-tech/reth?branch=zkvm%2Feuclid-upgrade#eb41a605a7efd77c2292a110745179d7d1a5b1de" +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#eb41a605a7efd77c2292a110745179d7d1a5b1de" +dependencies = [ + "alloy-consensus", + "alloy-eips", + "alloy-primitives", + "alloy-rlp", + "bytes", + "derive_more 1.0.0", + "once_cell", + "rand", + "reth-codecs", + "reth-primitives-traits", + "revm-primitives", + "scroll-alloy-consensus", + "secp256k1", + "serde", +] + +[[package]] +name = "reth-static-file-types" +version = "1.1.5" +source = "git+https://github.com/scroll-tech/reth?branch=zkvm%2Feuclid-upgrade#eb41a605a7efd77c2292a110745179d7d1a5b1de" +dependencies = [ + "alloy-primitives", + "derive_more 1.0.0", + "serde", + "strum 0.26.3", +] + +[[package]] +name = "reth-trie-common" +version = "1.1.5" +source = "git+https://github.com/scroll-tech/reth?branch=zkvm%2Feuclid-upgrade#eb41a605a7efd77c2292a110745179d7d1a5b1de" +dependencies = [ + "alloy-consensus", + "alloy-primitives", + "alloy-rlp", + "alloy-trie", + "derive_more 1.0.0", + "itertools 0.13.0", + "nybbles", + "reth-primitives-traits", + "revm", +] + [[package]] name = "retry-policies" version = "0.3.0" @@ -3523,77 +3975,64 @@ dependencies = [ [[package]] name = "revm" -version = "2.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73d84c8f9836efb0f5f5f8de4700a953c4e1f3119e5cfcb0aad8e5be73daf991" +version = "19.4.0" +source = "git+https://github.com/scroll-tech/revm?branch=scroll-evm-executor%2Ffeat%2Fv55%2Feuclid-upgrade#c7a586deca0d1e2ec079cb9a7bab1ecdb53dc4a6" dependencies = [ - "arrayref", "auto_impl", - "bytes", - "hashbrown 0.13.2", - "num_enum 0.5.11", - "primitive-types", - "revm_precompiles", - "rlp", - "sha3 0.10.8", + "cfg-if", + "dyn-clone", + "revm-interpreter", + "revm-precompile", + "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#c7a586deca0d1e2ec079cb9a7bab1ecdb53dc4a6" +dependencies = [ + "revm-primitives", + "serde", ] [[package]] name = "revm-precompile" -version = "7.0.0" -source = "git+https://github.com/scroll-tech/revm?branch=scroll-evm-executor/v36#36c304d9e9ba4e4b2d5468d91a6bd27210133b6a" +version = "16.0.0" +source = "git+https://github.com/scroll-tech/revm?branch=scroll-evm-executor%2Ffeat%2Fv55%2Feuclid-upgrade#c7a586deca0d1e2ec079cb9a7bab1ecdb53dc4a6" dependencies = [ "aurora-engine-modexp", "c-kzg", + "cfg-if", "k256", "once_cell", + "p256", "revm-primitives", "ripemd", - "secp256k1 0.29.0", + "secp256k1", "sha2", "substrate-bn", ] [[package]] name = "revm-primitives" -version = "4.0.0" -source = "git+https://github.com/scroll-tech/revm?branch=scroll-evm-executor/v36#36c304d9e9ba4e4b2d5468d91a6bd27210133b6a" +version = "15.1.0" +source = "git+https://github.com/scroll-tech/revm?branch=scroll-evm-executor%2Ffeat%2Fv55%2Feuclid-upgrade#c7a586deca0d1e2ec079cb9a7bab1ecdb53dc4a6" dependencies = [ + "alloy-eip2930", + "alloy-eip7702", "alloy-primitives", "auto_impl", - "bitflags 2.5.0", + "bitflags 2.9.0", "bitvec", "c-kzg", - "cfg-if 1.0.0", - "derive_more", + "cfg-if", "dyn-clone", "enumn", - "halo2curves", - "hashbrown 0.14.5", "hex", - "once_cell", - "poseidon-base", "serde", ] -[[package]] -name = "revm_precompiles" -version = "1.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0353d456ef3e989dc9190f42c6020f09bc2025930c37895826029304413204b5" -dependencies = [ - "bytes", - "hashbrown 0.13.2", - "num", - "once_cell", - "primitive-types", - "ripemd", - "secp256k1 0.24.3", - "sha2", - "sha3 0.10.8", - "substrate-bn", -] - [[package]] name = "rfc6979" version = "0.4.0" @@ -3626,7 +4065,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d" dependencies = [ "cc", - "cfg-if 1.0.0", + "cfg-if", "getrandom", "libc", "spin 0.9.8", @@ -3643,6 +4082,36 @@ 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", +] + +[[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" @@ -3666,10 +4135,19 @@ dependencies = [ ] [[package]] -name = "ruint" -version = "1.12.1" +name = "rocksdb" +version = "0.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f308135fef9fc398342da5472ce7c484529df23743fb7c734e0f3d472971e62" +checksum = "26ec73b20525cb235bad420f911473b69f9fe27cc856c5461bccd7e4af037f43" +dependencies = [ + "libc", + "librocksdb-sys", +] + +[[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", @@ -3682,6 +4160,7 @@ dependencies = [ "primitive-types", "proptest", "rand", + "rkyv", "rlp", "ruint-macro", "serde", @@ -3691,9 +4170,8 @@ dependencies = [ [[package]] name = "ruint-macro" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f86854cf50259291520509879a5c294c3c9a4c334e9ff65071c51e42ef1e2343" +version = "1.2.1" +source = "git+https://github.com/scroll-tech/uint.git?branch=v1.12.3#d26b1f2a4412bba2b9b366f43f7684fd32ac1c8a" [[package]] name = "rustc-demangle" @@ -3707,6 +4185,12 @@ 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" @@ -3737,7 +4221,7 @@ version = "0.38.34" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.9.0", "errno", "libc", "linux-raw-sys", @@ -3756,6 +4240,20 @@ dependencies = [ "sct", ] +[[package]] +name = "rustls" +version = "0.22.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf4ef73721ac7bcd79b2b315da7779d8fc09718c6b3d2d1b2d94850eb8c18432" +dependencies = [ + "log", + "ring 0.17.8", + "rustls-pki-types", + "rustls-webpki 0.102.8", + "subtle", + "zeroize", +] + [[package]] name = "rustls-pemfile" version = "1.0.4" @@ -3801,6 +4299,17 @@ dependencies = [ "untrusted 0.9.0", ] +[[package]] +name = "rustls-webpki" +version = "0.102.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64ca1bc8749bd4cf37b5ce386cc146580777b4e8572c7b97baf22c83f444bee9" +dependencies = [ + "ring 0.17.8", + "rustls-pki-types", + "untrusted 0.9.0", +] + [[package]] name = "rustversion" version = "1.0.17" @@ -3826,12 +4335,64 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" [[package]] -name = "salsa20" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97a22f5af31f73a954c10289c93e8a50cc23d971e80ee446f1f6f7137a088213" +name = "sbv-helpers" +version = "2.0.0" +source = "git+https://github.com/scroll-tech/stateless-block-verifier?branch=zkvm%2Feuclid-upgrade#6759d7b0893e31782e3a24abaad6be655edffdde" +dependencies = [ + "revm", +] + +[[package]] +name = "sbv-kv" +version = "2.0.0" +source = "git+https://github.com/scroll-tech/stateless-block-verifier?branch=zkvm%2Feuclid-upgrade#6759d7b0893e31782e3a24abaad6be655edffdde" +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#6759d7b0893e31782e3a24abaad6be655edffdde" +dependencies = [ + "alloy-consensus", + "alloy-eips", + "alloy-network", + "alloy-primitives", + "alloy-rpc-types-eth", + "alloy-serde", + "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", + "sbv-helpers", + "sbv-kv", + "scroll-alloy-consensus", + "scroll-alloy-network", + "scroll-alloy-rpc-types", + "serde", + "tiny-keccak", +] + +[[package]] +name = "sbv-utils" +version = "2.0.0" +source = "git+https://github.com/scroll-tech/stateless-block-verifier?branch=zkvm%2Feuclid-upgrade#6759d7b0893e31782e3a24abaad6be655edffdde" dependencies = [ - "cipher", + "alloy-provider", + "alloy-transport", + "async-trait", + "futures", + "sbv-primitives", + "thiserror 1.0.61", ] [[package]] @@ -3840,8 +4401,8 @@ version = "2.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eca070c12893629e2cc820a9761bedf6ce1dcddc9852984d1dc734b8bd9bd024" dependencies = [ - "cfg-if 1.0.0", - "derive_more", + "cfg-if", + "derive_more 0.99.17", "parity-scale-codec", "scale-info-derive", ] @@ -3873,39 +4434,76 @@ 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#eb41a605a7efd77c2292a110745179d7d1a5b1de" +dependencies = [ + "alloy-consensus", + "alloy-eips", + "alloy-primitives", + "alloy-rlp", + "alloy-serde", + "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#eb41a605a7efd77c2292a110745179d7d1a5b1de" +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#eb41a605a7efd77c2292a110745179d7d1a5b1de" +dependencies = [ + "alloy-consensus", + "alloy-eips", + "alloy-network-primitives", + "alloy-primitives", + "alloy-rpc-types-eth", + "alloy-serde", + "derive_more 1.0.0", + "scroll-alloy-consensus", + "serde", + "serde_json", +] + [[package]] name = "scroll-proving-agent" -version = "0.0.1" +version = "1.0.0" dependencies = [ + "alloy", "anyhow", "async-trait", - "axum", - "base64 0.13.1", "chrono", "clap", - "ctor 0.2.8", - "env_logger 0.11.3", - "eth-keystore", - "ethers-core 2.0.7 (git+https://github.com/scroll-tech/ethers-rs.git?branch=v2.0.7)", - "ethers-providers 2.0.7 (git+https://github.com/scroll-tech/ethers-rs.git?branch=v2.0.7)", - "futures", - "halo2_proofs", - "hex", + "ethers-core", + "ethers-providers", "http 1.1.0", - "log", "once_cell", - "prover", - "rand", "reqwest 0.12.4", "reqwest-middleware", "reqwest-retry", - "rlp", + "sbv-primitives", + "sbv-utils", "scroll-proving-sdk", "serde", "serde_json", - "sled", - "snark-verifier-sdk", - "tiny-keccak", "tokio", "tracing", "tracing-subscriber", @@ -3914,50 +4512,32 @@ dependencies = [ [[package]] name = "scroll-proving-sdk" version = "0.1.0" -source = "git+https://github.com/scroll-tech/scroll-proving-sdk?rev=18aeedabdd647c9f0566c8fa801c1e76c826c287#18aeedabdd647c9f0566c8fa801c1e76c826c287" +source = "git+https://github.com/scroll-tech/scroll-proving-sdk?rev=6582c28ebfe0a710cb7efb8ea1463427230baaf3#6582c28ebfe0a710cb7efb8ea1463427230baaf3" dependencies = [ + "alloy", "anyhow", "async-trait", "axum", - "base64 0.13.1", "clap", - "ctor 0.2.8", - "env_logger 0.11.3", - "eth-keystore", - "ethers-core 2.0.7 (git+https://github.com/scroll-tech/ethers-rs.git?branch=v2.0.7)", - "ethers-providers 2.0.7 (git+https://github.com/scroll-tech/ethers-rs.git?branch=v2.0.7)", - "futures", - "halo2_proofs", + "dotenv", + "ethers-core", + "ethers-providers", "hex", "http 1.1.0", "log", - "once_cell", - "prover", "rand", "reqwest 0.12.4", "reqwest-middleware", "reqwest-retry", "rlp", + "rocksdb", "serde", "serde_json", - "sled", - "snark-verifier-sdk", "tiny-keccak", "tokio", "tracing", "tracing-subscriber", -] - -[[package]] -name = "scrypt" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f9e24d2b632954ded8ab2ef9fea0a0c769ea56ea98bddbafbad22caeeadf45d" -dependencies = [ - "hmac", - "pbkdf2 0.11.0", - "salsa20", - "sha2", + "url", ] [[package]] @@ -3980,19 +4560,11 @@ dependencies = [ "der", "generic-array", "pkcs8", + "serdect", "subtle", "zeroize", ] -[[package]] -name = "secp256k1" -version = "0.24.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b1629c9c557ef9b293568b338dddfc8208c98a18c59d722a9d53f859d9c9b62" -dependencies = [ - "secp256k1-sys 0.6.1", -] - [[package]] name = "secp256k1" version = "0.29.0" @@ -4000,16 +4572,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0e0cc0f1cf93f4969faf3ea1c7d8a9faed25918d96affa959720823dfe86d4f3" dependencies = [ "rand", - "secp256k1-sys 0.10.0", -] - -[[package]] -name = "secp256k1-sys" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83080e2c2fc1006e625be82e5d1eb6a43b7fd9578b617fcc55814daf286bba4b" -dependencies = [ - "cc", + "secp256k1-sys", + "serde", ] [[package]] @@ -4027,7 +4591,7 @@ version = "2.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c627723fd09706bacdb5cf41499e95098555af3c3c29d014dc3c458ef6be11c0" dependencies = [ - "bitflags 2.5.0", + "bitflags 2.9.0", "core-foundation", "core-foundation-sys", "libc", @@ -4089,15 +4653,6 @@ dependencies = [ "serde_derive", ] -[[package]] -name = "serde_arrays" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38636132857f68ec3d5f3eb121166d2af33cb55174c4d5ff645db6165cbef0fd" -dependencies = [ - "serde", -] - [[package]] name = "serde_derive" version = "1.0.203" @@ -4106,7 +4661,7 @@ checksum = "500cbc0ebeb6f46627f50f3f5811ccf6bf00643be300b4c3eabc0ef55dc5b5ba" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.100", ] [[package]] @@ -4115,6 +4670,7 @@ version = "1.0.117" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "455182ea6142b14f93f4bc5320a2b31c1f266b66a4a5c858b013302a5d8cbfc3" dependencies = [ + "indexmap 2.9.0", "itoa", "ryu", "serde", @@ -4130,16 +4686,6 @@ dependencies = [ "serde", ] -[[package]] -name = "serde_stacker" -version = "0.1.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "babfccff5773ff80657f0ecf553c7c516bdc2eb16389c0918b36b73e7015276e" -dependencies = [ - "serde", - "stacker", -] - [[package]] name = "serde_urlencoded" version = "0.7.1" @@ -4154,24 +4700,42 @@ dependencies = [ [[package]] name = "serde_with" -version = "1.14.0" +version = "3.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "678b5a069e50bf00ecd22d0cd8ddf7c236f68581b03db652061ed5eb13a312ff" +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 = "1.5.2" +version = "3.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e182d6ec6f05393cc0e5ed1bf81ad6db3a8feedf8ee515ecdd369809bcce8082" +checksum = "8d00caa5193a3c8362ac2b73be6b9e768aa5a4b2f721d8f4b339600c3cb51f8e" dependencies = [ "darling", "proc-macro2", "quote", - "syn 1.0.109", + "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]] @@ -4180,7 +4744,7 @@ version = "0.10.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "cpufeatures", "digest 0.10.7", ] @@ -4191,23 +4755,11 @@ version = "0.10.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "cpufeatures", "digest 0.10.7", ] -[[package]] -name = "sha3" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f81199417d4e5de3f04b1e871023acea7389672c4135918f05aa9cbf2f2fa809" -dependencies = [ - "block-buffer 0.9.0", - "digest 0.9.0", - "keccak", - "opaque-debug", -] - [[package]] name = "sha3" version = "0.10.8" @@ -4225,7 +4777,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a9b57fd861253bff08bb1919e995f90ba8f4889de2726091c8876f3a4e823b40" dependencies = [ "cc", - "cfg-if 1.0.0", + "cfg-if", ] [[package]] @@ -4237,6 +4789,12 @@ 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" @@ -4257,79 +4815,27 @@ dependencies = [ ] [[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.13.2" +name = "simdutf8" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" +checksum = "e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e" [[package]] -name = "snark-verifier" -version = "0.1.0" -source = "git+https://github.com/scroll-tech/snark-verifier?branch=develop#58c46b74c73156b9e09dc27617369d2acfb4461b" -dependencies = [ - "bytes", - "ethereum-types", - "halo2-base", - "halo2-ecc", - "hex", - "itertools 0.12.1", - "num-bigint", - "num-integer", - "num-traits", - "poseidon", - "rand", - "revm", - "rlp", - "rustc-hash", - "serde", - "sha3 0.10.8", +name = "slab" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" +dependencies = [ + "autocfg", ] [[package]] -name = "snark-verifier-sdk" -version = "0.0.1" -source = "git+https://github.com/scroll-tech/snark-verifier?branch=develop#58c46b74c73156b9e09dc27617369d2acfb4461b" +name = "smallvec" +version = "1.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" dependencies = [ - "bincode", - "ethereum-types", - "ff", - "halo2-base", - "hex", - "itertools 0.12.1", - "log", - "num-bigint", - "num-integer", - "num-traits", - "rand", - "rand_chacha", "serde", - "serde_json", - "snark-verifier", ] [[package]] @@ -4365,17 +4871,10 @@ dependencies = [ ] [[package]] -name = "stacker" -version = "0.1.15" +name = "stable_deref_trait" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c886bd4480155fd3ef527d45e9ac8dd7118a898a46530b7b94c3e21866259fce" -dependencies = [ - "cc", - "cfg-if 1.0.0", - "libc", - "psm", - "winapi", -] +checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" [[package]] name = "static_assertions" @@ -4383,12 +4882,6 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" -[[package]] -name = "strsim" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" - [[package]] name = "strsim" version = "0.11.1" @@ -4406,9 +4899,21 @@ dependencies = [ [[package]] name = "strum" -version = "0.25.0" +version = "0.26.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "290d54ea6f91c969195bdbcd7442c8c2a2ba87da8bf60a7ee86a235d4bc1e125" +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" @@ -4425,15 +4930,28 @@ dependencies = [ [[package]] name = "strum_macros" -version = "0.25.3" +version = "0.26.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23dc1fa9ac9c169a78ba62f0b841814b7abae11bdd047b9c58f893439e309ea0" +checksum = "4c6bee85a5a24955dc440386795aa378cd9cf82acd5f764469152d2270e581be" dependencies = [ - "heck 0.4.1", + "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.66", + "syn 2.0.100", ] [[package]] @@ -4468,21 +4986,50 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.66" +version = "2.0.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c42f3f41a2de00b01c0aaad383c5a45241efc8b2d1eda5661812fda5f3cdcff5" +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" + +[[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 = "system-configuration" version = "0.5.1" @@ -4516,28 +5063,28 @@ version = "3.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "fastrand", "rustix", "windows-sys 0.52.0", ] [[package]] -name = "termcolor" -version = "1.4.1" +name = "thiserror" +version = "1.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755" +checksum = "c546c80d6be4bc6a00c0f01730c08df82eaa7a7a61f11d656526506112cc1709" dependencies = [ - "winapi-util", + "thiserror-impl 1.0.61", ] [[package]] name = "thiserror" -version = "1.0.61" +version = "2.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c546c80d6be4bc6a00c0f01730c08df82eaa7a7a61f11d656526506112cc1709" +checksum = "567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708" dependencies = [ - "thiserror-impl", + "thiserror-impl 2.0.12", ] [[package]] @@ -4548,17 +5095,18 @@ checksum = "46c3384250002a6d5af4d114f2845d37b57521033f30d5c3f46c4d70e1197533" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.100", ] [[package]] -name = "thread-id" -version = "4.2.1" +name = "thiserror-impl" +version = "2.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0ec81c46e9eb50deaa257be2f148adf052d1fb7701cfd55ccfab2525280b70b" +checksum = "7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d" dependencies = [ - "libc", - "winapi", + "proc-macro2", + "quote", + "syn 2.0.100", ] [[package]] @@ -4567,7 +5115,7 @@ version = "1.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "once_cell", ] @@ -4580,6 +5128,37 @@ dependencies = [ "num_cpus", ] +[[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" @@ -4589,6 +5168,16 @@ dependencies = [ "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.6.0" @@ -4631,7 +5220,7 @@ checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.100", ] [[package]] @@ -4650,8 +5239,31 @@ version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" dependencies = [ - "rustls", + "rustls 0.21.12", + "tokio", +] + +[[package]] +name = "tokio-rustls" +version = "0.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "775e0c0f0adb3a2f22a00c4745d728b479985fc15ee7ca6a2608388c5569860f" +dependencies = [ + "rustls 0.22.4", + "rustls-pki-types", + "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]] @@ -4662,9 +5274,9 @@ checksum = "ec509ac96e9a0c43427c74f003127d953a265737636129424288d27cb5c4b12c" dependencies = [ "futures-util", "log", - "rustls", + "rustls 0.21.12", "tokio", - "tokio-rustls", + "tokio-rustls 0.24.1", "tungstenite", "webpki-roots 0.23.1", ] @@ -4694,9 +5306,9 @@ version = "0.19.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" dependencies = [ - "indexmap", + "indexmap 2.9.0", "toml_datetime", - "winnow", + "winnow 0.5.40", ] [[package]] @@ -4705,9 +5317,9 @@ version = "0.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1" dependencies = [ - "indexmap", + "indexmap 2.9.0", "toml_datetime", - "winnow", + "winnow 0.5.40", ] [[package]] @@ -4726,17 +5338,31 @@ dependencies = [ "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", + "tower-layer", + "tower-service", +] + [[package]] name = "tower-layer" -version = "0.3.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c20c8dbed6283a09604c3e69b4b7eeb54e298b8a600d4d5ecb5ad39de609f1d0" +checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e" [[package]] name = "tower-service" -version = "0.3.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" +checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" [[package]] name = "tracing" @@ -4758,7 +5384,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.100", ] [[package]] @@ -4829,9 +5455,9 @@ dependencies = [ "httparse", "log", "rand", - "rustls", + "rustls 0.21.12", "sha1", - "thiserror", + "thiserror 1.0.61", "url", "utf-8", "webpki", @@ -4867,12 +5493,6 @@ version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94" -[[package]] -name = "unicode-bidi" -version = "0.3.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75" - [[package]] name = "unicode-ident" version = "1.0.12" @@ -4880,13 +5500,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" [[package]] -name = "unicode-normalization" -version = "0.1.23" +name = "unicode-segmentation" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5" -dependencies = [ - "tinyvec", -] +checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" [[package]] name = "unicode-xid" @@ -4908,9 +5525,9 @@ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" [[package]] name = "url" -version = "2.5.0" +version = "2.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633" +checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" dependencies = [ "form_urlencoded", "idna", @@ -4923,6 +5540,18 @@ 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.1" @@ -4931,13 +5560,9 @@ checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" [[package]] name = "uuid" -version = "0.8.2" +version = "1.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7" -dependencies = [ - "getrandom", - "serde", -] +checksum = "458f7a779bf54acc9f347480ac654f68407d3aab21269a6e3c9f922acd9e2da9" [[package]] name = "valuable" @@ -4987,7 +5612,7 @@ version = "0.2.92" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "wasm-bindgen-macro", ] @@ -5002,7 +5627,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.100", "wasm-bindgen-shared", ] @@ -5012,7 +5637,7 @@ version = "0.4.42" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "76bc14366121efc8dbb487ab05bcc9d346b3b5ec0eaa76e46594cabbe51762c0" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "js-sys", "wasm-bindgen", "web-sys", @@ -5036,7 +5661,7 @@ checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.100", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -5062,6 +5687,20 @@ dependencies = [ "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.69" @@ -5097,6 +5736,15 @@ version = "0.25.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1" +[[package]] +name = "webpki-roots" +version = "0.26.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd7c23921eeb1713a4e851530e9b9756e4fb0e89978582942612524cf09f01cd" +dependencies = [ + "rustls-pki-types", +] + [[package]] name = "winapi" version = "0.3.9" @@ -5113,15 +5761,6 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" -[[package]] -name = "winapi-util" -version = "0.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d4cc384e1e73b93bafa6fb4f1df8c41695c8a91cf9c4c64358067d15a7b6c6b" -dependencies = [ - "windows-sys 0.52.0", -] - [[package]] name = "winapi-x86_64-pc-windows-gnu" version = "0.4.0" @@ -5285,13 +5924,22 @@ 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 1.0.0", + "cfg-if", "windows-sys 0.48.0", ] @@ -5301,10 +5949,22 @@ version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a277a57398d4bfa075df44f501a17cfdf8542d224f0d36095a2adc7aee4ef0a5" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "windows-sys 0.48.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" @@ -5318,7 +5978,7 @@ dependencies = [ "pharos", "rustc_version 0.4.0", "send_wrapper 0.6.0", - "thiserror", + "thiserror 1.0.61", "wasm-bindgen", "wasm-bindgen-futures", "web-sys", @@ -5334,131 +5994,99 @@ dependencies = [ ] [[package]] -name = "zerocopy" -version = "0.7.34" +name = "yoke" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae87e3fcd617500e5d106f0380cf7b77f3c6092aae37191433159dda23cfb087" +checksum = "120e6aef9aa629e3d4f52dc8cc43a015c7724194c97dfaf45180d2daf2b77f40" dependencies = [ - "zerocopy-derive", + "serde", + "stable_deref_trait", + "yoke-derive", + "zerofrom", ] [[package]] -name = "zerocopy-derive" -version = "0.7.34" +name = "yoke-derive" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15e934569e47891f7d9411f1a451d947a60e000ab3bd24fbb970f000387d1b3b" +checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", + "syn 2.0.100", + "synstructure", ] [[package]] -name = "zeroize" -version = "1.8.1" +name = "zerofrom" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" +checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5" dependencies = [ - "zeroize_derive", + "zerofrom-derive", ] [[package]] -name = "zeroize_derive" -version = "1.4.2" +name = "zerofrom-derive" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" +checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" dependencies = [ "proc-macro2", "quote", - "syn 2.0.66", -] - -[[package]] -name = "zkevm-circuits" -version = "0.13.0" -source = "git+https://github.com/scroll-tech/zkevm-circuits.git?tag=v0.13.1#4009e5593f13ba73f64f556011ee5ef47bc4ebf3" -dependencies = [ - "array-init", - "bus-mapping", - "either", - "env_logger 0.10.2", - "eth-types", - "ethers-core 2.0.7 (git+https://github.com/scroll-tech/ethers-rs.git?branch=v2.0.7)", - "ethers-signers", - "ff", - "gadgets", - "halo2-base", - "halo2-ecc", - "halo2-mpt-circuits", - "halo2_gadgets", - "halo2_proofs", - "hex", - "itertools 0.11.0", - "log", - "misc-precompiled-circuit", - "mock", - "mpt-zktrie", - "num", - "num-bigint", - "poseidon-circuit", - "rand", - "rand_chacha", - "rand_xorshift", - "rayon", - "serde", - "serde_json", - "sha3 0.10.8", - "snark-verifier", - "snark-verifier-sdk", - "strum 0.25.0", - "strum_macros 0.25.3", - "subtle", + "syn 2.0.100", + "synstructure", ] [[package]] -name = "zktrie" -version = "0.3.0" -source = "git+https://github.com/scroll-tech/zktrie.git?branch=v0.9#460b8c22af65b7809164548cba1e0253b6db5a70" +name = "zeroize" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" dependencies = [ - "gobuild", - "zktrie_rust", + "zeroize_derive", ] [[package]] -name = "zktrie_rust" -version = "0.3.0" -source = "git+https://github.com/scroll-tech/zktrie.git?branch=v0.9#460b8c22af65b7809164548cba1e0253b6db5a70" +name = "zeroize_derive" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ - "hex", - "lazy_static", - "num", - "num-derive", - "num-traits", - "strum 0.24.1", - "strum_macros 0.24.3", + "proc-macro2", + "quote", + "syn 2.0.100", ] [[package]] -name = "zstd" -version = "0.13.0" -source = "git+https://github.com/scroll-tech/zstd-rs?branch=hack/mul-block#5c0892b6567dab31394d701477183ce9d6a32aca" +name = "zerovec" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079" dependencies = [ - "zstd-safe", + "yoke", + "zerofrom", + "zerovec-derive", ] [[package]] -name = "zstd-safe" -version = "7.0.0" -source = "git+https://github.com/scroll-tech/zstd-rs?branch=hack/mul-block#5c0892b6567dab31394d701477183ce9d6a32aca" +name = "zerovec-derive" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" dependencies = [ - "zstd-sys", + "proc-macro2", + "quote", + "syn 2.0.100", ] [[package]] name = "zstd-sys" -version = "2.0.9+zstd.1.5.5" -source = "git+https://github.com/scroll-tech/zstd-rs?branch=hack/mul-block#5c0892b6567dab31394d701477183ce9d6a32aca" +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 index 75bfc75..51a374e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,50 +1,48 @@ [package] name = "scroll-proving-agent" -version = "0.0.1" +version = "1.0.0" edition = "2021" -[patch.crates-io] -ethers-signers = { git = "https://github.com/scroll-tech/ethers-rs.git", branch = "v2.0.7" } -halo2curves = { git = "https://github.com/scroll-tech/halo2curves", branch = "v0.1.0" } -[patch."https://github.com/privacy-scaling-explorations/halo2.git"] -halo2_proofs = { git = "https://github.com/scroll-tech/halo2.git", branch = "v1.1" } -[patch."https://github.com/privacy-scaling-explorations/poseidon.git"] -poseidon = { git = "https://github.com/scroll-tech/poseidon.git", branch = "main" } -[patch."https://github.com/privacy-scaling-explorations/bls12_381"] -bls12_381 = { git = "https://github.com/scroll-tech/bls12_381", branch = "feat/impl_scalar_field" } - - [dependencies] -scroll-proving-sdk = { git = "https://github.com/scroll-tech/scroll-proving-sdk", rev = "18aeedabdd647c9f0566c8fa801c1e76c826c287" } +alloy = { version = "0.11", features = [ + "provider-http", + "transport-http", + "reqwest", + "reqwest-rustls-tls", + "json-rpc", +] } +scroll-proving-sdk = { git = "https://github.com/scroll-tech/scroll-proving-sdk", rev = "6582c28ebfe0a710cb7efb8ea1463427230baaf3" } chrono = { version = "0.4.26", features = ["serde"] } anyhow = "1.0" -log = "0.4" -env_logger = "0.11.3" serde = { version = "1.0.198", features = ["derive"] } serde_json = "1.0.116" -futures = "0.3.30" 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" } -halo2_proofs = { git = "https://github.com/scroll-tech/halo2.git", branch = "v1.1" } -snark-verifier-sdk = { git = "https://github.com/scroll-tech/snark-verifier", branch = "develop", default-features = false, features = ["loader_halo2", "loader_evm", "halo2-pse"] } -# prover_darwin = { git = "https://github.com/scroll-tech/zkevm-circuits.git", tag = "v0.12.2", package = "prover", default-features = false, features = ["parallel_syn", "scroll"] } -prover_darwin_v2 = { git = "https://github.com/scroll-tech/zkevm-circuits.git", tag = "v0.13.1", package = "prover", default-features = false, features = ["parallel_syn", "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 = { version = "1.37.0", features = ["full"] } async-trait = "0.1" -sled = "0.34.7" http = "1.1.0" clap = { version = "4.5", features = ["derive"] } -ctor = "0.2.8" tracing = "0.1.40" tracing-subscriber = { version = "0.3.18", features = ["env-filter"] } -axum = "0.6.0" \ No newline at end of file +sbv-utils = { git = "https://github.com/scroll-tech/stateless-block-verifier", branch = "zkvm/euclid-upgrade", features = [ + "scroll", +], optional = true } +sbv-primitives = { git = "https://github.com/scroll-tech/stateless-block-verifier", branch = "zkvm/euclid-upgrade", features = [ + "scroll", +], optional = true } + +[features] +openvm = ["dep:sbv-utils", "dep:sbv-primitives"] + +[patch.crates-io] +# patched add rkyv support & MSRV 1.77 +alloy-primitives = { git = "https://github.com/scroll-tech/alloy-core", branch = "v0.8.21" } +#revm = { git = "https://github.com/scroll-tech/revm", branch = "scroll-evm-executor/v55" } +#revm-interpreter = { git = "https://github.com/scroll-tech/revm", branch = "scroll-evm-executor/v55" } +#revm-precompile = { git = "https://github.com/scroll-tech/revm", branch = "scroll-evm-executor/v55" } +#revm-primitives = { git = "https://github.com/scroll-tech/revm", branch = "scroll-evm-executor/v55" } +ruint = { git = "https://github.com/scroll-tech/uint.git", branch = "v1.12.3" } \ No newline at end of file diff --git a/README.md b/README.md index 2665a64..043ed71 100644 --- a/README.md +++ b/README.md @@ -45,42 +45,44 @@ Here is the example of `chunk-config.yaml`, replacing placeholders as needed: ```yaml scrollConfig: | { - "prover_name_prefix": "", - "keys_dir": "/keys", - "coordinator": { - "base_url": "", - "retry_count": 3, - "retry_wait_time_sec": 5, - "connection_timeout_sec": 60 - }, - "l2geth": { - "endpoint": "" - }, - "prover": { - "circuit_type": 1, - "circuit_version": "v0.13.1", - "n_workers": , - "cloud": { - "base_url": "https://api.snarkify.io", - "api_key": "", + "sdk_config": { + "prover_name_prefix": "", + "keys_dir": "/keys", + "db_path": "/db", + "coordinator": { + "base_url": "", "retry_count": 3, "retry_wait_time_sec": 5, "connection_timeout_sec": 60 + }, + "l2geth": { + "endpoint": "" + }, + "prover": { + "circuit_type": 2, + "circuit_version": "v0.13.1", + "supported_proof_types": [ + 1 + ], + "n_workers": , } - } + }, + "base_url": "https://api.snarkify.io", + "api_key": "", + "service_id": "" } -env: - serviceId: "" ``` -- prover_name_prefix: A prefix for your prover name, should end with an underscore. +- prover_name_prefix: A prefix for your prover name. - coordinator.base_url: Your coordinator endpoint. - l2geth.endpoint: Your Geth endpoint. -- prover.circuit_type: The circuit type, can be 1 (Chunk), 2 (Batch) or 3 (Bundle). +- prover.circuit_type: The circuit type is 2 (OpenVm), which is the latest circuit type. +- prover.supported_proof_types: A list of proof types, can be 1 (Chunk), 2 (Batch) or 3 (Bundle). Now we only support +1 proof type in a config. - prover.n_workers: The number of workers to run in parallel. -- cloud.api_key: Your Snarkify API key. -- serviceId: Your Scroll Proving service ID in Snarkify platform. +- api_key: Your Snarkify API key. +- service_id: Your Scroll Proving service ID in Snarkify platform. ### Deploy Scroll Proving Agent @@ -88,11 +90,11 @@ env: Deploy the agent using Helm with your configuration files. ```bash export HELM_EXPERIMENTAL_OCI=1 -helm install scroll-proving-agent-chunk oci://ghcr.io/snarkify/scroll-proving-agent/helm/scroll-proving-agent --version 0.0.1 -f chunk-config.yaml +helm install scroll-proving-agent-chunk oci://ghcr.io/snarkify/scroll-proving-agent/helm/scroll-proving-agent --version 1.0.0 -f chunk-config.yaml -helm install scroll-proving-agent-batch oci://ghcr.io/snarkify/scroll-proving-agent/helm/scroll-proving-agent --version 0.0.1 -f batch-config.yaml +helm install scroll-proving-agent-batch oci://ghcr.io/snarkify/scroll-proving-agent/helm/scroll-proving-agent --version 1.0.0 -f batch-config.yaml -helm install scroll-proving-agent-bundle oci://ghcr.io/snarkify/scroll-proving-agent/helm/scroll-proving-agent --version 0.0.1 -f bundle-config.yaml +helm install scroll-proving-agent-bundle oci://ghcr.io/snarkify/scroll-proving-agent/helm/scroll-proving-agent --version 1.0.0 -f bundle-config.yaml ``` ### Verify the Deployment diff --git a/charts/scroll-proving-agent/Chart.yaml b/charts/scroll-proving-agent/Chart.yaml index bd38d66..7ebbb17 100644 --- a/charts/scroll-proving-agent/Chart.yaml +++ b/charts/scroll-proving-agent/Chart.yaml @@ -2,7 +2,7 @@ apiVersion: v2 description: A proving agent for Scroll SDK to generate proofs in Snarkify platform. name: scroll-proving-agent -version: 0.0.1 +version: 1.0.0 kubeVersion: ">=1.22.0-0" maintainers: - name: snarkify diff --git a/charts/scroll-proving-agent/values.yaml b/charts/scroll-proving-agent/values.yaml index c876537..d409711 100644 --- a/charts/scroll-proving-agent/values.yaml +++ b/charts/scroll-proving-agent/values.yaml @@ -6,7 +6,7 @@ global: image: repository: snarkify/scroll-proving-agent pullPolicy: Always - tag: v0.0.1 + tag: v1.0.0 command: - "/bin/sh" @@ -61,32 +61,31 @@ probes: # scrollConfig should be overwritten the config in json format. See the example below. scrollConfig: | {} + # { -# "prover_name_prefix": "snarkify_", -# "keys_dir": "/keys", -# "coordinator": { -# "base_url": "https://coordinator-api.scrollsdk", -# "retry_count": 3, -# "retry_wait_time_sec": 5, -# "connection_timeout_sec": 60 -# }, -# "l2geth": { -# "endpoint": "https://l2-rpc.scrollsdk" -# }, -# "prover": { -# "circuit_type": 1, -# "circuit_version": "v0.13.1", -# "n_workers": 1, -# "cloud": { -# "base_url": "https://api.snarkify.io", -# "api_key": "", -# "retry_count": 3, -# "retry_wait_time_sec": 5, -# "connection_timeout_sec": 60 -# } -# }, -# "service_id": "" +# "sdk_config": { +# "prover_name_prefix": "snarkify_", +# "keys_dir": "/keys", +# "db_path": "/db", +# "coordinator": { +# "base_url": "https://coordinator-api.scrollsdk", +# "retry_count": 3, +# "retry_wait_time_sec": 5, +# "connection_timeout_sec": 60 +# }, +# "l2geth": { +# "endpoint": "https://l2-rpc.scrollsdk" +# }, +# "prover": { +# "circuit_type": 2, +# "circuit_version": "v0.13.1", +# "supported_proof_types": [ +# 1 +# ], +# "n_workers": 1 +# } +# }, +# "base_url": "https://api.snarkify.io", +# "api_key": "", +# "service_id": "" # } - -env: - serviceId: "" diff --git a/charts/scroll-proving-agent/values/production.yaml b/charts/scroll-proving-agent/values/production.yaml index 48a4360..c349245 100644 --- a/charts/scroll-proving-agent/values/production.yaml +++ b/charts/scroll-proving-agent/values/production.yaml @@ -1,29 +1,28 @@ scrollConfig: | { - "prover_name_prefix": "snarkify_", - "keys_dir": "/keys", - "coordinator": { - "base_url": "https://coordinator-api.scrollsdk", - "retry_count": 3, - "retry_wait_time_sec": 5, - "connection_timeout_sec": 60 - }, - "l2geth": { - "endpoint": "https://l2-rpc.scrollsdk" - }, - "prover": { - "circuit_type": 1, - "circuit_version": "v0.13.1", - "n_workers": 1, - "cloud": { - "base_url": "https://api.snarkify.io", - "api_key": "", + "sdk_config": { + "prover_name_prefix": "snarkify_", + "keys_dir": "/keys", + "db_path": "/db", + "coordinator": { + "base_url": "https://coordinator-api.scrollsdk", "retry_count": 3, "retry_wait_time_sec": 5, "connection_timeout_sec": 60 + }, + "l2geth": { + "endpoint": "https://l2-rpc.scrollsdk" + }, + "prover": { + "circuit_type": 2, + "circuit_version": "v0.13.1", + "supported_proof_types": [ + 1 + ], + "n_workers": 1 } - } + }, + "base_url": "https://api.snarkify.io", + "api_key": "", + "service_id": "" } - -env: - serviceId: "" diff --git a/rust-toolchain.toml b/rust-toolchain.toml index 5168d8b..418935b 100644 --- a/rust-toolchain.toml +++ b/rust-toolchain.toml @@ -1,2 +1,2 @@ [toolchain] -channel = "nightly-2023-12-03" \ No newline at end of file +channel = "nightly-2024-12-06" \ No newline at end of file diff --git a/src/config.rs b/src/config.rs new file mode 100644 index 0000000..bd10697 --- /dev/null +++ b/src/config.rs @@ -0,0 +1,27 @@ +use anyhow::{anyhow, Result}; +use std::fs::File; + +use scroll_proving_sdk::config::Config as SdkConfig; +use serde::{Deserialize, Serialize}; + +#[derive(Debug, Serialize, Deserialize, Clone)] +pub struct SnarkifyConfig { + pub sdk_config: SdkConfig, + pub base_url: String, + pub api_key: String, + pub service_id: String, +} + +impl SnarkifyConfig { + pub fn from_reader(reader: R) -> Result + where + R: std::io::Read, + { + serde_json::from_reader(reader).map_err(|e| anyhow!(e)) + } + + pub fn from_file(file_name: String) -> Result { + let file = File::open(file_name)?; + Self::from_reader(&file) + } +} diff --git a/src/datetime_utils.rs b/src/datetime_utils.rs index 966d3e3..6db857f 100644 --- a/src/datetime_utils.rs +++ b/src/datetime_utils.rs @@ -5,11 +5,10 @@ pub fn deserialize_datetime<'de, D>(deserializer: D) -> Result, { - // The datetimes from the Snarkify API does not provide timezone information, - // so we assume it is UTC. + // The datetimes from the Snarkify API are UTC. Option::::deserialize(deserializer)? .map(|s| { - NaiveDateTime::parse_from_str(&s, "%Y-%m-%dT%H:%M:%S") + NaiveDateTime::parse_from_str(&s, "%Y-%m-%dT%H:%M:%S%.f") .map(|dt| DateTime::::from_naive_utc_and_offset(dt, Utc)) .map_err(serde::de::Error::custom) }) diff --git a/src/lib.rs b/src/lib.rs index ef5e858..2fdafb8 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,3 +1,4 @@ +pub mod config; pub mod datetime_utils; pub mod proof_type; pub mod prover; diff --git a/src/main.rs b/src/main.rs index 60978ef..da986a6 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,7 +1,7 @@ use clap::Parser; +use scroll_proving_agent::config::SnarkifyConfig; use scroll_proving_agent::prover::SnarkifyProver; -use scroll_proving_sdk::{config::Config, prover::ProverBuilder, utils::init_tracing}; -use std::env; +use scroll_proving_sdk::{prover::ProverBuilder, utils::init_tracing}; #[derive(Parser, Debug)] #[clap(disable_version_flag = true)] @@ -16,24 +16,12 @@ struct Args { #[tokio::main] async fn main() -> anyhow::Result<()> { init_tracing(); - let args = Args::parse(); - let cfg: Config = Config::from_file(args.config_file.clone())?; - let service_id = env::var("serviceId") - .map_err(|e| anyhow::anyhow!("Failed to load serviceId with error {e}"))?; - let cloud_prover = SnarkifyProver::new( - cfg.prover - .cloud - .clone() - .ok_or_else(|| anyhow::anyhow!("Missing cloud prover configuration"))?, - service_id, - ); - let prover = ProverBuilder::new(cfg) - .with_proving_service(Box::new(cloud_prover)) + let config: SnarkifyConfig = SnarkifyConfig::from_file(args.config_file)?; + let snarkify_prover = SnarkifyProver::new(config.clone()); + let prover = ProverBuilder::new(config.sdk_config, snarkify_prover) .build() .await?; - prover.run().await; - Ok(()) } diff --git a/src/proof_type.rs b/src/proof_type.rs index a08c13a..374b0f2 100644 --- a/src/proof_type.rs +++ b/src/proof_type.rs @@ -1,4 +1,4 @@ -use scroll_proving_sdk::prover::types::CircuitType; +use scroll_proving_sdk::prover::types::ProofType; use serde::{Deserialize, Serialize}; #[derive(Serialize, Deserialize, Debug)] @@ -9,13 +9,25 @@ pub enum SnarkifyProofType { Bundle, } -impl From for SnarkifyProofType { - fn from(circuit_type: CircuitType) -> Self { - match circuit_type { - CircuitType::Chunk => SnarkifyProofType::Chunk, - CircuitType::Batch => SnarkifyProofType::Batch, - CircuitType::Bundle => SnarkifyProofType::Bundle, - CircuitType::Undefined => unreachable!("CircuitType::Undefined should not be used"), +impl TryFrom for SnarkifyProofType { + type Error = anyhow::Error; + + fn try_from(proof_type: ProofType) -> Result { + match proof_type { + ProofType::Chunk => Ok(SnarkifyProofType::Chunk), + ProofType::Batch => Ok(SnarkifyProofType::Batch), + ProofType::Bundle => Ok(SnarkifyProofType::Bundle), + ProofType::Undefined => Err(anyhow::anyhow!("ProofType::Undefined should not be used")), + } + } +} + +impl From for ProofType { + fn from(proof_type: SnarkifyProofType) -> Self { + match proof_type { + SnarkifyProofType::Chunk => ProofType::Chunk, + SnarkifyProofType::Batch => ProofType::Batch, + SnarkifyProofType::Bundle => ProofType::Bundle, } } } diff --git a/src/prover.rs b/src/prover.rs index 50d58f5..b33df1f 100644 --- a/src/prover.rs +++ b/src/prover.rs @@ -1,25 +1,22 @@ -use crate::types::{ - SnarkifyCreateTaskInput, SnarkifyCreateTaskRequest, SnarkifyGetTaskResponse, - SnarkifyGetVkResponse, -}; +use crate::config::SnarkifyConfig; +use crate::task_state::SnarkifyTaskState; +use crate::types::{SnarkifyCreateTaskRequest, SnarkifyGetTaskResponse, SnarkifyGetVkResponse}; +use anyhow::{anyhow, bail, Result}; use async_trait::async_trait; use core::time::Duration; -use log::error; use reqwest::{header::CONTENT_TYPE, Url}; use reqwest_middleware::{ClientBuilder, ClientWithMiddleware}; use reqwest_retry::{policies::ExponentialBackoff, RetryTransientMiddleware}; -use scroll_proving_sdk::{ - config::CloudProverConfig, - prover::{ - proving_service::{ - GetVkRequest, GetVkResponse, ProveRequest, ProveResponse, QueryTaskRequest, - QueryTaskResponse, TaskStatus, - }, - types::CircuitType, - ProvingService, +use scroll_proving_sdk::prover::{ + proving_service::{ + GetVkRequest, GetVkResponse, ProveRequest, ProveResponse, QueryTaskRequest, + QueryTaskResponse, TaskStatus, }, + types::ProofType, + ProvingService, }; use serde::Serialize; +use tracing::{debug, error, info}; /// API version used by the Snarkify platform. const API_VERSION: &str = "v1"; @@ -28,7 +25,7 @@ pub struct SnarkifyProver { base_url: String, api_key: String, service_id: String, - send_timeout: Duration, + connection_timeout_sec: Duration, client: ClientWithMiddleware, } @@ -38,39 +35,75 @@ impl ProvingService for SnarkifyProver { false } - async fn get_vk(&self, req: GetVkRequest) -> GetVkResponse { + async fn get_vks(&self, req: GetVkRequest) -> GetVkResponse { + if req.proof_types.is_empty() { + error!("[Snarkify Client][get_vks] proof types are empty"); + return GetVkResponse { + vks: vec![], + error: Some("Proof types are empty".to_string()), + }; + } + if req.proof_types.len() > 1 { + error!("[Snarkify Client][get_vks] proof types are more than one"); + return GetVkResponse { + vks: vec![], + error: Some("Proof types are more than one".to_string()), + }; + } + let method = format!( "/{}/scroll/sdk/vks/versions/{}/types/{}", API_VERSION, &req.circuit_version, - &req.circuit_type.to_u8() + &req.proof_types[0].to_u8() ); - match self.get_with_token::(&method).await { + match self.get::(&method).await { Ok(resp) => GetVkResponse { - vk: resp.vk, + vks: resp.vks, error: None, }, Err(e) => { - error!("get_vk method failed: {:?}", e); + error!( + "[Snarkify Client][get_vks] Failed to get vks for proof type {}: {:?}", + req.proof_types[0].to_u8(), + e + ); GetVkResponse { - vk: String::new(), - error: Some(format!("Failed to get vk: {}", e)), + vks: vec![], + error: Some(format!( + "Failed to get vks: {} for proof type {}", + e, + req.proof_types[0].to_u8() + )), } } } } - async fn prove(&self, req: ProveRequest) -> ProveResponse { - let body = SnarkifyCreateTaskRequest::from_prove_request(&req); + async fn prove(&mut self, req: ProveRequest) -> ProveResponse { + // TODO: Send input to S3 directly. + let body = match SnarkifyCreateTaskRequest::from_prove_request(&req) { + Ok(body) => body, + Err(e) => { + error!( + "[Snarkify Client][prove] Failed to create task request: {:?}", + e + ); + return self.build_prove_error_response( + &req, + &format!("Failed to create task request: {}", e), + ); + } + }; let method = format!("/{}/services/{}", API_VERSION, &self.service_id); match self - .post_with_token::(&method, &body) + .post::(&method, &body) .await { Ok(resp) => ProveResponse { task_id: resp.task_id, - circuit_type: req.circuit_type, + proof_type: req.proof_type, circuit_version: req.circuit_version, hard_fork_name: req.hard_fork_name, status: resp.state.into(), @@ -84,73 +117,154 @@ impl ProvingService for SnarkifyProver { error: None, }, Err(e) => { - error!("prove method failed: {:?}", e); + error!("[Snarkify Client][prove] Failed to request proof: {:?}", e); self.build_prove_error_response(&req, &format!("Failed to request proof: {}", e)) } } } - async fn query_task(&self, req: QueryTaskRequest) -> QueryTaskResponse { - let method = format!("/{}/tasks/{}", API_VERSION, &req.task_id); - match self - .get_with_token::(&method) - .await - { + async fn query_task(&mut self, req: QueryTaskRequest) -> QueryTaskResponse { + let task_id = req.task_id.clone(); + let method = format!("/{}/tasks/{}?only_urls=true", API_VERSION, &task_id); + match self.get::(&method).await { Ok(resp) => { - let task_input: SnarkifyCreateTaskInput = match serde_json::from_str(&resp.input) { - Ok(input) => input, - Err(e) => { - return self.build_query_task_error_response( - &req, - &format!("Failed to parse task input: {}", e), - ) - } - }; + let created_at = resp.created.map(|t| t.timestamp() as f64).unwrap_or(0.0); let started_at = resp.started.map(|t| t.timestamp() as f64); let finished_at = resp.finished.map(|t| t.timestamp() as f64); let compute_time_sec = match (started_at, finished_at) { (Some(started), Some(finished)) => Some(finished - started), _ => None, }; - QueryTaskResponse { - task_id: resp.task_id, - circuit_type: task_input.circuit_type, - circuit_version: task_input.circuit_version, - hard_fork_name: task_input.hard_fork_name, - status: resp.state.into(), - created_at: resp.created.map(|t| t.timestamp() as f64).unwrap_or(0.0), - started_at, - finished_at, - compute_time_sec, - input: Some(task_input.task_data), - proof: resp.proof, - vk: None, - error: resp.error, + // We don't care about circuit version, hard fork name, proof type, input, vk, error here. + let circuit_version = "".to_string(); + let hard_fork_name = "".to_string(); + let proof_type = ProofType::Undefined; + let input = None; + let vk = None; + match resp.state { + SnarkifyTaskState::Unassigned | SnarkifyTaskState::Pending => { + QueryTaskResponse { + task_id, + proof_type, + circuit_version, + hard_fork_name, + status: TaskStatus::Proving, + created_at, + started_at, + finished_at, + compute_time_sec, + input, + proof: None, + vk, + error: None, + } + } + SnarkifyTaskState::Success => match resp.proof_url { + Some(proof_url) => match self.download_blob(&proof_url).await { + Ok(proof) => QueryTaskResponse { + task_id, + proof_type, + circuit_version, + hard_fork_name, + status: TaskStatus::Success, + created_at, + started_at, + finished_at, + compute_time_sec, + input, + proof: Some(proof), + vk, + error: None, + }, + Err(e) => { + error!( + "[Snarkify Client][query_task] Failed to download proof url for task {}: {:?}", + task_id, e + ); + return self.build_query_task_error_response( + &req, + &format!( + "Failed to download proof for task {}: {}", + task_id, e + ), + ); + } + }, + None => { + error!( + "[Snarkify Client][query_task] No proof url found for task {} ", + task_id + ); + return self.build_query_task_error_response( + &req, + &format!("No proof url found for task {}", task_id), + ); + } + }, + SnarkifyTaskState::Failure => match resp.error_url { + Some(error_url) => match self.download_blob(&error_url).await { + Ok(error) => { + return self.build_query_task_error_response(&req, &error); + } + Err(e) => { + error!( + "[Snarkify Client][query_task] Failed to download error url for task {}: {:?}", + task_id, e + ); + return self.build_query_task_error_response( + &req, + &format!( + "Failed to download error url for task {}: {}", + task_id, e + ), + ); + } + }, + None => { + error!( + "[Snarkify Client][query_task] No error url found for task {}", + task_id + ); + return self.build_query_task_error_response( + &req, + &format!("No error url found for task {}", task_id), + ); + } + }, } } Err(e) => { - error!("query_task method failed: {:?}", e); - self.build_query_task_error_response(&req, &format!("Failed to query proof: {}", e)) + error!( + "[Snarkify Client][query_task] Failed to query for task {}: {:?}", + task_id, e + ); + self.build_query_task_error_response( + &req, + &format!("Failed to query for task {}: {}", task_id, e), + ) } } } } impl SnarkifyProver { - pub fn new(cfg: CloudProverConfig, service_id: String) -> Self { - let retry_wait_duration = Duration::from_secs(cfg.retry_wait_time_sec); + pub fn new(config: SnarkifyConfig) -> Self { + let retry_wait_duration = + Duration::from_secs(config.sdk_config.coordinator.retry_wait_time_sec); let retry_policy = ExponentialBackoff::builder() .retry_bounds(retry_wait_duration / 2, retry_wait_duration) - .build_with_max_retries(cfg.retry_count); + .build_with_max_retries(config.sdk_config.coordinator.retry_count); let client = ClientBuilder::new(reqwest::Client::new()) .with(RetryTransientMiddleware::new_with_policy(retry_policy)) .build(); Self { - base_url: cfg.base_url, - api_key: cfg.api_key, - service_id, - send_timeout: Duration::from_secs(cfg.connection_timeout_sec), + base_url: config.base_url, + api_key: config.api_key, + service_id: config.service_id, + connection_timeout_sec: Duration::from_secs( + config.sdk_config.coordinator.connection_timeout_sec, + ), client, } } @@ -158,7 +272,7 @@ impl SnarkifyProver { pub fn build_prove_error_response(&self, req: &ProveRequest, error_msg: &str) -> ProveResponse { ProveResponse { task_id: String::new(), - circuit_type: req.circuit_type, + proof_type: req.proof_type, circuit_version: req.circuit_version.clone(), hard_fork_name: req.hard_fork_name.clone(), status: TaskStatus::Failed, @@ -180,10 +294,10 @@ impl SnarkifyProver { ) -> QueryTaskResponse { QueryTaskResponse { task_id: req.task_id.clone(), - circuit_type: CircuitType::Undefined, + proof_type: ProofType::Undefined, circuit_version: "".to_string(), hard_fork_name: "".to_string(), - status: TaskStatus::Queued, + status: TaskStatus::Failed, created_at: 0.0, started_at: None, finished_at: None, @@ -195,69 +309,117 @@ impl SnarkifyProver { } } - fn build_url(&self, method: &str) -> anyhow::Result { + fn build_url(&self, method: &str) -> Result { let full_url = format!("{}{}", self.base_url, method); - Url::parse(&full_url) - .map_err(|e| anyhow::anyhow!("Failed to parse URL '{}': {}", full_url, e)) + Url::parse(&full_url).map_err(|e| anyhow!("Failed to parse URL '{}': {}", full_url, e)) } - async fn get_with_token(&self, method: &str) -> anyhow::Result + async fn get(&self, method: &str) -> Result where Resp: serde::de::DeserializeOwned, { let url = self.build_url(method)?; - log::info!("[Snarkify Client], {method}, sent request"); + info!("[Snarkify Client], {method}, sent request"); let response = self .client .get(url) .header(CONTENT_TYPE, "application/json") .header("X-Api-Key", &self.api_key) - .timeout(self.send_timeout) + .timeout(self.connection_timeout_sec) .send() .await?; let status = response.status(); if !(status >= http::status::StatusCode::OK && status <= http::status::StatusCode::ACCEPTED) { - anyhow::bail!("[Snarkify Client], {method}, status not ok: {}", status) + bail!("[Snarkify Client], {method}, status not ok: {}", status) } let response_body = response.text().await?; - log::info!("[Snarkify Client], {method}, received response"); - log::debug!("[Snarkify Client], {method}, response: {response_body}"); - serde_json::from_str(&response_body).map_err(|e| anyhow::anyhow!(e)) + info!("[Snarkify Client], {method}, received response"); + debug!("[Snarkify Client], {method}, response: {response_body}"); + serde_json::from_str(&response_body).map_err(|e| anyhow!(e)) } - async fn post_with_token(&self, method: &str, req: &Req) -> anyhow::Result + async fn post(&self, method: &str, req: &Req) -> Result where Req: ?Sized + Serialize, Resp: serde::de::DeserializeOwned, { let url = self.build_url(method)?; let request_body = serde_json::to_string(req)?; - log::info!("[Snarkify Client], {method}, sent request"); - log::debug!("[Snarkify Client], {method}, request: {request_body}"); + info!("[Snarkify Client], {method}, sent request"); + debug!("[Snarkify Client], {method}, request: {request_body}"); let response = self .client .post(url) .header(CONTENT_TYPE, "application/json") .header("X-Api-Key", &self.api_key) .body(request_body) - .timeout(self.send_timeout) + .timeout(self.connection_timeout_sec) .send() .await?; let status = response.status(); if !(status >= http::status::StatusCode::OK && status <= http::status::StatusCode::ACCEPTED) { - anyhow::bail!("[Snarkify Client], {method}, status not ok: {}", status) + bail!("[Snarkify Client], {method}, status not ok: {}", status) } let response_body = response.text().await?; - log::info!("[Snarkify Client], {method}, received response"); - log::debug!("[Snarkify Client], {method}, response: {response_body}"); - serde_json::from_str(&response_body).map_err(|e| anyhow::anyhow!(e)) + info!("[Snarkify Client], {method}, received response"); + debug!("[Snarkify Client], {method}, response: {response_body}"); + serde_json::from_str(&response_body).map_err(|e| anyhow!(e)) + } + + async fn download_blob(&self, url: &str) -> Result { + let response = match self + .client + .get(url) + .timeout(self.connection_timeout_sec) + .send() + .await + { + Ok(res) => res, + Err(e) => { + debug!( + "[Snarkify Client][download_blob] Failed to send request {}: {:#?}", + url, e + ); + bail!( + "[Snarkify Client][download_blob] Failed to send request {}: {}", + url, + e + ) + } + }; + + let status = response.status(); + if !status.is_success() { + let error_text = response + .text() + .await + .unwrap_or_else(|_| "Failed to read error message".to_string()); + bail!( + "[Snarkify Client][download_blob] Failed with status {}: {}. Error: {}", + url, + status, + error_text + ); + } + + response.text().await.map_err(|e| { + debug!( + "[Snarkify Client][download_blob] Failed to parse from {}: {:#?}", + url, e + ); + anyhow!( + "[Snarkify Client][download_blob] Failed to parse from {}: {}", + url, + e + ) + }) } } diff --git a/src/task_state.rs b/src/task_state.rs index 9826672..b2d2f2d 100644 --- a/src/task_state.rs +++ b/src/task_state.rs @@ -4,6 +4,7 @@ use serde::Deserialize; #[derive(Deserialize, Debug)] #[serde(rename_all = "UPPERCASE")] pub enum SnarkifyTaskState { + Unassigned, Pending, Success, Failure, @@ -12,6 +13,7 @@ pub enum SnarkifyTaskState { impl From for TaskStatus { fn from(state: SnarkifyTaskState) -> Self { match state { + SnarkifyTaskState::Unassigned => TaskStatus::Queued, SnarkifyTaskState::Pending => TaskStatus::Proving, SnarkifyTaskState::Success => TaskStatus::Success, SnarkifyTaskState::Failure => TaskStatus::Failed, diff --git a/src/types.rs b/src/types.rs index eb7534c..16e275c 100644 --- a/src/types.rs +++ b/src/types.rs @@ -1,15 +1,15 @@ use crate::datetime_utils::deserialize_datetime; use crate::proof_type::SnarkifyProofType; use crate::task_state::SnarkifyTaskState; +use anyhow::Result; use chrono::{DateTime, Utc}; use scroll_proving_sdk::prover::proving_service::ProveRequest; -use scroll_proving_sdk::prover::types::CircuitType; use serde::{Deserialize, Serialize}; #[derive(Deserialize, Debug)] pub struct SnarkifyGetVkResponse { /// Base64 encoded verification key, which will be used in the login request to the Scroll coordinator. - pub vk: String, + pub vks: Vec, } #[derive(Deserialize, Debug)] @@ -23,17 +23,14 @@ pub struct SnarkifyGetTaskResponse { #[serde(deserialize_with = "deserialize_datetime")] pub finished: Option>, pub state: SnarkifyTaskState, - /// Task input data necessary for the proof generation. - pub input: String, - /// Serialized JSON string including the base64 encoded proof and its metadata. - pub proof: Option, - pub error: Option, - pub proof_type: Option, + pub input_url: Option, + pub proof_url: Option, + pub error_url: Option, + pub proof_type: SnarkifyProofType, } #[derive(Serialize, Deserialize, Debug)] pub struct SnarkifyCreateTaskInput { - pub circuit_type: CircuitType, pub circuit_version: String, pub hard_fork_name: String, pub task_data: String, @@ -46,15 +43,17 @@ pub struct SnarkifyCreateTaskRequest { } impl SnarkifyCreateTaskRequest { - pub fn from_prove_request(request: &ProveRequest) -> Self { - Self { + pub fn from_prove_request(request: &ProveRequest) -> Result { + Ok(Self { input: SnarkifyCreateTaskInput { - circuit_type: request.circuit_type, circuit_version: request.circuit_version.clone(), hard_fork_name: request.hard_fork_name.clone(), task_data: request.input.clone(), }, - proof_type: request.circuit_type.into(), - } + proof_type: request + .proof_type + .try_into() + .map_err(|e| anyhow::anyhow!("Failed to convert proof type: {}", e))?, + }) } }